diff --git a/404.html b/404.html index 833deeb4..109675fb 100644 --- a/404.html +++ b/404.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } - + diff --git a/advancement/index.html b/advancement/index.html index efa05be1..ff40edb1 100644 --- a/advancement/index.html +++ b/advancement/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } - + diff --git a/assets/blockstate/index.html b/assets/blockstate/index.html index c90287e5..46aa22d1 100644 --- a/assets/blockstate/index.html +++ b/assets/blockstate/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } - + diff --git a/assets/howler.ff64ae5d.js b/assets/howler.ff64ae5d.js new file mode 100644 index 00000000..631a16eb --- /dev/null +++ b/assets/howler.ff64ae5d.js @@ -0,0 +1,20 @@ +import{c as S}from"./index.18869b2a.js";function L(b,g){return g.forEach(function(r){r&&typeof r!="string"&&!Array.isArray(r)&&Object.keys(r).forEach(function(u){if(u!=="default"&&!(u in b)){var i=Object.getOwnPropertyDescriptor(r,u);Object.defineProperty(b,u,i.get?i:{enumerable:!0,get:function(){return r[u]}})}})}),Object.freeze(Object.defineProperty(b,Symbol.toStringTag,{value:"Module"}))}var O={};/*! + * howler.js v2.2.3 + * howlerjs.com + * + * (c) 2013-2020, James Simpson of GoldFire Studios + * goldfirestudios.com + * + * MIT License + */(function(b){(function(){var g=function(){this.init()};g.prototype={init:function(){var e=this||r;return e._counter=1e3,e._html5AudioPool=[],e.html5PoolSize=10,e._codecs={},e._howls=[],e._muted=!1,e._volume=1,e._canPlayEvent="canplaythrough",e._navigator=typeof window!="undefined"&&window.navigator?window.navigator:null,e.masterGain=null,e.noAudio=!1,e.usingWebAudio=!0,e.autoSuspend=!0,e.ctx=null,e.autoUnlock=!0,e._setup(),e},volume:function(e){var t=this||r;if(e=parseFloat(e),t.ctx||A(),typeof e!="undefined"&&e>=0&&e<=1){if(t._volume=e,t._muted)return t;t.usingWebAudio&&t.masterGain.gain.setValueAtTime(e,r.ctx.currentTime);for(var n=0;n=0;t--)e._howls[t].unload();return e.usingWebAudio&&e.ctx&&typeof e.ctx.close!="undefined"&&(e.ctx.close(),e.ctx=null,A()),e},codecs:function(e){return(this||r)._codecs[e.replace(/^x-/,"")]},_setup:function(){var e=this||r;if(e.state=e.ctx&&e.ctx.state||"suspended",e._autoSuspend(),!e.usingWebAudio)if(typeof Audio!="undefined")try{var t=new Audio;typeof t.oncanplaythrough=="undefined"&&(e._canPlayEvent="canplay")}catch{e.noAudio=!0}else e.noAudio=!0;try{var t=new Audio;t.muted&&(e.noAudio=!0)}catch{}return e.noAudio||e._setupCodecs(),e},_setupCodecs:function(){var e=this||r,t=null;try{t=typeof Audio!="undefined"?new Audio:null}catch{return e}if(!t||typeof t.canPlayType!="function")return e;var n=t.canPlayType("audio/mpeg;").replace(/^no$/,""),o=e._navigator?e._navigator.userAgent:"",_=o.match(/OPR\/([0-6].)/g),l=_&&parseInt(_[0].split("/")[1],10)<33,a=o.indexOf("Safari")!==-1&&o.indexOf("Chrome")===-1,f=o.match(/Version\/(.*?) /),m=a&&f&&parseInt(f[1],10)<15;return e._codecs={mp3:!!(!l&&(n||t.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!n,opus:!!t.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!t.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!t.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(t.canPlayType('audio/wav; codecs="1"')||t.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!t.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!t.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(t.canPlayType("audio/x-m4a;")||t.canPlayType("audio/m4a;")||t.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(t.canPlayType("audio/x-m4b;")||t.canPlayType("audio/m4b;")||t.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(t.canPlayType("audio/x-mp4;")||t.canPlayType("audio/mp4;")||t.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!m&&t.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!m&&t.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!t.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(t.canPlayType("audio/x-flac;")||t.canPlayType("audio/flac;")).replace(/^no$/,"")},e},_unlockAudio:function(){var e=this||r;if(!(e._audioUnlocked||!e.ctx)){e._audioUnlocked=!1,e.autoUnlock=!1,!e._mobileUnloaded&&e.ctx.sampleRate!==44100&&(e._mobileUnloaded=!0,e.unload()),e._scratchBuffer=e.ctx.createBuffer(1,1,22050);var t=function(n){for(;e._html5AudioPool.length0?a._seek:n._sprite[e][0]/1e3),y=Math.max(0,(n._sprite[e][0]+n._sprite[e][1])/1e3-m),w=y*1e3/Math.abs(a._rate),T=n._sprite[e][0]/1e3,I=(n._sprite[e][0]+n._sprite[e][1])/1e3;a._sprite=e,a._ended=!1;var k=function(){a._paused=!1,a._seek=m,a._start=T,a._stop=I,a._loop=!!(a._loop||n._sprite[e][2])};if(m>=I){n._ended(a);return}var v=a._node;if(n._webAudio){var H=function(){n._playLock=!1,k(),n._refreshBuffer(a);var x=a._muted||n._muted?0:a._volume;v.gain.setValueAtTime(x,r.ctx.currentTime),a._playStart=r.ctx.currentTime,typeof v.bufferSource.start=="undefined"?a._loop?v.bufferSource.noteGrainOn(0,m,86400):v.bufferSource.noteGrainOn(0,m,y):a._loop?v.bufferSource.start(0,m,86400):v.bufferSource.start(0,m,y),w!==1/0&&(n._endTimers[a._id]=setTimeout(n._ended.bind(n,a),w)),t||setTimeout(function(){n._emit("play",a._id),n._loadQueue()},0)};r.state==="running"&&r.ctx.state!=="interrupted"?H():(n._playLock=!0,n.once("resume",H),n._clearTimer(a._id))}else{var P=function(){v.currentTime=m,v.muted=a._muted||n._muted||r._muted||v.muted,v.volume=a._volume*r.volume(),v.playbackRate=a._rate;try{var x=v.play();if(x&&typeof Promise!="undefined"&&(x instanceof Promise||typeof x.then=="function")?(n._playLock=!0,k(),x.then(function(){n._playLock=!1,v._unlocked=!0,t?n._loadQueue():n._emit("play",a._id)}).catch(function(){n._playLock=!1,n._emit("playerror",a._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),a._ended=!0,a._paused=!0})):t||(n._playLock=!1,k(),n._emit("play",a._id)),v.playbackRate=a._rate,v.paused){n._emit("playerror",a._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");return}e!=="__default"||a._loop?n._endTimers[a._id]=setTimeout(n._ended.bind(n,a),w):(n._endTimers[a._id]=function(){n._ended(a),v.removeEventListener("ended",n._endTimers[a._id],!1)},v.addEventListener("ended",n._endTimers[a._id],!1))}catch(B){n._emit("playerror",a._id,B)}};v.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(v.src=n._src,v.load());var F=window&&window.ejecta||!v.readyState&&r._navigator.isCocoonJS;if(v.readyState>=3||F)P();else{n._playLock=!0,n._state="loading";var M=function(){n._state="loaded",P(),v.removeEventListener(r._canPlayEvent,M,!1)};v.addEventListener(r._canPlayEvent,M,!1),n._clearTimer(a._id)}}return a._id},pause:function(e){var t=this;if(t._state!=="loaded"||t._playLock)return t._queue.push({event:"pause",action:function(){t.pause(e)}}),t;for(var n=t._getSoundIds(e),o=0;o=0?o=parseInt(t[0],10):n=parseFloat(t[0])}else t.length>=2&&(n=parseFloat(t[0]),o=parseInt(t[1],10));var a;if(typeof n!="undefined"&&n>=0&&n<=1){if(e._state!=="loaded"||e._playLock)return e._queue.push({event:"volume",action:function(){e.volume.apply(e,t)}}),e;typeof o=="undefined"&&(e._volume=n),o=e._getSoundIds(o);for(var f=0;f0?o/y:o),T=Date.now();e._fadeTo=n,e._interval=setInterval(function(){var I=(Date.now()-T)/o;T=Date.now(),f+=m*I,f=Math.round(f*100)/100,m<0?f=Math.max(n,f):f=Math.min(n,f),a._webAudio?e._volume=f:a.volume(f,e._id,!0),l&&(a._volume=f),(nt&&f>=n)&&(clearInterval(e._interval),e._interval=null,e._fadeTo=null,a.volume(n,e._id),a._emit("fade",e._id))},w)},_stopFade:function(e){var t=this,n=t._soundById(e);return n&&n._interval&&(t._webAudio&&n._node.gain.cancelScheduledValues(r.ctx.currentTime),clearInterval(n._interval),n._interval=null,t.volume(n._fadeTo,e),n._fadeTo=null,t._emit("fade",e)),t},loop:function(){var e=this,t=arguments,n,o,_;if(t.length===0)return e._loop;if(t.length===1)if(typeof t[0]=="boolean")n=t[0],e._loop=n;else return _=e._soundById(parseInt(t[0],10)),_?_._loop:!1;else t.length===2&&(n=t[0],o=parseInt(t[1],10));for(var l=e._getSoundIds(o),a=0;a=0?o=parseInt(t[0],10):n=parseFloat(t[0])}else t.length===2&&(n=parseFloat(t[0]),o=parseInt(t[1],10));var a;if(typeof n=="number"){if(e._state!=="loaded"||e._playLock)return e._queue.push({event:"rate",action:function(){e.rate.apply(e,t)}}),e;typeof o=="undefined"&&(e._rate=n),o=e._getSoundIds(o);for(var f=0;f=0?o=parseInt(t[0],10):e._sounds.length&&(o=e._sounds[0]._id,n=parseFloat(t[0]))}else t.length===2&&(n=parseFloat(t[0]),o=parseInt(t[1],10));if(typeof o=="undefined")return 0;if(typeof n=="number"&&(e._state!=="loaded"||e._playLock))return e._queue.push({event:"seek",action:function(){e.seek.apply(e,t)}}),e;var a=e._soundById(o);if(a)if(typeof n=="number"&&n>=0){var f=e.playing(o);f&&e.pause(o,!0),a._seek=n,a._ended=!1,e._clearTimer(o),!e._webAudio&&a._node&&!isNaN(a._node.duration)&&(a._node.currentTime=n);var m=function(){f&&e.play(o,!0),e._emit("seek",o)};if(f&&!e._webAudio){var y=function(){e._playLock?setTimeout(y,0):m()};setTimeout(y,0)}else m()}else if(e._webAudio){var w=e.playing(o)?r.ctx.currentTime-a._playStart:0,T=a._rateSeek?a._rateSeek-a._seek:0;return a._seek+(T+w*Math.abs(a._rate))}else return a._node.currentTime;return e},playing:function(e){var t=this;if(typeof e=="number"){var n=t._soundById(e);return n?!n._paused:!1}for(var o=0;o=0&&r._howls.splice(o,1);var _=!0;for(n=0;n=0){_=!1;break}return c&&_&&delete c[e._src],r.noAudio=!1,e._state="unloaded",e._sounds=[],e=null,null},on:function(e,t,n,o){var _=this,l=_["_on"+e];return typeof t=="function"&&l.push(o?{id:n,fn:t,once:o}:{id:n,fn:t}),_},off:function(e,t,n){var o=this,_=o["_on"+e],l=0;if(typeof t=="number"&&(n=t,t=null),t||n)for(l=0;l<_.length;l++){var a=n===_[l].id;if(t===_[l].fn&&a||!t&&a){_.splice(l,1);break}}else if(e)o["_on"+e]=[];else{var f=Object.keys(o);for(l=0;l=0;l--)(!_[l].id||_[l].id===t||e==="load")&&(setTimeout(function(a){a.call(this,t,n)}.bind(o,_[l].fn),0),_[l].once&&o.off(e,_[l].fn,_[l].id));return o._loadQueue(e),o},_loadQueue:function(e){var t=this;if(t._queue.length>0){var n=t._queue[0];n.event===e&&(t._queue.shift(),t._loadQueue()),e||n.action()}return t},_ended:function(e){var t=this,n=e._sprite;if(!t._webAudio&&e._node&&!e._node.paused&&!e._node.ended&&e._node.currentTime=0;o--){if(n<=t)return;e._sounds[o]._ended&&(e._webAudio&&e._sounds[o]._node&&e._sounds[o]._node.disconnect(0),e._sounds.splice(o,1),n--)}}},_getSoundIds:function(e){var t=this;if(typeof e=="undefined"){for(var n=[],o=0;o=0;if(r._scratchBuffer&&e.bufferSource&&(e.bufferSource.onended=null,e.bufferSource.disconnect(0),n))try{e.bufferSource.buffer=r._scratchBuffer}catch{}return e.bufferSource=null,t},_clearSound:function(e){var t=/MSIE |Trident\//.test(r._navigator&&r._navigator.userAgent);t||(e.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var i=function(e){this._parent=e,this.init()};i.prototype={init:function(){var e=this,t=e._parent;return e._muted=t._muted,e._loop=t._loop,e._volume=t._volume,e._rate=t._rate,e._seek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++r._counter,t._sounds.push(e),e.create(),e},create:function(){var e=this,t=e._parent,n=r._muted||e._muted||e._parent._muted?0:e._volume;return t._webAudio?(e._node=typeof r.ctx.createGain=="undefined"?r.ctx.createGainNode():r.ctx.createGain(),e._node.gain.setValueAtTime(n,r.ctx.currentTime),e._node.paused=!0,e._node.connect(r.masterGain)):r.noAudio||(e._node=r._obtainHtml5Audio(),e._errorFn=e._errorListener.bind(e),e._node.addEventListener("error",e._errorFn,!1),e._loadFn=e._loadListener.bind(e),e._node.addEventListener(r._canPlayEvent,e._loadFn,!1),e._endFn=e._endListener.bind(e),e._node.addEventListener("ended",e._endFn,!1),e._node.src=t._src,e._node.preload=t._preload===!0?"auto":t._preload,e._node.volume=n*r.volume(),e._node.load()),e},reset:function(){var e=this,t=e._parent;return e._muted=t._muted,e._loop=t._loop,e._volume=t._volume,e._rate=t._rate,e._seek=0,e._rateSeek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++r._counter,e},_errorListener:function(){var e=this;e._parent._emit("loaderror",e._id,e._node.error?e._node.error.code:0),e._node.removeEventListener("error",e._errorFn,!1)},_loadListener:function(){var e=this,t=e._parent;t._duration=Math.ceil(e._node.duration*10)/10,Object.keys(t._sprite).length===0&&(t._sprite={__default:[0,t._duration*1e3]}),t._state!=="loaded"&&(t._state="loaded",t._emit("load"),t._loadQueue()),e._node.removeEventListener(r._canPlayEvent,e._loadFn,!1)},_endListener:function(){var e=this,t=e._parent;t._duration===1/0&&(t._duration=Math.ceil(e._node.duration*10)/10,t._sprite.__default[1]===1/0&&(t._sprite.__default[1]=t._duration*1e3),t._ended(e)),e._node.removeEventListener("ended",e._endFn,!1)}};var c={},d=function(e){var t=e._src;if(c[t]){e._duration=c[t].duration,s(e);return}if(/^data:[^;]+;base64,/.test(t)){for(var n=atob(t.split(",")[1]),o=new Uint8Array(n.length),_=0;_0?(c[t._src]=_,s(t,_)):n()};typeof Promise!="undefined"&&r.ctx.decodeAudioData.length===1?r.ctx.decodeAudioData(e).then(o).catch(n):r.ctx.decodeAudioData(e,o,n)},s=function(e,t){t&&!e._duration&&(e._duration=t.duration),Object.keys(e._sprite).length===0&&(e._sprite={__default:[0,e._duration*1e3]}),e._state!=="loaded"&&(e._state="loaded",e._emit("load"),e._loadQueue())},A=function(){if(!!r.usingWebAudio){try{typeof AudioContext!="undefined"?r.ctx=new AudioContext:typeof webkitAudioContext!="undefined"?r.ctx=new webkitAudioContext:r.usingWebAudio=!1}catch{r.usingWebAudio=!1}r.ctx||(r.usingWebAudio=!1);var e=/iP(hone|od|ad)/.test(r._navigator&&r._navigator.platform),t=r._navigator&&r._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),n=t?parseInt(t[1],10):null;if(e&&n&&n<9){var o=/safari/.test(r._navigator&&r._navigator.userAgent.toLowerCase());r._navigator&&!o&&(r.usingWebAudio=!1)}r.usingWebAudio&&(r.masterGain=typeof r.ctx.createGain=="undefined"?r.ctx.createGainNode():r.ctx.createGain(),r.masterGain.gain.setValueAtTime(r._muted?0:r._volume,r.ctx.currentTime),r.masterGain.connect(r.ctx.destination)),r._setup()}};b.Howler=r,b.Howl=u,typeof S!="undefined"?(S.HowlerGlobal=g,S.Howler=r,S.Howl=u,S.Sound=i):typeof window!="undefined"&&(window.HowlerGlobal=g,window.Howler=r,window.Howl=u,window.Sound=i)})();/*! + * Spatial Plugin - Adds support for stereo and 3D audio where Web Audio is supported. + * + * howler.js v2.2.3 + * howlerjs.com + * + * (c) 2013-2020, James Simpson of GoldFire Studios + * goldfirestudios.com + * + * MIT License + */(function(){HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(r){var u=this;if(!u.ctx||!u.ctx.listener)return u;for(var i=u._howls.length-1;i>=0;i--)u._howls[i].stereo(r);return u},HowlerGlobal.prototype.pos=function(r,u,i){var c=this;if(!c.ctx||!c.ctx.listener)return c;if(u=typeof u!="number"?c._pos[1]:u,i=typeof i!="number"?c._pos[2]:i,typeof r=="number")c._pos=[r,u,i],typeof c.ctx.listener.positionX!="undefined"?(c.ctx.listener.positionX.setTargetAtTime(c._pos[0],Howler.ctx.currentTime,.1),c.ctx.listener.positionY.setTargetAtTime(c._pos[1],Howler.ctx.currentTime,.1),c.ctx.listener.positionZ.setTargetAtTime(c._pos[2],Howler.ctx.currentTime,.1)):c.ctx.listener.setPosition(c._pos[0],c._pos[1],c._pos[2]);else return c._pos;return c},HowlerGlobal.prototype.orientation=function(r,u,i,c,d,h){var p=this;if(!p.ctx||!p.ctx.listener)return p;var s=p._orientation;if(u=typeof u!="number"?s[1]:u,i=typeof i!="number"?s[2]:i,c=typeof c!="number"?s[3]:c,d=typeof d!="number"?s[4]:d,h=typeof h!="number"?s[5]:h,typeof r=="number")p._orientation=[r,u,i,c,d,h],typeof p.ctx.listener.forwardX!="undefined"?(p.ctx.listener.forwardX.setTargetAtTime(r,Howler.ctx.currentTime,.1),p.ctx.listener.forwardY.setTargetAtTime(u,Howler.ctx.currentTime,.1),p.ctx.listener.forwardZ.setTargetAtTime(i,Howler.ctx.currentTime,.1),p.ctx.listener.upX.setTargetAtTime(c,Howler.ctx.currentTime,.1),p.ctx.listener.upY.setTargetAtTime(d,Howler.ctx.currentTime,.1),p.ctx.listener.upZ.setTargetAtTime(h,Howler.ctx.currentTime,.1)):p.ctx.listener.setOrientation(r,u,i,c,d,h);else return s;return p},Howl.prototype.init=function(r){return function(u){var i=this;return i._orientation=u.orientation||[1,0,0],i._stereo=u.stereo||null,i._pos=u.pos||null,i._pannerAttr={coneInnerAngle:typeof u.coneInnerAngle!="undefined"?u.coneInnerAngle:360,coneOuterAngle:typeof u.coneOuterAngle!="undefined"?u.coneOuterAngle:360,coneOuterGain:typeof u.coneOuterGain!="undefined"?u.coneOuterGain:0,distanceModel:typeof u.distanceModel!="undefined"?u.distanceModel:"inverse",maxDistance:typeof u.maxDistance!="undefined"?u.maxDistance:1e4,panningModel:typeof u.panningModel!="undefined"?u.panningModel:"HRTF",refDistance:typeof u.refDistance!="undefined"?u.refDistance:1,rolloffFactor:typeof u.rolloffFactor!="undefined"?u.rolloffFactor:1},i._onstereo=u.onstereo?[{fn:u.onstereo}]:[],i._onpos=u.onpos?[{fn:u.onpos}]:[],i._onorientation=u.onorientation?[{fn:u.onorientation}]:[],r.call(this,u)}}(Howl.prototype.init),Howl.prototype.stereo=function(r,u){var i=this;if(!i._webAudio)return i;if(i._state!=="loaded")return i._queue.push({event:"stereo",action:function(){i.stereo(r,u)}}),i;var c=typeof Howler.ctx.createStereoPanner=="undefined"?"spatial":"stereo";if(typeof u=="undefined")if(typeof r=="number")i._stereo=r,i._pos=[r,0,0];else return i._stereo;for(var d=i._getSoundIds(u),h=0;h= 0 && vol <= 1) {\n self._volume = vol;\n\n // Don't update any of the nodes if we are muted.\n if (self._muted) {\n return self;\n }\n\n // When using Web Audio, we just need to adjust the master gain.\n if (self.usingWebAudio) {\n self.masterGain.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n }\n\n // Loop through and change volume for all HTML5 audio nodes.\n for (var i=0; i=0; i--) {\n self._howls[i].unload();\n }\n\n // Create a new AudioContext to make sure it is fully reset.\n if (self.usingWebAudio && self.ctx && typeof self.ctx.close !== 'undefined') {\n self.ctx.close();\n self.ctx = null;\n setupAudioContext();\n }\n\n return self;\n },\n\n /**\n * Check for codec support of specific extension.\n * @param {String} ext Audio file extention.\n * @return {Boolean}\n */\n codecs: function(ext) {\n return (this || Howler)._codecs[ext.replace(/^x-/, '')];\n },\n\n /**\n * Setup various state values for global tracking.\n * @return {Howler}\n */\n _setup: function() {\n var self = this || Howler;\n\n // Keeps track of the suspend/resume state of the AudioContext.\n self.state = self.ctx ? self.ctx.state || 'suspended' : 'suspended';\n\n // Automatically begin the 30-second suspend process\n self._autoSuspend();\n\n // Check if audio is available.\n if (!self.usingWebAudio) {\n // No audio is available on this system if noAudio is set to true.\n if (typeof Audio !== 'undefined') {\n try {\n var test = new Audio();\n\n // Check if the canplaythrough event is available.\n if (typeof test.oncanplaythrough === 'undefined') {\n self._canPlayEvent = 'canplay';\n }\n } catch(e) {\n self.noAudio = true;\n }\n } else {\n self.noAudio = true;\n }\n }\n\n // Test to make sure audio isn't disabled in Internet Explorer.\n try {\n var test = new Audio();\n if (test.muted) {\n self.noAudio = true;\n }\n } catch (e) {}\n\n // Check for supported codecs.\n if (!self.noAudio) {\n self._setupCodecs();\n }\n\n return self;\n },\n\n /**\n * Check for browser support for various codecs and cache the results.\n * @return {Howler}\n */\n _setupCodecs: function() {\n var self = this || Howler;\n var audioTest = null;\n\n // Must wrap in a try/catch because IE11 in server mode throws an error.\n try {\n audioTest = (typeof Audio !== 'undefined') ? new Audio() : null;\n } catch (err) {\n return self;\n }\n\n if (!audioTest || typeof audioTest.canPlayType !== 'function') {\n return self;\n }\n\n var mpegTest = audioTest.canPlayType('audio/mpeg;').replace(/^no$/, '');\n\n // Opera version <33 has mixed MP3 support, so we need to check for and block it.\n var ua = self._navigator ? self._navigator.userAgent : '';\n var checkOpera = ua.match(/OPR\\/([0-6].)/g);\n var isOldOpera = (checkOpera && parseInt(checkOpera[0].split('/')[1], 10) < 33);\n var checkSafari = ua.indexOf('Safari') !== -1 && ua.indexOf('Chrome') === -1;\n var safariVersion = ua.match(/Version\\/(.*?) /);\n var isOldSafari = (checkSafari && safariVersion && parseInt(safariVersion[1], 10) < 15);\n\n self._codecs = {\n mp3: !!(!isOldOpera && (mpegTest || audioTest.canPlayType('audio/mp3;').replace(/^no$/, ''))),\n mpeg: !!mpegTest,\n opus: !!audioTest.canPlayType('audio/ogg; codecs=\"opus\"').replace(/^no$/, ''),\n ogg: !!audioTest.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, ''),\n oga: !!audioTest.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, ''),\n wav: !!(audioTest.canPlayType('audio/wav; codecs=\"1\"') || audioTest.canPlayType('audio/wav')).replace(/^no$/, ''),\n aac: !!audioTest.canPlayType('audio/aac;').replace(/^no$/, ''),\n caf: !!audioTest.canPlayType('audio/x-caf;').replace(/^no$/, ''),\n m4a: !!(audioTest.canPlayType('audio/x-m4a;') || audioTest.canPlayType('audio/m4a;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n m4b: !!(audioTest.canPlayType('audio/x-m4b;') || audioTest.canPlayType('audio/m4b;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n mp4: !!(audioTest.canPlayType('audio/x-mp4;') || audioTest.canPlayType('audio/mp4;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n weba: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/, '')),\n webm: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/, '')),\n dolby: !!audioTest.canPlayType('audio/mp4; codecs=\"ec-3\"').replace(/^no$/, ''),\n flac: !!(audioTest.canPlayType('audio/x-flac;') || audioTest.canPlayType('audio/flac;')).replace(/^no$/, '')\n };\n\n return self;\n },\n\n /**\n * Some browsers/devices will only allow audio to be played after a user interaction.\n * Attempt to automatically unlock audio on the first user interaction.\n * Concept from: http://paulbakaus.com/tutorials/html5/web-audio-on-ios/\n * @return {Howler}\n */\n _unlockAudio: function() {\n var self = this || Howler;\n\n // Only run this if Web Audio is supported and it hasn't already been unlocked.\n if (self._audioUnlocked || !self.ctx) {\n return;\n }\n\n self._audioUnlocked = false;\n self.autoUnlock = false;\n\n // Some mobile devices/platforms have distortion issues when opening/closing tabs and/or web views.\n // Bugs in the browser (especially Mobile Safari) can cause the sampleRate to change from 44100 to 48000.\n // By calling Howler.unload(), we create a new AudioContext with the correct sampleRate.\n if (!self._mobileUnloaded && self.ctx.sampleRate !== 44100) {\n self._mobileUnloaded = true;\n self.unload();\n }\n\n // Scratch buffer for enabling iOS to dispose of web audio buffers correctly, as per:\n // http://stackoverflow.com/questions/24119684\n self._scratchBuffer = self.ctx.createBuffer(1, 1, 22050);\n\n // Call this method on touch start to create and play a buffer,\n // then check if the audio actually played to determine if\n // audio has now been unlocked on iOS, Android, etc.\n var unlock = function(e) {\n // Create a pool of unlocked HTML5 Audio objects that can\n // be used for playing sounds without user interaction. HTML5\n // Audio objects must be individually unlocked, as opposed\n // to the WebAudio API which only needs a single activation.\n // This must occur before WebAudio setup or the source.onended\n // event will not fire.\n while (self._html5AudioPool.length < self.html5PoolSize) {\n try {\n var audioNode = new Audio();\n\n // Mark this Audio object as unlocked to ensure it can get returned\n // to the unlocked pool when released.\n audioNode._unlocked = true;\n\n // Add the audio node to the pool.\n self._releaseHtml5Audio(audioNode);\n } catch (e) {\n self.noAudio = true;\n break;\n }\n }\n\n // Loop through any assigned audio nodes and unlock them.\n for (var i=0; i= 55.\n if (typeof self.ctx.resume === 'function') {\n self.ctx.resume();\n }\n\n // Setup a timeout to check that we are unlocked on the next event loop.\n source.onended = function() {\n source.disconnect(0);\n\n // Update the unlocked state and prevent this check from happening again.\n self._audioUnlocked = true;\n\n // Remove the touch start listener.\n document.removeEventListener('touchstart', unlock, true);\n document.removeEventListener('touchend', unlock, true);\n document.removeEventListener('click', unlock, true);\n document.removeEventListener('keydown', unlock, true);\n\n // Let all sounds know that audio has been unlocked.\n for (var i=0; i 0 ? sound._seek : self._sprite[sprite][0] / 1000);\n var duration = Math.max(0, ((self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000) - seek);\n var timeout = (duration * 1000) / Math.abs(sound._rate);\n var start = self._sprite[sprite][0] / 1000;\n var stop = (self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000;\n sound._sprite = sprite;\n\n // Mark the sound as ended instantly so that this async playback\n // doesn't get grabbed by another call to play while this one waits to start.\n sound._ended = false;\n\n // Update the parameters of the sound.\n var setParams = function() {\n sound._paused = false;\n sound._seek = seek;\n sound._start = start;\n sound._stop = stop;\n sound._loop = !!(sound._loop || self._sprite[sprite][2]);\n };\n\n // End the sound instantly if seek is at the end.\n if (seek >= stop) {\n self._ended(sound);\n return;\n }\n\n // Begin the actual playback.\n var node = sound._node;\n if (self._webAudio) {\n // Fire this when the sound is ready to play to begin Web Audio playback.\n var playWebAudio = function() {\n self._playLock = false;\n setParams();\n self._refreshBuffer(sound);\n\n // Setup the playback params.\n var vol = (sound._muted || self._muted) ? 0 : sound._volume;\n node.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n sound._playStart = Howler.ctx.currentTime;\n\n // Play the sound using the supported method.\n if (typeof node.bufferSource.start === 'undefined') {\n sound._loop ? node.bufferSource.noteGrainOn(0, seek, 86400) : node.bufferSource.noteGrainOn(0, seek, duration);\n } else {\n sound._loop ? node.bufferSource.start(0, seek, 86400) : node.bufferSource.start(0, seek, duration);\n }\n\n // Start a new timer if none is present.\n if (timeout !== Infinity) {\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n if (!internal) {\n setTimeout(function() {\n self._emit('play', sound._id);\n self._loadQueue();\n }, 0);\n }\n };\n\n if (Howler.state === 'running' && Howler.ctx.state !== 'interrupted') {\n playWebAudio();\n } else {\n self._playLock = true;\n\n // Wait for the audio context to resume before playing.\n self.once('resume', playWebAudio);\n\n // Cancel the end timer.\n self._clearTimer(sound._id);\n }\n } else {\n // Fire this when the sound is ready to play to begin HTML5 Audio playback.\n var playHtml5 = function() {\n node.currentTime = seek;\n node.muted = sound._muted || self._muted || Howler._muted || node.muted;\n node.volume = sound._volume * Howler.volume();\n node.playbackRate = sound._rate;\n\n // Some browsers will throw an error if this is called without user interaction.\n try {\n var play = node.play();\n\n // Support older browsers that don't support promises, and thus don't have this issue.\n if (play && typeof Promise !== 'undefined' && (play instanceof Promise || typeof play.then === 'function')) {\n // Implements a lock to prevent DOMException: The play() request was interrupted by a call to pause().\n self._playLock = true;\n\n // Set param values immediately.\n setParams();\n\n // Releases the lock and executes queued actions.\n play\n .then(function() {\n self._playLock = false;\n node._unlocked = true;\n if (!internal) {\n self._emit('play', sound._id);\n } else {\n self._loadQueue();\n }\n })\n .catch(function() {\n self._playLock = false;\n self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' +\n 'on mobile devices and Chrome where playback was not within a user interaction.');\n\n // Reset the ended and paused values.\n sound._ended = true;\n sound._paused = true;\n });\n } else if (!internal) {\n self._playLock = false;\n setParams();\n self._emit('play', sound._id);\n }\n\n // Setting rate before playing won't work in IE, so we set it again here.\n node.playbackRate = sound._rate;\n\n // If the node is still paused, then we can assume there was a playback issue.\n if (node.paused) {\n self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' +\n 'on mobile devices and Chrome where playback was not within a user interaction.');\n return;\n }\n\n // Setup the end timer on sprites or listen for the ended event.\n if (sprite !== '__default' || sound._loop) {\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n } else {\n self._endTimers[sound._id] = function() {\n // Fire ended on this audio node.\n self._ended(sound);\n\n // Clear this listener.\n node.removeEventListener('ended', self._endTimers[sound._id], false);\n };\n node.addEventListener('ended', self._endTimers[sound._id], false);\n }\n } catch (err) {\n self._emit('playerror', sound._id, err);\n }\n };\n\n // If this is streaming audio, make sure the src is set and load again.\n if (node.src === 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA') {\n node.src = self._src;\n node.load();\n }\n\n // Play immediately if ready, or wait for the 'canplaythrough'e vent.\n var loadedNoReadyState = (window && window.ejecta) || (!node.readyState && Howler._navigator.isCocoonJS);\n if (node.readyState >= 3 || loadedNoReadyState) {\n playHtml5();\n } else {\n self._playLock = true;\n self._state = 'loading';\n\n var listener = function() {\n self._state = 'loaded';\n \n // Begin playback.\n playHtml5();\n\n // Clear this listener.\n node.removeEventListener(Howler._canPlayEvent, listener, false);\n };\n node.addEventListener(Howler._canPlayEvent, listener, false);\n\n // Cancel the end timer.\n self._clearTimer(sound._id);\n }\n }\n\n return sound._id;\n },\n\n /**\n * Pause playback and save current position.\n * @param {Number} id The sound ID (empty to pause all in group).\n * @return {Howl}\n */\n pause: function(id) {\n var self = this;\n\n // If the sound hasn't loaded or a play() promise is pending, add it to the load queue to pause when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'pause',\n action: function() {\n self.pause(id);\n }\n });\n\n return self;\n }\n\n // If no id is passed, get all ID's to be paused.\n var ids = self._getSoundIds(id);\n\n for (var i=0; i Returns the group's volume value.\n * volume(id) -> Returns the sound id's current volume.\n * volume(vol) -> Sets the volume of all sounds in this Howl group.\n * volume(vol, id) -> Sets the volume of passed sound id.\n * @return {Howl/Number} Returns self or current volume.\n */\n volume: function() {\n var self = this;\n var args = arguments;\n var vol, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // Return the value of the groups' volume.\n return self._volume;\n } else if (args.length === 1 || args.length === 2 && typeof args[1] === 'undefined') {\n // First check if this is an ID, and if not, assume it is a new volume.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else {\n vol = parseFloat(args[0]);\n }\n } else if (args.length >= 2) {\n vol = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // Update the volume or return the current volume.\n var sound;\n if (typeof vol !== 'undefined' && vol >= 0 && vol <= 1) {\n // If the sound hasn't loaded, add it to the load queue to change volume when capable.\n if (self._state !== 'loaded'|| self._playLock) {\n self._queue.push({\n event: 'volume',\n action: function() {\n self.volume.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Set the group volume.\n if (typeof id === 'undefined') {\n self._volume = vol;\n }\n\n // Update one or all volumes.\n id = self._getSoundIds(id);\n for (var i=0; i 0) ? len / steps : len);\n var lastTick = Date.now();\n\n // Store the value being faded to.\n sound._fadeTo = to;\n\n // Update the volume value on each interval tick.\n sound._interval = setInterval(function() {\n // Update the volume based on the time since the last tick.\n var tick = (Date.now() - lastTick) / len;\n lastTick = Date.now();\n vol += diff * tick;\n\n // Round to within 2 decimal points.\n vol = Math.round(vol * 100) / 100;\n\n // Make sure the volume is in the right bounds.\n if (diff < 0) {\n vol = Math.max(to, vol);\n } else {\n vol = Math.min(to, vol);\n }\n\n // Change the volume.\n if (self._webAudio) {\n sound._volume = vol;\n } else {\n self.volume(vol, sound._id, true);\n }\n\n // Set the group's volume.\n if (isGroup) {\n self._volume = vol;\n }\n\n // When the fade is complete, stop it and fire event.\n if ((to < from && vol <= to) || (to > from && vol >= to)) {\n clearInterval(sound._interval);\n sound._interval = null;\n sound._fadeTo = null;\n self.volume(to, sound._id);\n self._emit('fade', sound._id);\n }\n }, stepLen);\n },\n\n /**\n * Internal method that stops the currently playing fade when\n * a new fade starts, volume is changed or the sound is stopped.\n * @param {Number} id The sound id.\n * @return {Howl}\n */\n _stopFade: function(id) {\n var self = this;\n var sound = self._soundById(id);\n\n if (sound && sound._interval) {\n if (self._webAudio) {\n sound._node.gain.cancelScheduledValues(Howler.ctx.currentTime);\n }\n\n clearInterval(sound._interval);\n sound._interval = null;\n self.volume(sound._fadeTo, id);\n sound._fadeTo = null;\n self._emit('fade', id);\n }\n\n return self;\n },\n\n /**\n * Get/set the loop parameter on a sound. This method can optionally take 0, 1 or 2 arguments.\n * loop() -> Returns the group's loop value.\n * loop(id) -> Returns the sound id's loop value.\n * loop(loop) -> Sets the loop value for all sounds in this Howl group.\n * loop(loop, id) -> Sets the loop value of passed sound id.\n * @return {Howl/Boolean} Returns self or current loop value.\n */\n loop: function() {\n var self = this;\n var args = arguments;\n var loop, id, sound;\n\n // Determine the values for loop and id.\n if (args.length === 0) {\n // Return the grou's loop value.\n return self._loop;\n } else if (args.length === 1) {\n if (typeof args[0] === 'boolean') {\n loop = args[0];\n self._loop = loop;\n } else {\n // Return this sound's loop value.\n sound = self._soundById(parseInt(args[0], 10));\n return sound ? sound._loop : false;\n }\n } else if (args.length === 2) {\n loop = args[0];\n id = parseInt(args[1], 10);\n }\n\n // If no id is passed, get all ID's to be looped.\n var ids = self._getSoundIds(id);\n for (var i=0; i Returns the first sound node's current playback rate.\n * rate(id) -> Returns the sound id's current playback rate.\n * rate(rate) -> Sets the playback rate of all sounds in this Howl group.\n * rate(rate, id) -> Sets the playback rate of passed sound id.\n * @return {Howl/Number} Returns self or the current playback rate.\n */\n rate: function() {\n var self = this;\n var args = arguments;\n var rate, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // We will simply return the current rate of the first node.\n id = self._sounds[0]._id;\n } else if (args.length === 1) {\n // First check if this is an ID, and if not, assume it is a new rate value.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else {\n rate = parseFloat(args[0]);\n }\n } else if (args.length === 2) {\n rate = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // Update the playback rate or return the current value.\n var sound;\n if (typeof rate === 'number') {\n // If the sound hasn't loaded, add it to the load queue to change playback rate when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'rate',\n action: function() {\n self.rate.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Set the group rate.\n if (typeof id === 'undefined') {\n self._rate = rate;\n }\n\n // Update one or all volumes.\n id = self._getSoundIds(id);\n for (var i=0; i Returns the first sound node's current seek position.\n * seek(id) -> Returns the sound id's current seek position.\n * seek(seek) -> Sets the seek position of the first sound node.\n * seek(seek, id) -> Sets the seek position of passed sound id.\n * @return {Howl/Number} Returns self or the current seek position.\n */\n seek: function() {\n var self = this;\n var args = arguments;\n var seek, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // We will simply return the current position of the first node.\n if (self._sounds.length) {\n id = self._sounds[0]._id;\n }\n } else if (args.length === 1) {\n // First check if this is an ID, and if not, assume it is a new seek position.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else if (self._sounds.length) {\n id = self._sounds[0]._id;\n seek = parseFloat(args[0]);\n }\n } else if (args.length === 2) {\n seek = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // If there is no ID, bail out.\n if (typeof id === 'undefined') {\n return 0;\n }\n\n // If the sound hasn't loaded, add it to the load queue to seek when capable.\n if (typeof seek === 'number' && (self._state !== 'loaded' || self._playLock)) {\n self._queue.push({\n event: 'seek',\n action: function() {\n self.seek.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Get the sound.\n var sound = self._soundById(id);\n\n if (sound) {\n if (typeof seek === 'number' && seek >= 0) {\n // Pause the sound and update position for restarting playback.\n var playing = self.playing(id);\n if (playing) {\n self.pause(id, true);\n }\n\n // Move the position of the track and cancel timer.\n sound._seek = seek;\n sound._ended = false;\n self._clearTimer(id);\n\n // Update the seek position for HTML5 Audio.\n if (!self._webAudio && sound._node && !isNaN(sound._node.duration)) {\n sound._node.currentTime = seek;\n }\n\n // Seek and emit when ready.\n var seekAndEmit = function() {\n // Restart the playback if the sound was playing.\n if (playing) {\n self.play(id, true);\n }\n\n self._emit('seek', id);\n };\n\n // Wait for the play lock to be unset before emitting (HTML5 Audio).\n if (playing && !self._webAudio) {\n var emitSeek = function() {\n if (!self._playLock) {\n seekAndEmit();\n } else {\n setTimeout(emitSeek, 0);\n }\n };\n setTimeout(emitSeek, 0);\n } else {\n seekAndEmit();\n }\n } else {\n if (self._webAudio) {\n var realTime = self.playing(id) ? Howler.ctx.currentTime - sound._playStart : 0;\n var rateSeek = sound._rateSeek ? sound._rateSeek - sound._seek : 0;\n return sound._seek + (rateSeek + realTime * Math.abs(sound._rate));\n } else {\n return sound._node.currentTime;\n }\n }\n }\n\n return self;\n },\n\n /**\n * Check if a specific sound is currently playing or not (if id is provided), or check if at least one of the sounds in the group is playing or not.\n * @param {Number} id The sound id to check. If none is passed, the whole sound group is checked.\n * @return {Boolean} True if playing and false if not.\n */\n playing: function(id) {\n var self = this;\n\n // Check the passed sound ID (if any).\n if (typeof id === 'number') {\n var sound = self._soundById(id);\n return sound ? !sound._paused : false;\n }\n\n // Otherwise, loop through all sounds and check if any are playing.\n for (var i=0; i= 0) {\n Howler._howls.splice(index, 1);\n }\n\n // Delete this sound from the cache (if no other Howl is using it).\n var remCache = true;\n for (i=0; i= 0) {\n remCache = false;\n break;\n }\n }\n\n if (cache && remCache) {\n delete cache[self._src];\n }\n\n // Clear global errors.\n Howler.noAudio = false;\n\n // Clear out `self`.\n self._state = 'unloaded';\n self._sounds = [];\n self = null;\n\n return null;\n },\n\n /**\n * Listen to a custom event.\n * @param {String} event Event name.\n * @param {Function} fn Listener to call.\n * @param {Number} id (optional) Only listen to events for this sound.\n * @param {Number} once (INTERNAL) Marks event to fire only once.\n * @return {Howl}\n */\n on: function(event, fn, id, once) {\n var self = this;\n var events = self['_on' + event];\n\n if (typeof fn === 'function') {\n events.push(once ? {id: id, fn: fn, once: once} : {id: id, fn: fn});\n }\n\n return self;\n },\n\n /**\n * Remove a custom event. Call without parameters to remove all events.\n * @param {String} event Event name.\n * @param {Function} fn Listener to remove. Leave empty to remove all.\n * @param {Number} id (optional) Only remove events for this sound.\n * @return {Howl}\n */\n off: function(event, fn, id) {\n var self = this;\n var events = self['_on' + event];\n var i = 0;\n\n // Allow passing just an event and ID.\n if (typeof fn === 'number') {\n id = fn;\n fn = null;\n }\n\n if (fn || id) {\n // Loop through event store and remove the passed function.\n for (i=0; i=0; i--) {\n // Only fire the listener if the correct ID is used.\n if (!events[i].id || events[i].id === id || event === 'load') {\n setTimeout(function(fn) {\n fn.call(this, id, msg);\n }.bind(self, events[i].fn), 0);\n\n // If this event was setup with `once`, remove it.\n if (events[i].once) {\n self.off(event, events[i].fn, events[i].id);\n }\n }\n }\n\n // Pass the event type into load queue so that it can continue stepping.\n self._loadQueue(event);\n\n return self;\n },\n\n /**\n * Queue of actions initiated before the sound has loaded.\n * These will be called in sequence, with the next only firing\n * after the previous has finished executing (even if async like play).\n * @return {Howl}\n */\n _loadQueue: function(event) {\n var self = this;\n\n if (self._queue.length > 0) {\n var task = self._queue[0];\n\n // Remove this task if a matching event was passed.\n if (task.event === event) {\n self._queue.shift();\n self._loadQueue();\n }\n\n // Run the task if no event type is passed.\n if (!event) {\n task.action();\n }\n }\n\n return self;\n },\n\n /**\n * Fired when playback ends at the end of the duration.\n * @param {Sound} sound The sound object to work with.\n * @return {Howl}\n */\n _ended: function(sound) {\n var self = this;\n var sprite = sound._sprite;\n\n // If we are using IE and there was network latency we may be clipping\n // audio before it completes playing. Lets check the node to make sure it\n // believes it has completed, before ending the playback.\n if (!self._webAudio && sound._node && !sound._node.paused && !sound._node.ended && sound._node.currentTime < sound._stop) {\n setTimeout(self._ended.bind(self, sound), 100);\n return self;\n }\n\n // Should this sound loop?\n var loop = !!(sound._loop || self._sprite[sprite][2]);\n\n // Fire the ended event.\n self._emit('end', sound._id);\n\n // Restart the playback for HTML5 Audio loop.\n if (!self._webAudio && loop) {\n self.stop(sound._id, true).play(sound._id);\n }\n\n // Restart this timer if on a Web Audio loop.\n if (self._webAudio && loop) {\n self._emit('play', sound._id);\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n sound._playStart = Howler.ctx.currentTime;\n\n var timeout = ((sound._stop - sound._start) * 1000) / Math.abs(sound._rate);\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n // Mark the node as paused.\n if (self._webAudio && !loop) {\n sound._paused = true;\n sound._ended = true;\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n self._clearTimer(sound._id);\n\n // Clean up the buffer source.\n self._cleanBuffer(sound._node);\n\n // Attempt to auto-suspend AudioContext if no sounds are still playing.\n Howler._autoSuspend();\n }\n\n // When using a sprite, end the track.\n if (!self._webAudio && !loop) {\n self.stop(sound._id, true);\n }\n\n return self;\n },\n\n /**\n * Clear the end timer for a sound playback.\n * @param {Number} id The sound ID.\n * @return {Howl}\n */\n _clearTimer: function(id) {\n var self = this;\n\n if (self._endTimers[id]) {\n // Clear the timeout or remove the ended listener.\n if (typeof self._endTimers[id] !== 'function') {\n clearTimeout(self._endTimers[id]);\n } else {\n var sound = self._soundById(id);\n if (sound && sound._node) {\n sound._node.removeEventListener('ended', self._endTimers[id], false);\n }\n }\n\n delete self._endTimers[id];\n }\n\n return self;\n },\n\n /**\n * Return the sound identified by this ID, or return null.\n * @param {Number} id Sound ID\n * @return {Object} Sound object or null.\n */\n _soundById: function(id) {\n var self = this;\n\n // Loop through all sounds and find the one with this ID.\n for (var i=0; i=0; i--) {\n if (cnt <= limit) {\n return;\n }\n\n if (self._sounds[i]._ended) {\n // Disconnect the audio source when using Web Audio.\n if (self._webAudio && self._sounds[i]._node) {\n self._sounds[i]._node.disconnect(0);\n }\n\n // Remove sounds until we have the pool size.\n self._sounds.splice(i, 1);\n cnt--;\n }\n }\n },\n\n /**\n * Get all ID's from the sounds pool.\n * @param {Number} id Only return one ID if one is passed.\n * @return {Array} Array of IDs.\n */\n _getSoundIds: function(id) {\n var self = this;\n\n if (typeof id === 'undefined') {\n var ids = [];\n for (var i=0; i= 0;\n\n if (Howler._scratchBuffer && node.bufferSource) {\n node.bufferSource.onended = null;\n node.bufferSource.disconnect(0);\n if (isIOS) {\n try { node.bufferSource.buffer = Howler._scratchBuffer; } catch(e) {}\n }\n }\n node.bufferSource = null;\n\n return self;\n },\n\n /**\n * Set the source to a 0-second silence to stop any downloading (except in IE).\n * @param {Object} node Audio node to clear.\n */\n _clearSound: function(node) {\n var checkIE = /MSIE |Trident\\//.test(Howler._navigator && Howler._navigator.userAgent);\n if (!checkIE) {\n node.src = 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA';\n }\n }\n };\n\n /** Single Sound Methods **/\n /***************************************************************************/\n\n /**\n * Setup the sound object, which each node attached to a Howl group is contained in.\n * @param {Object} howl The Howl parent group.\n */\n var Sound = function(howl) {\n this._parent = howl;\n this.init();\n };\n Sound.prototype = {\n /**\n * Initialize a new Sound object.\n * @return {Sound}\n */\n init: function() {\n var self = this;\n var parent = self._parent;\n\n // Setup the default parameters.\n self._muted = parent._muted;\n self._loop = parent._loop;\n self._volume = parent._volume;\n self._rate = parent._rate;\n self._seek = 0;\n self._paused = true;\n self._ended = true;\n self._sprite = '__default';\n\n // Generate a unique ID for this sound.\n self._id = ++Howler._counter;\n\n // Add itself to the parent's pool.\n parent._sounds.push(self);\n\n // Create the new node.\n self.create();\n\n return self;\n },\n\n /**\n * Create and setup a new sound object, whether HTML5 Audio or Web Audio.\n * @return {Sound}\n */\n create: function() {\n var self = this;\n var parent = self._parent;\n var volume = (Howler._muted || self._muted || self._parent._muted) ? 0 : self._volume;\n\n if (parent._webAudio) {\n // Create the gain node for controlling volume (the source will connect to this).\n self._node = (typeof Howler.ctx.createGain === 'undefined') ? Howler.ctx.createGainNode() : Howler.ctx.createGain();\n self._node.gain.setValueAtTime(volume, Howler.ctx.currentTime);\n self._node.paused = true;\n self._node.connect(Howler.masterGain);\n } else if (!Howler.noAudio) {\n // Get an unlocked Audio object from the pool.\n self._node = Howler._obtainHtml5Audio();\n\n // Listen for errors (http://dev.w3.org/html5/spec-author-view/spec.html#mediaerror).\n self._errorFn = self._errorListener.bind(self);\n self._node.addEventListener('error', self._errorFn, false);\n\n // Listen for 'canplaythrough' event to let us know the sound is ready.\n self._loadFn = self._loadListener.bind(self);\n self._node.addEventListener(Howler._canPlayEvent, self._loadFn, false);\n\n // Listen for the 'ended' event on the sound to account for edge-case where\n // a finite sound has a duration of Infinity.\n self._endFn = self._endListener.bind(self);\n self._node.addEventListener('ended', self._endFn, false);\n\n // Setup the new audio node.\n self._node.src = parent._src;\n self._node.preload = parent._preload === true ? 'auto' : parent._preload;\n self._node.volume = volume * Howler.volume();\n\n // Begin loading the source.\n self._node.load();\n }\n\n return self;\n },\n\n /**\n * Reset the parameters of this sound to the original state (for recycle).\n * @return {Sound}\n */\n reset: function() {\n var self = this;\n var parent = self._parent;\n\n // Reset all of the parameters of this sound.\n self._muted = parent._muted;\n self._loop = parent._loop;\n self._volume = parent._volume;\n self._rate = parent._rate;\n self._seek = 0;\n self._rateSeek = 0;\n self._paused = true;\n self._ended = true;\n self._sprite = '__default';\n\n // Generate a new ID so that it isn't confused with the previous sound.\n self._id = ++Howler._counter;\n\n return self;\n },\n\n /**\n * HTML5 Audio error listener callback.\n */\n _errorListener: function() {\n var self = this;\n\n // Fire an error event and pass back the code.\n self._parent._emit('loaderror', self._id, self._node.error ? self._node.error.code : 0);\n\n // Clear the event listener.\n self._node.removeEventListener('error', self._errorFn, false);\n },\n\n /**\n * HTML5 Audio canplaythrough listener callback.\n */\n _loadListener: function() {\n var self = this;\n var parent = self._parent;\n\n // Round up the duration to account for the lower precision in HTML5 Audio.\n parent._duration = Math.ceil(self._node.duration * 10) / 10;\n\n // Setup a sprite if none is defined.\n if (Object.keys(parent._sprite).length === 0) {\n parent._sprite = {__default: [0, parent._duration * 1000]};\n }\n\n if (parent._state !== 'loaded') {\n parent._state = 'loaded';\n parent._emit('load');\n parent._loadQueue();\n }\n\n // Clear the event listener.\n self._node.removeEventListener(Howler._canPlayEvent, self._loadFn, false);\n },\n\n /**\n * HTML5 Audio ended listener callback.\n */\n _endListener: function() {\n var self = this;\n var parent = self._parent;\n\n // Only handle the `ended`` event if the duration is Infinity.\n if (parent._duration === Infinity) {\n // Update the parent duration to match the real audio duration.\n // Round up the duration to account for the lower precision in HTML5 Audio.\n parent._duration = Math.ceil(self._node.duration * 10) / 10;\n\n // Update the sprite that corresponds to the real duration.\n if (parent._sprite.__default[1] === Infinity) {\n parent._sprite.__default[1] = parent._duration * 1000;\n }\n\n // Run the regular ended method.\n parent._ended(self);\n }\n\n // Clear the event listener since the duration is now correct.\n self._node.removeEventListener('ended', self._endFn, false);\n }\n };\n\n /** Helper Methods **/\n /***************************************************************************/\n\n var cache = {};\n\n /**\n * Buffer a sound from URL, Data URI or cache and decode to audio source (Web Audio API).\n * @param {Howl} self\n */\n var loadBuffer = function(self) {\n var url = self._src;\n\n // Check if the buffer has already been cached and use it instead.\n if (cache[url]) {\n // Set the duration from the cache.\n self._duration = cache[url].duration;\n\n // Load the sound into this Howl.\n loadSound(self);\n\n return;\n }\n\n if (/^data:[^;]+;base64,/.test(url)) {\n // Decode the base64 data URI without XHR, since some browsers don't support it.\n var data = atob(url.split(',')[1]);\n var dataView = new Uint8Array(data.length);\n for (var i=0; i 0) {\n cache[self._src] = buffer;\n loadSound(self, buffer);\n } else {\n error();\n }\n };\n\n // Decode the buffer into an audio source.\n if (typeof Promise !== 'undefined' && Howler.ctx.decodeAudioData.length === 1) {\n Howler.ctx.decodeAudioData(arraybuffer).then(success).catch(error);\n } else {\n Howler.ctx.decodeAudioData(arraybuffer, success, error);\n }\n }\n\n /**\n * Sound is now loaded, so finish setting everything up and fire the loaded event.\n * @param {Howl} self\n * @param {Object} buffer The decoded buffer sound source.\n */\n var loadSound = function(self, buffer) {\n // Set the duration.\n if (buffer && !self._duration) {\n self._duration = buffer.duration;\n }\n\n // Setup a sprite if none is defined.\n if (Object.keys(self._sprite).length === 0) {\n self._sprite = {__default: [0, self._duration * 1000]};\n }\n\n // Fire the loaded event.\n if (self._state !== 'loaded') {\n self._state = 'loaded';\n self._emit('load');\n self._loadQueue();\n }\n };\n\n /**\n * Setup the audio context when available, or switch to HTML5 Audio mode.\n */\n var setupAudioContext = function() {\n // If we have already detected that Web Audio isn't supported, don't run this step again.\n if (!Howler.usingWebAudio) {\n return;\n }\n\n // Check if we are using Web Audio and setup the AudioContext if we are.\n try {\n if (typeof AudioContext !== 'undefined') {\n Howler.ctx = new AudioContext();\n } else if (typeof webkitAudioContext !== 'undefined') {\n Howler.ctx = new webkitAudioContext();\n } else {\n Howler.usingWebAudio = false;\n }\n } catch(e) {\n Howler.usingWebAudio = false;\n }\n\n // If the audio context creation still failed, set using web audio to false.\n if (!Howler.ctx) {\n Howler.usingWebAudio = false;\n }\n\n // Check if a webview is being used on iOS8 or earlier (rather than the browser).\n // If it is, disable Web Audio as it causes crashing.\n var iOS = (/iP(hone|od|ad)/.test(Howler._navigator && Howler._navigator.platform));\n var appVersion = Howler._navigator && Howler._navigator.appVersion.match(/OS (\\d+)_(\\d+)_?(\\d+)?/);\n var version = appVersion ? parseInt(appVersion[1], 10) : null;\n if (iOS && version && version < 9) {\n var safari = /safari/.test(Howler._navigator && Howler._navigator.userAgent.toLowerCase());\n if (Howler._navigator && !safari) {\n Howler.usingWebAudio = false;\n }\n }\n\n // Create and expose the master GainNode when using Web Audio (useful for plugins or advanced usage).\n if (Howler.usingWebAudio) {\n Howler.masterGain = (typeof Howler.ctx.createGain === 'undefined') ? Howler.ctx.createGainNode() : Howler.ctx.createGain();\n Howler.masterGain.gain.setValueAtTime(Howler._muted ? 0 : Howler._volume, Howler.ctx.currentTime);\n Howler.masterGain.connect(Howler.ctx.destination);\n }\n\n // Re-run the setup on Howler.\n Howler._setup();\n };\n\n // Add support for AMD (Asynchronous Module Definition) libraries such as require.js.\n if (typeof define === 'function' && define.amd) {\n define([], function() {\n return {\n Howler: Howler,\n Howl: Howl\n };\n });\n }\n\n // Add support for CommonJS libraries such as browserify.\n if (typeof exports !== 'undefined') {\n exports.Howler = Howler;\n exports.Howl = Howl;\n }\n\n // Add to global in Node.js (for testing, etc).\n if (typeof global !== 'undefined') {\n global.HowlerGlobal = HowlerGlobal;\n global.Howler = Howler;\n global.Howl = Howl;\n global.Sound = Sound;\n } else if (typeof window !== 'undefined') { // Define globally in case AMD is not available or unused.\n window.HowlerGlobal = HowlerGlobal;\n window.Howler = Howler;\n window.Howl = Howl;\n window.Sound = Sound;\n }\n})();\n\n\n/*!\n * Spatial Plugin - Adds support for stereo and 3D audio where Web Audio is supported.\n * \n * howler.js v2.2.3\n * howlerjs.com\n *\n * (c) 2013-2020, James Simpson of GoldFire Studios\n * goldfirestudios.com\n *\n * MIT License\n */\n\n(function() {\n\n 'use strict';\n\n // Setup default properties.\n HowlerGlobal.prototype._pos = [0, 0, 0];\n HowlerGlobal.prototype._orientation = [0, 0, -1, 0, 1, 0];\n\n /** Global Methods **/\n /***************************************************************************/\n\n /**\n * Helper method to update the stereo panning position of all current Howls.\n * Future Howls will not use this value unless explicitly set.\n * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right.\n * @return {Howler/Number} Self or current stereo panning value.\n */\n HowlerGlobal.prototype.stereo = function(pan) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Loop through all Howls and update their stereo panning.\n for (var i=self._howls.length-1; i>=0; i--) {\n self._howls[i].stereo(pan);\n }\n\n return self;\n };\n\n /**\n * Get/set the position of the listener in 3D cartesian space. Sounds using\n * 3D position will be relative to the listener's position.\n * @param {Number} x The x-position of the listener.\n * @param {Number} y The y-position of the listener.\n * @param {Number} z The z-position of the listener.\n * @return {Howler/Array} Self or current listener position.\n */\n HowlerGlobal.prototype.pos = function(x, y, z) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n y = (typeof y !== 'number') ? self._pos[1] : y;\n z = (typeof z !== 'number') ? self._pos[2] : z;\n\n if (typeof x === 'number') {\n self._pos = [x, y, z];\n\n if (typeof self.ctx.listener.positionX !== 'undefined') {\n self.ctx.listener.positionX.setTargetAtTime(self._pos[0], Howler.ctx.currentTime, 0.1);\n self.ctx.listener.positionY.setTargetAtTime(self._pos[1], Howler.ctx.currentTime, 0.1);\n self.ctx.listener.positionZ.setTargetAtTime(self._pos[2], Howler.ctx.currentTime, 0.1);\n } else {\n self.ctx.listener.setPosition(self._pos[0], self._pos[1], self._pos[2]);\n }\n } else {\n return self._pos;\n }\n\n return self;\n };\n\n /**\n * Get/set the direction the listener is pointing in the 3D cartesian space.\n * A front and up vector must be provided. The front is the direction the\n * face of the listener is pointing, and up is the direction the top of the\n * listener is pointing. Thus, these values are expected to be at right angles\n * from each other.\n * @param {Number} x The x-orientation of the listener.\n * @param {Number} y The y-orientation of the listener.\n * @param {Number} z The z-orientation of the listener.\n * @param {Number} xUp The x-orientation of the top of the listener.\n * @param {Number} yUp The y-orientation of the top of the listener.\n * @param {Number} zUp The z-orientation of the top of the listener.\n * @return {Howler/Array} Returns self or the current orientation vectors.\n */\n HowlerGlobal.prototype.orientation = function(x, y, z, xUp, yUp, zUp) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n var or = self._orientation;\n y = (typeof y !== 'number') ? or[1] : y;\n z = (typeof z !== 'number') ? or[2] : z;\n xUp = (typeof xUp !== 'number') ? or[3] : xUp;\n yUp = (typeof yUp !== 'number') ? or[4] : yUp;\n zUp = (typeof zUp !== 'number') ? or[5] : zUp;\n\n if (typeof x === 'number') {\n self._orientation = [x, y, z, xUp, yUp, zUp];\n\n if (typeof self.ctx.listener.forwardX !== 'undefined') {\n self.ctx.listener.forwardX.setTargetAtTime(x, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.forwardY.setTargetAtTime(y, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.forwardZ.setTargetAtTime(z, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upX.setTargetAtTime(xUp, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upY.setTargetAtTime(yUp, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upZ.setTargetAtTime(zUp, Howler.ctx.currentTime, 0.1);\n } else {\n self.ctx.listener.setOrientation(x, y, z, xUp, yUp, zUp);\n }\n } else {\n return or;\n }\n\n return self;\n };\n\n /** Group Methods **/\n /***************************************************************************/\n\n /**\n * Add new properties to the core init.\n * @param {Function} _super Core init method.\n * @return {Howl}\n */\n Howl.prototype.init = (function(_super) {\n return function(o) {\n var self = this;\n\n // Setup user-defined default properties.\n self._orientation = o.orientation || [1, 0, 0];\n self._stereo = o.stereo || null;\n self._pos = o.pos || null;\n self._pannerAttr = {\n coneInnerAngle: typeof o.coneInnerAngle !== 'undefined' ? o.coneInnerAngle : 360,\n coneOuterAngle: typeof o.coneOuterAngle !== 'undefined' ? o.coneOuterAngle : 360,\n coneOuterGain: typeof o.coneOuterGain !== 'undefined' ? o.coneOuterGain : 0,\n distanceModel: typeof o.distanceModel !== 'undefined' ? o.distanceModel : 'inverse',\n maxDistance: typeof o.maxDistance !== 'undefined' ? o.maxDistance : 10000,\n panningModel: typeof o.panningModel !== 'undefined' ? o.panningModel : 'HRTF',\n refDistance: typeof o.refDistance !== 'undefined' ? o.refDistance : 1,\n rolloffFactor: typeof o.rolloffFactor !== 'undefined' ? o.rolloffFactor : 1\n };\n\n // Setup event listeners.\n self._onstereo = o.onstereo ? [{fn: o.onstereo}] : [];\n self._onpos = o.onpos ? [{fn: o.onpos}] : [];\n self._onorientation = o.onorientation ? [{fn: o.onorientation}] : [];\n\n // Complete initilization with howler.js core's init function.\n return _super.call(this, o);\n };\n })(Howl.prototype.init);\n\n /**\n * Get/set the stereo panning of the audio source for this sound or all in the group.\n * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right.\n * @param {Number} id (optional) The sound ID. If none is passed, all in group will be updated.\n * @return {Howl/Number} Returns self or the current stereo panning value.\n */\n Howl.prototype.stereo = function(pan, id) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // If the sound hasn't loaded, add it to the load queue to change stereo pan when capable.\n if (self._state !== 'loaded') {\n self._queue.push({\n event: 'stereo',\n action: function() {\n self.stereo(pan, id);\n }\n });\n\n return self;\n }\n\n // Check for PannerStereoNode support and fallback to PannerNode if it doesn't exist.\n var pannerType = (typeof Howler.ctx.createStereoPanner === 'undefined') ? 'spatial' : 'stereo';\n\n // Setup the group's stereo panning if no ID is passed.\n if (typeof id === 'undefined') {\n // Return the group's stereo panning if no parameters are passed.\n if (typeof pan === 'number') {\n self._stereo = pan;\n self._pos = [pan, 0, 0];\n } else {\n return self._stereo;\n }\n }\n\n // Change the streo panning of one or all sounds in group.\n var ids = self._getSoundIds(id);\n for (var i=0; i Returns the group's values.\n * pannerAttr(id) -> Returns the sound id's values.\n * pannerAttr(o) -> Set's the values of all sounds in this Howl group.\n * pannerAttr(o, id) -> Set's the values of passed sound id.\n *\n * Attributes:\n * coneInnerAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees,\n * inside of which there will be no volume reduction.\n * coneOuterAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees,\n * outside of which the volume will be reduced to a constant value of `coneOuterGain`.\n * coneOuterGain - (0 by default) A parameter for directional audio sources, this is the gain outside of the\n * `coneOuterAngle`. It is a linear value in the range `[0, 1]`.\n * distanceModel - ('inverse' by default) Determines algorithm used to reduce volume as audio moves away from\n * listener. Can be `linear`, `inverse` or `exponential.\n * maxDistance - (10000 by default) The maximum distance between source and listener, after which the volume\n * will not be reduced any further.\n * refDistance - (1 by default) A reference distance for reducing volume as source moves further from the listener.\n * This is simply a variable of the distance model and has a different effect depending on which model\n * is used and the scale of your coordinates. Generally, volume will be equal to 1 at this distance.\n * rolloffFactor - (1 by default) How quickly the volume reduces as source moves from listener. This is simply a\n * variable of the distance model and can be in the range of `[0, 1]` with `linear` and `[0, ∞]`\n * with `inverse` and `exponential`.\n * panningModel - ('HRTF' by default) Determines which spatialization algorithm is used to position audio.\n * Can be `HRTF` or `equalpower`.\n *\n * @return {Howl/Object} Returns self or current panner attributes.\n */\n Howl.prototype.pannerAttr = function() {\n var self = this;\n var args = arguments;\n var o, id, sound;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // Return the group's panner attribute values.\n return self._pannerAttr;\n } else if (args.length === 1) {\n if (typeof args[0] === 'object') {\n o = args[0];\n\n // Set the grou's panner attribute values.\n if (typeof id === 'undefined') {\n if (!o.pannerAttr) {\n o.pannerAttr = {\n coneInnerAngle: o.coneInnerAngle,\n coneOuterAngle: o.coneOuterAngle,\n coneOuterGain: o.coneOuterGain,\n distanceModel: o.distanceModel,\n maxDistance: o.maxDistance,\n refDistance: o.refDistance,\n rolloffFactor: o.rolloffFactor,\n panningModel: o.panningModel\n };\n }\n\n self._pannerAttr = {\n coneInnerAngle: typeof o.pannerAttr.coneInnerAngle !== 'undefined' ? o.pannerAttr.coneInnerAngle : self._coneInnerAngle,\n coneOuterAngle: typeof o.pannerAttr.coneOuterAngle !== 'undefined' ? o.pannerAttr.coneOuterAngle : self._coneOuterAngle,\n coneOuterGain: typeof o.pannerAttr.coneOuterGain !== 'undefined' ? o.pannerAttr.coneOuterGain : self._coneOuterGain,\n distanceModel: typeof o.pannerAttr.distanceModel !== 'undefined' ? o.pannerAttr.distanceModel : self._distanceModel,\n maxDistance: typeof o.pannerAttr.maxDistance !== 'undefined' ? o.pannerAttr.maxDistance : self._maxDistance,\n refDistance: typeof o.pannerAttr.refDistance !== 'undefined' ? o.pannerAttr.refDistance : self._refDistance,\n rolloffFactor: typeof o.pannerAttr.rolloffFactor !== 'undefined' ? o.pannerAttr.rolloffFactor : self._rolloffFactor,\n panningModel: typeof o.pannerAttr.panningModel !== 'undefined' ? o.pannerAttr.panningModel : self._panningModel\n };\n }\n } else {\n // Return this sound's panner attribute values.\n sound = self._soundById(parseInt(args[0], 10));\n return sound ? sound._pannerAttr : self._pannerAttr;\n }\n } else if (args.length === 2) {\n o = args[0];\n id = parseInt(args[1], 10);\n }\n\n // Update the values of the specified sounds.\n var ids = self._getSoundIds(id);\n for (var i=0; ie in n?ce(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,g=(n,e)=>{for(var t in e||(e={}))le.call(e,t)&&te(n,t,e[t]);if(ee)for(var t of ee(e))se.call(e,t)&&te(n,t,e[t]);return n},Z=(n,e)=>de(n,pe(e));import{l as N,c as R}from"./index.36354f76.js";function me(n,e){return e.forEach(function(t){t&&typeof t!="string"&&!Array.isArray(t)&&Object.keys(t).forEach(function(o){if(o!=="default"&&!(o in n)){var s=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(n,o,s.get?s:{enumerable:!0,get:function(){return t[o]}})}})}),Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}var w={},q={};Object.defineProperty(q,"__esModule",{value:!0});q.initCollections=void 0;function ue(n){n.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"]),n.register("loot_pool_entry_type",["minecraft:empty","minecraft:item","minecraft:tag","minecraft:loot_table","minecraft:alternatives","minecraft:sequence","minecraft:group","minecraft:dynamic"]),n.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"]),n.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"]),n.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"]),n.register("structure_feature",["pillager_outpost","mineshaft","mansion","jungle_pyramid","desert_pyramid","igloo","shipwreck","swamp_hut","stronghold","monument","ocean_ruin","fortress","endcity","buried_treasure","village"]),n.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),n.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"]),n.register("slot",["mainhand","offhand","head","chest","legs","feet"]),n.register("gamemode",["survival","creative","adventure","spectator"]),n.register("entity_source",["this","direct_killer","killer","killer_player"]),n.register("copy_source",["block_entity","this","killer","killer_player"]),n.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),n.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"]),n.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"]),n.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"]),n.register("cat_texture",["textures/entity/cat/tabby.png","textures/entity/cat/black.png","textures/entity/cat/red.png","textures/entity/cat/siamese.png","textures/entity/cat/british_shorthair.png","textures/entity/cat/calico.png","textures/entity/cat/persian.png","textures/entity/cat/ragdoll.png","textures/entity/cat/white.png","textures/entity/cat/jellie.png","textures/entity/cat/all_black.png"])}q.initCollections=ue;var A={},F={},L={};(function(n){Object.defineProperty(n,"__esModule",{value:!0}),n.initCommonSchemas=n.Range=n.ConditionCases=void 0;const e=N;function t(o,s){const c=e.StringNode.bind(void 0,s),r=e.Reference.bind(void 0,o);o.register("block_state",(0,e.Mod)((0,e.ObjectNode)({Name:c({validator:"resource",params:{pool:"block"}}),Properties:(0,e.Opt)((0,e.MapNode)(c(),c(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),o.register("fluid_state",(0,e.Mod)((0,e.ObjectNode)({Name:c({validator:"resource",params:{pool:"fluid"}}),Properties:(0,e.Opt)((0,e.MapNode)(c(),c()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),o.register("block_pos",(0,e.Mod)((0,e.ListNode)((0,e.NumberNode)({integer:!0})),{default:()=>[0,0,0]})),n.Range=d=>(0,e.ChoiceNode)([...d!=null&&d.forceRange?[]:[{type:"number",node:(0,e.NumberNode)(d),change:_=>{var u,k,C;return _===void 0?0:(C=(k=(u=_.min)!==null&&u!==void 0?u:_.max)!==null&&k!==void 0?k:_.n)!==null&&C!==void 0?C:0}}],{type:"object",priority:-1,node:(0,e.ObjectNode)({min:d!=null&&d.bounds?(0,e.NumberNode)(d):(0,e.Opt)((0,e.NumberNode)(d)),max:d!=null&&d.bounds?(0,e.NumberNode)(d):(0,e.Opt)((0,e.NumberNode)(d))},{context:"range"}),change:_=>({min:typeof _=="number"?_:_===void 0?1:_.n,max:typeof _=="number"?_:_===void 0?1:_.n})},...d!=null&&d.allowBinomial?[{type:"binomial",node:(0,e.ObjectNode)({type:c({enum:["minecraft:binomial"]}),n:(0,e.NumberNode)({integer:!0,min:0}),p:(0,e.NumberNode)({min:0,max:1})},{context:"range"}),match:_=>_!==void 0&&_.type==="minecraft:binomial",change:_=>{var u,k;return{type:"minecraft:binomial",n:typeof _=="number"?_:_===void 0?1:(k=(u=_.min)!==null&&u!==void 0?u:_.max)!==null&&k!==void 0?k:1,p:.5}}}]:[]],{choiceContext:"range"}),n.ConditionCases={"minecraft:alternative":{terms:(0,e.ListNode)(r("condition"))},"minecraft:block_state_property":{block:c({validator:"resource",params:{pool:"block"}}),properties:(0,e.MapNode)(c(),c(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:r("damage_source_predicate")},"minecraft:entity_properties":{entity:c({enum:"entity_source"}),predicate:r("entity_predicate")},"minecraft:entity_scores":{entity:c({enum:"entity_source"}),scores:(0,e.MapNode)(c({validator:"objective"}),(0,n.Range)({forceRange:!0,bounds:!0}))},"minecraft:inverted":{term:r("condition")},"minecraft:killed_by_player":{inverse:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:location_check":{offsetX:(0,e.Opt)((0,e.NumberNode)({integer:!0})),offsetY:(0,e.Opt)((0,e.NumberNode)({integer:!0})),offsetZ:(0,e.Opt)((0,e.NumberNode)({integer:!0})),predicate:r("location_predicate")},"minecraft:match_tool":{predicate:r("item_predicate")},"minecraft:random_chance":{chance:(0,e.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,e.NumberNode)({min:0,max:1}),looting_multiplier:(0,e.NumberNode)()},"minecraft:reference":{name:c({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:c({validator:"resource",params:{pool:"enchantment"}}),chances:(0,e.ListNode)((0,e.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:(0,n.Range)(),period:(0,e.Opt)((0,e.NumberNode)())},"minecraft:weather_check":{raining:(0,e.Opt)((0,e.BooleanNode)()),thundering:(0,e.Opt)((0,e.BooleanNode)())}}}n.initCommonSchemas=t})(L);var J={};(function(n){Object.defineProperty(n,"__esModule",{value:!0}),n.initPredicatesSchemas=n.LocationFields=void 0;const e=N,t=L;function o(s,c){const r=e.Reference.bind(void 0,s),d=e.StringNode.bind(void 0,c),_=(0,e.ChoiceNode)([{type:"string",node:d(),change:u=>typeof u=="boolean"||typeof u=="number"?u.toString():""},{type:"number",node:(0,e.NumberNode)(),change:u=>typeof u=="string"?parseInt(u):0},{type:"object",node:(0,e.ObjectNode)({min:(0,e.Opt)((0,e.NumberNode)({integer:!0})),max:(0,e.Opt)((0,e.NumberNode)({integer:!0}))}),change:u=>typeof u=="number"?{min:u,max:u}:{}},{type:"boolean",node:(0,e.BooleanNode)(),change:u=>u==="true"||u===1}]);s.register("item_predicate",(0,e.ObjectNode)({item:(0,e.Opt)(d({validator:"resource",params:{pool:"item"}})),tag:(0,e.Opt)(d({validator:"resource",params:{pool:"$tag/item"}})),count:(0,e.Opt)((0,t.Range)()),durability:(0,e.Opt)((0,t.Range)()),potion:(0,e.Opt)(d({validator:"resource",params:{pool:"potion"}})),nbt:(0,e.Opt)(d({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,e.Opt)((0,e.ListNode)(r("enchantment_predicate")))},{context:"item"})),s.register("enchantment_predicate",(0,e.ObjectNode)({enchantment:(0,e.Opt)(d({validator:"resource",params:{pool:"enchantment"}})),levels:(0,e.Opt)((0,t.Range)())},{context:"enchantment"})),s.register("block_predicate",(0,e.ObjectNode)({block:(0,e.Opt)(d({validator:"resource",params:{pool:"block"}})),tag:(0,e.Opt)(d({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,e.Opt)(d({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,e.Opt)((0,e.MapNode)(d(),_,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),s.register("fluid_predicate",(0,e.ObjectNode)({fluid:(0,e.Opt)(d({validator:"resource",params:{pool:"fluid"}})),tag:(0,e.Opt)(d({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,e.Opt)((0,e.MapNode)(d(),_))},{context:"fluid"})),n.LocationFields={position:(0,e.Opt)((0,e.ObjectNode)({x:(0,e.Opt)((0,t.Range)()),y:(0,e.Opt)((0,t.Range)()),z:(0,e.Opt)((0,t.Range)())})),biome:(0,e.Opt)(d({enum:"biome"})),feature:(0,e.Opt)(d({enum:"structure_feature"})),dimension:(0,e.Opt)(d({enum:"dimension"})),light:(0,e.Opt)((0,e.ObjectNode)({light:(0,e.Opt)((0,t.Range)({integer:!0,min:0,max:15}))})),block:(0,e.Opt)(r("block_predicate")),fluid:(0,e.Opt)(r("fluid_predicate"))},s.register("location_predicate",(0,e.ObjectNode)(n.LocationFields,{context:"location"})),s.register("statistic_predicate",(0,e.ObjectNode)({type:d({validator:"resource",params:{pool:"stat_type"}}),stat:d(),value:(0,t.Range)(),[e.Switch]:[{push:"type"}],[e.Case]:{"minecraft:mined":{stat:d({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:d({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:d({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:d({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:d({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:d({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:d({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:d({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:d({validator:"resource",params:{pool:"custom_stat"}})}}})),s.register("player_predicate",(0,e.ObjectNode)({gamemode:(0,e.Opt)(d({enum:"gamemode"})),level:(0,e.Opt)((0,t.Range)()),advancements:(0,e.Opt)((0,e.MapNode)(d({validator:"resource",params:{pool:"$advancement"}}),(0,e.ChoiceNode)([{type:"boolean",node:(0,e.BooleanNode)(),change:u=>!0},{type:"object",node:(0,e.MapNode)(d(),(0,e.BooleanNode)())}]))),recipes:(0,e.Opt)((0,e.MapNode)(d({validator:"resource",params:{pool:"$recipe"}}),(0,e.BooleanNode)())),stats:(0,e.Opt)((0,e.ListNode)(r("statistic_predicate")))},{context:"player"})),s.register("status_effect_predicate",(0,e.ObjectNode)({amplifier:(0,e.Opt)((0,t.Range)()),duration:(0,e.Opt)((0,t.Range)()),ambient:(0,e.Opt)((0,e.BooleanNode)()),visible:(0,e.Opt)((0,e.BooleanNode)())},{context:"status_effect"})),s.register("distance_predicate",(0,e.ObjectNode)({x:(0,e.Opt)((0,t.Range)()),y:(0,e.Opt)((0,t.Range)()),z:(0,e.Opt)((0,t.Range)()),absolute:(0,e.Opt)((0,t.Range)()),horizontal:(0,e.Opt)((0,t.Range)())},{context:"distance"})),s.register("entity_predicate",(0,e.ObjectNode)({type:(0,e.Opt)(d({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:(0,e.Opt)(d({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,e.Opt)(d({validator:"team"})),location:(0,e.Opt)(r("location_predicate")),distance:(0,e.Opt)(r("distance_predicate")),flags:(0,e.Opt)((0,e.ObjectNode)({is_on_fire:(0,e.Opt)((0,e.BooleanNode)()),is_sneaking:(0,e.Opt)((0,e.BooleanNode)()),is_sprinting:(0,e.Opt)((0,e.BooleanNode)()),is_swimming:(0,e.Opt)((0,e.BooleanNode)()),is_baby:(0,e.Opt)((0,e.BooleanNode)())})),equipment:(0,e.Opt)((0,e.MapNode)(d({enum:"slot"}),r("item_predicate"))),player:(0,e.Opt)(r("player_predicate")),catType:(0,e.Opt)(d({enum:"cat_texture"})),effects:(0,e.Opt)((0,e.MapNode)(d({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},{context:"entity"})),s.register("damage_source_predicate",(0,e.ObjectNode)({is_explosion:(0,e.Opt)((0,e.BooleanNode)()),is_fire:(0,e.Opt)((0,e.BooleanNode)()),is_magic:(0,e.Opt)((0,e.BooleanNode)()),is_projectile:(0,e.Opt)((0,e.BooleanNode)()),is_lightning:(0,e.Opt)((0,e.BooleanNode)()),bypasses_armor:(0,e.Opt)((0,e.BooleanNode)()),bypasses_invulnerability:(0,e.Opt)((0,e.BooleanNode)()),bypasses_magic:(0,e.Opt)((0,e.BooleanNode)()),source_entity:(0,e.Opt)(r("entity_predicate")),direct_entity:(0,e.Opt)(r("entity_predicate"))},{context:"damage_source"})),s.register("damage_predicate",(0,e.ObjectNode)({dealt:(0,e.Opt)((0,t.Range)()),taken:(0,e.Opt)((0,t.Range)()),blocked:(0,e.Opt)((0,e.BooleanNode)()),source_entity:(0,e.Opt)(r("entity_predicate")),type:(0,e.Opt)(r("damage_source_predicate"))},{context:"damage"}))}n.initPredicatesSchemas=o})(J);Object.defineProperty(F,"__esModule",{value:!0});F.initAdvancementSchemas=void 0;const i=N,h=L,T=J;function _e(n,e){const t=i.Reference.bind(void 0,n),o=i.StringNode.bind(void 0,e);n.register("advancement",(0,i.Mod)((0,i.ObjectNode)({display:(0,i.Opt)((0,i.Mod)((0,i.ObjectNode)({icon:(0,i.ObjectNode)({item:o({validator:"resource",params:{pool:"item"}}),nbt:(0,i.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:t("text_component"),description:t("text_component"),background:(0,i.Opt)(o()),frame:(0,i.Opt)(o({enum:["task","challenge","goal"]})),show_toast:(0,i.Opt)((0,i.BooleanNode)()),announce_to_chat:(0,i.Opt)((0,i.BooleanNode)()),hidden:(0,i.Opt)((0,i.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,i.Opt)(o({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,i.MapNode)(o(),t("advancement_criteria")),requirements:(0,i.Opt)((0,i.ListNode)((0,i.ListNode)(o()))),rewards:(0,i.Opt)((0,i.ObjectNode)({function:(0,i.Opt)(o({validator:"resource",params:{pool:"$function"}})),loot:(0,i.Opt)((0,i.ListNode)(o({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,i.Opt)((0,i.ListNode)(o({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,i.Opt)((0,i.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),n.register("advancement_criteria",(0,i.ObjectNode)({trigger:o({validator:"resource",params:{pool:e.get("advancement_trigger")}}),conditions:(0,i.Opt)((0,i.ObjectNode)({[i.Switch]:["pop",{push:"trigger"}],[i.Case]:{"minecraft:bee_nest_destroyed":{block:(0,i.Opt)(o({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,i.Opt)((0,i.NumberNode)({integer:!0})),item:(0,i.Opt)(t("item_predicate"))},"minecraft:bred_animals":{parent:(0,i.Opt)(t("entity_predicate")),partner:(0,i.Opt)(t("entity_predicate")),child:(0,i.Opt)(t("entity_predicate"))},"minecraft:brewed_potion":{potion:(0,i.Opt)(o({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,i.Opt)(o({enum:"dimension"})),to:(0,i.Opt)(o({enum:"dimension"}))},"minecraft:channeled_lightning":{victims:(0,i.Opt)((0,i.ListNode)((0,i.Opt)(t("entity_predicate"))))},"minecraft:construct_beacon":{level:(0,i.Opt)((0,h.Range)())},"minecraft:consume_item":{item:(0,i.Opt)(t("item_predicate"))},"minecraft:cured_zombie_villager":{villager:(0,i.Opt)(t("entity_predicate")),zombie:(0,i.Opt)(t("entity_predicate"))},"minecraft:effects_changed":{effects:(0,i.Opt)((0,i.MapNode)(o({validator:"resource",params:{pool:"mob_effect"}}),t("status_effect_predicate")))},"minecraft:enter_block":{block:(0,i.Opt)(o({validator:"resource",params:{pool:"block"}})),state:(0,i.Opt)((0,i.MapNode)(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:(0,i.Opt)((0,h.Range)()),item:(0,i.Opt)(t("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,i.Opt)(t("damage_predicate"))},"minecraft:entity_killed_player":{entity:(0,i.Opt)(t("entity_predicate")),killing_blow:(0,i.Opt)(t("damage_source_predicate"))},"minecraft:filled_bucket":{item:(0,i.Opt)(t("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:(0,i.Opt)(t("entity_predicate")),item:(0,i.Opt)(t("item_predicate"))},"minecraft:hero_of_the_village":T.LocationFields,"minecraft:inventory_changed":{slots:(0,i.Opt)((0,i.ObjectNode)({empty:(0,i.Opt)((0,h.Range)()),occupied:(0,i.Opt)((0,h.Range)()),full:(0,i.Opt)((0,h.Range)())})),items:(0,i.Opt)((0,i.ListNode)(t("item_predicate")))},"minecraft:item_durability_changed":{delta:(0,i.Opt)((0,h.Range)()),durability:(0,i.Opt)((0,h.Range)()),item:(0,i.Opt)(t("item_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:(0,i.Opt)((0,h.Range)()),victims:(0,i.Opt)((0,i.ListNode)((0,i.Opt)(t("entity_predicate"))))},"minecraft:levitation":{distance:(0,i.Opt)((0,h.Range)()),duration:(0,i.Opt)((0,h.Range)())},"minecraft:location":T.LocationFields,"minecraft:nether_travel":{distance:(0,i.Opt)((0,h.Range)()),entered:(0,i.Opt)(t("location_predicate")),exited:(0,i.Opt)(t("location_predicate"))},"minecraft:placed_block":{block:(0,i.Opt)(o({validator:"resource",params:{pool:"block"}})),state:(0,i.Opt)((0,i.MapNode)(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,i.Opt)(t("item_predicate")),location:(0,i.Opt)(t("location_predicate"))},"minecraft:player_hurt_entity":{damage:(0,i.Opt)(t("damage_predicate")),entity:(0,i.Opt)(t("entity_predicate"))},"minecraft:player_killed_entity":{entity:(0,i.Opt)(t("entity_predicate")),killing_blow:(0,i.Opt)(t("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:o({validator:"resource",params:{pool:"$recipe"}})},"minecraft:safely_harvest_honey":{block:(0,i.Opt)((0,i.ObjectNode)({block:(0,i.Opt)(o({validator:"resource",params:{pool:"block"}})),tag:(0,i.Opt)(o({validator:"resource",params:{pool:"$tag/block"}}))})),item:(0,i.Opt)(t("item_predicate"))},"minecraft:slept_in_bed":T.LocationFields,"minecraft:slide_down_block":{block:(0,i.Opt)(o({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,i.Opt)(t("item_predicate"))},"minecraft:summoned_entity":{entity:(0,i.Opt)(t("entity_predicate"))},"minecraft:tame_animal":{entity:(0,i.Opt)(t("entity_predicate"))},"minecraft:used_ender_eye":{distance:(0,i.Opt)((0,h.Range)())},"minecraft:used_totem":{item:(0,i.Opt)(t("item_predicate"))},"minecraft:villager_trade":{villager:(0,i.Opt)(t("entity_predicate")),item:(0,i.Opt)(t("item_predicate"))},"minecraft:voluntary_exile":T.LocationFields}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))}F.initAdvancementSchemas=_e;var E={},z={};Object.defineProperty(z,"__esModule",{value:!0});z.initModelSchemas=void 0;const m=N;function fe(n,e){m.Reference.bind(void 0,n);const t=m.StringNode.bind(void 0,e),o=(c,r,d)=>(0,m.ListNode)((0,m.NumberNode)({min:r,max:d}),{minLength:c,maxLength:c}),s=(0,m.ChoiceNode)([{type:"alias",match:c=>typeof c=="string"&&c.startsWith("#"),node:t(),change:c=>typeof c=="string"?`#${c}`:"#0"},{type:"reference",match:c=>typeof c=="string",node:t({validator:"resource",params:{pool:"$texture"}}),change:c=>typeof c=="string"?c.replace(/^#/,""):""}],{choiceContext:"texture"});n.register("model",(0,m.Mod)((0,m.ObjectNode)({parent:(0,m.Opt)(t({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,m.Opt)((0,m.BooleanNode)()),gui_light:(0,m.Opt)(t({enum:"gui_light"})),textures:(0,m.Opt)((0,m.MapNode)(t(),s)),elements:(0,m.Opt)((0,m.ListNode)((0,m.ObjectNode)({from:o(3,-16,32),to:o(3,-16,32),rotation:(0,m.Opt)((0,m.ObjectNode)({origin:o(3),axis:t({enum:"axis"}),angle:(0,m.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,m.Opt)((0,m.BooleanNode)())})),shade:(0,m.Opt)((0,m.BooleanNode)()),faces:(0,m.MapNode)(t({enum:"direction"}),(0,m.ObjectNode)({texture:s,uv:(0,m.Opt)(o(4)),cullface:(0,m.Opt)(t({enum:"direction"})),rotation:(0,m.Opt)((0,m.NumberNode)({integer:!0})),tintindex:(0,m.Opt)((0,m.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,m.Opt)((0,m.MapNode)(t({enum:"display_position"}),(0,m.ObjectNode)({rotation:o(3),translation:o(3,-80,80),scale:o(3,-4,4)},{context:"item_transform"}))),overrides:(0,m.Opt)((0,m.ListNode)((0,m.ObjectNode)({predicate:(0,m.MapNode)(t({enum:"item_model_predicates"}),(0,m.NumberNode)()),model:t({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))}z.initModelSchemas=fe;var D={};Object.defineProperty(D,"__esModule",{value:!0});D.initBlockDefinitionSchemas=void 0;const f=N;function ge(n,e){const t=f.Reference.bind(void 0,n),o=f.StringNode.bind(void 0,e);n.register("block_definition",(0,f.Mod)((0,f.ChoiceNode)([{type:"variants",match:c=>c.variants!==void 0,node:(0,f.ObjectNode)({variants:(0,f.MapNode)(o(),t("model_variant"))}),change:c=>({variants:{"":{}}})},{type:"multipart",match:c=>c.multipart!==void 0,node:(0,f.ObjectNode)({multipart:(0,f.ListNode)((0,f.ObjectNode)({when:(0,f.Opt)(t("multipart_condition")),apply:t("model_variant")}))}),change:c=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const s={model:o({validator:"resource",params:{pool:"$model"}}),x:(0,f.Opt)((0,f.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,f.Opt)((0,f.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,f.Opt)((0,f.BooleanNode)())};n.register("model_variant",(0,f.ChoiceNode)([{type:"object",node:(0,f.ObjectNode)(s),change:c=>Array.isArray(c)&&c.length>0?c[0]:{}},{type:"list",node:(0,f.ListNode)((0,f.ObjectNode)(Z(g({},s),{weight:(0,f.Opt)((0,f.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:c=>[g({weight:1},c)]}],{context:"model_variant"})),n.register("multipart_condition",(0,f.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,f.MapNode)(o(),o()),change:c=>typeof c=="object"&&Array.isArray(c==null?void 0:c.OR)&&c.OR.length>0?c.OR[0]:{}},{type:"or",match:c=>typeof c=="object"&&(c==null?void 0:c.OR)!==void 0,node:(0,f.ObjectNode)({OR:(0,f.ListNode)(t("multipart_condition"))}),change:c=>({OR:[c!=null?c:{}]})}],{context:"multipart_condition"}))}D.initBlockDefinitionSchemas=ge;Object.defineProperty(E,"__esModule",{value:!0});E.initAssetsSchemas=void 0;const be=z,ye=D;function Oe(n,e){(0,ye.initBlockDefinitionSchemas)(n,e),(0,be.initModelSchemas)(n,e)}E.initAssetsSchemas=Oe;var I={};Object.defineProperty(I,"__esModule",{value:!0});I.initConditionSchemas=void 0;const S=N,he=L;function Ne(n,e){const t=S.Reference.bind(void 0,n),o=S.StringNode.bind(void 0,e);n.register("predicate",(0,S.ObjectOrList)(t("condition"),{choiceContext:"condition"})),n.register("condition",(0,S.Mod)((0,S.ObjectNode)({condition:o({validator:"resource",params:{pool:"loot_condition_type"}}),[S.Switch]:[{push:"condition"}],[S.Case]:he.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))}I.initConditionSchemas=Ne;var H={},O={};Object.defineProperty(O,"__esModule",{value:!0});O.LootFunctions=O.LootConditions=O.LootCopySources=O.LootEntitySources=O.LootTableTypes=void 0;O.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]}]]);O.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]);O.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]);O.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",[]]]);O.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(H,"__esModule",{value:!0});H.initLootTableSchemas=void 0;const a=N,P=O,v=L;function ve(n,e){const t=a.Reference.bind(void 0,n),o=a.StringNode.bind(void 0,e),s={conditions:(0,a.Opt)((0,a.ListNode)(t("loot_condition")))},c=g({functions:(0,a.Opt)((0,a.ListNode)(t("loot_function")))},s);function r(b,x,y){const W=[],re=$=>e.get(x).filter(X=>{var B;return((B=b.get(X))!==null&&B!==void 0?B:[]).every(Y=>$.includes(Y))});for(const[$,{allows:X,requires:B}]of P.LootTableTypes){const Q=[...X,...B];W.push({match:Y=>Y.getModel().get(new a.Path(["type"]))===$,node:y(re(Q))})}return W.push({match:$=>!0,node:y(x)}),(0,a.SwitchNode)(W)}const d=r(P.LootConditions,"loot_condition_type",b=>o({validator:"resource",params:{pool:b instanceof Array?b:"loot_condition_type"}})),_=r(P.LootFunctions,"loot_function_type",b=>o({validator:"resource",params:{pool:b instanceof Array?b:"loot_function_type"}})),u=r(P.LootEntitySources,"entity_source",b=>o({enum:b})),k=r(P.LootCopySources,"copy_source",b=>o({enum:b}));n.register("loot_table",(0,a.Mod)((0,a.ObjectNode)({type:(0,a.Opt)(o({validator:"resource",params:{pool:e.get("loot_context_type")}})),pools:(0,a.Opt)((0,a.ListNode)((0,a.Mod)((0,a.ObjectNode)(g({rolls:(0,v.Range)({allowBinomial:!0,integer:!0}),bonus_rolls:(0,a.Opt)((0,v.Range)({integer:!0})),entries:(0,a.ListNode)(t("loot_entry"))},c),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,a.Opt)((0,a.ListNode)(t("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const C={enabled:b=>{var x;return((x=b.pop().get())===null||x===void 0?void 0:x.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(b.push("type").get())}};n.register("loot_entry",(0,a.Mod)((0,a.ObjectNode)({type:o({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,a.Opt)((0,a.Mod)((0,a.NumberNode)({integer:!0,min:1}),C)),quality:(0,a.Opt)((0,a.Mod)((0,a.NumberNode)({integer:!0}),C)),[a.Switch]:[{push:"type"}],[a.Case]:{"minecraft:alternatives":g({children:(0,a.ListNode)(t("loot_entry"))},c),"minecraft:dynamic":g({name:o()},c),"minecraft:group":g({children:(0,a.ListNode)(t("loot_entry"))},c),"minecraft:item":g({name:o({validator:"resource",params:{pool:"item"}})},c),"minecraft:loot_table":g({name:o({validator:"resource",params:{pool:"$loot_table"}})},c),"minecraft:sequence":g({children:(0,a.ListNode)(t("loot_entry"))},c),"minecraft:tag":g({name:o({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,a.Opt)((0,a.BooleanNode)())},c)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),n.register("loot_function",(0,a.Mod)((0,a.ObjectNode)({function:_,[a.Switch]:[{push:"function"}],[a.Case]:(()=>{const b={"minecraft:apply_bonus":{enchantment:o({validator:"resource",params:{pool:"enchantment"}}),formula:o({validator:"resource",params:{pool:e.get("loot_table_apply_bonus_formula")}}),parameters:(0,a.Mod)((0,a.ObjectNode)({bonusMultiplier:(0,a.Mod)((0,a.NumberNode)(),{enabled:y=>y.pop().push("formula").get()==="minecraft:uniform_bonus_count"}),extra:(0,a.Mod)((0,a.NumberNode)(),{enabled:y=>y.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"}),probability:(0,a.Mod)((0,a.NumberNode)(),{enabled:y=>y.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"})}),{enabled:y=>y.push("formula").get()!=="minecraft:ore_drops"})},"minecraft:copy_name":{source:k},"minecraft:copy_nbt":{source:k,ops:(0,a.ListNode)((0,a.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:(0,a.ListNode)(o({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,a.Opt)((0,a.ListNode)(o({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:(0,v.Range)({allowBinomial:!0}),treasure:(0,a.Opt)((0,a.BooleanNode)())},"minecraft:exploration_map":{destination:(0,a.Opt)(o({enum:"structure_feature"})),decoration:(0,a.Opt)(o({enum:"map_decoration"})),zoom:(0,a.Opt)((0,a.NumberNode)({integer:!0})),search_radius:(0,a.Opt)((0,a.NumberNode)({integer:!0})),skip_existing_chunks:(0,a.Opt)((0,a.BooleanNode)())},"minecraft:fill_player_head":{entity:u},"minecraft:limit_count":{limit:(0,v.Range)({bounds:!0})},"minecraft:looting_enchant":{count:(0,v.Range)({bounds:!0}),limit:(0,a.Opt)((0,a.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,a.ListNode)(t("attribute_modifier"))},"minecraft:set_contents":{entries:(0,a.ListNode)(t("loot_entry"))},"minecraft:set_count":{count:(0,v.Range)({allowBinomial:!0})},"minecraft:set_damage":{damage:(0,v.Range)({forceRange:!0})},"minecraft:set_loot_table":{name:o({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,a.Opt)((0,a.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,a.Opt)(u),lore:(0,a.ListNode)(t("text_component")),replace:(0,a.Opt)((0,a.BooleanNode)())},"minecraft:set_name":{entity:(0,a.Opt)(u),name:(0,a.Opt)(t("text_component"))},"minecraft:set_nbt":{tag:o({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:(0,a.Opt)((0,a.ListNode)((0,a.ObjectNode)({type:o({validator:"resource",params:{pool:"mob_effect"}}),duration:(0,v.Range)()})))}},x={};return e.get("loot_function_type").forEach(y=>{x[y]=g(g({},b[y]),s)}),x})()},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),n.register("loot_condition",(0,a.Mod)((0,a.ObjectNode)({condition:d,[a.Switch]:[{push:"condition"}],[a.Case]:Z(g({},v.ConditionCases),{"minecraft:entity_properties":{entity:u,predicate:t("entity_predicate")},"minecraft:entity_scores":{entity:u,scores:(0,a.MapNode)(o({validator:"objective"}),(0,v.Range)({bounds:!0}))}})},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),n.register("attribute_modifier",(0,a.Mod)((0,a.ObjectNode)({attribute:o({validator:"resource",params:{pool:"attribute"}}),name:o(),amount:(0,v.Range)({bounds:!0}),operation:o({enum:["addition","multiply_base","multiply_total"]}),slot:(0,a.StringOrList)(o({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))}H.initLootTableSchemas=ve;var V={};Object.defineProperty(V,"__esModule",{value:!0});V.initPackMcmetaSchemas=void 0;const M=N;function ke(n,e){n.register("pack_mcmeta",(0,M.Mod)((0,M.ObjectNode)({pack:(0,M.Mod)((0,M.ObjectNode)({pack_format:(0,M.Mod)((0,M.NumberNode)({integer:!0,min:5,max:5}),{default:()=>5}),description:(0,M.Reference)(n,"text_component")}),{default:()=>({pack_format:5,description:""})})}),{default:()=>({pack:{pack_format:5,description:""}})}))}V.initPackMcmetaSchemas=ke;var G={};Object.defineProperty(G,"__esModule",{value:!0});G.initRecipeSchemas=void 0;const l=N;function xe(n,e){const t=l.Reference.bind(void 0,n),o=l.StringNode.bind(void 0,e);n.register("recipe",(0,l.Mod)((0,l.ObjectNode)({type:o({validator:"resource",params:{pool:"recipe_serializer"}}),[l.Switch]:[{push:"type"}],[l.Case]:{"minecraft:crafting_shaped":{group:(0,l.Opt)(o({enum:"recipe_group",additional:!0})),pattern:(0,l.ListNode)(o()),key:(0,l.MapNode)(o(),t("recipe_ingredient")),result:t("recipe_result")},"minecraft:crafting_shapeless":{group:(0,l.Opt)(o()),ingredients:(0,l.ListNode)(t("recipe_ingredient")),result:t("recipe_result")},"minecraft:smelting":{group:(0,l.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,l.Opt)((0,l.NumberNode)()),cookingtime:(0,l.Opt)((0,l.Mod)((0,l.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,l.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,l.Opt)((0,l.NumberNode)()),cookingtime:(0,l.Opt)((0,l.Mod)((0,l.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,l.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,l.Opt)((0,l.NumberNode)()),cookingtime:(0,l.Opt)((0,l.Mod)((0,l.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,l.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,l.Opt)((0,l.NumberNode)()),cookingtime:(0,l.Opt)((0,l.Mod)((0,l.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,l.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),count:(0,l.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,l.Opt)(o()),base:t("recipe_ingredient_object"),addition:t("recipe_ingredient_object"),result:t("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),n.register("recipe_ingredient",(0,l.Mod)((0,l.ChoiceNode)([{type:"object",node:t("recipe_ingredient_object"),change:s=>s[0]},{type:"list",node:(0,l.ListNode)(t("recipe_ingredient_object")),change:s=>[s]}]),{default:()=>({item:"minecraft:stone"})})),n.register("recipe_ingredient_object",(0,l.Mod)((0,l.ObjectNode)({item:(0,l.Opt)(o({validator:"resource",params:{pool:"item"}})),tag:(0,l.Opt)(o({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),n.register("recipe_result",(0,l.Mod)((0,l.ObjectNode)({item:o({validator:"resource",params:{pool:"item"}}),count:(0,l.Opt)((0,l.Mod)((0,l.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))}G.initRecipeSchemas=xe;var K={};Object.defineProperty(K,"__esModule",{value:!0});K.initTagsSchemas=void 0;const j=N;function je(n,e){const t=j.StringNode.bind(void 0,e),o=s=>(0,j.Mod)((0,j.ObjectNode)({replace:(0,j.Opt)((0,j.BooleanNode)()),values:(0,j.ListNode)((0,j.ChoiceNode)([{type:"string",node:t({validator:"resource",params:{pool:s,allowTag:!0}}),change:c=>c.id},{type:"object",node:(0,j.ObjectNode)({id:t({validator:"resource",params:{pool:s,allowTag:!0,allowUnknown:!0}}),required:(0,j.BooleanNode)()}),change:c=>({id:c})}]))},{context:"tag"}),{default:()=>({values:[]})});n.register("block_tag",o("block")),n.register("entity_type_tag",o("entity_type")),n.register("fluid_tag",o("fluid")),n.register("function_tag",o("$function")),n.register("item_tag",o("item"))}K.initTagsSchemas=je;var U={};Object.defineProperty(U,"__esModule",{value:!0});U.initTextComponentSchemas=void 0;const p=N;function we(n,e){const t=p.Reference.bind(void 0,n),o=p.StringNode.bind(void 0,e),s=r=>{var d;return r instanceof Array?s(r[0]):(d=r==null?void 0:r.text)!==null&&d!==void 0?d:typeof r=="object"?"":r==null?void 0:r.toString()};n.register("text_component",(0,p.Mod)((0,p.ChoiceNode)([{type:"object",node:t("text_component_object"),change:r=>r instanceof Array?typeof r[0]=="object"?r[0]:{text:s(r[0])}:typeof r=="object"?r:{text:s(r)}},{type:"list",node:t("text_component_list"),change:r=>[r]},{type:"string",priority:1,node:o(),change:s},{type:"number",node:(0,p.NumberNode)(),change:r=>{const d=parseFloat(s(r));return isFinite(d)?d:r?1:0}},{type:"boolean",node:(0,p.BooleanNode)(),change:r=>{const d=s(r);return d==="true"||d==="false"?d==="true":!!d}}],{context:"text_component"}),{default:()=>({text:""})}));const c={bold:(0,p.Opt)((0,p.BooleanNode)()),italic:(0,p.Opt)((0,p.BooleanNode)()),underlined:(0,p.Opt)((0,p.BooleanNode)()),strikethrough:(0,p.Opt)((0,p.BooleanNode)()),obfuscated:(0,p.Opt)((0,p.BooleanNode)()),insertion:(0,p.Opt)(o()),clickEvent:(0,p.Opt)((0,p.ObjectNode)({action:o({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[p.Switch]:[{push:"action"}],[p.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:(0,p.Opt)((0,p.ObjectNode)({action:o({enum:["show_text","show_item","show_entity"]}),[p.Switch]:[{push:"action"}],[p.Case]:{show_text:{value:(0,p.Opt)(t("text_component"))},show_item:{value:(0,p.Opt)(o({validator:"nbt",params:{module:"util::InventoryItem"}}))},show_entity:{value:(0,p.Opt)((0,p.ObjectNode)({name:(0,p.Opt)(o()),type:(0,p.Opt)(o()),id:(0,p.Opt)(o())}))}}})),extra:(0,p.Opt)(t("text_component_list"))};n.register("text_component_object",(0,p.Mod)((0,p.ChoiceNode)([{type:"text",match:r=>typeof r=="object",change:r=>({text:""}),priority:-1,node:(0,p.ObjectNode)(g({text:o()},c))},{type:"translation",match:r=>(r==null?void 0:r.translate)!==void 0,change:r=>({translate:""}),node:(0,p.ObjectNode)(g({translate:o(),with:(0,p.Opt)(t("text_component_list"))},c))},{type:"score",match:r=>(r==null?void 0:r.score)!==void 0,change:r=>({score:{}}),node:(0,p.ObjectNode)(g({score:(0,p.ObjectNode)({name:o({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:o({validator:"objective"}),value:(0,p.Opt)(o())})},c))},{type:"selector",match:r=>(r==null?void 0:r.selector)!==void 0,change:r=>({selector:""}),node:(0,p.ObjectNode)(g({selector:o({validator:"entity",params:{amount:"multiple",type:"entities"}})},c))},{type:"keybind",match:r=>(r==null?void 0:r.keybind)!==void 0,change:r=>({keybind:""}),node:(0,p.ObjectNode)(g({keybind:o({enum:"keybind",additional:!0})},c))},{type:"nbt",match:r=>(r==null?void 0:r.nbt)!==void 0,change:r=>({nbt:""}),node:(0,p.ObjectNode)(g({nbt:o({validator:"nbt_path"}),block:(0,p.Opt)(o({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,p.Opt)(o({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,p.Opt)(o({validator:"resource",params:{pool:"$storage"}})),interpret:(0,p.Opt)((0,p.BooleanNode)())},c))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),n.register("text_component_list",(0,p.Mod)((0,p.ListNode)(t("text_component")),{default:()=>[{text:""}]}))}U.initTextComponentSchemas=we;Object.defineProperty(A,"__esModule",{value:!0});A.initSchemas=void 0;const Se=F,Me=E,Ce=L,Re=I,Le=H,Be=V,Pe=J,$e=G,Te=K,qe=U;function Ae(n,e){(0,Ce.initCommonSchemas)(n,e),(0,Pe.initPredicatesSchemas)(n,e),(0,Se.initAdvancementSchemas)(n,e),(0,Me.initAssetsSchemas)(n,e),(0,Re.initConditionSchemas)(n,e),(0,Le.initLootTableSchemas)(n,e),(0,Be.initPackMcmetaSchemas)(n,e),(0,$e.initRecipeSchemas)(n,e),(0,Te.initTagsSchemas)(n,e),(0,qe.initTextComponentSchemas)(n,e)}A.initSchemas=Ae;var Fe=R&&R.__createBinding||(Object.create?function(n,e,t,o){o===void 0&&(o=t);var s=Object.getOwnPropertyDescriptor(e,t);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(n,o,s)}:function(n,e,t,o){o===void 0&&(o=t),n[o]=e[t]}),Ee=R&&R.__setModuleDefault||(Object.create?function(n,e){Object.defineProperty(n,"default",{enumerable:!0,value:e})}:function(n,e){n.default=e}),ze=R&&R.__importStar||function(n){if(n&&n.__esModule)return n;var e={};if(n!=null)for(var t in n)t!=="default"&&Object.prototype.hasOwnProperty.call(n,t)&&Fe(e,n,t);return Ee(e,n),e};Object.defineProperty(w,"__esModule",{value:!0});var oe=w.getSchemas=ae=w.getCollections=ie=w.lootContext=void 0;const ne=N,De=q,Ie=A;var ie=w.lootContext=ze(O);function He(){const n=new ne.CollectionRegistry;return(0,De.initCollections)(n),n}var ae=w.getCollections=He;function Ve(n){const e=new ne.SchemaRegistry;return(0,Ie.initSchemas)(e,n),e}oe=w.getSchemas=Ve;var Ue=me({__proto__:null,get getSchemas(){return oe},get getCollections(){return ae},get lootContext(){return ie},default:w},[w]);export{Ue as i}; -//# sourceMappingURL=index.6fef1ef7.js.map +var ce=Object.defineProperty,de=Object.defineProperties;var pe=Object.getOwnPropertyDescriptors;var ee=Object.getOwnPropertySymbols;var le=Object.prototype.hasOwnProperty,se=Object.prototype.propertyIsEnumerable;var te=(n,e,t)=>e in n?ce(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,g=(n,e)=>{for(var t in e||(e={}))le.call(e,t)&&te(n,t,e[t]);if(ee)for(var t of ee(e))se.call(e,t)&&te(n,t,e[t]);return n},Z=(n,e)=>de(n,pe(e));import{l as N,c as R}from"./index.18869b2a.js";function me(n,e){return e.forEach(function(t){t&&typeof t!="string"&&!Array.isArray(t)&&Object.keys(t).forEach(function(o){if(o!=="default"&&!(o in n)){var s=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(n,o,s.get?s:{enumerable:!0,get:function(){return t[o]}})}})}),Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}var w={},q={};Object.defineProperty(q,"__esModule",{value:!0});q.initCollections=void 0;function ue(n){n.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"]),n.register("loot_pool_entry_type",["minecraft:empty","minecraft:item","minecraft:tag","minecraft:loot_table","minecraft:alternatives","minecraft:sequence","minecraft:group","minecraft:dynamic"]),n.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"]),n.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"]),n.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"]),n.register("structure_feature",["pillager_outpost","mineshaft","mansion","jungle_pyramid","desert_pyramid","igloo","shipwreck","swamp_hut","stronghold","monument","ocean_ruin","fortress","endcity","buried_treasure","village"]),n.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),n.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"]),n.register("slot",["mainhand","offhand","head","chest","legs","feet"]),n.register("gamemode",["survival","creative","adventure","spectator"]),n.register("entity_source",["this","direct_killer","killer","killer_player"]),n.register("copy_source",["block_entity","this","killer","killer_player"]),n.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),n.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"]),n.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"]),n.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"]),n.register("cat_texture",["textures/entity/cat/tabby.png","textures/entity/cat/black.png","textures/entity/cat/red.png","textures/entity/cat/siamese.png","textures/entity/cat/british_shorthair.png","textures/entity/cat/calico.png","textures/entity/cat/persian.png","textures/entity/cat/ragdoll.png","textures/entity/cat/white.png","textures/entity/cat/jellie.png","textures/entity/cat/all_black.png"])}q.initCollections=ue;var A={},F={},L={};(function(n){Object.defineProperty(n,"__esModule",{value:!0}),n.initCommonSchemas=n.Range=n.ConditionCases=void 0;const e=N;function t(o,s){const c=e.StringNode.bind(void 0,s),r=e.Reference.bind(void 0,o);o.register("block_state",(0,e.Mod)((0,e.ObjectNode)({Name:c({validator:"resource",params:{pool:"block"}}),Properties:(0,e.Opt)((0,e.MapNode)(c(),c(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),o.register("fluid_state",(0,e.Mod)((0,e.ObjectNode)({Name:c({validator:"resource",params:{pool:"fluid"}}),Properties:(0,e.Opt)((0,e.MapNode)(c(),c()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),o.register("block_pos",(0,e.Mod)((0,e.ListNode)((0,e.NumberNode)({integer:!0})),{default:()=>[0,0,0]})),n.Range=d=>(0,e.ChoiceNode)([...d!=null&&d.forceRange?[]:[{type:"number",node:(0,e.NumberNode)(d),change:_=>{var u,k,C;return _===void 0?0:(C=(k=(u=_.min)!==null&&u!==void 0?u:_.max)!==null&&k!==void 0?k:_.n)!==null&&C!==void 0?C:0}}],{type:"object",priority:-1,node:(0,e.ObjectNode)({min:d!=null&&d.bounds?(0,e.NumberNode)(d):(0,e.Opt)((0,e.NumberNode)(d)),max:d!=null&&d.bounds?(0,e.NumberNode)(d):(0,e.Opt)((0,e.NumberNode)(d))},{context:"range"}),change:_=>({min:typeof _=="number"?_:_===void 0?1:_.n,max:typeof _=="number"?_:_===void 0?1:_.n})},...d!=null&&d.allowBinomial?[{type:"binomial",node:(0,e.ObjectNode)({type:c({enum:["minecraft:binomial"]}),n:(0,e.NumberNode)({integer:!0,min:0}),p:(0,e.NumberNode)({min:0,max:1})},{context:"range"}),match:_=>_!==void 0&&_.type==="minecraft:binomial",change:_=>{var u,k;return{type:"minecraft:binomial",n:typeof _=="number"?_:_===void 0?1:(k=(u=_.min)!==null&&u!==void 0?u:_.max)!==null&&k!==void 0?k:1,p:.5}}}]:[]],{choiceContext:"range"}),n.ConditionCases={"minecraft:alternative":{terms:(0,e.ListNode)(r("condition"))},"minecraft:block_state_property":{block:c({validator:"resource",params:{pool:"block"}}),properties:(0,e.MapNode)(c(),c(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:r("damage_source_predicate")},"minecraft:entity_properties":{entity:c({enum:"entity_source"}),predicate:r("entity_predicate")},"minecraft:entity_scores":{entity:c({enum:"entity_source"}),scores:(0,e.MapNode)(c({validator:"objective"}),(0,n.Range)({forceRange:!0,bounds:!0}))},"minecraft:inverted":{term:r("condition")},"minecraft:killed_by_player":{inverse:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:location_check":{offsetX:(0,e.Opt)((0,e.NumberNode)({integer:!0})),offsetY:(0,e.Opt)((0,e.NumberNode)({integer:!0})),offsetZ:(0,e.Opt)((0,e.NumberNode)({integer:!0})),predicate:r("location_predicate")},"minecraft:match_tool":{predicate:r("item_predicate")},"minecraft:random_chance":{chance:(0,e.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,e.NumberNode)({min:0,max:1}),looting_multiplier:(0,e.NumberNode)()},"minecraft:reference":{name:c({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:c({validator:"resource",params:{pool:"enchantment"}}),chances:(0,e.ListNode)((0,e.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:(0,n.Range)(),period:(0,e.Opt)((0,e.NumberNode)())},"minecraft:weather_check":{raining:(0,e.Opt)((0,e.BooleanNode)()),thundering:(0,e.Opt)((0,e.BooleanNode)())}}}n.initCommonSchemas=t})(L);var J={};(function(n){Object.defineProperty(n,"__esModule",{value:!0}),n.initPredicatesSchemas=n.LocationFields=void 0;const e=N,t=L;function o(s,c){const r=e.Reference.bind(void 0,s),d=e.StringNode.bind(void 0,c),_=(0,e.ChoiceNode)([{type:"string",node:d(),change:u=>typeof u=="boolean"||typeof u=="number"?u.toString():""},{type:"number",node:(0,e.NumberNode)(),change:u=>typeof u=="string"?parseInt(u):0},{type:"object",node:(0,e.ObjectNode)({min:(0,e.Opt)((0,e.NumberNode)({integer:!0})),max:(0,e.Opt)((0,e.NumberNode)({integer:!0}))}),change:u=>typeof u=="number"?{min:u,max:u}:{}},{type:"boolean",node:(0,e.BooleanNode)(),change:u=>u==="true"||u===1}]);s.register("item_predicate",(0,e.ObjectNode)({item:(0,e.Opt)(d({validator:"resource",params:{pool:"item"}})),tag:(0,e.Opt)(d({validator:"resource",params:{pool:"$tag/item"}})),count:(0,e.Opt)((0,t.Range)()),durability:(0,e.Opt)((0,t.Range)()),potion:(0,e.Opt)(d({validator:"resource",params:{pool:"potion"}})),nbt:(0,e.Opt)(d({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,e.Opt)((0,e.ListNode)(r("enchantment_predicate")))},{context:"item"})),s.register("enchantment_predicate",(0,e.ObjectNode)({enchantment:(0,e.Opt)(d({validator:"resource",params:{pool:"enchantment"}})),levels:(0,e.Opt)((0,t.Range)())},{context:"enchantment"})),s.register("block_predicate",(0,e.ObjectNode)({block:(0,e.Opt)(d({validator:"resource",params:{pool:"block"}})),tag:(0,e.Opt)(d({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,e.Opt)(d({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,e.Opt)((0,e.MapNode)(d(),_,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),s.register("fluid_predicate",(0,e.ObjectNode)({fluid:(0,e.Opt)(d({validator:"resource",params:{pool:"fluid"}})),tag:(0,e.Opt)(d({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,e.Opt)((0,e.MapNode)(d(),_))},{context:"fluid"})),n.LocationFields={position:(0,e.Opt)((0,e.ObjectNode)({x:(0,e.Opt)((0,t.Range)()),y:(0,e.Opt)((0,t.Range)()),z:(0,e.Opt)((0,t.Range)())})),biome:(0,e.Opt)(d({enum:"biome"})),feature:(0,e.Opt)(d({enum:"structure_feature"})),dimension:(0,e.Opt)(d({enum:"dimension"})),light:(0,e.Opt)((0,e.ObjectNode)({light:(0,e.Opt)((0,t.Range)({integer:!0,min:0,max:15}))})),block:(0,e.Opt)(r("block_predicate")),fluid:(0,e.Opt)(r("fluid_predicate"))},s.register("location_predicate",(0,e.ObjectNode)(n.LocationFields,{context:"location"})),s.register("statistic_predicate",(0,e.ObjectNode)({type:d({validator:"resource",params:{pool:"stat_type"}}),stat:d(),value:(0,t.Range)(),[e.Switch]:[{push:"type"}],[e.Case]:{"minecraft:mined":{stat:d({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:d({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:d({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:d({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:d({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:d({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:d({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:d({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:d({validator:"resource",params:{pool:"custom_stat"}})}}})),s.register("player_predicate",(0,e.ObjectNode)({gamemode:(0,e.Opt)(d({enum:"gamemode"})),level:(0,e.Opt)((0,t.Range)()),advancements:(0,e.Opt)((0,e.MapNode)(d({validator:"resource",params:{pool:"$advancement"}}),(0,e.ChoiceNode)([{type:"boolean",node:(0,e.BooleanNode)(),change:u=>!0},{type:"object",node:(0,e.MapNode)(d(),(0,e.BooleanNode)())}]))),recipes:(0,e.Opt)((0,e.MapNode)(d({validator:"resource",params:{pool:"$recipe"}}),(0,e.BooleanNode)())),stats:(0,e.Opt)((0,e.ListNode)(r("statistic_predicate")))},{context:"player"})),s.register("status_effect_predicate",(0,e.ObjectNode)({amplifier:(0,e.Opt)((0,t.Range)()),duration:(0,e.Opt)((0,t.Range)()),ambient:(0,e.Opt)((0,e.BooleanNode)()),visible:(0,e.Opt)((0,e.BooleanNode)())},{context:"status_effect"})),s.register("distance_predicate",(0,e.ObjectNode)({x:(0,e.Opt)((0,t.Range)()),y:(0,e.Opt)((0,t.Range)()),z:(0,e.Opt)((0,t.Range)()),absolute:(0,e.Opt)((0,t.Range)()),horizontal:(0,e.Opt)((0,t.Range)())},{context:"distance"})),s.register("entity_predicate",(0,e.ObjectNode)({type:(0,e.Opt)(d({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:(0,e.Opt)(d({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,e.Opt)(d({validator:"team"})),location:(0,e.Opt)(r("location_predicate")),distance:(0,e.Opt)(r("distance_predicate")),flags:(0,e.Opt)((0,e.ObjectNode)({is_on_fire:(0,e.Opt)((0,e.BooleanNode)()),is_sneaking:(0,e.Opt)((0,e.BooleanNode)()),is_sprinting:(0,e.Opt)((0,e.BooleanNode)()),is_swimming:(0,e.Opt)((0,e.BooleanNode)()),is_baby:(0,e.Opt)((0,e.BooleanNode)())})),equipment:(0,e.Opt)((0,e.MapNode)(d({enum:"slot"}),r("item_predicate"))),player:(0,e.Opt)(r("player_predicate")),catType:(0,e.Opt)(d({enum:"cat_texture"})),effects:(0,e.Opt)((0,e.MapNode)(d({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},{context:"entity"})),s.register("damage_source_predicate",(0,e.ObjectNode)({is_explosion:(0,e.Opt)((0,e.BooleanNode)()),is_fire:(0,e.Opt)((0,e.BooleanNode)()),is_magic:(0,e.Opt)((0,e.BooleanNode)()),is_projectile:(0,e.Opt)((0,e.BooleanNode)()),is_lightning:(0,e.Opt)((0,e.BooleanNode)()),bypasses_armor:(0,e.Opt)((0,e.BooleanNode)()),bypasses_invulnerability:(0,e.Opt)((0,e.BooleanNode)()),bypasses_magic:(0,e.Opt)((0,e.BooleanNode)()),source_entity:(0,e.Opt)(r("entity_predicate")),direct_entity:(0,e.Opt)(r("entity_predicate"))},{context:"damage_source"})),s.register("damage_predicate",(0,e.ObjectNode)({dealt:(0,e.Opt)((0,t.Range)()),taken:(0,e.Opt)((0,t.Range)()),blocked:(0,e.Opt)((0,e.BooleanNode)()),source_entity:(0,e.Opt)(r("entity_predicate")),type:(0,e.Opt)(r("damage_source_predicate"))},{context:"damage"}))}n.initPredicatesSchemas=o})(J);Object.defineProperty(F,"__esModule",{value:!0});F.initAdvancementSchemas=void 0;const i=N,h=L,T=J;function _e(n,e){const t=i.Reference.bind(void 0,n),o=i.StringNode.bind(void 0,e);n.register("advancement",(0,i.Mod)((0,i.ObjectNode)({display:(0,i.Opt)((0,i.Mod)((0,i.ObjectNode)({icon:(0,i.ObjectNode)({item:o({validator:"resource",params:{pool:"item"}}),nbt:(0,i.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:t("text_component"),description:t("text_component"),background:(0,i.Opt)(o()),frame:(0,i.Opt)(o({enum:["task","challenge","goal"]})),show_toast:(0,i.Opt)((0,i.BooleanNode)()),announce_to_chat:(0,i.Opt)((0,i.BooleanNode)()),hidden:(0,i.Opt)((0,i.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,i.Opt)(o({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,i.MapNode)(o(),t("advancement_criteria")),requirements:(0,i.Opt)((0,i.ListNode)((0,i.ListNode)(o()))),rewards:(0,i.Opt)((0,i.ObjectNode)({function:(0,i.Opt)(o({validator:"resource",params:{pool:"$function"}})),loot:(0,i.Opt)((0,i.ListNode)(o({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,i.Opt)((0,i.ListNode)(o({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,i.Opt)((0,i.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),n.register("advancement_criteria",(0,i.ObjectNode)({trigger:o({validator:"resource",params:{pool:e.get("advancement_trigger")}}),conditions:(0,i.Opt)((0,i.ObjectNode)({[i.Switch]:["pop",{push:"trigger"}],[i.Case]:{"minecraft:bee_nest_destroyed":{block:(0,i.Opt)(o({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,i.Opt)((0,i.NumberNode)({integer:!0})),item:(0,i.Opt)(t("item_predicate"))},"minecraft:bred_animals":{parent:(0,i.Opt)(t("entity_predicate")),partner:(0,i.Opt)(t("entity_predicate")),child:(0,i.Opt)(t("entity_predicate"))},"minecraft:brewed_potion":{potion:(0,i.Opt)(o({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,i.Opt)(o({enum:"dimension"})),to:(0,i.Opt)(o({enum:"dimension"}))},"minecraft:channeled_lightning":{victims:(0,i.Opt)((0,i.ListNode)((0,i.Opt)(t("entity_predicate"))))},"minecraft:construct_beacon":{level:(0,i.Opt)((0,h.Range)())},"minecraft:consume_item":{item:(0,i.Opt)(t("item_predicate"))},"minecraft:cured_zombie_villager":{villager:(0,i.Opt)(t("entity_predicate")),zombie:(0,i.Opt)(t("entity_predicate"))},"minecraft:effects_changed":{effects:(0,i.Opt)((0,i.MapNode)(o({validator:"resource",params:{pool:"mob_effect"}}),t("status_effect_predicate")))},"minecraft:enter_block":{block:(0,i.Opt)(o({validator:"resource",params:{pool:"block"}})),state:(0,i.Opt)((0,i.MapNode)(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:(0,i.Opt)((0,h.Range)()),item:(0,i.Opt)(t("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,i.Opt)(t("damage_predicate"))},"minecraft:entity_killed_player":{entity:(0,i.Opt)(t("entity_predicate")),killing_blow:(0,i.Opt)(t("damage_source_predicate"))},"minecraft:filled_bucket":{item:(0,i.Opt)(t("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:(0,i.Opt)(t("entity_predicate")),item:(0,i.Opt)(t("item_predicate"))},"minecraft:hero_of_the_village":T.LocationFields,"minecraft:inventory_changed":{slots:(0,i.Opt)((0,i.ObjectNode)({empty:(0,i.Opt)((0,h.Range)()),occupied:(0,i.Opt)((0,h.Range)()),full:(0,i.Opt)((0,h.Range)())})),items:(0,i.Opt)((0,i.ListNode)(t("item_predicate")))},"minecraft:item_durability_changed":{delta:(0,i.Opt)((0,h.Range)()),durability:(0,i.Opt)((0,h.Range)()),item:(0,i.Opt)(t("item_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:(0,i.Opt)((0,h.Range)()),victims:(0,i.Opt)((0,i.ListNode)((0,i.Opt)(t("entity_predicate"))))},"minecraft:levitation":{distance:(0,i.Opt)((0,h.Range)()),duration:(0,i.Opt)((0,h.Range)())},"minecraft:location":T.LocationFields,"minecraft:nether_travel":{distance:(0,i.Opt)((0,h.Range)()),entered:(0,i.Opt)(t("location_predicate")),exited:(0,i.Opt)(t("location_predicate"))},"minecraft:placed_block":{block:(0,i.Opt)(o({validator:"resource",params:{pool:"block"}})),state:(0,i.Opt)((0,i.MapNode)(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,i.Opt)(t("item_predicate")),location:(0,i.Opt)(t("location_predicate"))},"minecraft:player_hurt_entity":{damage:(0,i.Opt)(t("damage_predicate")),entity:(0,i.Opt)(t("entity_predicate"))},"minecraft:player_killed_entity":{entity:(0,i.Opt)(t("entity_predicate")),killing_blow:(0,i.Opt)(t("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:o({validator:"resource",params:{pool:"$recipe"}})},"minecraft:safely_harvest_honey":{block:(0,i.Opt)((0,i.ObjectNode)({block:(0,i.Opt)(o({validator:"resource",params:{pool:"block"}})),tag:(0,i.Opt)(o({validator:"resource",params:{pool:"$tag/block"}}))})),item:(0,i.Opt)(t("item_predicate"))},"minecraft:slept_in_bed":T.LocationFields,"minecraft:slide_down_block":{block:(0,i.Opt)(o({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,i.Opt)(t("item_predicate"))},"minecraft:summoned_entity":{entity:(0,i.Opt)(t("entity_predicate"))},"minecraft:tame_animal":{entity:(0,i.Opt)(t("entity_predicate"))},"minecraft:used_ender_eye":{distance:(0,i.Opt)((0,h.Range)())},"minecraft:used_totem":{item:(0,i.Opt)(t("item_predicate"))},"minecraft:villager_trade":{villager:(0,i.Opt)(t("entity_predicate")),item:(0,i.Opt)(t("item_predicate"))},"minecraft:voluntary_exile":T.LocationFields}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))}F.initAdvancementSchemas=_e;var E={},z={};Object.defineProperty(z,"__esModule",{value:!0});z.initModelSchemas=void 0;const m=N;function fe(n,e){m.Reference.bind(void 0,n);const t=m.StringNode.bind(void 0,e),o=(c,r,d)=>(0,m.ListNode)((0,m.NumberNode)({min:r,max:d}),{minLength:c,maxLength:c}),s=(0,m.ChoiceNode)([{type:"alias",match:c=>typeof c=="string"&&c.startsWith("#"),node:t(),change:c=>typeof c=="string"?`#${c}`:"#0"},{type:"reference",match:c=>typeof c=="string",node:t({validator:"resource",params:{pool:"$texture"}}),change:c=>typeof c=="string"?c.replace(/^#/,""):""}],{choiceContext:"texture"});n.register("model",(0,m.Mod)((0,m.ObjectNode)({parent:(0,m.Opt)(t({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,m.Opt)((0,m.BooleanNode)()),gui_light:(0,m.Opt)(t({enum:"gui_light"})),textures:(0,m.Opt)((0,m.MapNode)(t(),s)),elements:(0,m.Opt)((0,m.ListNode)((0,m.ObjectNode)({from:o(3,-16,32),to:o(3,-16,32),rotation:(0,m.Opt)((0,m.ObjectNode)({origin:o(3),axis:t({enum:"axis"}),angle:(0,m.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,m.Opt)((0,m.BooleanNode)())})),shade:(0,m.Opt)((0,m.BooleanNode)()),faces:(0,m.MapNode)(t({enum:"direction"}),(0,m.ObjectNode)({texture:s,uv:(0,m.Opt)(o(4)),cullface:(0,m.Opt)(t({enum:"direction"})),rotation:(0,m.Opt)((0,m.NumberNode)({integer:!0})),tintindex:(0,m.Opt)((0,m.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,m.Opt)((0,m.MapNode)(t({enum:"display_position"}),(0,m.ObjectNode)({rotation:o(3),translation:o(3,-80,80),scale:o(3,-4,4)},{context:"item_transform"}))),overrides:(0,m.Opt)((0,m.ListNode)((0,m.ObjectNode)({predicate:(0,m.MapNode)(t({enum:"item_model_predicates"}),(0,m.NumberNode)()),model:t({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))}z.initModelSchemas=fe;var D={};Object.defineProperty(D,"__esModule",{value:!0});D.initBlockDefinitionSchemas=void 0;const f=N;function ge(n,e){const t=f.Reference.bind(void 0,n),o=f.StringNode.bind(void 0,e);n.register("block_definition",(0,f.Mod)((0,f.ChoiceNode)([{type:"variants",match:c=>c.variants!==void 0,node:(0,f.ObjectNode)({variants:(0,f.MapNode)(o(),t("model_variant"))}),change:c=>({variants:{"":{}}})},{type:"multipart",match:c=>c.multipart!==void 0,node:(0,f.ObjectNode)({multipart:(0,f.ListNode)((0,f.ObjectNode)({when:(0,f.Opt)(t("multipart_condition")),apply:t("model_variant")}))}),change:c=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const s={model:o({validator:"resource",params:{pool:"$model"}}),x:(0,f.Opt)((0,f.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,f.Opt)((0,f.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,f.Opt)((0,f.BooleanNode)())};n.register("model_variant",(0,f.ChoiceNode)([{type:"object",node:(0,f.ObjectNode)(s),change:c=>Array.isArray(c)&&c.length>0?c[0]:{}},{type:"list",node:(0,f.ListNode)((0,f.ObjectNode)(Z(g({},s),{weight:(0,f.Opt)((0,f.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:c=>[g({weight:1},c)]}],{context:"model_variant"})),n.register("multipart_condition",(0,f.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,f.MapNode)(o(),o()),change:c=>typeof c=="object"&&Array.isArray(c==null?void 0:c.OR)&&c.OR.length>0?c.OR[0]:{}},{type:"or",match:c=>typeof c=="object"&&(c==null?void 0:c.OR)!==void 0,node:(0,f.ObjectNode)({OR:(0,f.ListNode)(t("multipart_condition"))}),change:c=>({OR:[c!=null?c:{}]})}],{context:"multipart_condition"}))}D.initBlockDefinitionSchemas=ge;Object.defineProperty(E,"__esModule",{value:!0});E.initAssetsSchemas=void 0;const be=z,ye=D;function Oe(n,e){(0,ye.initBlockDefinitionSchemas)(n,e),(0,be.initModelSchemas)(n,e)}E.initAssetsSchemas=Oe;var I={};Object.defineProperty(I,"__esModule",{value:!0});I.initConditionSchemas=void 0;const S=N,he=L;function Ne(n,e){const t=S.Reference.bind(void 0,n),o=S.StringNode.bind(void 0,e);n.register("predicate",(0,S.ObjectOrList)(t("condition"),{choiceContext:"condition"})),n.register("condition",(0,S.Mod)((0,S.ObjectNode)({condition:o({validator:"resource",params:{pool:"loot_condition_type"}}),[S.Switch]:[{push:"condition"}],[S.Case]:he.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))}I.initConditionSchemas=Ne;var H={},O={};Object.defineProperty(O,"__esModule",{value:!0});O.LootFunctions=O.LootConditions=O.LootCopySources=O.LootEntitySources=O.LootTableTypes=void 0;O.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]}]]);O.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]);O.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]);O.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",[]]]);O.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(H,"__esModule",{value:!0});H.initLootTableSchemas=void 0;const a=N,P=O,v=L;function ve(n,e){const t=a.Reference.bind(void 0,n),o=a.StringNode.bind(void 0,e),s={conditions:(0,a.Opt)((0,a.ListNode)(t("loot_condition")))},c=g({functions:(0,a.Opt)((0,a.ListNode)(t("loot_function")))},s);function r(b,x,y){const W=[],re=$=>e.get(x).filter(X=>{var B;return((B=b.get(X))!==null&&B!==void 0?B:[]).every(Y=>$.includes(Y))});for(const[$,{allows:X,requires:B}]of P.LootTableTypes){const Q=[...X,...B];W.push({match:Y=>Y.getModel().get(new a.Path(["type"]))===$,node:y(re(Q))})}return W.push({match:$=>!0,node:y(x)}),(0,a.SwitchNode)(W)}const d=r(P.LootConditions,"loot_condition_type",b=>o({validator:"resource",params:{pool:b instanceof Array?b:"loot_condition_type"}})),_=r(P.LootFunctions,"loot_function_type",b=>o({validator:"resource",params:{pool:b instanceof Array?b:"loot_function_type"}})),u=r(P.LootEntitySources,"entity_source",b=>o({enum:b})),k=r(P.LootCopySources,"copy_source",b=>o({enum:b}));n.register("loot_table",(0,a.Mod)((0,a.ObjectNode)({type:(0,a.Opt)(o({validator:"resource",params:{pool:e.get("loot_context_type")}})),pools:(0,a.Opt)((0,a.ListNode)((0,a.Mod)((0,a.ObjectNode)(g({rolls:(0,v.Range)({allowBinomial:!0,integer:!0}),bonus_rolls:(0,a.Opt)((0,v.Range)({integer:!0})),entries:(0,a.ListNode)(t("loot_entry"))},c),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,a.Opt)((0,a.ListNode)(t("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const C={enabled:b=>{var x;return((x=b.pop().get())===null||x===void 0?void 0:x.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(b.push("type").get())}};n.register("loot_entry",(0,a.Mod)((0,a.ObjectNode)({type:o({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,a.Opt)((0,a.Mod)((0,a.NumberNode)({integer:!0,min:1}),C)),quality:(0,a.Opt)((0,a.Mod)((0,a.NumberNode)({integer:!0}),C)),[a.Switch]:[{push:"type"}],[a.Case]:{"minecraft:alternatives":g({children:(0,a.ListNode)(t("loot_entry"))},c),"minecraft:dynamic":g({name:o()},c),"minecraft:group":g({children:(0,a.ListNode)(t("loot_entry"))},c),"minecraft:item":g({name:o({validator:"resource",params:{pool:"item"}})},c),"minecraft:loot_table":g({name:o({validator:"resource",params:{pool:"$loot_table"}})},c),"minecraft:sequence":g({children:(0,a.ListNode)(t("loot_entry"))},c),"minecraft:tag":g({name:o({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,a.Opt)((0,a.BooleanNode)())},c)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),n.register("loot_function",(0,a.Mod)((0,a.ObjectNode)({function:_,[a.Switch]:[{push:"function"}],[a.Case]:(()=>{const b={"minecraft:apply_bonus":{enchantment:o({validator:"resource",params:{pool:"enchantment"}}),formula:o({validator:"resource",params:{pool:e.get("loot_table_apply_bonus_formula")}}),parameters:(0,a.Mod)((0,a.ObjectNode)({bonusMultiplier:(0,a.Mod)((0,a.NumberNode)(),{enabled:y=>y.pop().push("formula").get()==="minecraft:uniform_bonus_count"}),extra:(0,a.Mod)((0,a.NumberNode)(),{enabled:y=>y.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"}),probability:(0,a.Mod)((0,a.NumberNode)(),{enabled:y=>y.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"})}),{enabled:y=>y.push("formula").get()!=="minecraft:ore_drops"})},"minecraft:copy_name":{source:k},"minecraft:copy_nbt":{source:k,ops:(0,a.ListNode)((0,a.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:(0,a.ListNode)(o({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,a.Opt)((0,a.ListNode)(o({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:(0,v.Range)({allowBinomial:!0}),treasure:(0,a.Opt)((0,a.BooleanNode)())},"minecraft:exploration_map":{destination:(0,a.Opt)(o({enum:"structure_feature"})),decoration:(0,a.Opt)(o({enum:"map_decoration"})),zoom:(0,a.Opt)((0,a.NumberNode)({integer:!0})),search_radius:(0,a.Opt)((0,a.NumberNode)({integer:!0})),skip_existing_chunks:(0,a.Opt)((0,a.BooleanNode)())},"minecraft:fill_player_head":{entity:u},"minecraft:limit_count":{limit:(0,v.Range)({bounds:!0})},"minecraft:looting_enchant":{count:(0,v.Range)({bounds:!0}),limit:(0,a.Opt)((0,a.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,a.ListNode)(t("attribute_modifier"))},"minecraft:set_contents":{entries:(0,a.ListNode)(t("loot_entry"))},"minecraft:set_count":{count:(0,v.Range)({allowBinomial:!0})},"minecraft:set_damage":{damage:(0,v.Range)({forceRange:!0})},"minecraft:set_loot_table":{name:o({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,a.Opt)((0,a.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,a.Opt)(u),lore:(0,a.ListNode)(t("text_component")),replace:(0,a.Opt)((0,a.BooleanNode)())},"minecraft:set_name":{entity:(0,a.Opt)(u),name:(0,a.Opt)(t("text_component"))},"minecraft:set_nbt":{tag:o({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:(0,a.Opt)((0,a.ListNode)((0,a.ObjectNode)({type:o({validator:"resource",params:{pool:"mob_effect"}}),duration:(0,v.Range)()})))}},x={};return e.get("loot_function_type").forEach(y=>{x[y]=g(g({},b[y]),s)}),x})()},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),n.register("loot_condition",(0,a.Mod)((0,a.ObjectNode)({condition:d,[a.Switch]:[{push:"condition"}],[a.Case]:Z(g({},v.ConditionCases),{"minecraft:entity_properties":{entity:u,predicate:t("entity_predicate")},"minecraft:entity_scores":{entity:u,scores:(0,a.MapNode)(o({validator:"objective"}),(0,v.Range)({bounds:!0}))}})},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),n.register("attribute_modifier",(0,a.Mod)((0,a.ObjectNode)({attribute:o({validator:"resource",params:{pool:"attribute"}}),name:o(),amount:(0,v.Range)({bounds:!0}),operation:o({enum:["addition","multiply_base","multiply_total"]}),slot:(0,a.StringOrList)(o({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))}H.initLootTableSchemas=ve;var V={};Object.defineProperty(V,"__esModule",{value:!0});V.initPackMcmetaSchemas=void 0;const M=N;function ke(n,e){n.register("pack_mcmeta",(0,M.Mod)((0,M.ObjectNode)({pack:(0,M.Mod)((0,M.ObjectNode)({pack_format:(0,M.Mod)((0,M.NumberNode)({integer:!0,min:5,max:5}),{default:()=>5}),description:(0,M.Reference)(n,"text_component")}),{default:()=>({pack_format:5,description:""})})}),{default:()=>({pack:{pack_format:5,description:""}})}))}V.initPackMcmetaSchemas=ke;var G={};Object.defineProperty(G,"__esModule",{value:!0});G.initRecipeSchemas=void 0;const l=N;function xe(n,e){const t=l.Reference.bind(void 0,n),o=l.StringNode.bind(void 0,e);n.register("recipe",(0,l.Mod)((0,l.ObjectNode)({type:o({validator:"resource",params:{pool:"recipe_serializer"}}),[l.Switch]:[{push:"type"}],[l.Case]:{"minecraft:crafting_shaped":{group:(0,l.Opt)(o({enum:"recipe_group",additional:!0})),pattern:(0,l.ListNode)(o()),key:(0,l.MapNode)(o(),t("recipe_ingredient")),result:t("recipe_result")},"minecraft:crafting_shapeless":{group:(0,l.Opt)(o()),ingredients:(0,l.ListNode)(t("recipe_ingredient")),result:t("recipe_result")},"minecraft:smelting":{group:(0,l.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,l.Opt)((0,l.NumberNode)()),cookingtime:(0,l.Opt)((0,l.Mod)((0,l.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,l.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,l.Opt)((0,l.NumberNode)()),cookingtime:(0,l.Opt)((0,l.Mod)((0,l.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,l.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,l.Opt)((0,l.NumberNode)()),cookingtime:(0,l.Opt)((0,l.Mod)((0,l.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,l.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,l.Opt)((0,l.NumberNode)()),cookingtime:(0,l.Opt)((0,l.Mod)((0,l.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,l.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),count:(0,l.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,l.Opt)(o()),base:t("recipe_ingredient_object"),addition:t("recipe_ingredient_object"),result:t("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),n.register("recipe_ingredient",(0,l.Mod)((0,l.ChoiceNode)([{type:"object",node:t("recipe_ingredient_object"),change:s=>s[0]},{type:"list",node:(0,l.ListNode)(t("recipe_ingredient_object")),change:s=>[s]}]),{default:()=>({item:"minecraft:stone"})})),n.register("recipe_ingredient_object",(0,l.Mod)((0,l.ObjectNode)({item:(0,l.Opt)(o({validator:"resource",params:{pool:"item"}})),tag:(0,l.Opt)(o({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),n.register("recipe_result",(0,l.Mod)((0,l.ObjectNode)({item:o({validator:"resource",params:{pool:"item"}}),count:(0,l.Opt)((0,l.Mod)((0,l.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))}G.initRecipeSchemas=xe;var K={};Object.defineProperty(K,"__esModule",{value:!0});K.initTagsSchemas=void 0;const j=N;function je(n,e){const t=j.StringNode.bind(void 0,e),o=s=>(0,j.Mod)((0,j.ObjectNode)({replace:(0,j.Opt)((0,j.BooleanNode)()),values:(0,j.ListNode)((0,j.ChoiceNode)([{type:"string",node:t({validator:"resource",params:{pool:s,allowTag:!0}}),change:c=>c.id},{type:"object",node:(0,j.ObjectNode)({id:t({validator:"resource",params:{pool:s,allowTag:!0,allowUnknown:!0}}),required:(0,j.BooleanNode)()}),change:c=>({id:c})}]))},{context:"tag"}),{default:()=>({values:[]})});n.register("block_tag",o("block")),n.register("entity_type_tag",o("entity_type")),n.register("fluid_tag",o("fluid")),n.register("function_tag",o("$function")),n.register("item_tag",o("item"))}K.initTagsSchemas=je;var U={};Object.defineProperty(U,"__esModule",{value:!0});U.initTextComponentSchemas=void 0;const p=N;function we(n,e){const t=p.Reference.bind(void 0,n),o=p.StringNode.bind(void 0,e),s=r=>{var d;return r instanceof Array?s(r[0]):(d=r==null?void 0:r.text)!==null&&d!==void 0?d:typeof r=="object"?"":r==null?void 0:r.toString()};n.register("text_component",(0,p.Mod)((0,p.ChoiceNode)([{type:"object",node:t("text_component_object"),change:r=>r instanceof Array?typeof r[0]=="object"?r[0]:{text:s(r[0])}:typeof r=="object"?r:{text:s(r)}},{type:"list",node:t("text_component_list"),change:r=>[r]},{type:"string",priority:1,node:o(),change:s},{type:"number",node:(0,p.NumberNode)(),change:r=>{const d=parseFloat(s(r));return isFinite(d)?d:r?1:0}},{type:"boolean",node:(0,p.BooleanNode)(),change:r=>{const d=s(r);return d==="true"||d==="false"?d==="true":!!d}}],{context:"text_component"}),{default:()=>({text:""})}));const c={bold:(0,p.Opt)((0,p.BooleanNode)()),italic:(0,p.Opt)((0,p.BooleanNode)()),underlined:(0,p.Opt)((0,p.BooleanNode)()),strikethrough:(0,p.Opt)((0,p.BooleanNode)()),obfuscated:(0,p.Opt)((0,p.BooleanNode)()),insertion:(0,p.Opt)(o()),clickEvent:(0,p.Opt)((0,p.ObjectNode)({action:o({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[p.Switch]:[{push:"action"}],[p.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:(0,p.Opt)((0,p.ObjectNode)({action:o({enum:["show_text","show_item","show_entity"]}),[p.Switch]:[{push:"action"}],[p.Case]:{show_text:{value:(0,p.Opt)(t("text_component"))},show_item:{value:(0,p.Opt)(o({validator:"nbt",params:{module:"util::InventoryItem"}}))},show_entity:{value:(0,p.Opt)((0,p.ObjectNode)({name:(0,p.Opt)(o()),type:(0,p.Opt)(o()),id:(0,p.Opt)(o())}))}}})),extra:(0,p.Opt)(t("text_component_list"))};n.register("text_component_object",(0,p.Mod)((0,p.ChoiceNode)([{type:"text",match:r=>typeof r=="object",change:r=>({text:""}),priority:-1,node:(0,p.ObjectNode)(g({text:o()},c))},{type:"translation",match:r=>(r==null?void 0:r.translate)!==void 0,change:r=>({translate:""}),node:(0,p.ObjectNode)(g({translate:o(),with:(0,p.Opt)(t("text_component_list"))},c))},{type:"score",match:r=>(r==null?void 0:r.score)!==void 0,change:r=>({score:{}}),node:(0,p.ObjectNode)(g({score:(0,p.ObjectNode)({name:o({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:o({validator:"objective"}),value:(0,p.Opt)(o())})},c))},{type:"selector",match:r=>(r==null?void 0:r.selector)!==void 0,change:r=>({selector:""}),node:(0,p.ObjectNode)(g({selector:o({validator:"entity",params:{amount:"multiple",type:"entities"}})},c))},{type:"keybind",match:r=>(r==null?void 0:r.keybind)!==void 0,change:r=>({keybind:""}),node:(0,p.ObjectNode)(g({keybind:o({enum:"keybind",additional:!0})},c))},{type:"nbt",match:r=>(r==null?void 0:r.nbt)!==void 0,change:r=>({nbt:""}),node:(0,p.ObjectNode)(g({nbt:o({validator:"nbt_path"}),block:(0,p.Opt)(o({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,p.Opt)(o({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,p.Opt)(o({validator:"resource",params:{pool:"$storage"}})),interpret:(0,p.Opt)((0,p.BooleanNode)())},c))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),n.register("text_component_list",(0,p.Mod)((0,p.ListNode)(t("text_component")),{default:()=>[{text:""}]}))}U.initTextComponentSchemas=we;Object.defineProperty(A,"__esModule",{value:!0});A.initSchemas=void 0;const Se=F,Me=E,Ce=L,Re=I,Le=H,Be=V,Pe=J,$e=G,Te=K,qe=U;function Ae(n,e){(0,Ce.initCommonSchemas)(n,e),(0,Pe.initPredicatesSchemas)(n,e),(0,Se.initAdvancementSchemas)(n,e),(0,Me.initAssetsSchemas)(n,e),(0,Re.initConditionSchemas)(n,e),(0,Le.initLootTableSchemas)(n,e),(0,Be.initPackMcmetaSchemas)(n,e),(0,$e.initRecipeSchemas)(n,e),(0,Te.initTagsSchemas)(n,e),(0,qe.initTextComponentSchemas)(n,e)}A.initSchemas=Ae;var Fe=R&&R.__createBinding||(Object.create?function(n,e,t,o){o===void 0&&(o=t);var s=Object.getOwnPropertyDescriptor(e,t);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(n,o,s)}:function(n,e,t,o){o===void 0&&(o=t),n[o]=e[t]}),Ee=R&&R.__setModuleDefault||(Object.create?function(n,e){Object.defineProperty(n,"default",{enumerable:!0,value:e})}:function(n,e){n.default=e}),ze=R&&R.__importStar||function(n){if(n&&n.__esModule)return n;var e={};if(n!=null)for(var t in n)t!=="default"&&Object.prototype.hasOwnProperty.call(n,t)&&Fe(e,n,t);return Ee(e,n),e};Object.defineProperty(w,"__esModule",{value:!0});var oe=w.getSchemas=ae=w.getCollections=ie=w.lootContext=void 0;const ne=N,De=q,Ie=A;var ie=w.lootContext=ze(O);function He(){const n=new ne.CollectionRegistry;return(0,De.initCollections)(n),n}var ae=w.getCollections=He;function Ve(n){const e=new ne.SchemaRegistry;return(0,Ie.initSchemas)(e,n),e}oe=w.getSchemas=Ve;var Ue=me({__proto__:null,get getSchemas(){return oe},get getCollections(){return ae},get lootContext(){return ie},default:w},[w]);export{Ue as i}; +//# sourceMappingURL=index.047b40e9.js.map diff --git a/assets/index.6fef1ef7.js.map b/assets/index.047b40e9.js.map similarity index 99% rename from assets/index.6fef1ef7.js.map rename to assets/index.047b40e9.js.map index 8e28827f..db4a0479 100644 --- a/assets/index.6fef1ef7.js.map +++ b/assets/index.047b40e9.js.map @@ -1 +1 @@ -{"version":3,"file":"index.6fef1ef7.js","sources":["../../node_modules/@mcschema/java-1.15/lib/Collections.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.15/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.15/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.15/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.15/lib/LootContext.js","../../node_modules/@mcschema/java-1.15/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.15/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.15/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.15/lib/schemas/index.js","../../node_modules/@mcschema/java-1.15/lib/index.js"],"sourcesContent":["\"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 collections.register('cat_texture', [\r\n 'textures/entity/cat/tabby.png',\r\n 'textures/entity/cat/black.png',\r\n 'textures/entity/cat/red.png',\r\n 'textures/entity/cat/siamese.png',\r\n 'textures/entity/cat/british_shorthair.png',\r\n 'textures/entity/cat/calico.png',\r\n 'textures/entity/cat/persian.png',\r\n 'textures/entity/cat/ragdoll.png',\r\n 'textures/entity/cat/white.png',\r\n 'textures/entity/cat/jellie.png',\r\n 'textures/entity/cat/all_black.png'\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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true })), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => (0, core_1.ChoiceNode)([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? (0, core_1.NumberNode)(config) : (0, core_1.Opt)((0, core_1.NumberNode)(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? (0, core_1.NumberNode)(config) : (0, core_1.Opt)((0, 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: (0, core_1.ObjectNode)({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n p: (0, 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: (0, 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: (0, 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: (0, core_1.MapNode)(StringNode({ validator: 'objective' }), (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: (0, exports.Range)(),\r\n period: (0, core_1.Opt)((0, core_1.NumberNode)())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, 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 = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: (0, core_1.Opt)((0, Common_1.Range)()),\r\n durability: (0, core_1.Opt)((0, Common_1.Range)()),\r\n potion: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: (0, core_1.Opt)((0, Common_1.Range)())\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', (0, core_1.ObjectNode)({\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n exports.LocationFields = {\r\n position: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n x: (0, core_1.Opt)((0, Common_1.Range)()),\r\n y: (0, core_1.Opt)((0, Common_1.Range)()),\r\n z: (0, core_1.Opt)((0, Common_1.Range)())\r\n })),\r\n biome: (0, core_1.Opt)(StringNode({ enum: 'biome' })),\r\n feature: (0, core_1.Opt)(StringNode({ enum: 'structure_feature' })),\r\n dimension: (0, core_1.Opt)(StringNode({ enum: 'dimension' })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: (0, core_1.Opt)((0, Common_1.Range)({ integer: true, min: 0, max: 15 }))\r\n })),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n };\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)(exports.LocationFields, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: (0, 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', (0, core_1.ObjectNode)({\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: (0, core_1.Opt)((0, Common_1.Range)()),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n { type: 'boolean', node: (0, core_1.BooleanNode)(), change: _ => true },\r\n {\r\n type: 'object', node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate')))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: (0, core_1.Opt)((0, Common_1.Range)()),\r\n duration: (0, core_1.Opt)((0, Common_1.Range)()),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, core_1.ObjectNode)({\r\n x: (0, core_1.Opt)((0, Common_1.Range)()),\r\n y: (0, core_1.Opt)((0, Common_1.Range)()),\r\n z: (0, core_1.Opt)((0, Common_1.Range)()),\r\n absolute: (0, core_1.Opt)((0, Common_1.Range)()),\r\n horizontal: (0, core_1.Opt)((0, Common_1.Range)())\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: (0, core_1.Opt)(Reference('player_predicate')),\r\n catType: (0, core_1.Opt)(StringNode({ enum: 'cat_texture' })),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: (0, core_1.Opt)((0, Common_1.Range)()),\r\n taken: (0, core_1.Opt)((0, Common_1.Range)()),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: (0, core_1.Opt)(Reference('entity_predicate')),\r\n partner: (0, core_1.Opt)(Reference('entity_predicate')),\r\n child: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ enum: 'dimension' })),\r\n to: (0, core_1.Opt)(StringNode({ enum: 'dimension' }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Opt)(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: (0, core_1.Opt)((0, Common_1.Range)())\r\n },\r\n 'minecraft:consume_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: (0, core_1.Opt)(Reference('entity_predicate')),\r\n zombie: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, Common_1.Range)()),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n item: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n empty: (0, core_1.Opt)((0, Common_1.Range)()),\r\n occupied: (0, core_1.Opt)((0, Common_1.Range)()),\r\n full: (0, core_1.Opt)((0, Common_1.Range)())\r\n })),\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: (0, core_1.Opt)((0, Common_1.Range)()),\r\n durability: (0, core_1.Opt)((0, Common_1.Range)()),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: (0, core_1.Opt)((0, Common_1.Range)()),\r\n victims: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Opt)(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:levitation': {\r\n distance: (0, core_1.Opt)((0, Common_1.Range)()),\r\n duration: (0, core_1.Opt)((0, Common_1.Range)())\r\n },\r\n 'minecraft:location': Predicates_1.LocationFields,\r\n 'minecraft:nether_travel': {\r\n distance: (0, core_1.Opt)((0, Common_1.Range)()),\r\n entered: (0, core_1.Opt)(Reference('location_predicate')),\r\n exited: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n killing_blow: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } }))\r\n })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: (0, core_1.Opt)((0, Common_1.Range)())\r\n },\r\n 'minecraft:used_totem': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: (0, core_1.Opt)(Reference('entity_predicate')),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': Predicates_1.LocationFields\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, core_1.ObjectNode)({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, core_1.NumberNode)()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, core_1.MapNode)(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, core_1.Opt)(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, core_1.MapNode)(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n OR: (0, core_1.ListNode)(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, Model_1.initModelSchemas)(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: (0, Common_1.Range)({ allowBinomial: true, integer: true }),\r\n bonus_rolls: (0, core_1.Opt)((0, Common_1.Range)({ integer: true })),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: (0, Common_1.Range)({ allowBinomial: true }),\r\n treasure: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)(StringNode({ enum: 'structure_feature' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, Common_1.Range)({ bounds: true })\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: (0, Common_1.Range)({ bounds: true }),\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_contents': {\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: (0, Common_1.Range)({ allowBinomial: true })\r\n },\r\n 'minecraft:set_damage': {\r\n damage: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceSwtichNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceSwtichNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.MapNode)(StringNode({ validator: 'objective' }), (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: (0, Common_1.Range)({ bounds: true }),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 5, max: 5 }), { default: () => 5 }),\r\n description: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } }))\r\n },\r\n 'show_entity': {\r\n value: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n }))\r\n }\r\n }\r\n })),\r\n extra: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` and `Predicates.ts` are files that have exports. They should be initialized first. \r\n (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, schemas_1.initSchemas)(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n"],"names":["require$$0","require$$1","core_1","Common_1","Predicates_1","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","this"],"mappings":"61BACA,OAAO,eAAe,EAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EACrC,EAAA,gBAAG,OAC1B,YAAyB,EAAa,CAClC,EAAY,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,2BACR,CAAK,EACD,EAAY,SAAS,uBAAwB,CACzC,kBACA,iBACA,gBACA,uBACA,yBACA,qBACA,kBACA,mBACR,CAAK,EACD,EAAY,SAAS,sBAAuB,CACxC,wBACA,qBACA,sBACA,8BACA,iCACA,uBACA,qCACA,2BACA,0BACA,uBACA,0BACA,0BACA,uCACA,wBACA,6BACA,8BACR,CAAK,EACD,EAAY,SAAS,qBAAsB,CACvC,sBACA,uBACA,qBACA,qBACA,oBACA,2BACA,yBACA,6BACA,gCACA,4BACA,wBACA,0BACA,4BACA,6BACA,sBACA,qBACA,uBACA,wBACA,4BACA,2BACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,oBACA,sBACA,8BACA,wBACA,uBACA,gBACA,yBACA,sBACA,eACA,qBACA,0BACA,sBACA,4BACR,CAAK,EACD,EAAY,SAAS,oBAAqB,CACtC,mBACA,YACA,UACA,iBACA,iBACA,QACA,YACA,YACA,aACA,WACA,aACA,WACA,UACA,kBACA,SACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,sBACA,uBACA,mBACR,CAAK,EACD,EAAY,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,SACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,MACR,CAAK,EACD,EAAY,SAAS,WAAY,CAC7B,WACA,WACA,YACA,WACR,CAAK,EACD,EAAY,SAAS,gBAAiB,CAClC,OACA,gBACA,SACA,eACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,eACA,OACA,SACA,eACR,CAAK,EACD,EAAY,SAAS,iCAAkC,CACnD,gCACA,sCACA,qBACR,CAAK,EACD,EAAY,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,cACR,CAAK,EACD,EAAY,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,iBACR,CAAK,EACD,EAAY,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,iBACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,gCACA,gCACA,8BACA,kCACA,4CACA,iCACA,kCACA,kCACA,gCACA,iCACA,mCACR,CAAK,CACL,CACA,EAAA,gBAA0B,mCCtS1B,OAAO,eAAc,EAAU,aAAc,CAAE,MAAO,EAAI,CAAE,EAC5D,EAAA,kBAA4B,EAAgB,MAAA,EAAA,eAAyB,OACrE,KAAM,GAASA,EACf,WAA2B,EAAS,EAAa,CAC7C,KAAM,GAAa,EAAO,WAAW,KAAK,OAAW,CAAW,EAC1D,EAAY,EAAO,UAAU,KAAK,OAAW,CAAO,EAC1D,EAAQ,SAAS,cAAe,GAAI,EAAO,KAAK,GAAI,EAAO,YAAY,CACnE,KAAM,EAAW,CAAE,UAAW,WAAY,OAAQ,CAAE,KAAM,OAAO,EAAI,E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"} \ No newline at end of file +{"version":3,"file":"index.047b40e9.js","sources":["../../node_modules/@mcschema/java-1.15/lib/Collections.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.15/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.15/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.15/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.15/lib/LootContext.js","../../node_modules/@mcschema/java-1.15/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.15/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.15/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.15/lib/schemas/index.js","../../node_modules/@mcschema/java-1.15/lib/index.js"],"sourcesContent":["\"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 collections.register('cat_texture', [\r\n 'textures/entity/cat/tabby.png',\r\n 'textures/entity/cat/black.png',\r\n 'textures/entity/cat/red.png',\r\n 'textures/entity/cat/siamese.png',\r\n 'textures/entity/cat/british_shorthair.png',\r\n 'textures/entity/cat/calico.png',\r\n 'textures/entity/cat/persian.png',\r\n 'textures/entity/cat/ragdoll.png',\r\n 'textures/entity/cat/white.png',\r\n 'textures/entity/cat/jellie.png',\r\n 'textures/entity/cat/all_black.png'\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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true })), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => (0, core_1.ChoiceNode)([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? (0, core_1.NumberNode)(config) : (0, core_1.Opt)((0, core_1.NumberNode)(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? (0, core_1.NumberNode)(config) : (0, core_1.Opt)((0, 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: (0, core_1.ObjectNode)({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n p: (0, 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: (0, 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: (0, 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: (0, core_1.MapNode)(StringNode({ validator: 'objective' }), (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: (0, exports.Range)(),\r\n period: (0, core_1.Opt)((0, core_1.NumberNode)())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, 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 = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: (0, core_1.Opt)((0, Common_1.Range)()),\r\n durability: (0, core_1.Opt)((0, Common_1.Range)()),\r\n potion: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: (0, core_1.Opt)((0, Common_1.Range)())\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', (0, core_1.ObjectNode)({\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n exports.LocationFields = {\r\n position: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n x: (0, core_1.Opt)((0, Common_1.Range)()),\r\n y: (0, core_1.Opt)((0, Common_1.Range)()),\r\n z: (0, core_1.Opt)((0, Common_1.Range)())\r\n })),\r\n biome: (0, core_1.Opt)(StringNode({ enum: 'biome' })),\r\n feature: (0, core_1.Opt)(StringNode({ enum: 'structure_feature' })),\r\n dimension: (0, core_1.Opt)(StringNode({ enum: 'dimension' })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: (0, core_1.Opt)((0, Common_1.Range)({ integer: true, min: 0, max: 15 }))\r\n })),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n };\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)(exports.LocationFields, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: (0, 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', (0, core_1.ObjectNode)({\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: (0, core_1.Opt)((0, Common_1.Range)()),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n { type: 'boolean', node: (0, core_1.BooleanNode)(), change: _ => true },\r\n {\r\n type: 'object', node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate')))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: (0, core_1.Opt)((0, Common_1.Range)()),\r\n duration: (0, core_1.Opt)((0, Common_1.Range)()),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, core_1.ObjectNode)({\r\n x: (0, core_1.Opt)((0, Common_1.Range)()),\r\n y: (0, core_1.Opt)((0, Common_1.Range)()),\r\n z: (0, core_1.Opt)((0, Common_1.Range)()),\r\n absolute: (0, core_1.Opt)((0, Common_1.Range)()),\r\n horizontal: (0, core_1.Opt)((0, Common_1.Range)())\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: (0, core_1.Opt)(Reference('player_predicate')),\r\n catType: (0, core_1.Opt)(StringNode({ enum: 'cat_texture' })),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: (0, core_1.Opt)((0, Common_1.Range)()),\r\n taken: (0, core_1.Opt)((0, Common_1.Range)()),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: (0, core_1.Opt)(Reference('entity_predicate')),\r\n partner: (0, core_1.Opt)(Reference('entity_predicate')),\r\n child: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ enum: 'dimension' })),\r\n to: (0, core_1.Opt)(StringNode({ enum: 'dimension' }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Opt)(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: (0, core_1.Opt)((0, Common_1.Range)())\r\n },\r\n 'minecraft:consume_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: (0, core_1.Opt)(Reference('entity_predicate')),\r\n zombie: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, Common_1.Range)()),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n item: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n empty: (0, core_1.Opt)((0, Common_1.Range)()),\r\n occupied: (0, core_1.Opt)((0, Common_1.Range)()),\r\n full: (0, core_1.Opt)((0, Common_1.Range)())\r\n })),\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: (0, core_1.Opt)((0, Common_1.Range)()),\r\n durability: (0, core_1.Opt)((0, Common_1.Range)()),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: (0, core_1.Opt)((0, Common_1.Range)()),\r\n victims: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Opt)(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:levitation': {\r\n distance: (0, core_1.Opt)((0, Common_1.Range)()),\r\n duration: (0, core_1.Opt)((0, Common_1.Range)())\r\n },\r\n 'minecraft:location': Predicates_1.LocationFields,\r\n 'minecraft:nether_travel': {\r\n distance: (0, core_1.Opt)((0, Common_1.Range)()),\r\n entered: (0, core_1.Opt)(Reference('location_predicate')),\r\n exited: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n killing_blow: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } }))\r\n })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: (0, core_1.Opt)((0, Common_1.Range)())\r\n },\r\n 'minecraft:used_totem': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: (0, core_1.Opt)(Reference('entity_predicate')),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': Predicates_1.LocationFields\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, core_1.ObjectNode)({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, core_1.NumberNode)()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, core_1.MapNode)(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, core_1.Opt)(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, core_1.MapNode)(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n OR: (0, core_1.ListNode)(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, Model_1.initModelSchemas)(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: (0, Common_1.Range)({ allowBinomial: true, integer: true }),\r\n bonus_rolls: (0, core_1.Opt)((0, Common_1.Range)({ integer: true })),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: (0, Common_1.Range)({ allowBinomial: true }),\r\n treasure: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)(StringNode({ enum: 'structure_feature' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, Common_1.Range)({ bounds: true })\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: (0, Common_1.Range)({ bounds: true }),\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_contents': {\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: (0, Common_1.Range)({ allowBinomial: true })\r\n },\r\n 'minecraft:set_damage': {\r\n damage: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceSwtichNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceSwtichNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.MapNode)(StringNode({ validator: 'objective' }), (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: (0, Common_1.Range)({ bounds: true }),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 5, max: 5 }), { default: () => 5 }),\r\n description: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } }))\r\n },\r\n 'show_entity': {\r\n value: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n }))\r\n }\r\n }\r\n })),\r\n extra: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` and `Predicates.ts` are files that have exports. They should be initialized first. \r\n (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, schemas_1.initSchemas)(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n"],"names":["require$$0","require$$1","core_1","Common_1","Predicates_1","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","this"],"mappings":"61BACA,OAAO,eAAe,EAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EACrC,EAAA,gBAAG,OAC1B,YAAyB,EAAa,CAClC,EAAY,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,2BACR,CAAK,EACD,EAAY,SAAS,uBAAwB,CACzC,kBACA,iBACA,gBACA,uBACA,yBACA,qBACA,kBACA,mBACR,CAAK,EACD,EAAY,SAAS,sBAAuB,CACxC,wBACA,qBACA,sBACA,8BACA,iCACA,uBACA,qCACA,2BACA,0BACA,uBACA,0BACA,0BACA,uCACA,wBACA,6BACA,8BACR,CAAK,EACD,EAAY,SAAS,qBAAsB,CACvC,sBACA,uBACA,qBACA,qBACA,oBACA,2BACA,yBACA,6BACA,gCACA,4BACA,wBACA,0BACA,4BACA,6BACA,sBACA,qBACA,uBACA,wBACA,4BACA,2BACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,oBACA,sBACA,8BACA,wBACA,uBACA,gBACA,yBACA,sBACA,eACA,qBACA,0BACA,sBACA,4BACR,CAAK,EACD,EAAY,SAAS,oBAAqB,CACtC,mBACA,YACA,UACA,iBACA,iBACA,QACA,YACA,YACA,aACA,WACA,aACA,WACA,UACA,kBACA,SACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,sBACA,uBACA,mBACR,CAAK,EACD,EAAY,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,SACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,MACR,CAAK,EACD,EAAY,SAAS,WAAY,CAC7B,WACA,WACA,YACA,WACR,CAAK,EACD,EAAY,SAAS,gBAAiB,CAClC,OACA,gBACA,SACA,eACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,eACA,OACA,SACA,eACR,CAAK,EACD,EAAY,SAAS,iCAAkC,CACnD,gCACA,sCACA,qBACR,CAAK,EACD,EAAY,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,cACR,CAAK,EACD,EAAY,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,iBACR,CAAK,EACD,EAAY,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,iBACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,gCACA,gCACA,8BACA,kCACA,4CACA,iCACA,kCACA,kCACA,gCACA,iCACA,mCACR,CAAK,CACL,CACA,EAAA,gBAA0B,mCCtS1B,OAAO,eAAc,EAAU,aAAc,CAAE,MAAO,EAAI,CAAE,EAC5D,EAAA,kBAA4B,EAAgB,MAAA,EAAA,eAAyB,OACrE,KAAM,GAASA,EACf,WAA2B,EAAS,EAAa,CAC7C,KAAM,GAAa,EAAO,WAAW,KAAK,OAAW,CAAW,EAC1D,EAAY,EAAO,UAAU,KAAK,OAAW,CAAO,EAC1D,EAAQ,SAAS,cAAe,GAAI,EAAO,KAAK,GAAI,EAAO,YAAY,CACnE,KAAM,EAAW,CAAE,UAAW,WAAY,OAAQ,CAAE,KAAM,OAAO,EAAI,E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"} \ No newline at end of file diff --git a/assets/index.10fe8e42.js b/assets/index.15314e06.js similarity index 99% rename from assets/index.10fe8e42.js rename to assets/index.15314e06.js index 65f463a9..c7381baa 100644 --- a/assets/index.10fe8e42.js +++ b/assets/index.15314e06.js @@ -1,2 +1,2 @@ -var Xe=Object.defineProperty,Ye=Object.defineProperties;var Ze=Object.getOwnPropertyDescriptors;var qe=Object.getOwnPropertySymbols;var Je=Object.prototype.hasOwnProperty,Qe=Object.prototype.propertyIsEnumerable;var Ie=(r,e,t)=>e in r?Xe(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,g=(r,e)=>{for(var t in e||(e={}))Je.call(e,t)&&Ie(r,t,e[t]);if(qe)for(var t of qe(e))Qe.call(e,t)&&Ie(r,t,e[t]);return r},W=(r,e)=>Ye(r,Ze(e));import{l as k,c as ie}from"./index.36354f76.js";function et(r,e){return e.forEach(function(t){t&&typeof t!="string"&&!Array.isArray(t)&&Object.keys(t).forEach(function(o){if(o!=="default"&&!(o in r)){var d=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(r,o,d.get?d:{enumerable:!0,get:function(){return t[o]}})}})}),Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var X={},se={};Object.defineProperty(se,"__esModule",{value:!0});se.initCollections=void 0;function tt(r){r.register("advancement_trigger",["minecraft:allay_drop_item_on_block","minecraft:avoid_vibration","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:kill_mob_near_sculk_catalyst","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:thrown_item_picked_up_by_player","minecraft:used_ender_eye","minecraft:used_totem","minecraft:using_item","minecraft:villager_trade","minecraft:voluntary_exile"]),r.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"]),r.register("slot",["mainhand","offhand","head","chest","legs","feet"]),r.register("gamemode",["survival","creative","adventure","spectator"]),r.register("entity_source",["this","killer","direct_killer","killer_player"]),r.register("copy_source",["block_entity","this","killer","killer_player"]),r.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),r.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"]),r.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"]),r.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"]),r.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mountain","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),r.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),r.register("generation_step",["air","liquid"]),r.register("decoration_step",["raw_generation","lakes","local_modifications","underground_structures","surface_structures","strongholds","underground_ores","underground_decoration","fluid_springs","vegetal_decoration","top_layer_modification"]),r.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"]),r.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"]),r.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"]),r.register("cave_surface",["floor","ceiling"]),r.register("direction",["down","up","north","east","south","west"]),r.register("axis",["x","y","z"]),r.register("display_position",["firstperson_righthand","firstperson_lefthand","thirdperson_righthand","thirdperson_lefthand","gui","head","ground","fixed"]),r.register("gui_light",["front","side"]),r.register("item_model_predicates",["angle","blocking","broken","cast","charged","cooldown","custom_model_data","damage","damaged","firework","lefthanded","pull","pulling","throwing","time"]),r.register("mob_category",["monster","creature","ambient","axolotls","underground_water_creature","water_creature","water_ambient","misc"])}se.initCollections=tt;var le={},me={};Object.defineProperty(me,"__esModule",{value:!0});me.initAdvancementSchemas=void 0;const s=k;function rt(r,e){const t=s.Reference.bind(void 0,r),o=s.StringNode.bind(void 0,e),d=(0,s.ChoiceNode)([{type:"object",node:(0,s.Opt)(t("entity_predicate")),change:n=>{var c,l;return(l=(c=n[0])===null||c===void 0?void 0:c.predicate)!==null&&l!==void 0?l:{}}},{type:"list",node:(0,s.ListNode)(t("condition")),change:n=>[{condition:"minecraft:entity_properties",predicate:n}]}],{context:"conditions"});r.register("advancement",(0,s.Mod)((0,s.ObjectNode)({display:(0,s.Opt)((0,s.Mod)((0,s.ObjectNode)({icon:(0,s.ObjectNode)({item:o({validator:"resource",params:{pool:"item"}}),nbt:(0,s.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:t("text_component"),description:t("text_component"),background:(0,s.Opt)(o()),frame:(0,s.Opt)(o({enum:["task","challenge","goal"]})),show_toast:(0,s.Opt)((0,s.BooleanNode)()),announce_to_chat:(0,s.Opt)((0,s.BooleanNode)()),hidden:(0,s.Opt)((0,s.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,s.Opt)(o({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,s.MapNode)(o(),t("advancement_criteria")),requirements:(0,s.Opt)((0,s.ListNode)((0,s.ListNode)(o()))),rewards:(0,s.Opt)((0,s.ObjectNode)({function:(0,s.Opt)(o({validator:"resource",params:{pool:"$function"}})),loot:(0,s.Opt)((0,s.ListNode)(o({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,s.Opt)((0,s.ListNode)(o({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,s.Opt)((0,s.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),r.register("advancement_criteria",(0,s.ObjectNode)({trigger:o({validator:"resource",params:{pool:e.get("advancement_trigger")}}),conditions:(0,s.Opt)((0,s.ObjectNode)({player:(0,s.Mod)(d,{enabled:n=>n.pop().push("trigger").get()!=="minecraft:impossible"}),[s.Switch]:["pop",{push:"trigger"}],[s.Case]:{"minecraft:allay_drop_item_on_block":{item:(0,s.Opt)(t("item_predicate")),location:(0,s.Opt)(t("location_predicate"))},"minecraft:bee_nest_destroyed":{block:(0,s.Opt)(o({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,s.Opt)((0,s.NumberNode)({integer:!0})),item:(0,s.Opt)(t("item_predicate"))},"minecraft:bred_animals":{parent:d,partner:d,child:d},"minecraft:brewed_potion":{potion:(0,s.Opt)(o({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,s.Opt)(o({validator:"resource",params:{pool:"$dimension"}})),to:(0,s.Opt)(o({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:construct_beacon":{level:t("int_bounds")},"minecraft:consume_item":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:cured_zombie_villager":{villager:d,zombie:d},"minecraft:effects_changed":{effects:(0,s.Opt)((0,s.MapNode)(o({validator:"resource",params:{pool:"mob_effect"}}),(0,s.ObjectNode)({amplifier:t("int_bounds"),duration:t("int_bounds")}))),source:(0,s.Opt)(d)},"minecraft:enter_block":{block:(0,s.Opt)(o({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:t("int_bounds"),item:(0,s.Opt)(t("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,s.Opt)(t("damage_predicate"))},"minecraft:entity_killed_player":{entity:d,killing_blow:(0,s.Opt)(t("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:(0,s.Opt)(t("location_predicate")),distance:(0,s.Opt)(t("distance_predicate"))},"minecraft:filled_bucket":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:d,item:(0,s.Opt)(t("item_predicate"))},"minecraft:inventory_changed":{slots:(0,s.Opt)((0,s.ObjectNode)({empty:t("int_bounds"),occupied:t("int_bounds"),full:t("int_bounds")})),items:(0,s.Opt)((0,s.ListNode)(t("item_predicate")))},"minecraft:item_durability_changed":{delta:t("int_bounds"),durability:t("int_bounds"),item:(0,s.Opt)(t("item_predicate"))},"minecraft:item_used_on_block":{item:(0,s.Opt)(t("item_predicate")),location:(0,s.Opt)(t("location_predicate"))},"minecraft:kill_mob_near_sculk_catalyst":{entity:d,killing_blow:(0,s.Opt)(t("damage_source_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:t("int_bounds"),victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:levitation":{distance:(0,s.Opt)(t("distance_predicate")),duration:t("int_bounds")},"minecraft:lightning_strike":{lightning:d,bystander:d},"minecraft:nether_travel":{start_position:(0,s.Opt)(t("location_predicate")),distance:(0,s.Opt)(t("distance_predicate"))},"minecraft:placed_block":{block:(0,s.Opt)(o({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,s.Opt)(t("item_predicate")),location:(0,s.Opt)(t("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:o({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:(0,s.Opt)(t("damage_predicate")),entity:d},"minecraft:player_interacted_with_entity":{item:(0,s.Opt)(t("item_predicate")),entity:d},"minecraft:player_killed_entity":{entity:d,killing_blow:(0,s.Opt)(t("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:o({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:(0,s.Opt)(t("location_predicate")),distance:(0,s.Opt)(t("distance_predicate"))},"minecraft:slide_down_block":{block:(0,s.Opt)(o({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:summoned_entity":{entity:d},"minecraft:tame_animal":{entity:d},"minecraft:target_hit":{projectile:d,shooter:d,signal_strength:t("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:d,item:(0,s.Opt)(t("item_predicate"))},"minecraft:thrown_item_picked_up_by_player":{entity:d,item:(0,s.Opt)(t("item_predicate"))},"minecraft:used_ender_eye":{distance:(0,s.Opt)(t("float_bounds"))},"minecraft:used_totem":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:using_item":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:villager_trade":{villager:d,item:(0,s.Opt)(t("item_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))}me.initAdvancementSchemas=rt;var _e={},ue={};Object.defineProperty(ue,"__esModule",{value:!0});ue.initModelSchemas=void 0;const N=k;function ot(r,e){N.Reference.bind(void 0,r);const t=N.StringNode.bind(void 0,e),o=(n,c,l)=>(0,N.ListNode)((0,N.NumberNode)({min:c,max:l}),{minLength:n,maxLength:n}),d=(0,N.ChoiceNode)([{type:"alias",match:n=>typeof n=="string"&&n.startsWith("#"),node:t(),change:n=>typeof n=="string"?`#${n}`:"#0"},{type:"reference",match:n=>typeof n=="string",node:t({validator:"resource",params:{pool:"$texture"}}),change:n=>typeof n=="string"?n.replace(/^#/,""):""}],{choiceContext:"texture"});r.register("model",(0,N.Mod)((0,N.ObjectNode)({parent:(0,N.Opt)(t({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,N.Opt)((0,N.BooleanNode)()),gui_light:(0,N.Opt)(t({enum:"gui_light"})),textures:(0,N.Opt)((0,N.MapNode)(t(),d)),elements:(0,N.Opt)((0,N.ListNode)((0,N.ObjectNode)({from:o(3,-16,32),to:o(3,-16,32),rotation:(0,N.Opt)((0,N.ObjectNode)({origin:o(3),axis:t({enum:"axis"}),angle:(0,N.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,N.Opt)((0,N.BooleanNode)())})),shade:(0,N.Opt)((0,N.BooleanNode)()),faces:(0,N.MapNode)(t({enum:"direction"}),(0,N.ObjectNode)({texture:d,uv:(0,N.Opt)(o(4)),cullface:(0,N.Opt)(t({enum:"direction"})),rotation:(0,N.Opt)((0,N.NumberNode)({integer:!0})),tintindex:(0,N.Opt)((0,N.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,N.Opt)((0,N.MapNode)(t({enum:"display_position"}),(0,N.ObjectNode)({rotation:o(3),translation:o(3,-80,80),scale:o(3,-4,4)},{context:"item_transform"}))),overrides:(0,N.Opt)((0,N.ListNode)((0,N.ObjectNode)({predicate:(0,N.MapNode)(t({enum:"item_model_predicates"}),(0,N.NumberNode)()),model:t({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))}ue.initModelSchemas=ot;var pe={};Object.defineProperty(pe,"__esModule",{value:!0});pe.initBlockDefinitionSchemas=void 0;const S=k;function it(r,e){const t=S.Reference.bind(void 0,r),o=S.StringNode.bind(void 0,e);r.register("block_definition",(0,S.Mod)((0,S.ChoiceNode)([{type:"variants",match:n=>n.variants!==void 0,node:(0,S.ObjectNode)({variants:(0,S.MapNode)(o(),t("model_variant"))}),change:n=>({variants:{"":{}}})},{type:"multipart",match:n=>n.multipart!==void 0,node:(0,S.ObjectNode)({multipart:(0,S.ListNode)((0,S.ObjectNode)({when:(0,S.Opt)(t("multipart_condition")),apply:t("model_variant")}))}),change:n=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const d={model:o({validator:"resource",params:{pool:"$model"}}),x:(0,S.Opt)((0,S.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,S.Opt)((0,S.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,S.Opt)((0,S.BooleanNode)())};r.register("model_variant",(0,S.ChoiceNode)([{type:"object",node:(0,S.ObjectNode)(d),change:n=>Array.isArray(n)&&n.length>0?n[0]:{}},{type:"list",node:(0,S.ListNode)((0,S.ObjectNode)(W(g({},d),{weight:(0,S.Opt)((0,S.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:n=>[g({weight:1},n)]}],{context:"model_variant"})),r.register("multipart_condition",(0,S.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,S.MapNode)(o(),o()),change:n=>typeof n=="object"&&Array.isArray(n==null?void 0:n.OR)&&n.OR.length>0?n.OR[0]:{}},{type:"or",match:n=>typeof n=="object"&&(n==null?void 0:n.OR)!==void 0,node:(0,S.ObjectNode)({OR:(0,S.ListNode)(t("multipart_condition"))}),change:n=>({OR:[n!=null?n:{}]})}],{context:"multipart_condition"}))}pe.initBlockDefinitionSchemas=it;Object.defineProperty(_e,"__esModule",{value:!0});_e.initAssetsSchemas=void 0;const nt=ue,at=pe;function ct(r,e){(0,at.initBlockDefinitionSchemas)(r,e),(0,nt.initModelSchemas)(r,e)}_e.initAssetsSchemas=ct;var fe={};Object.defineProperty(fe,"__esModule",{value:!0});fe.initChatTypeSchemas=void 0;const F=k;function dt(r,e){const t=F.Reference.bind(void 0,r),o=F.StringNode.bind(void 0,e);r.register("chat_type",(0,F.Mod)((0,F.ObjectNode)({chat:(0,F.Opt)((0,F.ObjectNode)({decoration:(0,F.Opt)(t("text_decoration"))})),overlay:(0,F.Opt)((0,F.ObjectNode)({decoration:(0,F.Opt)(t("text_decoration"))})),narration:(0,F.Opt)((0,F.ObjectNode)({decoration:(0,F.Opt)(t("text_decoration")),priority:o({enum:["chat","system"]})}))},{context:"chat_type"}),{default:()=>({chat:{decoration:{parameters:["sender","content"],translation_key:"chat.type.text",style:{}}}})})),r.register("text_decoration",(0,F.Mod)((0,F.ObjectNode)({translation_key:o(),parameters:(0,F.ListNode)(o({enum:["sender","team_name","content"]})),style:t("text_style")},{context:"text_decoration"}),{default:()=>({translation_key:"chat.type.text",parameters:["sender","content"],style:{}})}))}fe.initChatTypeSchemas=dt;var T={};(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.initCommonSchemas=r.Tag=r.InclusiveRange=r.IntProvider=r.FloatProvider=r.NoiseSettingsPresets=r.DefaultNoiseSettings=r.DimensionTypePresets=r.DefaultDimensionType=r.FunctionCases=r.ConditionCases=void 0;const e=k;r.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},r.DefaultNoiseSettings={sea_level:63,ore_veins_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,legacy_random_source:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}};function t(o,d){const n=e.StringNode.bind(void 0,d),c=e.Reference.bind(void 0,o);o.register("block_state",(0,e.Mod)((0,e.ObjectNode)({Name:n({validator:"resource",params:{pool:"block"}}),Properties:(0,e.Opt)((0,e.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),o.register("fluid_state",(0,e.Mod)((0,e.ObjectNode)({Name:n({validator:"resource",params:{pool:"fluid"}}),Properties:(0,e.Opt)((0,e.MapNode)(n(),n()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),o.register("block_pos",(0,e.Mod)((0,e.ListNode)((0,e.NumberNode)({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const l=_=>(0,e.Opt)((0,e.ChoiceNode)([{type:"number",node:(0,e.NumberNode)({integer:_}),change:b=>{var j,h;return b===void 0?0:(h=(j=b.min)!==null&&j!==void 0?j:b.max)!==null&&h!==void 0?h:0}},{type:"object",node:(0,e.ObjectNode)({min:(0,e.Opt)((0,e.NumberNode)({integer:_})),max:(0,e.Opt)((0,e.NumberNode)({integer:_}))},{context:"range"}),change:b=>({min:b!=null?b:0,max:b!=null?b:0})}]));o.register("int_bounds",l(!0)),o.register("float_bounds",l()),o.register("int_range",(0,e.ChoiceNode)([{type:"object",node:(0,e.ObjectNode)({min:(0,e.Opt)(c("number_provider")),max:(0,e.Opt)(c("number_provider"))})},{type:"number",node:(0,e.NumberNode)({integer:!0})}],{context:"range"}));const v=(_,b,j,h,B,D,U)=>{let ae={};B&&Object.keys(U[B]).forEach(A=>{ae[A]=(0,e.Mod)(U[B][A],{enabled:E=>E.push("type").get()===void 0})});const Q=(0,e.ObjectNode)(g({type:(0,e.Mod)((0,e.Opt)(n({validator:"resource",params:{pool:_}})),{hidden:()=>!0}),[e.Switch]:[{push:"type"}],[e.Case]:U},ae),{context:D,disableSwitchContext:!0}),ee=[{type:b,node:U[h][j]}];return B&&ee.push({type:"object",priority:-1,node:Q}),Object.keys(U).forEach(A=>{ee.push({type:A,match:E=>{var te;if("minecraft:"+((te=E==null?void 0:E.type)===null||te===void 0?void 0:te.replace(/^minecraft:/,""))===A)return!0;const V=E?Object.keys(E):[];return typeof E=="object"&&((V==null?void 0:V.length)===0||(V==null?void 0:V.length)===1&&(V==null?void 0:V[0])==="type")},node:Q,change:E=>({type:A})})}),(0,e.ChoiceNode)(ee,{context:D,choiceContext:`${D}.type`})};o.register("number_provider",v("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:(0,e.NumberNode)()},"minecraft:uniform":{min:c("number_provider"),max:c("number_provider")},"minecraft:binomial":{n:c("number_provider"),p:c("number_provider")},"minecraft:score":{target:c("scoreboard_name_provider"),score:n({validator:"objective"}),scale:(0,e.Opt)((0,e.NumberNode)())}})),o.register("scoreboard_name_provider",v("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:n({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:(0,e.Mod)(n({enum:"entity_source"}),{default:()=>"this"})}})),o.register("nbt_provider",v("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:n({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:(0,e.Mod)(n({enum:"copy_source"}),{default:()=>"this"})}})),r.FloatProvider=_=>v("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:(0,e.NumberNode)(_)},"minecraft:uniform":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(_),max_exclusive:(0,e.NumberNode)(_)})},"minecraft:clamped_normal":{value:(0,e.ObjectNode)({min:(0,e.NumberNode)(),max:(0,e.NumberNode)(),mean:(0,e.NumberNode)(),deviation:(0,e.NumberNode)()})},"minecraft:trapezoid":{value:(0,e.ObjectNode)({min:(0,e.NumberNode)(),max:(0,e.NumberNode)(),plateau:(0,e.NumberNode)()})}}),o.register("float_provider",(0,r.FloatProvider)()),r.IntProvider=_=>v("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:(0,e.NumberNode)(g({integer:!0},_))},"minecraft:uniform":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},_)),max_inclusive:(0,e.NumberNode)(g({integer:!0},_))})},"minecraft:biased_to_bottom":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},_)),max_inclusive:(0,e.NumberNode)(g({integer:!0},_))})},"minecraft:clamped":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},_)),max_inclusive:(0,e.NumberNode)(g({integer:!0},_)),source:c("int_provider")})},"minecraft:clamped_normal":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},_)),max_inclusive:(0,e.NumberNode)(g({integer:!0},_)),mean:(0,e.NumberNode)(),deviation:(0,e.NumberNode)()})},"minecraft:weighted_list":{distribution:(0,e.ListNode)((0,e.ObjectNode)({weight:(0,e.NumberNode)({integer:!0}),data:c("int_provider")}))}}),o.register("int_provider",(0,r.IntProvider)()),o.register("vertical_anchor",(0,e.ChoiceNode)(["absolute","above_bottom","below_top"].map(_=>({type:_,match:b=>(b==null?void 0:b[_])!==void 0,change:b=>{var j,h,B;return{[_]:(B=(h=(j=b.absolute)!==null&&j!==void 0?j:b.above_bottom)!==null&&h!==void 0?h:b.below_top)!==null&&B!==void 0?B:0}},node:(0,e.ObjectNode)({[_]:(0,e.NumberNode)({integer:!0,min:-2048,max:2047})})})),{context:"vertical_anchor"})),o.register("height_provider",v("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:c("vertical_anchor")},"minecraft:uniform":{min_inclusive:c("vertical_anchor"),max_inclusive:c("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:c("vertical_anchor"),max_inclusive:c("vertical_anchor"),inner:(0,e.Opt)((0,e.NumberNode)({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:c("vertical_anchor"),max_inclusive:c("vertical_anchor"),inner:(0,e.Opt)((0,e.NumberNode)({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:c("vertical_anchor"),max_inclusive:c("vertical_anchor"),plateau:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:weighted_list":{distribution:(0,e.ListNode)((0,e.ObjectNode)({weight:(0,e.NumberNode)({integer:!0}),data:c("int_provider")}))}})),r.InclusiveRange=_=>(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(_),max_inclusive:(0,e.NumberNode)(_)},{context:"range"}),o.register("noise_parameters",(0,e.Mod)((0,e.ObjectNode)({firstOctave:(0,e.NumberNode)({integer:!0}),amplitudes:(0,e.ListNode)((0,e.NumberNode)())},{context:"noise_parameters"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})})),r.Tag=_=>(0,e.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:_.resource,allowTag:!0}}),change:b=>{if(Array.isArray(b)&&typeof b[0]=="string"&&!b[0].startsWith("#"))return b[0]}},{type:"list",node:(0,e.ListNode)(_.inlineSchema?(0,e.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:_.resource}})},{type:"object",node:c(_.inlineSchema)}],{choiceContext:"tag.list"}):n({validator:"resource",params:{pool:_.resource}})),change:b=>typeof b=="string"&&!b.startsWith("#")?[b]:[]}],{choiceContext:"tag"}),r.ConditionCases=(_=n({enum:"entity_source"}))=>({"minecraft:alternative":{terms:(0,e.ListNode)(c("condition"))},"minecraft:block_state_property":{block:n({validator:"resource",params:{pool:"block"}}),properties:(0,e.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:c("damage_source_predicate")},"minecraft:entity_properties":{entity:_,predicate:c("entity_predicate")},"minecraft:entity_scores":{entity:_,scores:(0,e.MapNode)(n({validator:"objective"}),c("int_range"))},"minecraft:inverted":{term:c("condition")},"minecraft:killed_by_player":{inverse:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:location_check":{offsetX:(0,e.Opt)((0,e.NumberNode)({integer:!0})),offsetY:(0,e.Opt)((0,e.NumberNode)({integer:!0})),offsetZ:(0,e.Opt)((0,e.NumberNode)({integer:!0})),predicate:c("location_predicate")},"minecraft:match_tool":{predicate:c("item_predicate")},"minecraft:random_chance":{chance:(0,e.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,e.NumberNode)({min:0,max:1}),looting_multiplier:(0,e.NumberNode)()},"minecraft:reference":{name:n({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:n({validator:"resource",params:{pool:"enchantment"}}),chances:(0,e.ListNode)((0,e.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:c("int_range"),period:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:value_check":{value:c("number_provider"),range:c("int_range")},"minecraft:weather_check":{raining:(0,e.Opt)((0,e.BooleanNode)()),thundering:(0,e.Opt)((0,e.BooleanNode)())}}),r.FunctionCases=(_,b=n({enum:"copy_source"}),j=n({enum:"entity_source"}))=>{const h={"minecraft:apply_bonus":{enchantment:n({validator:"resource",params:{pool:"enchantment"}}),formula:n({validator:"resource",params:{pool:d.get("loot_table_apply_bonus_formula")}}),parameters:(0,e.Mod)((0,e.ObjectNode)({bonusMultiplier:(0,e.Mod)((0,e.NumberNode)(),{enabled:D=>D.pop().push("formula").get()==="minecraft:uniform_bonus_count"}),extra:(0,e.Mod)((0,e.NumberNode)(),{enabled:D=>D.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"}),probability:(0,e.Mod)((0,e.NumberNode)(),{enabled:D=>D.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"})}),{enabled:D=>D.push("formula").get()!=="minecraft:ore_drops"})},"minecraft:copy_name":{source:b},"minecraft:copy_nbt":{source:c("nbt_provider"),ops:(0,e.ListNode)((0,e.ObjectNode)({source:n({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:n({validator:"nbt_path",params:{category:"minecraft:item"}}),op:n({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:n({validator:"resource",params:{pool:"block"}}),properties:(0,e.ListNode)(n({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,e.Opt)((0,e.ListNode)(n({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:c("number_provider"),treasure:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:exploration_map":{destination:(0,e.Opt)((0,r.Tag)({resource:"$worldgen/structure"})),decoration:(0,e.Opt)(n({enum:"map_decoration"})),zoom:(0,e.Opt)((0,e.NumberNode)({integer:!0})),search_radius:(0,e.Opt)((0,e.NumberNode)({integer:!0})),skip_existing_chunks:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:fill_player_head":{entity:j},"minecraft:limit_count":{limit:c("int_range")},"minecraft:looting_enchant":{count:c("number_provider"),limit:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,e.ListNode)(c("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:(0,e.ListNode)((0,e.ObjectNode)({pattern:n({enum:"banner_pattern"}),color:n({enum:"dye_color"})})),append:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_contents":{type:n({validator:"resource",params:{pool:"block_entity_type"}}),entries:(0,e.ListNode)(c("loot_entry"))},"minecraft:set_count":{count:c("number_provider"),add:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_damage":{damage:c("number_provider"),add:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_enchantments":{enchantments:(0,e.MapNode)(n({validator:"resource",params:{pool:"enchantment"}}),c("number_provider")),add:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_instrument":{options:n({validator:"resource",params:{pool:"instrument",requireTag:!0}})},"minecraft:set_loot_table":{type:n({validator:"resource",params:{pool:"block_entity_type"}}),name:n({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,e.Opt)(j),lore:(0,e.ListNode)(c("text_component")),replace:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_name":{entity:(0,e.Opt)(j),name:(0,e.Opt)(c("text_component"))},"minecraft:set_nbt":{tag:n({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_potion":{id:n({validator:"resource",params:{pool:"potion"}})},"minecraft:set_stew_effect":{effects:(0,e.Opt)((0,e.ListNode)((0,e.ObjectNode)({type:n({validator:"resource",params:{pool:"mob_effect"}}),duration:c("number_provider")})))}},B={};return d.get("loot_function_type").forEach(D=>{B[D]=g(g({},h[D]),_)}),B},r.DimensionTypePresets=_=>(0,e.ObjectOrPreset)(n({validator:"resource",params:{pool:"$dimension_type"}}),_,{"minecraft:overworld":r.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}}),r.NoiseSettingsPresets=_=>(0,e.ObjectOrPreset)(n({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),_,{"minecraft:overworld":r.DefaultNoiseSettings,"minecraft:nether":{sea_level:32,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:netherrack"},default_fluid:{Properties:{level:"0"},Name:"minecraft:lava"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:end":{sea_level:0,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:amplified":{sea_level:63,ore_veins_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,legacy_random_source:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:caves":{sea_level:32,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:floating_islands":{sea_level:0,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}}})}r.initCommonSchemas=t})(T);var ge={};Object.defineProperty(ge,"__esModule",{value:!0});ge.initConditionSchemas=void 0;const re=k,st=T;function lt(r,e){const t=re.Reference.bind(void 0,r),o=re.StringNode.bind(void 0,e);r.register("predicate",(0,re.ObjectOrList)(t("condition"),{choiceContext:"condition"})),r.register("condition",(0,re.Mod)((0,re.ObjectNode)({condition:o({validator:"resource",params:{pool:"loot_condition_type"}}),[re.Switch]:[{push:"condition"}],[re.Case]:(0,st.ConditionCases)()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))}ge.initConditionSchemas=lt;var be={};Object.defineProperty(be,"__esModule",{value:!0});be.initDimensionSchemas=void 0;const O=k,ce=T;function mt(r,e){const t=O.Reference.bind(void 0,r),o=O.StringNode.bind(void 0,e);r.register("dimension",(0,O.Mod)((0,O.ObjectNode)({type:(0,ce.DimensionTypePresets)(t("dimension_type")),generator:(0,O.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[O.Switch]:[{push:"type"}],[O.Case]:{"minecraft:noise":{settings:(0,ce.NoiseSettingsPresets)(t("noise_settings")),biome_source:(0,O.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/biome_source"}}),[O.Switch]:[{push:"type"}],[O.Case]:{"minecraft:fixed":{biome:o({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:(0,O.Opt)(o({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:(0,O.Mod)((0,O.ListNode)(t("generator_biome")),{enabled:n=>n.push("preset").get()===void 0,default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:(0,O.Opt)((0,O.NumberNode)({integer:!0,min:0,max:62})),biomes:(0,ce.Tag)({resource:"$worldgen/biome"})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:t("flat_generator_settings")}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>({type:"minecraft:overworld",generator:{type:"minecraft:noise",biome_source:{type:"minecraft:fixed",biome:"minecraft:plains"},settings:"minecraft:overworld"}})})),r.register("flat_generator_settings",(0,O.ObjectNode)({biome:(0,O.Opt)(o({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:(0,O.Opt)((0,O.BooleanNode)()),features:(0,O.Opt)((0,O.BooleanNode)()),layers:(0,O.ListNode)(t("generator_layer")),structure_overrides:(0,ce.Tag)({resource:"$worldgen/structure_set",inlineSchema:"structure_set"})}));const d=(0,O.ChoiceNode)([{type:"number",node:(0,O.NumberNode)({min:-2,max:2}),change:n=>{var c;return(c=n[0])!==null&&c!==void 0?c:0}},{type:"list",node:(0,O.ListNode)((0,O.NumberNode)({min:-2,max:2}),{minLength:2,maxLength:2}),change:n=>[n!=null?n:0,n!=null?n:0]}]);r.register("parameter_point",(0,O.ObjectNode)({temperature:d,humidity:d,continentalness:d,erosion:d,weirdness:d,depth:d,offset:(0,O.NumberNode)({min:0,max:1})})),r.register("generator_biome",(0,O.Mod)((0,O.ObjectNode)({biome:o({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:t("parameter_point")},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{temperature:0,humidity:0,continentalness:0,erosion:0,weirdness:0,depth:0,offset:0}})}))}be.initDimensionSchemas=mt;var Ne={};Object.defineProperty(Ne,"__esModule",{value:!0});Ne.initDimensionTypeSchemas=void 0;const $=k,_t=T;function ut(r,e){const t=$.StringNode.bind(void 0,e);r.register("dimension_type",(0,$.Mod)((0,$.ObjectNode)({ultrawarm:(0,$.BooleanNode)(),natural:(0,$.BooleanNode)(),piglin_safe:(0,$.BooleanNode)(),respawn_anchor_works:(0,$.BooleanNode)(),bed_works:(0,$.BooleanNode)(),has_raids:(0,$.BooleanNode)(),has_skylight:(0,$.BooleanNode)(),has_ceiling:(0,$.BooleanNode)(),coordinate_scale:(0,$.NumberNode)({min:1e-5,max:3e7}),ambient_light:(0,$.NumberNode)(),fixed_time:(0,$.Opt)((0,$.NumberNode)({integer:!0})),logical_height:(0,$.NumberNode)({integer:!0,min:0,max:4064}),effects:(0,$.Opt)(t({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:t({validator:"resource",params:{pool:"block",requireTag:!0}}),min_y:(0,$.NumberNode)({integer:!0,min:-2032,max:2031}),height:(0,$.NumberNode)({integer:!0,min:16,max:4064})},{context:"dimension_type"}),o=>({default:()=>_t.DefaultDimensionType,validate:(d,n,c,l)=>(n=o.validate(d,n,c,l),(n==null?void 0:n.min_y)+(n==null?void 0:n.height)>2032&&c.add(d.push("height"),"error.min_y_plus_height",2032),(n==null?void 0:n.logical_height)>(n==null?void 0:n.height)&&c.add(d.push("logical_height"),"error.logical_height"),(n==null?void 0:n.height)%16!==0&&c.add(d.push("height"),"error.height_multiple",16),(n==null?void 0:n.min_y)%16!==0&&c.add(d.push("min_y"),"error.min_y_multiple",16),n)})))}Ne.initDimensionTypeSchemas=ut;var he={};Object.defineProperty(he,"__esModule",{value:!0});he.initItemModifierSchemas=void 0;const G=k,pt=T;function ft(r,e){const t=G.Reference.bind(void 0,r),o=G.StringNode.bind(void 0,e);r.register("item_modifier",(0,G.ObjectOrList)(t("function"),{choiceContext:"function"}));const d={conditions:(0,G.Opt)((0,G.ListNode)(t("condition")))};r.register("function",(0,G.Mod)((0,G.ObjectNode)({function:o({validator:"resource",params:{pool:"loot_function_type"}}),[G.Switch]:[{push:"function"}],[G.Case]:(0,pt.FunctionCases)(d)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))}he.initItemModifierSchemas=ft;var ye={},I={};Object.defineProperty(I,"__esModule",{value:!0});I.LootFunctions=I.LootConditions=I.LootCopySources=I.LootEntitySources=I.LootTableTypes=void 0;I.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]}]]);I.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]);I.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]);I.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",[]]]);I.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(ye,"__esModule",{value:!0});ye.initLootTableSchemas=void 0;const p=k,ne=I,Ae=T;function gt(r,e){const t=p.Reference.bind(void 0,r),o=p.StringNode.bind(void 0,e),d={conditions:(0,p.Opt)((0,p.ListNode)(t("loot_condition")))},n=g({functions:(0,p.Opt)((0,p.ListNode)(t("loot_function")))},d);function c(h,B,D){const U=[],ae=Q=>e.get(B).filter(ee=>{var A;return((A=h.get(ee))!==null&&A!==void 0?A:[]).every(te=>Q.includes(te))});for(const[Q,{allows:ee,requires:A}]of ne.LootTableTypes){const E=[...ee,...A];U.push({match:te=>te.getModel().get(new p.Path(["type"]))===Q,node:D(ae(E))})}return U.push({match:Q=>!0,node:D(B)}),(0,p.SwitchNode)(U)}const l=c(ne.LootConditions,"loot_condition_type",h=>o({validator:"resource",params:{pool:h instanceof Array?h:"loot_condition_type"}})),v=c(ne.LootFunctions,"loot_function_type",h=>o({validator:"resource",params:{pool:h instanceof Array?h:"loot_function_type"}})),_=c(ne.LootEntitySources,"entity_source",h=>o({enum:h})),b=c(ne.LootCopySources,"copy_source",h=>o({enum:h}));r.register("loot_table",(0,p.Mod)((0,p.ObjectNode)({type:(0,p.Opt)(o({validator:"resource",params:{pool:e.get("loot_context_type")}})),pools:(0,p.Opt)((0,p.ListNode)((0,p.Mod)((0,p.ObjectNode)(g({rolls:t("number_provider"),bonus_rolls:(0,p.Opt)(t("number_provider")),entries:(0,p.ListNode)(t("loot_entry"))},n),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,p.Opt)((0,p.ListNode)(t("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const j={enabled:h=>{var B;return((B=h.pop().get())===null||B===void 0?void 0:B.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(h.push("type").get())}};r.register("loot_entry",(0,p.Mod)((0,p.ObjectNode)({type:o({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,p.Opt)((0,p.Mod)((0,p.NumberNode)({integer:!0,min:1}),j)),quality:(0,p.Opt)((0,p.Mod)((0,p.NumberNode)({integer:!0}),j)),[p.Switch]:[{push:"type"}],[p.Case]:{"minecraft:alternatives":g({children:(0,p.ListNode)(t("loot_entry"))},n),"minecraft:dynamic":g({name:o()},n),"minecraft:group":g({children:(0,p.ListNode)(t("loot_entry"))},n),"minecraft:item":g({name:o({validator:"resource",params:{pool:"item"}})},n),"minecraft:loot_table":g({name:o({validator:"resource",params:{pool:"$loot_table"}})},n),"minecraft:sequence":g({children:(0,p.ListNode)(t("loot_entry"))},n),"minecraft:tag":g({name:o({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,p.Opt)((0,p.BooleanNode)())},n)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),r.register("loot_function",(0,p.Mod)((0,p.ObjectNode)({function:v,[p.Switch]:[{push:"function"}],[p.Case]:(0,Ae.FunctionCases)(d,b,_)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),r.register("loot_condition",(0,p.Mod)((0,p.ObjectNode)({condition:l,[p.Switch]:[{push:"condition"}],[p.Case]:(0,Ae.ConditionCases)(_)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),r.register("attribute_modifier",(0,p.Mod)((0,p.ObjectNode)({attribute:o({validator:"resource",params:{pool:"attribute"}}),name:o(),amount:t("number_provider"),operation:o({enum:["addition","multiply_base","multiply_total"]}),slot:(0,p.StringOrList)(o({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))}ye.initLootTableSchemas=gt;var ve={};Object.defineProperty(ve,"__esModule",{value:!0});ve.initPackMcmetaSchemas=void 0;const R=k,Y=10;function bt(r,e){const t=R.Reference.bind(void 0,r),o=R.StringNode.bind(void 0,e);r.register("pack_mcmeta",(0,R.Mod)((0,R.ObjectNode)({pack:(0,R.Mod)((0,R.ObjectNode)({pack_format:(0,R.Mod)((0,R.NumberNode)({integer:!0,min:Y,max:Y}),{default:()=>Y,canUpdate:(d,n)=>n!==Y,update:()=>[{name:"pack_format",params:[Y],newValue:Y}]}),description:t("text_component")}),{default:()=>({pack_format:Y,description:""})}),filter:(0,R.Opt)((0,R.ObjectNode)({block:(0,R.ListNode)((0,R.ObjectNode)({namespace:(0,R.Opt)(o({validator:"regex_pattern"})),path:(0,R.Opt)(o({validator:"regex_pattern"}))}))}))}),{default:()=>({pack:{pack_format:Y,description:""}})}))}ve.initPackMcmetaSchemas=bt;var Oe={};Object.defineProperty(Oe,"__esModule",{value:!0});Oe.initPredicatesSchemas=void 0;const a=k;function Nt(r,e){const t=a.Reference.bind(void 0,r),o=a.StringNode.bind(void 0,e),d=(0,a.ChoiceNode)([{type:"string",node:o(),change:n=>typeof n=="boolean"||typeof n=="number"?n.toString():""},{type:"number",node:(0,a.NumberNode)(),change:n=>typeof n=="string"?parseInt(n):0},{type:"object",node:(0,a.ObjectNode)({min:(0,a.Opt)((0,a.NumberNode)({integer:!0})),max:(0,a.Opt)((0,a.NumberNode)({integer:!0}))}),change:n=>typeof n=="number"?{min:n,max:n}:{}},{type:"boolean",node:(0,a.BooleanNode)(),change:n=>n==="true"||n===1}]);r.register("item_predicate",(0,a.ObjectNode)({items:(0,a.Opt)((0,a.ListNode)(o({validator:"resource",params:{pool:"item"}}))),tag:(0,a.Opt)(o({validator:"resource",params:{pool:"$tag/item"}})),count:t("int_bounds"),durability:t("int_bounds"),potion:(0,a.Opt)(o({validator:"resource",params:{pool:"potion"}})),nbt:(0,a.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,a.Opt)((0,a.ListNode)(t("enchantment_predicate")))},{context:"item"})),r.register("enchantment_predicate",(0,a.ObjectNode)({enchantment:(0,a.Opt)(o({validator:"resource",params:{pool:"enchantment"}})),levels:t("int_bounds")},{context:"enchantment"})),r.register("block_predicate",(0,a.ObjectNode)({blocks:(0,a.Opt)((0,a.ListNode)(o({validator:"resource",params:{pool:"block"}}))),tag:(0,a.Opt)(o({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,a.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,a.Opt)((0,a.MapNode)(o(),d,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),r.register("fluid_predicate",(0,a.ObjectNode)({fluid:(0,a.Opt)(o({validator:"resource",params:{pool:"fluid"}})),tag:(0,a.Opt)(o({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,a.Opt)((0,a.MapNode)(o(),d))},{context:"fluid"})),r.register("location_predicate",(0,a.ObjectNode)({position:(0,a.Opt)((0,a.ObjectNode)({x:t("float_bounds"),y:t("float_bounds"),z:t("float_bounds")})),biome:(0,a.Opt)(o({validator:"resource",params:{pool:"$worldgen/biome"}})),structure:(0,a.Opt)(o({validator:"resource",params:{pool:"$worldgen/structure"}})),dimension:(0,a.Opt)(o({validator:"resource",params:{pool:"$dimension"}})),light:(0,a.Opt)((0,a.ObjectNode)({light:t("int_bounds")})),smokey:(0,a.Opt)((0,a.BooleanNode)()),block:(0,a.Opt)(t("block_predicate")),fluid:(0,a.Opt)(t("fluid_predicate"))},{context:"location"})),r.register("statistic_predicate",(0,a.ObjectNode)({type:o({validator:"resource",params:{pool:"stat_type"}}),stat:o(),value:t("int_bounds"),[a.Switch]:[{push:"type"}],[a.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"}})}}})),r.register("status_effect_predicate",(0,a.ObjectNode)({amplifier:t("int_bounds"),duration:t("int_bounds"),ambient:(0,a.Opt)((0,a.BooleanNode)()),visible:(0,a.Opt)((0,a.BooleanNode)())},{context:"status_effect"})),r.register("distance_predicate",(0,a.ObjectNode)({x:t("float_bounds"),y:t("float_bounds"),z:t("float_bounds"),absolute:t("float_bounds"),horizontal:t("float_bounds")},{context:"distance"})),r.register("entity_predicate",(0,a.ObjectNode)({type:(0,a.Opt)(o({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),type_specific:(0,a.Opt)((0,a.ObjectNode)({type:o({enum:["any","cat","fishing_hook","frog","lightning","player","slime"]}),[a.Switch]:[{push:"type"}],[a.Case]:{cat:{variant:(0,a.Opt)(o({validator:"resource",params:{pool:"cat_variant"}}))},fishing_hook:{in_open_water:(0,a.Opt)((0,a.BooleanNode)())},frog:{variant:(0,a.Opt)(o({validator:"resource",params:{pool:"frog_variant"}}))},lightning:{blocks_set_on_fire:(0,a.Opt)(t("int_bounds")),entity_struck:(0,a.Opt)(t("entity_predicate"))},player:{gamemode:(0,a.Opt)(o({enum:"gamemode"})),level:t("int_bounds"),advancements:(0,a.Opt)((0,a.MapNode)(o({validator:"resource",params:{pool:"$advancement"}}),(0,a.ChoiceNode)([{type:"boolean",node:(0,a.BooleanNode)(),change:()=>!0},{type:"object",node:(0,a.MapNode)(o(),(0,a.BooleanNode)())}]))),recipes:(0,a.Opt)((0,a.MapNode)(o({validator:"resource",params:{pool:"$recipe"}}),(0,a.BooleanNode)())),stats:(0,a.Opt)((0,a.ListNode)(t("statistic_predicate"))),looking_at:(0,a.Opt)(t("entity_predicate"))},slime:{size:t("int_bounds")}}})),nbt:(0,a.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,a.Opt)(o({validator:"team"})),location:(0,a.Opt)(t("location_predicate")),stepping_on:(0,a.Opt)(t("location_predicate")),distance:(0,a.Opt)(t("distance_predicate")),flags:(0,a.Opt)((0,a.ObjectNode)({is_on_fire:(0,a.Opt)((0,a.BooleanNode)()),is_sneaking:(0,a.Opt)((0,a.BooleanNode)()),is_sprinting:(0,a.Opt)((0,a.BooleanNode)()),is_swimming:(0,a.Opt)((0,a.BooleanNode)()),is_baby:(0,a.Opt)((0,a.BooleanNode)())})),equipment:(0,a.Opt)((0,a.MapNode)(o({enum:"slot"}),t("item_predicate"))),vehicle:(0,a.Opt)(t("entity_predicate")),passenger:(0,a.Opt)(t("entity_predicate")),targeted_entity:(0,a.Opt)(t("entity_predicate")),effects:(0,a.Opt)((0,a.MapNode)(o({validator:"resource",params:{pool:"mob_effect"}}),t("status_effect_predicate")))},{context:"entity"})),r.register("damage_source_predicate",(0,a.ObjectNode)({is_explosion:(0,a.Opt)((0,a.BooleanNode)()),is_fire:(0,a.Opt)((0,a.BooleanNode)()),is_magic:(0,a.Opt)((0,a.BooleanNode)()),is_projectile:(0,a.Opt)((0,a.BooleanNode)()),is_lightning:(0,a.Opt)((0,a.BooleanNode)()),bypasses_armor:(0,a.Opt)((0,a.BooleanNode)()),bypasses_invulnerability:(0,a.Opt)((0,a.BooleanNode)()),bypasses_magic:(0,a.Opt)((0,a.BooleanNode)()),source_entity:(0,a.Opt)(t("entity_predicate")),direct_entity:(0,a.Opt)(t("entity_predicate"))},{context:"damage_source"})),r.register("damage_predicate",(0,a.ObjectNode)({dealt:t("float_bounds"),taken:t("float_bounds"),blocked:(0,a.Opt)((0,a.BooleanNode)()),source_entity:(0,a.Opt)(t("entity_predicate")),type:(0,a.Opt)(t("damage_source_predicate"))},{context:"damage"}))}Oe.initPredicatesSchemas=Nt;var ke={};Object.defineProperty(ke,"__esModule",{value:!0});ke.initRecipeSchemas=void 0;const u=k;function ht(r,e){const t=u.Reference.bind(void 0,r),o=u.StringNode.bind(void 0,e);r.register("recipe",(0,u.Mod)((0,u.ObjectNode)({type:o({validator:"resource",params:{pool:"recipe_serializer"}}),[u.Switch]:[{push:"type"}],[u.Case]:{"minecraft:crafting_shaped":{group:(0,u.Opt)(o({enum:"recipe_group",additional:!0})),pattern:(0,u.ListNode)(o()),key:(0,u.MapNode)(o(),t("recipe_ingredient")),result:t("recipe_result")},"minecraft:crafting_shapeless":{group:(0,u.Opt)(o()),ingredients:(0,u.ListNode)(t("recipe_ingredient")),result:t("recipe_result")},"minecraft:smelting":{group:(0,u.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,u.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,u.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,u.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,u.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),count:(0,u.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,u.Opt)(o()),base:t("recipe_ingredient_object"),addition:t("recipe_ingredient_object"),result:t("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),r.register("recipe_ingredient",(0,u.Mod)((0,u.ChoiceNode)([{type:"object",node:t("recipe_ingredient_object"),change:d=>d[0]},{type:"list",node:(0,u.ListNode)(t("recipe_ingredient_object")),change:d=>[d]}]),{default:()=>({item:"minecraft:stone"})})),r.register("recipe_ingredient_object",(0,u.Mod)((0,u.ObjectNode)({item:(0,u.Opt)(o({validator:"resource",params:{pool:"item"}})),tag:(0,u.Opt)(o({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),r.register("recipe_result",(0,u.Mod)((0,u.ObjectNode)({item:o({validator:"resource",params:{pool:"item"}}),count:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))}ke.initRecipeSchemas=ht;var we={};Object.defineProperty(we,"__esModule",{value:!0});we.initTagsSchemas=void 0;const H=k;function yt(r,e){const t=H.StringNode.bind(void 0,e),o=d=>(0,H.Mod)((0,H.ObjectNode)({replace:(0,H.Opt)((0,H.BooleanNode)()),values:(0,H.ListNode)((0,H.ChoiceNode)([{type:"string",node:t({validator:"resource",params:{pool:d,allowTag:!0}}),change:n=>n.id},{type:"object",node:(0,H.ObjectNode)({id:t({validator:"resource",params:{pool:d,allowTag:!0,allowUnknown:!0}}),required:(0,H.BooleanNode)()}),change:n=>({id:n})}]))},{context:"tag"}),{default:()=>({values:[]})});r.register("block_tag",o("block")),r.register("entity_type_tag",o("entity_type")),r.register("fluid_tag",o("fluid")),r.register("function_tag",o("$function")),r.register("game_event_tag",o("game_event")),r.register("item_tag",o("item")),r.register("advancement_tag",o("$advancement")),r.register("dimension_tag",o("$dimension")),r.register("dimension_type_tag",o("$dimension_type")),r.register("function_tag",o("$function")),r.register("item_modifier_tag",o("$item_modifier")),r.register("loot_table_tag",o("$loot_table")),r.register("predicate_tag",o("$predicate")),r.register("recipe_tag",o("$recipe")),r.register("structure_tag",o("$structure")),r.register("biome_tag",o("$worldgen/biome")),r.register("configured_carver_tag",o("$worldgen/configured_carver")),r.register("configured_feature_tag",o("$worldgen/configured_feature")),r.register("structure_tag",o("$worldgen/structure")),r.register("configured_surface_builder_tag",o("$worldgen/configured_surface_builder")),r.register("density_function_tag",o("$worldgen/density_function")),r.register("flat_level_generator_preset_tag",o("$worldgen/flat_level_generator_preset")),r.register("noise_tag",o("$worldgen/noise")),r.register("noise_settings_tag",o("$worldgen/noise_settings")),r.register("placed_feature_tag",o("$worldgen/placed_feature")),r.register("processor_list_tag",o("$worldgen/processor_list")),r.register("structure_set_tag",o("$worldgen/structure_set")),r.register("template_pool_tag",o("$worldgen/template_pool")),r.register("world_preset_tag",o("$worldgen/world_preset"))}we.initTagsSchemas=yt;var xe={};Object.defineProperty(xe,"__esModule",{value:!0});xe.initTextComponentSchemas=void 0;const m=k;function vt(r,e){const t=m.Reference.bind(void 0,r),o=m.StringNode.bind(void 0,e),d=l=>{var v;return l instanceof Array?d(l[0]):(v=l==null?void 0:l.text)!==null&&v!==void 0?v:typeof l=="object"?"":l==null?void 0:l.toString()};r.register("text_component",(0,m.Mod)((0,m.ChoiceNode)([{type:"object",node:t("text_component_object"),change:l=>l instanceof Array?typeof l[0]=="object"?l[0]:{text:d(l[0])}:typeof l=="object"?l:{text:d(l)}},{type:"list",node:t("text_component_list"),change:l=>[l]},{type:"string",priority:1,node:o(),change:d},{type:"number",node:(0,m.NumberNode)(),change:l=>{const v=parseFloat(d(l));return isFinite(v)?v:l?1:0}},{type:"boolean",node:(0,m.BooleanNode)(),change:l=>{const v=d(l);return v==="true"||v==="false"?v==="true":!!v}}],{context:"text_component"}),{default:()=>({text:""})}));const n={color:(0,m.Opt)(o()),font:(0,m.Opt)(o()),bold:(0,m.Opt)((0,m.BooleanNode)()),italic:(0,m.Opt)((0,m.BooleanNode)()),underlined:(0,m.Opt)((0,m.BooleanNode)()),strikethrough:(0,m.Opt)((0,m.BooleanNode)()),obfuscated:(0,m.Opt)((0,m.BooleanNode)()),insertion:(0,m.Opt)(o())};r.register("text_style",(0,m.ObjectNode)(g({},n),{context:"text_component_object"}));const c=W(g({},n),{clickEvent:(0,m.Opt)((0,m.ObjectNode)({action:o({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[m.Switch]:[{push:"action"}],[m.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:(0,m.Opt)((0,m.ObjectNode)({action:o({enum:["show_text","show_item","show_entity"]}),[m.Switch]:[{push:"action"}],[m.Case]:{show_text:{value:(0,m.Opt)(t("text_component")),contents:(0,m.Opt)(t("text_component"))},show_item:{value:(0,m.Opt)(o({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:(0,m.Opt)((0,m.ObjectNode)({id:o({validator:"resource",params:{pool:"item"}}),count:(0,m.Opt)((0,m.NumberNode)({integer:!0})),tag:(0,m.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:(0,m.Opt)((0,m.ObjectNode)({name:(0,m.Opt)(o()),type:(0,m.Opt)(o()),id:(0,m.Opt)(o())})),contents:(0,m.Opt)((0,m.Mod)((0,m.ObjectNode)({name:(0,m.Opt)(t("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:(0,m.Opt)(t("text_component_list"))});r.register("text_component_object",(0,m.Mod)((0,m.ChoiceNode)([{type:"text",match:l=>typeof l=="object",change:l=>({text:""}),priority:-1,node:(0,m.ObjectNode)(g({text:o()},c))},{type:"translation",match:l=>(l==null?void 0:l.translate)!==void 0,change:l=>({translate:""}),node:(0,m.ObjectNode)(g({translate:o(),with:(0,m.Opt)(t("text_component_list"))},c))},{type:"score",match:l=>(l==null?void 0:l.score)!==void 0,change:l=>({score:{}}),node:(0,m.ObjectNode)(g({score:(0,m.ObjectNode)({name:o({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:o({validator:"objective"}),value:(0,m.Opt)(o())})},c))},{type:"selector",match:l=>(l==null?void 0:l.selector)!==void 0,change:l=>({selector:""}),node:(0,m.ObjectNode)(g({selector:o({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:(0,m.Opt)(t("text_component"))},c))},{type:"keybind",match:l=>(l==null?void 0:l.keybind)!==void 0,change:l=>({keybind:""}),node:(0,m.ObjectNode)(g({keybind:o({enum:"keybind",additional:!0})},c))},{type:"nbt",match:l=>(l==null?void 0:l.nbt)!==void 0,change:l=>({nbt:""}),node:(0,m.ObjectNode)(g({nbt:o({validator:"nbt_path"}),block:(0,m.Opt)(o({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,m.Opt)(o({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,m.Opt)(o({validator:"resource",params:{pool:"$storage"}})),interpret:(0,m.Opt)((0,m.BooleanNode)()),separator:(0,m.Opt)(t("text_component"))},c))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),r.register("text_component_list",(0,m.Mod)((0,m.ListNode)(t("text_component")),{default:()=>[{text:""}]}))}xe.initTextComponentSchemas=vt;var Se={},Te={};(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.initBiomeSchemas=r.MobCategorySpawnSettings=void 0;const e=k,t=T;function o(d,n){const c=e.StringNode.bind(void 0,n);r.MobCategorySpawnSettings=(0,e.Mod)((0,e.ListNode)((0,e.ObjectNode)({type:c({validator:"resource",params:{pool:"entity_type"}}),weight:(0,e.NumberNode)({integer:!0}),minCount:(0,e.NumberNode)({integer:!0}),maxCount:(0,e.NumberNode)({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]}),d.register("biome",(0,e.Mod)((0,e.ObjectNode)({temperature:(0,e.NumberNode)(),downfall:(0,e.NumberNode)(),precipitation:c({enum:["none","rain","snow"]}),temperature_modifier:(0,e.Opt)(c({enum:["none","frozen"]})),creature_spawn_probability:(0,e.Opt)((0,e.NumberNode)({min:0,max:1})),effects:(0,e.ObjectNode)({sky_color:(0,e.NumberNode)({color:!0}),fog_color:(0,e.NumberNode)({color:!0}),water_color:(0,e.NumberNode)({color:!0}),water_fog_color:(0,e.NumberNode)({color:!0}),grass_color:(0,e.Opt)((0,e.NumberNode)({color:!0})),foliage_color:(0,e.Opt)((0,e.NumberNode)({color:!0})),grass_color_modifier:(0,e.Opt)(c({enum:["none","dark_forest","swamp"]})),ambient_sound:(0,e.Opt)(c()),mood_sound:(0,e.Opt)((0,e.ObjectNode)({sound:c(),tick_delay:(0,e.NumberNode)({integer:!0}),block_search_extent:(0,e.NumberNode)({integer:!0}),offset:(0,e.NumberNode)()})),additions_sound:(0,e.Opt)((0,e.ObjectNode)({sound:c(),tick_chance:(0,e.NumberNode)({min:0,max:1})})),music:(0,e.Opt)((0,e.ObjectNode)({sound:c(),min_delay:(0,e.NumberNode)({integer:!0,min:0}),max_delay:(0,e.NumberNode)({integer:!0,min:0}),replace_current_music:(0,e.BooleanNode)()})),particle:(0,e.Opt)((0,e.ObjectNode)({options:(0,e.ObjectNode)({type:c()}),probability:(0,e.NumberNode)({min:0,max:1})}))}),spawners:(0,e.MapNode)(c({enum:"mob_category"}),r.MobCategorySpawnSettings),spawn_costs:(0,e.MapNode)(c({validator:"resource",params:{pool:"entity_type"}}),(0,e.Mod)((0,e.ObjectNode)({energy_budget:(0,e.NumberNode)(),charge:(0,e.NumberNode)()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:(0,e.MapNode)(c({enum:["air","liquid"]}),(0,e.Mod)((0,t.Tag)({resource:"$worldgen/configured_carver",inlineSchema:"configured_carver"}),{default:()=>["minecraft:cave"]})),features:(0,e.ListNode)((0,e.Mod)((0,t.Tag)({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"}),{category:()=>"predicate"}),{maxLength:11})},{context:"biome"}),{default:()=>({temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))}r.initBiomeSchemas=o})(Te);var je={};Object.defineProperty(je,"__esModule",{value:!0});je.initCarverSchemas=void 0;const P=k,K=T;function Ot(r,e){const t=P.Reference.bind(void 0,r),o=P.StringNode.bind(void 0,e),d={vertical_rotation:(0,K.FloatProvider)(),shape:(0,P.ObjectNode)({distance_factor:(0,K.FloatProvider)(),thickness:(0,K.FloatProvider)(),width_smoothness:(0,P.NumberNode)({integer:!0,min:0}),horizontal_radius_factor:(0,K.FloatProvider)(),vertical_radius_default_factor:(0,P.NumberNode)(),vertical_radius_center_factor:(0,P.NumberNode)()})},n={horizontal_radius_multiplier:(0,K.FloatProvider)(),vertical_radius_multiplier:(0,K.FloatProvider)(),floor_level:(0,K.FloatProvider)({min:-1,max:1})};r.register("configured_carver",(0,P.Mod)((0,P.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/carver"}}),config:(0,P.ObjectNode)({probability:(0,P.NumberNode)({min:0,max:1}),y:t("height_provider"),yScale:(0,K.FloatProvider)(),lava_level:t("vertical_anchor"),replaceable:(0,K.Tag)({resource:"block"}),debug_settings:(0,P.Opt)((0,P.ObjectNode)({debug_mode:(0,P.Opt)((0,P.BooleanNode)()),air_state:(0,P.Opt)(t("block_state")),water_state:(0,P.Opt)(t("block_state")),lava_state:(0,P.Opt)(t("block_state")),barrier_state:(0,P.Opt)(t("block_state"))})),[P.Switch]:["pop",{push:"type"}],[P.Case]:{"minecraft:canyon":d,"minecraft:cave":n,"minecraft:nether_cave":n}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))}je.initCarverSchemas=Ot;var Ce={};Object.defineProperty(Ce,"__esModule",{value:!0});Ce.initDecoratorSchemas=void 0;const L=k,de=T;function kt(r,e){const t=L.Reference.bind(void 0,r),o=L.StringNode.bind(void 0,e);r.register("decorator",(0,L.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/placement_modifier_type"}}),[L.Switch]:[{push:"type"}],[L.Case]:{"minecraft:block_predicate_filter":{predicate:t("block_predicate_worldgen")},"minecraft:carving_mask":{step:o({enum:"generation_step"})},"minecraft:rarity_filter":{chance:(0,L.NumberNode)({integer:!0,min:0})},"minecraft:count":{count:(0,de.IntProvider)({min:0,max:256})},"minecraft:count_on_every_layer":{count:(0,de.IntProvider)({min:0,max:256})},"minecraft:noise_threshold_count":{noise_level:(0,L.NumberNode)(),below_noise:(0,L.NumberNode)({integer:!0}),above_noise:(0,L.NumberNode)({integer:!0})},"minecraft:noise_based_count":{noise_to_count_ratio:(0,L.NumberNode)({integer:!0}),noise_factor:(0,L.NumberNode)(),noise_offset:(0,L.Opt)((0,L.NumberNode)())},"minecraft:environment_scan":{direction_of_search:o({enum:["up","down"]}),max_steps:(0,L.NumberNode)({integer:!0,min:1,max:32}),target_condition:t("block_predicate_worldgen"),allowed_search_condition:(0,L.Opt)(t("block_predicate_worldgen"))},"minecraft:heightmap":{heightmap:o({enum:"heightmap_type"})},"minecraft:height_range":{height:t("height_provider")},"minecraft:random_offset":{xz_spread:(0,de.IntProvider)({min:-16,max:16}),y_spread:(0,de.IntProvider)({min:-16,max:16})},"minecraft:surface_relative_threshold_filter":{heightmap:o({enum:"heightmap_type"}),min_inclusive:(0,L.Opt)((0,L.NumberNode)({integer:!0})),max_inclusive:(0,L.Opt)((0,L.NumberNode)({integer:!0}))},"minecraft:surface_water_depth_filter":{max_water_depth:(0,L.NumberNode)({integer:!0})}}},{context:"decorator",category:"predicate"}))}Ce.initDecoratorSchemas=kt;var Re={};(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.initDensityFunctionSchemas=r.DensityFunction=void 0;const e=k;function t(o,d){const n=e.StringNode.bind(void 0,d),c=e.Reference.bind(void 0,o);r.DensityFunction=(0,e.Mod)((0,e.ChoiceNode)([{type:"number",node:(0,e.NumberNode)(),change:()=>0},{type:"string",priority:1,node:n({validator:"resource",params:{pool:"$worldgen/density_function"}}),change:()=>{}},{type:"object",node:c("density_function"),change:()=>({})}],{choiceContext:"density_function"}),{default:()=>0});const l=(0,e.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/noise"}}),change:()=>{}},{type:"object",node:c("noise_parameters")}],{choiceContext:"noise_parameters"}),v=(0,e.NumberNode)({min:-1e6,max:1e6}),_=(0,e.NumberNode)({integer:!0,min:-2032*2,max:2031*2});o.register("density_function",(0,e.Mod)((0,e.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/density_function_type"}}),[e.Switch]:[{push:"type"}],[e.Case]:{"minecraft:abs":{argument:r.DensityFunction},"minecraft:add":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:blend_density":{argument:r.DensityFunction},"minecraft:cache_2d":{argument:r.DensityFunction},"minecraft:cache_all_in_cell":{argument:r.DensityFunction},"minecraft:cache_once":{argument:r.DensityFunction},"minecraft:clamp":{input:r.DensityFunction,min:v,max:v},"minecraft:constant":{argument:(0,e.NumberNode)()},"minecraft:cube":{argument:r.DensityFunction},"minecraft:flat_cache":{argument:r.DensityFunction},"minecraft:half_negative":{argument:r.DensityFunction},"minecraft:interpolated":{argument:r.DensityFunction},"minecraft:max":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:min":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:mul":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:noise":{noise:l,xz_scale:(0,e.NumberNode)(),y_scale:(0,e.NumberNode)()},"minecraft:old_blended_noise":{xz_scale:(0,e.NumberNode)(),y_scale:(0,e.NumberNode)(),xz_factor:(0,e.NumberNode)(),y_factor:(0,e.NumberNode)(),smear_scale_multiplier:(0,e.NumberNode)({min:1,max:8})},"minecraft:quarter_negative":{argument:r.DensityFunction},"minecraft:range_choice":{input:r.DensityFunction,min_inclusive:v,max_exclusive:v,when_in_range:r.DensityFunction,when_out_of_range:r.DensityFunction},"minecraft:shift":{argument:r.DensityFunction},"minecraft:shift_a":{argument:r.DensityFunction},"minecraft:shift_b":{argument:r.DensityFunction},"minecraft:shifted_noise":{noise:l,xz_scale:(0,e.NumberNode)(),y_scale:(0,e.NumberNode)(),shift_x:r.DensityFunction,shift_y:r.DensityFunction,shift_z:r.DensityFunction},"minecraft:slide":{argument:r.DensityFunction},"minecraft:spline":{spline:c("cubic_spline")},"minecraft:square":{argument:r.DensityFunction},"minecraft:squeeze":{argument:r.DensityFunction},"minecraft:weird_scaled_sampler":{rarity_value_mapper:n({enum:["type_1","type_2"]}),noise:l,input:r.DensityFunction},"minecraft:y_clamped_gradient":{from_y:_,to_y:_,from_value:v,to_value:v}}},{context:"density_function",disableSwitchContext:!0}),{default:()=>({type:"minecraft:noise",noise:"minecraft:cave_entrance",xz_scale:.75,y_scale:.5})})),o.register("cubic_spline",(0,e.Mod)((0,e.ChoiceNode)([{type:"number",node:(0,e.NumberNode)()},{type:"object",node:(0,e.ObjectNode)({coordinate:r.DensityFunction,points:(0,e.ListNode)((0,e.ObjectNode)({location:(0,e.NumberNode)(),derivative:(0,e.NumberNode)(),value:c("cubic_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))}r.initDensityFunctionSchemas=t})(Re);var Me={},J={};Object.defineProperty(J,"__esModule",{value:!0});J.initProcessorListSchemas=J.Processors=void 0;const y=k,wt=T;function xt(r,e){const t=y.Reference.bind(void 0,r),o=y.StringNode.bind(void 0,e);J.Processors=(0,y.ChoiceNode)([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:n=>{}},{type:"object",node:t("processor_list"),change:n=>({processors:[{processor_type:"minecraft:nop"}]})}]),r.register("processor_list",(0,y.Mod)((0,y.ObjectNode)({processors:(0,y.ListNode)(t("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"}}]}]})})),r.register("processor",(0,y.Mod)((0,y.ObjectNode)({processor_type:o({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[y.Switch]:[{push:"processor_type"}],[y.Case]:{"minecraft:block_age":{mossiness:(0,y.NumberNode)()},"minecraft:block_ignore":{blocks:(0,y.ListNode)(t("block_state"))},"minecraft:block_rot":{integrity:(0,y.NumberNode)({min:0,max:1}),rottable_blocks:(0,y.Opt)((0,wt.Tag)({resource:"block"}))},"minecraft:gravity":{heightmap:o({enum:"heightmap_type"}),offset:(0,y.NumberNode)({integer:!0})},"minecraft:protected_blocks":{value:o({validator:"resource",params:{pool:"block",requireTag:!0}})},"minecraft:rule":{rules:(0,y.ListNode)(t("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"}}]})})),r.register("processor_rule",(0,y.Mod)((0,y.ObjectNode)({position_predicate:(0,y.Opt)(t("pos_rule_test")),location_predicate:t("rule_test"),input_predicate:t("rule_test"),output_state:t("block_state"),output_nbt:(0,y.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 d={min_dist:(0,y.Opt)((0,y.NumberNode)({min:0,max:255,integer:!0})),max_dist:(0,y.Opt)((0,y.NumberNode)({min:0,max:255,integer:!0})),min_chance:(0,y.Opt)((0,y.NumberNode)({min:0,max:1})),max_chance:(0,y.Opt)((0,y.NumberNode)({min:0,max:1}))};r.register("pos_rule_test",(0,y.ObjectNode)({predicate_type:o({validator:"resource",params:{pool:"pos_rule_test"}}),[y.Switch]:[{push:"predicate_type"}],[y.Case]:{"minecraft:axis_aligned_linear_pos":g({axis:o({enum:["x","y","z"]})},d),"minecraft:linear_pos":d}},{context:"pos_rule_test",disableSwitchContext:!0})),r.register("rule_test",(0,y.ObjectNode)({predicate_type:o({validator:"resource",params:{pool:"rule_test"}}),[y.Switch]:[{push:"predicate_type"}],[y.Case]:{"minecraft:block_match":{block:o({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:t("block_state")},"minecraft:random_block_match":{block:o({validator:"resource",params:{pool:"block"}}),probability:(0,y.NumberNode)({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:t("block_state"),probability:(0,y.NumberNode)({min:0,max:1})},"minecraft:tag_match":{tag:o({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))}J.initProcessorListSchemas=xt;Object.defineProperty(Me,"__esModule",{value:!0});Me.initFeatureSchemas=void 0;const i=k,f=T,Ee=J;function St(r,e){const t=i.Reference.bind(void 0,r),o=i.StringNode.bind(void 0,e),d=(0,i.ChoiceNode)([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:t("configured_feature")}],{choiceContext:"feature"}),n=(0,i.ChoiceNode)([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},{type:"object",node:t("placed_feature")}],{choiceContext:"placed_feature"}),c={tries:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1})),xz_spread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),y_spread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),feature:n},l={cap_provider:t("block_state_provider"),stem_provider:t("block_state_provider"),foliage_radius:(0,i.Opt)((0,i.NumberNode)({integer:!0}))},v=(0,i.ObjectNode)({target:t("rule_test"),state:t("block_state")}),_={size:(0,i.NumberNode)({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:(0,i.NumberNode)({min:0,max:1}),targets:(0,i.ListNode)(v)},b={surface:o({enum:"cave_surface"}),depth:(0,f.IntProvider)({min:1,max:128}),vertical_range:(0,i.NumberNode)({integer:!0,min:1,max:256}),extra_bottom_block_chance:(0,i.NumberNode)({min:0,max:1}),extra_edge_column_chance:(0,i.NumberNode)({min:0,max:1}),vegetation_chance:(0,i.NumberNode)({min:0,max:1}),xz_radius:(0,f.IntProvider)(),replaceable:o({validator:"resource",params:{pool:"block",requireTag:!0}}),ground_state:t("block_state_provider"),vegetation_feature:n};r.register("configured_feature",(0,i.Mod)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/feature"}}),config:(0,i.ObjectNode)({[i.Switch]:["pop",{push:"type"}],[i.Case]:{"minecraft:bamboo":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:basalt_columns":{reach:(0,f.IntProvider)({min:0,max:3}),height:(0,f.IntProvider)({min:1,max:10})},"minecraft:block_column":{direction:o({enum:["up","down","north","east","south","west"]}),allowed_placement:t("block_predicate_worldgen"),prioritize_tip:(0,i.BooleanNode)(),layers:(0,i.ListNode)((0,i.ObjectNode)({height:(0,f.IntProvider)({min:0}),provider:t("block_state_provider")}))},"minecraft:block_pile":{state_provider:t("block_state_provider")},"minecraft:delta_feature":{contents:t("block_state"),rim:t("block_state"),size:(0,f.IntProvider)({min:0,max:16}),rim_size:(0,f.IntProvider)({min:0,max:16})},"minecraft:disk":{state_provider:t("rule_based_block_state_provider"),target:t("block_predicate_worldgen"),radius:(0,f.IntProvider)({min:0,max:8}),half_height:(0,i.NumberNode)({integer:!0,min:0,max:4})},"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:(0,i.NumberNode)({integer:!0,min:1,max:512}),height:(0,f.IntProvider)({min:0,max:128}),radius:(0,f.IntProvider)({min:0,max:128}),max_stalagmite_stalactite_height_diff:(0,i.NumberNode)({integer:!0,min:0,max:64}),height_deviation:(0,i.NumberNode)({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:(0,f.IntProvider)({min:0,max:128}),density:(0,f.FloatProvider)({min:0,max:2}),wetness:(0,f.FloatProvider)({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:(0,i.NumberNode)({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:(0,i.NumberNode)({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:(0,i.NumberNode)({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:(0,i.BooleanNode)(),exit:(0,i.Opt)(t("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:(0,i.Opt)((0,i.BooleanNode)()),crystal_beam_target:(0,i.Opt)(t("block_pos")),spikes:(0,i.ListNode)((0,i.ObjectNode)({centerX:(0,i.Opt)((0,i.NumberNode)({integer:!0})),centerZ:(0,i.Opt)((0,i.NumberNode)({integer:!0})),radius:(0,i.Opt)((0,i.NumberNode)({integer:!0})),height:(0,i.Opt)((0,i.NumberNode)({integer:!0})),guarded:(0,i.Opt)((0,i.BooleanNode)())}))},"minecraft:fill_layer":{state:t("block_state"),height:(0,i.NumberNode)({integer:!0,min:0,max:255})},"minecraft:flower":c,"minecraft:forest_rock":{state:t("block_state")},"minecraft:fossil":{max_empty_corners_allowed:(0,i.NumberNode)({integer:!0,min:0,max:7}),fossil_structures:(0,i.ListNode)(o({validator:"resource",params:{pool:"$structure"}})),overlay_structures:(0,i.ListNode)(o({validator:"resource",params:{pool:"$structure"}})),fossil_processors:Ee.Processors,overlay_processors:Ee.Processors},"minecraft:geode":{blocks:(0,i.ObjectNode)({filling_provider:t("block_state_provider"),inner_layer_provider:t("block_state_provider"),alternate_inner_layer_provider:t("block_state_provider"),middle_layer_provider:t("block_state_provider"),outer_layer_provider:t("block_state_provider"),inner_placements:(0,i.ListNode)(t("block_state")),cannot_replace:o({validator:"resource",params:{pool:"block",requireTag:!0}}),invalid_blocks:o({validator:"resource",params:{pool:"block",requireTag:!0}})}),layers:(0,i.ObjectNode)({filling:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),inner_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),middle_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),outer_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50}))}),crack:(0,i.ObjectNode)({generate_crack_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),base_crack_size:(0,i.Opt)((0,i.NumberNode)({min:0,max:5})),crack_point_offset:(0,i.Opt)((0,i.NumberNode)({min:0,max:10}))}),noise_multiplier:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),use_potential_placements_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),use_alternate_layer0_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),placements_require_layer0_alternate:(0,i.Opt)((0,i.BooleanNode)()),outer_wall_distance:(0,i.Opt)((0,f.IntProvider)({min:1,max:20})),distribution_points:(0,i.Opt)((0,f.IntProvider)({min:1,max:20})),point_offset:(0,i.Opt)((0,f.IntProvider)({min:0,max:10})),min_gen_offset:(0,i.Opt)((0,i.NumberNode)({integer:!0})),max_gen_offset:(0,i.Opt)((0,i.NumberNode)({integer:!0})),invalid_blocks_threshold:(0,i.NumberNode)({integer:!0})},"minecraft:multiface_growth":{search_range:(0,i.Opt)((0,i.NumberNode)({min:1,max:64,integer:!0})),chance_of_spreading:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),can_place_on_floor:(0,i.Opt)((0,i.BooleanNode)()),can_place_on_ceiling:(0,i.Opt)((0,i.BooleanNode)()),can_place_on_wall:(0,i.Opt)((0,i.BooleanNode)()),can_be_placed_on:(0,f.Tag)({resource:"block"})},"minecraft:huge_brown_mushroom":l,"minecraft:huge_fungus":{hat_state:t("block_state"),decor_state:t("block_state"),stem_state:t("block_state"),valid_base_block:t("block_state"),planted:(0,i.Opt)((0,i.BooleanNode)())},"minecraft:huge_red_mushroom":l,"minecraft:iceberg":{state:t("block_state")},"minecraft:lake":{fluid:t("block_state_provider"),barrier:t("block_state_provider")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1,max:512})),column_radius:(0,f.IntProvider)({min:0,max:60}),height_scale:(0,f.FloatProvider)({min:0,max:20}),max_column_radius_to_cave_height_ratio:(0,i.NumberNode)({min:0,max:1}),stalactite_bluntness:(0,f.FloatProvider)({min:.1,max:10}),stalagmite_bluntness:(0,f.FloatProvider)({min:.1,max:10}),wind_speed:(0,f.FloatProvider)({min:0,max:2}),min_radius_for_wind:(0,i.NumberNode)({integer:!0,min:0,max:100}),min_bluntness_for_wind:(0,i.NumberNode)({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:t("block_state_provider"),spread_width:(0,i.NumberNode)({integer:!0,min:1}),spread_height:(0,i.NumberNode)({integer:!0,min:1})},"minecraft:netherrack_replace_blobs":{state:t("block_state"),target:t("block_state"),radius:(0,f.IntProvider)({min:0,max:12})},"minecraft:no_bonemeal_flower":c,"minecraft:ore":_,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_directional_spread:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_spread_radius2:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_spread_radius3:(0,i.Opt)((0,i.NumberNode)({min:0,max:1}))},"minecraft:random_patch":c,"minecraft:random_boolean_selector":{feature_false:n,feature_true:n},"minecraft:random_selector":{features:(0,i.ListNode)((0,i.ObjectNode)({chance:(0,i.NumberNode)({min:0,max:1}),feature:n})),default:n},"minecraft:replace_single_block":{targets:(0,i.ListNode)(v)},"minecraft:root_system":{required_vertical_space_for_tree:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_radius:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_placement_attempts:(0,i.NumberNode)({integer:!0,min:1,max:256}),root_column_max_height:(0,i.NumberNode)({integer:!0,min:1,max:4096}),hanging_root_radius:(0,i.NumberNode)({integer:!0,min:1,max:64}),hanging_roots_vertical_span:(0,i.NumberNode)({integer:!0,min:0,max:16}),hanging_root_placement_attempts:(0,i.NumberNode)({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_replaceable:o({validator:"resource",params:{pool:"block",requireTag:!0}}),root_state_provider:t("block_state_provider"),hanging_root_state_provider:t("block_state_provider"),allowed_tree_position:t("block_predicate_worldgen"),feature:n},"minecraft:scattered_ore":_,"minecraft:sculk_patch":{charge_count:(0,i.NumberNode)({integer:!0,min:1,max:32}),amount_per_charge:(0,i.NumberNode)({integer:!0,min:1,max:500}),spread_attempts:(0,i.NumberNode)({integer:!0,min:1,max:64}),growth_rounds:(0,i.NumberNode)({integer:!0,min:0,max:8}),spread_rounds:(0,i.NumberNode)({integer:!0,min:0,max:8}),extra_rare_growths:(0,f.IntProvider)(),catalyst_chance:(0,i.NumberNode)({min:0,max:1})},"minecraft:sea_pickle":{count:(0,f.IntProvider)({min:0,max:256})},"minecraft:seagrass":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:simple_block":{to_place:t("block_state_provider")},"minecraft:simple_random_selector":{features:(0,f.Tag)({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"})},"minecraft:spring_feature":{state:t("fluid_state"),rock_count:(0,i.NumberNode)({integer:!0}),hole_count:(0,i.NumberNode)({integer:!0}),requires_block_below:(0,i.BooleanNode)(),valid_blocks:(0,f.Tag)({resource:"block"})},"minecraft:tree":{ignore_vines:(0,i.Opt)((0,i.BooleanNode)()),force_dirt:(0,i.Opt)((0,i.BooleanNode)()),minimum_size:t("feature_size"),dirt_provider:t("block_state_provider"),trunk_provider:t("block_state_provider"),foliage_provider:t("block_state_provider"),root_placer:(0,i.Opt)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/root_placer_type"}}),root_provider:t("block_state_provider"),trunk_offset_y:(0,f.IntProvider)(),above_root_placement:(0,i.Opt)((0,i.ObjectNode)({above_root_provider:t("block_state_provider"),above_root_placement_chance:(0,i.NumberNode)({min:0,max:1})})),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:mangrove_root_placer":{mangrove_root_placement:(0,i.ObjectNode)({max_root_width:(0,i.NumberNode)({integer:!0,min:1,max:12}),max_root_length:(0,i.NumberNode)({integer:!0,min:1,max:64}),random_skew_chance:(0,i.NumberNode)({min:0,max:1}),can_grow_through:(0,f.Tag)({resource:"block"}),muddy_roots_in:(0,f.Tag)({resource:"block"}),muddy_roots_provider:t("block_state_provider")})}}},{context:"root_placer"})),trunk_placer:(0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:(0,i.NumberNode)({integer:!0,min:0,max:32}),height_rand_a:(0,i.NumberNode)({integer:!0,min:0,max:24}),height_rand_b:(0,i.NumberNode)({integer:!0,min:0,max:24}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:bending_trunk_placer":{bend_length:(0,f.IntProvider)({min:1,max:64}),min_height_for_leaves:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1}))},"minecraft:upwards_branching_trunk_placer":{extra_branch_steps:(0,f.IntProvider)({min:1}),extra_branch_length:(0,f.IntProvider)({min:0}),place_branch_per_log_probability:(0,i.NumberNode)({min:0,max:1}),can_grow_through:(0,f.Tag)({resource:"block"})}}},{context:"trunk_placer"}),foliage_placer:(0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:(0,f.IntProvider)({min:0,max:16}),offset:(0,f.IntProvider)({min:0,max:16}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:blob_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:(0,f.IntProvider)({min:0,max:24})},"minecraft:pine_foliage_placer":{height:(0,f.IntProvider)({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:(0,f.IntProvider)({min:1,max:512}),leaf_placement_attempts:(0,i.NumberNode)({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:(0,f.IntProvider)({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:(0,i.ListNode)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:alter_ground":{provider:t("block_state_provider")},"minecraft:attached_to_leaves":{probability:(0,i.NumberNode)({min:0,max:1}),exclusion_radius_xz:(0,i.NumberNode)({integer:!0,min:0,max:16}),exclusion_radius_y:(0,i.NumberNode)({integer:!0,min:0,max:16}),required_empty_blocks:(0,i.NumberNode)({integer:!0,min:1,max:16}),block_provider:t("block_state_provider"),directions:(0,i.ListNode)(o({enum:"direction"}))},"minecraft:beehive":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:cocoa":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:leave_vine":{probability:(0,i.NumberNode)({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:twisting_vines":{spread_width:(0,i.NumberNode)({integer:!0,min:1}),spread_height:(0,i.NumberNode)({integer:!0,min:1}),max_height:(0,i.NumberNode)({integer:!0,min:1})},"minecraft:underwater_magma":{floor_search_range:(0,i.NumberNode)({integer:!0,min:0,max:512}),placement_radius_around_floor:(0,i.NumberNode)({integer:!0,min:0,max:64}),placement_probability_per_valid_position:(0,i.NumberNode)({min:0,max:1})},"minecraft:vegetation_patch":b,"minecraft:waterlogged_vegetation_patch":b}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:tree",config:{minimum_size:{type:"minecraft:two_layers_feature_size"},trunk_placer:{type:"minecraft:straight_trunk_placer",base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{type:"minecraft:blob_foliage_placer",radius:2,offset:0,height:3}}})})),r.register("placed_feature",(0,i.Mod)((0,i.ObjectNode)({feature:d,placement:(0,i.ListNode)(t("decorator"))},{context:"placed_feature"}),{default:()=>({feature:"minecraft:oak",placement:[{type:"minecraft:count",count:4},{type:"minecraft:in_square"},{type:"minecraft:heightmap",heightmap:"OCEAN_FLOOR"}]})})),r.register("feature_size",(0,i.Mod)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:(0,i.Opt)((0,i.NumberNode)({min:0,max:80})),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:two_layers_feature_size":{limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:81})),lower_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:80})),upper_limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:80})),lower_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),middle_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const j={seed:(0,i.NumberNode)({integer:!0}),noise:t("noise_parameters"),scale:(0,i.Mod)((0,i.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1})};r.register("block_state_provider",(0,i.Mod)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:dual_noise_provider":W(g({},j),{variety:(0,f.InclusiveRange)({integer:!0,min:1,max:64}),slow_noise:t("noise_parameters"),slow_scale:(0,i.Mod)((0,i.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1}),states:(0,i.ListNode)(t("block_state"))}),"minecraft:noise_threshold_provider":W(g({},j),{threshold:(0,i.NumberNode)({min:-1,max:1}),high_chance:(0,i.NumberNode)({min:0,max:1}),default_state:t("block_state"),low_states:(0,i.ListNode)(t("block_state")),high_states:(0,i.ListNode)(t("block_state"))}),"minecraft:noise_provider":W(g({},j),{states:(0,i.ListNode)(t("block_state"))}),"minecraft:randomized_int_state_provider":{property:o(),values:(0,f.IntProvider)(),source:t("block_state_provider")},"minecraft:rotated_block_provider":{state:t("block_state")},"minecraft:simple_state_provider":{state:t("block_state")},"minecraft:weighted_state_provider":{entries:(0,i.ListNode)((0,i.Mod)((0,i.ObjectNode)({weight:(0,i.NumberNode)({integer:!0,min:1}),data:t("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),r.register("rule_based_block_state_provider",(0,i.Mod)((0,i.ObjectNode)({fallback:t("block_state_provider"),rules:(0,i.ListNode)((0,i.ObjectNode)({if_true:t("block_predicate_worldgen"),then:t("block_state_provider")}))},{context:"block_state_provider"}),{default:()=>({fallback:{type:"minecraft:simple_state_provider"}})}));const h={offset:(0,i.Opt)((0,i.ListNode)((0,i.NumberNode)({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))};r.register("block_predicate_worldgen",(0,i.Mod)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"block_predicate_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:all_of":{predicates:(0,i.ListNode)(t("block_predicate_worldgen"))},"minecraft:any_of":{predicates:(0,i.ListNode)(t("block_predicate_worldgen"))},"minecraft:has_sturdy_face":W(g({},h),{direction:o({enum:"direction"})}),"minecraft:inside_world_bounds":g({},h),"minecraft:matching_block_tag":W(g({},h),{tag:o({validator:"resource",params:{pool:"$tag/block"}})}),"minecraft:matching_blocks":W(g({},h),{blocks:(0,f.Tag)({resource:"block"})}),"minecraft:matching_fluids":W(g({},h),{fluids:(0,f.Tag)({resource:"fluid"})}),"minecraft:not":{predicate:t("block_predicate_worldgen")},"minecraft:would_survive":W(g({},h),{state:t("block_state")})}},{context:"block_predicate"}),{default:()=>({type:"minecraft:true"})}))}Me.initFeatureSchemas=St;var Pe={};Object.defineProperty(Pe,"__esModule",{value:!0});Pe.initNoiseSettingsSchemas=void 0;const C=k,jt=T,z=Re;function Ct(r,e){const t=C.Reference.bind(void 0,r),o=C.StringNode.bind(void 0,e);r.register("noise_settings",(0,C.Mod)((0,C.ObjectNode)({sea_level:(0,C.NumberNode)({integer:!0}),disable_mob_generation:(0,C.BooleanNode)(),aquifers_enabled:(0,C.BooleanNode)(),ore_veins_enabled:(0,C.BooleanNode)(),legacy_random_source:(0,C.BooleanNode)(),default_block:t("block_state"),default_fluid:t("block_state"),noise:(0,C.ObjectNode)({min_y:(0,C.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,C.NumberNode)({integer:!0,min:0,max:4096}),size_horizontal:(0,C.NumberNode)({integer:!0}),size_vertical:(0,C.NumberNode)({integer:!0})}),noise_router:(0,C.ObjectNode)({barrier:z.DensityFunction,fluid_level_floodedness:z.DensityFunction,fluid_level_spread:z.DensityFunction,lava:z.DensityFunction,temperature:z.DensityFunction,vegetation:z.DensityFunction,continents:z.DensityFunction,erosion:z.DensityFunction,depth:z.DensityFunction,ridges:z.DensityFunction,initial_density_without_jaggedness:z.DensityFunction,final_density:z.DensityFunction,vein_toggle:z.DensityFunction,vein_ridged:z.DensityFunction,vein_gap:z.DensityFunction}),spawn_target:(0,C.ListNode)(t("parameter_point")),surface_rule:t("material_rule")},{context:"noise_settings"}),d=>({default:()=>jt.DefaultNoiseSettings,validate:(n,c,l,v)=>{var _,b,j,h;return c=d.validate(n,c,l,v),((_=c==null?void 0:c.noise)===null||_===void 0?void 0:_.min_y)+((b=c==null?void 0:c.noise)===null||b===void 0?void 0:b.height)>2047&&l.add(n.push("noise").push("height"),"error.min_y_plus_height",2047),((j=c==null?void 0:c.noise)===null||j===void 0?void 0:j.height)%16!==0&&l.add(n.push("noise").push("height"),"error.height_multiple",16),((h=c==null?void 0:c.noise)===null||h===void 0?void 0:h.min_y)%16!==0&&l.add(n.push("noise").push("min_y"),"error.min_y_multiple",16),c}}))),r.register("noise_slider",(0,C.ObjectNode)({target:(0,C.NumberNode)(),size:(0,C.NumberNode)({integer:!0,min:0}),offset:(0,C.NumberNode)({integer:!0})})),r.register("generator_layer",(0,C.Mod)((0,C.ObjectNode)({block:o({validator:"resource",params:{pool:"block"}}),height:(0,C.NumberNode)({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))}Pe.initNoiseSettingsSchemas=Ct;var Le={};Object.defineProperty(Le,"__esModule",{value:!0});Le.initStructureSchemas=void 0;const x=k,Mt=T,Pt=Te;function Lt(r,e){const t=x.StringNode.bind(void 0,e),o=x.Reference.bind(void 0,r);r.register("structure",(0,x.Mod)((0,x.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/structure_type"}}),biomes:(0,Mt.Tag)({resource:"$worldgen/biome"}),step:t({enum:"decoration_step"}),spawn_overrides:(0,x.MapNode)(t({enum:"mob_category"}),(0,x.ObjectNode)({bounding_box:t({enum:["piece","full"]}),spawns:Pt.MobCategorySpawnSettings})),terrain_adaptation:(0,x.Opt)(t({enum:["none","beard_thin","beard_box","bury"]})),[x.Switch]:[{push:"type"}],[x.Case]:{"minecraft:jigsaw":{start_pool:t({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:(0,x.NumberNode)({integer:!0}),start_height:o("height_provider"),start_jigsaw_name:(0,x.Opt)(t()),project_start_to_heightmap:(0,x.Opt)(t({enum:"heightmap_type"})),max_distance_from_center:(0,x.NumberNode)({integer:!0,min:1,max:128}),use_expansion_hack:(0,x.BooleanNode)()},"minecraft:mineshaft":{mineshaft_type:t({enum:["normal","mesa"]})},"minecraft:nether_fossil":{height:o("height_provider")},"minecraft:ocean_ruin":{biome_temp:t({enum:["cold","warm"]}),large_probability:(0,x.NumberNode)({min:0,max:1}),cluster_probability:(0,x.NumberNode)({min:0,max:1})},"minecraft:ruined_portal":{setups:(0,x.ListNode)((0,x.ObjectNode)({placement:t({enum:["on_land_surface","partly_buried","on_ocean_floor","in_mountain","underground","in_nether"]}),air_pocket_probability:(0,x.NumberNode)({min:0,max:1}),mossiness:(0,x.NumberNode)({min:0,max:1}),overgrown:(0,x.BooleanNode)(),vines:(0,x.BooleanNode)(),can_be_cold:(0,x.BooleanNode)(),replace_with_blackstone:(0,x.BooleanNode)(),weight:(0,x.NumberNode)({min:0})}))},"minecraft:shipwreck":{is_beached:(0,x.Opt)((0,x.BooleanNode)())}}},{context:"structure_feature"}),{default:()=>({type:"minecraft:jigsaw",step:"surface_structures",size:6})}))}Le.initStructureSchemas=Lt;var $e={};Object.defineProperty($e,"__esModule",{value:!0});$e.initStructureSetSchemas=void 0;const w=k,We=T;function $t(r,e){const t=w.StringNode.bind(void 0,e),o=w.Reference.bind(void 0,r),d=(0,w.ChoiceNode)([{type:"string",node:t({validator:"resource",params:{pool:"$worldgen/structure_set"}})},{type:"object",node:o("structure_set")}],{choiceContext:"structure_set"});r.register("structure_set",(0,w.ObjectNode)({structures:(0,w.ListNode)((0,w.ObjectNode)({structure:(0,We.Tag)({resource:"$worldgen/structure"}),weight:(0,w.NumberNode)({integer:!0,min:1})})),placement:o("structure_placement")},{context:"structure_set"})),r.register("structure_placement",(0,w.Mod)((0,w.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/structure_placement"}}),salt:(0,w.NumberNode)({integer:!0,min:0}),frequency_reduction_method:(0,w.Opt)(t({enum:["default","legacy_type_1","legacy_type_2","legacy_type_3"]})),frequency:(0,w.Opt)((0,w.NumberNode)({min:0,max:1})),exclusion_zone:(0,w.Opt)((0,w.ObjectNode)({other_set:d,chunk_count:(0,w.NumberNode)({integer:!0,min:1,max:16})})),locate_offset:(0,w.Opt)((0,w.ListNode)((0,w.NumberNode)({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3})),[w.Switch]:[{push:"type"}],[w.Case]:{"minecraft:concentric_rings":{distance:(0,w.NumberNode)({integer:!0,min:0,max:1023}),spread:(0,w.NumberNode)({integer:!0,min:0,max:1023}),count:(0,w.NumberNode)({integer:!0,min:1,max:4095}),preferred_biomes:(0,We.Tag)({resource:"$worldgen/biome"})},"minecraft:random_spread":{spread_type:(0,w.Opt)(t({enum:["linear","triangular"]})),spacing:(0,w.NumberNode)({integer:!0,min:0,max:4096}),separation:(0,w.Mod)((0,w.NumberNode)({integer:!0,min:0,max:4096}),n=>({validate:(c,l,v,_)=>(c.pop().push("spacing").get()<=l&&v.add(c,"error.separation_smaller_spacing"),n.validate(c,l,v,_))}))}}},{context:"structure_placement"}),{default:()=>({type:"minecraft:random_spread",spacing:10,separation:5,salt:Math.floor(Math.random()*2147483647)})}))}$e.initStructureSetSchemas=$t;var Be={};Object.defineProperty(Be,"__esModule",{value:!0});Be.initSurfaceRuleSchemas=void 0;const M=k;function Bt(r,e){const t=M.StringNode.bind(void 0,e),o=M.Reference.bind(void 0,r);r.register("material_rule",(0,M.Mod)((0,M.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/material_rule"}}),[M.Switch]:[{push:"type"}],[M.Case]:{"minecraft:block":{result_state:o("block_state")},"minecraft:condition":{if_true:o("material_condition"),then_run:o("material_rule")},"minecraft:sequence":{sequence:(0,M.ListNode)(o("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),r.register("material_condition",(0,M.Mod)((0,M.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/material_condition"}}),[M.Switch]:[{push:"type"}],[M.Case]:{"minecraft:biome":{biome_is:(0,M.ListNode)(t({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:t({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:(0,M.NumberNode)(),max_threshold:(0,M.NumberNode)()},"minecraft:not":{invert:o("material_condition")},"minecraft:stone_depth":{offset:(0,M.NumberNode)({integer:!0}),surface_type:t({enum:"cave_surface"}),add_surface_depth:(0,M.BooleanNode)(),secondary_depth_range:(0,M.NumberNode)({integer:!0})},"minecraft:vertical_gradient":{random_name:t(),true_at_and_below:o("vertical_anchor"),false_at_and_above:o("vertical_anchor")},"minecraft:water":{offset:(0,M.NumberNode)({integer:!0}),surface_depth_multiplier:(0,M.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,M.BooleanNode)()},"minecraft:y_above":{anchor:o("vertical_anchor"),surface_depth_multiplier:(0,M.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,M.BooleanNode)()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))}Be.initSurfaceRuleSchemas=Bt;var De={};Object.defineProperty(De,"__esModule",{value:!0});De.initTemplatePoolSchemas=void 0;const q=k,Ue=J;function Dt(r,e){const t=q.Reference.bind(void 0,r),o=q.StringNode.bind(void 0,e);r.register("template_pool",(0,q.Mod)((0,q.ObjectNode)({name:o(),fallback:o(),elements:(0,q.ListNode)(t("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"}}]})})),r.register("template_weighted_element",(0,q.Mod)((0,q.ObjectNode)({weight:(0,q.NumberNode)({integer:!0,min:1}),element:t("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),r.register("template_element",(0,q.Mod)((0,q.ObjectNode)({element_type:o({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:o({enum:["rigid","terrain_matching"]}),[q.Switch]:[{push:"element_type"}],[q.Case]:{"minecraft:feature_pool_element":{feature:o({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},"minecraft:legacy_single_pool_element":{location:o({validator:"resource",params:{pool:"$structure"}}),processors:Ue.Processors},"minecraft:list_pool_element":{elements:(0,q.ListNode)(t("template_element"))},"minecraft:single_pool_element":{location:o({validator:"resource",params:{pool:"$structure"}}),processors:Ue.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))}De.initTemplatePoolSchemas=Dt;var Fe={};Object.defineProperty(Fe,"__esModule",{value:!0});Fe.initWorldPresetSchemas=void 0;const oe=k;function Ft(r,e){const t=oe.StringNode.bind(void 0,e),o=oe.Reference.bind(void 0,r);r.register("world_preset",(0,oe.Mod)((0,oe.ObjectNode)({dimensions:(0,oe.MapNode)(t({validator:"resource",params:{pool:"$dimension",isDefinition:!0}}),o("dimension"))},{context:"world_preset"}),{default:()=>({dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",biome_source:{type:"minecraft:multi_noise",preset:"minecraft:overworld"},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",biome_source:{type:"minecraft:multi_noise",preset:"minecraft:nether"},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",biome_source:{type:"minecraft:the_end"},settings:"minecraft:end"}}}})})),r.register("flat_level_generator_preset",(0,oe.Mod)((0,oe.ObjectNode)({display:t({validator:"resource",params:{pool:"item"}}),settings:o("flat_generator_settings")}),{default:()=>({display:"minecraft:grass_block",settings:{lakes:!1,features:!1,biome:"minecraft:plains",structure_overrides:[],layers:[{height:3,block:"minecraft:dirt"},{height:1,block:"minecraft:grass_block"}]}})}))}Fe.initWorldPresetSchemas=Ft;Object.defineProperty(Se,"__esModule",{value:!0});Se.initWorldgenSchemas=void 0;const zt=Te,Tt=je,Rt=Ce,qt=Re,It=Me,At=Pe,Et=J,Wt=Le,Ut=$e,Vt=Be,Gt=De,Ht=Fe;function Kt(r,e){(0,Et.initProcessorListSchemas)(r,e),(0,qt.initDensityFunctionSchemas)(r,e),(0,zt.initBiomeSchemas)(r,e),(0,Tt.initCarverSchemas)(r,e),(0,Rt.initDecoratorSchemas)(r,e),(0,It.initFeatureSchemas)(r,e),(0,At.initNoiseSettingsSchemas)(r,e),(0,Wt.initStructureSchemas)(r,e),(0,Ut.initStructureSetSchemas)(r,e),(0,Vt.initSurfaceRuleSchemas)(r,e),(0,Gt.initTemplatePoolSchemas)(r,e),(0,Ht.initWorldPresetSchemas)(r,e)}Se.initWorldgenSchemas=Kt;var ze={};Object.defineProperty(ze,"__esModule",{value:!0});ze.initWorldSettingsSchemas=void 0;const Z=k;function Xt(r,e){const t=Z.Reference.bind(void 0,r),o=Z.StringNode.bind(void 0,e);r.register("world_settings",(0,Z.Mod)((0,Z.ObjectNode)({generate_features:(0,Z.BooleanNode)(),bonus_chest:(0,Z.BooleanNode)(),seed:(0,Z.NumberNode)({integer:!0}),dimensions:(0,Z.MapNode)(o({validator:"resource",params:{pool:"$dimension"}}),t("dimension"))},{context:"world_settings"}),{default:()=>{const d=Math.floor(Math.random()*4294967296)-2147483648;return{generate_features:!0,bonus_chest:!1,seed:d,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:overworld"},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:nether"},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:the_end",seed:d},settings:"minecraft:end"}}}}}}))}ze.initWorldSettingsSchemas=Xt;Object.defineProperty(le,"__esModule",{value:!0});le.initSchemas=void 0;const Yt=me,Zt=_e,Jt=fe,Qt=T,er=ge,tr=be,rr=Ne,or=he,ir=ye,nr=ve,ar=Oe,cr=ke,dr=we,sr=xe,lr=Se,mr=ze;function _r(r,e){(0,Qt.initCommonSchemas)(r,e),(0,Jt.initChatTypeSchemas)(r,e),(0,Yt.initAdvancementSchemas)(r,e),(0,Zt.initAssetsSchemas)(r,e),(0,er.initConditionSchemas)(r,e),(0,rr.initDimensionTypeSchemas)(r,e),(0,tr.initDimensionSchemas)(r,e),(0,or.initItemModifierSchemas)(r,e),(0,ir.initLootTableSchemas)(r,e),(0,nr.initPackMcmetaSchemas)(r,e),(0,ar.initPredicatesSchemas)(r,e),(0,cr.initRecipeSchemas)(r,e),(0,dr.initTagsSchemas)(r,e),(0,sr.initTextComponentSchemas)(r,e),(0,lr.initWorldgenSchemas)(r,e),(0,mr.initWorldSettingsSchemas)(r,e)}le.initSchemas=_r;var ur=ie&&ie.__createBinding||(Object.create?function(r,e,t,o){o===void 0&&(o=t);var d=Object.getOwnPropertyDescriptor(e,t);(!d||("get"in d?!e.__esModule:d.writable||d.configurable))&&(d={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,o,d)}:function(r,e,t,o){o===void 0&&(o=t),r[o]=e[t]}),pr=ie&&ie.__setModuleDefault||(Object.create?function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}:function(r,e){r.default=e}),fr=ie&&ie.__importStar||function(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t in r)t!=="default"&&Object.prototype.hasOwnProperty.call(r,t)&&ur(e,r,t);return pr(e,r),e};Object.defineProperty(X,"__esModule",{value:!0});var Ve=X.getSchemas=Ke=X.getCollections=He=X.lootContext=void 0;const Ge=k,gr=se,br=le;var He=X.lootContext=fr(I);function Nr(){const r=new Ge.CollectionRegistry;return(0,gr.initCollections)(r),r}var Ke=X.getCollections=Nr;function hr(r){const e=new Ge.SchemaRegistry;return(0,br.initSchemas)(e,r),e}Ve=X.getSchemas=hr;var kr=et({__proto__:null,get getSchemas(){return Ve},get getCollections(){return Ke},get lootContext(){return He},default:X},[X]);export{kr as i}; -//# sourceMappingURL=index.10fe8e42.js.map +var Xe=Object.defineProperty,Ye=Object.defineProperties;var Ze=Object.getOwnPropertyDescriptors;var qe=Object.getOwnPropertySymbols;var Je=Object.prototype.hasOwnProperty,Qe=Object.prototype.propertyIsEnumerable;var Ie=(r,e,t)=>e in r?Xe(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,g=(r,e)=>{for(var t in e||(e={}))Je.call(e,t)&&Ie(r,t,e[t]);if(qe)for(var t of qe(e))Qe.call(e,t)&&Ie(r,t,e[t]);return r},W=(r,e)=>Ye(r,Ze(e));import{l as k,c as ie}from"./index.18869b2a.js";function et(r,e){return e.forEach(function(t){t&&typeof t!="string"&&!Array.isArray(t)&&Object.keys(t).forEach(function(o){if(o!=="default"&&!(o in r)){var d=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(r,o,d.get?d:{enumerable:!0,get:function(){return t[o]}})}})}),Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var X={},se={};Object.defineProperty(se,"__esModule",{value:!0});se.initCollections=void 0;function tt(r){r.register("advancement_trigger",["minecraft:allay_drop_item_on_block","minecraft:avoid_vibration","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:kill_mob_near_sculk_catalyst","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:thrown_item_picked_up_by_player","minecraft:used_ender_eye","minecraft:used_totem","minecraft:using_item","minecraft:villager_trade","minecraft:voluntary_exile"]),r.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"]),r.register("slot",["mainhand","offhand","head","chest","legs","feet"]),r.register("gamemode",["survival","creative","adventure","spectator"]),r.register("entity_source",["this","killer","direct_killer","killer_player"]),r.register("copy_source",["block_entity","this","killer","killer_player"]),r.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),r.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"]),r.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"]),r.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"]),r.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mountain","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),r.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),r.register("generation_step",["air","liquid"]),r.register("decoration_step",["raw_generation","lakes","local_modifications","underground_structures","surface_structures","strongholds","underground_ores","underground_decoration","fluid_springs","vegetal_decoration","top_layer_modification"]),r.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"]),r.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"]),r.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"]),r.register("cave_surface",["floor","ceiling"]),r.register("direction",["down","up","north","east","south","west"]),r.register("axis",["x","y","z"]),r.register("display_position",["firstperson_righthand","firstperson_lefthand","thirdperson_righthand","thirdperson_lefthand","gui","head","ground","fixed"]),r.register("gui_light",["front","side"]),r.register("item_model_predicates",["angle","blocking","broken","cast","charged","cooldown","custom_model_data","damage","damaged","firework","lefthanded","pull","pulling","throwing","time"]),r.register("mob_category",["monster","creature","ambient","axolotls","underground_water_creature","water_creature","water_ambient","misc"])}se.initCollections=tt;var le={},me={};Object.defineProperty(me,"__esModule",{value:!0});me.initAdvancementSchemas=void 0;const s=k;function rt(r,e){const t=s.Reference.bind(void 0,r),o=s.StringNode.bind(void 0,e),d=(0,s.ChoiceNode)([{type:"object",node:(0,s.Opt)(t("entity_predicate")),change:n=>{var c,l;return(l=(c=n[0])===null||c===void 0?void 0:c.predicate)!==null&&l!==void 0?l:{}}},{type:"list",node:(0,s.ListNode)(t("condition")),change:n=>[{condition:"minecraft:entity_properties",predicate:n}]}],{context:"conditions"});r.register("advancement",(0,s.Mod)((0,s.ObjectNode)({display:(0,s.Opt)((0,s.Mod)((0,s.ObjectNode)({icon:(0,s.ObjectNode)({item:o({validator:"resource",params:{pool:"item"}}),nbt:(0,s.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:t("text_component"),description:t("text_component"),background:(0,s.Opt)(o()),frame:(0,s.Opt)(o({enum:["task","challenge","goal"]})),show_toast:(0,s.Opt)((0,s.BooleanNode)()),announce_to_chat:(0,s.Opt)((0,s.BooleanNode)()),hidden:(0,s.Opt)((0,s.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,s.Opt)(o({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,s.MapNode)(o(),t("advancement_criteria")),requirements:(0,s.Opt)((0,s.ListNode)((0,s.ListNode)(o()))),rewards:(0,s.Opt)((0,s.ObjectNode)({function:(0,s.Opt)(o({validator:"resource",params:{pool:"$function"}})),loot:(0,s.Opt)((0,s.ListNode)(o({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,s.Opt)((0,s.ListNode)(o({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,s.Opt)((0,s.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),r.register("advancement_criteria",(0,s.ObjectNode)({trigger:o({validator:"resource",params:{pool:e.get("advancement_trigger")}}),conditions:(0,s.Opt)((0,s.ObjectNode)({player:(0,s.Mod)(d,{enabled:n=>n.pop().push("trigger").get()!=="minecraft:impossible"}),[s.Switch]:["pop",{push:"trigger"}],[s.Case]:{"minecraft:allay_drop_item_on_block":{item:(0,s.Opt)(t("item_predicate")),location:(0,s.Opt)(t("location_predicate"))},"minecraft:bee_nest_destroyed":{block:(0,s.Opt)(o({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,s.Opt)((0,s.NumberNode)({integer:!0})),item:(0,s.Opt)(t("item_predicate"))},"minecraft:bred_animals":{parent:d,partner:d,child:d},"minecraft:brewed_potion":{potion:(0,s.Opt)(o({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,s.Opt)(o({validator:"resource",params:{pool:"$dimension"}})),to:(0,s.Opt)(o({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:construct_beacon":{level:t("int_bounds")},"minecraft:consume_item":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:cured_zombie_villager":{villager:d,zombie:d},"minecraft:effects_changed":{effects:(0,s.Opt)((0,s.MapNode)(o({validator:"resource",params:{pool:"mob_effect"}}),(0,s.ObjectNode)({amplifier:t("int_bounds"),duration:t("int_bounds")}))),source:(0,s.Opt)(d)},"minecraft:enter_block":{block:(0,s.Opt)(o({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:t("int_bounds"),item:(0,s.Opt)(t("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,s.Opt)(t("damage_predicate"))},"minecraft:entity_killed_player":{entity:d,killing_blow:(0,s.Opt)(t("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:(0,s.Opt)(t("location_predicate")),distance:(0,s.Opt)(t("distance_predicate"))},"minecraft:filled_bucket":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:d,item:(0,s.Opt)(t("item_predicate"))},"minecraft:inventory_changed":{slots:(0,s.Opt)((0,s.ObjectNode)({empty:t("int_bounds"),occupied:t("int_bounds"),full:t("int_bounds")})),items:(0,s.Opt)((0,s.ListNode)(t("item_predicate")))},"minecraft:item_durability_changed":{delta:t("int_bounds"),durability:t("int_bounds"),item:(0,s.Opt)(t("item_predicate"))},"minecraft:item_used_on_block":{item:(0,s.Opt)(t("item_predicate")),location:(0,s.Opt)(t("location_predicate"))},"minecraft:kill_mob_near_sculk_catalyst":{entity:d,killing_blow:(0,s.Opt)(t("damage_source_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:t("int_bounds"),victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:levitation":{distance:(0,s.Opt)(t("distance_predicate")),duration:t("int_bounds")},"minecraft:lightning_strike":{lightning:d,bystander:d},"minecraft:nether_travel":{start_position:(0,s.Opt)(t("location_predicate")),distance:(0,s.Opt)(t("distance_predicate"))},"minecraft:placed_block":{block:(0,s.Opt)(o({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,s.Opt)(t("item_predicate")),location:(0,s.Opt)(t("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:o({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:(0,s.Opt)(t("damage_predicate")),entity:d},"minecraft:player_interacted_with_entity":{item:(0,s.Opt)(t("item_predicate")),entity:d},"minecraft:player_killed_entity":{entity:d,killing_blow:(0,s.Opt)(t("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:o({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:(0,s.Opt)(t("location_predicate")),distance:(0,s.Opt)(t("distance_predicate"))},"minecraft:slide_down_block":{block:(0,s.Opt)(o({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:summoned_entity":{entity:d},"minecraft:tame_animal":{entity:d},"minecraft:target_hit":{projectile:d,shooter:d,signal_strength:t("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:d,item:(0,s.Opt)(t("item_predicate"))},"minecraft:thrown_item_picked_up_by_player":{entity:d,item:(0,s.Opt)(t("item_predicate"))},"minecraft:used_ender_eye":{distance:(0,s.Opt)(t("float_bounds"))},"minecraft:used_totem":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:using_item":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:villager_trade":{villager:d,item:(0,s.Opt)(t("item_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))}me.initAdvancementSchemas=rt;var _e={},ue={};Object.defineProperty(ue,"__esModule",{value:!0});ue.initModelSchemas=void 0;const N=k;function ot(r,e){N.Reference.bind(void 0,r);const t=N.StringNode.bind(void 0,e),o=(n,c,l)=>(0,N.ListNode)((0,N.NumberNode)({min:c,max:l}),{minLength:n,maxLength:n}),d=(0,N.ChoiceNode)([{type:"alias",match:n=>typeof n=="string"&&n.startsWith("#"),node:t(),change:n=>typeof n=="string"?`#${n}`:"#0"},{type:"reference",match:n=>typeof n=="string",node:t({validator:"resource",params:{pool:"$texture"}}),change:n=>typeof n=="string"?n.replace(/^#/,""):""}],{choiceContext:"texture"});r.register("model",(0,N.Mod)((0,N.ObjectNode)({parent:(0,N.Opt)(t({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,N.Opt)((0,N.BooleanNode)()),gui_light:(0,N.Opt)(t({enum:"gui_light"})),textures:(0,N.Opt)((0,N.MapNode)(t(),d)),elements:(0,N.Opt)((0,N.ListNode)((0,N.ObjectNode)({from:o(3,-16,32),to:o(3,-16,32),rotation:(0,N.Opt)((0,N.ObjectNode)({origin:o(3),axis:t({enum:"axis"}),angle:(0,N.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,N.Opt)((0,N.BooleanNode)())})),shade:(0,N.Opt)((0,N.BooleanNode)()),faces:(0,N.MapNode)(t({enum:"direction"}),(0,N.ObjectNode)({texture:d,uv:(0,N.Opt)(o(4)),cullface:(0,N.Opt)(t({enum:"direction"})),rotation:(0,N.Opt)((0,N.NumberNode)({integer:!0})),tintindex:(0,N.Opt)((0,N.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,N.Opt)((0,N.MapNode)(t({enum:"display_position"}),(0,N.ObjectNode)({rotation:o(3),translation:o(3,-80,80),scale:o(3,-4,4)},{context:"item_transform"}))),overrides:(0,N.Opt)((0,N.ListNode)((0,N.ObjectNode)({predicate:(0,N.MapNode)(t({enum:"item_model_predicates"}),(0,N.NumberNode)()),model:t({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))}ue.initModelSchemas=ot;var pe={};Object.defineProperty(pe,"__esModule",{value:!0});pe.initBlockDefinitionSchemas=void 0;const S=k;function it(r,e){const t=S.Reference.bind(void 0,r),o=S.StringNode.bind(void 0,e);r.register("block_definition",(0,S.Mod)((0,S.ChoiceNode)([{type:"variants",match:n=>n.variants!==void 0,node:(0,S.ObjectNode)({variants:(0,S.MapNode)(o(),t("model_variant"))}),change:n=>({variants:{"":{}}})},{type:"multipart",match:n=>n.multipart!==void 0,node:(0,S.ObjectNode)({multipart:(0,S.ListNode)((0,S.ObjectNode)({when:(0,S.Opt)(t("multipart_condition")),apply:t("model_variant")}))}),change:n=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const d={model:o({validator:"resource",params:{pool:"$model"}}),x:(0,S.Opt)((0,S.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,S.Opt)((0,S.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,S.Opt)((0,S.BooleanNode)())};r.register("model_variant",(0,S.ChoiceNode)([{type:"object",node:(0,S.ObjectNode)(d),change:n=>Array.isArray(n)&&n.length>0?n[0]:{}},{type:"list",node:(0,S.ListNode)((0,S.ObjectNode)(W(g({},d),{weight:(0,S.Opt)((0,S.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:n=>[g({weight:1},n)]}],{context:"model_variant"})),r.register("multipart_condition",(0,S.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,S.MapNode)(o(),o()),change:n=>typeof n=="object"&&Array.isArray(n==null?void 0:n.OR)&&n.OR.length>0?n.OR[0]:{}},{type:"or",match:n=>typeof n=="object"&&(n==null?void 0:n.OR)!==void 0,node:(0,S.ObjectNode)({OR:(0,S.ListNode)(t("multipart_condition"))}),change:n=>({OR:[n!=null?n:{}]})}],{context:"multipart_condition"}))}pe.initBlockDefinitionSchemas=it;Object.defineProperty(_e,"__esModule",{value:!0});_e.initAssetsSchemas=void 0;const nt=ue,at=pe;function ct(r,e){(0,at.initBlockDefinitionSchemas)(r,e),(0,nt.initModelSchemas)(r,e)}_e.initAssetsSchemas=ct;var fe={};Object.defineProperty(fe,"__esModule",{value:!0});fe.initChatTypeSchemas=void 0;const F=k;function dt(r,e){const t=F.Reference.bind(void 0,r),o=F.StringNode.bind(void 0,e);r.register("chat_type",(0,F.Mod)((0,F.ObjectNode)({chat:(0,F.Opt)((0,F.ObjectNode)({decoration:(0,F.Opt)(t("text_decoration"))})),overlay:(0,F.Opt)((0,F.ObjectNode)({decoration:(0,F.Opt)(t("text_decoration"))})),narration:(0,F.Opt)((0,F.ObjectNode)({decoration:(0,F.Opt)(t("text_decoration")),priority:o({enum:["chat","system"]})}))},{context:"chat_type"}),{default:()=>({chat:{decoration:{parameters:["sender","content"],translation_key:"chat.type.text",style:{}}}})})),r.register("text_decoration",(0,F.Mod)((0,F.ObjectNode)({translation_key:o(),parameters:(0,F.ListNode)(o({enum:["sender","team_name","content"]})),style:t("text_style")},{context:"text_decoration"}),{default:()=>({translation_key:"chat.type.text",parameters:["sender","content"],style:{}})}))}fe.initChatTypeSchemas=dt;var T={};(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.initCommonSchemas=r.Tag=r.InclusiveRange=r.IntProvider=r.FloatProvider=r.NoiseSettingsPresets=r.DefaultNoiseSettings=r.DimensionTypePresets=r.DefaultDimensionType=r.FunctionCases=r.ConditionCases=void 0;const e=k;r.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},r.DefaultNoiseSettings={sea_level:63,ore_veins_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,legacy_random_source:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}};function t(o,d){const n=e.StringNode.bind(void 0,d),c=e.Reference.bind(void 0,o);o.register("block_state",(0,e.Mod)((0,e.ObjectNode)({Name:n({validator:"resource",params:{pool:"block"}}),Properties:(0,e.Opt)((0,e.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),o.register("fluid_state",(0,e.Mod)((0,e.ObjectNode)({Name:n({validator:"resource",params:{pool:"fluid"}}),Properties:(0,e.Opt)((0,e.MapNode)(n(),n()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),o.register("block_pos",(0,e.Mod)((0,e.ListNode)((0,e.NumberNode)({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const l=_=>(0,e.Opt)((0,e.ChoiceNode)([{type:"number",node:(0,e.NumberNode)({integer:_}),change:b=>{var j,h;return b===void 0?0:(h=(j=b.min)!==null&&j!==void 0?j:b.max)!==null&&h!==void 0?h:0}},{type:"object",node:(0,e.ObjectNode)({min:(0,e.Opt)((0,e.NumberNode)({integer:_})),max:(0,e.Opt)((0,e.NumberNode)({integer:_}))},{context:"range"}),change:b=>({min:b!=null?b:0,max:b!=null?b:0})}]));o.register("int_bounds",l(!0)),o.register("float_bounds",l()),o.register("int_range",(0,e.ChoiceNode)([{type:"object",node:(0,e.ObjectNode)({min:(0,e.Opt)(c("number_provider")),max:(0,e.Opt)(c("number_provider"))})},{type:"number",node:(0,e.NumberNode)({integer:!0})}],{context:"range"}));const v=(_,b,j,h,B,D,U)=>{let ae={};B&&Object.keys(U[B]).forEach(A=>{ae[A]=(0,e.Mod)(U[B][A],{enabled:E=>E.push("type").get()===void 0})});const Q=(0,e.ObjectNode)(g({type:(0,e.Mod)((0,e.Opt)(n({validator:"resource",params:{pool:_}})),{hidden:()=>!0}),[e.Switch]:[{push:"type"}],[e.Case]:U},ae),{context:D,disableSwitchContext:!0}),ee=[{type:b,node:U[h][j]}];return B&&ee.push({type:"object",priority:-1,node:Q}),Object.keys(U).forEach(A=>{ee.push({type:A,match:E=>{var te;if("minecraft:"+((te=E==null?void 0:E.type)===null||te===void 0?void 0:te.replace(/^minecraft:/,""))===A)return!0;const V=E?Object.keys(E):[];return typeof E=="object"&&((V==null?void 0:V.length)===0||(V==null?void 0:V.length)===1&&(V==null?void 0:V[0])==="type")},node:Q,change:E=>({type:A})})}),(0,e.ChoiceNode)(ee,{context:D,choiceContext:`${D}.type`})};o.register("number_provider",v("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:(0,e.NumberNode)()},"minecraft:uniform":{min:c("number_provider"),max:c("number_provider")},"minecraft:binomial":{n:c("number_provider"),p:c("number_provider")},"minecraft:score":{target:c("scoreboard_name_provider"),score:n({validator:"objective"}),scale:(0,e.Opt)((0,e.NumberNode)())}})),o.register("scoreboard_name_provider",v("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:n({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:(0,e.Mod)(n({enum:"entity_source"}),{default:()=>"this"})}})),o.register("nbt_provider",v("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:n({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:(0,e.Mod)(n({enum:"copy_source"}),{default:()=>"this"})}})),r.FloatProvider=_=>v("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:(0,e.NumberNode)(_)},"minecraft:uniform":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(_),max_exclusive:(0,e.NumberNode)(_)})},"minecraft:clamped_normal":{value:(0,e.ObjectNode)({min:(0,e.NumberNode)(),max:(0,e.NumberNode)(),mean:(0,e.NumberNode)(),deviation:(0,e.NumberNode)()})},"minecraft:trapezoid":{value:(0,e.ObjectNode)({min:(0,e.NumberNode)(),max:(0,e.NumberNode)(),plateau:(0,e.NumberNode)()})}}),o.register("float_provider",(0,r.FloatProvider)()),r.IntProvider=_=>v("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:(0,e.NumberNode)(g({integer:!0},_))},"minecraft:uniform":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},_)),max_inclusive:(0,e.NumberNode)(g({integer:!0},_))})},"minecraft:biased_to_bottom":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},_)),max_inclusive:(0,e.NumberNode)(g({integer:!0},_))})},"minecraft:clamped":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},_)),max_inclusive:(0,e.NumberNode)(g({integer:!0},_)),source:c("int_provider")})},"minecraft:clamped_normal":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},_)),max_inclusive:(0,e.NumberNode)(g({integer:!0},_)),mean:(0,e.NumberNode)(),deviation:(0,e.NumberNode)()})},"minecraft:weighted_list":{distribution:(0,e.ListNode)((0,e.ObjectNode)({weight:(0,e.NumberNode)({integer:!0}),data:c("int_provider")}))}}),o.register("int_provider",(0,r.IntProvider)()),o.register("vertical_anchor",(0,e.ChoiceNode)(["absolute","above_bottom","below_top"].map(_=>({type:_,match:b=>(b==null?void 0:b[_])!==void 0,change:b=>{var j,h,B;return{[_]:(B=(h=(j=b.absolute)!==null&&j!==void 0?j:b.above_bottom)!==null&&h!==void 0?h:b.below_top)!==null&&B!==void 0?B:0}},node:(0,e.ObjectNode)({[_]:(0,e.NumberNode)({integer:!0,min:-2048,max:2047})})})),{context:"vertical_anchor"})),o.register("height_provider",v("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:c("vertical_anchor")},"minecraft:uniform":{min_inclusive:c("vertical_anchor"),max_inclusive:c("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:c("vertical_anchor"),max_inclusive:c("vertical_anchor"),inner:(0,e.Opt)((0,e.NumberNode)({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:c("vertical_anchor"),max_inclusive:c("vertical_anchor"),inner:(0,e.Opt)((0,e.NumberNode)({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:c("vertical_anchor"),max_inclusive:c("vertical_anchor"),plateau:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:weighted_list":{distribution:(0,e.ListNode)((0,e.ObjectNode)({weight:(0,e.NumberNode)({integer:!0}),data:c("int_provider")}))}})),r.InclusiveRange=_=>(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(_),max_inclusive:(0,e.NumberNode)(_)},{context:"range"}),o.register("noise_parameters",(0,e.Mod)((0,e.ObjectNode)({firstOctave:(0,e.NumberNode)({integer:!0}),amplitudes:(0,e.ListNode)((0,e.NumberNode)())},{context:"noise_parameters"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})})),r.Tag=_=>(0,e.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:_.resource,allowTag:!0}}),change:b=>{if(Array.isArray(b)&&typeof b[0]=="string"&&!b[0].startsWith("#"))return b[0]}},{type:"list",node:(0,e.ListNode)(_.inlineSchema?(0,e.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:_.resource}})},{type:"object",node:c(_.inlineSchema)}],{choiceContext:"tag.list"}):n({validator:"resource",params:{pool:_.resource}})),change:b=>typeof b=="string"&&!b.startsWith("#")?[b]:[]}],{choiceContext:"tag"}),r.ConditionCases=(_=n({enum:"entity_source"}))=>({"minecraft:alternative":{terms:(0,e.ListNode)(c("condition"))},"minecraft:block_state_property":{block:n({validator:"resource",params:{pool:"block"}}),properties:(0,e.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:c("damage_source_predicate")},"minecraft:entity_properties":{entity:_,predicate:c("entity_predicate")},"minecraft:entity_scores":{entity:_,scores:(0,e.MapNode)(n({validator:"objective"}),c("int_range"))},"minecraft:inverted":{term:c("condition")},"minecraft:killed_by_player":{inverse:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:location_check":{offsetX:(0,e.Opt)((0,e.NumberNode)({integer:!0})),offsetY:(0,e.Opt)((0,e.NumberNode)({integer:!0})),offsetZ:(0,e.Opt)((0,e.NumberNode)({integer:!0})),predicate:c("location_predicate")},"minecraft:match_tool":{predicate:c("item_predicate")},"minecraft:random_chance":{chance:(0,e.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,e.NumberNode)({min:0,max:1}),looting_multiplier:(0,e.NumberNode)()},"minecraft:reference":{name:n({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:n({validator:"resource",params:{pool:"enchantment"}}),chances:(0,e.ListNode)((0,e.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:c("int_range"),period:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:value_check":{value:c("number_provider"),range:c("int_range")},"minecraft:weather_check":{raining:(0,e.Opt)((0,e.BooleanNode)()),thundering:(0,e.Opt)((0,e.BooleanNode)())}}),r.FunctionCases=(_,b=n({enum:"copy_source"}),j=n({enum:"entity_source"}))=>{const h={"minecraft:apply_bonus":{enchantment:n({validator:"resource",params:{pool:"enchantment"}}),formula:n({validator:"resource",params:{pool:d.get("loot_table_apply_bonus_formula")}}),parameters:(0,e.Mod)((0,e.ObjectNode)({bonusMultiplier:(0,e.Mod)((0,e.NumberNode)(),{enabled:D=>D.pop().push("formula").get()==="minecraft:uniform_bonus_count"}),extra:(0,e.Mod)((0,e.NumberNode)(),{enabled:D=>D.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"}),probability:(0,e.Mod)((0,e.NumberNode)(),{enabled:D=>D.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"})}),{enabled:D=>D.push("formula").get()!=="minecraft:ore_drops"})},"minecraft:copy_name":{source:b},"minecraft:copy_nbt":{source:c("nbt_provider"),ops:(0,e.ListNode)((0,e.ObjectNode)({source:n({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:n({validator:"nbt_path",params:{category:"minecraft:item"}}),op:n({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:n({validator:"resource",params:{pool:"block"}}),properties:(0,e.ListNode)(n({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,e.Opt)((0,e.ListNode)(n({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:c("number_provider"),treasure:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:exploration_map":{destination:(0,e.Opt)((0,r.Tag)({resource:"$worldgen/structure"})),decoration:(0,e.Opt)(n({enum:"map_decoration"})),zoom:(0,e.Opt)((0,e.NumberNode)({integer:!0})),search_radius:(0,e.Opt)((0,e.NumberNode)({integer:!0})),skip_existing_chunks:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:fill_player_head":{entity:j},"minecraft:limit_count":{limit:c("int_range")},"minecraft:looting_enchant":{count:c("number_provider"),limit:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,e.ListNode)(c("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:(0,e.ListNode)((0,e.ObjectNode)({pattern:n({enum:"banner_pattern"}),color:n({enum:"dye_color"})})),append:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_contents":{type:n({validator:"resource",params:{pool:"block_entity_type"}}),entries:(0,e.ListNode)(c("loot_entry"))},"minecraft:set_count":{count:c("number_provider"),add:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_damage":{damage:c("number_provider"),add:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_enchantments":{enchantments:(0,e.MapNode)(n({validator:"resource",params:{pool:"enchantment"}}),c("number_provider")),add:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_instrument":{options:n({validator:"resource",params:{pool:"instrument",requireTag:!0}})},"minecraft:set_loot_table":{type:n({validator:"resource",params:{pool:"block_entity_type"}}),name:n({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,e.Opt)(j),lore:(0,e.ListNode)(c("text_component")),replace:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_name":{entity:(0,e.Opt)(j),name:(0,e.Opt)(c("text_component"))},"minecraft:set_nbt":{tag:n({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_potion":{id:n({validator:"resource",params:{pool:"potion"}})},"minecraft:set_stew_effect":{effects:(0,e.Opt)((0,e.ListNode)((0,e.ObjectNode)({type:n({validator:"resource",params:{pool:"mob_effect"}}),duration:c("number_provider")})))}},B={};return d.get("loot_function_type").forEach(D=>{B[D]=g(g({},h[D]),_)}),B},r.DimensionTypePresets=_=>(0,e.ObjectOrPreset)(n({validator:"resource",params:{pool:"$dimension_type"}}),_,{"minecraft:overworld":r.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}}),r.NoiseSettingsPresets=_=>(0,e.ObjectOrPreset)(n({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),_,{"minecraft:overworld":r.DefaultNoiseSettings,"minecraft:nether":{sea_level:32,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:netherrack"},default_fluid:{Properties:{level:"0"},Name:"minecraft:lava"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:end":{sea_level:0,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:amplified":{sea_level:63,ore_veins_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,legacy_random_source:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:caves":{sea_level:32,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:floating_islands":{sea_level:0,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}}})}r.initCommonSchemas=t})(T);var ge={};Object.defineProperty(ge,"__esModule",{value:!0});ge.initConditionSchemas=void 0;const re=k,st=T;function lt(r,e){const t=re.Reference.bind(void 0,r),o=re.StringNode.bind(void 0,e);r.register("predicate",(0,re.ObjectOrList)(t("condition"),{choiceContext:"condition"})),r.register("condition",(0,re.Mod)((0,re.ObjectNode)({condition:o({validator:"resource",params:{pool:"loot_condition_type"}}),[re.Switch]:[{push:"condition"}],[re.Case]:(0,st.ConditionCases)()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))}ge.initConditionSchemas=lt;var be={};Object.defineProperty(be,"__esModule",{value:!0});be.initDimensionSchemas=void 0;const O=k,ce=T;function mt(r,e){const t=O.Reference.bind(void 0,r),o=O.StringNode.bind(void 0,e);r.register("dimension",(0,O.Mod)((0,O.ObjectNode)({type:(0,ce.DimensionTypePresets)(t("dimension_type")),generator:(0,O.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[O.Switch]:[{push:"type"}],[O.Case]:{"minecraft:noise":{settings:(0,ce.NoiseSettingsPresets)(t("noise_settings")),biome_source:(0,O.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/biome_source"}}),[O.Switch]:[{push:"type"}],[O.Case]:{"minecraft:fixed":{biome:o({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:(0,O.Opt)(o({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:(0,O.Mod)((0,O.ListNode)(t("generator_biome")),{enabled:n=>n.push("preset").get()===void 0,default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:(0,O.Opt)((0,O.NumberNode)({integer:!0,min:0,max:62})),biomes:(0,ce.Tag)({resource:"$worldgen/biome"})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:t("flat_generator_settings")}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>({type:"minecraft:overworld",generator:{type:"minecraft:noise",biome_source:{type:"minecraft:fixed",biome:"minecraft:plains"},settings:"minecraft:overworld"}})})),r.register("flat_generator_settings",(0,O.ObjectNode)({biome:(0,O.Opt)(o({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:(0,O.Opt)((0,O.BooleanNode)()),features:(0,O.Opt)((0,O.BooleanNode)()),layers:(0,O.ListNode)(t("generator_layer")),structure_overrides:(0,ce.Tag)({resource:"$worldgen/structure_set",inlineSchema:"structure_set"})}));const d=(0,O.ChoiceNode)([{type:"number",node:(0,O.NumberNode)({min:-2,max:2}),change:n=>{var c;return(c=n[0])!==null&&c!==void 0?c:0}},{type:"list",node:(0,O.ListNode)((0,O.NumberNode)({min:-2,max:2}),{minLength:2,maxLength:2}),change:n=>[n!=null?n:0,n!=null?n:0]}]);r.register("parameter_point",(0,O.ObjectNode)({temperature:d,humidity:d,continentalness:d,erosion:d,weirdness:d,depth:d,offset:(0,O.NumberNode)({min:0,max:1})})),r.register("generator_biome",(0,O.Mod)((0,O.ObjectNode)({biome:o({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:t("parameter_point")},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{temperature:0,humidity:0,continentalness:0,erosion:0,weirdness:0,depth:0,offset:0}})}))}be.initDimensionSchemas=mt;var Ne={};Object.defineProperty(Ne,"__esModule",{value:!0});Ne.initDimensionTypeSchemas=void 0;const $=k,_t=T;function ut(r,e){const t=$.StringNode.bind(void 0,e);r.register("dimension_type",(0,$.Mod)((0,$.ObjectNode)({ultrawarm:(0,$.BooleanNode)(),natural:(0,$.BooleanNode)(),piglin_safe:(0,$.BooleanNode)(),respawn_anchor_works:(0,$.BooleanNode)(),bed_works:(0,$.BooleanNode)(),has_raids:(0,$.BooleanNode)(),has_skylight:(0,$.BooleanNode)(),has_ceiling:(0,$.BooleanNode)(),coordinate_scale:(0,$.NumberNode)({min:1e-5,max:3e7}),ambient_light:(0,$.NumberNode)(),fixed_time:(0,$.Opt)((0,$.NumberNode)({integer:!0})),logical_height:(0,$.NumberNode)({integer:!0,min:0,max:4064}),effects:(0,$.Opt)(t({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:t({validator:"resource",params:{pool:"block",requireTag:!0}}),min_y:(0,$.NumberNode)({integer:!0,min:-2032,max:2031}),height:(0,$.NumberNode)({integer:!0,min:16,max:4064})},{context:"dimension_type"}),o=>({default:()=>_t.DefaultDimensionType,validate:(d,n,c,l)=>(n=o.validate(d,n,c,l),(n==null?void 0:n.min_y)+(n==null?void 0:n.height)>2032&&c.add(d.push("height"),"error.min_y_plus_height",2032),(n==null?void 0:n.logical_height)>(n==null?void 0:n.height)&&c.add(d.push("logical_height"),"error.logical_height"),(n==null?void 0:n.height)%16!==0&&c.add(d.push("height"),"error.height_multiple",16),(n==null?void 0:n.min_y)%16!==0&&c.add(d.push("min_y"),"error.min_y_multiple",16),n)})))}Ne.initDimensionTypeSchemas=ut;var he={};Object.defineProperty(he,"__esModule",{value:!0});he.initItemModifierSchemas=void 0;const G=k,pt=T;function ft(r,e){const t=G.Reference.bind(void 0,r),o=G.StringNode.bind(void 0,e);r.register("item_modifier",(0,G.ObjectOrList)(t("function"),{choiceContext:"function"}));const d={conditions:(0,G.Opt)((0,G.ListNode)(t("condition")))};r.register("function",(0,G.Mod)((0,G.ObjectNode)({function:o({validator:"resource",params:{pool:"loot_function_type"}}),[G.Switch]:[{push:"function"}],[G.Case]:(0,pt.FunctionCases)(d)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))}he.initItemModifierSchemas=ft;var ye={},I={};Object.defineProperty(I,"__esModule",{value:!0});I.LootFunctions=I.LootConditions=I.LootCopySources=I.LootEntitySources=I.LootTableTypes=void 0;I.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]}]]);I.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]);I.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]);I.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",[]]]);I.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(ye,"__esModule",{value:!0});ye.initLootTableSchemas=void 0;const p=k,ne=I,Ae=T;function gt(r,e){const t=p.Reference.bind(void 0,r),o=p.StringNode.bind(void 0,e),d={conditions:(0,p.Opt)((0,p.ListNode)(t("loot_condition")))},n=g({functions:(0,p.Opt)((0,p.ListNode)(t("loot_function")))},d);function c(h,B,D){const U=[],ae=Q=>e.get(B).filter(ee=>{var A;return((A=h.get(ee))!==null&&A!==void 0?A:[]).every(te=>Q.includes(te))});for(const[Q,{allows:ee,requires:A}]of ne.LootTableTypes){const E=[...ee,...A];U.push({match:te=>te.getModel().get(new p.Path(["type"]))===Q,node:D(ae(E))})}return U.push({match:Q=>!0,node:D(B)}),(0,p.SwitchNode)(U)}const l=c(ne.LootConditions,"loot_condition_type",h=>o({validator:"resource",params:{pool:h instanceof Array?h:"loot_condition_type"}})),v=c(ne.LootFunctions,"loot_function_type",h=>o({validator:"resource",params:{pool:h instanceof Array?h:"loot_function_type"}})),_=c(ne.LootEntitySources,"entity_source",h=>o({enum:h})),b=c(ne.LootCopySources,"copy_source",h=>o({enum:h}));r.register("loot_table",(0,p.Mod)((0,p.ObjectNode)({type:(0,p.Opt)(o({validator:"resource",params:{pool:e.get("loot_context_type")}})),pools:(0,p.Opt)((0,p.ListNode)((0,p.Mod)((0,p.ObjectNode)(g({rolls:t("number_provider"),bonus_rolls:(0,p.Opt)(t("number_provider")),entries:(0,p.ListNode)(t("loot_entry"))},n),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,p.Opt)((0,p.ListNode)(t("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const j={enabled:h=>{var B;return((B=h.pop().get())===null||B===void 0?void 0:B.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(h.push("type").get())}};r.register("loot_entry",(0,p.Mod)((0,p.ObjectNode)({type:o({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,p.Opt)((0,p.Mod)((0,p.NumberNode)({integer:!0,min:1}),j)),quality:(0,p.Opt)((0,p.Mod)((0,p.NumberNode)({integer:!0}),j)),[p.Switch]:[{push:"type"}],[p.Case]:{"minecraft:alternatives":g({children:(0,p.ListNode)(t("loot_entry"))},n),"minecraft:dynamic":g({name:o()},n),"minecraft:group":g({children:(0,p.ListNode)(t("loot_entry"))},n),"minecraft:item":g({name:o({validator:"resource",params:{pool:"item"}})},n),"minecraft:loot_table":g({name:o({validator:"resource",params:{pool:"$loot_table"}})},n),"minecraft:sequence":g({children:(0,p.ListNode)(t("loot_entry"))},n),"minecraft:tag":g({name:o({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,p.Opt)((0,p.BooleanNode)())},n)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),r.register("loot_function",(0,p.Mod)((0,p.ObjectNode)({function:v,[p.Switch]:[{push:"function"}],[p.Case]:(0,Ae.FunctionCases)(d,b,_)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),r.register("loot_condition",(0,p.Mod)((0,p.ObjectNode)({condition:l,[p.Switch]:[{push:"condition"}],[p.Case]:(0,Ae.ConditionCases)(_)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),r.register("attribute_modifier",(0,p.Mod)((0,p.ObjectNode)({attribute:o({validator:"resource",params:{pool:"attribute"}}),name:o(),amount:t("number_provider"),operation:o({enum:["addition","multiply_base","multiply_total"]}),slot:(0,p.StringOrList)(o({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))}ye.initLootTableSchemas=gt;var ve={};Object.defineProperty(ve,"__esModule",{value:!0});ve.initPackMcmetaSchemas=void 0;const R=k,Y=10;function bt(r,e){const t=R.Reference.bind(void 0,r),o=R.StringNode.bind(void 0,e);r.register("pack_mcmeta",(0,R.Mod)((0,R.ObjectNode)({pack:(0,R.Mod)((0,R.ObjectNode)({pack_format:(0,R.Mod)((0,R.NumberNode)({integer:!0,min:Y,max:Y}),{default:()=>Y,canUpdate:(d,n)=>n!==Y,update:()=>[{name:"pack_format",params:[Y],newValue:Y}]}),description:t("text_component")}),{default:()=>({pack_format:Y,description:""})}),filter:(0,R.Opt)((0,R.ObjectNode)({block:(0,R.ListNode)((0,R.ObjectNode)({namespace:(0,R.Opt)(o({validator:"regex_pattern"})),path:(0,R.Opt)(o({validator:"regex_pattern"}))}))}))}),{default:()=>({pack:{pack_format:Y,description:""}})}))}ve.initPackMcmetaSchemas=bt;var Oe={};Object.defineProperty(Oe,"__esModule",{value:!0});Oe.initPredicatesSchemas=void 0;const a=k;function Nt(r,e){const t=a.Reference.bind(void 0,r),o=a.StringNode.bind(void 0,e),d=(0,a.ChoiceNode)([{type:"string",node:o(),change:n=>typeof n=="boolean"||typeof n=="number"?n.toString():""},{type:"number",node:(0,a.NumberNode)(),change:n=>typeof n=="string"?parseInt(n):0},{type:"object",node:(0,a.ObjectNode)({min:(0,a.Opt)((0,a.NumberNode)({integer:!0})),max:(0,a.Opt)((0,a.NumberNode)({integer:!0}))}),change:n=>typeof n=="number"?{min:n,max:n}:{}},{type:"boolean",node:(0,a.BooleanNode)(),change:n=>n==="true"||n===1}]);r.register("item_predicate",(0,a.ObjectNode)({items:(0,a.Opt)((0,a.ListNode)(o({validator:"resource",params:{pool:"item"}}))),tag:(0,a.Opt)(o({validator:"resource",params:{pool:"$tag/item"}})),count:t("int_bounds"),durability:t("int_bounds"),potion:(0,a.Opt)(o({validator:"resource",params:{pool:"potion"}})),nbt:(0,a.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,a.Opt)((0,a.ListNode)(t("enchantment_predicate")))},{context:"item"})),r.register("enchantment_predicate",(0,a.ObjectNode)({enchantment:(0,a.Opt)(o({validator:"resource",params:{pool:"enchantment"}})),levels:t("int_bounds")},{context:"enchantment"})),r.register("block_predicate",(0,a.ObjectNode)({blocks:(0,a.Opt)((0,a.ListNode)(o({validator:"resource",params:{pool:"block"}}))),tag:(0,a.Opt)(o({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,a.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,a.Opt)((0,a.MapNode)(o(),d,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),r.register("fluid_predicate",(0,a.ObjectNode)({fluid:(0,a.Opt)(o({validator:"resource",params:{pool:"fluid"}})),tag:(0,a.Opt)(o({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,a.Opt)((0,a.MapNode)(o(),d))},{context:"fluid"})),r.register("location_predicate",(0,a.ObjectNode)({position:(0,a.Opt)((0,a.ObjectNode)({x:t("float_bounds"),y:t("float_bounds"),z:t("float_bounds")})),biome:(0,a.Opt)(o({validator:"resource",params:{pool:"$worldgen/biome"}})),structure:(0,a.Opt)(o({validator:"resource",params:{pool:"$worldgen/structure"}})),dimension:(0,a.Opt)(o({validator:"resource",params:{pool:"$dimension"}})),light:(0,a.Opt)((0,a.ObjectNode)({light:t("int_bounds")})),smokey:(0,a.Opt)((0,a.BooleanNode)()),block:(0,a.Opt)(t("block_predicate")),fluid:(0,a.Opt)(t("fluid_predicate"))},{context:"location"})),r.register("statistic_predicate",(0,a.ObjectNode)({type:o({validator:"resource",params:{pool:"stat_type"}}),stat:o(),value:t("int_bounds"),[a.Switch]:[{push:"type"}],[a.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"}})}}})),r.register("status_effect_predicate",(0,a.ObjectNode)({amplifier:t("int_bounds"),duration:t("int_bounds"),ambient:(0,a.Opt)((0,a.BooleanNode)()),visible:(0,a.Opt)((0,a.BooleanNode)())},{context:"status_effect"})),r.register("distance_predicate",(0,a.ObjectNode)({x:t("float_bounds"),y:t("float_bounds"),z:t("float_bounds"),absolute:t("float_bounds"),horizontal:t("float_bounds")},{context:"distance"})),r.register("entity_predicate",(0,a.ObjectNode)({type:(0,a.Opt)(o({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),type_specific:(0,a.Opt)((0,a.ObjectNode)({type:o({enum:["any","cat","fishing_hook","frog","lightning","player","slime"]}),[a.Switch]:[{push:"type"}],[a.Case]:{cat:{variant:(0,a.Opt)(o({validator:"resource",params:{pool:"cat_variant"}}))},fishing_hook:{in_open_water:(0,a.Opt)((0,a.BooleanNode)())},frog:{variant:(0,a.Opt)(o({validator:"resource",params:{pool:"frog_variant"}}))},lightning:{blocks_set_on_fire:(0,a.Opt)(t("int_bounds")),entity_struck:(0,a.Opt)(t("entity_predicate"))},player:{gamemode:(0,a.Opt)(o({enum:"gamemode"})),level:t("int_bounds"),advancements:(0,a.Opt)((0,a.MapNode)(o({validator:"resource",params:{pool:"$advancement"}}),(0,a.ChoiceNode)([{type:"boolean",node:(0,a.BooleanNode)(),change:()=>!0},{type:"object",node:(0,a.MapNode)(o(),(0,a.BooleanNode)())}]))),recipes:(0,a.Opt)((0,a.MapNode)(o({validator:"resource",params:{pool:"$recipe"}}),(0,a.BooleanNode)())),stats:(0,a.Opt)((0,a.ListNode)(t("statistic_predicate"))),looking_at:(0,a.Opt)(t("entity_predicate"))},slime:{size:t("int_bounds")}}})),nbt:(0,a.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,a.Opt)(o({validator:"team"})),location:(0,a.Opt)(t("location_predicate")),stepping_on:(0,a.Opt)(t("location_predicate")),distance:(0,a.Opt)(t("distance_predicate")),flags:(0,a.Opt)((0,a.ObjectNode)({is_on_fire:(0,a.Opt)((0,a.BooleanNode)()),is_sneaking:(0,a.Opt)((0,a.BooleanNode)()),is_sprinting:(0,a.Opt)((0,a.BooleanNode)()),is_swimming:(0,a.Opt)((0,a.BooleanNode)()),is_baby:(0,a.Opt)((0,a.BooleanNode)())})),equipment:(0,a.Opt)((0,a.MapNode)(o({enum:"slot"}),t("item_predicate"))),vehicle:(0,a.Opt)(t("entity_predicate")),passenger:(0,a.Opt)(t("entity_predicate")),targeted_entity:(0,a.Opt)(t("entity_predicate")),effects:(0,a.Opt)((0,a.MapNode)(o({validator:"resource",params:{pool:"mob_effect"}}),t("status_effect_predicate")))},{context:"entity"})),r.register("damage_source_predicate",(0,a.ObjectNode)({is_explosion:(0,a.Opt)((0,a.BooleanNode)()),is_fire:(0,a.Opt)((0,a.BooleanNode)()),is_magic:(0,a.Opt)((0,a.BooleanNode)()),is_projectile:(0,a.Opt)((0,a.BooleanNode)()),is_lightning:(0,a.Opt)((0,a.BooleanNode)()),bypasses_armor:(0,a.Opt)((0,a.BooleanNode)()),bypasses_invulnerability:(0,a.Opt)((0,a.BooleanNode)()),bypasses_magic:(0,a.Opt)((0,a.BooleanNode)()),source_entity:(0,a.Opt)(t("entity_predicate")),direct_entity:(0,a.Opt)(t("entity_predicate"))},{context:"damage_source"})),r.register("damage_predicate",(0,a.ObjectNode)({dealt:t("float_bounds"),taken:t("float_bounds"),blocked:(0,a.Opt)((0,a.BooleanNode)()),source_entity:(0,a.Opt)(t("entity_predicate")),type:(0,a.Opt)(t("damage_source_predicate"))},{context:"damage"}))}Oe.initPredicatesSchemas=Nt;var ke={};Object.defineProperty(ke,"__esModule",{value:!0});ke.initRecipeSchemas=void 0;const u=k;function ht(r,e){const t=u.Reference.bind(void 0,r),o=u.StringNode.bind(void 0,e);r.register("recipe",(0,u.Mod)((0,u.ObjectNode)({type:o({validator:"resource",params:{pool:"recipe_serializer"}}),[u.Switch]:[{push:"type"}],[u.Case]:{"minecraft:crafting_shaped":{group:(0,u.Opt)(o({enum:"recipe_group",additional:!0})),pattern:(0,u.ListNode)(o()),key:(0,u.MapNode)(o(),t("recipe_ingredient")),result:t("recipe_result")},"minecraft:crafting_shapeless":{group:(0,u.Opt)(o()),ingredients:(0,u.ListNode)(t("recipe_ingredient")),result:t("recipe_result")},"minecraft:smelting":{group:(0,u.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,u.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,u.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,u.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,u.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),count:(0,u.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,u.Opt)(o()),base:t("recipe_ingredient_object"),addition:t("recipe_ingredient_object"),result:t("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),r.register("recipe_ingredient",(0,u.Mod)((0,u.ChoiceNode)([{type:"object",node:t("recipe_ingredient_object"),change:d=>d[0]},{type:"list",node:(0,u.ListNode)(t("recipe_ingredient_object")),change:d=>[d]}]),{default:()=>({item:"minecraft:stone"})})),r.register("recipe_ingredient_object",(0,u.Mod)((0,u.ObjectNode)({item:(0,u.Opt)(o({validator:"resource",params:{pool:"item"}})),tag:(0,u.Opt)(o({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),r.register("recipe_result",(0,u.Mod)((0,u.ObjectNode)({item:o({validator:"resource",params:{pool:"item"}}),count:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))}ke.initRecipeSchemas=ht;var we={};Object.defineProperty(we,"__esModule",{value:!0});we.initTagsSchemas=void 0;const H=k;function yt(r,e){const t=H.StringNode.bind(void 0,e),o=d=>(0,H.Mod)((0,H.ObjectNode)({replace:(0,H.Opt)((0,H.BooleanNode)()),values:(0,H.ListNode)((0,H.ChoiceNode)([{type:"string",node:t({validator:"resource",params:{pool:d,allowTag:!0}}),change:n=>n.id},{type:"object",node:(0,H.ObjectNode)({id:t({validator:"resource",params:{pool:d,allowTag:!0,allowUnknown:!0}}),required:(0,H.BooleanNode)()}),change:n=>({id:n})}]))},{context:"tag"}),{default:()=>({values:[]})});r.register("block_tag",o("block")),r.register("entity_type_tag",o("entity_type")),r.register("fluid_tag",o("fluid")),r.register("function_tag",o("$function")),r.register("game_event_tag",o("game_event")),r.register("item_tag",o("item")),r.register("advancement_tag",o("$advancement")),r.register("dimension_tag",o("$dimension")),r.register("dimension_type_tag",o("$dimension_type")),r.register("function_tag",o("$function")),r.register("item_modifier_tag",o("$item_modifier")),r.register("loot_table_tag",o("$loot_table")),r.register("predicate_tag",o("$predicate")),r.register("recipe_tag",o("$recipe")),r.register("structure_tag",o("$structure")),r.register("biome_tag",o("$worldgen/biome")),r.register("configured_carver_tag",o("$worldgen/configured_carver")),r.register("configured_feature_tag",o("$worldgen/configured_feature")),r.register("structure_tag",o("$worldgen/structure")),r.register("configured_surface_builder_tag",o("$worldgen/configured_surface_builder")),r.register("density_function_tag",o("$worldgen/density_function")),r.register("flat_level_generator_preset_tag",o("$worldgen/flat_level_generator_preset")),r.register("noise_tag",o("$worldgen/noise")),r.register("noise_settings_tag",o("$worldgen/noise_settings")),r.register("placed_feature_tag",o("$worldgen/placed_feature")),r.register("processor_list_tag",o("$worldgen/processor_list")),r.register("structure_set_tag",o("$worldgen/structure_set")),r.register("template_pool_tag",o("$worldgen/template_pool")),r.register("world_preset_tag",o("$worldgen/world_preset"))}we.initTagsSchemas=yt;var xe={};Object.defineProperty(xe,"__esModule",{value:!0});xe.initTextComponentSchemas=void 0;const m=k;function vt(r,e){const t=m.Reference.bind(void 0,r),o=m.StringNode.bind(void 0,e),d=l=>{var v;return l instanceof Array?d(l[0]):(v=l==null?void 0:l.text)!==null&&v!==void 0?v:typeof l=="object"?"":l==null?void 0:l.toString()};r.register("text_component",(0,m.Mod)((0,m.ChoiceNode)([{type:"object",node:t("text_component_object"),change:l=>l instanceof Array?typeof l[0]=="object"?l[0]:{text:d(l[0])}:typeof l=="object"?l:{text:d(l)}},{type:"list",node:t("text_component_list"),change:l=>[l]},{type:"string",priority:1,node:o(),change:d},{type:"number",node:(0,m.NumberNode)(),change:l=>{const v=parseFloat(d(l));return isFinite(v)?v:l?1:0}},{type:"boolean",node:(0,m.BooleanNode)(),change:l=>{const v=d(l);return v==="true"||v==="false"?v==="true":!!v}}],{context:"text_component"}),{default:()=>({text:""})}));const n={color:(0,m.Opt)(o()),font:(0,m.Opt)(o()),bold:(0,m.Opt)((0,m.BooleanNode)()),italic:(0,m.Opt)((0,m.BooleanNode)()),underlined:(0,m.Opt)((0,m.BooleanNode)()),strikethrough:(0,m.Opt)((0,m.BooleanNode)()),obfuscated:(0,m.Opt)((0,m.BooleanNode)()),insertion:(0,m.Opt)(o())};r.register("text_style",(0,m.ObjectNode)(g({},n),{context:"text_component_object"}));const c=W(g({},n),{clickEvent:(0,m.Opt)((0,m.ObjectNode)({action:o({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[m.Switch]:[{push:"action"}],[m.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:(0,m.Opt)((0,m.ObjectNode)({action:o({enum:["show_text","show_item","show_entity"]}),[m.Switch]:[{push:"action"}],[m.Case]:{show_text:{value:(0,m.Opt)(t("text_component")),contents:(0,m.Opt)(t("text_component"))},show_item:{value:(0,m.Opt)(o({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:(0,m.Opt)((0,m.ObjectNode)({id:o({validator:"resource",params:{pool:"item"}}),count:(0,m.Opt)((0,m.NumberNode)({integer:!0})),tag:(0,m.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:(0,m.Opt)((0,m.ObjectNode)({name:(0,m.Opt)(o()),type:(0,m.Opt)(o()),id:(0,m.Opt)(o())})),contents:(0,m.Opt)((0,m.Mod)((0,m.ObjectNode)({name:(0,m.Opt)(t("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:(0,m.Opt)(t("text_component_list"))});r.register("text_component_object",(0,m.Mod)((0,m.ChoiceNode)([{type:"text",match:l=>typeof l=="object",change:l=>({text:""}),priority:-1,node:(0,m.ObjectNode)(g({text:o()},c))},{type:"translation",match:l=>(l==null?void 0:l.translate)!==void 0,change:l=>({translate:""}),node:(0,m.ObjectNode)(g({translate:o(),with:(0,m.Opt)(t("text_component_list"))},c))},{type:"score",match:l=>(l==null?void 0:l.score)!==void 0,change:l=>({score:{}}),node:(0,m.ObjectNode)(g({score:(0,m.ObjectNode)({name:o({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:o({validator:"objective"}),value:(0,m.Opt)(o())})},c))},{type:"selector",match:l=>(l==null?void 0:l.selector)!==void 0,change:l=>({selector:""}),node:(0,m.ObjectNode)(g({selector:o({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:(0,m.Opt)(t("text_component"))},c))},{type:"keybind",match:l=>(l==null?void 0:l.keybind)!==void 0,change:l=>({keybind:""}),node:(0,m.ObjectNode)(g({keybind:o({enum:"keybind",additional:!0})},c))},{type:"nbt",match:l=>(l==null?void 0:l.nbt)!==void 0,change:l=>({nbt:""}),node:(0,m.ObjectNode)(g({nbt:o({validator:"nbt_path"}),block:(0,m.Opt)(o({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,m.Opt)(o({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,m.Opt)(o({validator:"resource",params:{pool:"$storage"}})),interpret:(0,m.Opt)((0,m.BooleanNode)()),separator:(0,m.Opt)(t("text_component"))},c))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),r.register("text_component_list",(0,m.Mod)((0,m.ListNode)(t("text_component")),{default:()=>[{text:""}]}))}xe.initTextComponentSchemas=vt;var Se={},Te={};(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.initBiomeSchemas=r.MobCategorySpawnSettings=void 0;const e=k,t=T;function o(d,n){const c=e.StringNode.bind(void 0,n);r.MobCategorySpawnSettings=(0,e.Mod)((0,e.ListNode)((0,e.ObjectNode)({type:c({validator:"resource",params:{pool:"entity_type"}}),weight:(0,e.NumberNode)({integer:!0}),minCount:(0,e.NumberNode)({integer:!0}),maxCount:(0,e.NumberNode)({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]}),d.register("biome",(0,e.Mod)((0,e.ObjectNode)({temperature:(0,e.NumberNode)(),downfall:(0,e.NumberNode)(),precipitation:c({enum:["none","rain","snow"]}),temperature_modifier:(0,e.Opt)(c({enum:["none","frozen"]})),creature_spawn_probability:(0,e.Opt)((0,e.NumberNode)({min:0,max:1})),effects:(0,e.ObjectNode)({sky_color:(0,e.NumberNode)({color:!0}),fog_color:(0,e.NumberNode)({color:!0}),water_color:(0,e.NumberNode)({color:!0}),water_fog_color:(0,e.NumberNode)({color:!0}),grass_color:(0,e.Opt)((0,e.NumberNode)({color:!0})),foliage_color:(0,e.Opt)((0,e.NumberNode)({color:!0})),grass_color_modifier:(0,e.Opt)(c({enum:["none","dark_forest","swamp"]})),ambient_sound:(0,e.Opt)(c()),mood_sound:(0,e.Opt)((0,e.ObjectNode)({sound:c(),tick_delay:(0,e.NumberNode)({integer:!0}),block_search_extent:(0,e.NumberNode)({integer:!0}),offset:(0,e.NumberNode)()})),additions_sound:(0,e.Opt)((0,e.ObjectNode)({sound:c(),tick_chance:(0,e.NumberNode)({min:0,max:1})})),music:(0,e.Opt)((0,e.ObjectNode)({sound:c(),min_delay:(0,e.NumberNode)({integer:!0,min:0}),max_delay:(0,e.NumberNode)({integer:!0,min:0}),replace_current_music:(0,e.BooleanNode)()})),particle:(0,e.Opt)((0,e.ObjectNode)({options:(0,e.ObjectNode)({type:c()}),probability:(0,e.NumberNode)({min:0,max:1})}))}),spawners:(0,e.MapNode)(c({enum:"mob_category"}),r.MobCategorySpawnSettings),spawn_costs:(0,e.MapNode)(c({validator:"resource",params:{pool:"entity_type"}}),(0,e.Mod)((0,e.ObjectNode)({energy_budget:(0,e.NumberNode)(),charge:(0,e.NumberNode)()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:(0,e.MapNode)(c({enum:["air","liquid"]}),(0,e.Mod)((0,t.Tag)({resource:"$worldgen/configured_carver",inlineSchema:"configured_carver"}),{default:()=>["minecraft:cave"]})),features:(0,e.ListNode)((0,e.Mod)((0,t.Tag)({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"}),{category:()=>"predicate"}),{maxLength:11})},{context:"biome"}),{default:()=>({temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))}r.initBiomeSchemas=o})(Te);var je={};Object.defineProperty(je,"__esModule",{value:!0});je.initCarverSchemas=void 0;const P=k,K=T;function Ot(r,e){const t=P.Reference.bind(void 0,r),o=P.StringNode.bind(void 0,e),d={vertical_rotation:(0,K.FloatProvider)(),shape:(0,P.ObjectNode)({distance_factor:(0,K.FloatProvider)(),thickness:(0,K.FloatProvider)(),width_smoothness:(0,P.NumberNode)({integer:!0,min:0}),horizontal_radius_factor:(0,K.FloatProvider)(),vertical_radius_default_factor:(0,P.NumberNode)(),vertical_radius_center_factor:(0,P.NumberNode)()})},n={horizontal_radius_multiplier:(0,K.FloatProvider)(),vertical_radius_multiplier:(0,K.FloatProvider)(),floor_level:(0,K.FloatProvider)({min:-1,max:1})};r.register("configured_carver",(0,P.Mod)((0,P.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/carver"}}),config:(0,P.ObjectNode)({probability:(0,P.NumberNode)({min:0,max:1}),y:t("height_provider"),yScale:(0,K.FloatProvider)(),lava_level:t("vertical_anchor"),replaceable:(0,K.Tag)({resource:"block"}),debug_settings:(0,P.Opt)((0,P.ObjectNode)({debug_mode:(0,P.Opt)((0,P.BooleanNode)()),air_state:(0,P.Opt)(t("block_state")),water_state:(0,P.Opt)(t("block_state")),lava_state:(0,P.Opt)(t("block_state")),barrier_state:(0,P.Opt)(t("block_state"))})),[P.Switch]:["pop",{push:"type"}],[P.Case]:{"minecraft:canyon":d,"minecraft:cave":n,"minecraft:nether_cave":n}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))}je.initCarverSchemas=Ot;var Ce={};Object.defineProperty(Ce,"__esModule",{value:!0});Ce.initDecoratorSchemas=void 0;const L=k,de=T;function kt(r,e){const t=L.Reference.bind(void 0,r),o=L.StringNode.bind(void 0,e);r.register("decorator",(0,L.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/placement_modifier_type"}}),[L.Switch]:[{push:"type"}],[L.Case]:{"minecraft:block_predicate_filter":{predicate:t("block_predicate_worldgen")},"minecraft:carving_mask":{step:o({enum:"generation_step"})},"minecraft:rarity_filter":{chance:(0,L.NumberNode)({integer:!0,min:0})},"minecraft:count":{count:(0,de.IntProvider)({min:0,max:256})},"minecraft:count_on_every_layer":{count:(0,de.IntProvider)({min:0,max:256})},"minecraft:noise_threshold_count":{noise_level:(0,L.NumberNode)(),below_noise:(0,L.NumberNode)({integer:!0}),above_noise:(0,L.NumberNode)({integer:!0})},"minecraft:noise_based_count":{noise_to_count_ratio:(0,L.NumberNode)({integer:!0}),noise_factor:(0,L.NumberNode)(),noise_offset:(0,L.Opt)((0,L.NumberNode)())},"minecraft:environment_scan":{direction_of_search:o({enum:["up","down"]}),max_steps:(0,L.NumberNode)({integer:!0,min:1,max:32}),target_condition:t("block_predicate_worldgen"),allowed_search_condition:(0,L.Opt)(t("block_predicate_worldgen"))},"minecraft:heightmap":{heightmap:o({enum:"heightmap_type"})},"minecraft:height_range":{height:t("height_provider")},"minecraft:random_offset":{xz_spread:(0,de.IntProvider)({min:-16,max:16}),y_spread:(0,de.IntProvider)({min:-16,max:16})},"minecraft:surface_relative_threshold_filter":{heightmap:o({enum:"heightmap_type"}),min_inclusive:(0,L.Opt)((0,L.NumberNode)({integer:!0})),max_inclusive:(0,L.Opt)((0,L.NumberNode)({integer:!0}))},"minecraft:surface_water_depth_filter":{max_water_depth:(0,L.NumberNode)({integer:!0})}}},{context:"decorator",category:"predicate"}))}Ce.initDecoratorSchemas=kt;var Re={};(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.initDensityFunctionSchemas=r.DensityFunction=void 0;const e=k;function t(o,d){const n=e.StringNode.bind(void 0,d),c=e.Reference.bind(void 0,o);r.DensityFunction=(0,e.Mod)((0,e.ChoiceNode)([{type:"number",node:(0,e.NumberNode)(),change:()=>0},{type:"string",priority:1,node:n({validator:"resource",params:{pool:"$worldgen/density_function"}}),change:()=>{}},{type:"object",node:c("density_function"),change:()=>({})}],{choiceContext:"density_function"}),{default:()=>0});const l=(0,e.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/noise"}}),change:()=>{}},{type:"object",node:c("noise_parameters")}],{choiceContext:"noise_parameters"}),v=(0,e.NumberNode)({min:-1e6,max:1e6}),_=(0,e.NumberNode)({integer:!0,min:-2032*2,max:2031*2});o.register("density_function",(0,e.Mod)((0,e.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/density_function_type"}}),[e.Switch]:[{push:"type"}],[e.Case]:{"minecraft:abs":{argument:r.DensityFunction},"minecraft:add":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:blend_density":{argument:r.DensityFunction},"minecraft:cache_2d":{argument:r.DensityFunction},"minecraft:cache_all_in_cell":{argument:r.DensityFunction},"minecraft:cache_once":{argument:r.DensityFunction},"minecraft:clamp":{input:r.DensityFunction,min:v,max:v},"minecraft:constant":{argument:(0,e.NumberNode)()},"minecraft:cube":{argument:r.DensityFunction},"minecraft:flat_cache":{argument:r.DensityFunction},"minecraft:half_negative":{argument:r.DensityFunction},"minecraft:interpolated":{argument:r.DensityFunction},"minecraft:max":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:min":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:mul":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:noise":{noise:l,xz_scale:(0,e.NumberNode)(),y_scale:(0,e.NumberNode)()},"minecraft:old_blended_noise":{xz_scale:(0,e.NumberNode)(),y_scale:(0,e.NumberNode)(),xz_factor:(0,e.NumberNode)(),y_factor:(0,e.NumberNode)(),smear_scale_multiplier:(0,e.NumberNode)({min:1,max:8})},"minecraft:quarter_negative":{argument:r.DensityFunction},"minecraft:range_choice":{input:r.DensityFunction,min_inclusive:v,max_exclusive:v,when_in_range:r.DensityFunction,when_out_of_range:r.DensityFunction},"minecraft:shift":{argument:r.DensityFunction},"minecraft:shift_a":{argument:r.DensityFunction},"minecraft:shift_b":{argument:r.DensityFunction},"minecraft:shifted_noise":{noise:l,xz_scale:(0,e.NumberNode)(),y_scale:(0,e.NumberNode)(),shift_x:r.DensityFunction,shift_y:r.DensityFunction,shift_z:r.DensityFunction},"minecraft:slide":{argument:r.DensityFunction},"minecraft:spline":{spline:c("cubic_spline")},"minecraft:square":{argument:r.DensityFunction},"minecraft:squeeze":{argument:r.DensityFunction},"minecraft:weird_scaled_sampler":{rarity_value_mapper:n({enum:["type_1","type_2"]}),noise:l,input:r.DensityFunction},"minecraft:y_clamped_gradient":{from_y:_,to_y:_,from_value:v,to_value:v}}},{context:"density_function",disableSwitchContext:!0}),{default:()=>({type:"minecraft:noise",noise:"minecraft:cave_entrance",xz_scale:.75,y_scale:.5})})),o.register("cubic_spline",(0,e.Mod)((0,e.ChoiceNode)([{type:"number",node:(0,e.NumberNode)()},{type:"object",node:(0,e.ObjectNode)({coordinate:r.DensityFunction,points:(0,e.ListNode)((0,e.ObjectNode)({location:(0,e.NumberNode)(),derivative:(0,e.NumberNode)(),value:c("cubic_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))}r.initDensityFunctionSchemas=t})(Re);var Me={},J={};Object.defineProperty(J,"__esModule",{value:!0});J.initProcessorListSchemas=J.Processors=void 0;const y=k,wt=T;function xt(r,e){const t=y.Reference.bind(void 0,r),o=y.StringNode.bind(void 0,e);J.Processors=(0,y.ChoiceNode)([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:n=>{}},{type:"object",node:t("processor_list"),change:n=>({processors:[{processor_type:"minecraft:nop"}]})}]),r.register("processor_list",(0,y.Mod)((0,y.ObjectNode)({processors:(0,y.ListNode)(t("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"}}]}]})})),r.register("processor",(0,y.Mod)((0,y.ObjectNode)({processor_type:o({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[y.Switch]:[{push:"processor_type"}],[y.Case]:{"minecraft:block_age":{mossiness:(0,y.NumberNode)()},"minecraft:block_ignore":{blocks:(0,y.ListNode)(t("block_state"))},"minecraft:block_rot":{integrity:(0,y.NumberNode)({min:0,max:1}),rottable_blocks:(0,y.Opt)((0,wt.Tag)({resource:"block"}))},"minecraft:gravity":{heightmap:o({enum:"heightmap_type"}),offset:(0,y.NumberNode)({integer:!0})},"minecraft:protected_blocks":{value:o({validator:"resource",params:{pool:"block",requireTag:!0}})},"minecraft:rule":{rules:(0,y.ListNode)(t("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"}}]})})),r.register("processor_rule",(0,y.Mod)((0,y.ObjectNode)({position_predicate:(0,y.Opt)(t("pos_rule_test")),location_predicate:t("rule_test"),input_predicate:t("rule_test"),output_state:t("block_state"),output_nbt:(0,y.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 d={min_dist:(0,y.Opt)((0,y.NumberNode)({min:0,max:255,integer:!0})),max_dist:(0,y.Opt)((0,y.NumberNode)({min:0,max:255,integer:!0})),min_chance:(0,y.Opt)((0,y.NumberNode)({min:0,max:1})),max_chance:(0,y.Opt)((0,y.NumberNode)({min:0,max:1}))};r.register("pos_rule_test",(0,y.ObjectNode)({predicate_type:o({validator:"resource",params:{pool:"pos_rule_test"}}),[y.Switch]:[{push:"predicate_type"}],[y.Case]:{"minecraft:axis_aligned_linear_pos":g({axis:o({enum:["x","y","z"]})},d),"minecraft:linear_pos":d}},{context:"pos_rule_test",disableSwitchContext:!0})),r.register("rule_test",(0,y.ObjectNode)({predicate_type:o({validator:"resource",params:{pool:"rule_test"}}),[y.Switch]:[{push:"predicate_type"}],[y.Case]:{"minecraft:block_match":{block:o({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:t("block_state")},"minecraft:random_block_match":{block:o({validator:"resource",params:{pool:"block"}}),probability:(0,y.NumberNode)({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:t("block_state"),probability:(0,y.NumberNode)({min:0,max:1})},"minecraft:tag_match":{tag:o({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))}J.initProcessorListSchemas=xt;Object.defineProperty(Me,"__esModule",{value:!0});Me.initFeatureSchemas=void 0;const i=k,f=T,Ee=J;function St(r,e){const t=i.Reference.bind(void 0,r),o=i.StringNode.bind(void 0,e),d=(0,i.ChoiceNode)([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:t("configured_feature")}],{choiceContext:"feature"}),n=(0,i.ChoiceNode)([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},{type:"object",node:t("placed_feature")}],{choiceContext:"placed_feature"}),c={tries:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1})),xz_spread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),y_spread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),feature:n},l={cap_provider:t("block_state_provider"),stem_provider:t("block_state_provider"),foliage_radius:(0,i.Opt)((0,i.NumberNode)({integer:!0}))},v=(0,i.ObjectNode)({target:t("rule_test"),state:t("block_state")}),_={size:(0,i.NumberNode)({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:(0,i.NumberNode)({min:0,max:1}),targets:(0,i.ListNode)(v)},b={surface:o({enum:"cave_surface"}),depth:(0,f.IntProvider)({min:1,max:128}),vertical_range:(0,i.NumberNode)({integer:!0,min:1,max:256}),extra_bottom_block_chance:(0,i.NumberNode)({min:0,max:1}),extra_edge_column_chance:(0,i.NumberNode)({min:0,max:1}),vegetation_chance:(0,i.NumberNode)({min:0,max:1}),xz_radius:(0,f.IntProvider)(),replaceable:o({validator:"resource",params:{pool:"block",requireTag:!0}}),ground_state:t("block_state_provider"),vegetation_feature:n};r.register("configured_feature",(0,i.Mod)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/feature"}}),config:(0,i.ObjectNode)({[i.Switch]:["pop",{push:"type"}],[i.Case]:{"minecraft:bamboo":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:basalt_columns":{reach:(0,f.IntProvider)({min:0,max:3}),height:(0,f.IntProvider)({min:1,max:10})},"minecraft:block_column":{direction:o({enum:["up","down","north","east","south","west"]}),allowed_placement:t("block_predicate_worldgen"),prioritize_tip:(0,i.BooleanNode)(),layers:(0,i.ListNode)((0,i.ObjectNode)({height:(0,f.IntProvider)({min:0}),provider:t("block_state_provider")}))},"minecraft:block_pile":{state_provider:t("block_state_provider")},"minecraft:delta_feature":{contents:t("block_state"),rim:t("block_state"),size:(0,f.IntProvider)({min:0,max:16}),rim_size:(0,f.IntProvider)({min:0,max:16})},"minecraft:disk":{state_provider:t("rule_based_block_state_provider"),target:t("block_predicate_worldgen"),radius:(0,f.IntProvider)({min:0,max:8}),half_height:(0,i.NumberNode)({integer:!0,min:0,max:4})},"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:(0,i.NumberNode)({integer:!0,min:1,max:512}),height:(0,f.IntProvider)({min:0,max:128}),radius:(0,f.IntProvider)({min:0,max:128}),max_stalagmite_stalactite_height_diff:(0,i.NumberNode)({integer:!0,min:0,max:64}),height_deviation:(0,i.NumberNode)({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:(0,f.IntProvider)({min:0,max:128}),density:(0,f.FloatProvider)({min:0,max:2}),wetness:(0,f.FloatProvider)({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:(0,i.NumberNode)({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:(0,i.NumberNode)({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:(0,i.NumberNode)({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:(0,i.BooleanNode)(),exit:(0,i.Opt)(t("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:(0,i.Opt)((0,i.BooleanNode)()),crystal_beam_target:(0,i.Opt)(t("block_pos")),spikes:(0,i.ListNode)((0,i.ObjectNode)({centerX:(0,i.Opt)((0,i.NumberNode)({integer:!0})),centerZ:(0,i.Opt)((0,i.NumberNode)({integer:!0})),radius:(0,i.Opt)((0,i.NumberNode)({integer:!0})),height:(0,i.Opt)((0,i.NumberNode)({integer:!0})),guarded:(0,i.Opt)((0,i.BooleanNode)())}))},"minecraft:fill_layer":{state:t("block_state"),height:(0,i.NumberNode)({integer:!0,min:0,max:255})},"minecraft:flower":c,"minecraft:forest_rock":{state:t("block_state")},"minecraft:fossil":{max_empty_corners_allowed:(0,i.NumberNode)({integer:!0,min:0,max:7}),fossil_structures:(0,i.ListNode)(o({validator:"resource",params:{pool:"$structure"}})),overlay_structures:(0,i.ListNode)(o({validator:"resource",params:{pool:"$structure"}})),fossil_processors:Ee.Processors,overlay_processors:Ee.Processors},"minecraft:geode":{blocks:(0,i.ObjectNode)({filling_provider:t("block_state_provider"),inner_layer_provider:t("block_state_provider"),alternate_inner_layer_provider:t("block_state_provider"),middle_layer_provider:t("block_state_provider"),outer_layer_provider:t("block_state_provider"),inner_placements:(0,i.ListNode)(t("block_state")),cannot_replace:o({validator:"resource",params:{pool:"block",requireTag:!0}}),invalid_blocks:o({validator:"resource",params:{pool:"block",requireTag:!0}})}),layers:(0,i.ObjectNode)({filling:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),inner_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),middle_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),outer_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50}))}),crack:(0,i.ObjectNode)({generate_crack_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),base_crack_size:(0,i.Opt)((0,i.NumberNode)({min:0,max:5})),crack_point_offset:(0,i.Opt)((0,i.NumberNode)({min:0,max:10}))}),noise_multiplier:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),use_potential_placements_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),use_alternate_layer0_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),placements_require_layer0_alternate:(0,i.Opt)((0,i.BooleanNode)()),outer_wall_distance:(0,i.Opt)((0,f.IntProvider)({min:1,max:20})),distribution_points:(0,i.Opt)((0,f.IntProvider)({min:1,max:20})),point_offset:(0,i.Opt)((0,f.IntProvider)({min:0,max:10})),min_gen_offset:(0,i.Opt)((0,i.NumberNode)({integer:!0})),max_gen_offset:(0,i.Opt)((0,i.NumberNode)({integer:!0})),invalid_blocks_threshold:(0,i.NumberNode)({integer:!0})},"minecraft:multiface_growth":{search_range:(0,i.Opt)((0,i.NumberNode)({min:1,max:64,integer:!0})),chance_of_spreading:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),can_place_on_floor:(0,i.Opt)((0,i.BooleanNode)()),can_place_on_ceiling:(0,i.Opt)((0,i.BooleanNode)()),can_place_on_wall:(0,i.Opt)((0,i.BooleanNode)()),can_be_placed_on:(0,f.Tag)({resource:"block"})},"minecraft:huge_brown_mushroom":l,"minecraft:huge_fungus":{hat_state:t("block_state"),decor_state:t("block_state"),stem_state:t("block_state"),valid_base_block:t("block_state"),planted:(0,i.Opt)((0,i.BooleanNode)())},"minecraft:huge_red_mushroom":l,"minecraft:iceberg":{state:t("block_state")},"minecraft:lake":{fluid:t("block_state_provider"),barrier:t("block_state_provider")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1,max:512})),column_radius:(0,f.IntProvider)({min:0,max:60}),height_scale:(0,f.FloatProvider)({min:0,max:20}),max_column_radius_to_cave_height_ratio:(0,i.NumberNode)({min:0,max:1}),stalactite_bluntness:(0,f.FloatProvider)({min:.1,max:10}),stalagmite_bluntness:(0,f.FloatProvider)({min:.1,max:10}),wind_speed:(0,f.FloatProvider)({min:0,max:2}),min_radius_for_wind:(0,i.NumberNode)({integer:!0,min:0,max:100}),min_bluntness_for_wind:(0,i.NumberNode)({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:t("block_state_provider"),spread_width:(0,i.NumberNode)({integer:!0,min:1}),spread_height:(0,i.NumberNode)({integer:!0,min:1})},"minecraft:netherrack_replace_blobs":{state:t("block_state"),target:t("block_state"),radius:(0,f.IntProvider)({min:0,max:12})},"minecraft:no_bonemeal_flower":c,"minecraft:ore":_,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_directional_spread:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_spread_radius2:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_spread_radius3:(0,i.Opt)((0,i.NumberNode)({min:0,max:1}))},"minecraft:random_patch":c,"minecraft:random_boolean_selector":{feature_false:n,feature_true:n},"minecraft:random_selector":{features:(0,i.ListNode)((0,i.ObjectNode)({chance:(0,i.NumberNode)({min:0,max:1}),feature:n})),default:n},"minecraft:replace_single_block":{targets:(0,i.ListNode)(v)},"minecraft:root_system":{required_vertical_space_for_tree:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_radius:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_placement_attempts:(0,i.NumberNode)({integer:!0,min:1,max:256}),root_column_max_height:(0,i.NumberNode)({integer:!0,min:1,max:4096}),hanging_root_radius:(0,i.NumberNode)({integer:!0,min:1,max:64}),hanging_roots_vertical_span:(0,i.NumberNode)({integer:!0,min:0,max:16}),hanging_root_placement_attempts:(0,i.NumberNode)({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_replaceable:o({validator:"resource",params:{pool:"block",requireTag:!0}}),root_state_provider:t("block_state_provider"),hanging_root_state_provider:t("block_state_provider"),allowed_tree_position:t("block_predicate_worldgen"),feature:n},"minecraft:scattered_ore":_,"minecraft:sculk_patch":{charge_count:(0,i.NumberNode)({integer:!0,min:1,max:32}),amount_per_charge:(0,i.NumberNode)({integer:!0,min:1,max:500}),spread_attempts:(0,i.NumberNode)({integer:!0,min:1,max:64}),growth_rounds:(0,i.NumberNode)({integer:!0,min:0,max:8}),spread_rounds:(0,i.NumberNode)({integer:!0,min:0,max:8}),extra_rare_growths:(0,f.IntProvider)(),catalyst_chance:(0,i.NumberNode)({min:0,max:1})},"minecraft:sea_pickle":{count:(0,f.IntProvider)({min:0,max:256})},"minecraft:seagrass":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:simple_block":{to_place:t("block_state_provider")},"minecraft:simple_random_selector":{features:(0,f.Tag)({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"})},"minecraft:spring_feature":{state:t("fluid_state"),rock_count:(0,i.NumberNode)({integer:!0}),hole_count:(0,i.NumberNode)({integer:!0}),requires_block_below:(0,i.BooleanNode)(),valid_blocks:(0,f.Tag)({resource:"block"})},"minecraft:tree":{ignore_vines:(0,i.Opt)((0,i.BooleanNode)()),force_dirt:(0,i.Opt)((0,i.BooleanNode)()),minimum_size:t("feature_size"),dirt_provider:t("block_state_provider"),trunk_provider:t("block_state_provider"),foliage_provider:t("block_state_provider"),root_placer:(0,i.Opt)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/root_placer_type"}}),root_provider:t("block_state_provider"),trunk_offset_y:(0,f.IntProvider)(),above_root_placement:(0,i.Opt)((0,i.ObjectNode)({above_root_provider:t("block_state_provider"),above_root_placement_chance:(0,i.NumberNode)({min:0,max:1})})),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:mangrove_root_placer":{mangrove_root_placement:(0,i.ObjectNode)({max_root_width:(0,i.NumberNode)({integer:!0,min:1,max:12}),max_root_length:(0,i.NumberNode)({integer:!0,min:1,max:64}),random_skew_chance:(0,i.NumberNode)({min:0,max:1}),can_grow_through:(0,f.Tag)({resource:"block"}),muddy_roots_in:(0,f.Tag)({resource:"block"}),muddy_roots_provider:t("block_state_provider")})}}},{context:"root_placer"})),trunk_placer:(0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:(0,i.NumberNode)({integer:!0,min:0,max:32}),height_rand_a:(0,i.NumberNode)({integer:!0,min:0,max:24}),height_rand_b:(0,i.NumberNode)({integer:!0,min:0,max:24}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:bending_trunk_placer":{bend_length:(0,f.IntProvider)({min:1,max:64}),min_height_for_leaves:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1}))},"minecraft:upwards_branching_trunk_placer":{extra_branch_steps:(0,f.IntProvider)({min:1}),extra_branch_length:(0,f.IntProvider)({min:0}),place_branch_per_log_probability:(0,i.NumberNode)({min:0,max:1}),can_grow_through:(0,f.Tag)({resource:"block"})}}},{context:"trunk_placer"}),foliage_placer:(0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:(0,f.IntProvider)({min:0,max:16}),offset:(0,f.IntProvider)({min:0,max:16}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:blob_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:(0,f.IntProvider)({min:0,max:24})},"minecraft:pine_foliage_placer":{height:(0,f.IntProvider)({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:(0,f.IntProvider)({min:1,max:512}),leaf_placement_attempts:(0,i.NumberNode)({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:(0,f.IntProvider)({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:(0,i.ListNode)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:alter_ground":{provider:t("block_state_provider")},"minecraft:attached_to_leaves":{probability:(0,i.NumberNode)({min:0,max:1}),exclusion_radius_xz:(0,i.NumberNode)({integer:!0,min:0,max:16}),exclusion_radius_y:(0,i.NumberNode)({integer:!0,min:0,max:16}),required_empty_blocks:(0,i.NumberNode)({integer:!0,min:1,max:16}),block_provider:t("block_state_provider"),directions:(0,i.ListNode)(o({enum:"direction"}))},"minecraft:beehive":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:cocoa":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:leave_vine":{probability:(0,i.NumberNode)({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:twisting_vines":{spread_width:(0,i.NumberNode)({integer:!0,min:1}),spread_height:(0,i.NumberNode)({integer:!0,min:1}),max_height:(0,i.NumberNode)({integer:!0,min:1})},"minecraft:underwater_magma":{floor_search_range:(0,i.NumberNode)({integer:!0,min:0,max:512}),placement_radius_around_floor:(0,i.NumberNode)({integer:!0,min:0,max:64}),placement_probability_per_valid_position:(0,i.NumberNode)({min:0,max:1})},"minecraft:vegetation_patch":b,"minecraft:waterlogged_vegetation_patch":b}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:tree",config:{minimum_size:{type:"minecraft:two_layers_feature_size"},trunk_placer:{type:"minecraft:straight_trunk_placer",base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{type:"minecraft:blob_foliage_placer",radius:2,offset:0,height:3}}})})),r.register("placed_feature",(0,i.Mod)((0,i.ObjectNode)({feature:d,placement:(0,i.ListNode)(t("decorator"))},{context:"placed_feature"}),{default:()=>({feature:"minecraft:oak",placement:[{type:"minecraft:count",count:4},{type:"minecraft:in_square"},{type:"minecraft:heightmap",heightmap:"OCEAN_FLOOR"}]})})),r.register("feature_size",(0,i.Mod)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:(0,i.Opt)((0,i.NumberNode)({min:0,max:80})),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:two_layers_feature_size":{limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:81})),lower_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:80})),upper_limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:80})),lower_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),middle_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const j={seed:(0,i.NumberNode)({integer:!0}),noise:t("noise_parameters"),scale:(0,i.Mod)((0,i.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1})};r.register("block_state_provider",(0,i.Mod)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:dual_noise_provider":W(g({},j),{variety:(0,f.InclusiveRange)({integer:!0,min:1,max:64}),slow_noise:t("noise_parameters"),slow_scale:(0,i.Mod)((0,i.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1}),states:(0,i.ListNode)(t("block_state"))}),"minecraft:noise_threshold_provider":W(g({},j),{threshold:(0,i.NumberNode)({min:-1,max:1}),high_chance:(0,i.NumberNode)({min:0,max:1}),default_state:t("block_state"),low_states:(0,i.ListNode)(t("block_state")),high_states:(0,i.ListNode)(t("block_state"))}),"minecraft:noise_provider":W(g({},j),{states:(0,i.ListNode)(t("block_state"))}),"minecraft:randomized_int_state_provider":{property:o(),values:(0,f.IntProvider)(),source:t("block_state_provider")},"minecraft:rotated_block_provider":{state:t("block_state")},"minecraft:simple_state_provider":{state:t("block_state")},"minecraft:weighted_state_provider":{entries:(0,i.ListNode)((0,i.Mod)((0,i.ObjectNode)({weight:(0,i.NumberNode)({integer:!0,min:1}),data:t("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),r.register("rule_based_block_state_provider",(0,i.Mod)((0,i.ObjectNode)({fallback:t("block_state_provider"),rules:(0,i.ListNode)((0,i.ObjectNode)({if_true:t("block_predicate_worldgen"),then:t("block_state_provider")}))},{context:"block_state_provider"}),{default:()=>({fallback:{type:"minecraft:simple_state_provider"}})}));const h={offset:(0,i.Opt)((0,i.ListNode)((0,i.NumberNode)({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))};r.register("block_predicate_worldgen",(0,i.Mod)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"block_predicate_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:all_of":{predicates:(0,i.ListNode)(t("block_predicate_worldgen"))},"minecraft:any_of":{predicates:(0,i.ListNode)(t("block_predicate_worldgen"))},"minecraft:has_sturdy_face":W(g({},h),{direction:o({enum:"direction"})}),"minecraft:inside_world_bounds":g({},h),"minecraft:matching_block_tag":W(g({},h),{tag:o({validator:"resource",params:{pool:"$tag/block"}})}),"minecraft:matching_blocks":W(g({},h),{blocks:(0,f.Tag)({resource:"block"})}),"minecraft:matching_fluids":W(g({},h),{fluids:(0,f.Tag)({resource:"fluid"})}),"minecraft:not":{predicate:t("block_predicate_worldgen")},"minecraft:would_survive":W(g({},h),{state:t("block_state")})}},{context:"block_predicate"}),{default:()=>({type:"minecraft:true"})}))}Me.initFeatureSchemas=St;var Pe={};Object.defineProperty(Pe,"__esModule",{value:!0});Pe.initNoiseSettingsSchemas=void 0;const C=k,jt=T,z=Re;function Ct(r,e){const t=C.Reference.bind(void 0,r),o=C.StringNode.bind(void 0,e);r.register("noise_settings",(0,C.Mod)((0,C.ObjectNode)({sea_level:(0,C.NumberNode)({integer:!0}),disable_mob_generation:(0,C.BooleanNode)(),aquifers_enabled:(0,C.BooleanNode)(),ore_veins_enabled:(0,C.BooleanNode)(),legacy_random_source:(0,C.BooleanNode)(),default_block:t("block_state"),default_fluid:t("block_state"),noise:(0,C.ObjectNode)({min_y:(0,C.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,C.NumberNode)({integer:!0,min:0,max:4096}),size_horizontal:(0,C.NumberNode)({integer:!0}),size_vertical:(0,C.NumberNode)({integer:!0})}),noise_router:(0,C.ObjectNode)({barrier:z.DensityFunction,fluid_level_floodedness:z.DensityFunction,fluid_level_spread:z.DensityFunction,lava:z.DensityFunction,temperature:z.DensityFunction,vegetation:z.DensityFunction,continents:z.DensityFunction,erosion:z.DensityFunction,depth:z.DensityFunction,ridges:z.DensityFunction,initial_density_without_jaggedness:z.DensityFunction,final_density:z.DensityFunction,vein_toggle:z.DensityFunction,vein_ridged:z.DensityFunction,vein_gap:z.DensityFunction}),spawn_target:(0,C.ListNode)(t("parameter_point")),surface_rule:t("material_rule")},{context:"noise_settings"}),d=>({default:()=>jt.DefaultNoiseSettings,validate:(n,c,l,v)=>{var _,b,j,h;return c=d.validate(n,c,l,v),((_=c==null?void 0:c.noise)===null||_===void 0?void 0:_.min_y)+((b=c==null?void 0:c.noise)===null||b===void 0?void 0:b.height)>2047&&l.add(n.push("noise").push("height"),"error.min_y_plus_height",2047),((j=c==null?void 0:c.noise)===null||j===void 0?void 0:j.height)%16!==0&&l.add(n.push("noise").push("height"),"error.height_multiple",16),((h=c==null?void 0:c.noise)===null||h===void 0?void 0:h.min_y)%16!==0&&l.add(n.push("noise").push("min_y"),"error.min_y_multiple",16),c}}))),r.register("noise_slider",(0,C.ObjectNode)({target:(0,C.NumberNode)(),size:(0,C.NumberNode)({integer:!0,min:0}),offset:(0,C.NumberNode)({integer:!0})})),r.register("generator_layer",(0,C.Mod)((0,C.ObjectNode)({block:o({validator:"resource",params:{pool:"block"}}),height:(0,C.NumberNode)({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))}Pe.initNoiseSettingsSchemas=Ct;var Le={};Object.defineProperty(Le,"__esModule",{value:!0});Le.initStructureSchemas=void 0;const x=k,Mt=T,Pt=Te;function Lt(r,e){const t=x.StringNode.bind(void 0,e),o=x.Reference.bind(void 0,r);r.register("structure",(0,x.Mod)((0,x.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/structure_type"}}),biomes:(0,Mt.Tag)({resource:"$worldgen/biome"}),step:t({enum:"decoration_step"}),spawn_overrides:(0,x.MapNode)(t({enum:"mob_category"}),(0,x.ObjectNode)({bounding_box:t({enum:["piece","full"]}),spawns:Pt.MobCategorySpawnSettings})),terrain_adaptation:(0,x.Opt)(t({enum:["none","beard_thin","beard_box","bury"]})),[x.Switch]:[{push:"type"}],[x.Case]:{"minecraft:jigsaw":{start_pool:t({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:(0,x.NumberNode)({integer:!0}),start_height:o("height_provider"),start_jigsaw_name:(0,x.Opt)(t()),project_start_to_heightmap:(0,x.Opt)(t({enum:"heightmap_type"})),max_distance_from_center:(0,x.NumberNode)({integer:!0,min:1,max:128}),use_expansion_hack:(0,x.BooleanNode)()},"minecraft:mineshaft":{mineshaft_type:t({enum:["normal","mesa"]})},"minecraft:nether_fossil":{height:o("height_provider")},"minecraft:ocean_ruin":{biome_temp:t({enum:["cold","warm"]}),large_probability:(0,x.NumberNode)({min:0,max:1}),cluster_probability:(0,x.NumberNode)({min:0,max:1})},"minecraft:ruined_portal":{setups:(0,x.ListNode)((0,x.ObjectNode)({placement:t({enum:["on_land_surface","partly_buried","on_ocean_floor","in_mountain","underground","in_nether"]}),air_pocket_probability:(0,x.NumberNode)({min:0,max:1}),mossiness:(0,x.NumberNode)({min:0,max:1}),overgrown:(0,x.BooleanNode)(),vines:(0,x.BooleanNode)(),can_be_cold:(0,x.BooleanNode)(),replace_with_blackstone:(0,x.BooleanNode)(),weight:(0,x.NumberNode)({min:0})}))},"minecraft:shipwreck":{is_beached:(0,x.Opt)((0,x.BooleanNode)())}}},{context:"structure_feature"}),{default:()=>({type:"minecraft:jigsaw",step:"surface_structures",size:6})}))}Le.initStructureSchemas=Lt;var $e={};Object.defineProperty($e,"__esModule",{value:!0});$e.initStructureSetSchemas=void 0;const w=k,We=T;function $t(r,e){const t=w.StringNode.bind(void 0,e),o=w.Reference.bind(void 0,r),d=(0,w.ChoiceNode)([{type:"string",node:t({validator:"resource",params:{pool:"$worldgen/structure_set"}})},{type:"object",node:o("structure_set")}],{choiceContext:"structure_set"});r.register("structure_set",(0,w.ObjectNode)({structures:(0,w.ListNode)((0,w.ObjectNode)({structure:(0,We.Tag)({resource:"$worldgen/structure"}),weight:(0,w.NumberNode)({integer:!0,min:1})})),placement:o("structure_placement")},{context:"structure_set"})),r.register("structure_placement",(0,w.Mod)((0,w.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/structure_placement"}}),salt:(0,w.NumberNode)({integer:!0,min:0}),frequency_reduction_method:(0,w.Opt)(t({enum:["default","legacy_type_1","legacy_type_2","legacy_type_3"]})),frequency:(0,w.Opt)((0,w.NumberNode)({min:0,max:1})),exclusion_zone:(0,w.Opt)((0,w.ObjectNode)({other_set:d,chunk_count:(0,w.NumberNode)({integer:!0,min:1,max:16})})),locate_offset:(0,w.Opt)((0,w.ListNode)((0,w.NumberNode)({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3})),[w.Switch]:[{push:"type"}],[w.Case]:{"minecraft:concentric_rings":{distance:(0,w.NumberNode)({integer:!0,min:0,max:1023}),spread:(0,w.NumberNode)({integer:!0,min:0,max:1023}),count:(0,w.NumberNode)({integer:!0,min:1,max:4095}),preferred_biomes:(0,We.Tag)({resource:"$worldgen/biome"})},"minecraft:random_spread":{spread_type:(0,w.Opt)(t({enum:["linear","triangular"]})),spacing:(0,w.NumberNode)({integer:!0,min:0,max:4096}),separation:(0,w.Mod)((0,w.NumberNode)({integer:!0,min:0,max:4096}),n=>({validate:(c,l,v,_)=>(c.pop().push("spacing").get()<=l&&v.add(c,"error.separation_smaller_spacing"),n.validate(c,l,v,_))}))}}},{context:"structure_placement"}),{default:()=>({type:"minecraft:random_spread",spacing:10,separation:5,salt:Math.floor(Math.random()*2147483647)})}))}$e.initStructureSetSchemas=$t;var Be={};Object.defineProperty(Be,"__esModule",{value:!0});Be.initSurfaceRuleSchemas=void 0;const M=k;function Bt(r,e){const t=M.StringNode.bind(void 0,e),o=M.Reference.bind(void 0,r);r.register("material_rule",(0,M.Mod)((0,M.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/material_rule"}}),[M.Switch]:[{push:"type"}],[M.Case]:{"minecraft:block":{result_state:o("block_state")},"minecraft:condition":{if_true:o("material_condition"),then_run:o("material_rule")},"minecraft:sequence":{sequence:(0,M.ListNode)(o("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),r.register("material_condition",(0,M.Mod)((0,M.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/material_condition"}}),[M.Switch]:[{push:"type"}],[M.Case]:{"minecraft:biome":{biome_is:(0,M.ListNode)(t({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:t({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:(0,M.NumberNode)(),max_threshold:(0,M.NumberNode)()},"minecraft:not":{invert:o("material_condition")},"minecraft:stone_depth":{offset:(0,M.NumberNode)({integer:!0}),surface_type:t({enum:"cave_surface"}),add_surface_depth:(0,M.BooleanNode)(),secondary_depth_range:(0,M.NumberNode)({integer:!0})},"minecraft:vertical_gradient":{random_name:t(),true_at_and_below:o("vertical_anchor"),false_at_and_above:o("vertical_anchor")},"minecraft:water":{offset:(0,M.NumberNode)({integer:!0}),surface_depth_multiplier:(0,M.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,M.BooleanNode)()},"minecraft:y_above":{anchor:o("vertical_anchor"),surface_depth_multiplier:(0,M.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,M.BooleanNode)()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))}Be.initSurfaceRuleSchemas=Bt;var De={};Object.defineProperty(De,"__esModule",{value:!0});De.initTemplatePoolSchemas=void 0;const q=k,Ue=J;function Dt(r,e){const t=q.Reference.bind(void 0,r),o=q.StringNode.bind(void 0,e);r.register("template_pool",(0,q.Mod)((0,q.ObjectNode)({name:o(),fallback:o(),elements:(0,q.ListNode)(t("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"}}]})})),r.register("template_weighted_element",(0,q.Mod)((0,q.ObjectNode)({weight:(0,q.NumberNode)({integer:!0,min:1}),element:t("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),r.register("template_element",(0,q.Mod)((0,q.ObjectNode)({element_type:o({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:o({enum:["rigid","terrain_matching"]}),[q.Switch]:[{push:"element_type"}],[q.Case]:{"minecraft:feature_pool_element":{feature:o({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},"minecraft:legacy_single_pool_element":{location:o({validator:"resource",params:{pool:"$structure"}}),processors:Ue.Processors},"minecraft:list_pool_element":{elements:(0,q.ListNode)(t("template_element"))},"minecraft:single_pool_element":{location:o({validator:"resource",params:{pool:"$structure"}}),processors:Ue.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))}De.initTemplatePoolSchemas=Dt;var Fe={};Object.defineProperty(Fe,"__esModule",{value:!0});Fe.initWorldPresetSchemas=void 0;const oe=k;function Ft(r,e){const t=oe.StringNode.bind(void 0,e),o=oe.Reference.bind(void 0,r);r.register("world_preset",(0,oe.Mod)((0,oe.ObjectNode)({dimensions:(0,oe.MapNode)(t({validator:"resource",params:{pool:"$dimension",isDefinition:!0}}),o("dimension"))},{context:"world_preset"}),{default:()=>({dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",biome_source:{type:"minecraft:multi_noise",preset:"minecraft:overworld"},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",biome_source:{type:"minecraft:multi_noise",preset:"minecraft:nether"},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",biome_source:{type:"minecraft:the_end"},settings:"minecraft:end"}}}})})),r.register("flat_level_generator_preset",(0,oe.Mod)((0,oe.ObjectNode)({display:t({validator:"resource",params:{pool:"item"}}),settings:o("flat_generator_settings")}),{default:()=>({display:"minecraft:grass_block",settings:{lakes:!1,features:!1,biome:"minecraft:plains",structure_overrides:[],layers:[{height:3,block:"minecraft:dirt"},{height:1,block:"minecraft:grass_block"}]}})}))}Fe.initWorldPresetSchemas=Ft;Object.defineProperty(Se,"__esModule",{value:!0});Se.initWorldgenSchemas=void 0;const zt=Te,Tt=je,Rt=Ce,qt=Re,It=Me,At=Pe,Et=J,Wt=Le,Ut=$e,Vt=Be,Gt=De,Ht=Fe;function Kt(r,e){(0,Et.initProcessorListSchemas)(r,e),(0,qt.initDensityFunctionSchemas)(r,e),(0,zt.initBiomeSchemas)(r,e),(0,Tt.initCarverSchemas)(r,e),(0,Rt.initDecoratorSchemas)(r,e),(0,It.initFeatureSchemas)(r,e),(0,At.initNoiseSettingsSchemas)(r,e),(0,Wt.initStructureSchemas)(r,e),(0,Ut.initStructureSetSchemas)(r,e),(0,Vt.initSurfaceRuleSchemas)(r,e),(0,Gt.initTemplatePoolSchemas)(r,e),(0,Ht.initWorldPresetSchemas)(r,e)}Se.initWorldgenSchemas=Kt;var ze={};Object.defineProperty(ze,"__esModule",{value:!0});ze.initWorldSettingsSchemas=void 0;const Z=k;function Xt(r,e){const t=Z.Reference.bind(void 0,r),o=Z.StringNode.bind(void 0,e);r.register("world_settings",(0,Z.Mod)((0,Z.ObjectNode)({generate_features:(0,Z.BooleanNode)(),bonus_chest:(0,Z.BooleanNode)(),seed:(0,Z.NumberNode)({integer:!0}),dimensions:(0,Z.MapNode)(o({validator:"resource",params:{pool:"$dimension"}}),t("dimension"))},{context:"world_settings"}),{default:()=>{const d=Math.floor(Math.random()*4294967296)-2147483648;return{generate_features:!0,bonus_chest:!1,seed:d,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:overworld"},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:nether"},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:the_end",seed:d},settings:"minecraft:end"}}}}}}))}ze.initWorldSettingsSchemas=Xt;Object.defineProperty(le,"__esModule",{value:!0});le.initSchemas=void 0;const Yt=me,Zt=_e,Jt=fe,Qt=T,er=ge,tr=be,rr=Ne,or=he,ir=ye,nr=ve,ar=Oe,cr=ke,dr=we,sr=xe,lr=Se,mr=ze;function _r(r,e){(0,Qt.initCommonSchemas)(r,e),(0,Jt.initChatTypeSchemas)(r,e),(0,Yt.initAdvancementSchemas)(r,e),(0,Zt.initAssetsSchemas)(r,e),(0,er.initConditionSchemas)(r,e),(0,rr.initDimensionTypeSchemas)(r,e),(0,tr.initDimensionSchemas)(r,e),(0,or.initItemModifierSchemas)(r,e),(0,ir.initLootTableSchemas)(r,e),(0,nr.initPackMcmetaSchemas)(r,e),(0,ar.initPredicatesSchemas)(r,e),(0,cr.initRecipeSchemas)(r,e),(0,dr.initTagsSchemas)(r,e),(0,sr.initTextComponentSchemas)(r,e),(0,lr.initWorldgenSchemas)(r,e),(0,mr.initWorldSettingsSchemas)(r,e)}le.initSchemas=_r;var ur=ie&&ie.__createBinding||(Object.create?function(r,e,t,o){o===void 0&&(o=t);var d=Object.getOwnPropertyDescriptor(e,t);(!d||("get"in d?!e.__esModule:d.writable||d.configurable))&&(d={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,o,d)}:function(r,e,t,o){o===void 0&&(o=t),r[o]=e[t]}),pr=ie&&ie.__setModuleDefault||(Object.create?function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}:function(r,e){r.default=e}),fr=ie&&ie.__importStar||function(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t in r)t!=="default"&&Object.prototype.hasOwnProperty.call(r,t)&&ur(e,r,t);return pr(e,r),e};Object.defineProperty(X,"__esModule",{value:!0});var Ve=X.getSchemas=Ke=X.getCollections=He=X.lootContext=void 0;const Ge=k,gr=se,br=le;var He=X.lootContext=fr(I);function Nr(){const r=new Ge.CollectionRegistry;return(0,gr.initCollections)(r),r}var Ke=X.getCollections=Nr;function hr(r){const e=new Ge.SchemaRegistry;return(0,br.initSchemas)(e,r),e}Ve=X.getSchemas=hr;var kr=et({__proto__:null,get getSchemas(){return Ve},get getCollections(){return Ke},get lootContext(){return He},default:X},[X]);export{kr as i}; +//# sourceMappingURL=index.15314e06.js.map diff --git a/assets/index.10fe8e42.js.map b/assets/index.15314e06.js.map similarity index 99% rename from assets/index.10fe8e42.js.map rename to assets/index.15314e06.js.map index be064953..389fcbb4 100644 --- a/assets/index.10fe8e42.js.map +++ b/assets/index.15314e06.js.map @@ -1 +1 @@ -{"version":3,"file":"index.10fe8e42.js","sources":["../../node_modules/@mcschema/java-1.19/lib/Collections.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.19/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.19/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.19/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.19/lib/schemas/ChatType.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.19/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.19/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.19/lib/LootContext.js","../../node_modules/@mcschema/java-1.19/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.19/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.19/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/DensityFunction.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Structure.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/StructureSet.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/SurfaceRule.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/WorldPreset.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.19/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.19/lib/schemas/index.js","../../node_modules/@mcschema/java-1.19/lib/index.js"],"sourcesContent":["\"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:allay_drop_item_on_block',\r\n 'minecraft:avoid_vibration',\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:kill_mob_near_sculk_catalyst',\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:thrown_item_picked_up_by_player',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:using_item',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'killer',\r\n 'direct_killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mountain',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end',\r\n 'underground'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('decoration_step', [\r\n 'raw_generation',\r\n 'lakes',\r\n 'local_modifications',\r\n 'underground_structures',\r\n 'surface_structures',\r\n 'strongholds',\r\n 'underground_ores',\r\n 'underground_decoration',\r\n 'fluid_springs',\r\n 'vegetal_decoration',\r\n 'top_layer_modification'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n collections.register('banner_pattern', [\r\n 'base',\r\n 'square_bottom_left',\r\n 'square_bottom_right',\r\n 'square_top_left',\r\n 'square_top_right',\r\n 'stripe_bottom',\r\n 'stripe_top',\r\n 'stripe_left',\r\n 'stripe_right',\r\n 'stripe_center',\r\n 'stripe_middle',\r\n 'stripe_downright',\r\n 'stripe_downleft',\r\n 'small_stripes',\r\n 'cross',\r\n 'straight_cross',\r\n 'triangle_bottom',\r\n 'triangle_top',\r\n 'triangles_bottom',\r\n 'triangles_top',\r\n 'diagonal_left',\r\n 'diagonal_up_right',\r\n 'diagonal_up_left',\r\n 'diagonal_right',\r\n 'circle',\r\n 'rhombus',\r\n 'half_vertical',\r\n 'half_horizontal',\r\n 'half_vertical_right',\r\n 'half_horizontal_bottom',\r\n 'border',\r\n 'curly_border',\r\n 'gradient',\r\n 'gradient_up',\r\n 'bricks',\r\n 'globe',\r\n 'creeper',\r\n 'skull',\r\n 'flower',\r\n 'mojang',\r\n 'piglin'\r\n ]);\r\n collections.register('dye_color', [\r\n 'white',\r\n 'orange',\r\n 'magenta',\r\n 'light_blue',\r\n 'yellow',\r\n 'lime',\r\n 'pink',\r\n 'gray',\r\n 'light_gray',\r\n 'cyan',\r\n 'purple',\r\n 'blue',\r\n 'brown',\r\n 'green',\r\n 'red',\r\n 'black'\r\n ]);\r\n collections.register('cave_surface', [\r\n 'floor',\r\n 'ceiling'\r\n ]);\r\n collections.register('direction', [\r\n 'down',\r\n 'up',\r\n 'north',\r\n 'east',\r\n 'south',\r\n 'west'\r\n ]);\r\n collections.register('axis', [\r\n 'x',\r\n 'y',\r\n 'z'\r\n ]);\r\n collections.register('display_position', [\r\n 'firstperson_righthand',\r\n 'firstperson_lefthand',\r\n 'thirdperson_righthand',\r\n 'thirdperson_lefthand',\r\n 'gui',\r\n 'head',\r\n 'ground',\r\n 'fixed'\r\n ]);\r\n collections.register('gui_light', [\r\n 'front',\r\n 'side'\r\n ]);\r\n collections.register('item_model_predicates', [\r\n 'angle',\r\n 'blocking',\r\n 'broken',\r\n 'cast',\r\n 'charged',\r\n 'cooldown',\r\n 'custom_model_data',\r\n 'damage',\r\n 'damaged',\r\n 'firework',\r\n 'lefthanded',\r\n 'pull',\r\n 'pulling',\r\n 'throwing',\r\n 'time'\r\n ]);\r\n collections.register('mob_category', [\r\n 'monster',\r\n 'creature',\r\n 'ambient',\r\n 'axolotls',\r\n 'underground_water_creature',\r\n 'water_creature',\r\n 'water_ambient',\r\n 'misc',\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n player: (0, 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:allay_drop_item_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:bee_nest_destroyed': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, 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: (0, 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: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: (0, core_1.Opt)(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:fall_from_height': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:kill_mob_near_sculk_catalyst': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: Reference('int_bounds'),\r\n victims: (0, core_1.Opt)((0, core_1.ListNode)(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: (0, 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:nether_travel': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: (0, 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: (0, 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: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, 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: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:thrown_item_picked_up_by_player': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: (0, core_1.Opt)(Reference('float_bounds'))\r\n },\r\n 'minecraft:used_totem': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, core_1.ObjectNode)({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, core_1.NumberNode)()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, core_1.MapNode)(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, core_1.Opt)(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, core_1.MapNode)(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n OR: (0, core_1.ListNode)(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, Model_1.initModelSchemas)(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initChatTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initChatTypeSchemas(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('chat_type', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n chat: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n decoration: (0, core_1.Opt)(Reference('text_decoration')),\r\n })),\r\n overlay: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n decoration: (0, core_1.Opt)(Reference('text_decoration')),\r\n })),\r\n narration: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n decoration: (0, core_1.Opt)(Reference('text_decoration')),\r\n priority: StringNode({ enum: ['chat', 'system'] }),\r\n })),\r\n }, { context: 'chat_type' }), {\r\n default: () => ({\r\n chat: {\r\n decoration: {\r\n parameters: ['sender', 'content'],\r\n translation_key: 'chat.type.text',\r\n style: {},\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('text_decoration', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n translation_key: StringNode(),\r\n parameters: (0, core_1.ListNode)(StringNode({ enum: ['sender', 'team_name', 'content'] })),\r\n style: Reference('text_style')\r\n }, { context: 'text_decoration' }), {\r\n default: () => ({\r\n translation_key: 'chat.type.text',\r\n parameters: ['sender', 'content'],\r\n style: {},\r\n })\r\n }));\r\n}\r\nexports.initChatTypeSchemas = initChatTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.Tag = exports.InclusiveRange = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: '#minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nexports.DefaultNoiseSettings = {\r\n sea_level: 63,\r\n ore_veins_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n legacy_random_source: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => (0, core_1.Opt)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer })),\r\n max: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)(Reference('number_provider')),\r\n max: (0, core_1.Opt)(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: (0, 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] = (0, 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 = (0, core_1.ObjectNode)({\r\n type: (0, core_1.Mod)((0, 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 (0, 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: (0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, 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: (0, core_1.NumberNode)(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_exclusive: (0, core_1.NumberNode)(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n plateau: (0, core_1.NumberNode)()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', (0, 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: (0, core_1.NumberNode)({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n });\r\n schemas.register('int_provider', (0, exports.IntProvider)());\r\n schemas.register('vertical_anchor', (0, 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: (0, core_1.ObjectNode)({\r\n [t]: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n }));\r\n exports.InclusiveRange = (config) => (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_inclusive: (0, core_1.NumberNode)(config)\r\n }, { context: 'range' });\r\n schemas.register('noise_parameters', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n firstOctave: (0, core_1.NumberNode)({ integer: true }),\r\n amplitudes: (0, core_1.ListNode)((0, core_1.NumberNode)())\r\n }, { context: 'noise_parameters' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n exports.Tag = (config) => (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: config.resource, allowTag: true } }),\r\n change: (v) => {\r\n if (Array.isArray(v) && typeof v[0] === 'string' && !v[0].startsWith('#')) {\r\n return v[0];\r\n }\r\n return undefined;\r\n }\r\n },\r\n {\r\n type: 'list',\r\n node: (0, core_1.ListNode)(config.inlineSchema\r\n ? (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: config.resource } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference(config.inlineSchema)\r\n }\r\n ], { choiceContext: 'tag.list' })\r\n : StringNode({ validator: 'resource', params: { pool: config.resource } })),\r\n change: (v) => {\r\n if (typeof v === 'string' && !v.startsWith('#')) {\r\n return [v];\r\n }\r\n return [];\r\n }\r\n },\r\n ], { choiceContext: 'tag' });\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)((0, exports.Tag)({ resource: '$worldgen/structure' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_contents': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_instrument': {\r\n options: StringNode({ validator: 'resource', params: { pool: 'instrument', requireTag: true } })\r\n },\r\n 'minecraft:set_loot_table': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, 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) => (0, 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) => (0, core_1.ObjectOrPreset)(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n sea_level: 32,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\r\n default_block: {\r\n Name: 'minecraft:netherrack'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:lava'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:end': {\r\n sea_level: 0,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\r\n default_block: {\r\n Name: 'minecraft:end_stone'\r\n },\r\n default_fluid: {\r\n Name: 'minecraft:air'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n sea_level: 63,\r\n ore_veins_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n legacy_random_source: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n },\r\n 'minecraft:caves': {\r\n sea_level: 32,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n sea_level: 0,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, Common_1.DimensionTypePresets)(Reference('dimension_type')),\r\n generator: (0, 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 settings: (0, Common_1.NoiseSettingsPresets)(Reference('noise_settings')),\r\n biome_source: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:nether'] } })),\r\n biomes: (0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 62 })),\r\n biomes: (0, Common_1.Tag)({ resource: '$worldgen/biome' })\r\n },\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: Reference('flat_generator_settings')\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n schemas.register('flat_generator_settings', (0, core_1.ObjectNode)({\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n features: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n layers: (0, core_1.ListNode)(Reference('generator_layer')),\r\n structure_overrides: (0, Common_1.Tag)({ resource: '$worldgen/structure_set', inlineSchema: 'structure_set' })\r\n }));\r\n const ClimateParameter = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: -2, max: 2 }), { minLength: 2, maxLength: 2 }),\r\n change: (v) => [v !== null && v !== void 0 ? v : 0, v !== null && v !== void 0 ? v : 0]\r\n }\r\n ]);\r\n schemas.register('parameter_point', (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }));\r\n schemas.register('generator_biome', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: Reference('parameter_point'),\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n temperature: 0,\r\n humidity: 0,\r\n continentalness: 0,\r\n erosion: 0,\r\n weirdness: 0,\r\n depth: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n ultrawarm: (0, core_1.BooleanNode)(),\r\n natural: (0, core_1.BooleanNode)(),\r\n piglin_safe: (0, core_1.BooleanNode)(),\r\n respawn_anchor_works: (0, core_1.BooleanNode)(),\r\n bed_works: (0, core_1.BooleanNode)(),\r\n has_raids: (0, core_1.BooleanNode)(),\r\n has_skylight: (0, core_1.BooleanNode)(),\r\n has_ceiling: (0, core_1.BooleanNode)(),\r\n coordinate_scale: (0, core_1.NumberNode)({ min: 0.00001, max: 30000000 }),\r\n ambient_light: (0, core_1.NumberNode)(),\r\n fixed_time: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n logical_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4064 }),\r\n effects: (0, core_1.Opt)(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2032, max: 2031 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 16, max: 4064 })\r\n }, { context: 'dimension_type' }), node => ({\r\n default: () => Common_1.DefaultDimensionType,\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) + (value === null || value === void 0 ? void 0 : value.height) > 2032) {\r\n errors.add(path.push('height'), 'error.min_y_plus_height', 2032);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.logical_height) > (value === null || value === void 0 ? void 0 : value.height)) {\r\n errors.add(path.push('logical_height'), 'error.logical_height');\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.height) % 16 !== 0) {\r\n errors.add(path.push('height'), 'error.height_multiple', 16);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) % 16 !== 0) {\r\n errors.add(path.push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initItemModifierSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initItemModifierSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('item_modifier', (0, core_1.ObjectOrList)(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: (0, core_1.Opt)((0, core_1.ListNode)(Reference('condition')))\r\n };\r\n schemas.register('function', (0, core_1.Mod)((0, 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]: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: (0, core_1.Opt)(Reference('number_provider')),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.StringOrList)(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst CURRENT_PACK_FORMAT = 10;\r\nfunction initPackMcmetaSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('pack_mcmeta', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: CURRENT_PACK_FORMAT, max: CURRENT_PACK_FORMAT }), {\r\n default: () => CURRENT_PACK_FORMAT,\r\n canUpdate: (_p, v) => v !== CURRENT_PACK_FORMAT,\r\n update: () => [{ name: 'pack_format', params: [CURRENT_PACK_FORMAT], newValue: CURRENT_PACK_FORMAT }]\r\n }),\r\n description: Reference('text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n })\r\n }),\r\n filter: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n block: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n namespace: (0, core_1.Opt)(StringNode({ validator: 'regex_pattern' })),\r\n path: (0, core_1.Opt)(StringNode({ validator: 'regex_pattern' })),\r\n }))\r\n }))\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, 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', (0, core_1.ObjectNode)({\r\n blocks: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)({\r\n position: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n structure: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/structure' } })),\r\n dimension: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, 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('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n type_specific: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n type: StringNode({ enum: ['any', 'cat', 'fishing_hook', 'frog', 'lightning', 'player', 'slime'] }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'cat': {\r\n variant: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'cat_variant' } }))\r\n },\r\n 'fishing_hook': {\r\n in_open_water: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'frog': {\r\n variant: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'frog_variant' } }))\r\n },\r\n 'lightning': {\r\n blocks_set_on_fire: (0, core_1.Opt)(Reference('int_bounds')),\r\n entity_struck: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'player': {\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n {\r\n type: 'boolean',\r\n node: (0, core_1.BooleanNode)(),\r\n change: () => true\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate'))),\r\n looking_at: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'slime': {\r\n size: Reference('int_bounds')\r\n },\r\n }\r\n })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n stepping_on: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: (0, core_1.Opt)(Reference('entity_predicate')),\r\n passenger: (0, core_1.Opt)(Reference('entity_predicate')),\r\n targeted_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, core_1.BooleanNode)()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('game_event_tag', TagBase('game_event'));\r\n schemas.register('item_tag', TagBase('item'));\r\n schemas.register('advancement_tag', TagBase('$advancement'));\r\n schemas.register('dimension_tag', TagBase('$dimension'));\r\n schemas.register('dimension_type_tag', TagBase('$dimension_type'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_modifier_tag', TagBase('$item_modifier'));\r\n schemas.register('loot_table_tag', TagBase('$loot_table'));\r\n schemas.register('predicate_tag', TagBase('$predicate'));\r\n schemas.register('recipe_tag', TagBase('$recipe'));\r\n schemas.register('structure_tag', TagBase('$structure'));\r\n schemas.register('biome_tag', TagBase('$worldgen/biome'));\r\n schemas.register('configured_carver_tag', TagBase('$worldgen/configured_carver'));\r\n schemas.register('configured_feature_tag', TagBase('$worldgen/configured_feature'));\r\n schemas.register('structure_tag', TagBase('$worldgen/structure'));\r\n schemas.register('configured_surface_builder_tag', TagBase('$worldgen/configured_surface_builder'));\r\n schemas.register('density_function_tag', TagBase('$worldgen/density_function'));\r\n schemas.register('flat_level_generator_preset_tag', TagBase('$worldgen/flat_level_generator_preset'));\r\n schemas.register('noise_tag', TagBase('$worldgen/noise'));\r\n schemas.register('noise_settings_tag', TagBase('$worldgen/noise_settings'));\r\n schemas.register('placed_feature_tag', TagBase('$worldgen/placed_feature'));\r\n schemas.register('processor_list_tag', TagBase('$worldgen/processor_list'));\r\n schemas.register('structure_set_tag', TagBase('$worldgen/structure_set'));\r\n schemas.register('template_pool_tag', TagBase('$worldgen/template_pool'));\r\n schemas.register('world_preset_tag', TagBase('$worldgen/world_preset'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', (0, core_1.Mod)((0, 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: (0, 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: (0, 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 StyleFields = {\r\n color: (0, core_1.Opt)(StringNode()) /* TODO */,\r\n font: (0, core_1.Opt)(StringNode()),\r\n bold: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n };\r\n schemas.register('text_style', (0, core_1.ObjectNode)({\r\n ...StyleFields\r\n }, { context: 'text_component_object' }));\r\n const CommonFields = {\r\n ...StyleFields,\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component')),\r\n contents: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tag: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n })),\r\n contents: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n separator: (0, 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', (0, core_1.Mod)((0, core_1.ListNode)(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = exports.MobCategorySpawnSettings = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.MobCategorySpawnSettings = (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n minCount: (0, core_1.NumberNode)({ integer: true }),\r\n maxCount: (0, core_1.NumberNode)({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n });\r\n schemas.register('biome', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n temperature: (0, core_1.NumberNode)(),\r\n downfall: (0, core_1.NumberNode)(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'frozen'] })),\r\n creature_spawn_probability: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n effects: (0, core_1.ObjectNode)({\r\n sky_color: (0, core_1.NumberNode)({ color: true }),\r\n fog_color: (0, core_1.NumberNode)({ color: true }),\r\n water_color: (0, core_1.NumberNode)({ color: true }),\r\n water_fog_color: (0, core_1.NumberNode)({ color: true }),\r\n grass_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n foliage_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n grass_color_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: (0, core_1.Opt)(StringNode()),\r\n mood_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_delay: (0, core_1.NumberNode)({ integer: true }),\r\n block_search_extent: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)()\r\n })),\r\n additions_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n music: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n min_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n max_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n replace_current_music: (0, core_1.BooleanNode)()\r\n })),\r\n particle: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n options: (0, core_1.ObjectNode)({\r\n type: StringNode()\r\n }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }))\r\n }),\r\n spawners: (0, core_1.MapNode)(StringNode({ enum: 'mob_category' }), exports.MobCategorySpawnSettings),\r\n spawn_costs: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n energy_budget: (0, core_1.NumberNode)(),\r\n charge: (0, 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: (0, core_1.MapNode)(StringNode({ enum: ['air', 'liquid'] }), (0, core_1.Mod)((0, Common_1.Tag)({ resource: '$worldgen/configured_carver', inlineSchema: 'configured_carver' }), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: (0, core_1.ListNode)((0, core_1.Mod)((0, Common_1.Tag)({ resource: '$worldgen/placed_feature', inlineSchema: 'placed_feature' }), { category: () => 'predicate' }), { maxLength: 11 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: (0, Common_1.FloatProvider)(),\r\n shape: (0, core_1.ObjectNode)({\r\n distance_factor: (0, Common_1.FloatProvider)(),\r\n thickness: (0, Common_1.FloatProvider)(),\r\n width_smoothness: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n horizontal_radius_factor: (0, Common_1.FloatProvider)(),\r\n vertical_radius_default_factor: (0, core_1.NumberNode)(),\r\n vertical_radius_center_factor: (0, core_1.NumberNode)()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n vertical_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n floor_level: (0, Common_1.FloatProvider)({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: (0, core_1.ObjectNode)({\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: (0, Common_1.FloatProvider)(),\r\n lava_level: Reference('vertical_anchor'),\r\n replaceable: (0, Common_1.Tag)({ resource: 'block' }),\r\n debug_settings: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n debug_mode: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n air_state: (0, core_1.Opt)(Reference('block_state')),\r\n water_state: (0, core_1.Opt)(Reference('block_state')),\r\n lava_state: (0, core_1.Opt)(Reference('block_state')),\r\n barrier_state: (0, core_1.Opt)(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('decorator', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/placement_modifier_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_predicate_filter': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:rarity_filter': {\r\n chance: (0, core_1.NumberNode)({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:count_on_every_layer': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:noise_threshold_count': {\r\n noise_level: (0, core_1.NumberNode)(),\r\n below_noise: (0, core_1.NumberNode)({ integer: true }),\r\n above_noise: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:noise_based_count': {\r\n noise_to_count_ratio: (0, core_1.NumberNode)({ integer: true }),\r\n noise_factor: (0, core_1.NumberNode)(),\r\n noise_offset: (0, core_1.Opt)((0, core_1.NumberNode)())\r\n },\r\n 'minecraft:environment_scan': {\r\n direction_of_search: StringNode({ enum: ['up', 'down'] }),\r\n max_steps: (0, core_1.NumberNode)({ integer: true, min: 1, max: 32 }),\r\n target_condition: Reference('block_predicate_worldgen'),\r\n allowed_search_condition: (0, core_1.Opt)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:height_range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:random_offset': {\r\n xz_spread: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n y_spread: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n },\r\n 'minecraft:surface_relative_threshold_filter': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n min_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:surface_water_depth_filter': {\r\n max_water_depth: (0, core_1.NumberNode)({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDensityFunctionSchemas = exports.DensityFunction = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initDensityFunctionSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n exports.DensityFunction = (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)(),\r\n change: () => 0\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/density_function' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('density_function'),\r\n change: () => ({})\r\n }\r\n ], { choiceContext: 'density_function' }), {\r\n default: () => 0\r\n });\r\n const NoiseParameters = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('noise_parameters')\r\n }\r\n ], { choiceContext: 'noise_parameters' });\r\n const NoiseRange = (0, core_1.NumberNode)({ min: -1000000, max: 1000000 });\r\n const YRange = (0, core_1.NumberNode)({ integer: true, min: -2032 * 2, max: 2031 * 2 });\r\n schemas.register('density_function', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/density_function_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:abs': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:add': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:blend_density': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_2d': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_all_in_cell': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_once': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:clamp': {\r\n input: exports.DensityFunction,\r\n min: NoiseRange,\r\n max: NoiseRange,\r\n },\r\n 'minecraft:constant': {\r\n argument: (0, core_1.NumberNode)(),\r\n },\r\n 'minecraft:cube': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:flat_cache': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:half_negative': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:interpolated': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:max': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:min': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:mul': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:noise': {\r\n noise: NoiseParameters,\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n },\r\n 'minecraft:old_blended_noise': {\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n xz_factor: (0, core_1.NumberNode)(),\r\n y_factor: (0, core_1.NumberNode)(),\r\n smear_scale_multiplier: (0, core_1.NumberNode)({ min: 1, max: 8 }),\r\n },\r\n 'minecraft:quarter_negative': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:range_choice': {\r\n input: exports.DensityFunction,\r\n min_inclusive: NoiseRange,\r\n max_exclusive: NoiseRange,\r\n when_in_range: exports.DensityFunction,\r\n when_out_of_range: exports.DensityFunction,\r\n },\r\n 'minecraft:shift': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shift_a': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shift_b': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shifted_noise': {\r\n noise: NoiseParameters,\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n shift_x: exports.DensityFunction,\r\n shift_y: exports.DensityFunction,\r\n shift_z: exports.DensityFunction,\r\n },\r\n 'minecraft:slide': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:spline': {\r\n spline: Reference('cubic_spline'),\r\n },\r\n 'minecraft:square': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:squeeze': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:weird_scaled_sampler': {\r\n rarity_value_mapper: StringNode({ enum: ['type_1', 'type_2'] }),\r\n noise: NoiseParameters,\r\n input: exports.DensityFunction,\r\n },\r\n 'minecraft:y_clamped_gradient': {\r\n from_y: YRange,\r\n to_y: YRange,\r\n from_value: NoiseRange,\r\n to_value: NoiseRange,\r\n },\r\n }\r\n }, { context: 'density_function', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:noise',\r\n noise: 'minecraft:cave_entrance',\r\n xz_scale: 0.75,\r\n y_scale: 0.5\r\n })\r\n }));\r\n schemas.register('cubic_spline', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)()\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n coordinate: exports.DensityFunction,\r\n points: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n location: (0, core_1.NumberNode)(),\r\n derivative: (0, core_1.NumberNode)(),\r\n value: Reference('cubic_spline')\r\n }))\r\n }, { category: 'function' })\r\n }\r\n ], { context: 'terrain_spline', choiceContext: 'terrain_spline' }), {\r\n default: () => 0\r\n }));\r\n}\r\nexports.initDensityFunctionSchemas = initDensityFunctionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\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 = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n processors: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n rottable_blocks: (0, core_1.Opt)((0, Common_1.Tag)({ resource: 'block' }))\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:protected_blocks': {\r\n value: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } })\r\n },\r\n 'minecraft:rule': {\r\n rules: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n position_predicate: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n max_dist: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n min_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n max_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', (0, 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', (0, 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: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const ConfiguredFeature = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const PlacedFeature = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('placed_feature')\r\n }\r\n ], { choiceContext: 'placed_feature' });\r\n const RandomPatchConfig = {\r\n tries: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 })),\r\n xz_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n y_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n feature: PlacedFeature,\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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n };\r\n const TargetBlockState = (0, core_1.ObjectNode)({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n };\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: 'cave_surface' }),\r\n depth: (0, Common_1.IntProvider)({ min: 1, max: 128 }),\r\n vertical_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n extra_edge_column_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n vegetation_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n xz_radius: (0, Common_1.IntProvider)(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: PlacedFeature\r\n };\r\n schemas.register('configured_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: (0, core_1.ObjectNode)({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: (0, Common_1.IntProvider)({ min: 0, max: 3 }),\r\n height: (0, Common_1.IntProvider)({ min: 1, max: 10 })\r\n },\r\n 'minecraft:block_column': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allowed_placement: Reference('block_predicate_worldgen'),\r\n prioritize_tip: (0, core_1.BooleanNode)(),\r\n layers: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n height: (0, Common_1.IntProvider)({ min: 0 }),\r\n provider: Reference('block_state_provider')\r\n }))\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n rim_size: (0, Common_1.IntProvider)({ min: 0, max: 16 })\r\n },\r\n 'minecraft:disk': {\r\n state_provider: Reference('rule_based_block_state_provider'),\r\n target: Reference('block_predicate_worldgen'),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 8 }),\r\n half_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4 }),\r\n },\r\n 'minecraft:dripstone_cluster': {\r\n floor_to_ceiling_search_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 512 }),\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n height_deviation: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n density: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n wetness: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: (0, core_1.BooleanNode)(),\r\n exit: (0, core_1.Opt)(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n crystal_beam_target: (0, core_1.Opt)(Reference('block_pos')),\r\n spikes: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n centerX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n centerZ: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n guarded: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: (0, 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: (0, 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: (0, core_1.ListNode)(Reference('block_state')),\r\n cannot_replace: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n invalid_blocks: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } })\r\n }),\r\n layers: (0, core_1.ObjectNode)({\r\n filling: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n inner_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n middle_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n outer_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n }),\r\n crack: (0, core_1.ObjectNode)({\r\n generate_crack_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n base_crack_size: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 5 })),\r\n crack_point_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 10 })),\r\n }),\r\n noise_multiplier: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_potential_placements_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n outer_wall_distance: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n distribution_points: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n point_offset: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 0, max: 10 })),\r\n min_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n invalid_blocks_threshold: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:multiface_growth': {\r\n search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n can_place_on_floor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_ceiling: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_wall: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_be_placed_on: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n fluid: Reference('block_state_provider'),\r\n barrier: Reference('block_state_provider')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1, max: 512 })),\r\n column_radius: (0, Common_1.IntProvider)({ min: 0, max: 60 }),\r\n height_scale: (0, Common_1.FloatProvider)({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n stalactite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n wind_speed: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n min_radius_for_wind: (0, core_1.NumberNode)({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: (0, core_1.NumberNode)({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider'),\r\n spread_width: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 })\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 12 })\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:pointed_dripstone': {\r\n chance_of_taller_dripstone: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_directional_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius2: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius3: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n },\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: PlacedFeature,\r\n feature_true: PlacedFeature\r\n },\r\n 'minecraft:random_selector': {\r\n features: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n feature: PlacedFeature\r\n })),\r\n default: PlacedFeature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n allowed_tree_position: Reference('block_predicate_worldgen'),\r\n feature: PlacedFeature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sculk_patch': {\r\n charge_count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 32 }),\r\n amount_per_charge: (0, core_1.NumberNode)({ integer: true, min: 1, max: 500 }),\r\n spread_attempts: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n growth_rounds: (0, core_1.NumberNode)({ integer: true, min: 0, max: 8 }),\r\n spread_rounds: (0, core_1.NumberNode)({ integer: true, min: 0, max: 8 }),\r\n extra_rare_growths: (0, Common_1.IntProvider)(),\r\n catalyst_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n },\r\n 'minecraft:sea_pickle': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: (0, 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: (0, Common_1.Tag)({ resource: '$worldgen/placed_feature', inlineSchema: 'placed_feature' }),\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: (0, core_1.NumberNode)({ integer: true }),\r\n hole_count: (0, core_1.NumberNode)({ integer: true }),\r\n requires_block_below: (0, core_1.BooleanNode)(),\r\n valid_blocks: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n force_dirt: (0, core_1.Opt)((0, 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 root_placer: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/root_placer_type' } }),\r\n root_provider: Reference('block_state_provider'),\r\n trunk_offset_y: (0, Common_1.IntProvider)(),\r\n above_root_placement: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n above_root_provider: Reference('block_state_provider'),\r\n above_root_placement_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mangrove_root_placer': {\r\n mangrove_root_placement: (0, core_1.ObjectNode)({\r\n max_root_width: (0, core_1.NumberNode)({ integer: true, min: 1, max: 12 }),\r\n max_root_length: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n random_skew_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n can_grow_through: (0, Common_1.Tag)({ resource: 'block' }),\r\n muddy_roots_in: (0, Common_1.Tag)({ resource: 'block' }),\r\n muddy_roots_provider: Reference('block_state_provider'),\r\n })\r\n }\r\n }\r\n }, { context: 'root_placer' })),\r\n trunk_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: (0, 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: (0, Common_1.IntProvider)({ min: 1, max: 64 }),\r\n min_height_for_leaves: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:upwards_branching_trunk_placer': {\r\n extra_branch_steps: (0, Common_1.IntProvider)({ min: 1 }),\r\n extra_branch_length: (0, Common_1.IntProvider)({ min: 0 }),\r\n place_branch_per_log_probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n can_grow_through: (0, Common_1.Tag)({ resource: 'block' })\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n offset: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: (0, Common_1.IntProvider)({ min: 1, max: 512 }),\r\n leaf_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: (0, core_1.ListNode)((0, 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:attached_to_leaves': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n exclusion_radius_xz: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n exclusion_radius_y: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n required_empty_blocks: (0, core_1.NumberNode)({ integer: true, min: 1, max: 16 }),\r\n block_provider: Reference('block_state_provider'),\r\n directions: (0, core_1.ListNode)(StringNode({ enum: 'direction' }))\r\n },\r\n 'minecraft:beehive': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:leave_vine': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:twisting_vines': {\r\n spread_width: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n max_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: (0, core_1.NumberNode)({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:tree',\r\n config: {\r\n minimum_size: {\r\n type: 'minecraft:two_layers_feature_size'\r\n },\r\n trunk_placer: {\r\n type: 'minecraft:straight_trunk_placer',\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n type: 'minecraft:blob_foliage_placer',\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('placed_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n feature: ConfiguredFeature,\r\n placement: (0, core_1.ListNode)(Reference('decorator'))\r\n }, { context: 'placed_feature' }), {\r\n default: () => ({\r\n feature: 'minecraft:oak',\r\n placement: [\r\n {\r\n type: 'minecraft:count',\r\n count: 4\r\n },\r\n {\r\n type: 'minecraft:in_square'\r\n },\r\n {\r\n type: 'minecraft:heightmap',\r\n heightmap: 'OCEAN_FLOOR'\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('feature_size', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 81 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n upper_limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n middle_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n noise: Reference('noise_parameters'),\r\n scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 })\r\n };\r\n schemas.register('block_state_provider', (0, core_1.Mod)((0, 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: (0, Common_1.InclusiveRange)({ integer: true, min: 1, max: 64 }),\r\n slow_noise: Reference('noise_parameters'),\r\n slow_scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 }),\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_threshold_provider': {\r\n ...NoiseProvider,\r\n threshold: (0, core_1.NumberNode)({ min: -1, max: 1 }),\r\n high_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n default_state: Reference('block_state'),\r\n low_states: (0, core_1.ListNode)(Reference('block_state')),\r\n high_states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_provider': {\r\n ...NoiseProvider,\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: (0, 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: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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('rule_based_block_state_provider', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n fallback: Reference('block_state_provider'),\r\n rules: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n if_true: Reference('block_predicate_worldgen'),\r\n then: Reference('block_state_provider')\r\n }))\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n fallback: {\r\n type: 'minecraft:simple_state_provider'\r\n }\r\n })\r\n }));\r\n const Offset = {\r\n offset: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n };\r\n schemas.register('block_predicate_worldgen', (0, core_1.Mod)((0, 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: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:any_of': {\r\n predicates: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:has_sturdy_face': {\r\n ...Offset,\r\n direction: StringNode({ enum: 'direction' })\r\n },\r\n 'minecraft:inside_world_bounds': {\r\n ...Offset,\r\n },\r\n 'minecraft:matching_block_tag': {\r\n ...Offset,\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:matching_blocks': {\r\n ...Offset,\r\n blocks: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:matching_fluids': {\r\n ...Offset,\r\n fluids: (0, Common_1.Tag)({ resource: 'fluid' })\r\n },\r\n 'minecraft:not': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:would_survive': {\r\n ...Offset,\r\n state: Reference('block_state')\r\n }\r\n }\r\n }, { context: 'block_predicate' }), {\r\n default: () => ({\r\n type: 'minecraft:true'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nconst DensityFunction_1 = require(\"./DensityFunction\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n sea_level: (0, core_1.NumberNode)({ integer: true }),\r\n disable_mob_generation: (0, core_1.BooleanNode)(),\r\n aquifers_enabled: (0, core_1.BooleanNode)(),\r\n ore_veins_enabled: (0, core_1.BooleanNode)(),\r\n legacy_random_source: (0, core_1.BooleanNode)(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: (0, core_1.ObjectNode)({\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n size_horizontal: (0, core_1.NumberNode)({ integer: true }),\r\n size_vertical: (0, core_1.NumberNode)({ integer: true }),\r\n }),\r\n noise_router: (0, core_1.ObjectNode)({\r\n barrier: DensityFunction_1.DensityFunction,\r\n fluid_level_floodedness: DensityFunction_1.DensityFunction,\r\n fluid_level_spread: DensityFunction_1.DensityFunction,\r\n lava: DensityFunction_1.DensityFunction,\r\n temperature: DensityFunction_1.DensityFunction,\r\n vegetation: DensityFunction_1.DensityFunction,\r\n continents: DensityFunction_1.DensityFunction,\r\n erosion: DensityFunction_1.DensityFunction,\r\n depth: DensityFunction_1.DensityFunction,\r\n ridges: DensityFunction_1.DensityFunction,\r\n initial_density_without_jaggedness: DensityFunction_1.DensityFunction,\r\n final_density: DensityFunction_1.DensityFunction,\r\n vein_toggle: DensityFunction_1.DensityFunction,\r\n vein_ridged: DensityFunction_1.DensityFunction,\r\n vein_gap: DensityFunction_1.DensityFunction,\r\n }),\r\n spawn_target: (0, core_1.ListNode)(Reference('parameter_point')),\r\n surface_rule: Reference('material_rule'),\r\n }, { context: 'noise_settings' }), node => ({\r\n default: () => Common_1.DefaultNoiseSettings,\r\n validate: (path, value, errors, options) => {\r\n var _a, _b, _c, _d;\r\n value = node.validate(path, value, errors, options);\r\n if (((_a = value === null || value === void 0 ? void 0 : value.noise) === null || _a === void 0 ? void 0 : _a.min_y) + ((_b = value === null || value === void 0 ? void 0 : value.noise) === null || _b === void 0 ? void 0 : _b.height) > 2047) {\r\n errors.add(path.push('noise').push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if (((_c = value === null || value === void 0 ? void 0 : value.noise) === null || _c === void 0 ? void 0 : _c.height) % 16 !== 0) {\r\n errors.add(path.push('noise').push('height'), 'error.height_multiple', 16);\r\n }\r\n if (((_d = value === null || value === void 0 ? void 0 : value.noise) === null || _d === void 0 ? void 0 : _d.min_y) % 16 !== 0) {\r\n errors.add(path.push('noise').push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n schemas.register('noise_slider', (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)(),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n }));\r\n schemas.register('generator_layer', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nconst Biome_1 = require(\"./Biome\");\r\nfunction initStructureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('structure', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_type' } }),\r\n biomes: (0, Common_1.Tag)({ resource: '$worldgen/biome' }),\r\n step: StringNode({ enum: 'decoration_step' }),\r\n spawn_overrides: (0, core_1.MapNode)(StringNode({ enum: 'mob_category' }), (0, core_1.ObjectNode)({\r\n bounding_box: StringNode({ enum: ['piece', 'full'] }),\r\n spawns: Biome_1.MobCategorySpawnSettings,\r\n })),\r\n terrain_adaptation: (0, core_1.Opt)(StringNode({ enum: ['none', 'beard_thin', 'beard_box', 'bury'] })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:jigsaw': {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: (0, core_1.NumberNode)({ integer: true }),\r\n start_height: Reference('height_provider'),\r\n start_jigsaw_name: (0, core_1.Opt)(StringNode()),\r\n project_start_to_heightmap: (0, core_1.Opt)(StringNode({ enum: 'heightmap_type' })),\r\n max_distance_from_center: (0, core_1.NumberNode)({ integer: true, min: 1, max: 128 }),\r\n use_expansion_hack: (0, core_1.BooleanNode)(),\r\n },\r\n 'minecraft:mineshaft': {\r\n mineshaft_type: StringNode({ enum: ['normal', 'mesa'] }),\r\n },\r\n 'minecraft:nether_fossil': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n cluster_probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:ruined_portal': {\r\n setups: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n placement: StringNode({ enum: ['on_land_surface', 'partly_buried', 'on_ocean_floor', 'in_mountain', 'underground', 'in_nether'] }),\r\n air_pocket_probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n mossiness: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n overgrown: (0, core_1.BooleanNode)(),\r\n vines: (0, core_1.BooleanNode)(),\r\n can_be_cold: (0, core_1.BooleanNode)(),\r\n replace_with_blackstone: (0, core_1.BooleanNode)(),\r\n weight: (0, core_1.NumberNode)({ min: 0 })\r\n }))\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }\r\n }\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:jigsaw',\r\n step: 'surface_structures',\r\n size: 6,\r\n })\r\n }));\r\n}\r\nexports.initStructureSchemas = initStructureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureSetSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initStructureSetSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StructureSet = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/structure_set' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('structure_set')\r\n }\r\n ], { choiceContext: 'structure_set' });\r\n schemas.register('structure_set', (0, core_1.ObjectNode)({\r\n structures: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n structure: (0, Common_1.Tag)({ resource: '$worldgen/structure' }),\r\n weight: (0, core_1.NumberNode)({ integer: true, min: 1 })\r\n })),\r\n placement: Reference('structure_placement')\r\n }, { context: 'structure_set' }));\r\n schemas.register('structure_placement', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_placement' } }),\r\n salt: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n frequency_reduction_method: (0, core_1.Opt)(StringNode({ enum: ['default', 'legacy_type_1', 'legacy_type_2', 'legacy_type_3'] })),\r\n frequency: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n exclusion_zone: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n other_set: StructureSet,\r\n chunk_count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 16 })\r\n })),\r\n locate_offset: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:concentric_rings': {\r\n distance: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n spread: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4095 }),\r\n preferred_biomes: (0, Common_1.Tag)({ resource: '$worldgen/biome' })\r\n },\r\n 'minecraft:random_spread': {\r\n spread_type: (0, core_1.Opt)(StringNode({ enum: ['linear', 'triangular'] })),\r\n spacing: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n separation: (0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n }))\r\n }\r\n }\r\n }, { context: 'structure_placement' }), {\r\n default: () => ({\r\n type: 'minecraft:random_spread',\r\n spacing: 10,\r\n separation: 5,\r\n salt: Math.floor(Math.random() * 2147483647)\r\n })\r\n }));\r\n}\r\nexports.initStructureSetSchemas = initStructureSetSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceRuleSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceRuleSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('material_rule', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_rule' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block': {\r\n result_state: Reference('block_state'),\r\n },\r\n 'minecraft:condition': {\r\n if_true: Reference('material_condition'),\r\n then_run: Reference('material_rule')\r\n },\r\n 'minecraft:sequence': {\r\n sequence: (0, core_1.ListNode)(Reference('material_rule'))\r\n }\r\n }\r\n }, { context: 'material_rule', category: 'pool' }), {\r\n default: () => ({\r\n type: 'minecraft:block',\r\n result_state: {\r\n Name: 'minecraft:stone'\r\n }\r\n })\r\n }));\r\n schemas.register('material_condition', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_condition' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:biome': {\r\n biome_is: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:noise_threshold': {\r\n noise: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n min_threshold: (0, core_1.NumberNode)(),\r\n max_threshold: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:not': {\r\n invert: Reference('material_condition')\r\n },\r\n 'minecraft:stone_depth': {\r\n offset: (0, core_1.NumberNode)({ integer: true }),\r\n surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_surface_depth: (0, core_1.BooleanNode)(),\r\n secondary_depth_range: (0, core_1.NumberNode)({ integer: true }),\r\n },\r\n 'minecraft:vertical_gradient': {\r\n random_name: StringNode(),\r\n true_at_and_below: Reference('vertical_anchor'),\r\n false_at_and_above: Reference('vertical_anchor'),\r\n },\r\n 'minecraft:water': {\r\n offset: (0, core_1.NumberNode)({ integer: true }),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, core_1.BooleanNode)()\r\n },\r\n 'minecraft:y_above': {\r\n anchor: Reference('vertical_anchor'),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, core_1.BooleanNode)()\r\n }\r\n }\r\n }, { context: 'material_condition' }), {\r\n default: () => ({\r\n type: 'minecraft:biome',\r\n is_biome: 'minecraft:plains'\r\n })\r\n }));\r\n}\r\nexports.initSurfaceRuleSchemas = initSurfaceRuleSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('template_pool', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: (0, core_1.ListNode)(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldPresetSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldPresetSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('world_preset', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n dimensions: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$dimension', isDefinition: true } }), Reference('dimension'))\r\n }, { context: 'world_preset' }), {\r\n default: () => ({\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: 'minecraft:overworld',\r\n },\r\n settings: 'minecraft:overworld',\r\n },\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: 'minecraft:nether',\r\n },\r\n settings: 'minecraft:nether',\r\n },\r\n },\r\n 'minecraft:the_end': {\r\n type: 'minecraft:the_end',\r\n generator: {\r\n type: 'minecraft:noise',\r\n biome_source: {\r\n type: 'minecraft:the_end',\r\n },\r\n settings: 'minecraft:end',\r\n },\r\n },\r\n }\r\n })\r\n }));\r\n schemas.register('flat_level_generator_preset', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n settings: Reference('flat_generator_settings'),\r\n }), {\r\n default: () => ({\r\n display: 'minecraft:grass_block',\r\n settings: {\r\n lakes: false,\r\n features: false,\r\n biome: 'minecraft:plains',\r\n structure_overrides: [],\r\n layers: [\r\n {\r\n height: 3,\r\n block: 'minecraft:dirt'\r\n },\r\n {\r\n height: 1,\r\n block: 'minecraft:grass_block'\r\n }\r\n ]\r\n }\r\n })\r\n }));\r\n}\r\nexports.initWorldPresetSchemas = initWorldPresetSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst DensityFunction_1 = require(\"./DensityFunction\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst Structure_1 = require(\"./Structure\");\r\nconst StructureSet_1 = require(\"./StructureSet\");\r\nconst SurfaceRule_1 = require(\"./SurfaceRule\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nconst WorldPreset_1 = require(\"./WorldPreset\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts`, `DensityFunction.ts`, and `Biome.ts` have exports. They should be initialized first. \r\n (0, ProcessorList_1.initProcessorListSchemas)(schemas, collections);\r\n (0, DensityFunction_1.initDensityFunctionSchemas)(schemas, collections);\r\n (0, Biome_1.initBiomeSchemas)(schemas, collections);\r\n (0, Carver_1.initCarverSchemas)(schemas, collections);\r\n (0, Decorator_1.initDecoratorSchemas)(schemas, collections);\r\n (0, Feature_1.initFeatureSchemas)(schemas, collections);\r\n (0, NoiseSettings_1.initNoiseSettingsSchemas)(schemas, collections);\r\n (0, Structure_1.initStructureSchemas)(schemas, collections);\r\n (0, StructureSet_1.initStructureSetSchemas)(schemas, collections);\r\n (0, SurfaceRule_1.initSurfaceRuleSchemas)(schemas, collections);\r\n (0, TemplatePool_1.initTemplatePoolSchemas)(schemas, collections);\r\n (0, WorldPreset_1.initWorldPresetSchemas)(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n generate_features: (0, core_1.BooleanNode)(),\r\n bonus_chest: (0, core_1.BooleanNode)(),\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n dimensions: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:overworld\"\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:nether\"\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst ChatType_1 = require(\"./ChatType\");\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 (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, ChatType_1.initChatTypeSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, DimensionType_1.initDimensionTypeSchemas)(schemas, collections);\r\n (0, Dimension_1.initDimensionSchemas)(schemas, collections);\r\n (0, ItemModifier_1.initItemModifierSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, TextComponent_1.initTextComponentSchemas)(schemas, collections);\r\n (0, worldgen_1.initWorldgenSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, schemas_1.initSchemas)(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n"],"names":["core_1","require$$0","require$$1","Common_1","require$$2","ProcessorList_1","DensityFunction_1","Biome_1","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","this"],"mappings":"+1BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EACrC,GAAA,gBAAG,OAC1B,YAAyB,EAAa,CAClC,EAAY,SAAS,sBAAuB,CACxC,qCACA,4BACA,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,6BACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,yCACA,+BACA,uBACA,6BACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,gCACA,0BACA,yBACA,6BACA,2BACA,4BACA,wBACA,uBACA,iBACA,4CACA,4CACA,2BACA,uBACA,uBACA,2BACA,2BACR,CAAK,EACD,EAAY,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,SACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,MACR,CAAK,EACD,EAAY,SAAS,WAAY,CAC7B,WACA,WACA,YACA,WACR,CAAK,EACD,EAAY,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,eACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,eACA,OACA,SACA,eACR,CAAK,EACD,EAAY,SAAS,iCAAkC,CACnD,gCACA,sCACA,qBACR,CAAK,EACD,EAAY,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,cACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,SACR,CAAK,EACD,EAAY,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,iBACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,aACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,kBACR,CAAK,EACD,EAAY,SAAS,kBAAmB,CACpC,MACA,QACR,CAAK,EACD,EAAY,SAAS,kBAAmB,CACpC,iBACA,QACA,sBACA,yBACA,qBACA,cACA,mBACA,yBACA,gBACA,qBACA,wBACR,CAAK,EACD,EAAY,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,iBACR,CAAK,EACD,EAAY,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,QACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,QACA,SACA,UACA,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,OACR,CAAK,EACD,EAAY,SAAS,eAAgB,CACjC,QACA,SACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,OACA,KACA,QACA,OACA,QACA,MACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,IACA,IACA,GACR,CAAK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"} \ No newline at end of file +{"version":3,"file":"index.15314e06.js","sources":["../../node_modules/@mcschema/java-1.19/lib/Collections.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.19/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.19/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.19/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.19/lib/schemas/ChatType.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.19/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.19/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.19/lib/LootContext.js","../../node_modules/@mcschema/java-1.19/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.19/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.19/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/DensityFunction.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Structure.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/StructureSet.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/SurfaceRule.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/WorldPreset.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.19/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.19/lib/schemas/index.js","../../node_modules/@mcschema/java-1.19/lib/index.js"],"sourcesContent":["\"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:allay_drop_item_on_block',\r\n 'minecraft:avoid_vibration',\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:kill_mob_near_sculk_catalyst',\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:thrown_item_picked_up_by_player',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:using_item',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'killer',\r\n 'direct_killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mountain',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end',\r\n 'underground'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('decoration_step', [\r\n 'raw_generation',\r\n 'lakes',\r\n 'local_modifications',\r\n 'underground_structures',\r\n 'surface_structures',\r\n 'strongholds',\r\n 'underground_ores',\r\n 'underground_decoration',\r\n 'fluid_springs',\r\n 'vegetal_decoration',\r\n 'top_layer_modification'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n collections.register('banner_pattern', [\r\n 'base',\r\n 'square_bottom_left',\r\n 'square_bottom_right',\r\n 'square_top_left',\r\n 'square_top_right',\r\n 'stripe_bottom',\r\n 'stripe_top',\r\n 'stripe_left',\r\n 'stripe_right',\r\n 'stripe_center',\r\n 'stripe_middle',\r\n 'stripe_downright',\r\n 'stripe_downleft',\r\n 'small_stripes',\r\n 'cross',\r\n 'straight_cross',\r\n 'triangle_bottom',\r\n 'triangle_top',\r\n 'triangles_bottom',\r\n 'triangles_top',\r\n 'diagonal_left',\r\n 'diagonal_up_right',\r\n 'diagonal_up_left',\r\n 'diagonal_right',\r\n 'circle',\r\n 'rhombus',\r\n 'half_vertical',\r\n 'half_horizontal',\r\n 'half_vertical_right',\r\n 'half_horizontal_bottom',\r\n 'border',\r\n 'curly_border',\r\n 'gradient',\r\n 'gradient_up',\r\n 'bricks',\r\n 'globe',\r\n 'creeper',\r\n 'skull',\r\n 'flower',\r\n 'mojang',\r\n 'piglin'\r\n ]);\r\n collections.register('dye_color', [\r\n 'white',\r\n 'orange',\r\n 'magenta',\r\n 'light_blue',\r\n 'yellow',\r\n 'lime',\r\n 'pink',\r\n 'gray',\r\n 'light_gray',\r\n 'cyan',\r\n 'purple',\r\n 'blue',\r\n 'brown',\r\n 'green',\r\n 'red',\r\n 'black'\r\n ]);\r\n collections.register('cave_surface', [\r\n 'floor',\r\n 'ceiling'\r\n ]);\r\n collections.register('direction', [\r\n 'down',\r\n 'up',\r\n 'north',\r\n 'east',\r\n 'south',\r\n 'west'\r\n ]);\r\n collections.register('axis', [\r\n 'x',\r\n 'y',\r\n 'z'\r\n ]);\r\n collections.register('display_position', [\r\n 'firstperson_righthand',\r\n 'firstperson_lefthand',\r\n 'thirdperson_righthand',\r\n 'thirdperson_lefthand',\r\n 'gui',\r\n 'head',\r\n 'ground',\r\n 'fixed'\r\n ]);\r\n collections.register('gui_light', [\r\n 'front',\r\n 'side'\r\n ]);\r\n collections.register('item_model_predicates', [\r\n 'angle',\r\n 'blocking',\r\n 'broken',\r\n 'cast',\r\n 'charged',\r\n 'cooldown',\r\n 'custom_model_data',\r\n 'damage',\r\n 'damaged',\r\n 'firework',\r\n 'lefthanded',\r\n 'pull',\r\n 'pulling',\r\n 'throwing',\r\n 'time'\r\n ]);\r\n collections.register('mob_category', [\r\n 'monster',\r\n 'creature',\r\n 'ambient',\r\n 'axolotls',\r\n 'underground_water_creature',\r\n 'water_creature',\r\n 'water_ambient',\r\n 'misc',\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n player: (0, 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:allay_drop_item_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:bee_nest_destroyed': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, 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: (0, 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: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: (0, core_1.Opt)(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:fall_from_height': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:kill_mob_near_sculk_catalyst': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: Reference('int_bounds'),\r\n victims: (0, core_1.Opt)((0, core_1.ListNode)(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: (0, 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:nether_travel': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: (0, 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: (0, 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: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, 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: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:thrown_item_picked_up_by_player': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: (0, core_1.Opt)(Reference('float_bounds'))\r\n },\r\n 'minecraft:used_totem': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, core_1.ObjectNode)({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, core_1.NumberNode)()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, core_1.MapNode)(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, core_1.Opt)(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, core_1.MapNode)(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n OR: (0, core_1.ListNode)(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, Model_1.initModelSchemas)(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initChatTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initChatTypeSchemas(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('chat_type', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n chat: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n decoration: (0, core_1.Opt)(Reference('text_decoration')),\r\n })),\r\n overlay: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n decoration: (0, core_1.Opt)(Reference('text_decoration')),\r\n })),\r\n narration: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n decoration: (0, core_1.Opt)(Reference('text_decoration')),\r\n priority: StringNode({ enum: ['chat', 'system'] }),\r\n })),\r\n }, { context: 'chat_type' }), {\r\n default: () => ({\r\n chat: {\r\n decoration: {\r\n parameters: ['sender', 'content'],\r\n translation_key: 'chat.type.text',\r\n style: {},\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('text_decoration', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n translation_key: StringNode(),\r\n parameters: (0, core_1.ListNode)(StringNode({ enum: ['sender', 'team_name', 'content'] })),\r\n style: Reference('text_style')\r\n }, { context: 'text_decoration' }), {\r\n default: () => ({\r\n translation_key: 'chat.type.text',\r\n parameters: ['sender', 'content'],\r\n style: {},\r\n })\r\n }));\r\n}\r\nexports.initChatTypeSchemas = initChatTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.Tag = exports.InclusiveRange = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: '#minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nexports.DefaultNoiseSettings = {\r\n sea_level: 63,\r\n ore_veins_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n legacy_random_source: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => (0, core_1.Opt)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer })),\r\n max: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)(Reference('number_provider')),\r\n max: (0, core_1.Opt)(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: (0, 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] = (0, 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 = (0, core_1.ObjectNode)({\r\n type: (0, core_1.Mod)((0, 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 (0, 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: (0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, 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: (0, core_1.NumberNode)(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_exclusive: (0, core_1.NumberNode)(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n plateau: (0, core_1.NumberNode)()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', (0, 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: (0, core_1.NumberNode)({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n });\r\n schemas.register('int_provider', (0, exports.IntProvider)());\r\n schemas.register('vertical_anchor', (0, 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: (0, core_1.ObjectNode)({\r\n [t]: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n }));\r\n exports.InclusiveRange = (config) => (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_inclusive: (0, core_1.NumberNode)(config)\r\n }, { context: 'range' });\r\n schemas.register('noise_parameters', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n firstOctave: (0, core_1.NumberNode)({ integer: true }),\r\n amplitudes: (0, core_1.ListNode)((0, core_1.NumberNode)())\r\n }, { context: 'noise_parameters' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n exports.Tag = (config) => (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: config.resource, allowTag: true } }),\r\n change: (v) => {\r\n if (Array.isArray(v) && typeof v[0] === 'string' && !v[0].startsWith('#')) {\r\n return v[0];\r\n }\r\n return undefined;\r\n }\r\n },\r\n {\r\n type: 'list',\r\n node: (0, core_1.ListNode)(config.inlineSchema\r\n ? (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: config.resource } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference(config.inlineSchema)\r\n }\r\n ], { choiceContext: 'tag.list' })\r\n : StringNode({ validator: 'resource', params: { pool: config.resource } })),\r\n change: (v) => {\r\n if (typeof v === 'string' && !v.startsWith('#')) {\r\n return [v];\r\n }\r\n return [];\r\n }\r\n },\r\n ], { choiceContext: 'tag' });\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)((0, exports.Tag)({ resource: '$worldgen/structure' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_contents': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_instrument': {\r\n options: StringNode({ validator: 'resource', params: { pool: 'instrument', requireTag: true } })\r\n },\r\n 'minecraft:set_loot_table': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, 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) => (0, 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) => (0, core_1.ObjectOrPreset)(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n sea_level: 32,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\r\n default_block: {\r\n Name: 'minecraft:netherrack'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:lava'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:end': {\r\n sea_level: 0,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\r\n default_block: {\r\n Name: 'minecraft:end_stone'\r\n },\r\n default_fluid: {\r\n Name: 'minecraft:air'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n sea_level: 63,\r\n ore_veins_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n legacy_random_source: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n },\r\n 'minecraft:caves': {\r\n sea_level: 32,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n sea_level: 0,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, Common_1.DimensionTypePresets)(Reference('dimension_type')),\r\n generator: (0, 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 settings: (0, Common_1.NoiseSettingsPresets)(Reference('noise_settings')),\r\n biome_source: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:nether'] } })),\r\n biomes: (0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 62 })),\r\n biomes: (0, Common_1.Tag)({ resource: '$worldgen/biome' })\r\n },\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: Reference('flat_generator_settings')\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n schemas.register('flat_generator_settings', (0, core_1.ObjectNode)({\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n features: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n layers: (0, core_1.ListNode)(Reference('generator_layer')),\r\n structure_overrides: (0, Common_1.Tag)({ resource: '$worldgen/structure_set', inlineSchema: 'structure_set' })\r\n }));\r\n const ClimateParameter = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: -2, max: 2 }), { minLength: 2, maxLength: 2 }),\r\n change: (v) => [v !== null && v !== void 0 ? v : 0, v !== null && v !== void 0 ? v : 0]\r\n }\r\n ]);\r\n schemas.register('parameter_point', (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }));\r\n schemas.register('generator_biome', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: Reference('parameter_point'),\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n temperature: 0,\r\n humidity: 0,\r\n continentalness: 0,\r\n erosion: 0,\r\n weirdness: 0,\r\n depth: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n ultrawarm: (0, core_1.BooleanNode)(),\r\n natural: (0, core_1.BooleanNode)(),\r\n piglin_safe: (0, core_1.BooleanNode)(),\r\n respawn_anchor_works: (0, core_1.BooleanNode)(),\r\n bed_works: (0, core_1.BooleanNode)(),\r\n has_raids: (0, core_1.BooleanNode)(),\r\n has_skylight: (0, core_1.BooleanNode)(),\r\n has_ceiling: (0, core_1.BooleanNode)(),\r\n coordinate_scale: (0, core_1.NumberNode)({ min: 0.00001, max: 30000000 }),\r\n ambient_light: (0, core_1.NumberNode)(),\r\n fixed_time: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n logical_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4064 }),\r\n effects: (0, core_1.Opt)(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2032, max: 2031 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 16, max: 4064 })\r\n }, { context: 'dimension_type' }), node => ({\r\n default: () => Common_1.DefaultDimensionType,\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) + (value === null || value === void 0 ? void 0 : value.height) > 2032) {\r\n errors.add(path.push('height'), 'error.min_y_plus_height', 2032);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.logical_height) > (value === null || value === void 0 ? void 0 : value.height)) {\r\n errors.add(path.push('logical_height'), 'error.logical_height');\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.height) % 16 !== 0) {\r\n errors.add(path.push('height'), 'error.height_multiple', 16);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) % 16 !== 0) {\r\n errors.add(path.push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initItemModifierSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initItemModifierSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('item_modifier', (0, core_1.ObjectOrList)(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: (0, core_1.Opt)((0, core_1.ListNode)(Reference('condition')))\r\n };\r\n schemas.register('function', (0, core_1.Mod)((0, 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]: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: (0, core_1.Opt)(Reference('number_provider')),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.StringOrList)(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst CURRENT_PACK_FORMAT = 10;\r\nfunction initPackMcmetaSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('pack_mcmeta', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: CURRENT_PACK_FORMAT, max: CURRENT_PACK_FORMAT }), {\r\n default: () => CURRENT_PACK_FORMAT,\r\n canUpdate: (_p, v) => v !== CURRENT_PACK_FORMAT,\r\n update: () => [{ name: 'pack_format', params: [CURRENT_PACK_FORMAT], newValue: CURRENT_PACK_FORMAT }]\r\n }),\r\n description: Reference('text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n })\r\n }),\r\n filter: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n block: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n namespace: (0, core_1.Opt)(StringNode({ validator: 'regex_pattern' })),\r\n path: (0, core_1.Opt)(StringNode({ validator: 'regex_pattern' })),\r\n }))\r\n }))\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, 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', (0, core_1.ObjectNode)({\r\n blocks: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)({\r\n position: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n structure: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/structure' } })),\r\n dimension: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, 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('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n type_specific: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n type: StringNode({ enum: ['any', 'cat', 'fishing_hook', 'frog', 'lightning', 'player', 'slime'] }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'cat': {\r\n variant: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'cat_variant' } }))\r\n },\r\n 'fishing_hook': {\r\n in_open_water: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'frog': {\r\n variant: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'frog_variant' } }))\r\n },\r\n 'lightning': {\r\n blocks_set_on_fire: (0, core_1.Opt)(Reference('int_bounds')),\r\n entity_struck: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'player': {\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n {\r\n type: 'boolean',\r\n node: (0, core_1.BooleanNode)(),\r\n change: () => true\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate'))),\r\n looking_at: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'slime': {\r\n size: Reference('int_bounds')\r\n },\r\n }\r\n })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n stepping_on: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: (0, core_1.Opt)(Reference('entity_predicate')),\r\n passenger: (0, core_1.Opt)(Reference('entity_predicate')),\r\n targeted_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, core_1.BooleanNode)()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('game_event_tag', TagBase('game_event'));\r\n schemas.register('item_tag', TagBase('item'));\r\n schemas.register('advancement_tag', TagBase('$advancement'));\r\n schemas.register('dimension_tag', TagBase('$dimension'));\r\n schemas.register('dimension_type_tag', TagBase('$dimension_type'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_modifier_tag', TagBase('$item_modifier'));\r\n schemas.register('loot_table_tag', TagBase('$loot_table'));\r\n schemas.register('predicate_tag', TagBase('$predicate'));\r\n schemas.register('recipe_tag', TagBase('$recipe'));\r\n schemas.register('structure_tag', TagBase('$structure'));\r\n schemas.register('biome_tag', TagBase('$worldgen/biome'));\r\n schemas.register('configured_carver_tag', TagBase('$worldgen/configured_carver'));\r\n schemas.register('configured_feature_tag', TagBase('$worldgen/configured_feature'));\r\n schemas.register('structure_tag', TagBase('$worldgen/structure'));\r\n schemas.register('configured_surface_builder_tag', TagBase('$worldgen/configured_surface_builder'));\r\n schemas.register('density_function_tag', TagBase('$worldgen/density_function'));\r\n schemas.register('flat_level_generator_preset_tag', TagBase('$worldgen/flat_level_generator_preset'));\r\n schemas.register('noise_tag', TagBase('$worldgen/noise'));\r\n schemas.register('noise_settings_tag', TagBase('$worldgen/noise_settings'));\r\n schemas.register('placed_feature_tag', TagBase('$worldgen/placed_feature'));\r\n schemas.register('processor_list_tag', TagBase('$worldgen/processor_list'));\r\n schemas.register('structure_set_tag', TagBase('$worldgen/structure_set'));\r\n schemas.register('template_pool_tag', TagBase('$worldgen/template_pool'));\r\n schemas.register('world_preset_tag', TagBase('$worldgen/world_preset'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', (0, core_1.Mod)((0, 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: (0, 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: (0, 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 StyleFields = {\r\n color: (0, core_1.Opt)(StringNode()) /* TODO */,\r\n font: (0, core_1.Opt)(StringNode()),\r\n bold: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n };\r\n schemas.register('text_style', (0, core_1.ObjectNode)({\r\n ...StyleFields\r\n }, { context: 'text_component_object' }));\r\n const CommonFields = {\r\n ...StyleFields,\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component')),\r\n contents: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tag: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n })),\r\n contents: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n separator: (0, 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', (0, core_1.Mod)((0, core_1.ListNode)(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = exports.MobCategorySpawnSettings = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.MobCategorySpawnSettings = (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n minCount: (0, core_1.NumberNode)({ integer: true }),\r\n maxCount: (0, core_1.NumberNode)({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n });\r\n schemas.register('biome', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n temperature: (0, core_1.NumberNode)(),\r\n downfall: (0, core_1.NumberNode)(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'frozen'] })),\r\n creature_spawn_probability: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n effects: (0, core_1.ObjectNode)({\r\n sky_color: (0, core_1.NumberNode)({ color: true }),\r\n fog_color: (0, core_1.NumberNode)({ color: true }),\r\n water_color: (0, core_1.NumberNode)({ color: true }),\r\n water_fog_color: (0, core_1.NumberNode)({ color: true }),\r\n grass_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n foliage_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n grass_color_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: (0, core_1.Opt)(StringNode()),\r\n mood_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_delay: (0, core_1.NumberNode)({ integer: true }),\r\n block_search_extent: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)()\r\n })),\r\n additions_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n music: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n min_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n max_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n replace_current_music: (0, core_1.BooleanNode)()\r\n })),\r\n particle: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n options: (0, core_1.ObjectNode)({\r\n type: StringNode()\r\n }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }))\r\n }),\r\n spawners: (0, core_1.MapNode)(StringNode({ enum: 'mob_category' }), exports.MobCategorySpawnSettings),\r\n spawn_costs: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n energy_budget: (0, core_1.NumberNode)(),\r\n charge: (0, 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: (0, core_1.MapNode)(StringNode({ enum: ['air', 'liquid'] }), (0, core_1.Mod)((0, Common_1.Tag)({ resource: '$worldgen/configured_carver', inlineSchema: 'configured_carver' }), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: (0, core_1.ListNode)((0, core_1.Mod)((0, Common_1.Tag)({ resource: '$worldgen/placed_feature', inlineSchema: 'placed_feature' }), { category: () => 'predicate' }), { maxLength: 11 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: (0, Common_1.FloatProvider)(),\r\n shape: (0, core_1.ObjectNode)({\r\n distance_factor: (0, Common_1.FloatProvider)(),\r\n thickness: (0, Common_1.FloatProvider)(),\r\n width_smoothness: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n horizontal_radius_factor: (0, Common_1.FloatProvider)(),\r\n vertical_radius_default_factor: (0, core_1.NumberNode)(),\r\n vertical_radius_center_factor: (0, core_1.NumberNode)()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n vertical_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n floor_level: (0, Common_1.FloatProvider)({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: (0, core_1.ObjectNode)({\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: (0, Common_1.FloatProvider)(),\r\n lava_level: Reference('vertical_anchor'),\r\n replaceable: (0, Common_1.Tag)({ resource: 'block' }),\r\n debug_settings: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n debug_mode: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n air_state: (0, core_1.Opt)(Reference('block_state')),\r\n water_state: (0, core_1.Opt)(Reference('block_state')),\r\n lava_state: (0, core_1.Opt)(Reference('block_state')),\r\n barrier_state: (0, core_1.Opt)(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('decorator', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/placement_modifier_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_predicate_filter': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:rarity_filter': {\r\n chance: (0, core_1.NumberNode)({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:count_on_every_layer': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:noise_threshold_count': {\r\n noise_level: (0, core_1.NumberNode)(),\r\n below_noise: (0, core_1.NumberNode)({ integer: true }),\r\n above_noise: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:noise_based_count': {\r\n noise_to_count_ratio: (0, core_1.NumberNode)({ integer: true }),\r\n noise_factor: (0, core_1.NumberNode)(),\r\n noise_offset: (0, core_1.Opt)((0, core_1.NumberNode)())\r\n },\r\n 'minecraft:environment_scan': {\r\n direction_of_search: StringNode({ enum: ['up', 'down'] }),\r\n max_steps: (0, core_1.NumberNode)({ integer: true, min: 1, max: 32 }),\r\n target_condition: Reference('block_predicate_worldgen'),\r\n allowed_search_condition: (0, core_1.Opt)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:height_range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:random_offset': {\r\n xz_spread: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n y_spread: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n },\r\n 'minecraft:surface_relative_threshold_filter': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n min_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:surface_water_depth_filter': {\r\n max_water_depth: (0, core_1.NumberNode)({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDensityFunctionSchemas = exports.DensityFunction = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initDensityFunctionSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n exports.DensityFunction = (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)(),\r\n change: () => 0\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/density_function' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('density_function'),\r\n change: () => ({})\r\n }\r\n ], { choiceContext: 'density_function' }), {\r\n default: () => 0\r\n });\r\n const NoiseParameters = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('noise_parameters')\r\n }\r\n ], { choiceContext: 'noise_parameters' });\r\n const NoiseRange = (0, core_1.NumberNode)({ min: -1000000, max: 1000000 });\r\n const YRange = (0, core_1.NumberNode)({ integer: true, min: -2032 * 2, max: 2031 * 2 });\r\n schemas.register('density_function', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/density_function_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:abs': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:add': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:blend_density': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_2d': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_all_in_cell': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_once': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:clamp': {\r\n input: exports.DensityFunction,\r\n min: NoiseRange,\r\n max: NoiseRange,\r\n },\r\n 'minecraft:constant': {\r\n argument: (0, core_1.NumberNode)(),\r\n },\r\n 'minecraft:cube': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:flat_cache': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:half_negative': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:interpolated': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:max': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:min': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:mul': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:noise': {\r\n noise: NoiseParameters,\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n },\r\n 'minecraft:old_blended_noise': {\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n xz_factor: (0, core_1.NumberNode)(),\r\n y_factor: (0, core_1.NumberNode)(),\r\n smear_scale_multiplier: (0, core_1.NumberNode)({ min: 1, max: 8 }),\r\n },\r\n 'minecraft:quarter_negative': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:range_choice': {\r\n input: exports.DensityFunction,\r\n min_inclusive: NoiseRange,\r\n max_exclusive: NoiseRange,\r\n when_in_range: exports.DensityFunction,\r\n when_out_of_range: exports.DensityFunction,\r\n },\r\n 'minecraft:shift': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shift_a': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shift_b': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shifted_noise': {\r\n noise: NoiseParameters,\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n shift_x: exports.DensityFunction,\r\n shift_y: exports.DensityFunction,\r\n shift_z: exports.DensityFunction,\r\n },\r\n 'minecraft:slide': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:spline': {\r\n spline: Reference('cubic_spline'),\r\n },\r\n 'minecraft:square': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:squeeze': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:weird_scaled_sampler': {\r\n rarity_value_mapper: StringNode({ enum: ['type_1', 'type_2'] }),\r\n noise: NoiseParameters,\r\n input: exports.DensityFunction,\r\n },\r\n 'minecraft:y_clamped_gradient': {\r\n from_y: YRange,\r\n to_y: YRange,\r\n from_value: NoiseRange,\r\n to_value: NoiseRange,\r\n },\r\n }\r\n }, { context: 'density_function', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:noise',\r\n noise: 'minecraft:cave_entrance',\r\n xz_scale: 0.75,\r\n y_scale: 0.5\r\n })\r\n }));\r\n schemas.register('cubic_spline', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)()\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n coordinate: exports.DensityFunction,\r\n points: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n location: (0, core_1.NumberNode)(),\r\n derivative: (0, core_1.NumberNode)(),\r\n value: Reference('cubic_spline')\r\n }))\r\n }, { category: 'function' })\r\n }\r\n ], { context: 'terrain_spline', choiceContext: 'terrain_spline' }), {\r\n default: () => 0\r\n }));\r\n}\r\nexports.initDensityFunctionSchemas = initDensityFunctionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\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 = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n processors: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n rottable_blocks: (0, core_1.Opt)((0, Common_1.Tag)({ resource: 'block' }))\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:protected_blocks': {\r\n value: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } })\r\n },\r\n 'minecraft:rule': {\r\n rules: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n position_predicate: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n max_dist: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n min_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n max_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', (0, 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', (0, 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: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const ConfiguredFeature = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const PlacedFeature = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('placed_feature')\r\n }\r\n ], { choiceContext: 'placed_feature' });\r\n const RandomPatchConfig = {\r\n tries: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 })),\r\n xz_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n y_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n feature: PlacedFeature,\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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n };\r\n const TargetBlockState = (0, core_1.ObjectNode)({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n };\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: 'cave_surface' }),\r\n depth: (0, Common_1.IntProvider)({ min: 1, max: 128 }),\r\n vertical_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n extra_edge_column_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n vegetation_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n xz_radius: (0, Common_1.IntProvider)(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: PlacedFeature\r\n };\r\n schemas.register('configured_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: (0, core_1.ObjectNode)({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: (0, Common_1.IntProvider)({ min: 0, max: 3 }),\r\n height: (0, Common_1.IntProvider)({ min: 1, max: 10 })\r\n },\r\n 'minecraft:block_column': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allowed_placement: Reference('block_predicate_worldgen'),\r\n prioritize_tip: (0, core_1.BooleanNode)(),\r\n layers: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n height: (0, Common_1.IntProvider)({ min: 0 }),\r\n provider: Reference('block_state_provider')\r\n }))\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n rim_size: (0, Common_1.IntProvider)({ min: 0, max: 16 })\r\n },\r\n 'minecraft:disk': {\r\n state_provider: Reference('rule_based_block_state_provider'),\r\n target: Reference('block_predicate_worldgen'),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 8 }),\r\n half_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4 }),\r\n },\r\n 'minecraft:dripstone_cluster': {\r\n floor_to_ceiling_search_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 512 }),\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n height_deviation: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n density: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n wetness: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: (0, core_1.BooleanNode)(),\r\n exit: (0, core_1.Opt)(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n crystal_beam_target: (0, core_1.Opt)(Reference('block_pos')),\r\n spikes: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n centerX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n centerZ: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n guarded: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: (0, 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: (0, 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: (0, core_1.ListNode)(Reference('block_state')),\r\n cannot_replace: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n invalid_blocks: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } })\r\n }),\r\n layers: (0, core_1.ObjectNode)({\r\n filling: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n inner_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n middle_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n outer_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n }),\r\n crack: (0, core_1.ObjectNode)({\r\n generate_crack_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n base_crack_size: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 5 })),\r\n crack_point_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 10 })),\r\n }),\r\n noise_multiplier: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_potential_placements_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n outer_wall_distance: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n distribution_points: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n point_offset: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 0, max: 10 })),\r\n min_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n invalid_blocks_threshold: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:multiface_growth': {\r\n search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n can_place_on_floor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_ceiling: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_wall: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_be_placed_on: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n fluid: Reference('block_state_provider'),\r\n barrier: Reference('block_state_provider')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1, max: 512 })),\r\n column_radius: (0, Common_1.IntProvider)({ min: 0, max: 60 }),\r\n height_scale: (0, Common_1.FloatProvider)({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n stalactite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n wind_speed: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n min_radius_for_wind: (0, core_1.NumberNode)({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: (0, core_1.NumberNode)({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider'),\r\n spread_width: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 })\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 12 })\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:pointed_dripstone': {\r\n chance_of_taller_dripstone: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_directional_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius2: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius3: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n },\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: PlacedFeature,\r\n feature_true: PlacedFeature\r\n },\r\n 'minecraft:random_selector': {\r\n features: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n feature: PlacedFeature\r\n })),\r\n default: PlacedFeature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n allowed_tree_position: Reference('block_predicate_worldgen'),\r\n feature: PlacedFeature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sculk_patch': {\r\n charge_count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 32 }),\r\n amount_per_charge: (0, core_1.NumberNode)({ integer: true, min: 1, max: 500 }),\r\n spread_attempts: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n growth_rounds: (0, core_1.NumberNode)({ integer: true, min: 0, max: 8 }),\r\n spread_rounds: (0, core_1.NumberNode)({ integer: true, min: 0, max: 8 }),\r\n extra_rare_growths: (0, Common_1.IntProvider)(),\r\n catalyst_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n },\r\n 'minecraft:sea_pickle': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: (0, 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: (0, Common_1.Tag)({ resource: '$worldgen/placed_feature', inlineSchema: 'placed_feature' }),\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: (0, core_1.NumberNode)({ integer: true }),\r\n hole_count: (0, core_1.NumberNode)({ integer: true }),\r\n requires_block_below: (0, core_1.BooleanNode)(),\r\n valid_blocks: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n force_dirt: (0, core_1.Opt)((0, 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 root_placer: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/root_placer_type' } }),\r\n root_provider: Reference('block_state_provider'),\r\n trunk_offset_y: (0, Common_1.IntProvider)(),\r\n above_root_placement: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n above_root_provider: Reference('block_state_provider'),\r\n above_root_placement_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mangrove_root_placer': {\r\n mangrove_root_placement: (0, core_1.ObjectNode)({\r\n max_root_width: (0, core_1.NumberNode)({ integer: true, min: 1, max: 12 }),\r\n max_root_length: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n random_skew_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n can_grow_through: (0, Common_1.Tag)({ resource: 'block' }),\r\n muddy_roots_in: (0, Common_1.Tag)({ resource: 'block' }),\r\n muddy_roots_provider: Reference('block_state_provider'),\r\n })\r\n }\r\n }\r\n }, { context: 'root_placer' })),\r\n trunk_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: (0, 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: (0, Common_1.IntProvider)({ min: 1, max: 64 }),\r\n min_height_for_leaves: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:upwards_branching_trunk_placer': {\r\n extra_branch_steps: (0, Common_1.IntProvider)({ min: 1 }),\r\n extra_branch_length: (0, Common_1.IntProvider)({ min: 0 }),\r\n place_branch_per_log_probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n can_grow_through: (0, Common_1.Tag)({ resource: 'block' })\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n offset: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: (0, Common_1.IntProvider)({ min: 1, max: 512 }),\r\n leaf_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: (0, core_1.ListNode)((0, 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:attached_to_leaves': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n exclusion_radius_xz: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n exclusion_radius_y: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n required_empty_blocks: (0, core_1.NumberNode)({ integer: true, min: 1, max: 16 }),\r\n block_provider: Reference('block_state_provider'),\r\n directions: (0, core_1.ListNode)(StringNode({ enum: 'direction' }))\r\n },\r\n 'minecraft:beehive': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:leave_vine': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:twisting_vines': {\r\n spread_width: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n max_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: (0, core_1.NumberNode)({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:tree',\r\n config: {\r\n minimum_size: {\r\n type: 'minecraft:two_layers_feature_size'\r\n },\r\n trunk_placer: {\r\n type: 'minecraft:straight_trunk_placer',\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n type: 'minecraft:blob_foliage_placer',\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('placed_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n feature: ConfiguredFeature,\r\n placement: (0, core_1.ListNode)(Reference('decorator'))\r\n }, { context: 'placed_feature' }), {\r\n default: () => ({\r\n feature: 'minecraft:oak',\r\n placement: [\r\n {\r\n type: 'minecraft:count',\r\n count: 4\r\n },\r\n {\r\n type: 'minecraft:in_square'\r\n },\r\n {\r\n type: 'minecraft:heightmap',\r\n heightmap: 'OCEAN_FLOOR'\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('feature_size', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 81 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n upper_limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n middle_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n noise: Reference('noise_parameters'),\r\n scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 })\r\n };\r\n schemas.register('block_state_provider', (0, core_1.Mod)((0, 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: (0, Common_1.InclusiveRange)({ integer: true, min: 1, max: 64 }),\r\n slow_noise: Reference('noise_parameters'),\r\n slow_scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 }),\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_threshold_provider': {\r\n ...NoiseProvider,\r\n threshold: (0, core_1.NumberNode)({ min: -1, max: 1 }),\r\n high_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n default_state: Reference('block_state'),\r\n low_states: (0, core_1.ListNode)(Reference('block_state')),\r\n high_states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_provider': {\r\n ...NoiseProvider,\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: (0, 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: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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('rule_based_block_state_provider', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n fallback: Reference('block_state_provider'),\r\n rules: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n if_true: Reference('block_predicate_worldgen'),\r\n then: Reference('block_state_provider')\r\n }))\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n fallback: {\r\n type: 'minecraft:simple_state_provider'\r\n }\r\n })\r\n }));\r\n const Offset = {\r\n offset: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n };\r\n schemas.register('block_predicate_worldgen', (0, core_1.Mod)((0, 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: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:any_of': {\r\n predicates: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:has_sturdy_face': {\r\n ...Offset,\r\n direction: StringNode({ enum: 'direction' })\r\n },\r\n 'minecraft:inside_world_bounds': {\r\n ...Offset,\r\n },\r\n 'minecraft:matching_block_tag': {\r\n ...Offset,\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:matching_blocks': {\r\n ...Offset,\r\n blocks: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:matching_fluids': {\r\n ...Offset,\r\n fluids: (0, Common_1.Tag)({ resource: 'fluid' })\r\n },\r\n 'minecraft:not': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:would_survive': {\r\n ...Offset,\r\n state: Reference('block_state')\r\n }\r\n }\r\n }, { context: 'block_predicate' }), {\r\n default: () => ({\r\n type: 'minecraft:true'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nconst DensityFunction_1 = require(\"./DensityFunction\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n sea_level: (0, core_1.NumberNode)({ integer: true }),\r\n disable_mob_generation: (0, core_1.BooleanNode)(),\r\n aquifers_enabled: (0, core_1.BooleanNode)(),\r\n ore_veins_enabled: (0, core_1.BooleanNode)(),\r\n legacy_random_source: (0, core_1.BooleanNode)(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: (0, core_1.ObjectNode)({\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n size_horizontal: (0, core_1.NumberNode)({ integer: true }),\r\n size_vertical: (0, core_1.NumberNode)({ integer: true }),\r\n }),\r\n noise_router: (0, core_1.ObjectNode)({\r\n barrier: DensityFunction_1.DensityFunction,\r\n fluid_level_floodedness: DensityFunction_1.DensityFunction,\r\n fluid_level_spread: DensityFunction_1.DensityFunction,\r\n lava: DensityFunction_1.DensityFunction,\r\n temperature: DensityFunction_1.DensityFunction,\r\n vegetation: DensityFunction_1.DensityFunction,\r\n continents: DensityFunction_1.DensityFunction,\r\n erosion: DensityFunction_1.DensityFunction,\r\n depth: DensityFunction_1.DensityFunction,\r\n ridges: DensityFunction_1.DensityFunction,\r\n initial_density_without_jaggedness: DensityFunction_1.DensityFunction,\r\n final_density: DensityFunction_1.DensityFunction,\r\n vein_toggle: DensityFunction_1.DensityFunction,\r\n vein_ridged: DensityFunction_1.DensityFunction,\r\n vein_gap: DensityFunction_1.DensityFunction,\r\n }),\r\n spawn_target: (0, core_1.ListNode)(Reference('parameter_point')),\r\n surface_rule: Reference('material_rule'),\r\n }, { context: 'noise_settings' }), node => ({\r\n default: () => Common_1.DefaultNoiseSettings,\r\n validate: (path, value, errors, options) => {\r\n var _a, _b, _c, _d;\r\n value = node.validate(path, value, errors, options);\r\n if (((_a = value === null || value === void 0 ? void 0 : value.noise) === null || _a === void 0 ? void 0 : _a.min_y) + ((_b = value === null || value === void 0 ? void 0 : value.noise) === null || _b === void 0 ? void 0 : _b.height) > 2047) {\r\n errors.add(path.push('noise').push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if (((_c = value === null || value === void 0 ? void 0 : value.noise) === null || _c === void 0 ? void 0 : _c.height) % 16 !== 0) {\r\n errors.add(path.push('noise').push('height'), 'error.height_multiple', 16);\r\n }\r\n if (((_d = value === null || value === void 0 ? void 0 : value.noise) === null || _d === void 0 ? void 0 : _d.min_y) % 16 !== 0) {\r\n errors.add(path.push('noise').push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n schemas.register('noise_slider', (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)(),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n }));\r\n schemas.register('generator_layer', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nconst Biome_1 = require(\"./Biome\");\r\nfunction initStructureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('structure', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_type' } }),\r\n biomes: (0, Common_1.Tag)({ resource: '$worldgen/biome' }),\r\n step: StringNode({ enum: 'decoration_step' }),\r\n spawn_overrides: (0, core_1.MapNode)(StringNode({ enum: 'mob_category' }), (0, core_1.ObjectNode)({\r\n bounding_box: StringNode({ enum: ['piece', 'full'] }),\r\n spawns: Biome_1.MobCategorySpawnSettings,\r\n })),\r\n terrain_adaptation: (0, core_1.Opt)(StringNode({ enum: ['none', 'beard_thin', 'beard_box', 'bury'] })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:jigsaw': {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: (0, core_1.NumberNode)({ integer: true }),\r\n start_height: Reference('height_provider'),\r\n start_jigsaw_name: (0, core_1.Opt)(StringNode()),\r\n project_start_to_heightmap: (0, core_1.Opt)(StringNode({ enum: 'heightmap_type' })),\r\n max_distance_from_center: (0, core_1.NumberNode)({ integer: true, min: 1, max: 128 }),\r\n use_expansion_hack: (0, core_1.BooleanNode)(),\r\n },\r\n 'minecraft:mineshaft': {\r\n mineshaft_type: StringNode({ enum: ['normal', 'mesa'] }),\r\n },\r\n 'minecraft:nether_fossil': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n cluster_probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:ruined_portal': {\r\n setups: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n placement: StringNode({ enum: ['on_land_surface', 'partly_buried', 'on_ocean_floor', 'in_mountain', 'underground', 'in_nether'] }),\r\n air_pocket_probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n mossiness: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n overgrown: (0, core_1.BooleanNode)(),\r\n vines: (0, core_1.BooleanNode)(),\r\n can_be_cold: (0, core_1.BooleanNode)(),\r\n replace_with_blackstone: (0, core_1.BooleanNode)(),\r\n weight: (0, core_1.NumberNode)({ min: 0 })\r\n }))\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }\r\n }\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:jigsaw',\r\n step: 'surface_structures',\r\n size: 6,\r\n })\r\n }));\r\n}\r\nexports.initStructureSchemas = initStructureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureSetSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initStructureSetSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StructureSet = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/structure_set' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('structure_set')\r\n }\r\n ], { choiceContext: 'structure_set' });\r\n schemas.register('structure_set', (0, core_1.ObjectNode)({\r\n structures: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n structure: (0, Common_1.Tag)({ resource: '$worldgen/structure' }),\r\n weight: (0, core_1.NumberNode)({ integer: true, min: 1 })\r\n })),\r\n placement: Reference('structure_placement')\r\n }, { context: 'structure_set' }));\r\n schemas.register('structure_placement', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_placement' } }),\r\n salt: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n frequency_reduction_method: (0, core_1.Opt)(StringNode({ enum: ['default', 'legacy_type_1', 'legacy_type_2', 'legacy_type_3'] })),\r\n frequency: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n exclusion_zone: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n other_set: StructureSet,\r\n chunk_count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 16 })\r\n })),\r\n locate_offset: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:concentric_rings': {\r\n distance: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n spread: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4095 }),\r\n preferred_biomes: (0, Common_1.Tag)({ resource: '$worldgen/biome' })\r\n },\r\n 'minecraft:random_spread': {\r\n spread_type: (0, core_1.Opt)(StringNode({ enum: ['linear', 'triangular'] })),\r\n spacing: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n separation: (0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n }))\r\n }\r\n }\r\n }, { context: 'structure_placement' }), {\r\n default: () => ({\r\n type: 'minecraft:random_spread',\r\n spacing: 10,\r\n separation: 5,\r\n salt: Math.floor(Math.random() * 2147483647)\r\n })\r\n }));\r\n}\r\nexports.initStructureSetSchemas = initStructureSetSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceRuleSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceRuleSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('material_rule', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_rule' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block': {\r\n result_state: Reference('block_state'),\r\n },\r\n 'minecraft:condition': {\r\n if_true: Reference('material_condition'),\r\n then_run: Reference('material_rule')\r\n },\r\n 'minecraft:sequence': {\r\n sequence: (0, core_1.ListNode)(Reference('material_rule'))\r\n }\r\n }\r\n }, { context: 'material_rule', category: 'pool' }), {\r\n default: () => ({\r\n type: 'minecraft:block',\r\n result_state: {\r\n Name: 'minecraft:stone'\r\n }\r\n })\r\n }));\r\n schemas.register('material_condition', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_condition' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:biome': {\r\n biome_is: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:noise_threshold': {\r\n noise: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n min_threshold: (0, core_1.NumberNode)(),\r\n max_threshold: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:not': {\r\n invert: Reference('material_condition')\r\n },\r\n 'minecraft:stone_depth': {\r\n offset: (0, core_1.NumberNode)({ integer: true }),\r\n surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_surface_depth: (0, core_1.BooleanNode)(),\r\n secondary_depth_range: (0, core_1.NumberNode)({ integer: true }),\r\n },\r\n 'minecraft:vertical_gradient': {\r\n random_name: StringNode(),\r\n true_at_and_below: Reference('vertical_anchor'),\r\n false_at_and_above: Reference('vertical_anchor'),\r\n },\r\n 'minecraft:water': {\r\n offset: (0, core_1.NumberNode)({ integer: true }),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, core_1.BooleanNode)()\r\n },\r\n 'minecraft:y_above': {\r\n anchor: Reference('vertical_anchor'),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, core_1.BooleanNode)()\r\n }\r\n }\r\n }, { context: 'material_condition' }), {\r\n default: () => ({\r\n type: 'minecraft:biome',\r\n is_biome: 'minecraft:plains'\r\n })\r\n }));\r\n}\r\nexports.initSurfaceRuleSchemas = initSurfaceRuleSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('template_pool', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: (0, core_1.ListNode)(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldPresetSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldPresetSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('world_preset', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n dimensions: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$dimension', isDefinition: true } }), Reference('dimension'))\r\n }, { context: 'world_preset' }), {\r\n default: () => ({\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: 'minecraft:overworld',\r\n },\r\n settings: 'minecraft:overworld',\r\n },\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: 'minecraft:nether',\r\n },\r\n settings: 'minecraft:nether',\r\n },\r\n },\r\n 'minecraft:the_end': {\r\n type: 'minecraft:the_end',\r\n generator: {\r\n type: 'minecraft:noise',\r\n biome_source: {\r\n type: 'minecraft:the_end',\r\n },\r\n settings: 'minecraft:end',\r\n },\r\n },\r\n }\r\n })\r\n }));\r\n schemas.register('flat_level_generator_preset', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n settings: Reference('flat_generator_settings'),\r\n }), {\r\n default: () => ({\r\n display: 'minecraft:grass_block',\r\n settings: {\r\n lakes: false,\r\n features: false,\r\n biome: 'minecraft:plains',\r\n structure_overrides: [],\r\n layers: [\r\n {\r\n height: 3,\r\n block: 'minecraft:dirt'\r\n },\r\n {\r\n height: 1,\r\n block: 'minecraft:grass_block'\r\n }\r\n ]\r\n }\r\n })\r\n }));\r\n}\r\nexports.initWorldPresetSchemas = initWorldPresetSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst DensityFunction_1 = require(\"./DensityFunction\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst Structure_1 = require(\"./Structure\");\r\nconst StructureSet_1 = require(\"./StructureSet\");\r\nconst SurfaceRule_1 = require(\"./SurfaceRule\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nconst WorldPreset_1 = require(\"./WorldPreset\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts`, `DensityFunction.ts`, and `Biome.ts` have exports. They should be initialized first. \r\n (0, ProcessorList_1.initProcessorListSchemas)(schemas, collections);\r\n (0, DensityFunction_1.initDensityFunctionSchemas)(schemas, collections);\r\n (0, Biome_1.initBiomeSchemas)(schemas, collections);\r\n (0, Carver_1.initCarverSchemas)(schemas, collections);\r\n (0, Decorator_1.initDecoratorSchemas)(schemas, collections);\r\n (0, Feature_1.initFeatureSchemas)(schemas, collections);\r\n (0, NoiseSettings_1.initNoiseSettingsSchemas)(schemas, collections);\r\n (0, Structure_1.initStructureSchemas)(schemas, collections);\r\n (0, StructureSet_1.initStructureSetSchemas)(schemas, collections);\r\n (0, SurfaceRule_1.initSurfaceRuleSchemas)(schemas, collections);\r\n (0, TemplatePool_1.initTemplatePoolSchemas)(schemas, collections);\r\n (0, WorldPreset_1.initWorldPresetSchemas)(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n generate_features: (0, core_1.BooleanNode)(),\r\n bonus_chest: (0, core_1.BooleanNode)(),\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n dimensions: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:overworld\"\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:nether\"\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst ChatType_1 = require(\"./ChatType\");\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 (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, ChatType_1.initChatTypeSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, DimensionType_1.initDimensionTypeSchemas)(schemas, collections);\r\n (0, Dimension_1.initDimensionSchemas)(schemas, collections);\r\n (0, ItemModifier_1.initItemModifierSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, TextComponent_1.initTextComponentSchemas)(schemas, collections);\r\n (0, worldgen_1.initWorldgenSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, schemas_1.initSchemas)(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n"],"names":["core_1","require$$0","require$$1","Common_1","require$$2","ProcessorList_1","DensityFunction_1","Biome_1","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","this"],"mappings":"+1BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EACrC,GAAA,gBAAG,OAC1B,YAAyB,EAAa,CAClC,EAAY,SAAS,sBAAuB,CACxC,qCACA,4BACA,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,6BACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,yCACA,+BACA,uBACA,6BACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,gCACA,0BACA,yBACA,6BACA,2BACA,4BACA,wBACA,uBACA,iBACA,4CACA,4CACA,2BACA,uBACA,uBACA,2BACA,2BACR,CAAK,EACD,EAAY,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,SACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,MACR,CAAK,EACD,EAAY,SAAS,WAAY,CAC7B,WACA,WACA,YACA,WACR,CAAK,EACD,EAAY,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,eACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,eACA,OACA,SACA,eACR,CAAK,EACD,EAAY,SAAS,iCAAkC,CACnD,gCACA,sCACA,qBACR,CAAK,EACD,EAAY,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,cACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,SACR,CAAK,EACD,EAAY,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,iBACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,aACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,kBACR,CAAK,EACD,EAAY,SAAS,kBAAmB,CACpC,MACA,QACR,CAAK,EACD,EAAY,SAAS,kBAAmB,CACpC,iBACA,QACA,sBACA,yBACA,qBACA,cACA,mBACA,yBACA,gBACA,qBACA,wBACR,CAAK,EACD,EAAY,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,iBACR,CAAK,EACD,EAAY,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,QACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,QACA,SACA,UACA,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,OACR,CAAK,EACD,EAAY,SAAS,eAAgB,CACjC,QACA,SACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,OACA,KACA,QACA,OACA,QACA,MACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,IACA,IACA,GACR,CAAK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"} \ No newline at end of file diff --git a/assets/index.18869b2a.js b/assets/index.18869b2a.js new file mode 100644 index 00000000..0ffa1ad2 --- /dev/null +++ b/assets/index.18869b2a.js @@ -0,0 +1,131 @@ +var p1=Object.defineProperty,m1=Object.defineProperties;var g1=Object.getOwnPropertyDescriptors;var ks=Object.getOwnPropertySymbols;var Tu=Object.prototype.hasOwnProperty,Bu=Object.prototype.propertyIsEnumerable;var Iu=(e,t,n)=>t in e?p1(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ge=(e,t)=>{for(var n in t||(t={}))Tu.call(t,n)&&Iu(e,n,t[n]);if(ks)for(var n of ks(t))Bu.call(t,n)&&Iu(e,n,t[n]);return e},Je=(e,t)=>m1(e,g1(t));var Ko=e=>typeof e=="symbol"?e:e+"",Nu=(e,t)=>{var n={};for(var i in e)Tu.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(e!=null&&ks)for(var i of ks(e))t.indexOf(i)<0&&Bu.call(e,i)&&(n[i]=e[i]);return n};const _1=function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const s of r)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function n(r){const s={};return r.integrity&&(s.integrity=r.integrity),r.referrerpolicy&&(s.referrerPolicy=r.referrerpolicy),r.crossorigin==="use-credentials"?s.credentials="include":r.crossorigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function i(r){if(r.ep)return;r.ep=!0;const s=n(r);fetch(r.href,s)}};_1();var ue,Nr,Ff,Mu,If,ro={},Bl=[],v1=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function Nn(e,t){for(var n in t)e[n]=t[n];return e}function Tf(e){var t=e.parentNode;t&&t.removeChild(e)}function w(e,t,n){var i,r,s,o=arguments,a={};for(s in t)s=="key"?i=t[s]:s=="ref"?r=t[s]:a[s]=t[s];if(arguments.length>3)for(n=[n],s=3;s0?Mr(d.type,d.props,d.key,null,d.__v):d)!=null){if(d.__=n,d.__b=n.__b+1,(f=g[c])===null||f&&d.key==f.key&&d.type===f.type)g[c]=void 0;else for(p=0;p3)for(n=[n],s=3;st.rank?-1:e.index-t.index}function S1(e,t){return e.index=t,e.rank=k1(e),e.props}function Ha(e){return e.replace(/(^\/+|\/+$)/g,"").split("/")}function D1(e){return e.charAt(0)==":"?1+"*+?".indexOf(e.charAt(e.length-1))||4:5}function C1(e){return Ha(e).map(D1).join("")}function k1(e){return e.props.default?0:C1(e.props.path)}var Ot=null,pi=[],Va=[],F1={};function I1(e,t){t===void 0&&(t="push"),Ot&&Ot[t]?Ot[t](e):typeof history!="undefined"&&history[t+"State"]&&history[t+"State"](null,null,e)}function er(){var e;return Ot&&Ot.location?e=Ot.location:Ot&&Ot.getCurrentLocation?e=Ot.getCurrentLocation():e=typeof location!="undefined"?location:F1,""+(e.pathname||"")+(e.search||"")}function ii(e,t){return t===void 0&&(t=!1),typeof e!="string"&&e.url&&(t=e.replace,e=e.url),T1(e)&&I1(e,t?"replace":"push"),Hf(e)}function T1(e){for(var t=pi.length;t--;)if(pi[t].canRoute(e))return!0;return!1}function Hf(e){for(var t=!1,n=0;n0},t.prototype.routeTo=function(i){this.setState({url:i});var r=this.canRoute(i);return this.updating||this.forceUpdate(),r},t.prototype.componentWillMount=function(){pi.push(this),this.updating=!0},t.prototype.componentDidMount=function(){var i=this;Ot&&(this.unlisten=Ot.listen(function(r){i.routeTo(""+(r.pathname||"")+(r.search||""))})),this.updating=!1},t.prototype.componentWillUnmount=function(){typeof this.unlisten=="function"&&this.unlisten(),pi.splice(pi.indexOf(this),1)},t.prototype.componentWillUpdate=function(){this.updating=!0},t.prototype.componentDidUpdate=function(){this.updating=!1},t.prototype.getMatchingChildren=function(i,r,s){return i.filter(S1).sort(A1).map(function(o){var a=jf(r,o.props.path,o.props);if(a){if(s!==!1){var l={url:r,matches:a};return Uf(l,a),delete l.ref,delete l.key,zf(o,l)}return o}}).filter(Boolean)},t.prototype.render=function(i,r){var s=i.children,o=i.onChange,a=r.url,l=this.getMatchingChildren(nn(s),a,!0),u=l[0]||null,c=this.previousUrl;return a!==c&&(this.previousUrl=a,typeof o=="function"&&o({router:this,url:a,previous:c,active:l,current:u})),u},t}(tn),Jf=function(e){return w("a",Uf({onClick:B1},e))},O1=function(e){return w(e.component,e)};On.subscribers=Va;On.getCurrentUrl=er;On.route=ii;On.Router=On;On.Route=O1;On.Link=Jf;On.exec=jf;var it;(e=>{const t="Site",n="Generator";function u(y,A,b){ga("send","event",y,A,b)}function c(y,A){ga("set",`dimension${y}`,A)}function p(y){ga("set","page",y),ga("send","pageview")}e.pageview=p;function f(y){c(4,y),u(t,"set-language",y)}e.setLanguage=f;function d(y){c(1,y),u(t,"set-theme",y)}e.setTheme=d;function _(y){c(3,y),u(n,"set-version",y)}e.setVersion=_;function h(y){c(5,y),u(n,"set-preview",y)}e.setPreview=h;function m(y){c(6,y)}e.setGenerator=m;function g(y){c(7,y)}e.setPrefersColorScheme=g;function v(y,A){u(n,y,A)}e.generatorEvent=v})(it||(it={}));var Di,bt,$u,tr=0,Xa=[],zu=ue.__b,Uu=ue.__r,ju=ue.diffed,Hu=ue.__c,Vu=ue.unmount;function dr(e,t){ue.__h&&ue.__h(bt,e,tr||t),tr=0;var n=bt.__H||(bt.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function Y(e){return tr=1,Gf(Zf,e)}function Gf(e,t,n){var i=dr(Di++,2);return i.t=e,i.__c||(i.__=[n?n(t):Zf(void 0,t),function(r){var s=i.t(i.__[0],r);i.__[0]!==s&&(i.__=[s,i.__[1]],i.__c.setState({}))}],i.__c=bt),i.__}function me(e,t){var n=dr(Di++,3);!ue.__s&&Ml(n.__H,t)&&(n.__=e,n.__H=t,bt.__H.__h.push(n))}function Yf(e,t){var n=dr(Di++,4);!ue.__s&&Ml(n.__H,t)&&(n.__=e,n.__H=t,bt.__h.push(n))}function Pe(e){return tr=5,He(function(){return{current:e}},[])}function L1(e,t,n){tr=6,Yf(function(){typeof e=="function"?e(t()):e&&(e.current=t())},n==null?n:n.concat(e))}function He(e,t){var n=dr(Di++,7);return Ml(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function mt(e,t){return tr=8,He(function(){return e},t)}function pr(e){var t=bt.context[e.__c],n=dr(Di++,9);return n.__c=e,t?(n.__==null&&(n.__=!0,t.sub(bt)),t.props.value):e.__}function R1(e,t){ue.useDebugValue&&ue.useDebugValue(t?t(e):e)}function Wf(e){var t=dr(Di++,10),n=Y();return t.__=e,bt.componentDidCatch||(bt.componentDidCatch=function(i){t.__&&t.__(i),n[1](i)}),[n[0],function(){n[1](void 0)}]}function P1(){Xa.forEach(function(e){if(e.__P)try{e.__H.__h.forEach(Us),e.__H.__h.forEach(Ja),e.__H.__h=[]}catch(t){e.__H.__h=[],ue.__e(t,e.__v)}}),Xa=[]}ue.__b=function(e){bt=null,zu&&zu(e)},ue.__r=function(e){Uu&&Uu(e),Di=0;var t=(bt=e.__c).__H;t&&(t.__h.forEach(Us),t.__h.forEach(Ja),t.__h=[])},ue.diffed=function(e){ju&&ju(e);var t=e.__c;t&&t.__H&&t.__H.__h.length&&(Xa.push(t)!==1&&$u===ue.requestAnimationFrame||(($u=ue.requestAnimationFrame)||function(n){var i,r=function(){clearTimeout(s),Xu&&cancelAnimationFrame(i),setTimeout(n)},s=setTimeout(r,100);Xu&&(i=requestAnimationFrame(r))})(P1)),bt=void 0},ue.__c=function(e,t){t.some(function(n){try{n.__h.forEach(Us),n.__h=n.__h.filter(function(i){return!i.__||Ja(i)})}catch(i){t.some(function(r){r.__h&&(r.__h=[])}),t=[],ue.__e(i,n.__v)}}),Hu&&Hu(e,t)},ue.unmount=function(e){Vu&&Vu(e);var t=e.__c;if(t&&t.__H)try{t.__H.__.forEach(Us)}catch(n){ue.__e(n,t.__v)}};var Xu=typeof requestAnimationFrame=="function";function Us(e){var t=bt;typeof e.__c=="function"&&e.__c(),bt=t}function Ja(e){var t=bt;e.__c=e.__(),bt=t}function Ml(e,t){return!e||e.length!==t.length||t.some(function(n,i){return n!==e[i]})}function Zf(e,t){return typeof t=="function"?t(e):t}function ps({type:e,id:t}){return me(()=>{var n;(n=document.getElementById("ad-placeholder"))==null||n.remove(),"ethicalads"in window&ðicalads.load()},[]),w("div",{"data-ea-publisher":"misode-github-io","data-ea-type":e,class:"ad dark flat",id:t})}function fe({icon:e,label:t,active:n,class:i,tooltip:r,tooltipLoc:s,onClick:o}){return w("div",{class:`btn${n?" active":""}${i?` ${i}`:""}${r?` tooltipped tip-${s!=null?s:"sw"}`:""}${n?" tip-shown":""}`,onClick:o,"aria-label":r},e&&be[e],t&&w("span",null,t))}var ji=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function Kf(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var q={},En={},xn={};Object.defineProperty(xn,"__esModule",{value:!0});xn.ModelPath=xn.Path=xn.relativePath=void 0;function $1(e,t){return t.reduce((n,i)=>i==="pop"?n.pop():n.push(i.push),e)}xn.relativePath=$1;class Cn{constructor(t,n){this.modelArr=t!=null?t:[],this.contextArr=n!=null?n:[]}last(){return this.modelArr[this.modelArr.length-1]}slice(t,n){return new Cn(this.modelArr.slice(t,n),this.contextArr)}shift(){return new Cn(this.modelArr.slice(1),this.contextArr)}pop(){return new Cn(this.modelArr.slice(0,-1),this.contextArr)}push(t){return this.modelPush(t).contextPush(t)}modelPush(t){return new Cn([...this.modelArr,t],[...this.contextArr])}contextPush(t){if(typeof t=="number")return this.copy();const n=t.startsWith("minecraft:")?t.slice(10):t;return new Cn([...this.modelArr],[...this.contextArr,n])}copy(){return new Cn([...this.modelArr],[...this.contextArr])}getArray(){return this.modelArr}withModel(t){return new kn(t,this)}getContext(){return this.contextArr}equals(t){return t.modelArr.length===this.modelArr.length&&t.modelArr.every((n,i)=>n===this.modelArr[i])}startsWith(t){return this.modelArr.lengthn===this.modelArr[i])}endsWith(t){const n=this.modelArr.length-t.modelArr.length;return n<0?!1:t.modelArr.every((i,r)=>i===this.modelArr[n+r])}toString(){return this.modelArr.map(t=>typeof t=="string"?`.${t}`:`[${t}]`).join("").replace(/^\./,"")}forEach(t,n){return this.modelArr.forEach(t,n)}}xn.Path=Cn;class kn extends Cn{constructor(t,n){super(n==null?void 0:n.modelArr,n==null?void 0:n.contextArr),this.model=t}getModel(){return this.model}get(){var t;return(t=this.model)===null||t===void 0?void 0:t.get(this)}set(t){var n;(n=this.model)===null||n===void 0||n.set(this,t)}slice(t,n){return new kn(this.model,super.slice(t,n))}shift(){return new kn(this.model,super.shift())}pop(){return new kn(this.model,super.pop())}push(t){return this.modelPush(t).contextPush(t)}modelPush(t){return new kn(this.model,super.modelPush(t))}contextPush(t){return new kn(this.model,super.contextPush(t))}copy(){return new kn(this.model,super.copy())}}xn.ModelPath=kn;var mr={};Object.defineProperty(mr,"__esModule",{value:!0});mr.Errors=void 0;class z1{constructor(){this.errors=[]}add(t,n,...i){return this.errors.push({path:t,error:n,params:i}),!1}get(t,n=!1){return n?this.errors.filter(i=>i.path.equals(t)):this.errors.filter(i=>i.path.startsWith(t))}getAll(){return this.errors}clear(){this.errors=[]}count(){return this.errors.length}*[Symbol.iterator](){for(const t of this.errors)yield t}}mr.Errors=z1;var yn={};Object.defineProperty(yn,"__esModule",{value:!0});yn.hexId=yn.quoteString=yn.escapeString=void 0;function qf(e){return e.replace(/(\\|")/g,"\\$1")}yn.escapeString=qf;function U1(e){return`"${qf(e)}"`}yn.quoteString=U1;const j1=e=>("0"+e.toString(16)).substr(-2);function H1(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,j1).join("")}yn.hexId=H1;Object.defineProperty(En,"__esModule",{value:!0});En.DataModel=void 0;const V1=xn,Ju=mr,qo=yn;class Ol{constructor(t,n){var i,r,s,o;this.historyMax=(i=n==null?void 0:n.historyMax)!==null&&i!==void 0?i:50,this.verbose=(r=n==null?void 0:n.verbose)!==null&&r!==void 0?r:!1,this.wrapLists=(s=n==null?void 0:n.wrapLists)!==null&&s!==void 0?s:!1,this.schema=t;const a=(o=n==null?void 0:n.initialData)!==null&&o!==void 0?o:t.default();this.data=this.wrapLists?Ol.wrapLists(a):a,this.listeners=[],this.errors=new Ju.Errors,this.history=[JSON.stringify(this.data)],this.historyIndex=0}addListener(t){this.listeners.push(t)}removeListener(t){const n=this.listeners.indexOf(t);n>-1&&this.listeners.splice(n,1)}invalidate(){const t=JSON.stringify(this.data);this.history[this.historyIndex]!==t&&(this.historyIndex+=1,this.history.splice(this.historyIndex,this.historyMax,t),this.history.length>this.historyMax&&(this.history.splice(0,1),this.historyIndex-=1)),this.silentInvalidate()}silentInvalidate(){this.listeners.forEach(t=>{t.invalidated&&t.invalidated(this),t.errors&&t.errors(this.errors)})}reset(t,n){this.data=t,this.validate(n),this.invalidate()}get(t){let n=this.data;return t.forEach(i=>{if(n===void 0)return n;this.wrapLists&&typeof i=="number"?n=n[i].node:n=n[i]}),n}set(t,n,i){if(t.getArray().length===0){this.reset(n,!0);return}let r=this.data;t.pop().forEach(s=>{(r[s]===void 0||typeof r[s]=="string"||typeof r[s]=="number")&&(this.wrapLists&&typeof s=="number"?r[s]={node:{},id:(0,qo.hexId)()}:r[s]={}),this.wrapLists&&typeof s=="number"?r=r[s].node:r=r[s]}),r!==null&&(n===void 0||typeof n=="number"&&isNaN(n)?typeof t.last()=="number"?r.splice(t.last(),1):delete r[t.last()]:this.wrapLists&&typeof t.last()=="number"?r[t.last()]={node:n,id:(0,qo.hexId)()}:r[t.last()]=n,!i&&(this.verbose&&console.log("Set",t.toString(),JSON.stringify(n)),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{s.errors&&s.errors(r)})}static wrapLists(t){if(Array.isArray(t)){const n=t.map(i=>({node:this.wrapLists(i),id:(0,qo.hexId)()}));for(const i of Object.getOwnPropertySymbols(t))n[i]=t[i];return n}else if(typeof t=="object"&&t!==null){const n={};Object.entries(t).map(([i,r])=>{n[i]=this.wrapLists(r)});for(const i of Object.getOwnPropertySymbols(t))n[i]=t[i];return n}else return t}static unwrapLists(t){if(Array.isArray(t)){const n=t.map(i=>this.unwrapLists(i.node));for(const i of Object.getOwnPropertySymbols(t))n[i]=t[i];return n}else if(typeof t=="object"&&t!==null){const n={};Object.entries(t).map(([i,r])=>{n[i]=this.unwrapLists(r)});for(const i of Object.getOwnPropertySymbols(t))n[i]=t[i];return n}else return t}}En.DataModel=Ol;var zn={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.Keep=e.Opt=e.Has=e.Mod=e.Base=void 0,e.Base={type:()=>"base",category:()=>{},default:()=>{},enabled:()=>!0,keep:()=>!1,optional:()=>!1,navigate(){return this},pathPush:s=>s,suggest:()=>[],validate:(s,o)=>o,validationOption:()=>{},hook(s,o,...a){return s.base({node:this},o,...a)},canUpdate:()=>!1,update:()=>[]};const t=(s,o)=>ge(ge({},s),typeof o=="function"?o(s):o);e.Mod=t;const n=(s,o)=>(0,e.Mod)(o,{enabled:a=>a.push(s).get()!==void 0});e.Has=n;function i(s){return Je(ge({},s),{optional:()=>!0})}e.Opt=i;function r(s){return Je(ge({},s),{keep:()=>!0})}e.Keep=r})(zn);var So={};Object.defineProperty(So,"__esModule",{value:!0});So.BooleanNode=void 0;const X1=En,J1=zn,G1=()=>Je(ge({},J1.Base),{type:()=>"boolean",default:()=>!1,suggest:()=>["false","true"],validate(e,t,n,i){return i.loose&&typeof t!="boolean"&&(t=i.wrapLists?X1.DataModel.wrapLists(this.default()):this.default()),(typeof t!="boolean"||t===void 0)&&n.add(e,"error.expected_boolean"),t},hook(e,t,...n){var i;return((i=e.boolean)!==null&&i!==void 0?i:e.base).call(e,{node:this},t,...n)}});So.BooleanNode=G1;var Qf={},ms={};Object.defineProperty(ms,"__esModule",{value:!0});ms.ListNode=void 0;const Y1=En,W1=zn,Z1=(e,t)=>{var n,i;const r=(n=t==null?void 0:t.minLength)!==null&&n!==void 0?n:0,s=(i=t==null?void 0:t.maxLength)!==null&&i!==void 0?i:1/0,o=(t==null?void 0:t.minLength)&&(t==null?void 0:t.maxLength);return Je(ge({},W1.Base),{type:()=>"list",default:()=>t!=null&&t.minLength?[...Array(r)].map(a=>e.default()):[],navigate(a,l){const u=l+1;return a.getArray().length<=u?this:e.navigate(a,u)},pathPush(a,l){return a.push(parseInt(l.toString())).contextPush("entry")},validate(a,l,u,c){if(c.loose&&!Array.isArray(l)&&(l=c.wrapLists?Y1.DataModel.wrapLists(this.default()):this.default()),Array.isArray(l))o&&(l.lengths)?r===s?u.add(a,"error.invalid_list_range.exact",l.length,r):u.add(a,"error.invalid_list_range.between",l.length,r,s):l.lengths&&u.add(a,"error.invalid_list_range.larger",l.length,s);else return u.add(a,"error.expected_list"),l;const p=l.map((f,d)=>{const _=e.validate(a.push(d),c.wrapLists?f.node:f,u,c);return c.wrapLists?{node:_,id:f.id}:_});for(const f of Object.getOwnPropertySymbols(l))p[f]=l[f];return p},hook(a,l,...u){var c;return((c=a.list)!==null&&c!==void 0?c:a.base).call(a,{node:this,children:e,config:t!=null?t:{}},l,...u)}})};ms.ListNode=Z1;var gs={};Object.defineProperty(gs,"__esModule",{value:!0});gs.SwitchNode=void 0;const K1=zn,q1=e=>Je(ge({},K1.Base),{type(t){return this.activeCase(t,!0).node.type(t)},category(t){return this.activeCase(t,!0).node.category(t)},default:()=>e[0].node.default(),navigate(t,n){var i;const r=n+1;return(i=this.activeCase(t.slice(0,r)))===null||i===void 0?void 0:i.node.navigate(t,n)},pathPush(t,n){var i,r;return(r=(i=this.activeCase(t))===null||i===void 0?void 0:i.node.pathPush(t,n))!==null&&r!==void 0?r:t},suggest(t,n){var i,r;return(r=(i=this.activeCase(t))===null||i===void 0?void 0:i.node.suggest(t,n))!==null&&r!==void 0?r:e.filter(s=>s.match(t)).map(s=>s.node.suggest(t,n)).reduce((s,o)=>s.concat(o))},validate(t,n,i,r){let s=this.activeCase(t);return s===void 0?n:s.node.validate(t,n,i,r)},validationOption(t){var n;return(n=this.activeCase(t))===null||n===void 0?void 0:n.node.validationOption(t)},activeCase(t,n){const i=(s,o)=>{var a,l;return((a=o.priority)!==null&&a!==void 0?a:0)-((l=s.priority)!==null&&l!==void 0?l:0)},r=e.filter(s=>s.match(t)).sort(i);return n&&r.length===0?e.sort(i)[0]:r.length>0?r[0]:void 0},hook(t,n,...i){return this.activeCase(n,!0).node.hook(t,n,...i)}});gs.SwitchNode=q1;(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ObjectOrPreset=e.StringOrList=e.ObjectOrList=e.ChoiceNode=void 0;const t=ms,n=gs,i=(o,a)=>{const l=(c,p)=>{if(c.match)return c.match(p);switch(c.type){case"list":return Array.isArray(p);case"object":return typeof p=="object"&&!Array.isArray(p);default:return typeof p===c.type}},u=(0,n.SwitchNode)(o.map(c=>({type:c.type,priority:c.priority,match:p=>l(c,p.get()),node:c.node})));return Je(ge({},u),{validate(c,p,f,d){let _=u.activeCase(c,!0);return _.node.optional()?p:_.node.validate(c,p,f,d)},hook(c,p,...f){var d;return((d=c.choice)!==null&&d!==void 0?d:c.base).call(c,{node:this,choices:o,config:a!=null?a:{},switchNode:u},p,...f)}})};e.ChoiceNode=i;const r=o=>(a,l)=>(0,e.ChoiceNode)([{type:o,node:a,change:u=>{var c;return(c=u[0])!==null&&c!==void 0?c:a.default()}},{type:"list",node:(0,t.ListNode)(a),change:u=>u?[u]:[]}],l);e.ObjectOrList=r("object"),e.StringOrList=r("string");const s=(o,a,l)=>(0,e.ChoiceNode)([{type:"string",priority:1,node:o,change:u=>Object.keys(l)[0]},{type:"object",node:a,change:u=>{var c;return(c=l[u])!==null&&c!==void 0?c:l[Object.keys(l)[0]]}}]);e.ObjectOrPreset=s})(Qf);var Do={};Object.defineProperty(Do,"__esModule",{value:!0});Do.MapNode=void 0;const Q1=zn,em=En,tm=(e,t,n)=>Je(ge({},Q1.Base),{type:()=>"map",default:()=>({}),navigate(i,r){const s=r+1;return i.getArray().length<=s?this:t.navigate(i,s)},pathPush(i,r){return i.modelPush(r)},suggest:i=>e.suggest(i,""),validate(i,r,s,o){if(o.loose&&typeof r!="object"&&(r=o.wrapLists?em.DataModel.wrapLists(this.default()):this.default()),r===null||typeof r!="object")return s.add(i,"error.expected_object"),r;const a={};Object.keys(r).forEach(l=>{e.validate(i,l,s,o),a[l]=t.validate(i.push(l),r[l],s,o)});for(const l of Object.getOwnPropertySymbols(r))a[l]=r[l];return a},validationOption(i){var r;return(r=n==null?void 0:n.validation)!==null&&r!==void 0?r:e.validationOption(i.push(""))},hook(i,r,...s){var o;return((o=i.map)!==null&&o!==void 0?o:i.base).call(i,{node:this,keys:e,children:t,config:n!=null?n:{}},r,...s)}});Do.MapNode=tm;var e0={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.NumberEnum=e.NumberNode=void 0;const t=q,n=En,i=zn,r=o=>{var a,l,u;const c=o!=null&&o.color?!0:(a=o==null?void 0:o.integer)!==null&&a!==void 0?a:!1,p=o!=null&&o.color?0:(l=o==null?void 0:o.min)!==null&&l!==void 0?l:-1/0,f=o!=null&&o.color?16777215:(u=o==null?void 0:o.max)!==null&&u!==void 0?u:1/0,d=(o==null?void 0:o.min)!==void 0&&(o==null?void 0:o.max)!==void 0;return Je(ge({},i.Base),{type:()=>"number",default:()=>p>0?p:0,validate(_,h,m,g){return g.loose&&typeof h!="number"&&(h=g.wrapLists?n.DataModel.wrapLists(this.default()):this.default()),typeof h!="number"?m.add(_,"error.expected_number"):c&&!Number.isInteger(h)?m.add(_,"error.expected_integer"):d&&(hf)?m.add(_,"error.invalid_number_range.between",h,p,f):hf&&m.add(_,"error.invalid_number_range.larger",h,f),h},hook(_,h,...m){var g;return((g=_.number)!==null&&g!==void 0?g:_.base).call(_,{node:this,integer:c,min:p,max:f,between:d,config:o!=null?o:{}},h,...m)}})};e.NumberNode=r;const s=({integer:o,values:a})=>(0,t.Mod)((0,e.NumberNode)({integer:o}),l=>({validate:(u,c,p,f)=>(c=l.validate(u,c,p,f),a.includes(c)||p.add(u,"error.invalid_number_enum",a.join(", ")),c)}));e.NumberEnum=s})(e0);var t0={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ObjectNode=e.Case=e.Switch=void 0;const t=zn,n=xn,i=mr,r=yn,s=En;e.Switch=Symbol("switch"),e.Case=Symbol("case");const o=(a,l)=>{var _,h;const m=a,{[_=e.Switch]:u,[h=e.Case]:c}=m,p=Nu(m,[Ko(_),Ko(h)]),f=g=>{if(u===void 0)return p;const v=(0,n.relativePath)(g,u).get(),y=c[v];return ge(ge({},p),y)},d=(g,v)=>{var y;const A=u?(0,n.relativePath)(g,u).get():void 0,b=u?(y=c[A])!==null&&y!==void 0?y:{}:{},S=Object.keys(b),D=l!=null&&l.context?new n.ModelPath(g.getModel(),new n.Path(g.getArray(),[l.context])):g;return(!(l!=null&&l.disableSwitchContext)&&A&&S.includes(v)?D.contextPush(A):D).push(v)};return Je(ge({},t.Base),{type:()=>"object",category:()=>l==null?void 0:l.category,default:()=>({}),keep(){return this.optional()},navigate(g,v){const y=v+1,A=g.getArray();if(A.length<=y)return this;const S=f(g.slice(0,y))[A[y]];return S==null?void 0:S.navigate(g,y)},pathPush(g,v){return d(g,v.toString())},suggest(g,v){const y=f(g),A=Object.keys(typeof v=="object"?v:{});return Object.keys(y).filter(b=>y[b].enabled(g)).filter(b=>!A.includes(b)).map(r.quoteString)},validate(g,v,y,A){if(A.loose&&typeof v!="object"&&(v=A.wrapLists?s.DataModel.wrapLists(this.default()):this.default()),typeof v!="object"||v===null)return y.add(g,"error.expected_object"),v;let b=p;if(u){const B=(0,n.relativePath)(g,u);let M=B.get();if(g.equals(B.pop())){const U=B.last();M=p[U].validate(g.push(U),v[U],new i.Errors,A)}b=ge(ge({},b),c[M])}const S=Object.keys(b),D=S.filter(B=>!b[B].optional()),k=new Set([...D,...Object.keys(v)]),T={};k.forEach(B=>{if(S.includes(B)){if(!b[B].enabled(g))return;const M=b[B].validate(g.push(B),v[B],y,A);!b[B].keep()&&b[B].optional()&&(M===void 0||Array.isArray(M)&&M.length===0||M.constructor===Object&&Object.keys(M).length===0)?delete T[B]:(T[B]=M,g.getModel().set(g.push(B),M,!0))}else T[B]=v[B]});for(const B of Object.getOwnPropertySymbols(v))T[B]=v[B];return T},hook(g,v,...y){var A;return((A=g.object)!==null&&A!==void 0?A:g.base).call(g,{node:this,fields:p,config:l!=null?l:{},filter:u,cases:c,getActiveFields:f,getChildModelPath:d},v,...y)}})};e.ObjectNode=o})(t0);var Co={};Object.defineProperty(Co,"__esModule",{value:!0});Co.Reference=void 0;const nm=(e,t)=>({type(n){return e.get(t).type.bind(this)(n)},category(n){return e.get(t).category.bind(this)(n)},default(){return e.get(t).default.bind(this)()},transform(n,i){return e.get(t).transform(n,i)},enabled(n){return e.get(t).enabled.bind(this)(n)},keep(){return e.get(t).keep.bind(this)()},optional(){return e.get(t).optional.bind(this)()},navigate(n,i){return e.get(t).navigate.bind(this)(n,i)},pathPush(n,i){return e.get(t).pathPush.bind(this)(n,i)},suggest(n,i){return e.get(t).suggest.bind(this)(n,i)},validate(n,i,r,s){return e.get(t).validate.bind(this)(n,i,r,s)},validationOption(n){return e.get(t).validationOption.bind(this)(n)},hook(n,i,...r){return e.get(t).hook.bind(this)(n,i,...r)},activeCase(n,i){return e.get(t).activeCase.bind(this)(n,i)},canUpdate(n,i){return e.get(t).canUpdate.bind(this)(n,i)},update(n,i){return e.get(t).update.bind(this)(n,i)}});Co.Reference=nm;var ko={};Object.defineProperty(ko,"__esModule",{value:!0});ko.StringNode=void 0;const im=zn,rm=yn,sm=En,Gu=e=>!!(e!=null&&e.enum),Yu=e=>!!(e!=null&&e.validator),om=(e,t)=>{const n=()=>{var i,r,s,o;if(Gu(t))return typeof t.enum=="string"?(i=e==null?void 0:e.get(t.enum))!==null&&i!==void 0?i:[]:t.enum;if((t==null?void 0:t.validator)==="resource"){if(typeof t.params.pool=="string"){if(t.params.requireTag)return(r=e==null?void 0:e.get(`tag/${t.params.pool}`).map(l=>`#${l}`))!==null&&r!==void 0?r:[];const a=t.params.pool.replace(/^\$/,"");return[...t.params.allowTag?(s=e==null?void 0:e.get(`tag/${a}`).map(l=>`#${l}`))!==null&&s!==void 0?s:[]:[],...(o=e==null?void 0:e.get(a))!==null&&o!==void 0?o:[]]}return t.params.pool}return[]};return Je(ge({},im.Base),{type:()=>"string",default:()=>"",validate(i,r,s,o){if(o.loose&&typeof r!="string"&&(r=(o.wrapLists?sm.DataModel.wrapLists(this.default()):this.default())||void 0),typeof r!="string")return s.add(i,"error.expected_string"),r;if(Yu(t)){if(t.validator==="resource"&&r.length>0&&!r.includes(":")&&(r=r.startsWith("#")?"#minecraft:"+r.slice(1):"minecraft:"+r),t.validator==="resource"&&typeof r=="string"){let l=r;if(r.startsWith("#")){if(typeof t.params.pool=="string"&&t.params.pool.startsWith("$tag/"))return s.add(i,"error.disallowed_tag_prefix"),r;if(!t.params.allowTag&&!t.params.requireTag)return s.add(i,"error.disallowed_tag"),r;l=l.slice(1)}else if(t.params.requireTag)return s.add(i,"error.expected_tag"),r;if(!l.match(/^(?:[_\-a-z0-9.]*:)?[_\-a-z0-9/.]*$/g))return s.add(i,"error.invalid_resource_location"),r}if(t.validator==="resource"&&(typeof t.params.pool=="string"&&t.params.pool.startsWith("$")||(t.params.allowTag||t.params.requireTag)&&r.startsWith("#")||t.params.isDefinition||t.params.allowUnknown))return r}if(Gu(t)&&t.additional)return r;const a=n();return a.length>0&&!a.includes(r)&&s.add(i,"error.invalid_enum_option",r),r},suggest:()=>n().map(rm.quoteString),validationOption(){return Yu(t)?t:void 0},hook(i,r,...s){var o;return((o=i.string)!==null&&o!==void 0?o:i.base).call(i,{node:this,getValues:n,config:t},r,...s)}})};ko.StringNode=om;var n0={};Object.defineProperty(n0,"__esModule",{value:!0});var nr={};Object.defineProperty(nr,"__esModule",{value:!0});nr.CollectionRegistry=nr.SchemaRegistry=void 0;class am{constructor(){this.registry={}}register(t,n){this.registry[t]=n}get(t){const n=this.registry[t];return n===void 0&&console.error(`Tried to access schema "${t}", but that doesn't exist.`),n}}nr.SchemaRegistry=am;class lm{constructor(){this.registry={}}register(t,n){this.registry[t]=n}get(t){const n=this.registry[t];return n===void 0&&console.warn(`Tried to access collection "${t}", but that doesn't exist.`),n!=null?n:[]}}nr.CollectionRegistry=lm;var i0={};Object.defineProperty(i0,"__esModule",{value:!0});(function(e){var t=ji&&ji.__createBinding||(Object.create?function(i,r,s,o){o===void 0&&(o=s);var a=Object.getOwnPropertyDescriptor(r,s);(!a||("get"in a?!r.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return r[s]}}),Object.defineProperty(i,o,a)}:function(i,r,s,o){o===void 0&&(o=s),i[o]=r[s]}),n=ji&&ji.__exportStar||function(i,r){for(var s in i)s!=="default"&&!Object.prototype.hasOwnProperty.call(r,s)&&t(r,i,s)};Object.defineProperty(e,"__esModule",{value:!0}),n(En,e),n(xn,e),n(mr,e),n(zn,e),n(So,e),n(Qf,e),n(ms,e),n(Do,e),n(e0,e),n(t0,e),n(Co,e),n(ko,e),n(gs,e),n(n0,e),n(nr,e),n(i0,e)})(q);var et={},_s={},Kt={};function r0(e){return typeof e=="undefined"||e===null}function um(e){return typeof e=="object"&&e!==null}function cm(e){return Array.isArray(e)?e:r0(e)?[]:[e]}function hm(e,t){var n,i,r,s;if(t)for(s=Object.keys(t),n=0,i=s.length;n0&&`\0\r +\x85\u2028\u2029`.indexOf(this.buffer.charAt(r-1))===-1;)if(r-=1,this.position-r>n/2-1){i=" ... ",r+=5;break}for(s="",o=this.position;on/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(r,o),Wu.repeat(" ",t)+i+a+s+` +`+Wu.repeat(" ",t+this.position-r+i.length)+"^"};Ll.prototype.toString=function(t){var n,i="";return this.name&&(i+='in "'+this.name+'" '),i+="at line "+(this.line+1)+", column "+(this.column+1),t||(n=this.getSnippet(),n&&(i+=`: +`+n)),i};var pm=Ll,Zu=vs,mm=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],gm=["scalar","sequence","mapping"];function _m(e){var t={};return e!==null&&Object.keys(e).forEach(function(n){e[n].forEach(function(i){t[String(i)]=n})}),t}function vm(e,t){if(t=t||{},Object.keys(t).forEach(function(n){if(mm.indexOf(n)===-1)throw new Zu('Unknown option "'+n+'" is met in definition of "'+e+'" YAML type.')}),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(n){return n},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=_m(t.styleAliases||null),gm.indexOf(this.kind)===-1)throw new Zu('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}var gt=vm,Ku=Kt,js=vs,xm=gt;function Ga(e,t,n){var i=[];return e.include.forEach(function(r){n=Ga(r,t,n)}),e[t].forEach(function(r){n.forEach(function(s,o){s.tag===r.tag&&s.kind===r.kind&&i.push(o)}),n.push(r)}),n.filter(function(r,s){return i.indexOf(s)===-1})}function ym(){var e={scalar:{},sequence:{},mapping:{},fallback:{}},t,n;function i(r){e[r.kind][r.tag]=e.fallback[r.tag]=r}for(t=0,n=arguments.length;t=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),s0=Kt,Gm=gt,Ym=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Wm(e){return!(e===null||!Ym.test(e)||e[e.length-1]==="_")}function Zm(e){var t,n,i,r;return t=e.replace(/_/g,"").toLowerCase(),n=t[0]==="-"?-1:1,r=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),t===".inf"?n===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:t===".nan"?NaN:t.indexOf(":")>=0?(t.split(":").forEach(function(s){r.unshift(parseFloat(s,10))}),t=0,i=1,r.forEach(function(s){t+=s*i,i*=60}),n*t):n*parseFloat(t,10)}var Km=/^[-+]?[0-9]+e/;function qm(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(s0.isNegativeZero(e))return"-0.0";return n=e.toString(10),Km.test(n)?n.replace("e",".e"):n}function Qm(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||s0.isNegativeZero(e))}var eg=new Gm("tag:yaml.org,2002:float",{kind:"scalar",resolve:Wm,construct:Zm,predicate:Qm,represent:qm,defaultStyle:"lowercase"}),tg=gr,o0=new tg({include:[Rl],implicit:[Bm,Rm,Jm,eg]}),ng=gr,a0=new ng({include:[o0]}),ig=gt,l0=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),u0=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function rg(e){return e===null?!1:l0.exec(e)!==null||u0.exec(e)!==null}function sg(e){var t,n,i,r,s,o,a,l=0,u=null,c,p,f;if(t=l0.exec(e),t===null&&(t=u0.exec(e)),t===null)throw new Error("Date resolve error");if(n=+t[1],i=+t[2]-1,r=+t[3],!t[4])return new Date(Date.UTC(n,i,r));if(s=+t[4],o=+t[5],a=+t[6],t[7]){for(l=t[7].slice(0,3);l.length<3;)l+="0";l=+l}return t[9]&&(c=+t[10],p=+(t[11]||0),u=(c*60+p)*6e4,t[9]==="-"&&(u=-u)),f=new Date(Date.UTC(n,i,r,s,o,a,l)),u&&f.setTime(f.getTime()-u),f}function og(e){return e.toISOString()}var ag=new ig("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:rg,construct:sg,instanceOf:Date,represent:og}),lg=gt;function ug(e){return e==="<<"||e===null}var cg=new lg("tag:yaml.org,2002:merge",{kind:"scalar",resolve:ug}),hi;try{var hg=Kf;hi=hg("buffer").Buffer}catch{}var fg=gt,Pl=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function dg(e){if(e===null)return!1;var t,n,i=0,r=e.length,s=Pl;for(n=0;n64)){if(t<0)return!1;i+=6}return i%8===0}function pg(e){var t,n,i=e.replace(/[\r\n=]/g,""),r=i.length,s=Pl,o=0,a=[];for(t=0;t>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(i.charAt(t));return n=r%4*6,n===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):n===18?(a.push(o>>10&255),a.push(o>>2&255)):n===12&&a.push(o>>4&255),hi?hi.from?hi.from(a):new hi(a):a}function mg(e){var t="",n=0,i,r,s=e.length,o=Pl;for(i=0;i>18&63],t+=o[n>>12&63],t+=o[n>>6&63],t+=o[n&63]),n=(n<<8)+e[i];return r=s%3,r===0?(t+=o[n>>18&63],t+=o[n>>12&63],t+=o[n>>6&63],t+=o[n&63]):r===2?(t+=o[n>>10&63],t+=o[n>>4&63],t+=o[n<<2&63],t+=o[64]):r===1&&(t+=o[n>>2&63],t+=o[n<<4&63],t+=o[64],t+=o[64]),t}function gg(e){return hi&&hi.isBuffer(e)}var _g=new fg("tag:yaml.org,2002:binary",{kind:"scalar",resolve:dg,construct:pg,predicate:gg,represent:mg}),vg=gt,xg=Object.prototype.hasOwnProperty,yg=Object.prototype.toString;function wg(e){if(e===null)return!0;var t=[],n,i,r,s,o,a=e;for(n=0,i=a.length;n3||t[t.length-i.length-1]!=="/"))}function Hg(e){var t=e,n=/\/([gim]*)$/.exec(e),i="";return t[0]==="/"&&(n&&(i=n[1]),t=t.slice(1,t.length-i.length-1)),new RegExp(t,i)}function Vg(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}function Xg(e){return Object.prototype.toString.call(e)==="[object RegExp]"}var Jg=new Ug("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:jg,construct:Hg,predicate:Xg,represent:Vg}),ao;try{var Gg=Kf;ao=Gg("esprima")}catch{typeof window!="undefined"&&(ao=window.esprima)}var Yg=gt;function Wg(e){if(e===null)return!1;try{var t="("+e+")",n=ao.parse(t,{range:!0});return!(n.type!=="Program"||n.body.length!==1||n.body[0].type!=="ExpressionStatement"||n.body[0].expression.type!=="ArrowFunctionExpression"&&n.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function Zg(e){var t="("+e+")",n=ao.parse(t,{range:!0}),i=[],r;if(n.type!=="Program"||n.body.length!==1||n.body[0].type!=="ExpressionStatement"||n.body[0].expression.type!=="ArrowFunctionExpression"&&n.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return n.body[0].expression.params.forEach(function(s){i.push(s.name)}),r=n.body[0].expression.body.range,n.body[0].expression.body.type==="BlockStatement"?new Function(i,t.slice(r[0]+1,r[1]-1)):new Function(i,"return "+t.slice(r[0],r[1]))}function Kg(e){return e.toString()}function qg(e){return Object.prototype.toString.call(e)==="[object Function]"}var Qg=new Yg("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:Wg,construct:Zg,predicate:qg,represent:Kg}),qu=gr,Fo=qu.DEFAULT=new qu({include:[xs],explicit:[zg,Jg,Qg]}),Bn=Kt,c0=vs,e_=pm,h0=xs,t_=Fo,ri=Object.prototype.hasOwnProperty,lo=1,f0=2,d0=3,uo=4,Qo=1,n_=2,Qu=3,i_=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,r_=/[\x85\u2028\u2029]/,s_=/[,\[\]\{\}]/,p0=/^(?:!|!!|![a-z\-]+!)$/i,m0=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function ec(e){return Object.prototype.toString.call(e)}function wn(e){return e===10||e===13}function mi(e){return e===9||e===32}function It(e){return e===9||e===32||e===10||e===13}function Vi(e){return e===44||e===91||e===93||e===123||e===125}function o_(e){var t;return 48<=e&&e<=57?e-48:(t=e|32,97<=t&&t<=102?t-97+10:-1)}function a_(e){return e===120?2:e===117?4:e===85?8:0}function l_(e){return 48<=e&&e<=57?e-48:-1}function tc(e){return e===48?"\0":e===97?"\x07":e===98?"\b":e===116||e===9?" ":e===110?` +`:e===118?"\v":e===102?"\f":e===114?"\r":e===101?"\x1B":e===32?" ":e===34?'"':e===47?"/":e===92?"\\":e===78?"\x85":e===95?"\xA0":e===76?"\u2028":e===80?"\u2029":""}function u_(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}var g0=new Array(256),_0=new Array(256);for(var Ii=0;Ii<256;Ii++)g0[Ii]=tc(Ii)?1:0,_0[Ii]=tc(Ii);function c_(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||t_,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function v0(e,t){return new c0(t,new e_(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function de(e,t){throw v0(e,t)}function co(e,t){e.onWarning&&e.onWarning.call(null,v0(e,t))}var nc={YAML:function(t,n,i){var r,s,o;t.version!==null&&de(t,"duplication of %YAML directive"),i.length!==1&&de(t,"YAML directive accepts exactly one argument"),r=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),r===null&&de(t,"ill-formed argument of the YAML directive"),s=parseInt(r[1],10),o=parseInt(r[2],10),s!==1&&de(t,"unacceptable YAML version of the document"),t.version=i[0],t.checkLineBreaks=o<2,o!==1&&o!==2&&co(t,"unsupported YAML version of the document")},TAG:function(t,n,i){var r,s;i.length!==2&&de(t,"TAG directive accepts exactly two arguments"),r=i[0],s=i[1],p0.test(r)||de(t,"ill-formed tag handle (first argument) of the TAG directive"),ri.call(t.tagMap,r)&&de(t,'there is a previously declared suffix for "'+r+'" tag handle'),m0.test(s)||de(t,"ill-formed tag prefix (second argument) of the TAG directive"),t.tagMap[r]=s}};function qn(e,t,n,i){var r,s,o,a;if(t1&&(e.result+=Bn.repeat(` +`,t-1))}function h_(e,t,n){var i,r,s,o,a,l,u,c,p=e.kind,f=e.result,d;if(d=e.input.charCodeAt(e.position),It(d)||Vi(d)||d===35||d===38||d===42||d===33||d===124||d===62||d===39||d===34||d===37||d===64||d===96||(d===63||d===45)&&(r=e.input.charCodeAt(e.position+1),It(r)||n&&Vi(r)))return!1;for(e.kind="scalar",e.result="",s=o=e.position,a=!1;d!==0;){if(d===58){if(r=e.input.charCodeAt(e.position+1),It(r)||n&&Vi(r))break}else if(d===35){if(i=e.input.charCodeAt(e.position-1),It(i))break}else{if(e.position===e.lineStart&&Io(e)||n&&Vi(d))break;if(wn(d))if(l=e.line,u=e.lineStart,c=e.lineIndent,at(e,!1,-1),e.lineIndent>=t){a=!0,d=e.input.charCodeAt(e.position);continue}else{e.position=o,e.line=l,e.lineStart=u,e.lineIndent=c;break}}a&&(qn(e,s,o,!1),zl(e,e.line-l),s=o=e.position,a=!1),mi(d)||(o=e.position+1),d=e.input.charCodeAt(++e.position)}return qn(e,s,o,!1),e.result?!0:(e.kind=p,e.result=f,!1)}function f_(e,t){var n,i,r;if(n=e.input.charCodeAt(e.position),n!==39)return!1;for(e.kind="scalar",e.result="",e.position++,i=r=e.position;(n=e.input.charCodeAt(e.position))!==0;)if(n===39)if(qn(e,i,e.position,!0),n=e.input.charCodeAt(++e.position),n===39)i=e.position,e.position++,r=e.position;else return!0;else wn(n)?(qn(e,i,r,!0),zl(e,at(e,!1,t)),i=r=e.position):e.position===e.lineStart&&Io(e)?de(e,"unexpected end of the document within a single quoted scalar"):(e.position++,r=e.position);de(e,"unexpected end of the stream within a single quoted scalar")}function d_(e,t){var n,i,r,s,o,a;if(a=e.input.charCodeAt(e.position),a!==34)return!1;for(e.kind="scalar",e.result="",e.position++,n=i=e.position;(a=e.input.charCodeAt(e.position))!==0;){if(a===34)return qn(e,n,e.position,!0),e.position++,!0;if(a===92){if(qn(e,n,e.position,!0),a=e.input.charCodeAt(++e.position),wn(a))at(e,!1,t);else if(a<256&&g0[a])e.result+=_0[a],e.position++;else if((o=a_(a))>0){for(r=o,s=0;r>0;r--)a=e.input.charCodeAt(++e.position),(o=o_(a))>=0?s=(s<<4)+o:de(e,"expected hexadecimal character");e.result+=u_(s),e.position++}else de(e,"unknown escape sequence");n=i=e.position}else wn(a)?(qn(e,n,i,!0),zl(e,at(e,!1,t)),n=i=e.position):e.position===e.lineStart&&Io(e)?de(e,"unexpected end of the document within a double quoted scalar"):(e.position++,i=e.position)}de(e,"unexpected end of the stream within a double quoted scalar")}function p_(e,t){var n=!0,i,r=e.tag,s,o=e.anchor,a,l,u,c,p,f={},d,_,h,m;if(m=e.input.charCodeAt(e.position),m===91)l=93,p=!1,s=[];else if(m===123)l=125,p=!0,s={};else return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=s),m=e.input.charCodeAt(++e.position);m!==0;){if(at(e,!0,t),m=e.input.charCodeAt(e.position),m===l)return e.position++,e.tag=r,e.anchor=o,e.kind=p?"mapping":"sequence",e.result=s,!0;n||de(e,"missed comma between flow collection entries"),_=d=h=null,u=c=!1,m===63&&(a=e.input.charCodeAt(e.position+1),It(a)&&(u=c=!0,e.position++,at(e,!0,t))),i=e.line,ir(e,t,lo,!1,!0),_=e.tag,d=e.result,at(e,!0,t),m=e.input.charCodeAt(e.position),(c||e.line===i)&&m===58&&(u=!0,m=e.input.charCodeAt(++e.position),at(e,!0,t),ir(e,t,lo,!1,!0),h=e.result),p?Xi(e,s,f,_,d,h):u?s.push(Xi(e,null,f,_,d,h)):s.push(d),at(e,!0,t),m=e.input.charCodeAt(e.position),m===44?(n=!0,m=e.input.charCodeAt(++e.position)):n=!1}de(e,"unexpected end of the stream within a flow collection")}function m_(e,t){var n,i,r=Qo,s=!1,o=!1,a=t,l=0,u=!1,c,p;if(p=e.input.charCodeAt(e.position),p===124)i=!1;else if(p===62)i=!0;else return!1;for(e.kind="scalar",e.result="";p!==0;)if(p=e.input.charCodeAt(++e.position),p===43||p===45)Qo===r?r=p===43?Qu:n_:de(e,"repeat of a chomping mode identifier");else if((c=l_(p))>=0)c===0?de(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?de(e,"repeat of an indentation width identifier"):(a=t+c-1,o=!0);else break;if(mi(p)){do p=e.input.charCodeAt(++e.position);while(mi(p));if(p===35)do p=e.input.charCodeAt(++e.position);while(!wn(p)&&p!==0)}for(;p!==0;){for($l(e),e.lineIndent=0,p=e.input.charCodeAt(e.position);(!o||e.lineIndenta&&(a=e.lineIndent),wn(p)){l++;continue}if(e.lineIndentt)&&l!==0)de(e,"bad indentation of a sequence entry");else if(e.lineIndentt)&&(ir(e,t,uo,!0,r)&&(_?f=e.result:d=e.result),_||(Xi(e,u,c,p,f,d,s,o),p=f=d=null),at(e,!0,-1),m=e.input.charCodeAt(e.position)),e.lineIndent>t&&m!==0)de(e,"bad indentation of a mapping entry");else if(e.lineIndentt?l=1:e.lineIndent===t?l=0:e.lineIndentt?l=1:e.lineIndent===t?l=0:e.lineIndent tag; it should be "scalar", not "'+e.kind+'"'),p=0,f=e.implicitTypes.length;p tag; it should be "'+d.kind+'", not "'+e.kind+'"'),d.resolve(e.result)?(e.result=d.construct(e.result),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):de(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):de(e,"unknown tag !<"+e.tag+">");return e.listener!==null&&e.listener("close",e),e.tag!==null||e.anchor!==null||c}function y_(e){var t=e.position,n,i,r,s=!1,o;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};(o=e.input.charCodeAt(e.position))!==0&&(at(e,!0,-1),o=e.input.charCodeAt(e.position),!(e.lineIndent>0||o!==37));){for(s=!0,o=e.input.charCodeAt(++e.position),n=e.position;o!==0&&!It(o);)o=e.input.charCodeAt(++e.position);for(i=e.input.slice(n,e.position),r=[],i.length<1&&de(e,"directive name must not be less than one character in length");o!==0;){for(;mi(o);)o=e.input.charCodeAt(++e.position);if(o===35){do o=e.input.charCodeAt(++e.position);while(o!==0&&!wn(o));break}if(wn(o))break;for(n=e.position;o!==0&&!It(o);)o=e.input.charCodeAt(++e.position);r.push(e.input.slice(n,e.position))}o!==0&&$l(e),ri.call(nc,i)?nc[i](e,i,r):co(e,'unknown document directive "'+i+'"')}if(at(e,!0,-1),e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45?(e.position+=3,at(e,!0,-1)):s&&de(e,"directives end mark is expected"),ir(e,e.lineIndent-1,uo,!1,!0),at(e,!0,-1),e.checkLineBreaks&&r_.test(e.input.slice(t,e.position))&&co(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&Io(e)){e.input.charCodeAt(e.position)===46&&(e.position+=3,at(e,!0,-1));return}if(e.position0?e.charCodeAt(s-1):null,f=f&&ac(o,a)}else{for(s=0;si&&e[p+1]!==" ",p=s);else if(!rr(o))return Hs;a=s>0?e.charCodeAt(s-1):null,f=f&&ac(o,a)}u=u||c&&s-p-1>i&&e[p+1]!==" "}return!l&&!u?f&&!r(e)?B0:N0:n>9&&T0(e)?Hs:u?O0:M0}function Y_(e,t,n,i){e.dump=function(){if(t.length===0)return"''";if(!e.noCompatMode&&U_.indexOf(t)!==-1)return"'"+t+"'";var r=e.indent*Math.max(1,n),s=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-r),o=i||e.flowLevel>-1&&n>=e.flowLevel;function a(l){return V_(e,l)}switch(G_(t,o,e.indent,s,a)){case B0:return t;case N0:return"'"+t.replace(/'/g,"''")+"'";case M0:return"|"+lc(t,e.indent)+uc(oc(t,r));case O0:return">"+lc(t,e.indent)+uc(oc(W_(t,s),r));case Hs:return'"'+Z_(t)+'"';default:throw new ws("impossible error: invalid scalar style")}}()}function lc(e,t){var n=T0(e)?String(t):"",i=e[e.length-1]===` +`,r=i&&(e[e.length-2]===` +`||e===` +`),s=r?"+":i?"":"-";return n+s+` +`}function uc(e){return e[e.length-1]===` +`?e.slice(0,-1):e}function W_(e,t){for(var n=/(\n+)([^\n]*)/g,i=function(){var u=e.indexOf(` +`);return u=u!==-1?u:e.length,n.lastIndex=u,cc(e.slice(0,u),t)}(),r=e[0]===` +`||e[0]===" ",s,o;o=n.exec(e);){var a=o[1],l=o[2];s=l[0]===" ",i+=a+(!r&&!s&&l!==""?` +`:"")+cc(l,t),r=s}return i}function cc(e,t){if(e===""||e[0]===" ")return e;for(var n=/ [^ ]/g,i,r=0,s,o=0,a=0,l="";i=n.exec(e);)a=i.index,a-r>t&&(s=o>r?o:a,l+=` +`+e.slice(r,s),r=s+1),o=a;return l+=` +`,e.length-r>t&&o>r?l+=e.slice(r,o)+` +`+e.slice(o+1):l+=e.slice(r),l.slice(1)}function Z_(e){for(var t="",n,i,r,s=0;s=55296&&n<=56319&&(i=e.charCodeAt(s+1),i>=56320&&i<=57343)){t+=sc((n-55296)*1024+i-56320+65536),s++;continue}r=Dt[n],t+=!r&&rr(n)?e[s]:r||sc(n)}return t}function K_(e,t,n){var i="",r=e.tag,s,o;for(s=0,o=n.length;s1024&&(c+="? "),c+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),xi(e,t,u,!1,!1)&&(c+=e.dump,i+=c));e.tag=r,e.dump="{"+i+"}"}function ev(e,t,n,i){var r="",s=e.tag,o=Object.keys(n),a,l,u,c,p,f;if(e.sortKeys===!0)o.sort();else if(typeof e.sortKeys=="function")o.sort(e.sortKeys);else if(e.sortKeys)throw new ws("sortKeys must be a boolean or a function");for(a=0,l=o.length;a1024,p&&(e.dump&&Xr===e.dump.charCodeAt(0)?f+="?":f+="? "),f+=e.dump,p&&(f+=Ya(e,t)),xi(e,t+1,c,!0,p)&&(e.dump&&Xr===e.dump.charCodeAt(0)?f+=":":f+=": ",f+=e.dump,r+=f));e.tag=s,e.dump=r||"{}"}function hc(e,t,n){var i,r,s,o,a,l;for(r=n?e.explicitTypes:e.implicitTypes,s=0,o=r.length;s tag resolver accepts not "'+l+'" style');e.dump=i}return!0}return!1}function xi(e,t,n,i,r,s){e.tag=null,e.dump=n,hc(e,n,!1)||hc(e,n,!0);var o=E0.call(e.dump);i&&(i=e.flowLevel<0||e.flowLevel>t);var a=o==="[object Object]"||o==="[object Array]",l,u;if(a&&(l=e.duplicates.indexOf(n),u=l!==-1),(e.tag!==null&&e.tag!=="?"||u||e.indent!==2&&t>0)&&(r=!1),u&&e.usedDuplicates[l])e.dump="*ref_"+l;else{if(a&&u&&!e.usedDuplicates[l]&&(e.usedDuplicates[l]=!0),o==="[object Object]")i&&Object.keys(e.dump).length!==0?(ev(e,t,e.dump,r),u&&(e.dump="&ref_"+l+e.dump)):(Q_(e,t,e.dump),u&&(e.dump="&ref_"+l+" "+e.dump));else if(o==="[object Array]"){var c=e.noArrayIndent&&t>0?t-1:t;i&&e.dump.length!==0?(q_(e,c,e.dump,r),u&&(e.dump="&ref_"+l+e.dump)):(K_(e,c,e.dump),u&&(e.dump="&ref_"+l+" "+e.dump))}else if(o==="[object String]")e.tag!=="?"&&Y_(e,e.dump,t,s);else{if(e.skipInvalid)return!1;throw new ws("unacceptable kind of an object to dump "+o)}e.tag!==null&&e.tag!=="?"&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function tv(e,t){var n=[],i=[],r,s;for(Wa(e,n,i),r=0,s=i.length;r("0"+e.toString(16)).substr(-2);function gi(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,av).join("")}function Ln(){return BigInt(Math.floor(Math.random()*Number.MAX_SAFE_INTEGER))}function P0(e){const t=Math.floor(Math.random()*4294967296)-2147483648,n=e.get(new q.Path(["dimensions"]));e.set(new q.Path(["seed"]),t,!0),Ci(n)&&Object.keys(n).forEach(i=>{e.set(new q.Path(["dimensions",i,"generator","seed"]),t,!0),e.set(new q.Path(["dimensions",i,"generator","biome_source","seed"]),t,!0)}),e.set(new q.Path(["placement","salt"]),Math.abs(t),!0),e.set(new q.Path(["generator","seed"]),t,!0),e.set(new q.Path(["generator","biome_source","seed"]),t)}function $0(e){let t=0;for(let n=0;n=0&&(e=e.slice(0,t)),Rn(e)}function z0(e){const t=lv(e).replace(/^\//,"").replace(/\/$/,"");return Ne.generators.find(n=>n.url===t)}function U0({path:e,search:t,hash:n,replace:i}){const r=(e!==void 0?Rn(e):location.pathname)+(t!==void 0?t.startsWith("?")||t.length===0?t:"?"+t:location.search)+(n!==void 0?n.startsWith("#")?n:"#"+n:location.hash);ii(r,i)}function uv(e){const t=Za.load(e.substring(3,e.indexOf("---",3)));return Ci(t)?t:{}}function cv(e,t){var i;let n=0;for(;;){const r=e.indexOf("{#",n);if(r<0)break;const s=hv(e,r+2),o=e.indexOf("#[",r+1);let a="";if(o>=0&&oc.id===t);a=(i={version:u==null?void 0:u.id,pack_format:u==null?void 0:u.pack_format.toString()}[l])!=null?i:""}e=e.substring(0,r)+a+e.substring(s+2),n=r}return e}function hv(e,t){let n=0,i=0;for(;i++<1e3;){const r=e.indexOf("#}",t),s=e.indexOf("{#",t);if(r<0)return console.warn("Missing closing bracket"),e.length;if(s<0){if(n===0)return r;n-=1,t=r+2}else if(s>8)%256,(t>>16)%256]}function wr(e){return e*e}function Lt(e,t,n){return Math.max(e,Math.min(t,n))}function ea(e,t,n){return n<0?e:n>1?t:Vs(n,e,t)}function Vs(e,t,n){return t+e*(n-t)}function fv(e,t,n,i,r,s){return Vs(t,Vs(e,n,i),Vs(e,r,s))}function Yt(e){return e instanceof Error?e.message:`${e}`}const No=rv();function yi(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;let n,i;if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(i=0;i{}:f=>{const d=f.target.value;l==null||l(d)},c=Pe(null);me(()=>{r&&c.current&&c.current.select()},[r]);const p=a&&gi();return w("div",{class:`btn btn-input ${n?"large-input":""} ${i?"larger-input":""}`,onClick:f=>f.stopPropagation()},e&&be[e],t&&w("span",null,t),w("input",{ref:c,type:"text",value:s,onChange:u,placeholder:o,list:p}),a&&w("datalist",{id:p},a.map(f=>w("option",{value:f}))))}function Sr({cooldown:e,invert:t,initial:n}={}){const[i,r]=Y(n),s=Pe(void 0);return[i,()=>{r(!t),s.current!==void 0&&clearTimeout(s.current),s.current=setTimeout(()=>{r(!!t)},e!=null?e:2e3)}]}function Es({size:e,draw:t,onDrag:n,onHover:i,onLeave:r},s){const o=Pe(null),a=Pe(),l=Pe(),u=Pe([0,0]),c=Pe(!1);me(()=>{const d=g=>{a.current=[g.offsetX,g.offsetY]},_=g=>{if(a.current===void 0){const A=g.offsetX/o.current.clientWidth,b=g.offsetY/o.current.clientHeight;i==null||i(A,b);return}if(!n)return;const v=g.offsetX-a.current[0],y=g.offsetY-a.current[1];v===0&&y===0||(u.current=[u.current[0]+v,u.current[1]+y],c.current||(cancelAnimationFrame(l.current),l.current=requestAnimationFrame(async()=>{c.current=!0;const A=u.current[0]/o.current.clientWidth,b=u.current[1]/o.current.clientHeight;u.current=[0,0],await(n==null?void 0:n(A,b)),c.current=!1}))),a.current=[g.offsetX,g.offsetY]},h=()=>{a.current=void 0},m=()=>{r==null||r()};return o.current.addEventListener("mousedown",d),o.current.addEventListener("mousemove",_),o.current.addEventListener("mouseleave",m),document.body.addEventListener("mouseup",h),()=>{var g,v,y;(g=o.current)==null||g.removeEventListener("mousedown",d),(v=o.current)==null||v.removeEventListener("mousemove",_),(y=o.current)==null||y.removeEventListener("mouseleave",m),document.body.removeEventListener("mouseup",h)}},[...s!=null?s:[],o.current]);const p=Pe(),f=Pe(0);return p.current=async()=>{const d=o.current.getContext("2d"),_=e();o.current.width=_[0],o.current.height=_[1];const h=d.getImageData(0,0,_[0],_[1]),m=f.current+=1;try{await t(h)}catch(g){throw g}m===f.current&&d.putImageData(h,0,0)},{canvas:o,redraw:p.current}}function Hl(){const[e,t]=Y(!1),n=()=>{t(!1)};return me(()=>(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 pv(){const[e,t]=Y(window.location.hash),n=mt(()=>{t(window.location.hash)},[]);me(()=>(window.addEventListener("hashchange",n),window.addEventListener("replacestate",n),()=>{window.removeEventListener("hashchange",n),window.removeEventListener("replacestate",n)}),[]);const i=mt(r=>{r!==e&&U0({hash:r})},[e]);return[e,i]}function fc(e){const[t,n]=Y(matchMedia(e).matches),i=r=>{n(r.matches)};return me(()=>{const r=matchMedia(e);return r.addEventListener("change",i),()=>{r.removeEventListener("change",i)}},[e]),t}function Mo(e,t,n){const i={invalidated(){e&&t(e)}};me(()=>(e==null||e.addListener(i),()=>{e==null||e.removeListener(i)}),[e,...n!=null?n:[]])}const dc=(e,t)=>{var n;return(n=new URLSearchParams(e).get(t))!=null?n:void 0};function Jr(e){const t=window.location,[n,i]=Y(dc(t.search,e));me(()=>{const s=()=>{i(dc(t.search,e))};return window.addEventListener("popstate",s),window.addEventListener("pushstate",s),window.addEventListener("replacestate",s),()=>{window.removeEventListener("popstate",s),window.removeEventListener("pushstate",s),window.removeEventListener("replacestate",s)}},[]);const r=mt((s,o)=>{if(s!==n){const a=new URLSearchParams(t.search);s===void 0||s.length===0?a.delete(e):a.set(e,s),U0({search:a.toString().replaceAll("%7C","|"),replace:o})}},[n]);return[n,r]}function Tt(e){const{icon:t,label:n,relative:i,tooltip:r,tooltipLoc:s,children:o}=e,[a,l]=Hl();return w("div",ge({class:`btn-menu${i===!1?" no-relative":""}`},e),w(fe,{icon:t,label:n,tooltip:r,tooltipLoc:s,onClick:l}),a&&w("div",{class:"btn-group"},o))}var H0={exports:{}};(function(e,t){(function(i,r){e.exports=r()})(ji,function(){return function(n){var i={};function r(s){if(i[s])return i[s].exports;var o=i[s]={exports:{},id:s,loaded:!1};return n[s].call(o.exports,o,o.exports,r),o.loaded=!0,o.exports}return r.m=n,r.c=i,r.p="",r(0)}([function(n,i,r){var s,o;s=[r(1)],o=function(a){var l={},u=function(D,k,T){var B,M,U={},H,Q,te,$,X,ie=new h(T),ae=T&&T.traceFormat;if(ae!=="chrome"&&ae!=="firefox"){if(ae)throw new Error('unknown traceFormat "'+ae+'" :(');if(c()||d())ae="chrome";else if(p()||f())ae="firefox";else throw new Error("unknown browser :(")}ae==="chrome"?($=/^ +at.+\((.*):([0-9]+):([0-9]+)/,te=4,X=1):($=/@(.*):([0-9]+):([0-9]+)/,te=4,X=0),B=D.split(` +`).slice(X);for(var j=0;j/)||ie.fetchScript(Q)));ie.sem.whenReady(function(){var I=g(B,U,ie.mapForUri,ae);k(I)})},c=function(){return navigator.userAgent.toLowerCase().indexOf("chrome")>-1},p=function(){return navigator.userAgent.toLowerCase().indexOf("firefox")>-1},f=function(){return navigator.userAgent.toLowerCase().indexOf("safari")>-1},d=function(){return document.documentMode&&document.documentMode>=11},_=function(){this.count=0,this.pending=[]};_.prototype.incr=function(){this.count++},_.prototype.decr=function(){this.count--,this.flush()},_.prototype.whenReady=function(D){this.pending.push(D),this.flush()},_.prototype.flush=function(){this.count===0&&(this.pending.forEach(function(D){D()}),this.pending=[])};var h=function(D){this.sem=new _,this.sync=D&&D.sync,this.mapForUri=D&&D.cacheGlobally?l:{}};h.prototype.ajax=function(D,k){var T=S(),B=this;T.onreadystatechange=function(){T.readyState==4&&k.call(B,T,D)},T.open("GET",D,!this.sync),T.send()},h.prototype.fetchScript=function(D){if(!(D in this.mapForUri))this.sem.incr(),this.mapForUri[D]=null;else return;this.ajax(D,this.onScriptLoad)};var m=new RegExp("^(?:[a-z]+:)?//","i");h.prototype.onScriptLoad=function(D,k){if(D.status===200||k.slice(0,7)==="file://"&&D.status===0){var T=D.responseText.match("//# [s]ourceMappingURL=(.*)[\\s]*$","m");if(T&&T.length===2){var B=T[1],M=B.match("data:application/json;(charset=[^;]+;)?base64,(.*)");if(M&&M[2])this.mapForUri[k]=new a.SourceMapConsumer(atob(M[2])),this.sem.decr();else{if(!m.test(B)){var U,H=k.lastIndexOf("/");H!==-1&&(U=k.slice(0,H+1),B=U+B)}this.ajax(B,function(Q){(Q.status===200||B.slice(0,7)==="file://"&&Q.status===0)&&(this.mapForUri[k]=new a.SourceMapConsumer(Q.responseText)),this.sem.decr()})}}else this.sem.decr()}else this.sem.decr()};var g=function(D,k,T,B){for(var M=[],U,H=B==="chrome"?v:y,Q=0;Q=0){var A=this._originalMappings[y];if(h.column===void 0)for(var b=A.originalLine;A&&A.originalLine===b;)v.push({line:s.getArg(A,"generatedLine",null),column:s.getArg(A,"generatedColumn",null),lastColumn:s.getArg(A,"lastGeneratedColumn",null)}),A=this._originalMappings[++y];else for(var S=A.originalColumn;A&&A.originalLine===m&&A.originalColumn==S;)v.push({line:s.getArg(A,"generatedLine",null),column:s.getArg(A,"generatedColumn",null),lastColumn:s.getArg(A,"lastGeneratedColumn",null)}),A=this._originalMappings[++y]}return v},i.SourceMapConsumer=c;function p(_){var h=_;typeof _=="string"&&(h=JSON.parse(_.replace(/^\)\]\}'/,"")));var m=s.getArg(h,"version"),g=s.getArg(h,"sources"),v=s.getArg(h,"names",[]),y=s.getArg(h,"sourceRoot",null),A=s.getArg(h,"sourcesContent",null),b=s.getArg(h,"mappings"),S=s.getArg(h,"file",null);if(m!=this._version)throw new Error("Unsupported version: "+m);g=g.map(String).map(s.normalize).map(function(D){return y&&s.isAbsolute(y)&&s.isAbsolute(D)?s.relative(y,D):D}),this._names=a.fromArray(v.map(String),!0),this._sources=a.fromArray(g,!0),this.sourceRoot=y,this.sourcesContent=A,this._mappings=b,this.file=S}p.prototype=Object.create(c.prototype),p.prototype.consumer=c,p.fromSourceMap=function(h){var m=Object.create(p.prototype),g=m._names=a.fromArray(h._names.toArray(),!0),v=m._sources=a.fromArray(h._sources.toArray(),!0);m.sourceRoot=h._sourceRoot,m.sourcesContent=h._generateSourcesContent(m._sources.toArray(),m.sourceRoot),m.file=h._file;for(var y=h._mappings.toArray().slice(),A=m.__generatedMappings=[],b=m.__originalMappings=[],S=0,D=y.length;S1&&(H.source=b+te[1],b+=te[1],H.originalLine=y+te[2],y=H.originalLine,H.originalLine+=1,H.originalColumn=A+te[3],A=H.originalColumn,te.length>4&&(H.name=S+te[4],S+=te[4])),U.push(H),typeof H.originalLine=="number"&&M.push(H)}u(U,s.compareByGeneratedPositionsDeflated),this.__generatedMappings=U,u(M,s.compareByOriginalPositions),this.__originalMappings=M},p.prototype._findMapping=function(h,m,g,v,y,A){if(h[g]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+h[g]);if(h[v]<0)throw new TypeError("Column must be greater than or equal to 0, got "+h[v]);return o.search(h,m,y,A)},p.prototype.computeColumnSpans=function(){for(var h=0;h=0){var v=this._generatedMappings[g];if(v.generatedLine===m.generatedLine){var y=s.getArg(v,"source",null);y!==null&&(y=this._sources.at(y),this.sourceRoot!=null&&(y=s.join(this.sourceRoot,y)));var A=s.getArg(v,"name",null);return A!==null&&(A=this._names.at(A)),{source:y,line:s.getArg(v,"originalLine",null),column:s.getArg(v,"originalColumn",null),name:A}}}return{source:null,line:null,column:null,name:null}},p.prototype.hasContentsOfAllSources=function(){return this.sourcesContent?this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(h){return h==null}):!1},p.prototype.sourceContentFor=function(h,m){if(!this.sourcesContent)return null;if(this.sourceRoot!=null&&(h=s.relative(this.sourceRoot,h)),this._sources.has(h))return this.sourcesContent[this._sources.indexOf(h)];var g;if(this.sourceRoot!=null&&(g=s.urlParse(this.sourceRoot))){var v=h.replace(/^file:\/\//,"");if(g.scheme=="file"&&this._sources.has(v))return this.sourcesContent[this._sources.indexOf(v)];if((!g.path||g.path=="/")&&this._sources.has("/"+h))return this.sourcesContent[this._sources.indexOf("/"+h)]}if(m)return null;throw new Error('"'+h+'" is not in the SourceMap.')},p.prototype.generatedPositionFor=function(h){var m=s.getArg(h,"source");if(this.sourceRoot!=null&&(m=s.relative(this.sourceRoot,m)),!this._sources.has(m))return{line:null,column:null,lastColumn:null};m=this._sources.indexOf(m);var g={source:m,originalLine:s.getArg(h,"line"),originalColumn:s.getArg(h,"column")},v=this._findMapping(g,this._originalMappings,"originalLine","originalColumn",s.compareByOriginalPositions,s.getArg(h,"bias",c.GREATEST_LOWER_BOUND));if(v>=0){var y=this._originalMappings[v];if(y.source===g.source)return{line:s.getArg(y,"generatedLine",null),column:s.getArg(y,"generatedColumn",null),lastColumn:s.getArg(y,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},i.BasicSourceMapConsumer=p;function d(_){var h=_;typeof _=="string"&&(h=JSON.parse(_.replace(/^\)\]\}'/,"")));var m=s.getArg(h,"version"),g=s.getArg(h,"sections");if(m!=this._version)throw new Error("Unsupported version: "+m);this._sources=new a,this._names=new a;var v={line:-1,column:0};this._sections=g.map(function(y){if(y.url)throw new Error("Support for url field in sections not implemented.");var A=s.getArg(y,"offset"),b=s.getArg(A,"line"),S=s.getArg(A,"column");if(b=0;U--)B=T[U],B==="."?T.splice(U,1):B===".."?M++:M>0&&(B===""?(T.splice(U+1,M),M=0):(T.splice(U,2),M--));return S=T.join("/"),S===""&&(S=k?"/":"."),D?(D.path=S,l(D)):S}i.normalize=u;function c(b,S){b===""&&(b="."),S===""&&(S=".");var D=a(S),k=a(b);if(k&&(b=k.path||"/"),D&&!D.scheme)return k&&(D.scheme=k.scheme),l(D);if(D||S.match(o))return S;if(k&&!k.host&&!k.path)return k.host=S,l(k);var T=S.charAt(0)==="/"?S:u(b.replace(/\/+$/,"")+"/"+S);return k?(k.path=T,l(k)):T}i.join=c,i.isAbsolute=function(b){return b.charAt(0)==="/"||!!b.match(s)};function p(b,S){b===""&&(b="."),b=b.replace(/\/$/,"");for(var D=0;S.indexOf(b+"/")!==0;){var k=b.lastIndexOf("/");if(k<0||(b=b.slice(0,k),b.match(/^([^\/]+:\/)?\/*$/)))return S;++D}return Array(D+1).join("../")+S.substr(b.length+1)}i.relative=p;var f=function(){var b=Object.create(null);return!("__proto__"in b)}();function d(b){return b}function _(b){return m(b)?"$"+b:b}i.toSetString=f?d:_;function h(b){return m(b)?b.slice(1):b}i.fromSetString=f?d:h;function m(b){if(!b)return!1;var S=b.length;if(S<9||b.charCodeAt(S-1)!==95||b.charCodeAt(S-2)!==95||b.charCodeAt(S-3)!==111||b.charCodeAt(S-4)!==116||b.charCodeAt(S-5)!==111||b.charCodeAt(S-6)!==114||b.charCodeAt(S-7)!==112||b.charCodeAt(S-8)!==95||b.charCodeAt(S-9)!==95)return!1;for(var D=S-10;D>=0;D--)if(b.charCodeAt(D)!==36)return!1;return!0}function g(b,S,D){var k=b.source-S.source;return k!==0||(k=b.originalLine-S.originalLine,k!==0)||(k=b.originalColumn-S.originalColumn,k!==0||D)||(k=b.generatedColumn-S.generatedColumn,k!==0)||(k=b.generatedLine-S.generatedLine,k!==0)?k:b.name-S.name}i.compareByOriginalPositions=g;function v(b,S,D){var k=b.generatedLine-S.generatedLine;return k!==0||(k=b.generatedColumn-S.generatedColumn,k!==0||D)||(k=b.source-S.source,k!==0)||(k=b.originalLine-S.originalLine,k!==0)||(k=b.originalColumn-S.originalColumn,k!==0)?k:b.name-S.name}i.compareByGeneratedPositionsDeflated=v;function y(b,S){return b===S?0:b>S?1:-1}function A(b,S){var D=b.generatedLine-S.generatedLine;return D!==0||(D=b.generatedColumn-S.generatedColumn,D!==0)||(D=y(b.source,S.source),D!==0)||(D=b.originalLine-S.originalLine,D!==0)||(D=b.originalColumn-S.originalColumn,D!==0)?D:y(b.name,S.name)}i.compareByGeneratedPositionsInflated=A},function(n,i){i.GREATEST_LOWER_BOUND=1,i.LEAST_UPPER_BOUND=2;function r(s,o,a,l,u,c){var p=Math.floor((o-s)/2)+s,f=u(a,l[p],!0);return f===0?p:f>0?o-p>1?r(p,o,a,l,u,c):c==i.LEAST_UPPER_BOUND?o1?r(s,p,a,l,u,c):c==i.LEAST_UPPER_BOUND?p:s<0?-1:s}i.search=function(o,a,l,u){if(a.length===0)return-1;var c=r(-1,a.length,o,a,l,u||i.GREATEST_LOWER_BOUND);if(c<0)return-1;for(;c-1>=0&&l(a[c],a[c-1],!0)===0;)--c;return c}},function(n,i,r){var s=r(2),o=Object.prototype.hasOwnProperty;function a(){this._array=[],this._set=Object.create(null)}a.fromArray=function(u,c){for(var p=new a,f=0,d=u.length;f=0&&u>1;return d?-_:_}i.encode=function(d){var _="",h,m=c(d);do h=m&l,m>>>=o,m>0&&(h|=u),_+=s.encode(h);while(m>0);return _},i.decode=function(d,_,h){var m=d.length,g=0,v=0,y,A;do{if(_>=m)throw new Error("Expected more digits in base 64 VLQ value.");if(A=s.decode(d.charCodeAt(_++)),A===-1)throw new Error("Invalid base64 digit: "+d.charAt(_-1));y=!!(A&u),A&=l,g=g+(A<{if(e instanceof Error){const a=e.stack.split(` +`).map(l=>l.replace(/^(\s+)at (?:async )?(https?:.*)/,"$1at ($2)"));s(a.join(` +`)),H0.exports.mapStackTrace(a.join(` +`),l=>{const u=l.map(c=>c.replace(/..\/..\/src\//,"src/")).join(` +`);s(u)})}},[e]);const o=He(()=>{let a="https://github.com/misode/misode.github.io/issues/new";return e instanceof Error?(a+=`?title=${encodeURIComponent(`${e.name}: ${e.message}`)}`,r&&(a+=`&body=${encodeURIComponent(`\`\`\` +${e.name}: ${e.message} +${r} +\`\`\` +`)}`)):a+=`?title=${encodeURIComponent(e.toString())}`,a},[e,r]);return w("div",{class:"error"},t&&w("div",{class:"error-dismiss",onClick:t},be.x),w("h3",null,e instanceof Error?e.message:e,r&&w("span",{onClick:()=>i(!n)},be.info)),r&&n&&w("pre",null,r),w("p",null,"If you think this is a bug, you can report it ",w("a",{href:o,target:"_blank"},"on GitHub")))}function mv({label:e,value:t,onChange:n}){const i=gi();return w("label",{class:"checkbox"},w("input",{id:i,type:"checkbox",checked:t,onClick:()=>n(!t)}),e)}function Vl(e,t,n){const i=r=>{const s=r.onChange&&(a=>{var u;const l=a.target.value;(u=r.onChange)==null||u.call(r,n(l))}),o=r.onEnter&&(a=>{var l;if(a.key==="Enter"){const u=a.target.value;(l=r.onEnter)==null||l.call(r,n(u))}});return w("input",Je(ge({},r),{type:t,onChange:s,onKeyDown:o}))};return i.displayName=e,i}const wi=Vl("TextInput","text",e=>e),gv=Vl("NumberInput","number",e=>Number(e)),pc=Vl("RangeInput","range",e=>Number(e));function mc({values:e,onSelect:t,searchPlaceholder:n,noResults:i}){const[r,s]=Y(""),o=He(()=>{var l;const a=r.trim().split(" ");return(l=e==null?void 0:e.filter(u=>a.every(c=>u.includes(c))))!=null?l:[]},[e,r]);return w(xe,null,w(Xs,{icon:"search",large:!0,value:r,onChange:s,doSelect:1,placeholder:n!=null?n:"Search"}),w("div",{class:"result-list"},o.map(a=>w(fe,{key:a,label:a,onClick:()=>t==null?void 0:t(a)})),o.length===0&&w(fe,{label:i!=null?i:"No results"})))}const Xl="https://raw.githubusercontent.com/misode/technical-changes/main";let ta=null;async function V0(){if(!ta){const e=await(await fetch(`${Xl}/index.json`)).json();ta=(await Promise.all(e.map((t,n)=>_v(X0(t),n)))).flat().map(t=>Je(ge({},t),{tags:[t.group.id,...t.tags]}))}return ta}async function _v(e,t){const n=await(await fetch(`${Xl}/${e.id}/index.json`)).json();return(await Promise.all(n.map((i,r)=>vv(e,X0(i),t,r)))).flat()}async function vv(e,t,n,i){const r=await(await fetch(`${Xl}/${e.id}/${t.id}.md`)).text();return xv(r).map(s=>ge({version:t,group:e,order:n*1e3+i},s))}function xv(e){return e.split(` + +`).map(t=>{const n=t.indexOf("|");return{tags:t.substring(0,n).trim().split(" "),content:t.slice(n+1).trim().replaceAll("->","\u2192").replaceAll(` +... +`,` + +`)}})}function X0(e){return typeof e=="string"?{id:e,article:e.match(/\d\dw\d\d[a-z]/)?"minecraft-snapshot-"+e:e.match(/\d+\.\d+(\.\d+)?-pre[0-9]+/)?"minecraft-"+e.replaceAll(".","-").replaceAll("pre","pre-release-"):null}:Ci(e)?e:{id:"unknown",article:null}}["1.15","1.16","1.17"].forEach(e=>localStorage.removeItem(`cache_${e}`));["mcdata_master","vanilla_datapack_summary"].forEach(e=>localStorage.removeItem(`cached_${e}`));caches.delete("misode-v1");const Wi="misode-v2",gc="cached_latest_version",na="22w18a",Dr="https://raw.githubusercontent.com/misode/mcmeta";function si(e,t){return`${Dr}/${e.dynamic?t:`${e.ref}-${t}`}`}async function Oo(e){e.dynamic&&(localStorage.getItem(gc)!==na&&(await Cv(t=>t.startsWith(`${Dr}/summary/`)||t.startsWith(`${Dr}/data/`)||t.startsWith(`${Dr}/assets/`)||t.startsWith(`${Dr}/registries/`)),localStorage.setItem(gc,na)),e.ref=na)}async function yv(e,t,n){const i=Ne.versions.find(r=>r.id===e);if(!i){console.error(`[fetchData] Unknown version ${i} in ${JSON.stringify(Ne.versions)}`);return}await Oo(i),await Promise.all([wv(i,t),Ev(i,n)])}async function wv(e,t){console.debug(`[fetchRegistries] ${e.id}`);try{const n=await sr(`${si(e,"summary")}/registries/data.min.json`);for(const i in n)t.register(i,n[i].map(r=>"minecraft:"+r))}catch(n){console.warn("Error occurred while fetching registries:",Yt(n))}}async function Ev(e,t){console.debug(`[fetchBlockStateMap] ${e.id}`);try{const n=await sr(`${si(e,"summary")}/blocks/data.min.json`);for(const i in n)t["minecraft:"+i]={properties:n[i][0],default:n[i][1]}}catch(n){console.warn("Error occurred while fetching block state map:",Yt(n))}}async function J0(e,t,n){console.debug(`[fetchPreset] ${e} ${t} ${n}`);const i=Ne.versions.find(r=>r.id===e);try{const r=["blockstates","models"].includes(t)?"assets":"data",s=`${si(i,r)}/${r}/minecraft/${t}/${n}.json`;return await(await fetch(s)).json()}catch(r){throw new Error(`Error occurred while fetching ${t} preset ${n}: ${Yt(r)}`)}}async function bv(e,t){console.debug(`[fetchAllPresets] ${e} ${t}`);const n=Ne.versions.find(i=>i.id===e);await Oo(n);try{const i=await sr(`${si(n,"registries")}/${t}/data.min.json`);return new Map(await Promise.all(i.map(async r=>[r,await sr(`${si(n,"data")}/data/minecraft/${t}/${r}.json`)])))}catch(i){throw new Error(`Error occurred while fetching all ${t} presets: ${Yt(i)}`)}}async function Av(e){const t=Ne.versions.find(n=>n.id===e);await Oo(t);try{const n=`${si(t,"summary")}/sounds/data.min.json`;return await sr(n)}catch(n){throw new Error(`Error occurred while fetching sounds for ${t}: ${Yt(n)}`)}}function Sv(e,t){const n=Ne.versions.find(i=>i.id===e);return`${si(n,"assets")}/assets/minecraft/sounds/${t}.ogg`}async function Dv(){const e=Ne.versions[Ne.versions.length-1];await Oo(e);try{return sr(`${si(e,"summary")}/versions/data.min.json`)}catch(t){throw new Error(`Error occured while fetching versions: ${Yt(t)}`)}}async function sr(e,t=n=>n){try{const n=await caches.open(Wi);console.debug(`[getData] Opened cache ${Wi} ${e}`);const i=await n.match(e);if(i&&i.ok)return console.debug(`[getData] Retrieving cached data ${e}`),await i.json();console.debug(`[getData] fetching data ${e}`);const r=await fetch(e),s=t(await r.json());return await n.put(e,new Response(JSON.stringify(s))),s}catch(n){console.warn(`[getData] Failed to open cache ${Wi}: ${Yt(n)}`),console.debug(`[getData] fetching data ${e}`);const i=await fetch(e);return t(await i.json())}}async function Cv(e){try{const t=await caches.open(Wi);console.debug(`[deleteMatching] Opened cache ${Wi}`);const n=[];for(const i of await t.keys())e(i.url)&&n.push(t.delete(i));console.debug(`[deleteMatching] Removing ${n.length} cache objects...`),await Promise.all(n)}catch(t){console.warn(`[deleteMatching] Failed to open cache ${Wi}: ${Yt(t)}`)}}const kv="modulepreload",_c={},Fv="/",Ce=function(t,n){return!n||n.length===0?t():Promise.all(n.map(i=>{if(i=`${Fv}${i}`,i in _c)return;_c[i]=!0;const r=i.endsWith(".css"),s=r?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${i}"]${s}`))return;const o=document.createElement("link");if(o.rel=r?"stylesheet":kv,r||(o.as="script",o.crossOrigin=""),o.href=i,document.head.appendChild(o),r)return new Promise((a,l)=>{o.addEventListener("load",a),o.addEventListener("error",()=>l(new Error(`Unable to preload CSS for ${i}`)))})})).then(()=>t())},G0=["1.15","1.16","1.17","1.18","1.18.2","1.19"],Ti={},Bi={},Iv={1.15:()=>Ce(()=>import("./index.047b40e9.js").then(function(e){return e.i}),[]),1.16:()=>Ce(()=>import("./index.43e8f1d5.js").then(function(e){return e.i}),[]),1.17:()=>Ce(()=>import("./index.ec1836d3.js").then(function(e){return e.i}),[]),1.18:()=>Ce(()=>import("./index.f8251f36.js").then(function(e){return e.i}),[]),"1.18.2":()=>Ce(()=>import("./index.e47e678b.js").then(function(e){return e.i}),[]),1.19:()=>Ce(()=>import("./index.15314e06.js").then(function(e){return e.i}),[])};let Y0,W0,Js;async function Jl(e){return Ti[e]||(Ti[e]=(async()=>{try{const t=await Iv[e](),n=t.getCollections(),i={};await yv(e,n,i);const r=t.getSchemas(n);return Ti[e]={collections:n,schemas:r,blockStates:i},Ti[e]}catch(t){throw new Error(`Cannot get version "${e}": ${Yt(t)}`)}})()),Ti[e]}async function Tv(e,t){var n;if(!Bi[t]||Bi[t].version!==e){const i=await Jl(e);Y0=q.Reference(i.schemas,"configured_decorator"),W0=q.ChoiceNode([{type:"string",node:q.StringNode(i.collections,{validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:q.Reference(i.schemas,"configured_feature")}],{choiceContext:"feature"});const r=(n=Ne.generators.find(s=>s.id===t))==null?void 0:n.schema;if(!r)throw new Error(`Cannot find model ${t}`);try{const s=i.schemas.get(r),o=new q.DataModel(s,{wrapLists:!0});Bi[t]?o.reset(Bi[t].model.data,!1):(o.validate(!0),o.history=[JSON.stringify(o.data)]),Bi[t]={model:o,version:e}}catch(s){const o=new Error(`Cannot get generator "${t}" for version "${e}": ${Yt(s)}`);throw s instanceof Error&&(o.stack=s.stack),o}}return Bi[t].model}async function Bv(e){const t=await Jl(e);return Js=t.collections,t.collections}async function Nv(e){return(await Jl(e)).blockStates}function Bt(e,t,n){const i=Ne.versions.findIndex(o=>o.id===e),r=t?Ne.versions.findIndex(o=>o.id===t):0,s=n?Ne.versions.findIndex(o=>o.id===n):Ne.versions.length-1;return r<=i&&i<=s}var Z0={exports:{}};(function(e){var t=function(){var n=String.fromCharCode,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",s={};function o(l,u){if(!s[l]){s[l]={};for(var c=0;c>>8,c[p*2+1]=d%256}return c},decompressFromUint8Array:function(l){if(l==null)return a.decompress(l);for(var u=new Array(l.length/2),c=0,p=u.length;c>1}else{for(f=1,p=0;p>1}v--,v==0&&(v=Math.pow(2,A),A++),delete _[g]}else for(f=d[g],p=0;p>1;v--,v==0&&(v=Math.pow(2,A),A++),d[m]=y++,g=String(h)}if(g!==""){if(Object.prototype.hasOwnProperty.call(_,g)){if(g.charCodeAt(0)<256){for(p=0;p>1}else{for(f=1,p=0;p>1}v--,v==0&&(v=Math.pow(2,A),A++),delete _[g]}else for(f=d[g],p=0;p>1;v--,v==0&&(v=Math.pow(2,A),A++)}for(f=2,p=0;p>1;for(;;)if(S=S<<1,D==u-1){b.push(c(S));break}else D++;return b.join("")},decompress:function(l){return l==null?"":l==""?null:a._decompress(l.length,32768,function(u){return l.charCodeAt(u)})},_decompress:function(l,u,c){var p=[],f=4,d=4,_=3,h="",m=[],g,v,y,A,b,S,D,k={val:c(0),position:u,index:1};for(g=0;g<3;g+=1)p[g]=g;for(y=0,b=Math.pow(2,2),S=1;S!=b;)A=k.val&k.position,k.position>>=1,k.position==0&&(k.position=u,k.val=c(k.index++)),y|=(A>0?1:0)*S,S<<=1;switch(y){case 0:for(y=0,b=Math.pow(2,8),S=1;S!=b;)A=k.val&k.position,k.position>>=1,k.position==0&&(k.position=u,k.val=c(k.index++)),y|=(A>0?1:0)*S,S<<=1;D=n(y);break;case 1:for(y=0,b=Math.pow(2,16),S=1;S!=b;)A=k.val&k.position,k.position>>=1,k.position==0&&(k.position=u,k.val=c(k.index++)),y|=(A>0?1:0)*S,S<<=1;D=n(y);break;case 2:return""}for(p[3]=D,v=D,m.push(D);;){if(k.index>l)return"";for(y=0,b=Math.pow(2,_),S=1;S!=b;)A=k.val&k.position,k.position>>=1,k.position==0&&(k.position=u,k.val=c(k.index++)),y|=(A>0?1:0)*S,S<<=1;switch(D=y){case 0:for(y=0,b=Math.pow(2,8),S=1;S!=b;)A=k.val&k.position,k.position>>=1,k.position==0&&(k.position=u,k.val=c(k.index++)),y|=(A>0?1:0)*S,S<<=1;p[d++]=n(y),D=d-1,f--;break;case 1:for(y=0,b=Math.pow(2,16),S=1;S!=b;)A=k.val&k.position,k.position>>=1,k.position==0&&(k.position=u,k.val=c(k.index++)),y|=(A>0?1:0)*S,S<<=1;p[d++]=n(y),D=d-1,f--;break;case 2:return m.join("")}if(f==0&&(f=Math.pow(2,_),_++),p[D])h=p[D];else if(D===d)h=v+v.charAt(0);else return null;m.push(h),p[d++]=v+h.charAt(0),f--,v=h,f==0&&(f=Math.pow(2,_),_++)}}};return a}();e!=null&&(e.exports=t)})(Z0);var K0=Z0.exports;const Mv="https://z15g7can.directus.app/items",Ka="share",vc=new Map;async function Ov(e,t,n,i){try{const r=K0.compressToBase64(JSON.stringify(n)),s=btoa(JSON.stringify(n));console.log("Compression rate",s.length/r.length);const o=JSON.stringify({data:r,type:e,version:t,show_preview:i});let a=vc.get(o);if(!a){const u=await q0("/snippets",o);vc.set(o,u.id),a=u.id}const l=Ne.generators.find(u=>u.id===e);return`${location.protocol}//${location.host}/${l.url}/?${Ka}=${a}`}catch(r){throw r instanceof Error&&(r.message=`Error creating share link: ${r.message}`),r}}async function xc(e){var t;try{const n=await q0(`/snippets/${e}`);return Je(ge({},n),{data:JSON.parse((t=K0.decompressFromBase64(n.data))!=null?t:"{}")})}catch(n){throw n instanceof Error&&(n.message=`Error loading shared content: ${n.message}`),n}}async function q0(e,t){var r,s,o;const i=await(await fetch(Mv+e,t?{method:"post",headers:{"Content-Type":"application/json"},body:t}:void 0)).json();if(i.data)return i.data;throw new Error((o=(s=(r=i.errors)==null?void 0:r[0])==null?void 0:s.message)!=null?o:"Unknown error")}var Q0=JSON.parse('{"add":"Add","add_bottom":"Add to bottom","add_top":"Add to top","advancement":"Advancement","any_version":"Any","assets":"Assets","block_definition":"Blockstate","changelog.search":"Search changes","changelog.no_results":"No changes","chat_type":"Chat Type","collapse":"Collapse","collapse_all":"Hold %0% to collapse all","configure_layers":"Configure layers","copy":"Copy","copy_share":"Copy share link","copied":"Copied!","copy_context":"Copy context","dimension_type":"Dimension Type","dimension":"Dimension","disabled":"Disabled","download":"Download","duplicate":"Duplicate","enabled":"Enabled","entries_hidden":"%0% entries hidden","entries_hidden.more":"Show %0% more","entries_hidden.all":"Show all","expand":"Expand","expand_all":"Hold %0% to expand all","feature.decorated.decorators":"Decorators","feature.decorated.decorators.entry":"Decorator","follow_reference":"Follow reference","format.json":"JSON","format.yaml":"YAML","fields":"Fields","generate_new_seed":"Generate new seed","github":"GitHub","guides.all":"All guides","guides.search":"Search guides","guides.no_results.version":"No guides for this version","guides.no_results.query":"No guides for this query","hide_output":"Hide output","hide_preview":"Hide preview","home":"Home","import":"Import","indentation.2_spaces":"2 spaces","indentation.4_spaces":"4 spaces","indentation.minified":"Minified","indentation.tabs":"Tabs","item_modifier":"Item Modifier","language":"Language","layer.biomes":"Biomes","layer.temperature":"Temperature","layer.humidity":"Humidity","layer.continentalness":"Continentalness","layer.erosion":"Erosion","layer.weirdness":"Weirdness","layer.offset":"Offset","layer.factor":"Factor","layer.jaggedness":"Jaggedness","highlighting":"Highlighting","loading":"Loading...","loot_table":"Loot Table","model":"Model","more":"More","move_down":"Move down","move_up":"Move up","not_found.description":"The page you were looking for does not exist.","no_presets":"No presets","output_settings":"Output settings","predicate":"Predicate","recipe":"Recipe","redo":"Redo","reset":"Reset","restore_backup":"Restore last backup","settings":"Settings","settings.fields.description":"Customize advanced field settings","settings.fields.path":"Context","settings.fields.name":"Name","share":"Share","theme":"Theme","theme.dark":"Dark","theme.light":"Light","theme.system":"System","title.changelog":"Technical Changelog","title.generator":"%0% Generator","title.generator_category":"%0% Generators","title.guides":"Data Pack Guides","title.home":"Data Pack Generators","title.project":"%0% Project","title.sounds":"Sound Explorer","title.versions":"Versions Explorer","presets":"Presets","preview":"Visualize","preview.auto_scroll":"Auto scroll","preview.biome":"Biome","preview.scale":"Scale","preview.depth":"Depth","preview.factor":"Factor","preview.offset":"Offset","preview.peaks":"Peaks","preview.width":"Width","project.delete_file":"Delete file","project.go_to":"Go to project","project.new_file":"New file","project.no_files":"No files","project.search":"Search project","project.search_drafts":"Search drafts","project.unsaved_file":"Unsaved file","remove":"Remove","search":"Search","show_output":"Show output","show_preview":"Show preview","sounds.play":"Play","sounds.play_sound":"Play sound","sounds.play_all":"Play all","sounds.search":"Search sounds","sounds.download_function":"Download Mcfunction","sounds.delay":"Delay","sounds.pitch":"Pitch","sounds.volume":"Volume","sounds.copy_command":"Copy command","sounds.add_sound":"Add sound","sounds.remove_sound":"Remove sound","sounds.unknown_sound":"Unknown sound","sounds.loading_sound":"Loading sound","source_placeholder":"Paste raw %0% content here","switch_generator":"Switch generator","switch_version":"Switch version","terrain_settings":"Terrain settings","text_component":"Text Component","undo":"Undo","versions.search":"Search versions","versions.no_results":"No results","versions.all":"All versions","versions.previous":"Previous","versions.next":"Next","versions.released":"Released","versions.release_target":"Release target","versions.data_version":"Data version","versions.protocol_version":"Protocol version","versions.pack_format":"Pack format","versions.data_pack_format":"Data pack format","versions.resource_pack_format":"Resource pack format","versions.technical_changes":"Technical changes","versions.discussion":"Discussion","world":"World Settings","worldgen":"Worldgen","worldgen/biome":"Biome","worldgen/configured_carver":"Carver","worldgen/configured_feature":"Feature","worldgen/density_function":"Density Function","worldgen/placed_feature":"Placed Feature","worldgen/noise":"Noise","worldgen/noise_settings":"Noise Settings","worldgen/processor_list":"Processor List","worldgen/configured_structure_feature":"Structure Feature","worldgen/structure":"Structure","worldgen/structure_set":"Structure Set","worldgen/configured_surface_builder":"Surface Builder","worldgen/template_pool":"Template Pool","worldgen/world_preset":"World Preset","worldgen/flat_level_generator_preset":"Flat World Preset","zoom_in":"Zoom in","zoom_out":"Zoom out"}'),Lv=Object.freeze(Object.defineProperty({__proto__:null,default:Q0},Symbol.toStringTag,{value:"Module"})),pt;(e=>{e.ID_LANGUAGE="language",e.ID_THEME="theme",e.ID_VERSION="schema_version",e.ID_INDENT="indentation",e.ID_FORMAT="output_format",e.ID_HIGHLIGHTING="output_highlighting",e.ID_SOUNDS_VERSION="minecraft_sounds_version",e.ID_PROJECTS="misode_projects",e.ID_BACKUPS="misode_generator_backups";function t(){var y;return(y=localStorage.getItem(e.ID_LANGUAGE))!=null?y:"en"}e.getLanguage=t;function n(){var y;return(y=localStorage.getItem(e.ID_THEME))!=null?y:"dark"}e.getTheme=n;function i(){const y=localStorage.getItem(e.ID_VERSION);return y&&G0.includes(y)?y:"1.18.2"}e.getVersion=i;function r(){var y;return(y=localStorage.getItem(e.ID_INDENT))!=null?y:"2_spaces"}e.getIndent=r;function s(){var y;return(y=localStorage.getItem(e.ID_FORMAT))!=null?y:"json"}e.getFormat=s;function o(){return localStorage.getItem(e.ID_HIGHLIGHTING)!=="false"}e.getHighlighting=o;function a(){var y;return(y=localStorage.getItem(e.ID_SOUNDS_VERSION))!=null?y:"latest"}e.getSoundsVersion=a;function l(){const y=localStorage.getItem(e.ID_PROJECTS);return y?JSON.parse(y):[ho]}e.getProjects=l;function u(y){var b;return JSON.parse((b=localStorage.getItem(e.ID_BACKUPS))!=null?b:"{}")[y]}e.getBackup=u;function c(y){y&&localStorage.setItem(e.ID_LANGUAGE,y)}e.setLanguage=c;function p(y){y&&localStorage.setItem(e.ID_THEME,y)}e.setTheme=p;function f(y){y&&localStorage.setItem(e.ID_VERSION,y)}e.setVersion=f;function d(y){y&&localStorage.setItem(e.ID_INDENT,y)}e.setIndent=d;function _(y){y&&localStorage.setItem(e.ID_FORMAT,y)}e.setFormat=_;function h(y){y!==void 0&&localStorage.setItem(e.ID_HIGHLIGHTING,y.toString())}e.setHighlighting=h;function m(y){y&&localStorage.setItem(e.ID_SOUNDS_VERSION,y)}e.setSoundsVersion=m;function g(y){y&&localStorage.setItem(e.ID_PROJECTS,JSON.stringify(y))}e.setProjects=g;function v(y,A){var S;const b=JSON.parse((S=localStorage.getItem(e.ID_BACKUPS))!=null?S:"{}");A===void 0?delete b[y]:b[y]=A,localStorage.setItem(e.ID_BACKUPS,JSON.stringify(b))}e.setBackup=v})(pt||(pt={}));function Rv(e){switch(e){case"../../../node_modules/@mcschema/locales/src/cs.json":return Ce(()=>import("./cs.967a01eb.js"),[]);case"../../../node_modules/@mcschema/locales/src/de.json":return Ce(()=>import("./de.8e2383d8.js"),[]);case"../../../node_modules/@mcschema/locales/src/en.json":return Ce(()=>import("./en.4ab98cb7.js"),[]);case"../../../node_modules/@mcschema/locales/src/es.json":return Ce(()=>import("./es.6b3597bc.js"),[]);case"../../../node_modules/@mcschema/locales/src/fr.json":return Ce(()=>import("./fr.e316b1e2.js"),[]);case"../../../node_modules/@mcschema/locales/src/it.json":return Ce(()=>import("./it.7ff123cd.js"),[]);case"../../../node_modules/@mcschema/locales/src/ja.json":return Ce(()=>import("./ja.3170354d.js"),[]);case"../../../node_modules/@mcschema/locales/src/pl.json":return Ce(()=>import("./pl.ae1f6791.js"),[]);case"../../../node_modules/@mcschema/locales/src/pt.json":return Ce(()=>import("./pt.31e14993.js"),[]);case"../../../node_modules/@mcschema/locales/src/ru.json":return Ce(()=>import("./ru.1298edc9.js"),[]);case"../../../node_modules/@mcschema/locales/src/sk.json":return Ce(()=>import("./sk.d4265232.js"),[]);case"../../../node_modules/@mcschema/locales/src/zh-cn.json":return Ce(()=>import("./zh-cn.4129665a.js"),[]);case"../../../node_modules/@mcschema/locales/src/zh-tw.json":return Ce(()=>import("./zh-tw.bdc36a24.js"),[]);default:return new Promise(function(t,n){(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(n.bind(null,new Error("Unknown variable dynamic import: "+e)))})}}function Pv(e){switch(e){case"../../locales/de.json":return Ce(()=>import("./de.a269acce.js"),[]);case"../../locales/en.json":return Ce(()=>Promise.resolve().then(function(){return Lv}),void 0);case"../../locales/es.json":return Ce(()=>import("./es.833a9774.js"),[]);case"../../locales/fr.json":return Ce(()=>import("./fr.f5531eea.js"),[]);case"../../locales/it.json":return Ce(()=>import("./it.fd9a8268.js"),[]);case"../../locales/ja.json":return Ce(()=>import("./ja.167de97b.js"),[]);case"../../locales/pl.json":return Ce(()=>import("./pl.3a9fb38c.js"),[]);case"../../locales/pt.json":return Ce(()=>import("./pt.1a04bd2d.js"),[]);case"../../locales/ru.json":return Ce(()=>import("./ru.578070fe.js"),[]);case"../../locales/sk.json":return Ce(()=>import("./sk.96bbf351.js"),[]);case"../../locales/zh-cn.json":return Ce(()=>import("./zh-cn.e3c47b68.js"),[]);case"../../locales/zh-tw.json":return Ce(()=>import("./zh-tw.42e9d37d.js"),[]);default:return new Promise(function(t,n){(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(n.bind(null,new Error("Unknown variable dynamic import: "+e)))})}}const ed=fr({lang:"none",locale:e=>e,changeLanguage:()=>{}}),Or={fallback:Q0};function Fe(e,t,...n){var r,s,o,a,l;const i=(l=(a=(o=(r=Or[e])==null?void 0:r[t])!=null?o:(s=Or.en)==null?void 0:s[t])!=null?a:Or.fallback[t])!=null?l:t;return $v(i,n)}function $v(e,t){return e.replace(/%\d+%/g,n=>{const i=parseInt(n.slice(1,-1));return(t==null?void 0:t[i])!==void 0?t[i]:n})}async function ia(e){if(Or[e])return;const t=Ne.languages.find(r=>r.code===e);if(!t)return;const n=await Pv(`../../locales/${e}.json`),i=t.schemas!==!1&&await Rv(`../../../node_modules/@mcschema/locales/src/${e}.json`);Or[e]=ge(ge({},n.default),i.default)}function We(){return pr(ed)}function zv({children:e}){const[t,n]=Y("none"),i=mt((o,...a)=>Fe(t,o,...a),[t]),r=mt(async o=>{await ia(o),it.setLanguage(o),pt.setLanguage(o),n(o)},[]);me(()=>{(async()=>{const o=pt.getLanguage();await Promise.all([ia("en"),...o!=="en"?[ia(o)]:[]]),n(o)})()},[]);const s={lang:t,locale:i,changeLanguage:r};return w(ed.Provider,{value:s},e)}const ho={name:"Drafts",namespace:"draft",files:[]},td=fr({project:ho,changeProject:()=>{},updateProject:()=>{},updateFile:()=>!1,openFile:()=>{},closeFile:()=>{}});function nd(){return pr(td)}function Uv({children:e}){const[t,n]=Y(pt.getProjects()),[i,r]=Y(ho.name),s=He(()=>{var h;return(h=t.find(m=>m.name===i))!=null?h:ho},[t,i]),[o,a]=Y(void 0),l=He(()=>{if(!!o)return s.files.find(h=>h.type===o[0]&&h.id===o[1])},[s,o]),u=mt(h=>{pt.setProjects(h),n(h)},[]),c=mt(h=>{u(t.map(m=>m.name===i?ge(ge({},m),h):m))},[t,i]),p=mt((h,m,g)=>{var v;if(!g.id)c({files:s.files.filter(y=>y.type!==h||y.id!==m)});else{const y=g.id.includes(":")?g.id:`${s.namespace}:${g.id}`,A=s.files.some(b=>b.type===h&&b.id===y);if(m){if((l==null?void 0:l.id)===m&&m!==y&&A)return!1;c({files:s.files.map(b=>b.type===h&&b.id===m?Je(ge(ge({},b),g),{id:y}):b)}),(l==null?void 0:l.id)===m&&a([h,y])}else{if(A)return!1;c({files:[...s.files,{type:h,id:y,data:(v=g.data)!=null?v:{}}]}),a([h,y])}}return!0},[c,s,l]),f=mt((h,m)=>{const g=Ne.generators.find(v=>v.id===h||v.path===h);if(!g)throw new Error(`Cannot find generator of type ${h}`);a([g.id,m]),ii(Rn(g.url))},[]),d=mt(()=>{a(void 0)},[]),_={project:s,file:l,changeProject:r,updateProject:c,updateFile:p,openFile:f,closeFile:d};return w(td.Provider,{value:_},e)}function jv(e){var r;const[t,n]=e.id.includes(":")?e.id.split(":"):["minecraft",e.id],i=Ne.generators.find(s=>s.id===e.type);if(!i)throw new Error(`Cannot find generator of type ${e.type}`);return`data/${t}/${(r=i.path)!=null?r:i.id}/${n}`}const id=fr({theme:"dark",actualTheme:"dark",changeTheme:()=>{}});function rd(){return pr(id)}function Hv({children:e}){const[t,n]=Y(pt.getTheme()),i=fc("(prefers-color-scheme: light)"),r=fc("(prefers-color-scheme: dark)");me(()=>{document.documentElement.setAttribute("data-theme",t)},[t]);const s=mt(a=>{it.setTheme(a),pt.setTheme(a),n(a)},[]);me(()=>{it.setPrefersColorScheme(i?"light":r?"dark":"none")},[i,r]);const o={theme:t,actualTheme:t==="light"||t!=="dark"&&i?"light":"dark",changeTheme:s};return w(id.Provider,{value:o},e)}const Vv=3,sd=fr({title:"",changeTitle:()=>{}});function sn(e,t){const n=pr(sd);return me(()=>{e&&n.changeTitle(e,t)},[e,t]),n}function Xv({children:e}){const{locale:t}=We(),[n,i]=Y(t("title.home")),r=mt((o,a)=>{a!=null||(a=Ne.versions.map(u=>u.id));const l=a.slice(-Vv);document.title=`${o} Minecraft ${l.join(", ")}`,i(o)},[]),s={title:n,changeTitle:r};return w(sd.Provider,{value:s},e)}const Jv="version",od=fr({version:"1.18.2",changeVersion:()=>{},changeTargetVersion:()=>{}});function _r(){return pr(od)}function Gv({children:e}){const[t,n]=Y(pt.getVersion()),[i,r]=Jr(Jv);me(()=>{G0.includes(i)&&t!==i&&n(i)},[t,i]);const s=mt((a,l=!0,u=!1)=>{(u||i)&&r(a,!0),l&&(it.setVersion(a),pt.setVersion(a)),n(a)},[i]),o={version:t,changeVersion:s,changeTargetVersion:r};return w(od.Provider,{value:o},e)}/*! pako 2.0.4 https://github.com/nodeca/pako @license (MIT AND Zlib) */const Yv=4,yc=0,wc=1,Wv=2;function vr(e){let t=e.length;for(;--t>=0;)e[t]=0}const Zv=0,ad=1,Kv=2,qv=3,Qv=258,Gl=29,bs=256,Gr=bs+1+Gl,Zi=30,Yl=19,ld=2*Gr+1,fi=15,ra=16,ex=7,Wl=256,ud=16,cd=17,hd=18,qa=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]),Gs=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]),tx=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),fd=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),nx=512,Fn=new Array((Gr+2)*2);vr(Fn);const Lr=new Array(Zi*2);vr(Lr);const Yr=new Array(nx);vr(Yr);const Wr=new Array(Qv-qv+1);vr(Wr);const Zl=new Array(Gl);vr(Zl);const fo=new Array(Zi);vr(fo);function sa(e,t,n,i,r){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=i,this.max_length=r,this.has_stree=e&&e.length}let dd,pd,md;function oa(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}const gd=e=>e<256?Yr[e]:Yr[256+(e>>>7)],Zr=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},Nt=(e,t,n)=>{e.bi_valid>ra-n?(e.bi_buf|=t<>ra-e.bi_valid,e.bi_valid+=n-ra):(e.bi_buf|=t<{Nt(e,n[t*2],n[t*2+1])},_d=(e,t)=>{let n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1},ix=e=>{e.bi_valid===16?(Zr(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)},rx=(e,t)=>{const n=t.dyn_tree,i=t.max_code,r=t.stat_desc.static_tree,s=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,a=t.stat_desc.extra_base,l=t.stat_desc.max_length;let u,c,p,f,d,_,h=0;for(f=0;f<=fi;f++)e.bl_count[f]=0;for(n[e.heap[e.heap_max]*2+1]=0,u=e.heap_max+1;ul&&(f=l,h++),n[c*2+1]=f,!(c>i)&&(e.bl_count[f]++,d=0,c>=a&&(d=o[c-a]),_=n[c*2],e.opt_len+=_*(f+d),s&&(e.static_len+=_*(r[c*2+1]+d)));if(h!==0){do{for(f=l-1;e.bl_count[f]===0;)f--;e.bl_count[f]--,e.bl_count[f+1]+=2,e.bl_count[l]--,h-=2}while(h>0);for(f=l;f!==0;f--)for(c=e.bl_count[f];c!==0;)p=e.heap[--u],!(p>i)&&(n[p*2+1]!==f&&(e.opt_len+=(f-n[p*2+1])*n[p*2],n[p*2+1]=f),c--)}},vd=(e,t,n)=>{const i=new Array(fi+1);let r=0,s,o;for(s=1;s<=fi;s++)i[s]=r=r+n[s-1]<<1;for(o=0;o<=t;o++){let a=e[o*2+1];a!==0&&(e[o*2]=_d(i[a]++,a))}},sx=()=>{let e,t,n,i,r;const s=new Array(fi+1);for(n=0,i=0;i>=7;i{let t;for(t=0;t{e.bi_valid>8?Zr(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},ox=(e,t,n,i)=>{yd(e),i&&(Zr(e,n),Zr(e,~n)),e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n},Ec=(e,t,n,i)=>{const r=t*2,s=n*2;return e[r]{const i=e.heap[n];let r=n<<1;for(;r<=e.heap_len&&(r{let i,r,s=0,o,a;if(e.last_lit!==0)do i=e.pending_buf[e.d_buf+s*2]<<8|e.pending_buf[e.d_buf+s*2+1],r=e.pending_buf[e.l_buf+s],s++,i===0?hn(e,r,t):(o=Wr[r],hn(e,o+bs+1,t),a=qa[o],a!==0&&(r-=Zl[o],Nt(e,r,a)),i--,o=gd(i),hn(e,o,n),a=Gs[o],a!==0&&(i-=fo[o],Nt(e,i,a)));while(s{const n=t.dyn_tree,i=t.stat_desc.static_tree,r=t.stat_desc.has_stree,s=t.stat_desc.elems;let o,a,l=-1,u;for(e.heap_len=0,e.heap_max=ld,o=0;o>1;o>=1;o--)aa(e,n,o);u=s;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],aa(e,n,1),a=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=a,n[u*2]=n[o*2]+n[a*2],e.depth[u]=(e.depth[o]>=e.depth[a]?e.depth[o]:e.depth[a])+1,n[o*2+1]=n[a*2+1]=u,e.heap[1]=u++,aa(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],rx(e,t),vd(n,l,e.bl_count)},Ac=(e,t,n)=>{let i,r=-1,s,o=t[0*2+1],a=0,l=7,u=4;for(o===0&&(l=138,u=3),t[(n+1)*2+1]=65535,i=0;i<=n;i++)s=o,o=t[(i+1)*2+1],!(++a{let i,r=-1,s,o=t[0*2+1],a=0,l=7,u=4;for(o===0&&(l=138,u=3),i=0;i<=n;i++)if(s=o,o=t[(i+1)*2+1],!(++a{let t;for(Ac(e,e.dyn_ltree,e.l_desc.max_code),Ac(e,e.dyn_dtree,e.d_desc.max_code),Qa(e,e.bl_desc),t=Yl-1;t>=3&&e.bl_tree[fd[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},lx=(e,t,n,i)=>{let r;for(Nt(e,t-257,5),Nt(e,n-1,5),Nt(e,i-4,4),r=0;r{let t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return yc;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return wc;for(n=32;n{Dc||(sx(),Dc=!0),e.l_desc=new oa(e.dyn_ltree,dd),e.d_desc=new oa(e.dyn_dtree,pd),e.bl_desc=new oa(e.bl_tree,md),e.bi_buf=0,e.bi_valid=0,xd(e)},wd=(e,t,n,i)=>{Nt(e,(Zv<<1)+(i?1:0),3),ox(e,t,n,!0)},hx=e=>{Nt(e,ad<<1,3),hn(e,Wl,Fn),ix(e)},fx=(e,t,n,i)=>{let r,s,o=0;e.level>0?(e.strm.data_type===Wv&&(e.strm.data_type=ux(e)),Qa(e,e.l_desc),Qa(e,e.d_desc),o=ax(e),r=e.opt_len+3+7>>>3,s=e.static_len+3+7>>>3,s<=r&&(r=s)):r=s=n+5,n+4<=r&&t!==-1?wd(e,t,n,i):e.strategy===Yv||s===r?(Nt(e,(ad<<1)+(i?1:0),3),bc(e,Fn,Lr)):(Nt(e,(Kv<<1)+(i?1:0),3),lx(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),bc(e,e.dyn_ltree,e.dyn_dtree)),xd(e),i&&yd(e)},dx=(e,t,n)=>(e.pending_buf[e.d_buf+e.last_lit*2]=t>>>8&255,e.pending_buf[e.d_buf+e.last_lit*2+1]=t&255,e.pending_buf[e.l_buf+e.last_lit]=n&255,e.last_lit++,t===0?e.dyn_ltree[n*2]++:(e.matches++,t--,e.dyn_ltree[(Wr[n]+bs+1)*2]++,e.dyn_dtree[gd(t)*2]++),e.last_lit===e.lit_bufsize-1);var px=cx,mx=wd,gx=fx,_x=dx,vx=hx,xx={_tr_init:px,_tr_stored_block:mx,_tr_flush_block:gx,_tr_tally:_x,_tr_align:vx};const yx=(e,t,n,i)=>{let r=e&65535|0,s=e>>>16&65535|0,o=0;for(;n!==0;){o=n>2e3?2e3:n,n-=o;do r=r+t[i++]|0,s=s+r|0;while(--o);r%=65521,s%=65521}return r|s<<16|0};var Kr=yx;const wx=()=>{let e,t=[];for(var n=0;n<256;n++){e=n;for(var i=0;i<8;i++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t},Ex=new Uint32Array(wx()),bx=(e,t,n,i)=>{const r=Ex,s=i+n;e^=-1;for(let o=i;o>>8^r[(e^t[o])&255];return e^-1};var ft=bx,qr={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"},Lo={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:Ax,_tr_stored_block:Sx,_tr_flush_block:Dx,_tr_tally:Qn,_tr_align:Cx}=xx,{Z_NO_FLUSH:ki,Z_PARTIAL_FLUSH:kx,Z_FULL_FLUSH:Fx,Z_FINISH:ei,Z_BLOCK:Cc,Z_OK:fn,Z_STREAM_END:kc,Z_STREAM_ERROR:Gt,Z_DATA_ERROR:Ix,Z_BUF_ERROR:la,Z_DEFAULT_COMPRESSION:Tx,Z_FILTERED:Bx,Z_HUFFMAN_ONLY:Fs,Z_RLE:Nx,Z_FIXED:Mx,Z_DEFAULT_STRATEGY:Ox,Z_UNKNOWN:Lx,Z_DEFLATED:Ro}=Lo,Rx=9,Px=15,$x=8,zx=29,Ux=256,el=Ux+1+zx,jx=30,Hx=19,Vx=2*el+1,Xx=15,ke=3,Yn=258,rn=Yn+ke+1,Jx=32,Po=42,tl=69,Ys=73,Ws=91,Zs=103,di=113,Cr=666,ht=1,As=2,Ei=3,xr=4,Gx=3,Wn=(e,t)=>(e.msg=qr[t],t),Fc=e=>(e<<1)-(e>4?9:0),Jn=e=>{let t=e.length;for(;--t>=0;)e[t]=0};let Yx=(e,t,n)=>(t<{const t=e.state;let n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+n),e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,t.pending===0&&(t.pending_out=0))},Et=(e,t)=>{Dx(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Hn(e.strm)},Te=(e,t)=>{e.pending_buf[e.pending++]=t},Er=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},Wx=(e,t,n,i)=>{let r=e.avail_in;return r>i&&(r=i),r===0?0:(e.avail_in-=r,t.set(e.input.subarray(e.next_in,e.next_in+r),n),e.state.wrap===1?e.adler=Kr(e.adler,t,r,n):e.state.wrap===2&&(e.adler=ft(e.adler,t,r,n)),e.next_in+=r,e.total_in+=r,r)},Ed=(e,t)=>{let n=e.max_chain_length,i=e.strstart,r,s,o=e.prev_length,a=e.nice_match;const l=e.strstart>e.w_size-rn?e.strstart-(e.w_size-rn):0,u=e.window,c=e.w_mask,p=e.prev,f=e.strstart+Yn;let d=u[i+o-1],_=u[i+o];e.prev_length>=e.good_match&&(n>>=2),a>e.lookahead&&(a=e.lookahead);do if(r=t,!(u[r+o]!==_||u[r+o-1]!==d||u[r]!==u[i]||u[++r]!==u[i+1])){i+=2,r++;do;while(u[++i]===u[++r]&&u[++i]===u[++r]&&u[++i]===u[++r]&&u[++i]===u[++r]&&u[++i]===u[++r]&&u[++i]===u[++r]&&u[++i]===u[++r]&&u[++i]===u[++r]&&io){if(e.match_start=t,o=s,s>=a)break;d=u[i+o-1],_=u[i+o]}}while((t=p[t&c])>l&&--n!==0);return o<=e.lookahead?o:e.lookahead},bi=e=>{const t=e.w_size;let n,i,r,s,o;do{if(s=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-rn)){e.window.set(e.window.subarray(t,t+t),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,i=e.hash_size,n=i;do r=e.head[--n],e.head[n]=r>=t?r-t:0;while(--i);i=t,n=i;do r=e.prev[--n],e.prev[n]=r>=t?r-t:0;while(--i);s+=t}if(e.strm.avail_in===0)break;if(i=Wx(e.strm,e.window,e.strstart+e.lookahead,s),e.lookahead+=i,e.lookahead+e.insert>=ke)for(o=e.strstart-e.insert,e.ins_h=e.window[o],e.ins_h=ti(e,e.ins_h,e.window[o+1]);e.insert&&(e.ins_h=ti(e,e.ins_h,e.window[o+ke-1]),e.prev[o&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=o,o++,e.insert--,!(e.lookahead+e.insert{let n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(bi(e),e.lookahead===0&&t===ki)return ht;if(e.lookahead===0)break}e.strstart+=e.lookahead,e.lookahead=0;const i=e.block_start+n;if((e.strstart===0||e.strstart>=i)&&(e.lookahead=e.strstart-i,e.strstart=i,Et(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-rn&&(Et(e,!1),e.strm.avail_out===0))return ht}return e.insert=0,t===ei?(Et(e,!0),e.strm.avail_out===0?Ei:xr):(e.strstart>e.block_start&&(Et(e,!1),e.strm.avail_out===0),ht)},ua=(e,t)=>{let n,i;for(;;){if(e.lookahead=ke&&(e.ins_h=ti(e,e.ins_h,e.window[e.strstart+ke-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),n!==0&&e.strstart-n<=e.w_size-rn&&(e.match_length=Ed(e,n)),e.match_length>=ke)if(i=Qn(e,e.strstart-e.match_start,e.match_length-ke),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=ke){e.match_length--;do e.strstart++,e.ins_h=ti(e,e.ins_h,e.window[e.strstart+ke-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=ti(e,e.ins_h,e.window[e.strstart+1]);else i=Qn(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(i&&(Et(e,!1),e.strm.avail_out===0))return ht}return e.insert=e.strstart{let n,i,r;for(;;){if(e.lookahead=ke&&(e.ins_h=ti(e,e.ins_h,e.window[e.strstart+ke-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=ke-1,n!==0&&e.prev_length4096)&&(e.match_length=ke-1)),e.prev_length>=ke&&e.match_length<=e.prev_length){r=e.strstart+e.lookahead-ke,i=Qn(e,e.strstart-1-e.prev_match,e.prev_length-ke),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=r&&(e.ins_h=ti(e,e.ins_h,e.window[e.strstart+ke-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=ke-1,e.strstart++,i&&(Et(e,!1),e.strm.avail_out===0))return ht}else if(e.match_available){if(i=Qn(e,0,e.window[e.strstart-1]),i&&Et(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return ht}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(i=Qn(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart{let n,i,r,s;const o=e.window;for(;;){if(e.lookahead<=Yn){if(bi(e),e.lookahead<=Yn&&t===ki)return ht;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=ke&&e.strstart>0&&(r=e.strstart-1,i=o[r],i===o[++r]&&i===o[++r]&&i===o[++r])){s=e.strstart+Yn;do;while(i===o[++r]&&i===o[++r]&&i===o[++r]&&i===o[++r]&&i===o[++r]&&i===o[++r]&&i===o[++r]&&i===o[++r]&&re.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=ke?(n=Qn(e,1,e.match_length-ke),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=Qn(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(Et(e,!1),e.strm.avail_out===0))return ht}return e.insert=0,t===ei?(Et(e,!0),e.strm.avail_out===0?Ei:xr):e.last_lit&&(Et(e,!1),e.strm.avail_out===0)?ht:As},qx=(e,t)=>{let n;for(;;){if(e.lookahead===0&&(bi(e),e.lookahead===0)){if(t===ki)return ht;break}if(e.match_length=0,n=Qn(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(Et(e,!1),e.strm.avail_out===0))return ht}return e.insert=0,t===ei?(Et(e,!0),e.strm.avail_out===0?Ei:xr):e.last_lit&&(Et(e,!1),e.strm.avail_out===0)?ht:As};function ln(e,t,n,i,r){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=i,this.func=r}const kr=[new ln(0,0,0,0,Zx),new ln(4,4,8,4,ua),new ln(4,5,16,8,ua),new ln(4,6,32,32,ua),new ln(4,4,16,16,Ni),new ln(8,16,32,32,Ni),new ln(8,16,128,128,Ni),new ln(8,32,128,256,Ni),new ln(32,128,258,1024,Ni),new ln(32,258,258,4096,Ni)],Qx=e=>{e.window_size=2*e.w_size,Jn(e.head),e.max_lazy_match=kr[e.level].max_lazy,e.good_match=kr[e.level].good_length,e.nice_match=kr[e.level].nice_length,e.max_chain_length=kr[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=ke-1,e.match_available=0,e.ins_h=0};function ey(){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=Ro,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(Vx*2),this.dyn_dtree=new Uint16Array((2*jx+1)*2),this.bl_tree=new Uint16Array((2*Hx+1)*2),Jn(this.dyn_ltree),Jn(this.dyn_dtree),Jn(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(Xx+1),this.heap=new Uint16Array(2*el+1),Jn(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*el+1),Jn(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 bd=e=>{if(!e||!e.state)return Wn(e,Gt);e.total_in=e.total_out=0,e.data_type=Lx;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?Po:di,e.adler=t.wrap===2?0:1,t.last_flush=ki,Ax(t),fn},Ad=e=>{const t=bd(e);return t===fn&&Qx(e.state),t},ty=(e,t)=>!e||!e.state||e.state.wrap!==2?Gt:(e.state.gzhead=t,fn),Sd=(e,t,n,i,r,s)=>{if(!e)return Gt;let o=1;if(t===Tx&&(t=6),i<0?(o=0,i=-i):i>15&&(o=2,i-=16),r<1||r>Rx||n!==Ro||i<8||i>15||t<0||t>9||s<0||s>Mx)return Wn(e,Gt);i===8&&(i=9);const a=new ey;return e.state=a,a.strm=e,a.wrap=o,a.gzhead=null,a.w_bits=i,a.w_size=1<Sd(e,t,Ro,Px,$x,Ox),iy=(e,t)=>{let n,i;if(!e||!e.state||t>Cc||t<0)return e?Wn(e,Gt):Gt;const r=e.state;if(!e.output||!e.input&&e.avail_in!==0||r.status===Cr&&t!==ei)return Wn(e,e.avail_out===0?la:Gt);r.strm=e;const s=r.last_flush;if(r.last_flush=t,r.status===Po)if(r.wrap===2)e.adler=0,Te(r,31),Te(r,139),Te(r,8),r.gzhead?(Te(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),Te(r,r.gzhead.time&255),Te(r,r.gzhead.time>>8&255),Te(r,r.gzhead.time>>16&255),Te(r,r.gzhead.time>>24&255),Te(r,r.level===9?2:r.strategy>=Fs||r.level<2?4:0),Te(r,r.gzhead.os&255),r.gzhead.extra&&r.gzhead.extra.length&&(Te(r,r.gzhead.extra.length&255),Te(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=ft(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=tl):(Te(r,0),Te(r,0),Te(r,0),Te(r,0),Te(r,0),Te(r,r.level===9?2:r.strategy>=Fs||r.level<2?4:0),Te(r,Gx),r.status=di);else{let o=Ro+(r.w_bits-8<<4)<<8,a=-1;r.strategy>=Fs||r.level<2?a=0:r.level<6?a=1:r.level===6?a=2:a=3,o|=a<<6,r.strstart!==0&&(o|=Jx),o+=31-o%31,r.status=di,Er(r,o),r.strstart!==0&&(Er(r,e.adler>>>16),Er(r,e.adler&65535)),e.adler=1}if(r.status===tl)if(r.gzhead.extra){for(n=r.pending;r.gzindex<(r.gzhead.extra.length&65535)&&!(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>n&&(e.adler=ft(e.adler,r.pending_buf,r.pending-n,n)),Hn(e),n=r.pending,r.pending===r.pending_buf_size));)Te(r,r.gzhead.extra[r.gzindex]&255),r.gzindex++;r.gzhead.hcrc&&r.pending>n&&(e.adler=ft(e.adler,r.pending_buf,r.pending-n,n)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=Ys)}else r.status=Ys;if(r.status===Ys)if(r.gzhead.name){n=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>n&&(e.adler=ft(e.adler,r.pending_buf,r.pending-n,n)),Hn(e),n=r.pending,r.pending===r.pending_buf_size)){i=1;break}r.gzindexn&&(e.adler=ft(e.adler,r.pending_buf,r.pending-n,n)),i===0&&(r.gzindex=0,r.status=Ws)}else r.status=Ws;if(r.status===Ws)if(r.gzhead.comment){n=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>n&&(e.adler=ft(e.adler,r.pending_buf,r.pending-n,n)),Hn(e),n=r.pending,r.pending===r.pending_buf_size)){i=1;break}r.gzindexn&&(e.adler=ft(e.adler,r.pending_buf,r.pending-n,n)),i===0&&(r.status=Zs)}else r.status=Zs;if(r.status===Zs&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&Hn(e),r.pending+2<=r.pending_buf_size&&(Te(r,e.adler&255),Te(r,e.adler>>8&255),e.adler=0,r.status=di)):r.status=di),r.pending!==0){if(Hn(e),e.avail_out===0)return r.last_flush=-1,fn}else if(e.avail_in===0&&Fc(t)<=Fc(s)&&t!==ei)return Wn(e,la);if(r.status===Cr&&e.avail_in!==0)return Wn(e,la);if(e.avail_in!==0||r.lookahead!==0||t!==ki&&r.status!==Cr){let o=r.strategy===Fs?qx(r,t):r.strategy===Nx?Kx(r,t):kr[r.level].func(r,t);if((o===Ei||o===xr)&&(r.status=Cr),o===ht||o===Ei)return e.avail_out===0&&(r.last_flush=-1),fn;if(o===As&&(t===kx?Cx(r):t!==Cc&&(Sx(r,0,0,!1),t===Fx&&(Jn(r.head),r.lookahead===0&&(r.strstart=0,r.block_start=0,r.insert=0))),Hn(e),e.avail_out===0))return r.last_flush=-1,fn}return t!==ei?fn:r.wrap<=0?kc:(r.wrap===2?(Te(r,e.adler&255),Te(r,e.adler>>8&255),Te(r,e.adler>>16&255),Te(r,e.adler>>24&255),Te(r,e.total_in&255),Te(r,e.total_in>>8&255),Te(r,e.total_in>>16&255),Te(r,e.total_in>>24&255)):(Er(r,e.adler>>>16),Er(r,e.adler&65535)),Hn(e),r.wrap>0&&(r.wrap=-r.wrap),r.pending!==0?fn:kc)},ry=e=>{if(!e||!e.state)return Gt;const t=e.state.status;return t!==Po&&t!==tl&&t!==Ys&&t!==Ws&&t!==Zs&&t!==di&&t!==Cr?Wn(e,Gt):(e.state=null,t===di?Wn(e,Ix):fn)},sy=(e,t)=>{let n=t.length;if(!e||!e.state)return Gt;const i=e.state,r=i.wrap;if(r===2||r===1&&i.status!==Po||i.lookahead)return Gt;if(r===1&&(e.adler=Kr(e.adler,t,n,0)),i.wrap=0,n>=i.w_size){r===0&&(Jn(i.head),i.strstart=0,i.block_start=0,i.insert=0);let l=new Uint8Array(i.w_size);l.set(t.subarray(n-i.w_size,n),0),t=l,n=i.w_size}const s=e.avail_in,o=e.next_in,a=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,bi(i);i.lookahead>=ke;){let l=i.strstart,u=i.lookahead-(ke-1);do i.ins_h=ti(i,i.ins_h,i.window[l+ke-1]),i.prev[l&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=l,l++;while(--u);i.strstart=l,i.lookahead=ke-1,bi(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=ke-1,i.match_available=0,e.next_in=o,e.input=a,e.avail_in=s,i.wrap=r,fn};var oy=ny,ay=Sd,ly=Ad,uy=bd,cy=ty,hy=iy,fy=ry,dy=sy,py="pako deflate (from Nodeca project)",Rr={deflateInit:oy,deflateInit2:ay,deflateReset:ly,deflateResetKeep:uy,deflateSetHeader:cy,deflate:hy,deflateEnd:fy,deflateSetDictionary:dy,deflateInfo:py};const my=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var gy=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const n=t.shift();if(!!n){if(typeof n!="object")throw new TypeError(n+"must be non-object");for(const i in n)my(n,i)&&(e[i]=n[i])}}return e},_y=e=>{let t=0;for(let i=0,r=e.length;i=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;Qr[254]=Qr[254]=1;var vy=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let t,n,i,r,s,o=e.length,a=0;for(r=0;r>>6,t[s++]=128|n&63):n<65536?(t[s++]=224|n>>>12,t[s++]=128|n>>>6&63,t[s++]=128|n&63):(t[s++]=240|n>>>18,t[s++]=128|n>>>12&63,t[s++]=128|n>>>6&63,t[s++]=128|n&63);return t};const xy=(e,t)=>{if(t<65534&&e.subarray&&Dd)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let n="";for(let i=0;i{const n=t||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,t));let i,r;const s=new Array(n*2);for(r=0,i=0;i4){s[r++]=65533,i+=a-1;continue}for(o&=a===2?31:a===3?15:7;a>1&&i1){s[r++]=65533;continue}o<65536?s[r++]=o:(o-=65536,s[r++]=55296|o>>10&1023,s[r++]=56320|o&1023)}return xy(s,r)},wy=(e,t)=>{t=t||e.length,t>e.length&&(t=e.length);let n=t-1;for(;n>=0&&(e[n]&192)===128;)n--;return n<0||n===0?t:n+Qr[e[n]]>t?n:t},es={string2buf:vy,buf2string:yy,utf8border:wy};function Ey(){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}var Cd=Ey;const kd=Object.prototype.toString,{Z_NO_FLUSH:by,Z_SYNC_FLUSH:Ay,Z_FULL_FLUSH:Sy,Z_FINISH:Dy,Z_OK:po,Z_STREAM_END:Cy,Z_DEFAULT_COMPRESSION:ky,Z_DEFAULT_STRATEGY:Fy,Z_DEFLATED:Iy}=Lo;function Kl(e){this.options=$o.assign({level:ky,method:Iy,chunkSize:16384,windowBits:15,memLevel:8,strategy:Fy},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 Cd,this.strm.avail_out=0;let n=Rr.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==po)throw new Error(qr[n]);if(t.header&&Rr.deflateSetHeader(this.strm,t.header),t.dictionary){let i;if(typeof t.dictionary=="string"?i=es.string2buf(t.dictionary):kd.call(t.dictionary)==="[object ArrayBuffer]"?i=new Uint8Array(t.dictionary):i=t.dictionary,n=Rr.deflateSetDictionary(this.strm,i),n!==po)throw new Error(qr[n]);this._dict_set=!0}}Kl.prototype.push=function(e,t){const n=this.strm,i=this.options.chunkSize;let r,s;if(this.ended)return!1;for(t===~~t?s=t:s=t===!0?Dy:by,typeof e=="string"?n.input=es.string2buf(e):kd.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){if(n.avail_out===0&&(n.output=new Uint8Array(i),n.next_out=0,n.avail_out=i),(s===Ay||s===Sy)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(r=Rr.deflate(n,s),r===Cy)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),r=Rr.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===po;if(n.avail_out===0){this.onData(n.output);continue}if(s>0&&n.next_out>0){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(n.avail_in===0)break}return!0};Kl.prototype.onData=function(e){this.chunks.push(e)};Kl.prototype.onEnd=function(e){e===po&&(this.result=$o.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};const Is=30,Ty=12;var By=function(t,n){let i,r,s,o,a,l,u,c,p,f,d,_,h,m,g,v,y,A,b,S,D,k,T,B;const M=t.state;i=t.next_in,T=t.input,r=i+(t.avail_in-5),s=t.next_out,B=t.output,o=s-(n-t.avail_out),a=s+(t.avail_out-257),l=M.dmax,u=M.wsize,c=M.whave,p=M.wnext,f=M.window,d=M.hold,_=M.bits,h=M.lencode,m=M.distcode,g=(1<>>24,d>>>=A,_-=A,A=y>>>16&255,A===0)B[s++]=y&65535;else if(A&16){b=y&65535,A&=15,A&&(_>>=A,_-=A),_<15&&(d+=T[i++]<<_,_+=8,d+=T[i++]<<_,_+=8),y=m[d&v];n:for(;;){if(A=y>>>24,d>>>=A,_-=A,A=y>>>16&255,A&16){if(S=y&65535,A&=15,_l){t.msg="invalid distance too far back",M.mode=Is;break e}if(d>>>=A,_-=A,A=s-o,S>A){if(A=S-A,A>c&&M.sane){t.msg="invalid distance too far back",M.mode=Is;break e}if(D=0,k=f,p===0){if(D+=u-A,A2;)B[s++]=k[D++],B[s++]=k[D++],B[s++]=k[D++],b-=3;b&&(B[s++]=k[D++],b>1&&(B[s++]=k[D++]))}else{D=s-S;do B[s++]=B[D++],B[s++]=B[D++],B[s++]=B[D++],b-=3;while(b>2);b&&(B[s++]=B[D++],b>1&&(B[s++]=B[D++]))}}else if((A&64)===0){y=m[(y&65535)+(d&(1<>3,i-=b,_-=b<<3,d&=(1<<_)-1,t.next_in=i,t.next_out=s,t.avail_in=i{const l=a.bits;let u=0,c=0,p=0,f=0,d=0,_=0,h=0,m=0,g=0,v=0,y,A,b,S,D,k=null,T=0,B;const M=new Uint16Array(Mi+1),U=new Uint16Array(Mi+1);let H=null,Q=0,te,$,X;for(u=0;u<=Mi;u++)M[u]=0;for(c=0;c=1&&M[f]===0;f--);if(d>f&&(d=f),f===0)return r[s++]=1<<24|64<<16|0,r[s++]=1<<24|64<<16|0,a.bits=1,0;for(p=1;p0&&(e===Bc||f!==1))return-1;for(U[1]=0,u=1;uIc||e===Nc&&g>Tc)return 1;for(;;){te=u-h,o[c]B?($=H[Q+o[c]],X=k[T+o[c]]):($=32+64,X=0),y=1<>h)+A]=te<<24|$<<16|X|0;while(A!==0);for(y=1<>=1;if(y!==0?(v&=y-1,v+=y):v=0,c++,--M[u]===0){if(u===f)break;u=t[n+o[c]]}if(u>d&&(v&S)!==b){for(h===0&&(h=d),D+=p,_=u-h,m=1<<_;_+hIc||e===Nc&&g>Tc)return 1;b=v&S,r[b]=d<<24|_<<16|D-s|0}}return v!==0&&(r[D+v]=u-h<<24|64<<16|0),a.bits=d,0};var Pr=Ry;const Py=0,Fd=1,Id=2,{Z_FINISH:Mc,Z_BLOCK:$y,Z_TREES:Ts,Z_OK:Ai,Z_STREAM_END:zy,Z_NEED_DICT:Uy,Z_STREAM_ERROR:Wt,Z_DATA_ERROR:Td,Z_MEM_ERROR:Bd,Z_BUF_ERROR:jy,Z_DEFLATED:Oc}=Lo,Nd=1,Lc=2,Rc=3,Pc=4,$c=5,zc=6,Uc=7,jc=8,Hc=9,Vc=10,mo=11,bn=12,ha=13,Xc=14,fa=15,Jc=16,Gc=17,Yc=18,Wc=19,Bs=20,Ns=21,Zc=22,Kc=23,qc=24,Qc=25,eh=26,da=27,th=28,nh=29,Ge=30,Md=31,Hy=32,Vy=852,Xy=592,Jy=15,Gy=Jy,ih=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function Yy(){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 Od=e=>{if(!e||!e.state)return Wt;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=Nd,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(Vy),t.distcode=t.distdyn=new Int32Array(Xy),t.sane=1,t.back=-1,Ai},Ld=e=>{if(!e||!e.state)return Wt;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,Od(e)},Rd=(e,t)=>{let n;if(!e||!e.state)return Wt;const i=e.state;return t<0?(n=0,t=-t):(n=(t>>4)+1,t<48&&(t&=15)),t&&(t<8||t>15)?Wt:(i.window!==null&&i.wbits!==t&&(i.window=null),i.wrap=n,i.wbits=t,Ld(e))},Pd=(e,t)=>{if(!e)return Wt;const n=new Yy;e.state=n,n.window=null;const i=Rd(e,t);return i!==Ai&&(e.state=null),i},Wy=e=>Pd(e,Gy);let rh=!0,pa,ma;const Zy=e=>{if(rh){pa=new Int32Array(512),ma=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(Pr(Fd,e.lens,0,288,pa,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Pr(Id,e.lens,0,32,ma,0,e.work,{bits:5}),rh=!1}e.lencode=pa,e.lenbits=9,e.distcode=ma,e.distbits=5},$d=(e,t,n,i)=>{let r;const s=e.state;return s.window===null&&(s.wsize=1<=s.wsize?(s.window.set(t.subarray(n-s.wsize,n),0),s.wnext=0,s.whave=s.wsize):(r=s.wsize-s.wnext,r>i&&(r=i),s.window.set(t.subarray(n-i,n-i+r),s.wnext),i-=r,i?(s.window.set(t.subarray(n-i,n),0),s.wnext=i,s.whave=s.wsize):(s.wnext+=r,s.wnext===s.wsize&&(s.wnext=0),s.whave{let n,i,r,s,o,a,l,u,c,p,f,d,_,h,m=0,g,v,y,A,b,S,D,k;const T=new Uint8Array(4);let B,M;const U=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&&e.avail_in!==0)return Wt;n=e.state,n.mode===bn&&(n.mode=ha),o=e.next_out,r=e.output,l=e.avail_out,s=e.next_in,i=e.input,a=e.avail_in,u=n.hold,c=n.bits,p=a,f=l,k=Ai;e:for(;;)switch(n.mode){case Nd:if(n.wrap===0){n.mode=ha;break}for(;c<16;){if(a===0)break e;a--,u+=i[s++]<>>8&255,n.check=ft(n.check,T,2,0),u=0,c=0,n.mode=Lc;break}if(n.flags=0,n.head&&(n.head.done=!1),!(n.wrap&1)||(((u&255)<<8)+(u>>8))%31){e.msg="incorrect header check",n.mode=Ge;break}if((u&15)!==Oc){e.msg="unknown compression method",n.mode=Ge;break}if(u>>>=4,c-=4,D=(u&15)+8,n.wbits===0)n.wbits=D;else if(D>n.wbits){e.msg="invalid window size",n.mode=Ge;break}n.dmax=1<>8&1),n.flags&512&&(T[0]=u&255,T[1]=u>>>8&255,n.check=ft(n.check,T,2,0)),u=0,c=0,n.mode=Rc;case Rc:for(;c<32;){if(a===0)break e;a--,u+=i[s++]<>>8&255,T[2]=u>>>16&255,T[3]=u>>>24&255,n.check=ft(n.check,T,4,0)),u=0,c=0,n.mode=Pc;case Pc:for(;c<16;){if(a===0)break e;a--,u+=i[s++]<>8),n.flags&512&&(T[0]=u&255,T[1]=u>>>8&255,n.check=ft(n.check,T,2,0)),u=0,c=0,n.mode=$c;case $c:if(n.flags&1024){for(;c<16;){if(a===0)break e;a--,u+=i[s++]<>>8&255,n.check=ft(n.check,T,2,0)),u=0,c=0}else n.head&&(n.head.extra=null);n.mode=zc;case zc:if(n.flags&1024&&(d=n.length,d>a&&(d=a),d&&(n.head&&(D=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(i.subarray(s,s+d),D)),n.flags&512&&(n.check=ft(n.check,i,d,s)),a-=d,s+=d,n.length-=d),n.length))break e;n.length=0,n.mode=Uc;case Uc:if(n.flags&2048){if(a===0)break e;d=0;do D=i[s+d++],n.head&&D&&n.length<65536&&(n.head.name+=String.fromCharCode(D));while(D&&d>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=bn;break;case Vc:for(;c<32;){if(a===0)break e;a--,u+=i[s++]<>>=c&7,c-=c&7,n.mode=da;break}for(;c<3;){if(a===0)break e;a--,u+=i[s++]<>>=1,c-=1,u&3){case 0:n.mode=Xc;break;case 1:if(Zy(n),n.mode=Bs,t===Ts){u>>>=2,c-=2;break e}break;case 2:n.mode=Gc;break;case 3:e.msg="invalid block type",n.mode=Ge}u>>>=2,c-=2;break;case Xc:for(u>>>=c&7,c-=c&7;c<32;){if(a===0)break e;a--,u+=i[s++]<>>16^65535)){e.msg="invalid stored block lengths",n.mode=Ge;break}if(n.length=u&65535,u=0,c=0,n.mode=fa,t===Ts)break e;case fa:n.mode=Jc;case Jc:if(d=n.length,d){if(d>a&&(d=a),d>l&&(d=l),d===0)break e;r.set(i.subarray(s,s+d),o),a-=d,s+=d,l-=d,o+=d,n.length-=d;break}n.mode=bn;break;case Gc:for(;c<14;){if(a===0)break e;a--,u+=i[s++]<>>=5,c-=5,n.ndist=(u&31)+1,u>>>=5,c-=5,n.ncode=(u&15)+4,u>>>=4,c-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=Ge;break}n.have=0,n.mode=Yc;case Yc:for(;n.have>>=3,c-=3}for(;n.have<19;)n.lens[U[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,B={bits:n.lenbits},k=Pr(Py,n.lens,0,19,n.lencode,0,n.work,B),n.lenbits=B.bits,k){e.msg="invalid code lengths set",n.mode=Ge;break}n.have=0,n.mode=Wc;case Wc:for(;n.have>>24,v=m>>>16&255,y=m&65535,!(g<=c);){if(a===0)break e;a--,u+=i[s++]<>>=g,c-=g,n.lens[n.have++]=y;else{if(y===16){for(M=g+2;c>>=g,c-=g,n.have===0){e.msg="invalid bit length repeat",n.mode=Ge;break}D=n.lens[n.have-1],d=3+(u&3),u>>>=2,c-=2}else if(y===17){for(M=g+3;c>>=g,c-=g,D=0,d=3+(u&7),u>>>=3,c-=3}else{for(M=g+7;c>>=g,c-=g,D=0,d=11+(u&127),u>>>=7,c-=7}if(n.have+d>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=Ge;break}for(;d--;)n.lens[n.have++]=D}}if(n.mode===Ge)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=Ge;break}if(n.lenbits=9,B={bits:n.lenbits},k=Pr(Fd,n.lens,0,n.nlen,n.lencode,0,n.work,B),n.lenbits=B.bits,k){e.msg="invalid literal/lengths set",n.mode=Ge;break}if(n.distbits=6,n.distcode=n.distdyn,B={bits:n.distbits},k=Pr(Id,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,B),n.distbits=B.bits,k){e.msg="invalid distances set",n.mode=Ge;break}if(n.mode=Bs,t===Ts)break e;case Bs:n.mode=Ns;case Ns:if(a>=6&&l>=258){e.next_out=o,e.avail_out=l,e.next_in=s,e.avail_in=a,n.hold=u,n.bits=c,By(e,f),o=e.next_out,r=e.output,l=e.avail_out,s=e.next_in,i=e.input,a=e.avail_in,u=n.hold,c=n.bits,n.mode===bn&&(n.back=-1);break}for(n.back=0;m=n.lencode[u&(1<>>24,v=m>>>16&255,y=m&65535,!(g<=c);){if(a===0)break e;a--,u+=i[s++]<>A)],g=m>>>24,v=m>>>16&255,y=m&65535,!(A+g<=c);){if(a===0)break e;a--,u+=i[s++]<>>=A,c-=A,n.back+=A}if(u>>>=g,c-=g,n.back+=g,n.length=y,v===0){n.mode=eh;break}if(v&32){n.back=-1,n.mode=bn;break}if(v&64){e.msg="invalid literal/length code",n.mode=Ge;break}n.extra=v&15,n.mode=Zc;case Zc:if(n.extra){for(M=n.extra;c>>=n.extra,c-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=Kc;case Kc:for(;m=n.distcode[u&(1<>>24,v=m>>>16&255,y=m&65535,!(g<=c);){if(a===0)break e;a--,u+=i[s++]<>A)],g=m>>>24,v=m>>>16&255,y=m&65535,!(A+g<=c);){if(a===0)break e;a--,u+=i[s++]<>>=A,c-=A,n.back+=A}if(u>>>=g,c-=g,n.back+=g,v&64){e.msg="invalid distance code",n.mode=Ge;break}n.offset=y,n.extra=v&15,n.mode=qc;case qc:if(n.extra){for(M=n.extra;c>>=n.extra,c-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=Ge;break}n.mode=Qc;case Qc:if(l===0)break e;if(d=f-l,n.offset>d){if(d=n.offset-d,d>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=Ge;break}d>n.wnext?(d-=n.wnext,_=n.wsize-d):_=n.wnext-d,d>n.length&&(d=n.length),h=n.window}else h=r,_=o-n.offset,d=n.length;d>l&&(d=l),l-=d,n.length-=d;do r[o++]=h[_++];while(--d);n.length===0&&(n.mode=Ns);break;case eh:if(l===0)break e;r[o++]=n.length,l--,n.mode=Ns;break;case da:if(n.wrap){for(;c<32;){if(a===0)break e;a--,u|=i[s++]<{if(!e||!e.state)return Wt;let t=e.state;return t.window&&(t.window=null),e.state=null,Ai},Qy=(e,t)=>{if(!e||!e.state)return Wt;const n=e.state;return(n.wrap&2)===0?Wt:(n.head=t,t.done=!1,Ai)},e2=(e,t)=>{const n=t.length;let i,r,s;return!e||!e.state||(i=e.state,i.wrap!==0&&i.mode!==mo)?Wt:i.mode===mo&&(r=1,r=Kr(r,t,n,0),r!==i.check)?Td:(s=$d(e,t,n,n),s?(i.mode=Md,Bd):(i.havedict=1,Ai))};var t2=Ld,n2=Rd,i2=Od,r2=Wy,s2=Pd,o2=Ky,a2=qy,l2=Qy,u2=e2,c2="pako inflate (from Nodeca project)",In={inflateReset:t2,inflateReset2:n2,inflateResetKeep:i2,inflateInit:r2,inflateInit2:s2,inflate:o2,inflateEnd:a2,inflateGetHeader:l2,inflateSetDictionary:u2,inflateInfo:c2};function h2(){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}var f2=h2;const zd=Object.prototype.toString,{Z_NO_FLUSH:d2,Z_FINISH:p2,Z_OK:ts,Z_STREAM_END:_a,Z_NEED_DICT:va,Z_STREAM_ERROR:m2,Z_DATA_ERROR:sh,Z_MEM_ERROR:g2}=Lo;function ql(e){this.options=$o.assign({chunkSize:1024*64,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15)===0&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Cd,this.strm.avail_out=0;let n=In.inflateInit2(this.strm,t.windowBits);if(n!==ts)throw new Error(qr[n]);if(this.header=new f2,In.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=es.string2buf(t.dictionary):zd.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=In.inflateSetDictionary(this.strm,t.dictionary),n!==ts)))throw new Error(qr[n])}ql.prototype.push=function(e,t){const n=this.strm,i=this.options.chunkSize,r=this.options.dictionary;let s,o,a;if(this.ended)return!1;for(t===~~t?o=t:o=t===!0?p2:d2,zd.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){for(n.avail_out===0&&(n.output=new Uint8Array(i),n.next_out=0,n.avail_out=i),s=In.inflate(n,o),s===va&&r&&(s=In.inflateSetDictionary(n,r),s===ts?s=In.inflate(n,o):s===sh&&(s=va));n.avail_in>0&&s===_a&&n.state.wrap>0&&e[n.next_in]!==0;)In.inflateReset(n),s=In.inflate(n,o);switch(s){case m2:case sh:case va:case g2:return this.onEnd(s),this.ended=!0,!1}if(a=n.avail_out,n.next_out&&(n.avail_out===0||s===_a))if(this.options.to==="string"){let l=es.utf8border(n.output,n.next_out),u=n.next_out-l,c=es.buf2string(n.output,l);n.next_out=u,n.avail_out=i-u,u&&n.output.set(n.output.subarray(l,l+u),0),this.onData(c)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(s===ts&&a===0)){if(s===_a)return s=In.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(n.avail_in===0)break}}return!0};ql.prototype.onData=function(e){this.chunks.push(e)};ql.prototype.onEnd=function(e){e===ts&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=$o.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var Ud={exports:{}},jd={exports:{}};(function(){var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t={rotl:function(n,i){return n<>>32-i},rotr:function(n,i){return n<<32-i|n>>>i},endian:function(n){if(n.constructor==Number)return t.rotl(n,8)&16711935|t.rotl(n,24)&4278255360;for(var i=0;i0;n--)i.push(Math.floor(Math.random()*256));return i},bytesToWords:function(n){for(var i=[],r=0,s=0;r>>5]|=n[r]<<24-s%32;return i},wordsToBytes:function(n){for(var i=[],r=0;r>>5]>>>24-r%32&255);return i},bytesToHex:function(n){for(var i=[],r=0;r>>4).toString(16)),i.push((n[r]&15).toString(16));return i.join("")},hexToBytes:function(n){for(var i=[],r=0;r>>6*(3-o)&63)):i.push("=");return i.join("")},base64ToBytes:function(n){n=n.replace(/[^A-Z0-9+\/]/ig,"");for(var i=[],r=0,s=0;r>>6-s*2);return i}};jd.exports=t})();var nl={utf8:{stringToBytes:function(e){return nl.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(nl.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],n=0;n + * @license MIT + */var _2=function(e){return e!=null&&(Hd(e)||v2(e)||!!e._isBuffer)};function Hd(e){return!!e.constructor&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function v2(e){return typeof e.readFloatLE=="function"&&typeof e.slice=="function"&&Hd(e.slice(0,0))}(function(){var e=jd.exports,t=oh.utf8,n=_2,i=oh.bin,r=function(s,o){s.constructor==String?o&&o.encoding==="binary"?s=i.stringToBytes(s):s=t.stringToBytes(s):n(s)?s=Array.prototype.slice.call(s,0):!Array.isArray(s)&&s.constructor!==Uint8Array&&(s=s.toString());for(var a=e.bytesToWords(s),l=s.length*8,u=1732584193,c=-271733879,p=-1732584194,f=271733878,d=0;d>>24)&16711935|(a[d]<<24|a[d]>>>8)&4278255360;a[l>>>5]|=128<>>9<<4)+14]=l;for(var _=r._ff,h=r._gg,m=r._hh,g=r._ii,d=0;d>>0,c=c+y>>>0,p=p+A>>>0,f=f+b>>>0}return e.endian([u,c,p,f])};r._ff=function(s,o,a,l,u,c,p){var f=s+(o&a|~o&l)+(u>>>0)+p;return(f<>>32-c)+o},r._gg=function(s,o,a,l,u,c,p){var f=s+(o&l|a&~l)+(u>>>0)+p;return(f<>>32-c)+o},r._hh=function(s,o,a,l,u,c,p){var f=s+(o^a^l)+(u>>>0)+p;return(f<>>32-c)+o},r._ii=function(s,o,a,l,u,c,p){var f=s+(a^(o|~l))+(u>>>0)+p;return(f<>>32-c)+o},r._blocksize=16,r._digestsize=16,Ud.exports=function(s,o){if(s==null)throw new Error("Illegal argument "+s);var a=e.wordsToBytes(r(s,o));return o&&o.asBytes?a:o&&o.asString?i.bytesToString(a):e.bytesToHex(a)}})();var zo=Ud.exports,Qt,Oi;(Oi=Qt||(Qt={})).UP="up",Oi.DOWN="down",Oi.NORTH="north",Oi.EAST="east",Oi.SOUTH="south",Oi.WEST="west";const x2={[Qt.UP]:[0,1,0],[Qt.DOWN]:[0,-1,0],[Qt.NORTH]:[0,0,-1],[Qt.EAST]:[1,0,0],[Qt.SOUTH]:[0,0,1],[Qt.WEST]:[-1,0,0]};var or,Un;(function(e){e.ALL=[e.UP,e.DOWN,e.NORTH,e.EAST,e.SOUTH,e.WEST],e.normal=function(t){return x2[t]}})(Qt||(Qt={})),(Un=or||(or={})).create=function(e,t,n){return[e,t,n]},Un.ZERO=Un.create(0,0,0),Un.offset=function(e,t,n,i){return[e[0]+t,e[1]+n,e[2]+i]},Un.towards=function(e,t){return Un.offset(e,...Qt.normal(t))},Un.equals=function(e,t){return e===t||e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]},Un.magnitude=function(e){return e[0]*e[0]+e[1]*e[1]+e[2]*e[2]};function xa(e,t,n){if(!e[t])throw new Error(`Missing ${t} tag`);if(e[t].type!==n)throw new Error(`Expected ${t} to be of type ${n}, but found ${e[t].type}`);return e[t].value}function y2(e,t){try{return e()}catch{return t}}var J;function ya(e){let t=null;return()=>(t==null&&(t=e()),t)}function Uo(e,t,n){const i=e.get(t);if(i)return i;const r=n(t);return e.set(t,r),r}(function(e){function t(n){return typeof n=="object"&&n!==null?n:void 0}e.readNumber=function(n){return typeof n=="number"?n:void 0},e.readInt=function(n){return typeof n=="number"?Math.floor(n):void 0},e.readString=function(n){return typeof n=="string"?n:void 0},e.readBoolean=function(n){return typeof n=="boolean"?n:void 0},e.readObject=t,e.readArray=function(n,i){if(Array.isArray(n))return n.map(r=>i(r))},e.readMap=function(n,i){var r;const s=(r=t(n))!=null?r:{};return Object.fromEntries(Object.entries(s).map(([o,a])=>[o,i(a)]))},e.compose=function(n,i,r){const s=i(n);return s?r(s):void 0},e.readEnum=function(n,i){return typeof n!="string"?i[0]:i.includes(n)?n:i[0]}})(J||(J={}));const Ks=class{constructor(e,t){if(this.namespace=e,this.path=t,!e.match(/^[a-z0-9._-]+$/))throw new Error(`Non [a-z0-9._-] character in namespace of ${e}:${t}`);if(!t.match(/^[a-z0-9/._-]+$/))throw new Error(`Non [a-z0-9/._-] character in path of ${e}:${t}`)}equals(e){return this===e||this.namespace===e.namespace&&this.path===e.path}toString(){return`${this.namespace}:${this.path}`}static create(e){return new Ks(this.DEFAULT_NAMESPACE,e)}static parse(e){const t=e.indexOf(this.SEPARATOR);if(t>=0){const n=t>=1?e.substring(0,t):this.DEFAULT_NAMESPACE,i=e.substring(t+1);return new Ks(n,i)}return new Ks(this.DEFAULT_NAMESPACE,e)}};let Be=Ks;Be.DEFAULT_NAMESPACE="minecraft",Be.SEPARATOR=":";var w2=Object.defineProperty,E2=Object.defineProperties,b2=Object.getOwnPropertyDescriptors,ah=Object.getOwnPropertySymbols,A2=Object.prototype.hasOwnProperty,S2=Object.prototype.propertyIsEnumerable,lh=(e,t,n)=>t in e?w2(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const dn=class{constructor(e,t={}){this.properties=t,this.name=typeof e=="string"?Be.parse(e):e}getName(){return this.name}getProperties(){return this.properties}getProperty(e){return this.properties[e]}isFluid(){return this.is(dn.WATER)||this.is(dn.LAVA)}equals(e){return!!this.name.equals(e.name)&&Object.keys(this.properties).every(t=>e.properties[t]===this.properties[t])}is(e){return this.name.equals(e.name)}toString(){return Object.keys(this.properties).length===0?this.name.toString():`${this.name.toString()}[${Object.entries(this.properties).map(([e,t])=>e+"="+t).join(",")}]`}static fromNbt(e){const t=Be.parse(xa(e.value,"Name","string")),n=y2(()=>xa(e.value,"Properties","compound"),{}),i=Object.keys(n).reduce((r,s)=>{return o=((l,u)=>{for(var c in u||(u={}))A2.call(u,c)&&lh(l,c,u[c]);if(ah)for(var c of ah(u))S2.call(u,c)&&lh(l,c,u[c]);return l})({},r),a={[s]:xa(n,s,"string")},E2(o,b2(a));var o,a},{});return new dn(t,i)}static fromJson(e){var t,n;const i=(t=J.readObject(e))!=null?t:{},r=Be.parse((n=J.readString(i.Name))!=null?n:dn.STONE.name.toString()),s=J.readMap(i.Properties,o=>{var a;return(a=J.readString(o))!=null?a:""});return new dn(r,s)}};let Ft=dn;Ft.AIR=new dn(Be.create("air")),Ft.STONE=new dn(Be.create("stone")),Ft.WATER=new dn(Be.create("water"),{level:"0"}),Ft.LAVA=new dn(Be.create("lava"),{level:"0"});const $r=class{constructor(e){this.minY=e,this.storage=Array($r.SIZE).fill(0),this.palette=[Ft.AIR]}get minBlockY(){return this.minY<<4}index(e,t,n){return(e<<8)+(t<<4)+n}getBlockState(e,t,n){var i;const r=this.storage[this.index(e,t,n)];return(i=this.palette[r])!=null?i:Ft.AIR}setBlockState(e,t,n,i){let r=this.palette.findIndex(s=>s.equals(i));r===-1&&(r=this.palette.length,this.palette.push(i)),this.storage[this.index(e,t,n)]=r}};let il=$r;il.WIDTH=16,il.SIZE=$r.WIDTH*$r.WIDTH*$r.WIDTH;class D2{constructor(t,n,i){this.minY=t,this.height=n,this.pos=i,this.sections=Array(this.sectionsCount).fill(null)}get maxY(){return this.minY+this.height}get minSection(){return this.minY>>4}get maxSection(){return 1+(this.maxY-1>>4)}get sectionsCount(){return this.maxSection-this.minSection}getSectionIndex(t){return(t>>4)-this.minSection}getBlockState(t){var n;const[i,r,s]=t,o=this.sections[this.getSectionIndex(r)];return(n=o==null?void 0:o.getBlockState(15&i,15&r,15&s))!=null?n:Ft.AIR}setBlockState(t,n){const[i,r,s]=t,o=this.getSectionIndex(r);let a=this.sections[o];if(a===null){if(n.equals(Ft.AIR))return;a=this.getOrCreateSection(o)}a.setBlockState(15&i,15&r,15&s,n)}getOrCreateSection(t){return this.sections[t]==null&&(this.sections[t]=new il(this.minSection+t)),this.sections[t]}}var $t,ar;(function(e){function t(n,i){return BigInt(4294967295&n)|BigInt(4294967295&i)<>4,n[2]>>4]},e.fromLong=function(n){return[4294967295&Number(n),Number(n>>BigInt(32))]},e.toLong=function(n){return t(n[0],n[1])},e.asLong=t,e.minBlockX=function(n){return n[0]<<4},e.minBlockZ=function(n){return n[1]<<4},e.maxBlockX=function(n){return 15+(n[0]<<4)},e.maxBlockZ=function(n){return 15+(n[1]<<4)}})($t||($t={})),function(e){function t(i){return{value:()=>i,key:()=>{}}}function n(i,r){return{value:()=>i.getOrThrow(r),key:()=>r}}e.parser=function(i,r){return s=>typeof s=="string"?n(i,Be.parse(s)):t(r(s))},e.direct=t,e.reference=n}(ar||(ar={}));const Ql=class{constructor(e,t){this.key=e,this.parser=t,this.storage=new Map,this.builtin=new Map}register(e,t,n){return this.storage.set(e.toString(),t),n&&this.builtin.set(e.toString(),t),ar.reference(this,e)}keys(){return[...this.storage.keys()].map(e=>Be.parse(e))}get(e){return this.storage.get(e.toString())}getOrThrow(e){const t=this.storage.get(e.toString());if(t===void 0)throw new Error(`Missing key in ${this.key.toString()}: ${e.toString()}`);return t}parse(e){if(!this.parser)throw new Error(`No parser exists for ${this.key.toString()}`);return this.parser(e)}clear(){this.storage.clear();for(const[e,t]of this.builtin.entries())this.storage.set(e,t);return this}assign(e){if(!this.key.equals(e.key))throw new Error(`Cannot assign registry of type ${e.key.toString()} to registry of type ${this.key.toString()}`);for(const t of e.keys())this.storage.set(t.toString(),e.getOrThrow(t));return this}cloneEmpty(){return new Ql(this.key,this.parser)}};let ns=Ql;ns.REGISTRY=new Ql(Be.create("root"));function jn(e){return e*e}function Fr(e,t,n){return Math.max(t,Math.min(n,e))}function ni(e,t,n){return t+e*(n-t)}function rl(e,t,n,i,r,s){return ni(t,ni(e,n,i),ni(e,r,s))}function C2(e,t,n,i,r,s,o,a,l,u,c){return ni(n,rl(e,t,i,r,s,o),rl(e,t,a,l,u,c))}function qs(e,t,n){return e===0?t():e===1?n():t()+e*(n()-t())}function uh(e,t,n,i,r,s){return qs(t,()=>qs(e,n,i),()=>qs(e,r,s))}function k2(e,t,n,i,r,s,o,a,l,u,c){return qs(n,()=>uh(e,t,i,r,s,o),()=>uh(e,t,a,l,u,c))}function eu(e,t,n){return n<0?e:n>1?t:ni(n,e,t)}function Vd(e,t,n){return(e-t)/(n-t)}function wa(e){return e*e*e*(e*(6*e-15)+10)}function ch(e,t,n,i,r){return ni(Vd(e,t,n),i,r)}function Xd(e,t,n,i,r){return eu(i,r,Vd(e,t,n))}function F2(e,t,n){let i=t-e;for(;i>0;){const r=Math.floor(i/2),s=e+r;n(s)?i=r:(e=s+1,i-=r+1)}return e}function Jd(e,t,n){let i=BigInt(3129871*e)^BigInt(n)*BigInt(116129781)^BigInt(t);return i=i*i*BigInt(42317861)+i*BigInt(11),i>>BigInt(16)}function sl(e,t,n,i,r,s,o,a){return BigInt(e)<{var _;return(_=J.readObject(d))!=null?_:{}}))!=null?a:[];if(f.length===0)return new t(0);for(const d of f){const _=(l=J.readNumber(d.location))!=null?l:0,h=i(d.value,s),m=(u=J.readNumber(d.derivative))!=null?u:0;p.addPoint(_,h,m)}return p};class t{constructor(r){this.value=r}compute(){return this.value}min(){return this.value}max(){return this.value}mapAll(){return this}}e.Constant=t;class n{constructor(r,s=[],o=[],a=[]){this.coordinate=r,this.locations=s,this.values=o,this.derivatives=a}compute(r){const s=this.coordinate.compute(r),o=F2(0,this.locations.length,g=>sr.min()))}max(){return Math.max(...this.values.map(r=>r.max()))}mapAll(r){return new n(r(this.coordinate),this.locations,this.values.map(s=>s.mapAll(r)),this.derivatives)}addPoint(r,s,o=0){return this.locations.push(r),this.values.push(typeof s=="number"?new e.Constant(s):s),this.derivatives.push(o),this}}e.MultiPoint=n})(Ki||(Ki={}));const cn=class{constructor(e){this.seed=BigInt(0),this.setSeed(e)}fork(){return new cn(this.nextLong())}forkPositional(){return new I2(this.nextLong())}setSeed(e){this.seed=e^cn.MULTIPLIER&cn.MODULUS_MASK}advance(){this.seed=this.seed*cn.MULTIPLIER+cn.INCREMENT&cn.MODULUS_MASK}consume(e){for(let t=0;t>BigInt(cn.MODULUS_BITS-e));return t>2147483647?t-4294967296:t}nextInt(e){if(e===void 0)return this.next(32);if((e&e-1)==0)return Number(BigInt(e)*BigInt(this.next(31))>>BigInt(31));let t,n;for(;(t=this.next(31))-(n=t%e)+(e-1)<0;);return n}nextLong(){return(BigInt(this.next(32))<>_e.BIGINT_30)*_e.STAFFORD_1&_e.MAX_ULONG)^e>>_e.BIGINT_27)*_e.STAFFORD_2&_e.MAX_ULONG)^e>>_e.BIGINT_31)&_e.MAX_ULONG}static upgradeSeedTo128bit(e){e<0&&(e+=_e.POW2_60);const t=e^_e.SILVER_RATIO_64,n=t+_e.GOLDEN_RATIO_64&_e.MAX_ULONG;return[_e.mixStafford13(t),_e.mixStafford13(n)]}static rotateLeft(e,t){return e<>_e.BIGINT_64-t}setSeed(e){this.seed=_e.upgradeSeedTo128bit(e)}fork(){return new _e([this.next(),this.next()])}forkPositional(){return new T2(this.next(),this.next())}next(){const e=this.seed[0];let t=this.seed[1];const n=_e.rotateLeft(e+t&_e.MAX_ULONG,_e.BIGINT_17)+e&_e.MAX_ULONG;return t^=e,this.seed=[_e.rotateLeft(e,_e.BIGINT_49)^t^t<<_e.BIGINT_21&_e.MAX_ULONG,_e.rotateLeft(t,_e.BIGINT_28)],n}nextLong(){let e=this.next();return e>_e.POW2_63&&(e-=_e.POW2_60),e}consume(e){let t=this.seed[0],n=this.seed[1];for(let i=0;i>BigInt(64-e)}nextInt(e){let t=this.next()&_e.MAX_UINT;if(e){const n=BigInt(e);let i=t*n,r=i&_e.MAX_UINT;if(r>_e.BIGINT_32;return Number(s)}{let n=Number(t);return n>=2147483648&&(n-=4294967296),n}}nextFloat(){return Number(this.nextBits(24))*_e.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*_e.DOUBLE_MULTIPLIER}parityConfigString(){return"seedLo: "+this.seed[0]+", seedHi: "+this.seed[1]}};let $e=_e;$e.SILVER_RATIO_64=BigInt("7640891576956012809"),$e.GOLDEN_RATIO_64=BigInt("-7046029254386353131"),$e.FLOAT_MULTIPLIER=1/Math.pow(2,24),$e.DOUBLE_MULTIPLIER=11102230246251565e-32,$e.BIGINT_1=BigInt(1),$e.BIGINT_17=BigInt(17),$e.BIGINT_21=BigInt(21),$e.BIGINT_27=BigInt(27),$e.BIGINT_28=BigInt(28),$e.BIGINT_30=BigInt(30),$e.BIGINT_31=BigInt(31),$e.BIGINT_32=BigInt(32),$e.BIGINT_49=BigInt(49),$e.BIGINT_64=BigInt(64),$e.STAFFORD_1=BigInt("-4658895280553007687"),$e.STAFFORD_2=BigInt("-7723592293110705685"),$e.MAX_ULONG=BigInt("0xFFFFFFFFFFFFFFFF"),$e.POW2_60=BigInt("0x10000000000000000"),$e.POW2_63=BigInt("0x8000000000000000"),$e.MAX_UINT=BigInt(4294967295);class T2{constructor(t,n){this.seedLo=t,this.seedHi=n}at(t,n,i){const r=Jd(t,n,i)^this.seedLo;return new $e([r,this.seedHi])}fromHashOf(t){const n=zo(t,{asBytes:!0}),i=sl(n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7]),r=sl(n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15]);return new $e([i^this.seedLo,r^this.seedHi])}seedKey(){return[this.seedLo,this.seedHi]}}const Sn=class{constructor(e){this.xo=256*e.nextDouble(),this.yo=256*e.nextDouble(),this.zo=256*e.nextDouble(),this.p=Array(256);for(let t=0;t<256;t+=1)this.p[t]=t;for(let t=0;t<256;t+=1){const n=e.nextInt(256-t),i=this.p[t];this.p[t]=this.p[t+n],this.p[t+n]=i}}sample2D(e,t){let n,i,r;const s=(e+t)*Sn.F2,o=Math.floor(e+s),a=e-(o-(n=(o+(i=Math.floor(t+s)))*Sn.G2));let l,u;a>(r=t-(i-n))?(l=1,u=0):(l=0,u=1);const c=a-l+Sn.G2,p=r-u+Sn.G2,f=a-1+2*Sn.G2,d=r-1+2*Sn.G2,_=255&o,h=255&i,m=this.P(_+this.P(h))%12,g=this.P(_+l+this.P(h+u))%12,v=this.P(_+1+this.P(h+1))%12;return 70*(this.getCornerNoise3D(m,a,r,0,.5)+this.getCornerNoise3D(g,c,p,0,.5)+this.getCornerNoise3D(v,f,d,0,.5))}sample(e,t,n){const i=.3333333333333333*(e+t+n),r=Math.floor(e+i),s=Math.floor(t+i),o=Math.floor(n+i),a=.16666666666666666*(r+s+o),l=e-(r-a),u=t-(s-a),c=n-(o-a);let p,f,d,_,h,m;l>=u?u>=c?(p=1,f=0,d=0,_=1,h=1,m=0):l>=c?(p=1,f=0,d=0,_=1,h=0,m=1):(p=0,f=0,d=1,_=1,h=0,m=1):u127?n-256:n;for(let n=0;n<256;n+=1){const i=t.nextInt(256-n),r=this.p[n];this.p[n]=this.p[n+i],this.p[n+i]=r}}sample(t,n,i,r=0,s=0){const o=t+this.xo,a=n+this.yo,l=i+this.zo,u=Math.floor(o),c=Math.floor(a),p=Math.floor(l),f=o-u,d=a-c,_=l-p;let h=0;if(r!==0){const m=s>=0&&s=0;r-=1)r0&&(r=this.maxLimitNoise.getOctaveNoise(u))&&(l+=r.sample(f,d,_,p,n*p)/o),o/=2}return eu(a/512,l/512,s)/128}}var ol;(ol||(ol={})).fromJson=function(e){var t,n,i,r,s;const o=(t=J.readObject(e))!=null?t:{};return{xzScale:(n=J.readNumber(o.xz_scale))!=null?n:1,yScale:(i=J.readNumber(o.y_scale))!=null?i:1,xzFactor:(r=J.readNumber(o.xz_factor))!=null?r:80,yFactor:(s=J.readNumber(o.y_factor))!=null?s:80}};const Qs=class{constructor(e,{firstOctave:t,amplitudes:n}){this.first=new je(e,t,n),this.second=new je(e,t,n);let i=1/0,r=-1/0;for(let o=0;o{var o;return(o=J.readNumber(s))!=null?o:0}))!=null?i:[]}};var dh;(dh||(dh={})).rotate=function(e,t,n){let{up:i,down:r,north:s,east:o,south:a,west:l}=e;switch(n){case 90:[s,o,a,l]=[o,a,l,s];break;case 180:[s,o,a,l]=[a,l,s,o];break;case 270:[s,o,a,l]=[l,s,o,a]}switch(t){case 90:[i,s,r,a]=[s,r,a,i];break;case 180:[i,s,r,a]=[r,a,i,s];break;case 270:[i,s,r,a]=[a,i,s,r]}return{up:i,down:r,north:s,east:o,south:a,west:l}};const Gn=class{constructor(e,t,n){this.offsetSampler=e,this.factorSampler=t,this.jaggednessSampler=n}static extractor(e){return{compute:t=>t[e]}}static fromJson(e){var t;const n=(t=J.readObject(e))!=null?t:{};return new Gn(Ki.fromJson(n.offset,this.EXTRACTOR),Ki.fromJson(n.factor,this.EXTRACTOR),Ki.fromJson(n.jaggedness,this.EXTRACTOR))}offset(e){return this.offsetSampler.compute(e)+Gn.GLOBAL_OFFSET}factor(e){return this.factorSampler.compute(e)}jaggedness(e){return this.jaggednessSampler.compute(e)}static point(e,t,n){return{continents:e,erosion:t,weirdness:n,ridges:this.peaksAndValleys(n)}}static peaksAndValleys(e){return 3*-(Math.abs(Math.abs(e)-.6666667)-.33333334)}};let Vn=Gn;var st,Li,ph,oi,al;Vn.GLOBAL_OFFSET=-.50375,Vn.EXTRACTOR=e=>{var t;const n=(t=J.readString(e))!=null?t:"continents";return Gn.extractor(n)},Vn.CONTINENTS=Gn.extractor("continents"),Vn.EROSION=Gn.extractor("erosion"),Vn.WEIRDNESS=Gn.extractor("weirdness"),Vn.RIDGES=Gn.extractor("ridges"),function(e){function t(n){return n.ySize<<2}e.fromJson=function(n){var i,r,s,o,a;const l=(i=J.readObject(n))!=null?i:{};return{minY:(r=J.readInt(l.min_y))!=null?r:0,height:(s=J.readInt(l.height))!=null?s:256,xzSize:(o=J.readInt(l.size_horizontal))!=null?o:1,ySize:(a=J.readInt(l.size_vertical))!=null?a:1,sampling:ol.fromJson(l.sampling),topSlide:Li.fromJson(l.top_slide),bottomSlide:Li.fromJson(l.bottom_slide),terrainShaper:Vn.fromJson(l.terrain_shaper)}},e.cellHeight=t,e.cellWidth=function(n){return n.xzSize<<2},e.cellCountY=function(n){return n.height/t(n)},e.minCellY=function(n){return Math.floor(n.minY/t(n))},e.applySlides=function(n,i,r){const s=Math.floor(r/t(n))-e.minCellY(n);return i=Li.apply(n.topSlide,i,e.cellCountY(n)-s),i=Li.apply(n.bottomSlide,i,s)}}(st||(st={})),(ph=Li||(Li={})).fromJson=function(e){var t,n,i,r;const s=(t=J.readObject(e))!=null?t:{};return{target:(n=J.readNumber(s.target))!=null?n:0,size:(i=J.readInt(s.size))!=null?i:0,offset:(r=J.readInt(s.offset))!=null?r:0}},ph.apply=function(e,t,n){if(e.size<=0)return t;const i=(n-e.offset)/e.size;return eu(e.target,t,i)},function(e){function t(n){const i=new ns(Be.create(n));return ns.REGISTRY.register(i.key,i),i}e.NOISE=t("worldgen/noise"),e.DENSITY_FUNCTION=t("worldgen/density_function")}(oi||(oi={}));class Ae{minValue(){return-this.maxValue()}mapAll(t){return t.map(this)}}(function(e){e.context=function(j,I,O){return{x:j,y:I,z:O}};class t extends e{constructor(I){super(),this.input=I}compute(I){return this.transform(I,this.input.compute(I))}}const n=ar.parser(oi.NOISE,lr.fromJson);e.fromJson=function j(I,O=j){var Z,K,pe,Me,tt,vt,Ze,nt,Ke,xt,yt,Ve,Ct,Ut,ce,jt,De,Se,wt;if(typeof I=="string")return new s(ar.reference(oi.DENSITY_FUNCTION,Be.parse(I)));if(typeof I=="number")return new r(I);const ee=(Z=J.readObject(I))!=null?Z:{},At=(K=J.readString(ee.type))==null?void 0:K.replace(/^minecraft:/,"");switch(At){case"blend_alpha":return new o(1,0,1);case"blend_offset":case"beardifier":return new o(0,-1/0,1/0);case"old_blended_noise":return new a;case"flat_cache":return new u(O(ee.argument));case"interpolated":return new d(O(ee.argument));case"cache_2d":return new p(O(ee.argument));case"cache_once":return new f(O(ee.argument));case"cache_all_in_cell":return new c(O(ee.argument));case"noise":return new _((pe=J.readNumber(ee.xz_scale))!=null?pe:1,(Me=J.readNumber(ee.y_scale))!=null?Me:1,n(ee.noise));case"end_islands":return new h;case"weird_scaled_sampler":return new v(O(ee.input),J.readEnum(ee.rarity_value_mapper,m),n(ee.noise));case"shifted_noise":return new y(O(ee.shift_x),O(ee.shift_y),O(ee.shift_z),(tt=J.readNumber(ee.xz_scale))!=null?tt:1,(vt=J.readNumber(ee.y_scale))!=null?vt:1,n(ee.noise));case"range_choice":return new A(O(ee.input),(Ze=J.readNumber(ee.min_inclusive))!=null?Ze:0,(nt=J.readNumber(ee.max_exclusive))!=null?nt:1,O(ee.when_in_range),O(ee.when_out_of_range));case"shift_a":return new S(n(ee.argument));case"shift_b":return new D(n(ee.argument));case"shift":return new k(n(ee.argument));case"blend_density":return new T(O(ee.argument));case"clamp":return new B(O(ee.input),(Ke=J.readNumber(ee.min))!=null?Ke:0,(xt=J.readNumber(ee.max))!=null?xt:1);case"abs":case"square":case"cube":case"half_negative":case"quarter_negative":case"squeeze":return new U(At,O(ee.argument));case"slide":return new H(O(ee.argument));case"add":case"mul":case"min":case"max":return new te(J.readEnum(At,Q),O(ee.argument1),O(ee.argument2));case"spline":return new $(Ki.fromJson(ee.spline,O),(yt=J.readNumber(ee.min_value))!=null?yt:0,(Ve=J.readNumber(ee.max_value))!=null?Ve:1);case"terrain_shaper_spline":return new ie(O(ee.continentalness),O(ee.erosion),O(ee.weirdness),J.readEnum(ee.spline,X),(Ct=J.readNumber(ee.min_value))!=null?Ct:0,(Ut=J.readNumber(ee.max_value))!=null?Ut:1);case"constant":return new r((ce=J.readNumber(ee.argument))!=null?ce:0);case"y_clamped_gradient":return new ae((jt=J.readInt(ee.from_y))!=null?jt:-4064,(De=J.readInt(ee.to_y))!=null?De:4062,(Se=J.readNumber(ee.from_value))!=null?Se:-4064,(wt=J.readNumber(ee.to_value))!=null?wt:4062)}return r.ZERO};const i=class extends e{constructor(j){super(),this.value=j}compute(){return this.value}minValue(){return this.value}maxValue(){return this.value}};let r=i;r.ZERO=new i(0),r.ONE=new i(1),e.Constant=r;class s extends e{constructor(I){super(),this.holder=I}compute(I){return this.holder.value().compute(I)}minValue(){return this.holder.value().minValue()}maxValue(){return this.holder.value().maxValue()}}e.HolderHolder=s;class o extends e.Constant{constructor(I,O,Z){super(I),this.min=O,this.max=Z}minValue(){return this.min}maxValue(){return this.max}}e.ConstantMinMax=o;class a extends e{constructor(I){super(),this.blendedNoise=I!=null?I:new Gd($e.create(BigInt(0)),{xzScale:1,yScale:1,xzFactor:80,yFactor:160},4,8)}compute(I){return this.blendedNoise.sample(I.x,I.y,I.z)}maxValue(){return this.blendedNoise.maxValue}}e.OldBlendedNoise=a;class l extends e{constructor(I){super(),this.wrapped=I}minValue(){return this.wrapped.minValue()}maxValue(){return this.wrapped.maxValue()}}class u extends l{constructor(I){super(I),this.lastValue=0}compute(I){const O=I.x>>2,Z=I.z>>2;return this.lastQuartX===O&&this.lastQuartZ===Z||(this.lastValue=this.wrapped.compute(e.context(O<<2,0,Z<<2)),this.lastQuartX=O,this.lastQuartZ=Z),this.lastValue}mapAll(I){return I.map(new u(this.wrapped.mapAll(I)))}}e.FlatCache=u;class c extends l{constructor(I){super(I)}compute(I){return this.wrapped.compute(I)}mapAll(I){return I.map(new c(this.wrapped.mapAll(I)))}}e.CacheAllInCell=c;class p extends l{constructor(I){super(I),this.lastValue=0}compute(I){const O=I.x,Z=I.z;return this.lastBlockX===O&&this.lastBlockZ===Z||(this.lastValue=this.wrapped.compute(I),this.lastBlockX=O,this.lastBlockZ=Z),this.lastValue}mapAll(I){return I.map(new p(this.wrapped.mapAll(I)))}}e.Cache2D=p;class f extends l{constructor(I){super(I),this.lastValue=0}compute(I){const O=I.x,Z=I.y,K=I.z;return this.lastBlockX===O&&this.lastBlockY===Z&&this.lastBlockZ===K||(this.lastValue=this.wrapped.compute(I),this.lastBlockX=O,this.lastBlockY=Z,this.lastBlockZ=K),this.lastValue}mapAll(I){return I.map(new f(this.wrapped.mapAll(I)))}}e.CacheOnce=f;class d extends l{constructor(I,O=4,Z=4){super(I),this.cellWidth=O,this.cellHeight=Z,this.values=new Map}compute({x:I,y:O,z:Z}){const K=this.cellWidth,pe=this.cellHeight,Me=(I%K+K)%K/K,tt=(O%pe+pe)%pe/pe,vt=(Z%K+K)%K/K,Ze=Math.floor(I/K)*K,nt=Math.floor(O/pe)*pe,Ke=Math.floor(Z/K)*K;return k2(Me,tt,vt,()=>this.computeCorner(Ze,nt,Ke),()=>this.computeCorner(Ze+K,nt,Ke),()=>this.computeCorner(Ze,nt+pe,Ke),()=>this.computeCorner(Ze+K,nt+pe,Ke),()=>this.computeCorner(Ze,nt,Ke+K),()=>this.computeCorner(Ze+K,nt,Ke+K),()=>this.computeCorner(Ze,nt+pe,Ke+K),()=>this.computeCorner(Ze+K,nt+pe,Ke+K))}computeCorner(I,O,Z){return Uo(this.values,`${I} ${O} ${Z}`,()=>this.wrapped.compute(e.context(I,O,Z)))}mapAll(I){return I.map(new d(this.wrapped.mapAll(I)))}withCellSize(I,O){return new d(this.wrapped,I,O)}}e.Interpolated=d;class _ extends e{constructor(I,O,Z,K){super(),this.xzScale=I,this.yScale=O,this.noiseData=Z,this.noise=K}compute(I){var O,Z;return(Z=(O=this.noise)==null?void 0:O.sample(I.x*this.xzScale,I.y*this.yScale,I.z*this.xzScale))!=null?Z:0}maxValue(){var I,O;return(O=(I=this.noise)==null?void 0:I.maxValue)!=null?O:2}}e.Noise=_;class h extends e{compute(){return 0}minValue(){return-.84375}maxValue(){return .5625}}const m=["type_1","type_2"],g=class extends t{constructor(j,I,O,Z){super(j),this.rarityValueMapper=I,this.noiseData=O,this.noise=Z,this.mapper=g.ValueMapper[this.rarityValueMapper]}transform(j,I){if(!this.noise)return 0;const O=this.mapper(I);return O*Math.abs(this.noise.sample(j.x/O,j.y/O,j.z/O))}mapAll(j){return j.map(new g(this.input.mapAll(j),this.rarityValueMapper,this.noiseData,this.noise))}minValue(){return 0}maxValue(){return this.rarityValueMapper==="type_1"?2:3}static rarityValueMapper1(j){return j<-.5?.75:j<0?1:j<.5?1.5:2}static rarityValueMapper2(j){return j<-.75?.5:j<-.5?.75:j<.5?1:j<.75?2:3}};let v=g;v.ValueMapper={type_1:g.rarityValueMapper1,type_2:g.rarityValueMapper2},e.WeirdScaledSampler=v;class y extends _{constructor(I,O,Z,K,pe,Me,tt){super(K,pe,Me,tt),this.shiftX=I,this.shiftY=O,this.shiftZ=Z}compute(I){var O,Z;const K=I.x*this.xzScale+this.shiftX.compute(I),pe=I.y*this.yScale+this.shiftY.compute(I),Me=I.z*this.xzScale+this.shiftZ.compute(I);return(Z=(O=this.noise)==null?void 0:O.sample(K,pe,Me))!=null?Z:0}mapAll(I){return I.map(new y(this.shiftX.mapAll(I),this.shiftY.mapAll(I),this.shiftZ.mapAll(I),this.xzScale,this.yScale,this.noiseData,this.noise))}}e.ShiftedNoise=y;class A extends e{constructor(I,O,Z,K,pe){super(),this.input=I,this.minInclusive=O,this.maxExclusive=Z,this.whenInRange=K,this.whenOutOfRange=pe}compute(I){const O=this.input.compute(I);return this.minInclusive<=O&&OMath.abs(j),square:j=>j*j,cube:j=>j*j*j,half_negative:j=>j>0?j:.5*j,quarter_negative:j=>j>0?j:.25*j,squeeze:j=>{const I=Fr(j,-1,1);return I/2-I*I*I/24}},e.Mapped=U;class H extends t{constructor(I,O){super(I),this.settings=O}transform(I,O){return this.settings?st.applySlides(this.settings,O,I.y):O}mapAll(I){return I.map(new H(this.input.mapAll(I),this.settings))}minValue(){return this.settings?Math.min(this.input.minValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.minValue()}maxValue(){return this.settings?Math.max(this.input.maxValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.maxValue()}}e.Slide=H;const Q=["add","mul","min","max"];class te extends e{constructor(I,O,Z,K,pe){super(),this.type=I,this.argument1=O,this.argument2=Z,this.min=K,this.max=pe}compute(I){const O=this.argument1.compute(I);switch(this.type){case"add":return O+this.argument2.compute(I);case"mul":return O===0?0:O*this.argument2.compute(I);case"min":return Othis.argument2.maxValue()?O:Math.max(O,this.argument2.compute(I))}}mapAll(I){return I.map(new te(this.type,this.argument1.mapAll(I),this.argument2.mapAll(I)))}minValue(){var I;return(I=this.min)!=null?I:-1/0}maxValue(){var I;return(I=this.max)!=null?I:1/0}withMinMax(){const I=this.argument1.minValue(),O=this.argument2.minValue(),Z=this.argument1.maxValue(),K=this.argument2.maxValue();let pe,Me;switch(this.type!=="min"&&this.type!=="max"||!(I>=K||O>=Z)||console.warn(`Creating a ${this.type} function between two non-overlapping inputs`),this.type){case"add":pe=I+O,Me=Z+K;break;case"mul":pe=I>0&&O>0?I*O||0:Z<0&&K<0?Z*K||0:Math.min(I*K||0,O*Z||0),Me=I>0&&O>0?Z*K||0:Z<0&&K<0?I*O||0:Math.max(I*O||0,Z*K||0);break;case"min":pe=Math.min(I,O),Me=Math.min(Z,K);break;case"max":pe=Math.max(I,O),Me=Math.max(Z,K)}return new te(this.type,this.argument1,this.argument2,pe,Me)}}e.Ap2=te;class $ extends e{constructor(I,O,Z){super(),this.spline=I,this.min=O,this.max=Z}compute(I){return Fr(this.spline.compute(I),this.min,this.max)}mapAll(I){return I.map(new $(this.spline.mapAll(O=>O instanceof e?O.mapAll(I):O),this.min,this.max))}minValue(){return this.min}maxValue(){return this.max}}e.Spline=$;const X=["offset","factor","jaggedness"];class ie extends e{constructor(I,O,Z,K,pe,Me,tt){super(),this.continentalness=I,this.erosion=O,this.weirdness=Z,this.spline=K,this.min=pe,this.max=Me,this.shaper=tt}compute(I){if(!this.shaper)return 0;const O=Vn.point(this.continentalness.compute(I),this.erosion.compute(I),this.weirdness.compute(I));return Fr(this.shaper[this.spline](O),this.min,this.max)}mapAll(I){return I.map(new ie(this.continentalness.mapAll(I),this.erosion.mapAll(I),this.weirdness.mapAll(I),this.spline,this.min,this.max,this.shaper))}minValue(){return this.min}maxValue(){return this.max}}e.TerrainShaperSpline=ie;class ae extends e{constructor(I,O,Z,K){super(),this.fromY=I,this.toY=O,this.fromValue=Z,this.toValue=K}compute(I){return Xd(I.y,this.fromY,this.toY,this.fromValue,this.toValue)}minValue(){return Math.min(this.fromValue,this.toValue)}maxValue(){return Math.max(this.fromValue,this.toValue)}}e.YClampedGradient=ae})(Ae||(Ae={}));class mh{constructor(t,n){this.level=t,this.type=n}at(t){return t0))return e(t,n,i).at(n)}}};var gh,vn;(function(e){function t(c,p){return typeof c=="number"?new n(c,p!=null?p:c):c}e.target=function(c,p,f,d,_,h){return new r(c,p,f,d,_,h)},e.parameters=function(c,p,f,d,_,h,m){return new i(t(c),t(p),t(f),t(d),t(_),t(h),m)},e.param=t;class n{constructor(p,f){this.min=p,this.max=f}distance(p){const f=(typeof p=="number"?p:p.min)-this.max,d=this.min-(typeof p=="number"?p:p.max);return f>0?f:Math.max(d,0)}union(p){return new n(Math.min(this.min,p.min),Math.max(this.max,p.max))}static fromJson(p){var f;if(typeof p=="number")return new n(p,p);const[d,_]=(f=J.readArray(p,h=>J.readNumber(h)))!=null?f:[];return new n(d!=null?d:0,_!=null?_:0)}}e.Param=n;class i{constructor(p,f,d,_,h,m,g){this.temperature=p,this.humidity=f,this.continentalness=d,this.erosion=_,this.depth=h,this.weirdness=m,this.offset=g}fittness(p){return jn(this.temperature.distance(p.temperature))+jn(this.humidity.distance(p.humidity))+jn(this.continentalness.distance(p.continentalness))+jn(this.erosion.distance(p.erosion))+jn(this.depth.distance(p.depth))+jn(this.weirdness.distance(p.weirdness))+jn(this.offset-p.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new n(this.offset,this.offset)]}static fromJson(p){var f,d;const _=(f=J.readObject(p))!=null?f:{};return new i(n.fromJson(_.temperature),n.fromJson(_.humidity),n.fromJson(_.continentalness),n.fromJson(_.erosion),n.fromJson(_.depth),n.fromJson(_.weirdness),(d=J.readInt(_.offset))!=null?d:0)}}e.ParamPoint=i;class r{constructor(p,f,d,_,h,m){this.temperature=p,this.humidity=f,this.continentalness=d,this.erosion=_,this.depth=h,this.weirdness=m}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}e.TargetPoint=r,e.Parameters=class{constructor(c){this.things=c,this.index=new o(c)}find(c){return this.index.search(c,(p,f)=>p.distance(f))}},e.Sampler=class{constructor(c,p,f,d,_,h){this.temperature=c,this.humidity=p,this.continentalness=f,this.erosion=d,this.depth=_,this.weirdness=h}static fromRouter(c){return new e.Sampler(c.temperature,c.vegetation,c.continents,c.erosion,c.depth,c.ridges)}sample(c,p,f){const d=Ae.context(c<<2,p<<2,f<<2);return e.target(this.temperature.compute(d),this.humidity.compute(d),this.continentalness.compute(d),this.erosion.compute(d),this.depth.compute(d),this.weirdness.compute(d))}};const s=class{constructor(c){this.root=s.build(c.map(([p,f])=>new u(p,f)))}static build(c){if(c.length===1)return c[0];if(c.length<=s.CHILDREN_PER_NODE){const _=c.map(h=>{let m=0;for(let g=0;g<7;g+=1){const v=h.space[g];m+=Math.abs((v.min+v.max)/2)}return{key:m,node:h}}).sort((h,m)=>h.key-m.key).map(({node:h})=>h);return new l(_)}let p=1/0,f=-1,d=[];for(let _=0;_<7;++_){c=s.sort(c,_,!1),d=s.bucketize(c);let h=0;for(const m of d)h+=s.area(m.space);p>h&&(p=h,f=_)}return c=s.sort(c,f,!1),d=s.bucketize(c),d=s.sort(d,f,!0),new l(d.map(_=>s.build(_.children)))}static sort(c,p,f){return c.map(d=>{const _=d.space[p],h=(_.min+_.max)/2;return{key:f?Math.abs(h):h,node:d}}).sort((d,_)=>d.key-_.key).map(({node:d})=>d)}static bucketize(c){const p=[];let f=[];const d=Math.pow(10,Math.floor(Math.log(c.length-.01)/Math.log(10)));for(const _ of c)f.push(_),f.lengthnew n(1/0,-1/0));for(const d of p)f=[...Array(7)].map((_,h)=>f[h].union(d.space[h]));return f}search(p,f){let d=1/0,_=null;for(const h of this.children){const m=f(h,p);if(d<=m)continue;const g=h.search(p,f),v=h==g?m:f(g,p);d<=v||(d=v,_=g)}return _}}e.RSubTree=l;class u extends a{constructor(p,f){super(p.space()),this.thing=f}search(){return this}}e.RLeaf=u})(gh||(gh={}));class is{constructor(t){this.biome=t}getBiome(){return this.biome}static fromJson(t){var n,i;const r=(n=J.readObject(t))!=null?n:{},s=Be.parse((i=J.readString(r.biome))!=null?i:"minecraft:the_void");return new is(s)}}(function(e){function t(i,r,s){return oi.NOISE.register(Be.create(i),lr.create(r,s))}e.TEMPERATURE=t("temperature",-10,[1.5,0,1,0,0,0]),e.VEGETATION=t("vegetation",-8,[1,1,0,0,0,0]),e.CONTINENTALNESS=t("continentalness",-9,[1,1,2,2,2,1,1,1,1]),e.EROSION=t("erosion",-9,[1,1,0,1,1]),e.TEMPERATURE_LARGE=t("temperature_large",-12,[1.5,0,1,0,0,0]),e.VEGETATION_LARGE=t("vegetation_large",-10,[1,1,0,0,0,0]),e.CONTINENTALNESS_LARGE=t("continentalness_large",-11,[1,1,2,2,2,1,1,1,1]),e.EROSION_LARGE=t("erosion_large",-11,[1,1,0,1,1]),e.RIDGE=t("ridge",-7,[1,2,1,0,0,0]),e.SHIFT=t("offset",-3,[1,1,1,0]),e.AQUIFER_BARRIER=t("aquifer_barrier",-3,[1]),e.AQUIFER_FLUID_LEVEL_FLOODEDNESS=t("aquifer_fluid_level_floodedness",-7,[1]),e.AQUIFER_FLUID_LEVEL_SPREAD=t("aquifer_fluid_level_spread",-5,[1]),e.AQUIFER_LAVA=t("aquifer_lava",-1,[1]),e.PILLAR=t("pillar",-7,[1,1]),e.PILLAR_RARENESS=t("pillar_rareness",-8,[1]),e.PILLAR_THICKNESS=t("pillar_thickness",-8,[1]),e.SPAGHETTI_2D=t("spaghetti_2d",-8,[1]),e.SPAGHETTI_2D_ELEVATION=t("spaghetti_2d_elevation",-8,[1]),e.SPAGHETTI_2D_MODULATOR=t("spaghetti_2d_modulator",-8,[1]),e.SPAGHETTI_2D_THICKNESS=t("spaghetti_2d_thickness",-8,[1]),e.SPAGHETTI_3D_1=t("spaghetti_3d_1",-8,[1]),e.SPAGHETTI_3D_2=t("spaghetti_3d_2",-8,[1]),e.SPAGHETTI_3D_RARITY=t("spaghetti_3d_rarity",-8,[1]),e.SPAGHETTI_3D_THICKNESS=t("spaghetti_3d_thickness",-8,[1]),e.SPAGHETTI_ROUGHNESS=t("spaghetti_roughness",-8,[1]),e.SPAGHETTI_ROUGHNESS_MODULATOR=t("spaghetti_roughness_modulator",-8,[1]),e.CAVE_ENTRANCE=t("cave_entrance",-7,[.4,.5,1]),e.CAVE_LAYER=t("cave_layer",-8,[1]),e.CAVE_CHEESE=t("cave_cheese",-8,[.5,1,2,1,2,1,0,2,0]),e.NOODLE=t("noodle",-8,[1]),e.NOODLE_THICKNESS=t("noodle_thickness",-8,[1]),e.NOODLE_RIDGE_A=t("noodle_ridge_a",-7,[1]),e.NOODLE_RIDGE_B=t("noodle_ridge_b",-7,[1]),e.JAGGED=t("jagged",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),e.SURFACE=t("surface",-6,[1,1,1]),e.SURFACE_SECONDARY=t("surface_secondary",-6,[1,1,0,1]);const n=new Map;e.instantiate=function(i,r){var s;const o=(s=r.key())==null?void 0:s.toString();if(!o)throw new Error("Cannot instantiate noise from direct holder");const a=i.seedKey(),l=n.get(o);if(l&&l[0]===a[0]&&l[1]===a[1])return l[2];const u=new jo(i.fromHashOf(o),r.value());return n.set(o,[a[0],a[1],u]),u}})(vn||(vn={}));var ur,ll,zr,ul,cl,Ea,hl,B2=Object.defineProperty,N2=Object.defineProperties,M2=Object.getOwnPropertyDescriptors,_h=Object.getOwnPropertySymbols,O2=Object.prototype.hasOwnProperty,L2=Object.prototype.propertyIsEnumerable,vh=(e,t,n)=>t in e?B2(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,xh=(e,t)=>{for(var n in t||(t={}))O2.call(t,n)&&vh(e,n,t[n]);if(_h)for(var n of _h(t))L2.call(t,n)&&vh(e,n,t[n]);return e};(function(e){const t=i=>ar.parser(oi.DENSITY_FUNCTION,Ae.fromJson)(i).value();e.fromJson=function(i){var r;const s=(r=J.readObject(i))!=null?r:{};return{barrier:t(s.barrier),fluidLevelFloodedness:t(s.fluid_level_floodedness),fluidLevelSpread:t(s.fluid_level_spread),lava:t(s.lava),temperature:t(s.temperature),vegetation:t(s.vegetation),continents:t(s.continents),erosion:t(s.erosion),depth:t(s.depth),ridges:t(s.ridges),initialDensityWithoutJaggedness:t(s.initial_density_without_jaggedness),finalDensity:t(s.final_density),veinToggle:t(s.vein_toggle),veinRidged:t(s.vein_ridged),veinGap:t(s.vein_gap)}},e.create=function(i){return xh({barrier:Ae.Constant.ZERO,fluidLevelFloodedness:Ae.Constant.ZERO,fluidLevelSpread:Ae.Constant.ZERO,lava:Ae.Constant.ZERO,temperature:Ae.Constant.ZERO,vegetation:Ae.Constant.ZERO,continents:Ae.Constant.ZERO,erosion:Ae.Constant.ZERO,depth:Ae.Constant.ZERO,ridges:Ae.Constant.ZERO,initialDensityWithoutJaggedness:Ae.Constant.ZERO,finalDensity:Ae.Constant.ZERO,veinToggle:Ae.Constant.ZERO,veinRidged:Ae.Constant.ZERO,veinGap:Ae.Constant.ZERO},i)},e.withSettings=function(i,r,s,o=!1){const a=(o?new Rt(s):$e.create(s)).forkPositional(),l=new n(a,r);return u=xh({},l.mapAll(i)),c={aquiferPositionalRandomFactory:a.fromHashOf(Be.create("aquifer").toString()).forkPositional(),oreVeinsPositionalRandomFactory:a.fromHashOf(Be.create("ore").toString()).forkPositional()},N2(u,M2(c));var u,c};class n{constructor(r,s){this.random=r,this.settings=s,this.mapped=new Map}map(r){if(r instanceof Ae.HolderHolder){const s=r.holder.key();if(s!==void 0&&this.mapped.has(s.toString()))return this.mapped.get(s.toString());{const o=r.holder.value().mapAll(this);return s!==void 0&&this.mapped.set(s.toString(),o),o}}if(r instanceof Ae.Interpolated)return r.withCellSize(st.cellWidth(this.settings),st.cellHeight(this.settings));if(r instanceof Ae.Noise)return new Ae.Noise(r.xzScale,r.yScale,r.noiseData,vn.instantiate(this.random,r.noiseData));if(r instanceof Ae.ShiftNoise)return r.withNewNoise(vn.instantiate(this.random,r.noiseData));if(r instanceof Ae.ShiftedNoise){const s=vn.instantiate(this.random,r.noiseData);return new Ae.ShiftedNoise(r.shiftX,r.shiftY,r.shiftZ,r.xzScale,r.yScale,r.noiseData,s)}return r instanceof Ae.WeirdScaledSampler?new Ae.WeirdScaledSampler(r.input,r.rarityValueMapper,r.noiseData,vn.instantiate(this.random,r.noiseData)):r instanceof Ae.OldBlendedNoise?new Ae.OldBlendedNoise(new Gd(this.random.fromHashOf(Be.create("terrain").toString()),this.settings.sampling,st.cellWidth(this.settings),st.cellHeight(this.settings))):r instanceof Ae.Mapped||r instanceof Ae.Ap2?r.withMinMax():r instanceof Ae.TerrainShaperSpline?new Ae.TerrainShaperSpline(r.continentalness,r.erosion,r.weirdness,r.spline,r.min,r.max,this.settings.terrainShaper):r instanceof Ae.Slide?new Ae.Slide(r.input,this.settings):r}mapAll(r){return{barrier:r.barrier.mapAll(this),fluidLevelFloodedness:r.fluidLevelFloodedness.mapAll(this),fluidLevelSpread:r.fluidLevelSpread.mapAll(this),lava:r.lava.mapAll(this),temperature:r.temperature.mapAll(this),vegetation:r.vegetation.mapAll(this),continents:r.continents.mapAll(this),erosion:r.erosion.mapAll(this),depth:r.depth.mapAll(this),ridges:r.ridges.mapAll(this),initialDensityWithoutJaggedness:r.initialDensityWithoutJaggedness.mapAll(this),finalDensity:r.finalDensity.mapAll(this),veinToggle:r.veinToggle.mapAll(this),veinRidged:r.veinRidged.mapAll(this),veinGap:r.veinGap.mapAll(this)}}}e.Visitor=n,e.computePreliminarySurfaceLevelScanning=function(i,r,s,o){const a=st.minCellY(i)+st.cellCountY(i),l=st.minCellY(i),u=st.cellHeight(i);for(let c=a;c>=l;c-=1){const p=c*u,f=Fr(r.compute(Ae.context(s,p,o)),-64,64);if(st.applySlides(i,f,p)>=.390625)return p}return Number.MAX_SAFE_INTEGER}})(ur||(ur={}));class R2{constructor(t,n,i,r,s,o,a,l,u){this.cellCountXZ=t,this.cellCountY=n,this.cellNoiseMinY=i,this.router=r,this.minX=s,this.minZ=o,this.settings=a,this.preliminarySurfaceLevel=new Map,this.cellWidth=st.cellWidth(a),this.cellHeight=st.cellHeight(a),this.firstCellX=Math.floor(s/this.cellWidth),this.firstCellZ=Math.floor(o/this.cellWidth),this.firstNoiseX=s>>2,this.firstNoiseZ=o>>2,this.noiseSizeXZ=t*this.cellWidth>>2,this.aquifer=al.createDisabled(u);const c=this.router.finalDensity;this.materialRule=ll.fromList([p=>this.aquifer.compute(p,c.compute(p))]),this.initialDensityWithoutJaggedness=this.router.initialDensityWithoutJaggedness}getFinalState(t,n,i){return this.materialRule({x:t,y:n,z:i})}getPreliminarySurfaceLevel(t,n){return Uo(this.preliminarySurfaceLevel,$t.asLong(t,n),()=>ur.computePreliminarySurfaceLevelScanning(this.settings,this.initialDensityWithoutJaggedness,t<<2,n<<2))}getAquifer(){return this.aquifer}}(ll||(ll={})).fromList=function(e){return t=>{for(const n of e){const i=n(t);if(i)return i}}},(zr||(zr={})).fromJson=function(e){var t,n,i,r;const s=(t=J.readObject(e))!=null?t:{};return s.absolute!==void 0?(o=(n=J.readNumber(s.absolute))!=null?n:0,()=>o):s.above_bottom!==void 0?function(a){return l=>l.minY+a}((i=J.readNumber(s.above_bottom))!=null?i:0):s.below_top!==void 0?function(a){return l=>l.maxY-a}((r=J.readNumber(s.below_top))!=null?r:0):()=>0;var o},(ul||(ul={})).create=function(e,t){return{minY:e,height:t,maxY:e+t-1}};class P2{constructor(t,n,i){this.rule=t,this.defaultBlock=n,this.random=$e.create(i).forkPositional(),this.surfaceNoise=vn.instantiate(this.random,vn.SURFACE),this.surfaceSecondaryNoise=vn.instantiate(this.random,vn.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(t,n,i,r){const s=$t.minBlockX(t.pos),o=$t.minBlockZ(t.pos),a=new $2(this,t,n,i,r),l=this.rule(a);for(let u=0;u<16;u+=1){const c=s+u;for(let p=0;p<1;p+=1){const f=o+p;a.updateXZ(c,f);let d=0,_=Number.MIN_SAFE_INTEGER,h=Number.MAX_SAFE_INTEGER;for(let m=t.maxY;m>=t.minY;m-=1){const g=or.create(c,m,f),v=t.getBlockState(g);if(v.equals(Ft.AIR)){d=0,_=Number.MIN_SAFE_INTEGER;continue}if(v.isFluid()){_===Number.MIN_SAFE_INTEGER&&(_=m+1);continue}if(h>=m){h=Number.MIN_SAFE_INTEGER;for(let b=m-1;b>=t.minY;b-=1){const S=t.getBlockState(or.create(c,b,f));if(S.equals(Ft.AIR)||S.isFluid()){h=b+1;break}}}d+=1;const y=m-h+1;if(!v.equals(this.defaultBlock))continue;a.updateY(d,y,_,m);const A=l(c,m,f);A&&t.setBlockState(g,A)}}}}getSurfaceDepth(t,n){return 2.75*this.surfaceNoise.sample(t,0,n)+3+.25*this.random.at(t,0,n).nextDouble()}getSurfaceSecondary(t,n){return this.surfaceSecondaryNoise.sample(t,0,n)}getRandom(t){return Uo(this.positionalRandoms,t,()=>this.random.fromHashOf(t))}}class $2{constructor(t,n,i,r,s){this.system=t,this.chunk=n,this.noiseChunk=i,this.context=r,this.getBiome=s,this.blockX=0,this.blockY=0,this.blockZ=0,this.stoneDepthAbove=0,this.stoneDepthBelow=0,this.surfaceDepth=0,this.waterHeight=0,this.biome=()=>"",this.surfaceSecondary=()=>0,this.minSurfaceLevel=()=>0}updateXZ(t,n){this.blockX=t,this.blockZ=n,this.surfaceDepth=this.system.getSurfaceDepth(t,n),this.surfaceSecondary=ya(()=>this.system.getSurfaceSecondary(t,n)),this.minSurfaceLevel=ya(()=>this.calculateMinSurfaceLevel(t,n))}updateY(t,n,i,r){this.blockY=r,this.stoneDepthAbove=t,this.stoneDepthBelow=n,this.waterHeight=i,this.biome=ya(()=>this.getBiome(or.create(this.blockX,this.blockY,this.blockZ)))}calculateMinSurfaceLevel(t,n){const i=t>>4,r=n>>4,s=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,r<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,r<<4),a=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,r+1<<4),l=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,r+1<<4);return Math.floor(rl((15&t)/16,(15&n)/16,s,o,a,l))+this.surfaceDepth-8}}(function(e){function t(r){return()=>()=>r}function n(r){return s=>{const o=r.map(a=>a(s));return(a,l,u)=>{for(const c of o){const p=c(a,l,u);if(p)return p}}}}function i(r,s){return o=>(a,l,u)=>{if(r(o))return s(o)(a,l,u)}}e.NOOP=()=>()=>{},e.fromJson=function(r){var s,o,a;const l=(s=J.readObject(r))!=null?s:{};switch((o=J.readString(l.type))==null?void 0:o.replace(/^minecraft:/,"")){case"block":return t(Ft.fromJson(l.result_state));case"sequence":return n((a=J.readArray(l.sequence,e.fromJson))!=null?a:[]);case"condition":return i(Ea.fromJson(l.if_true),e.fromJson(l.then_run))}return e.NOOP},e.block=t,e.sequence=n,e.condition=i})(cl||(cl={})),function(e){function t(){return l=>l.blockY>=l.minSurfaceLevel()}function n(l){const u=new Set(l);return c=>u.has(c.biome())}function i(l){return u=>!l(u)}function r(l,u,c,p){return f=>{const d=p?f.stoneDepthBelow:f.stoneDepthAbove,_=u?f.surfaceDepth:0,h=c===0?0:ch(f.surfaceSecondary(),-1,1,0,c);return d<=1+l+_+h}}function s(l,u,c){return p=>{const f=u(p.context),d=c(p.context);if(p.blockY<=f)return!0;if(p.blockY>=d)return!1;const _=p.system.getRandom(l),h=ch(p.blockY,f,d,1,0);return _.nextFloat(){if(p.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const f=c?p.stoneDepthAbove:0;return p.blockY+f>=p.waterHeight+l+p.surfaceDepth*u}}function a(l,u,c){return p=>{const f=c?p.stoneDepthAbove:0;return p.blockY+f>=l(p.context)+p.surfaceDepth*u}}e.FALSE=()=>!1,e.TRUE=()=>!0,e.fromJson=function(l){var u,c,p,f,d,_,h,m,g,v,y,A;const b=(u=J.readObject(l))!=null?u:{};switch((c=J.readString(b.type))==null?void 0:c.replace(/^minecraft:/,"")){case"above_preliminary_surface":return S=>S.blockY>=S.minSurfaceLevel();case"biome":return n((p=J.readArray(b.biome_is,S=>{var D;return(D=J.readString(S))!=null?D:""}))!=null?p:[]);case"not":return i(e.fromJson(b.invert));case"stone_depth":return r((f=J.readInt(b.offset))!=null?f:0,(d=J.readBoolean(b.add_surface_depth))!=null&&d,(_=J.readInt(b.secondary_depth_range))!=null?_:0,J.readString(b.surface_type)==="ceiling");case"vertical_gradient":return s((h=J.readString(b.random_name))!=null?h:"",zr.fromJson(b.true_at_and_below),zr.fromJson(b.false_at_and_above));case"water":return o((m=J.readInt(b.offset))!=null?m:0,(g=J.readInt(b.surface_depth_multiplier))!=null?g:0,(v=J.readBoolean(b.add_surface_depth))!=null&&v);case"y_above":return a(zr.fromJson(b.anchor),(y=J.readInt(b.surface_depth_multiplier))!=null?y:0,(A=J.readBoolean(b.add_surface_depth))!=null&&A)}return e.FALSE},e.abovePreliminarySurface=t,e.biome=n,e.not=i,e.stoneDepth=r,e.verticalGradient=s,e.water=o,e.yAbove=a}(Ea||(Ea={}));class z2{constructor(t,n,i){this.biomeSource=n,this.settings=i,this.router=ur.withSettings(i.noiseRouter,i.noise,t,i.legacyRandomSource),this.noiseChunkCache=new Map,this.surfaceSystem=new P2(i.surfaceRule,i.defaultBlock,t);const r=new mh(-54,Ft.LAVA),s=new mh(i.seaLevel,i.defaultFluid);this.globalFluidPicker=(o,a,l)=>a=0;g-=1)for(let v=a-1;v>=0;v-=1){const y=(u+g)*a+v,A=15&y,b=t.getSectionIndex(y);t.getSectionIndex(m.minBlockY)!==b&&(m=t.getOrCreateSection(b));for(let S=0;Sn)}getNoiseChunk(t){return Uo(this.noiseChunkCache,$t.toLong(t.pos),()=>{const n=Math.max(t.minY,this.settings.noise.minY),i=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),r=st.cellWidth(this.settings.noise),s=st.cellHeight(this.settings.noise),o=Math.floor(16/r),a=Math.floor(n/s),l=Math.floor((i-n)/s),u=$t.minBlockX(t.pos),c=$t.minBlockZ(t.pos);return new R2(o,l,a,this.router,u,c,this.settings.noise,this.settings.aquifersEnabled,this.globalFluidPicker)})}}(hl||(hl={})).fromJson=function(e){var t,n,i,r,s,o;const a=(t=J.readObject(e))!=null?t:{};return{surfaceRule:cl.fromJson(a.surface_rule),noise:st.fromJson(a.noise),defaultBlock:Ft.fromJson(a.default_block),defaultFluid:Ft.fromJson(a.default_fluid),noiseRouter:ur.fromJson(a.noise_router),seaLevel:(n=J.readInt(a.sea_level))!=null?n:0,disableMobGeneration:(i=J.readBoolean(a.disable_mob_generation))!=null&&i,aquifersEnabled:(r=J.readBoolean(a.aquifers_enabled))!=null&&r,oreVeinsEnabled:(s=J.readBoolean(a.ore_veins_enabled))!=null&&s,legacyRandomSource:(o=J.readBoolean(a.legacy_random_source))!=null&&o}};let we,Yd=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});Yd.decode();let Ms=null;function U2(){return(Ms===null||Ms.buffer!==we.memory.buffer)&&(Ms=new Uint8Array(we.memory.buffer)),Ms}function j2(e,t){return Yd.decode(U2().subarray(e,e+t))}const fl=new Uint32Array(2),H2=new BigInt64Array(fl.buffer);let Os=null;function rs(){return(Os===null||Os.buffer!==we.memory.buffer)&&(Os=new Int32Array(we.memory.buffer)),Os}let Ls=null;function Wd(){return(Ls===null||Ls.buffer!==we.memory.buffer)&&(Ls=new Float64Array(we.memory.buffer)),Ls}function V2(e,t){return Wd().subarray(e/8,e/8+t)}let qe=0;function ut(e,t){const n=t(e.length*8);return Wd().set(e,n/8),qe=e.length,n}let Rs=null;function X2(){return(Rs===null||Rs.buffer!==we.memory.buffer)&&(Rs=new Uint32Array(we.memory.buffer)),Rs}function J2(e,t){const n=t(e.length*4);return X2().set(e,n/4),qe=e.length,n}function G2(e,t,n,i,r,s,o,a,l,u,c,p,f,d){var _=ut(e,we.__wbindgen_malloc),h=qe,m=ut(t,we.__wbindgen_malloc),g=qe,v=ut(n,we.__wbindgen_malloc),y=qe,A=ut(i,we.__wbindgen_malloc),b=qe,S=ut(r,we.__wbindgen_malloc),D=qe,k=ut(s,we.__wbindgen_malloc),T=qe,B=ut(o,we.__wbindgen_malloc),M=qe,U=ut(a,we.__wbindgen_malloc),H=qe,Q=ut(l,we.__wbindgen_malloc),te=qe,$=ut(u,we.__wbindgen_malloc),X=qe,ie=ut(c,we.__wbindgen_malloc),ae=qe,j=ut(p,we.__wbindgen_malloc),I=qe,O=ut(f,we.__wbindgen_malloc),Z=qe,K=J2(d,we.__wbindgen_malloc),pe=qe,Me=we.biome_parameters(_,h,m,g,v,y,A,b,S,D,k,T,B,M,U,H,Q,te,$,X,ie,ae,j,I,O,Z,K,pe);return Ho.__wrap(Me)}function Y2(e,t,n,i,r,s,o,a,l,u,c,p,f){H2[0]=e;const d=fl[0],_=fl[1];var h=ut(n,we.__wbindgen_malloc),m=qe,g=ut(r,we.__wbindgen_malloc),v=qe,y=ut(o,we.__wbindgen_malloc),A=qe,b=ut(l,we.__wbindgen_malloc),S=qe,D=ut(c,we.__wbindgen_malloc),k=qe,T=ut(f,we.__wbindgen_malloc),B=qe,M=we.climate_sampler(d,_,t,h,m,i,g,v,s,y,A,a,b,S,u,D,k,p,T,B);return Ss.__wrap(M)}function dl(e,t){if(!(e instanceof t))throw new Error(`expected instance of ${t.name}`);return e.ptr}function W2(e,t){return rs().subarray(e/4,e/4+t)}function yh(e,t,n,i,r,s,o,a,l,u,c){try{const _=we.__wbindgen_add_to_stack_pointer(-16);dl(e,Ho),dl(t,Ss),we.multi_noise(_,e.ptr,t.ptr,n,i,r,s,o,a,l,u,c);var p=rs()[_/4+0],f=rs()[_/4+1],d=W2(p,f).slice();return we.__wbindgen_free(p,f*4),d}finally{we.__wbindgen_add_to_stack_pointer(16)}}function wh(e,t,n,i,r,s,o,a,l,u){try{const d=we.__wbindgen_add_to_stack_pointer(-16);dl(e,Ss),we.climate_noise(d,e.ptr,t,n,i,r,s,o,a,l,u);var c=rs()[d/4+0],p=rs()[d/4+1],f=V2(c,p).slice();return we.__wbindgen_free(c,p*8),f}finally{we.__wbindgen_add_to_stack_pointer(16)}}class Ho{static __wrap(t){const n=Object.create(Ho.prototype);return n.ptr=t,n}__destroy_into_raw(){const t=this.ptr;return this.ptr=0,t}free(){const t=this.__destroy_into_raw();we.__wbg_parameterlist_free(t)}}class Ss{static __wrap(t){const n=Object.create(Ss.prototype);return n.ptr=t,n}__destroy_into_raw(){const t=this.ptr;return this.ptr=0,t}free(){const t=this.__destroy_into_raw();we.__wbg_sampler_free(t)}}async function Z2(e,t){if(typeof Response=="function"&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(e,t)}catch(i){if(e.headers.get("Content-Type")!="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",i);else throw i}const n=await e.arrayBuffer();return await WebAssembly.instantiate(n,t)}else{const n=await WebAssembly.instantiate(e,t);return n instanceof WebAssembly.Instance?{instance:n,module:e}:n}}async function Zd(e){typeof e=="undefined"&&(e=new URL("/assets/deepslate_rs_bg.4990c219.wasm",self.location));const t={};t.wbg={},t.wbg.__wbindgen_throw=function(r,s){throw new Error(j2(r,s))},(typeof e=="string"||typeof Request=="function"&&e instanceof Request||typeof URL=="function"&&e instanceof URL)&&(e=fetch(e));const{instance:n,module:i}=await Z2(await e,t);return we=n.exports,Zd.__wbindgen_wasm_module=i,we}var Eh="/assets/deepslate_rs_bg.4990c219.wasm";let bh=!1;async function K2(){bh||(await Zd(Eh),bh=!0,console.debug(`Loaded deepslate-rs from "${Eh}"`))}const q2={temperature:[-1,1],humidity:[-1,1],continentalness:[-1.1,1],erosion:[-1,1],weirdness:[-1,1],offset:[-1,1],factor:[0,12],jaggedness:[0,1]};let Ah,Sh;async function Q2(e,t,n){var _,h,m;const{biomeSource:i}=await Kd(e,n),r=t.data,s=-Math.round(n.offset[0])-100+n.res/2,o=-Math.round(n.offset[1])-100+n.res/2,a=t.width*4/n.res,l=4/n.res,u=[s*n.scale,(200+s)*n.scale,n.res*n.scale],c=[o*n.scale,(200+o)*n.scale,n.res*n.scale],p=n.layers.has("biomes")?(_=i.getBiomes)==null?void 0:_.call(i,...u,64,65,1,...c):void 0,f=[...n.layers].filter(g=>g!=="biomes"),d=f.length===0||(h=i.getClimates)==null?void 0:h.call(i,...u,64,65,1,...c);for(let g=0;g<200;g+=n.res)for(let v=0;v<200;v+=n.res){const y=v*a+g*l,A=g/n.res*200/n.res+v/n.res,b=(g+s)*n.scale,S=(v+o)*n.scale;let D=[50,50,50];if(n.layers.has("biomes")){const k=(m=p==null?void 0:p[A])!=null?m:i.getBiome(b,64,S);D=nw(k.toString(),n.biomeColors)}else if(d&&f[0]){const k=d[A][f[0]],[T,B]=q2[f[0]],M=(k-T)/(B-T)*256;D=[M,M,M]}r[y]=D[0],r[y+1]=D[1],r[y+2]=D[2],r[y+3]=255}}async function ew(e,t,n,i){var a;const{biomeSource:r}=await Kd(e,i),[s,o]=iw([t,n],i);return ge({biome:r.getBiome(s,64,o).toString()},(a=r.getClimate)==null?void 0:a.call(r,s,64,o))}async function Kd(e,t){const n=[e,t.octaves,`${t.seed}`,t.version];return yi(n,Ah)||(Ah=No(n),Sh=await tw(e,t)),{biomeSource:Sh}}async function tw(e,t){var n,i,r,s,o;switch((n=e==null?void 0:e.type)==null?void 0:n.replace(/^minecraft:/,"")){case"fixed":return new is(Be.parse(e.biome));case"checkerboard":const a=((i=e.scale)!=null?i:2)+2,l=(s=(r=e.biomes)==null?void 0:r.length)!=null?s:0;return{getBiome(u,c,p){var d;const f=(((u>>a)+(p>>a))%l+l)%l;return Be.parse((d=e.biomes)==null?void 0:d[f].node)}};case"multi_noise":switch((o=e.preset)==null?void 0:o.replace(/^minecraft:/,"")){case"nether":e=Bt(t.version,"1.18")?ow:sw;break;case"overworld":e=Bt(t.version,"1.18")?await aw():e;break}if(e=q.DataModel.unwrapLists(e),Bt(t.version,"1.18")){await K2();const u=new dv,c=M=>typeof M=="number"?[M,M]:M,[p,f,d,_,h,m,g,v,y,A,b,S,D,k]=[[],[],[],[],[],[],[],[],[],[],[],[],[],[]];for(const M of e.biomes){const{temperature:U,humidity:H,continentalness:Q,erosion:te,weirdness:$,depth:X,offset:ie}=M.parameters;p.push(c(U)[0]),f.push(c(U)[1]),d.push(c(H)[0]),_.push(c(H)[1]),h.push(c(Q)[0]),m.push(c(Q)[1]),g.push(c(te)[0]),v.push(c(te)[1]),y.push(c($)[0]),A.push(c($)[1]),b.push(c(X)[0]),S.push(c(X)[1]),D.push(ie),k.push(u.getOrPut(M.biome,Math.floor(Math.random()*2147483647)))}const T=G2(new Float64Array(p),new Float64Array(f),new Float64Array(d),new Float64Array(_),new Float64Array(h),new Float64Array(m),new Float64Array(g),new Float64Array(v),new Float64Array(y),new Float64Array(A),new Float64Array(b),new Float64Array(S),new Float64Array(D),new Int32Array(k)),B=Y2(t.seed,t.octaves.temperature.firstOctave,new Float64Array(t.octaves.temperature.amplitudes),t.octaves.humidity.firstOctave,new Float64Array(t.octaves.humidity.amplitudes),t.octaves.continentalness.firstOctave,new Float64Array(t.octaves.continentalness.amplitudes),t.octaves.erosion.firstOctave,new Float64Array(t.octaves.erosion.amplitudes),t.octaves.weirdness.firstOctave,new Float64Array(t.octaves.weirdness.amplitudes),t.octaves.shift.firstOctave,new Float64Array(t.octaves.shift.amplitudes));return{getBiome(M,U,H){var te;const Q=yh(T,B,M,M+1,1,U,U+1,1,H,H+1,1);return Be.parse((te=u.getA(Q[0]))!=null?te:"unknown")},getBiomes(M,U,H,Q,te,$,X,ie,ae){return[...yh(T,B,M,U,H,Q,te,$,X,ie,ae)].map(I=>{var O;return Be.parse((O=u.getA(I))!=null?O:"unknown")})},getClimate(M,U,H){const Q=wh(B,M,M+1,1,U,U+1,1,H,H+1,1),[te,$,X,ie,ae]=Q.slice(0,5);return{temperature:te,humidity:$,continentalness:X,erosion:ie,weirdness:ae}},getClimates(M,U,H,Q,te,$,X,ie,ae){const j=wh(B,M,U,H,Q,te,$,X,ie,ae),I=[];for(let O=0;O{var d;const f=e[`${c}_noise`];return f.firstOctave=Lt((d=f.firstOctave)!=null?d:-7,-100,-1),new jo(new Rt(t.seed+BigInt(p)),f)});return!Array.isArray(e.biomes)||e.biomes.length===0?new is(Be.create("unknown")):{getBiome(c,p,f){const d=u.map(m=>m.sample(c,f,0));let _=1/0,h="";for(const{biome:m,parameters:g}of e.biomes){const v=wr(g.altitude-d[0])+wr(g.temperature-d[1])+wr(g.humidity-d[2])+wr(g.weirdness-d[3])+wr(g.offset);v<_&&(_=v,h=m)}return Be.parse(h)}}}}throw new Error("Unknown biome source")}function nw(e,t){var i;if(!e)return[128,128,128];const n=(i=t[e])!=null?i:rw[e];return n===void 0?j0(e):n}function iw([e,t],n){const i=(e-n.offset[0]-100+n.res/2)*n.scale,r=(t-n.offset[1]-100+n.res/2)*n.scale;return[i,r]}const rw={"minecraft:badlands":[217,69,21],"minecraft:badlands_plateau":[202,140,101],"minecraft:bamboo_jungle":[118,142,20],"minecraft:bamboo_jungle_hills":[59,71,10],"minecraft:basalt_deltas":[64,54,54],"minecraft:beach":[250,222,85],"minecraft:birch_forest":[48,116,68],"minecraft:birch_forest_hills":[31,95,50],"minecraft:cold_ocean":[32,32,112],"minecraft:crimson_forest":[221,8,8],"minecraft:dark_forest":[64,81,26],"minecraft:dark_forest_hills":[104,121,66],"minecraft:deep_cold_ocean":[32,32,56],"minecraft:deep_frozen_ocean":[64,64,144],"minecraft:deep_lukewarm_ocean":[0,0,64],"minecraft:deep_ocean":[0,0,48],"minecraft:deep_warm_ocean":[0,0,80],"minecraft:desert":[250,148,24],"minecraft:desert_hills":[210,95,18],"minecraft:desert_lakes":[255,188,64],"minecraft:end_barrens":[128,128,255],"minecraft:end_highlands":[128,128,255],"minecraft:end_midlands":[128,128,255],"minecraft:eroded_badlands":[255,109,61],"minecraft:flower_forest":[45,142,73],"minecraft:forest":[5,102,33],"minecraft:frozen_ocean":[112,112,214],"minecraft:frozen_river":[160,160,255],"minecraft:giant_spruce_taiga":[129,142,121],"minecraft:old_growth_spruce_taiga":[129,142,121],"minecraft:giant_spruce_taiga_hills":[109,119,102],"minecraft:giant_tree_taiga":[89,102,81],"minecraft:old_growth_pine_taiga":[89,102,81],"minecraft:giant_tree_taiga_hills":[69,79,62],"minecraft:gravelly_hills":[136,136,136],"minecraft:gravelly_mountains":[136,136,136],"minecraft:windswept_gravelly_hills":[136,136,136],"minecraft:ice_spikes":[180,220,220],"minecraft:jungle":[83,123,9],"minecraft:jungle_edge":[98,139,23],"minecraft:sparse_jungle":[98,139,23],"minecraft:jungle_hills":[44,66,5],"minecraft:lukewarm_ocean":[0,0,144],"minecraft:modified_badlands_plateau":[242,180,141],"minecraft:modified_gravelly_mountains":[120,152,120],"minecraft:modified_jungle":[123,163,49],"minecraft:modified_jungle_edge":[138,179,63],"minecraft:modified_wooded_badlands_plateau":[216,191,141],"minecraft:mountain_edge":[114,120,154],"minecraft:extreme_hills":[96,96,96],"minecraft:mountains":[96,96,96],"minecraft:windswept_hills":[96,96,96],"minecraft:mushroom_field_shore":[160,0,255],"minecraft:mushroom_fields":[255,0,255],"minecraft:nether_wastes":[191,59,59],"minecraft:ocean":[0,0,112],"minecraft:plains":[141,179,96],"minecraft:river":[0,0,255],"minecraft:savanna":[189,178,95],"minecraft:savanna_plateau":[167,157,100],"minecraft:shattered_savanna":[229,218,135],"minecraft:windswept_savanna":[229,218,135],"minecraft:shattered_savanna_plateau":[207,197,140],"minecraft:small_end_islands":[128,128,255],"minecraft:snowy_beach":[250,240,192],"minecraft:snowy_mountains":[160,160,160],"minecraft:snowy_taiga":[49,85,74],"minecraft:snowy_taiga_hills":[36,63,54],"minecraft:snowy_taiga_mountains":[89,125,114],"minecraft:snowy_tundra":[255,255,255],"minecraft:snowy_plains":[255,255,255],"minecraft:soul_sand_valley":[94,56,48],"minecraft:stone_shore":[162,162,132],"minecraft:stony_shore":[162,162,132],"minecraft:sunflower_plains":[181,219,136],"minecraft:swamp":[7,249,178],"minecraft:swamp_hills":[47,255,218],"minecraft:taiga":[11,102,89],"minecraft:taiga_hills":[22,57,51],"minecraft:taiga_mountains":[51,142,129],"minecraft:tall_birch_forest":[88,156,108],"minecraft:old_growth_birch_forest":[88,156,108],"minecraft:tall_birch_hills":[71,135,90],"minecraft:the_end":[128,128,255],"minecraft:the_void":[0,0,0],"minecraft:warm_ocean":[0,0,172],"minecraft:warped_forest":[73,144,123],"minecraft:wooded_badlands_plateau":[176,151,101],"minecraft:wooded_badlands":[176,151,101],"minecraft:wooded_hills":[34,85,28],"minecraft:wooded_mountains":[80,112,80],"minecraft:windswept_forest":[80,112,80],"minecraft:snowy_slopes":[140,195,222],"minecraft:lofty_peaks":[196,168,193],"minecraft:jagged_peaks":[196,168,193],"minecraft:snowcapped_peaks":[200,198,200],"minecraft:frozen_peaks":[200,198,200],"minecraft:stony_peaks":[82,92,103],"minecraft:grove":[150,150,189],"minecraft:meadow":[169,197,80],"minecraft:lush_caves":[112,255,79],"minecraft:dripstone_caves":[140,124,0]},sw={type:"minecraft:multi_noise",seed:0,altitude_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},humidity_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{biome:"minecraft:nether_wastes",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}},{biome:"minecraft:soul_sand_valley",parameters:{altitude:0,temperature:0,humidity:-.5,weirdness:0,offset:0}},{biome:"minecraft:crimson_forest",parameters:{altitude:0,temperature:.4,humidity:0,weirdness:0,offset:0}},{biome:"minecraft:warped_forest",parameters:{altitude:0,temperature:0,humidity:.5,weirdness:0,offset:.375}},{biome:"minecraft:basalt_deltas",parameters:{altitude:0,temperature:-.5,humidity:0,weirdness:0,offset:.175}}]},ow={type:"minecraft:multi_noise",biomes:[{biome:"minecraft:nether_wastes",parameters:{temperature:0,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:"minecraft:soul_sand_valley",parameters:{temperature:0,humidity:-.5,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:"minecraft:crimson_forest",parameters:{temperature:.4,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:"minecraft:warped_forest",parameters:{temperature:0,humidity:.5,continentalness:0,erosion:0,depth:0,weirdness:0,offset:.375}},{biome:"minecraft:basalt_deltas",parameters:{temperature:-.5,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:.175}}]};async function aw(){return(await J0("1.18","dimension","overworld")).generator.biome_source}const ci=[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],Dh=[[255,77,54],[59,118,255],[91,207,25],[217,32,245],[255,209,41],[52,204,209]];function lw(e,t,n){const i=new Rt(n.seed),r={placements:[],features:[],random:i,biomeInfoNoise:new je(i.fork(),0,[1]),seaLevel:63,version:n.version,nextFloat:()=>i.nextFloat(),nextInt:o=>i.nextInt(o),nextGaussian:()=>Math.sqrt(-2*Math.log(1-i.nextFloat()))*Math.cos(2*Math.PI*i.nextFloat()),sampleInt(o){return uw(o,this)}};for(let o=0;o=n.size[0]||o[1]>=n.size[1]||o[2]>=n.size[2])continue;const l=o[2]*(t.width*4)+o[0]*4,u=aa+l.weight,0);let o=t.nextInt(s);for(const a of e.distribution)if(o-=a.weight,o<0)return t.sampleInt(a.data);return 0}return 1}function un(e,t){if(!Ci(e))throw new Error("Invalid vertical anchor");if(e.absolute)return e.absolute;if(e.above_bottom)return e.above_bottom;if(e.below_top)return 256-e.below_top;throw new Error("Invalid vertical anchor")}function cw(e,t){var n,i,r,s;if(!Ci(e))throw new Error("Invalid height provider");if(typeof e.type!="string")return un(e);switch(cr(e.type)){case"constant":return un(e.value);case"uniform":{const o=un(e.min_inclusive),a=un(e.max_inclusive);return o+t.nextInt(a-o+1)}case"biased_to_bottom":{const o=un(e.min_inclusive),a=un(e.max_inclusive),l=t.nextInt(a-o-((n=e.inner)!=null?n:1)+1);return o+t.nextInt(l+((i=e.inner)!=null?i:1))}case"very_biased_to_bottom":{const o=un(e.min_inclusive),a=un(e.max_inclusive),l=(r=e.inner)!=null?r:1,u=o+l+t.nextInt(a-o-l+1),c=o+t.nextInt(u-o);return o+t.nextInt(c-o+l)}case"trapezoid":{const o=un(e.min_inclusive),a=un(e.max_inclusive),l=(s=e.plateau)!=null?s:0;if(l>=a-o)return o+t.nextInt(a-o+1);const u=(a-o-l)/2,c=a-o-u;return o+t.nextInt(c+1)+t.nextInt(u+1)}default:throw new Error(`Invalid height provider ${e.type}`)}}function Ch(e,t){const n=t.features.indexOf(e);return n!=-1?n:(t.features.push(e),t.features.length-1)}function Ui(e,t,n){var s;if(typeof t=="string"){n.placements.push([e,Ch(t,n)]);return}const i=cr((s=t==null?void 0:t.type)!=null?s:"no_op"),r=hw[i];r?r(t.config,e,n):n.placements.push([e,Ch(JSON.stringify(t),n)])}function pl(e,t,n){var s;const i=cr((s=t==null?void 0:t.type)!=null?s:"nope"),r=fw[i];return r?r(t==null?void 0:t.config,e,n):[e]}const hw={decorated:(e,t,n)=>{pl(t,e==null?void 0:e.decorator,n).forEach(r=>Ui(r,e==null?void 0:e.feature,n))},random_boolean_selector:(e,t,n)=>{const i=n.nextFloat()<.5?e==null?void 0:e.feature_true:e==null?void 0:e.feature_false;Ui(t,i,n)},random_selector:(e,t,n)=>{var i,r;for(const s of(i=e==null?void 0:e.features)!=null?i:[])if(n.nextFloat()<((r=s==null?void 0:s.chance)!=null?r:0)){Ui(t,s.feature,n);return}Ui(t,e==null?void 0:e.default,n)},simple_random_selector:(e,t,n)=>{var r,s,o;const i=(o=e==null?void 0:e.features)==null?void 0:o[n.nextInt((s=(r=e==null?void 0:e.features)==null?void 0:r.length)!=null?s:0)];Ui(t,i,n)}},fw={chance:(e,t,n)=>{var i;return n.nextFloat()<1/((i=e==null?void 0:e.chance)!=null?i:1)?[t]:[]},count:(e,t,n)=>{var i;return new Array(n.sampleInt((i=e==null?void 0:e.count)!=null?i:1)).fill(t)},count_extra:(e,t,n)=>{var r,s;let i=(r=e==null?void 0:e.count)!=null?r:1;return n.nextFloat(){var i;return new Array(n.sampleInt((i=e==null?void 0:e.count)!=null?i:1)).fill(t).map(r=>[r[0]+n.nextInt(16),r[1],r[2]+n.nextInt(16)])},count_noise:(e,t,n)=>{const r=n.biomeInfoNoise.sample(t[0]/200,0,t[2]/200){var o;const i=Math.max(1,e.noise_factor),r=n.biomeInfoNoise.sample(t[0]/i,0,t[2]/i),s=Math.max(0,Math.ceil((r+((o=e.noise_offset)!=null?o:0))*e.noise_to_count_ratio));return new Array(s).fill(t)},dark_oak_tree:(e,t,n)=>[...new Array(16)].map((i,r)=>{const s=Math.floor(r/4)*4+1+n.nextInt(3)+t[0],o=Math.max(n.seaLevel,ci[Lt(0,63,s)]),a=Math.floor(r%4)*4+1+n.nextInt(3)+t[2];return[s,o,a]}),decorated:(e,t,n)=>pl(t,e==null?void 0:e.outer,n).flatMap(i=>pl(i,e==null?void 0:e.inner,n)),depth_average:(e,t,n)=>{var r,s,o,a;const i=n.nextInt((r=e==null?void 0:e.spread)!=null?r:0)+n.nextInt((s=e==null?void 0:e.spread)!=null?s:0)-((o=e.spread)!=null?o:0)+((a=e==null?void 0:e.baseline)!=null?a:0);return Vt(t,i)},emerald_ore:(e,t,n)=>{const i=3+n.nextInt(6);return[...new Array(i)].map(()=>[t[0]+n.nextInt(16),4+n.nextInt(28),t[2]+n.nextInt(16)])},fire:(e,t,n)=>{const i=1+n.nextInt(n.nextInt(n.sampleInt(e==null?void 0:e.count)));return[...new Array(i)].map(()=>[t[0]+n.nextInt(16),n.nextInt(128),t[2]+n.nextInt(16)])},glowstone:(e,t,n)=>{const i=n.nextInt(1+n.nextInt(n.sampleInt(e==null?void 0:e.count)));return[...new Array(i)].map(()=>[t[0]+n.nextInt(16),n.nextInt(128),t[2]+n.nextInt(16)])},heightmap:(e,t,n)=>{const i=Math.max(n.seaLevel,ci[Lt(0,63,t[0])]);return Vt(t,i)},heightmap_spread_double:(e,t,n)=>{const i=Math.max(n.seaLevel,ci[Lt(0,63,t[0])]);return Vt(t,n.nextInt(i*2))},heightmap_world_surface:(e,t,n)=>{const i=Math.max(n.seaLevel,ci[Lt(0,63,t[0])]);return Vt(t,i)},iceberg:(e,t,n)=>[[t[0]+4+n.nextInt(8),t[1],t[2]+4+n.nextInt(8)]],lava_lake:(e,t,n)=>{var i,r;if(n.nextInt(((i=e.chance)!=null?i:1)/10)===0){const s=n.nextInt(n.nextInt(248)+8);if(s[t],range:(e,t,n)=>{var r,s,o;const i=n.nextInt(((r=e==null?void 0:e.maximum)!=null?r:1)-((s=e==null?void 0:e.top_offset)!=null?s:0))+((o=e==null?void 0:e.bottom_offset)!=null?o:0);return Vt(t,i)},range_biased:(e,t,n)=>{var r,s,o;const i=n.nextInt(n.nextInt(((r=e==null?void 0:e.maximum)!=null?r:1)-((s=e==null?void 0:e.top_offset)!=null?s:0))+((o=e==null?void 0:e.bottom_offset)!=null?o:0));return Vt(t,i)},range_very_biased:(e,t,n)=>{var r,s,o,a;const i=n.nextInt(n.nextInt(n.nextInt(((r=e==null?void 0:e.maximum)!=null?r:1)-((s=e==null?void 0:e.top_offset)!=null?s:0))+((o=e==null?void 0:e.bottom_offset)!=null?o:0))+((a=e==null?void 0:e.bottom_offset)!=null?a:0));return Vt(t,i)},spread_32_above:(e,t,n)=>{const i=n.nextInt(t[1]+32);return Vt(t,i)},top_solid_heightmap:(e,t)=>{const n=ci[Lt(0,63,t[0])];return Vt(t,n)},magma:(e,t,n)=>{const i=n.nextInt(t[1]+32);return Vt(t,i)},square:(e,t,n)=>[[t[0]+n.nextInt(16),t[1],t[2]+n.nextInt(16)]],surface_relative_threshold:(e,t)=>{var s,o;const n=ci[Lt(0,63,t[0])],i=n+((s=e==null?void 0:e.min_inclusive)!=null?s:-1/0),r=n+((o=e==null?void 0:e.max_inclusive)!=null?o:1/0);return t[1]r?[t]:[]},water_lake:(e,t,n)=>{var i;return n.nextInt((i=e.chance)!=null?i:1)===0?[[t[0]+n.nextInt(16),n.nextInt(256),t[2]+n.nextInt(16)]]:[]}};function dw(e,t,n){var r;let i=[e];for(const s of t)!kh[cr((r=s==null?void 0:s.type)!=null?r:"nope")]||(i=i.flatMap(a=>kh[cr(s.type)](s,a,n)));for(const s of i)n.placements.push([s,0])}const kh={count:({count:e},t,n)=>new Array(n.sampleInt(e!=null?e:1)).fill(t),count_on_every_layer:({count:e},t,n)=>new Array(n.sampleInt(e!=null?e:1)).fill(t).map(i=>[i[0]+n.nextInt(16),i[1],i[2]+n.nextInt(16)]),environment_scan:({},e)=>[e],height_range:({height:e},t,n)=>Vt(t,cw(e,n)),heightmap:({},e,t)=>{const n=Math.max(t.seaLevel,ci[Lt(0,63,e[0])]);return Vt(e,n)},in_square:({},e,t)=>[[e[0]+t.nextInt(16),e[1],e[2]+t.nextInt(16)]],noise_based_count:({noise_to_count_ratio:e,noise_factor:t,noise_offset:n},i,r)=>{const s=Math.max(1,t),o=r.biomeInfoNoise.sample(i[0]/s,0,i[2]/s),a=Math.max(0,Math.ceil((o+(n!=null?n:0))*e));return new Array(a).fill(i)},noise_threshold_count:({noise_level:e,below_noise:t,above_noise:n},i,r)=>{const o=r.biomeInfoNoise.sample(i[0]/200,0,i[2]/200)[[n[0]+i.sampleInt(e),n[1]+i.sampleInt(t),n[2]+i.sampleInt(e)]],rarity_filter:({chance:e},t,n)=>n.nextFloat()<1/(e!=null?e:1)?[t]:[]};var en;(function(e){e.UP="up",e.DOWN="down",e.NORTH="north",e.EAST="east",e.SOUTH="south",e.WEST="west"})(en||(en={}));const pw={[en.UP]:[0,1,0],[en.DOWN]:[0,-1,0],[en.NORTH]:[0,0,-1],[en.EAST]:[1,0,0],[en.SOUTH]:[0,0,1],[en.WEST]:[-1,0,0]};var ss;(function(e){e.ALL=[e.UP,e.DOWN,e.NORTH,e.EAST,e.SOUTH,e.WEST],e.normal=function(t){return pw[t]}})(en||(en={})),function(e){e.create=function(t,n,i){return[t,n,i]},e.offset=function(t,n,i,r){return[t[0]+n,t[1]+i,t[2]+r]},e.towards=function(t,n){return e.offset(t,...en.normal(n))}}(ss||(ss={}));function ba(e,t,n){if(!e[t])throw new Error(`Missing ${t} tag`);if(e[t].type!==n)throw new Error(`Expected ${t} to be of type ${n}, but found ${e[t].type}`);return e[t].value}function mw(e,t){try{return e()}catch{return t}}var W,pn,ml,qi,Ur;(function(e){function t(n){return typeof n=="object"&&n!==null?n:void 0}e.readNumber=function(n){return typeof n=="number"?n:void 0},e.readInt=function(n){return typeof n=="number"?Math.floor(n):void 0},e.readString=function(n){return typeof n=="string"?n:void 0},e.readBoolean=function(n){return typeof n=="boolean"?n:void 0},e.readObject=t,e.readArray=function(n,i){if(Array.isArray(n))return n.map(r=>i(r))},e.readMap=function(n,i){var r;const s=(r=t(n))!==null&&r!==void 0?r:{};return Object.fromEntries(Object.entries(s).map(([o,a])=>[o,i(a)]))},e.compose=function(n,i,r){const s=i(n);return s?r(s):void 0}})(W||(W={}));class Zt{constructor(t,n={}){this.name=t,this.properties=n}getName(){return this.name}getProperties(){return this.properties}getProperty(t){return this.properties[t]}isFluid(){return this.name==="minecraft:water"||this.name==="minecraft:lava"}equals(t){return this.name===t.name&&Object.keys(this.properties).every(n=>t.properties[n]===this.properties[n])}toString(){return Object.keys(this.properties).length===0?this.name:`${this.name}[${Object.entries(this.properties).map(([t,n])=>t+"="+n).join(",")}]`}static fromNbt(t){const n=ba(t.value,"Name","string"),i=mw(()=>ba(t.value,"Properties","compound"),{}),r=Object.keys(i).reduce((s,o)=>Object.assign(Object.assign({},s),{[o]:ba(i,o,"string")}),{});return new Zt(n,r)}static fromJson(t){var n,i;const r=(n=W.readObject(t))!==null&&n!==void 0?n:{},s=(i=W.readString(r.Name))!==null&&i!==void 0?i:"minecraft:stone",o=W.readMap(r.Properties,a=>{var l;return(l=W.readString(a))!==null&&l!==void 0?l:""});return new Zt(s,o)}}Zt.AIR=new Zt("minecraft:air");(function(e){function t(n,i){return BigInt(4294967295&n)|BigInt(4294967295&i)<>4,n[2]>>4]},e.fromLong=function(n){return[4294967295&Number(n),Number(n>>BigInt(32))]},e.toLong=function(n){return t(n[0],n[1])},e.asLong=t,e.minBlockX=function(n){return n[0]<<4},e.minBlockZ=function(n){return n[1]<<4},e.maxBlockX=function(n){return 15+(n[0]<<4)},e.maxBlockZ=function(n){return 15+(n[1]<<4)}})(pn||(pn={}));function Aa(e){let t=null;return()=>(t==null&&(t=e()),t)}function tu(e,t,n){const i=e.get(t);if(i)return i;const r=n(t);return e.set(t,r),r}function Dn(e){return e*e}function Ri(e,t,n){return Math.max(t,Math.min(n,e))}function ct(e,t,n){return t+e*(n-t)}function gl(e,t,n,i,r,s){return ct(t,ct(e,n,i),ct(e,r,s))}function gw(e,t,n,i,r,s,o,a,l,u,c){return ct(n,gl(e,t,i,r,s,o),gl(e,t,a,l,u,c))}function os(e,t,n){return n<0?e:n>1?t:ct(n,e,t)}function qd(e,t,n){return(e-t)/(n-t)}function Sa(e){return e*e*e*(e*(6*e-15)+10)}function Xn(e,t,n,i,r){return ct(qd(e,t,n),i,r)}function _w(e,t,n,i,r){return os(i,r,qd(e,t,n))}function vw(e,t,n){let i=t-e;for(;i>0;){const r=Math.floor(i/2),s=e+r;n(s)?i=r:(e=s+1,i-=r+1)}return e}function Qd(e,t,n){let i=BigInt(3129871*e)^BigInt(n)*BigInt(116129781)^BigInt(t);return i=i*i*BigInt(42317861)+i*BigInt(11),i>>BigInt(16)}function _l(e,t,n,i,r,s,o,a){return BigInt(e)<>BigInt(Ye.MODULUS_BITS-t));return n>2147483647?n-4294967296:n}nextInt(t){if(t===void 0)return this.next(32);if((t&t-1)==0)return Number(BigInt(t)*BigInt(this.next(31))>>BigInt(31));let n,i;for(;(n=this.next(31))-(i=n%t)+(t-1)<0;);return i}nextLong(){return(BigInt(this.next(32))<>BigInt(30))*BigInt("-4658895280553007687")&BigInt("0xFFFFFFFFFFFFFFFF"))^t>>BigInt(27))*BigInt("-7723592293110705685")&BigInt("0xFFFFFFFFFFFFFFFF"))^t>>BigInt(31))&BigInt("0xFFFFFFFFFFFFFFFF")}static upgradeSeedTo128bit(t){t<0&&(t+=BigInt("0x10000000000000000"));const n=t^Xe.SILVER_RATIO_64,i=n+Xe.GOLDEN_RATIO_64&BigInt("0xFFFFFFFFFFFFFFFF");return[Xe.mixStafford13(n),Xe.mixStafford13(i)]}static rotateLeft(t,n){return t<>BigInt(64)-n}setSeed(t){this.seed=Xe.upgradeSeedTo128bit(t)}fork(){return new Xe([this.next(),this.next()])}forkPositional(){return new yw(this.next(),this.next())}next(){const t=this.seed[0];let n=this.seed[1];const i=Xe.rotateLeft(t+n&BigInt("0xFFFFFFFFFFFFFFFF"),BigInt(17))+t&BigInt("0xFFFFFFFFFFFFFFFF");return n^=t,this.seed=[Xe.rotateLeft(t,BigInt(49))^n^n<BigInt("0x8000000000000000")&&(t-=BigInt("0x10000000000000000")),t}consume(t){let n=this.seed[0],i=this.seed[1];for(let r=0;r>BigInt(64-t)}nextInt(t){let n=this.next()&BigInt(4294967295);if(t){const i=BigInt(t);let r=n*i,s=r&BigInt(4294967295);if(s>BigInt(32);return Number(o)}{let i=Number(n);return i>=2147483648&&(i-=4294967296),i}}nextFloat(){return Number(this.nextBits(24))*Xe.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*Xe.DOUBLE_MULTIPLIER}parityConfigString(){return"seedLo: "+this.seed[0]+", seedHi: "+this.seed[1]}}Xe.SILVER_RATIO_64=BigInt("7640891576956012809"),Xe.GOLDEN_RATIO_64=BigInt("-7046029254386353131"),Xe.FLOAT_MULTIPLIER=1/Math.pow(2,24),Xe.DOUBLE_MULTIPLIER=11102230246251565e-32;class yw{constructor(t,n){this.seedLo=t,this.seedHi=n}at(t,n,i){const r=Qd(t,n,i)^this.seedLo;return new Xe([r,this.seedHi])}fromHashOf(t){const n=zo(t,{asBytes:!0}),i=_l(n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7]),r=_l(n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15]);return new Xe([i^this.seedLo,r^this.seedHi])}}class ot{constructor(t){this.xo=256*t.nextDouble(),this.yo=256*t.nextDouble(),this.zo=256*t.nextDouble(),this.p=Array(256);for(let n=0;n<256;n+=1)this.p[n]=n;for(let n=0;n<256;n+=1){const i=t.nextInt(256-n),r=this.p[n];this.p[n]=this.p[n+i],this.p[n+i]=r}}sample2D(t,n){let i,r,s;const o=(t+n)*ot.F2,a=Math.floor(t+o),l=t-(a-(i=(a+(r=Math.floor(n+o)))*ot.G2));let u,c;l>(s=n-(r-i))?(u=1,c=0):(u=0,c=1);const p=l-u+ot.G2,f=s-c+ot.G2,d=l-1+2*ot.G2,_=s-1+2*ot.G2,h=255&a,m=255&r,g=this.P(h+this.P(m))%12,v=this.P(h+u+this.P(m+c))%12,y=this.P(h+1+this.P(m+1))%12;return 70*(this.getCornerNoise3D(g,l,s,0,.5)+this.getCornerNoise3D(v,p,f,0,.5)+this.getCornerNoise3D(y,d,_,0,.5))}sample(t,n,i){const r=.3333333333333333*(t+n+i),s=Math.floor(t+r),o=Math.floor(n+r),a=Math.floor(i+r),l=.16666666666666666*(s+o+a),u=t-(s-l),c=n-(o-l),p=i-(a-l);let f,d,_,h,m,g;u>=c?c>=p?(f=1,d=0,_=0,h=1,m=1,g=0):u>=p?(f=1,d=0,_=0,h=1,m=0,g=1):(f=0,d=0,_=1,h=1,m=0,g=1):c127?n-256:n;for(let n=0;n<256;n+=1){const i=t.nextInt(256-n),r=this.p[n];this.p[n]=this.p[n+i],this.p[n+i]=r}}sample(t,n,i,r=0,s=0){const o=t+this.xo,a=n+this.yo,l=i+this.zo,u=Math.floor(o),c=Math.floor(a),p=Math.floor(l),f=o-u,d=a-c,_=l-p;let h=0;if(r!==0){const m=s>=0&&s=0;r-=1)r0&&(r=this.maxLimitNoise.getOctaveNoise(u))&&(l+=r.sample(f,d,_,p,n*p)/o),o/=2}return os(a/512,l/512,s)/128}}(function(e){e.fromJson=function(t){var n,i,r,s,o;const a=(n=W.readObject(t))!==null&&n!==void 0?n:{};return{xzScale:(i=W.readNumber(a.xz_scale))!==null&&i!==void 0?i:1,yScale:(r=W.readNumber(a.y_scale))!==null&&r!==void 0?r:1,xzFactor:(s=W.readNumber(a.xz_factor))!==null&&s!==void 0?s:80,yFactor:(o=W.readNumber(a.y_factor))!==null&&o!==void 0?o:80}}})(ml||(ml={}));class Mn{constructor(t,{firstOctave:n,amplitudes:i}){this.first=new kt(t,n,i),this.second=new kt(t,n,i);let r=1/0,s=-1/0;for(let a=0;a{var a;return(a=W.readNumber(o))!==null&&a!==void 0?a:0}))!==null&&r!==void 0?r:[]}}}(qi||(qi={}));(function(e){e.fromJson=function(t,n){var i,r,s,o;if(typeof t=="number")return new vl(t);const a=(i=W.readObject(t))!==null&&i!==void 0?i:{},l=new lt(n(a.coordinate)),u=(r=W.readArray(a.points,c=>{var p;return(p=W.readObject(c))!==null&&p!==void 0?p:{}}))!==null&&r!==void 0?r:[];if(u.length===0)return new vl(0);for(const c of u){const p=(s=W.readNumber(c.location))!==null&&s!==void 0?s:0,f=e.fromJson(c.value,n),d=(o=W.readNumber(c.derivative))!==null&&o!==void 0?o:0;l.addPoint(p,f,d)}return l}})(Ur||(Ur={}));class vl{constructor(t){this.value=t}apply(){return this.value}toJson(){return this.value}}class lt{constructor(t,n=[],i=[],r=[]){this.coordinate=t,this.locations=n,this.values=i,this.derivatives=r}apply(t){const n=this.coordinate.apply(t),i=vw(0,this.locations.length,_=>n({location:t,value:this.values[n].toJson(),derivative:this.derivatives[n]}))}}}var Th;(function(e){e.rotate=function(t,n,i){let{up:r,down:s,north:o,east:a,south:l,west:u}=t;switch(i){case 90:[o,a,l,u]=[a,l,u,o];break;case 180:[o,a,l,u]=[l,u,o,a];break;case 270:[o,a,l,u]=[u,o,a,l]}switch(n){case 90:[r,o,s,l]=[o,s,l,r];break;case 180:[r,o,s,l]=[s,l,r,o];break;case 270:[r,o,s,l]=[l,r,o,s]}return{up:r,down:s,north:o,east:a,south:l,west:u}}})(Th||(Th={}));var xl,yl,Qe,Ji,wl,se,El,jr,bl,Al,Da,Bh,Ca;(function(e){function t(u,c){return typeof u=="number"?new n(u,c!=null?c:u):u}e.target=function(u,c,p,f,d,_){return new r(u,c,p,f,d,_)},e.parameters=function(u,c,p,f,d,_,h){return new i(t(u),t(c),t(p),t(f),t(d),t(_),h)},e.param=t;class n{constructor(c,p){this.min=c,this.max=p}distance(c){const p=(typeof c=="number"?c:c.min)-this.max,f=this.min-(typeof c=="number"?c:c.max);return p>0?p:Math.max(f,0)}union(c){return new n(Math.min(this.min,c.min),Math.max(this.max,c.max))}static fromJson(c){var p;if(typeof c=="number")return new n(c,c);const[f,d]=(p=W.readArray(c,_=>W.readNumber(_)))!==null&&p!==void 0?p:[];return new n(f!=null?f:0,d!=null?d:0)}}e.Param=n;class i{constructor(c,p,f,d,_,h,m){this.temperature=c,this.humidity=p,this.continentalness=f,this.erosion=d,this.depth=_,this.weirdness=h,this.offset=m}fittness(c){return Dn(this.temperature.distance(c.temperature))+Dn(this.humidity.distance(c.humidity))+Dn(this.continentalness.distance(c.continentalness))+Dn(this.erosion.distance(c.erosion))+Dn(this.depth.distance(c.depth))+Dn(this.weirdness.distance(c.weirdness))+Dn(this.offset-c.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new n(this.offset,this.offset)]}static fromJson(c){var p,f;const d=(p=W.readObject(c))!==null&&p!==void 0?p:{};return new i(n.fromJson(d.temperature),n.fromJson(d.humidity),n.fromJson(d.continentalness),n.fromJson(d.erosion),n.fromJson(d.depth),n.fromJson(d.weirdness),(f=W.readInt(d.offset))!==null&&f!==void 0?f:0)}}e.ParamPoint=i;class r{constructor(c,p,f,d,_,h){this.temperature=c,this.humidity=p,this.continentalness=f,this.erosion=d,this.depth=_,this.weirdness=h}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}e.TargetPoint=r,e.Parameters=class{constructor(u){this.things=u,this.index=new s(u)}find(u){return this.index.search(u,(c,p)=>c.distance(p))}};class s{constructor(c){this.root=s.build(c.map(([p,f])=>new l(p,f)))}static build(c){if(c.length===1)return c[0];if(c.length<=s.CHILDREN_PER_NODE){const _=c.map(h=>{let m=0;for(let g=0;g<7;g+=1){const v=h.space[g];m+=Math.abs((v.min+v.max)/2)}return{key:m,node:h}}).sort((h,m)=>h.key-m.key).map(({node:h})=>h);return new a(_)}let p=1/0,f=-1,d=[];for(let _=0;_<7;++_){c=s.sort(c,_,!1),d=s.bucketize(c);let h=0;for(const m of d)h+=s.area(m.space);p>h&&(p=h,f=_)}return c=s.sort(c,f,!1),d=s.bucketize(c),d=s.sort(d,f,!0),new a(d.map(_=>s.build(_.children)))}static sort(c,p,f){return c.map(d=>{const _=d.space[p],h=(_.min+_.max)/2;return{key:f?Math.abs(h):h,node:d}}).sort((d,_)=>d.key-_.key).map(({node:d})=>d)}static bucketize(c){const p=[];let f=[];const d=Math.pow(10,Math.floor(Math.log(c.length-.01)/Math.log(10)));for(const _ of c)f.push(_),f.lengthnew n(1/0,-1/0));for(const f of c)p=[...Array(7)].map((d,_)=>p[_].union(f.space[_]));return p}search(c,p){let f=1/0,d=null;for(const _ of this.children){const h=p(_,c);if(f<=h)continue;const m=_.search(c,p),g=_==m?h:p(m,c);f<=g||(f=g,d=m)}return d}}e.RSubTree=a;class l extends o{constructor(c,p){super(c.space()),this.thing=p}search(){return this}}e.RLeaf=l})(xl||(xl={}));class nu{constructor(t){this.biome=t}getBiome(){return this.biome}static fromJson(t){var n,i;const r=(n=W.readObject(t))!==null&&n!==void 0?n:{},s=(i=W.readString(r.biome))!==null&&i!==void 0?i:"minecraft:the_void";return new nu(s)}}class rt{constructor(t,n,i){this.offsetSampler=t,this.factorSampler=n,this.jaggednessSampler=i}static extractor(t){return{apply:n=>n[t],toJson:()=>t}}static fromJson(t){var n;const i=(n=W.readObject(t))!==null&&n!==void 0?n:{};return new rt(Ur.fromJson(i.offset,this.EXTRACTOR),Ur.fromJson(i.factor,this.EXTRACTOR),Ur.fromJson(i.jaggedness,this.EXTRACTOR))}toJson(){return{offset:this.offsetSampler.toJson(),factor:this.factorSampler.toJson(),jaggedness:this.jaggednessSampler.toJson()}}offset(t){return this.offsetSampler.apply(t)+rt.GLOBAL_OFFSET}factor(t){return this.factorSampler.apply(t)}jaggedness(t){return this.jaggednessSampler.apply(t)}static point(t,n,i){return{continents:t,erosion:n,weirdness:i,ridges:this.peaksAndValleys(i)}}static peaksAndValleys(t){return 3*-(Math.abs(Math.abs(t)-.6666667)-.33333334)}static overworld(){const t=this.buildErosionOffsetSpline(-.05,0,0,.1,0,-.03,!1,!1),n=this.buildErosionOffsetSpline(-.1,.03,.1,.1,.01,-.03,!1,!1),i=this.buildErosionOffsetSpline(-.1,.03,.1,.7,.01,-.03,!0,!0),r=this.buildErosionOffsetSpline(.3,.03,.1,1,.01,.01,!0,!0),s=new lt(this.CONTINENTS).addPoint(-1.1,.044).addPoint(-1.02,-.2222).addPoint(-.51,-.2222).addPoint(-.44,-.12).addPoint(-.18,-.12).addPoint(-.16,t).addPoint(-.15,t).addPoint(-.1,n).addPoint(.25,i).addPoint(1,r),o=new lt(this.CONTINENTS).addPoint(-.19,3.95).addPoint(-.15,this.getErosionFactor(6.25,!0)).addPoint(-.1,this.getErosionFactor(5.47,!0)).addPoint(.03,this.getErosionFactor(5.08,!0)).addPoint(.06,this.getErosionFactor(4.69,!1)),a=new lt(this.CONTINENTS).addPoint(.11,0).addPoint(.03,this.buildErosionJaggednessSpline(1,.5,0,0)).addPoint(.65,this.buildErosionJaggednessSpline(1,1,1,0));return new rt(s,o,a)}static getErosionFactor(t,n){const i=new lt(this.WEIRDNESS).addPoint(-.2,6.3).addPoint(.2,t),r=new lt(this.EROSION).addPoint(-.6,i).addPoint(-.5,new lt(this.WEIRDNESS).addPoint(-.05,6.3).addPoint(.05,2.67)).addPoint(-.35,i).addPoint(-.25,i).addPoint(-.1,new lt(this.WEIRDNESS).addPoint(-.05,2.67).addPoint(.05,6.3)).addPoint(.03,i);if(n){const s=new lt(this.WEIRDNESS).addPoint(0,t).addPoint(.1,.625),o=new lt(this.RIDGES).addPoint(-.9,t).addPoint(-.69,s);r.addPoint(.35,t).addPoint(.45,o).addPoint(.55,o).addPoint(.62,t)}else{const s=new lt(this.RIDGES).addPoint(-.7,i).addPoint(-.15,1.37),o=new lt(this.RIDGES).addPoint(.45,i).addPoint(.7,1.56);r.addPoint(.05,o).addPoint(.4,o).addPoint(.45,s).addPoint(.55,s).addPoint(.58,t)}return r}static buildErosionOffsetSpline(t,n,i,r,s,o,a,l){const u=this.buildMountainRidgeSplineWithPoints(ct(r,.6,1.5),l),c=this.buildMountainRidgeSplineWithPoints(ct(r,.6,1),l),p=this.buildMountainRidgeSplineWithPoints(r,l),f=this.ridgeSpline(t-.15,.5*r,ct(.5,.5,.5)*r,.5*r,.6*r,.5),d=this.ridgeSpline(t,s*r,n*r,.5*r,.6*r,.5),_=this.ridgeSpline(t,s,s,n,i,.5),h=this.ridgeSpline(t,s,s,n,i,.5),m=new lt(this.RIDGES).addPoint(-1,t).addPoint(-.4,_).addPoint(0,i+.07),g=this.ridgeSpline(-.02,o,o,n,i,0),v=new lt(this.EROSION).addPoint(-.85,u).addPoint(-.7,c).addPoint(-.4,p).addPoint(-.35,f).addPoint(-.1,d).addPoint(.2,_);return a&&v.addPoint(.4,h).addPoint(.45,m).addPoint(.55,m).addPoint(.58,h),v.addPoint(.7,g),v}static buildMountainRidgeSplineWithPoints(t,n){const i=new lt(this.RIDGES),r=this.mountainContinentalness(-1,t,-.7),s=this.mountainContinentalness(1,t,-.7),o=this.calculateMountainRidgeZeroContinentalnessPoint(t);if(-.650?this.buildWeirdnessJaggednessSpline(n):0).addPoint(1,t>0?this.buildWeirdnessJaggednessSpline(t):0)}static buildWeirdnessJaggednessSpline(t){return new lt(rt.WEIRDNESS).addPoint(-.01,.63*t).addPoint(.01,.3*t)}}rt.GLOBAL_OFFSET=-.50375,rt.EXTRACTOR=e=>{var t;const n=(t=W.readString(e))!==null&&t!==void 0?t:"continents";return rt.extractor(n)},rt.CONTINENTS=rt.extractor("continents"),rt.EROSION=rt.extractor("erosion"),rt.WEIRDNESS=rt.extractor("weirdness"),rt.RIDGES=rt.extractor("ridges"),function(e){e.fromList=function(t){return(n,i,r,s)=>{for(const o of t){const a=o(n,i,r,s);if(a)return a}return null}}}(yl||(yl={})),function(e){function t(n){return n.ySize<<2}e.fromJson=function(n){var i,r,s,o,a,l,u,c;const p=(i=W.readObject(n))!==null&&i!==void 0?i:{};return{minY:(r=W.readInt(p.min_y))!==null&&r!==void 0?r:0,height:(s=W.readInt(p.height))!==null&&s!==void 0?s:256,xzSize:(o=W.readInt(p.size_horizontal))!==null&&o!==void 0?o:1,ySize:(a=W.readInt(p.size_vertical))!==null&&a!==void 0?a:1,sampling:ml.fromJson(p.sampling),topSlide:Ji.fromJson(p.top_slide),bottomSlide:Ji.fromJson(p.bottom_slide),terrainShaper:rt.fromJson(p.terrain_shaper),islandNoiseOverride:(l=W.readBoolean(p.island_noise_override))!==null&&l!==void 0&&l,isAmplified:(u=W.readBoolean(p.amplified))!==null&&u!==void 0&&u,hasLargeBiomes:(c=W.readBoolean(p.large_biomes))!==null&&c!==void 0&&c}},e.cellHeight=t,e.cellWidth=function(n){return n.xzSize<<2},e.cellCountY=function(n){return n.height/t(n)},e.minCellY=function(n){return Math.floor(n.minY/t(n))}}(Qe||(Qe={})),function(e){e.fromJson=function(t){var n,i,r,s;const o=(n=W.readObject(t))!==null&&n!==void 0?n:{};return{target:(i=W.readNumber(o.target))!==null&&i!==void 0?i:0,size:(r=W.readInt(o.size))!==null&&r!==void 0?r:0,offset:(s=W.readInt(o.offset))!==null&&s!==void 0?s:0}},e.apply=function(t,n,i){if(t.size<=0)return n;const r=(i-t.offset)/t.size;return os(t.target,n,r)}}(Ji||(Ji={}));class go{constructor(t,n){this.chunk=t,this.filler=n,this.noise000=0,this.noise001=0,this.noise100=0,this.noise101=0,this.noise010=0,this.noise011=0,this.noise110=0,this.noise111=0,this.valueXZ00=0,this.valueXZ10=0,this.valueXZ01=0,this.valueXZ11=0,this.valueZ0=0,this.valueZ1=0,this.value=0,this.slice0=go.allocateSlice(t.cellCountY,t.cellCountXZ),this.slice1=go.allocateSlice(t.cellCountY,t.cellCountXZ)}static allocateSlice(t,n){const i=Array(n+1);for(let r=0;r>2,this.firstNoiseZ=o>>2,this.interpolators=[];const c=t*u>>2;this.noiseData=Array(c+1);for(let p=0;p<=c;p+=1){const f=this.firstNoiseX+p;this.noiseData[p]=Array(c+1);for(let d=0;d<=c;d+=1){const _=this.firstNoiseZ+d;this.noiseData[p][d]=r.noiseData(f,_)}}this.preliminarySurfaceLevel=new Map,this.baseNoise=r.makeBaseNoiseFiller(this,a,l.noodleCavesEnabled)}getNoiseData(t,n){return this.noiseData[t-this.firstNoiseX][n-this.firstNoiseZ]}getPreliminarySurfaceLevel(t,n){return tu(this.preliminarySurfaceLevel,pn.asLong(t,n),()=>{const i=t-this.firstNoiseX,r=n-this.firstNoiseZ,s=this.noiseData.length,o=i>=0&&r>=0&&it.initializeForFirstCellX())}advanceCellX(t){this.interpolators.forEach(n=>n.advanceCellX(t))}selectCellYZ(t,n){this.interpolators.forEach(i=>i.selectCellYZ(t,n))}updateForY(t){this.interpolators.forEach(n=>n.updateForY(t))}updateForX(t){this.interpolators.forEach(n=>n.updateForX(t))}updateForZ(t){this.interpolators.forEach(n=>n.updateForZ(t))}swapSlices(){this.interpolators.forEach(t=>t.swapSlices())}updateNoiseAndGenerateBaseState(t,n,i){return this.baseNoise(t,n,i)}}(function(e){e.create=function(t,n,i){return{offset:t,factor:n,jaggedness:i}}})(wl||(wl={})),function(e){const t=new Map;function n(i,r,s){const o=Object.assign({name:`minecraft:${i}`},qi.create(r,s));return t.set(i,o),o}e.TEMPERATURE=n("temperature",-10,[1.5,0,1,0,0,0]),e.VEGETATION=n("vegetation",-8,[1,1,0,0,0,0]),e.CONTINENTALNESS=n("continentalness",-9,[1,1,2,2,2,1,1,1,1]),e.EROSION=n("erosion",-9,[1,1,0,1,1]),e.TEMPERATURE_LARGE=n("temperature_large",-12,[1.5,0,1,0,0,0]),e.VEGETATION_LARGE=n("vegetation_large",-10,[1,1,0,0,0,0]),e.CONTINENTALNESS_LARGE=n("continentalness_large",-11,[1,1,2,2,2,1,1,1,1]),e.EROSION_LARGE=n("erosion_large",-11,[1,1,0,1,1]),e.RIDGE=n("ridge",-7,[1,2,1,0,0,0]),e.SHIFT=n("offset",-3,[1,1,1,0]),e.PILLAR=n("pillar",-7,[1,1]),e.PILLAR_RARENESS=n("pillar_rareness",-8,[1]),e.PILLAR_THICKNESS=n("pillar_thickness",-8,[1]),e.SPAGHETTI_2D=n("spaghetti_2d",-8,[1]),e.SPAGHETTI_2D_ELEVATION=n("spaghetti_2d_elevation",-8,[1]),e.SPAGHETTI_2D_MODULATOR=n("spaghetti_2d_modulator",-8,[1]),e.SPAGHETTI_2D_THICKNESS=n("spaghetti_2d_thickness",-8,[1]),e.SPAGHETTI_3D_1=n("spaghetti_3d_1",-8,[1]),e.SPAGHETTI_3D_2=n("spaghetti_3d_2",-8,[1]),e.SPAGHETTI_3D_RARITY=n("spaghetti_3d_rarity",-8,[1]),e.SPAGHETTI_3D_THICKNESS=n("spaghetti_3d_thickness",-8,[1]),e.SPAGHETTI_ROUGHNESS=n("spaghetti_roughness",-8,[1]),e.SPAGHETTI_ROUGHNESS_MODULATOR=n("spaghetti_roughness_modulator",-8,[1]),e.CAVE_ENTRANCE=n("cave_entrance",-7,[.4,.5,1]),e.CAVE_LAYER=n("cave_layer",-8,[1]),e.CAVE_CHEESE=n("cave_cheese",-8,[.5,1,2,1,2,1,0,2,0]),e.NOODLE=n("noodle",-8,[1]),e.NOODLE_THICKNESS=n("noodle_thickness",-8,[1]),e.NOODLE_RIDGE_A=n("noodle_ridge_a",-7,[1]),e.NOODLE_RIDGE_B=n("noodle_ridge_b",-7,[1]),e.JAGGED=n("jagged",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),e.SURFACE=n("surface",-6,[1,1,1]),e.SURFACE_SECONDARY=n("surface_secondary",-6,[1,1,0,1]),e.instantiate=function(i,r){return new Mn(i.fromHashOf(r.name),r)}}(se||(se={}));class Ew{constructor(t,n,i,r=!1){this.settings=t,this.isNoiseCavesEnabled=n;const s=t.hasLargeBiomes,o=(r?new Ye(i):Xe.create(i)).forkPositional();r?(this.blendedNoise=new Ih(new Ye(i),t.sampling,Qe.cellWidth(t),Qe.cellHeight(t)),this.temperatureNoise=new Mn(new Ye(i),qi.create(-7,[1,1])),this.humidityNoise=new Mn(new Ye(i+BigInt(1)),qi.create(-7,[1,1])),this.offsetNoise=new Mn(new Ye(i+BigInt(5)),qi.create(0,[0]))):(this.blendedNoise=new Ih(o.fromHashOf("minecraft:terrain"),t.sampling,Qe.cellWidth(t),Qe.cellHeight(t)),this.temperatureNoise=se.instantiate(o,s?se.TEMPERATURE_LARGE:se.TEMPERATURE),this.humidityNoise=se.instantiate(o,s?se.VEGETATION_LARGE:se.VEGETATION),this.offsetNoise=se.instantiate(o,se.SHIFT)),this.continentalnessNoise=se.instantiate(o,s?se.CONTINENTALNESS_LARGE:se.CONTINENTALNESS),this.erosionNoise=se.instantiate(o,s?se.EROSION_LARGE:se.EROSION),this.weirdnessNoise=se.instantiate(o,se.RIDGE),this.pillarNoise=se.instantiate(o,se.PILLAR),this.pillarRarenessModulator=se.instantiate(o,se.PILLAR_RARENESS),this.pillarThicknessModulator=se.instantiate(o,se.PILLAR_THICKNESS),this.spaghetti2DNoise=se.instantiate(o,se.SPAGHETTI_2D),this.spaghetti2DElevationModulator=se.instantiate(o,se.SPAGHETTI_2D_ELEVATION),this.spaghetti2DRarityModulator=se.instantiate(o,se.SPAGHETTI_2D_MODULATOR),this.spaghetti2DThicknessModulator=se.instantiate(o,se.SPAGHETTI_2D_THICKNESS),this.spaghetti3DNoise1=se.instantiate(o,se.SPAGHETTI_3D_1),this.spaghetti3DNoise2=se.instantiate(o,se.SPAGHETTI_3D_2),this.spaghetti3DRarityModulator=se.instantiate(o,se.SPAGHETTI_3D_RARITY),this.spaghetti3DThicknessModulator=se.instantiate(o,se.SPAGHETTI_3D_THICKNESS),this.spaghettiRoughnessNoise=se.instantiate(o,se.SPAGHETTI_ROUGHNESS),this.spaghettiRoughnessModulator=se.instantiate(o,se.SPAGHETTI_ROUGHNESS_MODULATOR),this.bigEntranceNoise=se.instantiate(o,se.CAVE_ENTRANCE),this.layerNoise=se.instantiate(o,se.CAVE_LAYER),this.cheeseNoise=se.instantiate(o,se.CAVE_CHEESE);const a=t.minY+4,l=a+t.height;this.noodleToggleNoise=this.yLimitedInterpolatable(se.instantiate(o,se.NOODLE),a,l,-1,1),this.noodleThicknessNoise=this.yLimitedInterpolatable(se.instantiate(o,se.NOODLE_THICKNESS),a,l,0,1),this.noodleRidgeANoise=this.yLimitedInterpolatable(se.instantiate(o,se.NOODLE_RIDGE_A),a,l,0,8/3),this.noodleRidgeBNoise=this.yLimitedInterpolatable(se.instantiate(o,se.NOODLE_RIDGE_B),a,l,0,8/3),this.jaggedNoise=se.instantiate(o,se.JAGGED),this.shaper=t.terrainShaper,this.baseNoise=u=>u.createNoiseInterpolator((c,p,f)=>this.calculateBlendedBaseNoise(c,p,f,u.getNoiseData(c>>2,f>>2).terrainInfo))}yLimitedInterpolatable(t,n,i,r,s){const o=(a,l,u)=>l>i||la.createNoiseInterpolator(o)}noiseData(t,n){const i=t+this.getOffset(t,0,n),r=n+this.getOffset(n,t,0),s=this.getContinentalness(i,r),o=this.getErosion(i,r),a=this.getWeirdness(i,r),l=this.terrainInfo(s,o,a);return El.create(i,r,s,o,a,l)}sample(t,n,i){return this.target(t,n,i,this.noiseData(t,i))}target(t,n,i,r){const s=r.shiftedX,o=n+this.getOffset(n,i,t),a=r.shiftedZ,l=this.getTemperature(s,o,a),u=this.getHumidity(s,o,a),c=this.computeDimensionDensity(n<<2,r.terrainInfo);return xl.target(l,u,r.continentalness,r.erosion,c,r.weirdness)}terrainInfo(t,n,i){const r=rt.point(t,n,i),s=this.shaper.offset(r),o=this.shaper.factor(r),a=this.shaper.jaggedness(r);return wl.create(s,o,a)}getOffset(t,n,i){return 4*this.offsetNoise.sample(t,n,i)}getTemperature(t,n,i){return this.temperatureNoise.sample(t,n,i)}getHumidity(t,n,i){return this.humidityNoise.sample(t,n,i)}getContinentalness(t,n){return this.continentalnessNoise.sample(t,0,n)}getErosion(t,n){return this.erosionNoise.sample(t,0,n)}getWeirdness(t,n){return this.weirdnessNoise.sample(t,0,n)}makeBaseNoiseFiller(t,n,i){const r=this.baseNoise(t),s=i?this.noodleToggleNoise(t):()=>-1,o=i?this.noodleThicknessNoise(t):()=>0,a=i?this.noodleRidgeANoise(t):()=>0,l=i?this.noodleRidgeBNoise(t):()=>0;return(u,c,p)=>{let f=r();if(f=Ri(.64*f,-1,1),f=f/2-f*f*f/24,s()>=0){const d=_w(o(),-1,1,.05,.1),_=Math.abs(1.5*a())-d,h=Math.abs(1.5*l())-d;f=Math.min(f,Math.max(_,h))}return f+=n(u,c,p),f>0?null:Zt.AIR}}calculateBlendedBaseNoise(t,n,i,r){const s=this.blendedNoise.sample(t,n,i);return this.calculateBaseNoise(t,n,i,r,s,!this.isNoiseCavesEnabled,!0)}calculateBaseNoise(t,n,i,r,s,o,a){if(!this.settings.islandNoiseOverride){const c=a?this.sampleJaggedNoise(r.jaggedness,t,i):0,p=this.computeDimensionDensity(n,r),f=r.factor*(c+p);s+=f>0?4*f:f}let l=-64,u=64;if(!o&&s>=-64){const c=s-1.5625,p=this.getBigEntrances(t,n,i),f=this.getSpaghettiRoughness(t,n,i),d=this.getSpaghetti3D(t,n,i),_=Math.min(p,d+f);if(c<0)u=_;else{const h=this.getLayerizedCaverns(t,n,i);h>64?s=64:s=this.getCheese(t,n,i)+h+os(.5,0,1.28*c);const m=this.getSpaghetti2D(t,n,i);l=this.getPillars(t,n,i),u=Math.min(_,m+f)}}return s=Ri(s,l,u),s=Ri(s=this.applySlide(s,n/Qe.cellHeight(this.settings)),-64,64)}sampleJaggedNoise(t,n,i){if(t===0)return 0;const r=this.jaggedNoise.sample(1500*n,0,1500*i);return r>0?t*r:t/2*r}computeDimensionDensity(t,n){return 1-t/128+n.offset}getBigEntrances(t,n,i){return this.bigEntranceNoise.sample(.75*t,.5*n,.75*i)+.37+os(.3,0,(n+10)/40)}getSpaghettiRoughness(t,n,i){const r=this.spaghettiRoughnessNoise.sample(t,n,i),s=Xn(this.spaghettiRoughnessModulator.sample(t,n,i),-1,1,0,1);return(.4-Math.abs(r))*s}getSpaghetti2D(t,n,i){const r=this.quantizeSpaghettiRarity2D(this.spaghetti2DRarityModulator.sample(2*t,n,2*i)),s=Xn(this.spaghetti2DThicknessModulator.sample(2*t,n,2*i),-1,1,.6,1.3),o=this.sampleWithRarity(this.spaghetti2DNoise,t,n,i,r),a=Math.abs(r*o)-.083*s,l=Qe.minCellY(this.settings),u=Xn(this.spaghetti2DElevationModulator.sample(t,0,i),-1,1,l,8),c=Math.abs(u-n/8)-1*s;return Ri(Math.max(c,a),-1,1)}getSpaghetti3D(t,n,i){const r=this.quantizeSpaghettiRarity3D(this.spaghetti3DRarityModulator.sample(2*t,n,2*i)),s=Xn(this.spaghetti3DThicknessModulator.sample(t,n,i),-1,1,.065,.088),o=this.sampleWithRarity(this.spaghetti3DNoise1,t,n,i,r),a=Math.abs(r*o)-s,l=this.sampleWithRarity(this.spaghetti3DNoise2,t,n,i,r),u=Math.abs(r*l)-s;return Ri(Math.max(a,u),-1,1)}quantizeSpaghettiRarity2D(t){return t<-.75?.5:t<-.5?.75:t<.5?1:t<.75?2:3}quantizeSpaghettiRarity3D(t){return t<-.5?.75:t<0?1:t<.5?1.5:2}sampleWithRarity(t,n,i,r,s){return t.sample(n/s,i/s,r/s)}getLayerizedCaverns(t,n,i){return 4*Dn(this.layerNoise.sample(t,8*n,i))}getCheese(t,n,i){return Ri(this.cheeseNoise.sample(t,n/1.5,i)+.27,-1,1)}getPillars(t,n,i){const r=Xn(this.pillarRarenessModulator.sample(t,n,i),-1,1,0,2),s=Xn(this.pillarThicknessModulator.sample(t,n,i),-1,1,0,1.1),o=this.pillarNoise.sample(25*t,.3*n,25*i),a=Math.pow(s,3)*(2*o-r);return a<=.03?Number.MIN_SAFE_INTEGER:a}applySlide(t,n){const i=n-Qe.minCellY(this.settings);return t=Ji.apply(this.settings.topSlide,t,Qe.cellCountY(this.settings)-i),t=Ji.apply(this.settings.bottomSlide,t,i)}getPreliminarySurfaceLevel(t,n,i){const r=Qe.minCellY(this.settings)+Qe.cellCountY(this.settings),s=Qe.minCellY(this.settings),o=Qe.cellHeight(this.settings);for(let a=r;a>=s;a-=1){const l=a*o;if(this.calculateBaseNoise(t,l,n,i,-.703125,!0,!1)>=.390625)return l}return Number.MAX_SAFE_INTEGER}}(function(e){e.create=function(t,n,i,r,s,o){return{shiftedX:t,shiftedZ:n,continentalness:i,weirdness:r,erosion:s,terrainInfo:o}}})(El||(El={})),function(e){e.fromJson=function(t){var n,i,r,s;const o=(n=W.readObject(t))!==null&&n!==void 0?n:{};return o.absolute!==void 0?(a=(i=W.readNumber(o.absolute))!==null&&i!==void 0?i:0,()=>a):o.above_bottom!==void 0?function(l){return u=>u.minY+l}((r=W.readNumber(o.above_bottom))!==null&&r!==void 0?r:0):o.below_top!==void 0?function(l){return u=>u.maxY-l}((s=W.readNumber(o.below_top))!==null&&s!==void 0?s:0):()=>0;var a}}(jr||(jr={})),function(e){e.create=function(t,n){return{minY:t,height:n,maxY:t+n-1}}}(bl||(bl={}));class bw{constructor(t,n,i){this.rule=t,this.defaultBlock=n,this.random=Xe.create(i).forkPositional(),this.surfaceNoise=se.instantiate(this.random,se.SURFACE),this.surfaceSecondaryNoise=se.instantiate(this.random,se.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(t,n,i,r){const s=pn.minBlockX(t.pos),o=pn.minBlockZ(t.pos),a=new Aw(this,t,n,i,r),l=this.rule(a);for(let u=0;u<16;u+=1){const c=s+u;for(let p=0;p<1;p+=1){const f=o+p;a.updateXZ(c,f);let d=0,_=Number.MIN_SAFE_INTEGER,h=Number.MAX_SAFE_INTEGER;for(let m=t.maxY;m>=t.minY;m-=1){const g=ss.create(c,m,f),v=t.getBlockState(g);if(v.equals(Zt.AIR)){d=0,_=Number.MIN_SAFE_INTEGER;continue}if(v.isFluid()){_===Number.MIN_SAFE_INTEGER&&(_=m+1);continue}if(h>=m){h=Number.MIN_SAFE_INTEGER;for(let b=m-1;b>=t.minY;b-=1){const S=t.getBlockState(ss.create(c,b,f));if(S.equals(Zt.AIR)||S.isFluid()){h=b+1;break}}}d+=1;const y=m-h+1;if(!v.equals(this.defaultBlock))continue;a.updateY(d,y,_,m);const A=l(c,m,f);A&&t.setBlockState(g,A)}}}}getSurfaceDepth(t,n){return 2.75*this.surfaceNoise.sample(t,0,n)+3+.25*this.random.at(t,0,n).nextDouble()}getSurfaceSecondary(t,n){return this.surfaceSecondaryNoise.sample(t,0,n)}getRandom(t){return tu(this.positionalRandoms,t,()=>this.random.fromHashOf(t))}}class Aw{constructor(t,n,i,r,s){this.system=t,this.chunk=n,this.noiseChunk=i,this.context=r,this.getBiome=s,this.blockX=0,this.blockY=0,this.blockZ=0,this.stoneDepthAbove=0,this.stoneDepthBelow=0,this.surfaceDepth=0,this.waterHeight=0,this.biome=()=>"",this.surfaceSecondary=()=>0,this.minSurfaceLevel=()=>0}updateXZ(t,n){this.blockX=t,this.blockZ=n,this.surfaceDepth=this.system.getSurfaceDepth(t,n),this.surfaceSecondary=Aa(()=>this.system.getSurfaceSecondary(t,n)),this.minSurfaceLevel=Aa(()=>this.calculateMinSurfaceLevel(t,n))}updateY(t,n,i,r){this.blockY=r,this.stoneDepthAbove=t,this.stoneDepthBelow=n,this.waterHeight=i,this.biome=Aa(()=>this.getBiome(ss.create(this.blockX,this.blockY,this.blockZ)))}calculateMinSurfaceLevel(t,n){const i=t>>4,r=n>>4,s=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,r<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,r<<4),a=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,r+1<<4),l=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,r+1<<4);return Math.floor(gl((15&t)/16,(15&n)/16,s,o,a,l))+this.surfaceDepth-8}}(function(e){function t(r){return()=>()=>r}function n(r){return s=>{const o=r.map(a=>a(s));return(a,l,u)=>{for(const c of o){const p=c(a,l,u);if(p)return p}}}}function i(r,s){return o=>(a,l,u)=>{if(r(o))return s(o)(a,l,u)}}e.NOOP=()=>()=>{},e.fromJson=function(r){var s,o,a;const l=(s=W.readObject(r))!==null&&s!==void 0?s:{};switch((o=W.readString(l.type))===null||o===void 0?void 0:o.replace(/^minecraft:/,"")){case"block":return t(Zt.fromJson(l.result_state));case"sequence":return n((a=W.readArray(l.sequence,e.fromJson))!==null&&a!==void 0?a:[]);case"condition":return i(Da.fromJson(l.if_true),e.fromJson(l.then_run))}return e.NOOP},e.block=t,e.sequence=n,e.condition=i})(Al||(Al={})),function(e){function t(){return l=>l.blockY>=l.minSurfaceLevel()}function n(l){const u=new Set(l);return c=>u.has(c.biome())}function i(l){return u=>!l(u)}function r(l,u,c,p){return f=>{const d=p?f.stoneDepthBelow:f.stoneDepthAbove,_=u?f.surfaceDepth:0,h=c===0?0:Xn(f.surfaceSecondary(),-1,1,0,c);return d<=1+l+_+h}}function s(l,u,c){return p=>{const f=u(p.context),d=c(p.context);if(p.blockY<=f)return!0;if(p.blockY>=d)return!1;const _=p.system.getRandom(l),h=Xn(p.blockY,f,d,1,0);return _.nextFloat(){if(p.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const f=c?p.stoneDepthAbove:0;return p.blockY+f>=p.waterHeight+l+p.surfaceDepth*u}}function a(l,u,c){return p=>{const f=c?p.stoneDepthAbove:0;return p.blockY+f>=l(p.context)+p.surfaceDepth*u}}e.FALSE=()=>!1,e.TRUE=()=>!0,e.fromJson=function(l){var u,c,p,f,d,_,h,m,g,v,y,A;const b=(u=W.readObject(l))!==null&&u!==void 0?u:{};switch((c=W.readString(b.type))===null||c===void 0?void 0:c.replace(/^minecraft:/,"")){case"above_preliminary_surface":return S=>S.blockY>=S.minSurfaceLevel();case"biome":return n((p=W.readArray(b.biome_is,S=>{var D;return(D=W.readString(S))!==null&&D!==void 0?D:""}))!==null&&p!==void 0?p:[]);case"not":return i(e.fromJson(b.invert));case"stone_depth":return r((f=W.readInt(b.offset))!==null&&f!==void 0?f:0,(d=W.readBoolean(b.add_surface_depth))!==null&&d!==void 0&&d,(_=W.readInt(b.secondary_depth_range))!==null&&_!==void 0?_:0,W.readString(b.surface_type)==="ceiling");case"vertical_gradient":return s((h=W.readString(b.random_name))!==null&&h!==void 0?h:"",jr.fromJson(b.true_at_and_below),jr.fromJson(b.false_at_and_above));case"water":return o((m=W.readInt(b.offset))!==null&&m!==void 0?m:0,(g=W.readInt(b.surface_depth_multiplier))!==null&&g!==void 0?g:0,(v=W.readBoolean(b.add_surface_depth))!==null&&v!==void 0&&v);case"y_above":return a(jr.fromJson(b.anchor),(y=W.readInt(b.surface_depth_multiplier))!==null&&y!==void 0?y:0,(A=W.readBoolean(b.add_surface_depth))!==null&&A!==void 0&&A)}return e.FALSE},e.abovePreliminarySurface=t,e.biome=n,e.not=i,e.stoneDepth=r,e.verticalGradient=s,e.water=o,e.yAbove=a}(Da||(Da={}));class Sw{constructor(t,n,i){this.biomeSource=n,this.settings=i,this.sampler=new Ew(i.noise,i.noiseCavesEnabled,t,i.legacyRandomSource),this.noiseChunkCache=new Map,this.materialRule=yl.fromList([(r,s,o,a)=>r.updateNoiseAndGenerateBaseState(s,o,a)]),this.surfaceSystem=new bw(i.surfaceRule,i.defaultBlock,t)}fill(t){var n;const i=Math.max(t.minY,this.settings.noise.minY),r=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),s=Qe.cellWidth(this.settings.noise),o=Qe.cellHeight(this.settings.noise),a=Math.floor(16/s),l=Math.floor(i/o),u=Math.floor((r-i)/o),c=pn.minBlockX(t.pos),p=pn.minBlockZ(t.pos),f=this.getNoiseChunk(t);f.initializeForFirstCellX();for(let d=0;d=0;m-=1){f.selectCellYZ(m,_);for(let g=o-1;g>=0;g-=1){const v=(l+m)*o+g,y=15&v,A=t.getSectionIndex(v);t.getSectionIndex(h.minBlockY)!==A&&(h=t.getOrCreateSection(A));const b=g/o;f.updateForY(b);for(let S=0;Sn)}getNoiseChunk(t){return tu(this.noiseChunkCache,pn.toLong(t.pos),()=>{const n=Math.max(t.minY,this.settings.noise.minY),i=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),r=Qe.cellWidth(this.settings.noise),s=Qe.cellHeight(this.settings.noise),o=Math.floor(16/r),a=Math.floor(n/s),l=Math.floor((i-n)/s),u=pn.minBlockX(t.pos),c=pn.minBlockZ(t.pos);return new ww(o,l,a,this.sampler,u,c,()=>0,this.settings)})}}(function(e){e.fromJson=function(t){var n,i,r,s,o,a,l,u,c,p,f;const d=(n=W.readObject(t))!==null&&n!==void 0?n:{};return{structures:Ca.fromJson(d.structures),surfaceRule:Al.fromJson(d.surface_rule),noise:Qe.fromJson(d.noise),defaultBlock:Zt.fromJson(d.default_block),defaultFluid:Zt.fromJson(d.default_fluid),bedrockRoofPosition:(i=W.readInt(d.bedrock_roof_position))!==null&&i!==void 0?i:0,bedrockFloorPosition:(r=W.readInt(d.bedrock_floor_position))!==null&&r!==void 0?r:0,seaLevel:(s=W.readInt(d.sea_level))!==null&&s!==void 0?s:0,disableMobGeneration:(o=W.readBoolean(d.disable_mob_generation))!==null&&o!==void 0&&o,aquifersEnabled:(a=W.readBoolean(d.aquifers_enabled))!==null&&a!==void 0&&a,noiseCavesEnabled:(l=W.readBoolean(d.noise_caves_enabled))!==null&&l!==void 0&&l,deepslateEnabled:(u=W.readBoolean(d.deepslate_enabled))!==null&&u!==void 0&&u,oreVeinsEnabled:(c=W.readBoolean(d.ore_veins_enabled))!==null&&c!==void 0&&c,noodleCavesEnabled:(p=W.readBoolean(d.noodle_caves_enabled))!==null&&p!==void 0&&p,legacyRandomSource:(f=W.readBoolean(d.legacy_random_source))!==null&&f!==void 0&&f}}})(Bh||(Bh={})),function(e){e.fromJson=function(t){var n;const i=(n=W.readObject(t))!==null&&n!==void 0?n:{};return{stronghold:W.compose(i.stronghold,W.readObject,r=>{var s,o,a;return{distance:(s=W.readInt(r.distance))!==null&&s!==void 0?s:0,spread:(o=W.readInt(r.spread))!==null&&o!==void 0?o:0,count:(a=W.readInt(r.count))!==null&&a!==void 0?a:0}}),structures:W.readMap(i.structures,r=>{var s;return(o=>{var a,l,u;return{spacing:(a=W.readInt(o.spacing))!==null&&a!==void 0?a:0,separation:(l=W.readInt(o.separation))!==null&&l!==void 0?l:0,salt:(u=W.readInt(o.salt))!==null&&u!==void 0?u:0}})((s=W.readObject(r))!==null&&s!==void 0?s:{})})}}}(Ca||(Ca={}));class Dw{constructor(t){this.settings={},this.chunkWidth=4,this.chunkHeight=4,this.chunkCountY=32,this.biomeDepth=.1,this.biomeScale=.2,this.noiseColumnCache=[],this.xOffset=0;const n=new Rt(t);this.minLimitPerlinNoise=new je(n,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),this.maxLimitPerlinNoise=new je(n,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),this.mainPerlinNoise=new je(n,-7,[1,1,1,1,1,1,1,1]),this.depthNoise=new je(n,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1])}reset(t,n,i,r,s){this.settings=t,this.chunkWidth=t.size_horizontal*4,this.chunkHeight=t.size_vertical*4,this.chunkCountY=Math.floor(t.height/this.chunkHeight),t.amplified&&n>0&&(n=1+n*2,i=1+i*4),this.biomeDepth=.265625*(n*.5-.125),this.biomeScale=96/(i*.9+.1),this.noiseColumnCache=Array(s).fill(null),this.xOffset=r}iterateNoiseColumn(t){const n=Array(this.chunkCountY*this.chunkHeight),i=Math.floor(t/this.chunkWidth),r=Math.floor(t%this.chunkWidth)/this.chunkWidth,s=this.fillNoiseColumn(i),o=this.fillNoiseColumn(i+1);for(let a=this.chunkCountY-1;a>=0;a-=1)for(let l=this.chunkHeight;l>=0;l-=1){const u=l/this.chunkHeight,c=a*this.chunkHeight+l;n[c]=fv(u,r,s[a],s[a+1],o[a],o[a+1])}return n}fillNoiseColumn(t){const n=this.noiseColumnCache[t-this.xOffset];if(n)return n;const i=Array(this.chunkCountY+1),r=684.412*this.settings.sampling.xz_scale,s=684.412*this.settings.sampling.y_scale,o=r/this.settings.sampling.xz_factor,a=s/this.settings.sampling.y_factor,l=this.settings.random_density_offset?this.getRandomDensity(t):0;for(let u=0;u<=this.chunkCountY;u+=1){let c=this.sampleAndClampNoise(t,u,this.mainPerlinNoise.getOctaveNoise(0).zo,r,s,o,a);const d=((1-u*2/this.chunkCountY+l)*this.settings.density_factor+this.settings.density_offset+this.biomeDepth)*this.biomeScale;c+=d*(d>0?4:1),this.settings.top_slide.size>0&&(c=ea(this.settings.top_slide.target,c,(this.chunkCountY-u-this.settings.top_slide.offset)/this.settings.top_slide.size)),this.settings.bottom_slide.size>0&&(c=ea(this.settings.bottom_slide.target,c,(u-this.settings.bottom_slide.offset)/this.settings.bottom_slide.size)),i[u]=c}return this.noiseColumnCache[t-this.xOffset]=i,i}getRandomDensity(t){const n=this.depthNoise.sample(t*200,10,this.depthNoise.getOctaveNoise(0).zo,1,0,!0),r=(n<0?-n*.3:n)*24.575625-2;return r<0?r*.009486607142857142:Math.min(r,1)*.006640625}sampleAndClampNoise(t,n,i,r,s,o,a){let l=0,u=0,c=0,p=1;for(let f=0;f<16;f+=1){const d=je.wrap(t*r*p),_=je.wrap(n*s*p),h=je.wrap(i*r*p),m=s*p,g=this.minLimitPerlinNoise.getOctaveNoise(f);g&&(l+=g.sample(d,_,h,m,n*m)/p);const v=this.maxLimitPerlinNoise.getOctaveNoise(f);if(v&&(u+=v.sample(d,_,h,m,n*m)/p),f<8){const y=this.mainPerlinNoise.getOctaveNoise(f);y&&(c+=y.sample(je.wrap(t*o*p),je.wrap(n*a*p),je.wrap(i*o*p),a*p,n*a*p)/p)}p/=2}return ea(l/512,u/512,(c/10+1)/2)}}const iu=0,Cw={"minecraft:air":[150,160,170],"minecraft:water":[20,80,170],"minecraft:lava":[200,100,0],"minecraft:stone":[55,55,55],"minecraft:deepslate":[34,34,36],"minecraft:bedrock":[10,10,10],"minecraft:grass_block":[47,120,23],"minecraft:dirt":[64,40,8],"minecraft:gravel":[70,70,70],"minecraft:sand":[196,180,77],"minecraft:sandstone":[148,135,52],"minecraft:netherrack":[100,40,40],"minecraft:crimson_nylium":[144,22,22],"minecraft:warped_nylium":[28,115,113],"minecraft:basalt":[73,74,85],"minecraft:end_stone":[200,200,140]};let Nh,ka,_o=[];const Fa=new Map;async function kw(e,t,n){var o,a,l;if(Bt(n.version,"1.18")){Bt(n.version,"1.18.2")&&await ep(n.version);const{settings:u,generator:c}=Mw(e,n),p=new Lw(-n.offset,n.width,u.noise.minY,u.noise.height);p.generate(c,n.biome);const f=t.data;for(let d=0;d$t.minBlockX(i.pos)<=e&&$t.maxBlockX(i.pos)>=e);if(!!n)return n.getBlockState(or.create(e,t,iu))}async function Iw(e,t,n){const{fn:i,settings:r}=await Tw(e,n),s=Array(n.width*r.height);let o=1/0,a=-1/0;for(let u=0;uNw(e,t,i,r))),Fa.set(e,t)),oi.DENSITY_FUNCTION.clear().assign(t.getOrThrow(Be.create("worldgen/density_function"))),oi.NOISE.clear().assign(t.getOrThrow(Be.create("worldgen/noise")))}async function Nw(e,t,n,i){const r=await bv(e,n),s=new ns(Be.create(n));for(const[o,a]of r.entries())s.register(Be.parse(o),i.fromJson(a));t.register(s.key,s)}function Mw(e,t){const n=hl.fromJson(q.DataModel.unwrapLists(e)),i=[e,`${t.seed}`,t.biome];if(!yi(i,Nh))if(Nh=No(i),_o=[],Bt(t.version,"1.18.2")){const r=new is(Be.create("unknown"));ka=new z2(t.seed,r,n)}else{const r=new nu("unknown");ka=new Sw(t.seed,r,n)}return{settings:n,generator:ka}}function Ow(e,t){return e[t]>0?0:e[t+1]>0?150:255}class Lw{constructor(t,n,i,r){this.minX=t,this.done=[],this.chunks=[...Array(Math.ceil(n/16)+1)].map((s,o)=>{const a=(t>>4)+o,l=_o.find(u=>u.pos[0]===a);return l?(this.done[o]=!0,l):new D2(i,r,$t.create(a,iu>>4))})}generate(t,n){this.chunks.forEach((i,r)=>{this.done[r]||(t.fill(i,!0),t.buildSurface(i,n),this.done[r]=!0,_o.push(i))})}getBlockState(t){const n=(t[0]>>4)-(this.minX>>4);return this.chunks[n].getBlockState(t)}}function Rw(e,t,n){const i=new Rt(n.seed),r=lr.fromJson(q.DataModel.unwrapLists(e)),s=new jo(i,r),o=-n.offset[0]-100,a=-n.offset[1]-100,l=t.data;for(let u=0;u<256;u+=1)for(let c=0;c<256;c+=1){const p=u*4+c*4*256,f=(u+o)*n.scale,d=(c+a)*n.scale,_=(s.sample(f,d,0)+1)*128;l[p]=_,l[p+1]=_,l[p+2]=_,l[p+3]=255}}const Pw=["biomes","temperature","humidity","continentalness","erosion","weirdness"],$w=({model:e,data:t,shown:n,version:i})=>{var S,D;const{locale:r}=We(),[s]=Y(Ln()),[o,a]=Y(2),[l,u]=Y(void 0),[c,p]=Y(new Set(["biomes"])),f=Pe([0,0]),d=Pe(1),_=Pe(void 0),h=BigInt((S=e.get(new q.Path(["generator","seed"])))!=null?S:s),m=He(()=>{if(!!n)return Uw(e.get(new q.Path(["generator","settings"])))},[n]),g=n?zw(t,m):"",v=(D=t.type)==null?void 0:D.replace(/^minecraft:/,""),{canvas:y,redraw:A}=Es({size(){return[200/d.current,200/d.current]},async draw(k){const T={octaves:m,biomeColors:{},layers:c,offset:f.current,scale:o,seed:h,res:d.current,version:i};await Q2(t,k,T),d.current===4&&(clearTimeout(_.current),_.current=setTimeout(()=>{d.current=1,A()},150))},async onDrag(k,T){f.current[0]=f.current[0]+k*200,f.current[1]=f.current[1]+T*200,clearTimeout(_.current),d.current=v==="multi_noise"?4:1,A()},async onHover(k,T){const B={octaves:m,biomeColors:{},layers:c,offset:f.current,scale:o,seed:s,res:1,version:i},M=await ew(t,Math.floor(k*200),Math.floor(T*200),B);u(M)},onLeave(){u(void 0)}},[g,o,s,c]);me(()=>{n&&(d.current=v==="multi_noise"?4:1,A())},[g,o,s,c,n]);const b=k=>{f.current[0]=f.current[0]*o/k,f.current[1]=f.current[1]*o/k,a(k)};return w(xe,null,w("div",{class:"controls preview-controls"},l&&w(fe,{label:l.biome,class:"no-pointer"}),v==="multi_noise"&&w(Tt,{icon:"stack",tooltip:r("configure_layers")},Pw.map(k=>{const T=c.has(k);return w(fe,{label:r(`layer.${k}`),active:T,tooltip:r(T?"enabled":"disabled"),onClick:B=>{p(new Set([k])),B.stopPropagation()}})})),(v==="multi_noise"||v==="checkerboard")&&w(xe,null,w(fe,{icon:"dash",tooltip:r("zoom_out"),onClick:()=>b(o*1.5)}),w(fe,{icon:"plus",tooltip:r("zoom_in"),onClick:()=>b(o/1.5)})),v==="multi_noise"&&w(fe,{icon:"sync",tooltip:r("generate_new_seed"),onClick:()=>P0(e)})),(l==null?void 0:l.temperature)!==void 0&&w("div",{class:"controls secondary-controls"},w(fe,{class:"no-pointer",label:Object.entries(l).filter(([k])=>k!=="biome").map(([k,T])=>`${k[0].toUpperCase()}: ${T.toFixed(2)}`).join(" ")})),w("canvas",{ref:y,width:"200",height:"200"}))};function zw(e,t){return JSON.stringify([e,t])}function Uw(e){switch(typeof e!="string"&&(e=e.legacy_random_source?"minecraft:nether":"minecraft:overworld"),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]}}}}const jw=({data:e,version:t,shown:n})=>{const{locale:i}=We(),[r,s]=Y(4),[o,a]=Y(Ln()),{canvas:l,redraw:u}=Es({size(){return[r*16,r*16]},async draw(p){lw(e,p,{seed:o,version:t,size:[r*16,128,r*16]})}}),c=JSON.stringify(e);return me(()=>{n&&u()},[c,r,o,n]),w(xe,null,w("div",{class:"controls preview-controls"},w(fe,{icon:"dash",tooltip:i("zoom_out"),onClick:()=>s(Math.min(16,r+1))}),w(fe,{icon:"plus",tooltip:i("zoom_in"),onClick:()=>s(Math.max(1,r-1))}),w(fe,{icon:"sync",tooltip:i("generate_new_seed"),onClick:()=>a(Ln())})),w("canvas",{ref:l,width:"64",height:"64"}))},Hw=({data:e,shown:t,version:n})=>{var m,g;const{locale:i}=We(),[r,s]=Y(Ln()),[o,a]=Y(!1),[l,u]=Y(void 0),c=Pe(0),p=Pe(void 0),f=JSON.stringify([e]),d=(g=(m=e==null?void 0:e.noise)==null?void 0:m.height)!=null?g:256,{canvas:_,redraw:h}=Es({size(){return[d,d]},async draw(v){const y={offset:c.current,width:v.width,seed:r,version:n};await Iw(e,v,y)},async onDrag(v){c.current+=v*d,h()},async onHover(v,y){var S,D;const A=Math.floor(v*d-c.current),b=d-Math.max(1,Math.ceil(y*d))+((D=(S=e==null?void 0:e.noise)==null?void 0:S.min_y)!=null?D:0);u(`X=${A} Y=${b}`)},onLeave(){u(void 0)}},[f,r]);return me(()=>{p.current&&clearInterval(p.current),t&&(h(),o&&(p.current=setInterval(()=>{c.current-=8,h()},100)))},[f,r,t,o]),w(xe,null,w("div",{class:"controls preview-controls"},l&&w(fe,{label:l,class:"no-pointer"}),w(Tt,{icon:"gear",tooltip:i("terrain_settings")},w(fe,{icon:o?"square_fill":"square",label:i("preview.auto_scroll"),onClick:()=>a(!o)})),w(fe,{icon:"sync",tooltip:i("generate_new_seed"),onClick:()=>s(Ln())})),w("canvas",{ref:_,width:d,height:d}))},Vw=({data:e,shown:t,version:n})=>{const{locale:i}=We(),[r,s]=Y(Ln()),[o,a]=Y(2),l=Pe([0,0]),u=JSON.stringify([e]),{canvas:c,redraw:p}=Es({size(){return[256,256]},async draw(d){const _={offset:l.current,scale:o,seed:r,version:n};Rw(e,d,_)},async onDrag(d,_){l.current[0]=l.current[0]+d*256,l.current[1]=l.current[1]+_*256,p()}},[u,o,r]);me(()=>{t&&p()},[u,o,r,t]);const f=d=>{l.current[0]=l.current[0]*o/d,l.current[1]=l.current[1]*o/d,a(d)};return w(xe,null,w("div",{class:"controls preview-controls"},w(fe,{icon:"dash",tooltip:i("zoom_out"),onClick:()=>f(o*1.5)}),w(fe,{icon:"plus",tooltip:i("zoom_in"),onClick:()=>f(o/1.5)}),w(fe,{icon:"sync",tooltip:i("generate_new_seed"),onClick:()=>s(Ln())})),w("canvas",{ref:c,width:"256",height:"256"}))},Xw=({data:e,shown:t,version:n})=>{var D,k;const{locale:i}=We(),[r,s]=Y(Ln()),[o,a]=Y("minecraft:plains"),[l,u]=Y(.2),[c,p]=Y(.1),[f,d]=Y(!1),[_,h]=Y(void 0),m=Pe(0),g=Pe(void 0),v=JSON.stringify([e,l,c]),y=(k=(D=e==null?void 0:e.noise)==null?void 0:D.height)!=null?k:256,{canvas:A,redraw:b}=Es({size(){return[y,y]},async draw(T){const B={biome:o,biomeDepth:c,biomeScale:l,offset:m.current,width:T.width,seed:r,version:n};await kw(e,T,B)},async onDrag(T){m.current+=T*y,b()},async onHover(T,B){var Q,te;const M=Math.floor(T*y-m.current),U=y-Math.max(1,Math.ceil(B*y))+((te=(Q=e==null?void 0:e.noise)==null?void 0:Q.min_y)!=null?te:0),H=Fw(M,U);h(H?`Y=${U} (${H.getName().path})`:`Y=${U}`)},onLeave(){h(void 0)}},[v,r]);me(()=>{g.current&&clearInterval(g.current),t&&(async()=>{try{await b(),f&&(g.current=setInterval(()=>{m.current-=8,b()},100))}catch(T){throw T}})()},[v,r,t,o,l,c,f]);const S=He(()=>{var T;return(T=Js==null?void 0:Js.get("worldgen/biome"))!=null?T:[]},[n]);return w(xe,null,w("div",{class:"controls preview-controls"},_&&w(fe,{label:_,class:"no-pointer"}),w(Tt,{icon:"gear",tooltip:i("terrain_settings")},Bt(n,void 0,"1.17")?w(xe,null,w(Xs,{label:i("preview.scale"),value:`${l}`,onChange:T=>u(Number(T))}),w(Xs,{label:i("preview.depth"),value:`${c}`,onChange:T=>p(Number(T))})):w(Xs,{label:i("preview.biome"),value:o,onChange:a,dataList:S,larger:!0}),w(fe,{icon:f?"square_fill":"square",label:i("preview.auto_scroll"),onClick:()=>d(!f)})),w(fe,{icon:"sync",tooltip:i("generate_new_seed"),onClick:()=>s(Ln())})),w("canvas",{ref:A,width:y,height:y}))},Jw=["dimension","worldgen/density_function","worldgen/noise","worldgen/noise_settings","worldgen/configured_feature","worldgen/placed_feature"];function Gw({model:e,version:t,id:n,shown:i}){var s;const[,r]=Y(0);if(Mo(e,()=>{r(o=>o+1)}),!e)return w(xe,null);if(n==="dimension"&&((s=e.get(new q.Path(["generator","type"])))==null?void 0:s.endsWith("noise"))){const o=e.get(new q.Path(["generator","biome_source"]));if(o)return w($w,{model:e,version:t,shown:i,data:o})}if(n==="worldgen/density_function"){const o=e.get(new q.Path([]));if(o)return w(Hw,{model:e,version:t,shown:i,data:o})}if(n==="worldgen/noise"){const o=e.get(new q.Path([]));if(o)return w(Vw,{model:e,version:t,shown:i,data:o})}if(n==="worldgen/noise_settings"){const o=e.get(new q.Path([]));if(o)return w(Xw,{model:e,version:t,shown:i,data:o})}if(n==="worldgen/placed_feature"||n==="worldgen/configured_feature"&&Bt(t,"1.16","1.17")){const o=e.get(new q.Path([]));if(o)return w(jw,{model:e,version:t,shown:i,data:o})}return w(xe,null)}var tp={exports:{}};(function(e,t){(function(i,r){e.exports=r()})(ji,function(){return function(n){var i={};function r(s){if(i[s])return i[s].exports;var o=i[s]={exports:{},id:s,loaded:!1};return n[s].call(o.exports,o,o.exports,r),o.loaded=!0,o.exports}return r.m=n,r.c=i,r.p="",r(0)}([function(n,i,r){Object.defineProperty(i,"__esModule",{value:!0});var s=r(1),o=r(3),a=r(8),l=r(15);function u(_,h,m){var g=null,v=function(B,M){m&&m(B,M),g&&g.visit(B,M)},y=typeof m=="function"?v:null,A=!1;if(h){A=typeof h.comment=="boolean"&&h.comment;var b=typeof h.attachComment=="boolean"&&h.attachComment;(A||b)&&(g=new s.CommentHandler,g.attach=b,h.comment=!0,y=v)}var S=!1;h&&typeof h.sourceType=="string"&&(S=h.sourceType==="module");var D;h&&typeof h.jsx=="boolean"&&h.jsx?D=new o.JSXParser(_,h,y):D=new a.Parser(_,h,y);var k=S?D.parseModule():D.parseScript(),T=k;return A&&g&&(T.comments=g.comments),D.config.tokens&&(T.tokens=D.tokens),D.config.tolerant&&(T.errors=D.errorHandler.errors),T}i.parse=u;function c(_,h,m){var g=h||{};return g.sourceType="module",u(_,g,m)}i.parseModule=c;function p(_,h,m){var g=h||{};return g.sourceType="script",u(_,g,m)}i.parseScript=p;function f(_,h,m){var g=new l.Tokenizer(_,h),v;v=[];try{for(;;){var y=g.getNextToken();if(!y)break;m&&(y=m(y)),v.push(y)}}catch(A){g.errorHandler.tolerate(A)}return g.errorHandler.tolerant&&(v.errors=g.errors()),v}i.tokenize=f;var d=r(2);i.Syntax=d.Syntax,i.version="4.0.1"},function(n,i,r){Object.defineProperty(i,"__esModule",{value:!0});var s=r(2),o=function(){function a(){this.attach=!1,this.comments=[],this.stack=[],this.leading=[],this.trailing=[]}return a.prototype.insertInnerComments=function(l,u){if(l.type===s.Syntax.BlockStatement&&l.body.length===0){for(var c=[],p=this.leading.length-1;p>=0;--p){var f=this.leading[p];u.end.offset>=f.start&&(c.unshift(f.comment),this.leading.splice(p,1),this.trailing.splice(p,1))}c.length&&(l.innerComments=c)}},a.prototype.findTrailingComments=function(l){var u=[];if(this.trailing.length>0){for(var c=this.trailing.length-1;c>=0;--c){var p=this.trailing[c];p.start>=l.end.offset&&u.unshift(p.comment)}return this.trailing.length=0,u}var f=this.stack[this.stack.length-1];if(f&&f.node.trailingComments){var d=f.node.trailingComments[0];d&&d.range[0]>=l.end.offset&&(u=f.node.trailingComments,delete f.node.trailingComments)}return u},a.prototype.findLeadingComments=function(l){for(var u=[],c;this.stack.length>0;){var p=this.stack[this.stack.length-1];if(p&&p.start>=l.start.offset)c=p.node,this.stack.pop();else break}if(c){for(var f=c.leadingComments?c.leadingComments.length:0,d=f-1;d>=0;--d){var _=c.leadingComments[d];_.range[1]<=l.start.offset&&(u.unshift(_),c.leadingComments.splice(d,1))}return c.leadingComments&&c.leadingComments.length===0&&delete c.leadingComments,u}for(var d=this.leading.length-1;d>=0;--d){var p=this.leading[d];p.start<=l.start.offset&&(u.unshift(p.comment),this.leading.splice(d,1))}return u},a.prototype.visitNode=function(l,u){if(!(l.type===s.Syntax.Program&&l.body.length>0)){this.insertInnerComments(l,u);var c=this.findTrailingComments(u),p=this.findLeadingComments(u);p.length>0&&(l.leadingComments=p),c.length>0&&(l.trailingComments=c),this.stack.push({node:l,start:u.start.offset})}},a.prototype.visitComment=function(l,u){var c=l.type[0]==="L"?"Line":"Block",p={type:c,value:l.value};if(l.range&&(p.range=l.range),l.loc&&(p.loc=l.loc),this.comments.push(p),this.attach){var f={comment:{type:c,value:l.value,range:[u.start.offset,u.end.offset]},start:u.start.offset};l.loc&&(f.comment.loc=l.loc),l.type=c,this.leading.push(f),this.trailing.push(f)}},a.prototype.visit=function(l,u){l.type==="LineComment"?this.visitComment(l,u):l.type==="BlockComment"?this.visitComment(l,u):this.attach&&this.visitNode(l,u)},a}();i.CommentHandler=o},function(n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.Syntax={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForOfStatement:"ForOfStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"}},function(n,i,r){var s=this&&this.__extends||function(){var h=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(m,g){m.__proto__=g}||function(m,g){for(var v in g)g.hasOwnProperty(v)&&(m[v]=g[v])};return function(m,g){h(m,g);function v(){this.constructor=m}m.prototype=g===null?Object.create(g):(v.prototype=g.prototype,new v)}}();Object.defineProperty(i,"__esModule",{value:!0});var o=r(4),a=r(5),l=r(6),u=r(7),c=r(8),p=r(13),f=r(14);p.TokenName[100]="JSXIdentifier",p.TokenName[101]="JSXText";function d(h){var m;switch(h.type){case l.JSXSyntax.JSXIdentifier:var g=h;m=g.name;break;case l.JSXSyntax.JSXNamespacedName:var v=h;m=d(v.namespace)+":"+d(v.name);break;case l.JSXSyntax.JSXMemberExpression:var y=h;m=d(y.object)+"."+d(y.property);break}return m}var _=function(h){s(m,h);function m(g,v,y){return h.call(this,g,v,y)||this}return m.prototype.parsePrimaryExpression=function(){return this.match("<")?this.parseJSXRoot():h.prototype.parsePrimaryExpression.call(this)},m.prototype.startJSX=function(){this.scanner.index=this.startMarker.index,this.scanner.lineNumber=this.startMarker.line,this.scanner.lineStart=this.startMarker.index-this.startMarker.column},m.prototype.finishJSX=function(){this.nextToken()},m.prototype.reenterJSX=function(){this.startJSX(),this.expectJSX("}"),this.config.tokens&&this.tokens.pop()},m.prototype.createJSXNode=function(){return this.collectComments(),{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},m.prototype.createJSXChildNode=function(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},m.prototype.scanXHTMLEntity=function(g){for(var v="&",y=!0,A=!1,b=!1,S=!1;!this.scanner.eof()&&y&&!A;){var D=this.scanner.source[this.scanner.index];if(D===g)break;if(A=D===";",v+=D,++this.scanner.index,!A)switch(v.length){case 2:b=D==="#";break;case 3:b&&(S=D==="x",y=S||o.Character.isDecimalDigit(D.charCodeAt(0)),b=b&&!S);break;default:y=y&&!(b&&!o.Character.isDecimalDigit(D.charCodeAt(0))),y=y&&!(S&&!o.Character.isHexDigit(D.charCodeAt(0)));break}}if(y&&A&&v.length>2){var k=v.substr(1,v.length-2);b&&k.length>1?v=String.fromCharCode(parseInt(k.substr(1),10)):S&&k.length>2?v=String.fromCharCode(parseInt("0"+k.substr(1),16)):!b&&!S&&f.XHTMLEntities[k]&&(v=f.XHTMLEntities[k])}return v},m.prototype.lexJSX=function(){var g=this.scanner.source.charCodeAt(this.scanner.index);if(g===60||g===62||g===47||g===58||g===61||g===123||g===125){var v=this.scanner.source[this.scanner.index++];return{type:7,value:v,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index}}if(g===34||g===39){for(var y=this.scanner.index,A=this.scanner.source[this.scanner.index++],b="";!this.scanner.eof();){var S=this.scanner.source[this.scanner.index++];if(S===A)break;S==="&"?b+=this.scanXHTMLEntity(A):b+=S}return{type:8,value:b,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:y,end:this.scanner.index}}if(g===46){var D=this.scanner.source.charCodeAt(this.scanner.index+1),k=this.scanner.source.charCodeAt(this.scanner.index+2),v=D===46&&k===46?"...":".",y=this.scanner.index;return this.scanner.index+=v.length,{type:7,value:v,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:y,end:this.scanner.index}}if(g===96)return{type:10,value:"",lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index,end:this.scanner.index};if(o.Character.isIdentifierStart(g)&&g!==92){var y=this.scanner.index;for(++this.scanner.index;!this.scanner.eof();){var S=this.scanner.source.charCodeAt(this.scanner.index);if(o.Character.isIdentifierPart(S)&&S!==92)++this.scanner.index;else if(S===45)++this.scanner.index;else break}var T=this.scanner.source.slice(y,this.scanner.index);return{type:100,value:T,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:y,end:this.scanner.index}}return this.scanner.lex()},m.prototype.nextJSXToken=function(){this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;var g=this.lexJSX();return this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.config.tokens&&this.tokens.push(this.convertToken(g)),g},m.prototype.nextJSXText=function(){this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;for(var g=this.scanner.index,v="";!this.scanner.eof();){var y=this.scanner.source[this.scanner.index];if(y==="{"||y==="<")break;++this.scanner.index,v+=y,o.Character.isLineTerminator(y.charCodeAt(0))&&(++this.scanner.lineNumber,y==="\r"&&this.scanner.source[this.scanner.index]===` +`&&++this.scanner.index,this.scanner.lineStart=this.scanner.index)}this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart;var A={type:101,value:v,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:g,end:this.scanner.index};return v.length>0&&this.config.tokens&&this.tokens.push(this.convertToken(A)),A},m.prototype.peekJSXToken=function(){var g=this.scanner.saveState();this.scanner.scanComments();var v=this.lexJSX();return this.scanner.restoreState(g),v},m.prototype.expectJSX=function(g){var v=this.nextJSXToken();(v.type!==7||v.value!==g)&&this.throwUnexpectedToken(v)},m.prototype.matchJSX=function(g){var v=this.peekJSXToken();return v.type===7&&v.value===g},m.prototype.parseJSXIdentifier=function(){var g=this.createJSXNode(),v=this.nextJSXToken();return v.type!==100&&this.throwUnexpectedToken(v),this.finalize(g,new a.JSXIdentifier(v.value))},m.prototype.parseJSXElementName=function(){var g=this.createJSXNode(),v=this.parseJSXIdentifier();if(this.matchJSX(":")){var y=v;this.expectJSX(":");var A=this.parseJSXIdentifier();v=this.finalize(g,new a.JSXNamespacedName(y,A))}else if(this.matchJSX("."))for(;this.matchJSX(".");){var b=v;this.expectJSX(".");var S=this.parseJSXIdentifier();v=this.finalize(g,new a.JSXMemberExpression(b,S))}return v},m.prototype.parseJSXAttributeName=function(){var g=this.createJSXNode(),v,y=this.parseJSXIdentifier();if(this.matchJSX(":")){var A=y;this.expectJSX(":");var b=this.parseJSXIdentifier();v=this.finalize(g,new a.JSXNamespacedName(A,b))}else v=y;return v},m.prototype.parseJSXStringLiteralAttribute=function(){var g=this.createJSXNode(),v=this.nextJSXToken();v.type!==8&&this.throwUnexpectedToken(v);var y=this.getTokenRaw(v);return this.finalize(g,new u.Literal(v.value,y))},m.prototype.parseJSXExpressionAttribute=function(){var g=this.createJSXNode();this.expectJSX("{"),this.finishJSX(),this.match("}")&&this.tolerateError("JSX attributes must only be assigned a non-empty expression");var v=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(g,new a.JSXExpressionContainer(v))},m.prototype.parseJSXAttributeValue=function(){return this.matchJSX("{")?this.parseJSXExpressionAttribute():this.matchJSX("<")?this.parseJSXElement():this.parseJSXStringLiteralAttribute()},m.prototype.parseJSXNameValueAttribute=function(){var g=this.createJSXNode(),v=this.parseJSXAttributeName(),y=null;return this.matchJSX("=")&&(this.expectJSX("="),y=this.parseJSXAttributeValue()),this.finalize(g,new a.JSXAttribute(v,y))},m.prototype.parseJSXSpreadAttribute=function(){var g=this.createJSXNode();this.expectJSX("{"),this.expectJSX("..."),this.finishJSX();var v=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(g,new a.JSXSpreadAttribute(v))},m.prototype.parseJSXAttributes=function(){for(var g=[];!this.matchJSX("/")&&!this.matchJSX(">");){var v=this.matchJSX("{")?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute();g.push(v)}return g},m.prototype.parseJSXOpeningElement=function(){var g=this.createJSXNode();this.expectJSX("<");var v=this.parseJSXElementName(),y=this.parseJSXAttributes(),A=this.matchJSX("/");return A&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(g,new a.JSXOpeningElement(v,A,y))},m.prototype.parseJSXBoundaryElement=function(){var g=this.createJSXNode();if(this.expectJSX("<"),this.matchJSX("/")){this.expectJSX("/");var v=this.parseJSXElementName();return this.expectJSX(">"),this.finalize(g,new a.JSXClosingElement(v))}var y=this.parseJSXElementName(),A=this.parseJSXAttributes(),b=this.matchJSX("/");return b&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(g,new a.JSXOpeningElement(y,b,A))},m.prototype.parseJSXEmptyExpression=function(){var g=this.createJSXChildNode();return this.collectComments(),this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.finalize(g,new a.JSXEmptyExpression)},m.prototype.parseJSXExpressionContainer=function(){var g=this.createJSXNode();this.expectJSX("{");var v;return this.matchJSX("}")?(v=this.parseJSXEmptyExpression(),this.expectJSX("}")):(this.finishJSX(),v=this.parseAssignmentExpression(),this.reenterJSX()),this.finalize(g,new a.JSXExpressionContainer(v))},m.prototype.parseJSXChildren=function(){for(var g=[];!this.scanner.eof();){var v=this.createJSXChildNode(),y=this.nextJSXText();if(y.start0){var S=this.finalize(g.node,new a.JSXElement(g.opening,g.children,g.closing));g=v[v.length-1],g.children.push(S),v.pop()}else break}}return g},m.prototype.parseJSXElement=function(){var g=this.createJSXNode(),v=this.parseJSXOpeningElement(),y=[],A=null;if(!v.selfClosing){var b=this.parseComplexJSXElement({node:g,opening:v,closing:A,children:y});y=b.children,A=b.closing}return this.finalize(g,new a.JSXElement(v,y,A))},m.prototype.parseJSXRoot=function(){this.config.tokens&&this.tokens.pop(),this.startJSX();var g=this.parseJSXElement();return this.finishJSX(),g},m.prototype.isStartOfExpression=function(){return h.prototype.isStartOfExpression.call(this)||this.match("<")},m}(c.Parser);i.JSXParser=_},function(n,i){Object.defineProperty(i,"__esModule",{value:!0});var r={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/};i.Character={fromCodePoint:function(s){return s<65536?String.fromCharCode(s):String.fromCharCode(55296+(s-65536>>10))+String.fromCharCode(56320+(s-65536&1023))},isWhiteSpace:function(s){return s===32||s===9||s===11||s===12||s===160||s>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(s)>=0},isLineTerminator:function(s){return s===10||s===13||s===8232||s===8233},isIdentifierStart:function(s){return s===36||s===95||s>=65&&s<=90||s>=97&&s<=122||s===92||s>=128&&r.NonAsciiIdentifierStart.test(i.Character.fromCodePoint(s))},isIdentifierPart:function(s){return s===36||s===95||s>=65&&s<=90||s>=97&&s<=122||s>=48&&s<=57||s===92||s>=128&&r.NonAsciiIdentifierPart.test(i.Character.fromCodePoint(s))},isDecimalDigit:function(s){return s>=48&&s<=57},isHexDigit:function(s){return s>=48&&s<=57||s>=65&&s<=70||s>=97&&s<=102},isOctalDigit:function(s){return s>=48&&s<=55}}},function(n,i,r){Object.defineProperty(i,"__esModule",{value:!0});var s=r(6),o=function(){function g(v){this.type=s.JSXSyntax.JSXClosingElement,this.name=v}return g}();i.JSXClosingElement=o;var a=function(){function g(v,y,A){this.type=s.JSXSyntax.JSXElement,this.openingElement=v,this.children=y,this.closingElement=A}return g}();i.JSXElement=a;var l=function(){function g(){this.type=s.JSXSyntax.JSXEmptyExpression}return g}();i.JSXEmptyExpression=l;var u=function(){function g(v){this.type=s.JSXSyntax.JSXExpressionContainer,this.expression=v}return g}();i.JSXExpressionContainer=u;var c=function(){function g(v){this.type=s.JSXSyntax.JSXIdentifier,this.name=v}return g}();i.JSXIdentifier=c;var p=function(){function g(v,y){this.type=s.JSXSyntax.JSXMemberExpression,this.object=v,this.property=y}return g}();i.JSXMemberExpression=p;var f=function(){function g(v,y){this.type=s.JSXSyntax.JSXAttribute,this.name=v,this.value=y}return g}();i.JSXAttribute=f;var d=function(){function g(v,y){this.type=s.JSXSyntax.JSXNamespacedName,this.namespace=v,this.name=y}return g}();i.JSXNamespacedName=d;var _=function(){function g(v,y,A){this.type=s.JSXSyntax.JSXOpeningElement,this.name=v,this.selfClosing=y,this.attributes=A}return g}();i.JSXOpeningElement=_;var h=function(){function g(v){this.type=s.JSXSyntax.JSXSpreadAttribute,this.argument=v}return g}();i.JSXSpreadAttribute=h;var m=function(){function g(v,y){this.type=s.JSXSyntax.JSXText,this.value=v,this.raw=y}return g}();i.JSXText=m},function(n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.JSXSyntax={JSXAttribute:"JSXAttribute",JSXClosingElement:"JSXClosingElement",JSXElement:"JSXElement",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXIdentifier:"JSXIdentifier",JSXMemberExpression:"JSXMemberExpression",JSXNamespacedName:"JSXNamespacedName",JSXOpeningElement:"JSXOpeningElement",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText"}},function(n,i,r){Object.defineProperty(i,"__esModule",{value:!0});var s=r(2),o=function(){function R(P){this.type=s.Syntax.ArrayExpression,this.elements=P}return R}();i.ArrayExpression=o;var a=function(){function R(P){this.type=s.Syntax.ArrayPattern,this.elements=P}return R}();i.ArrayPattern=a;var l=function(){function R(P,V,Ee){this.type=s.Syntax.ArrowFunctionExpression,this.id=null,this.params=P,this.body=V,this.generator=!1,this.expression=Ee,this.async=!1}return R}();i.ArrowFunctionExpression=l;var u=function(){function R(P,V,Ee){this.type=s.Syntax.AssignmentExpression,this.operator=P,this.left=V,this.right=Ee}return R}();i.AssignmentExpression=u;var c=function(){function R(P,V){this.type=s.Syntax.AssignmentPattern,this.left=P,this.right=V}return R}();i.AssignmentPattern=c;var p=function(){function R(P,V,Ee){this.type=s.Syntax.ArrowFunctionExpression,this.id=null,this.params=P,this.body=V,this.generator=!1,this.expression=Ee,this.async=!0}return R}();i.AsyncArrowFunctionExpression=p;var f=function(){function R(P,V,Ee){this.type=s.Syntax.FunctionDeclaration,this.id=P,this.params=V,this.body=Ee,this.generator=!1,this.expression=!1,this.async=!0}return R}();i.AsyncFunctionDeclaration=f;var d=function(){function R(P,V,Ee){this.type=s.Syntax.FunctionExpression,this.id=P,this.params=V,this.body=Ee,this.generator=!1,this.expression=!1,this.async=!0}return R}();i.AsyncFunctionExpression=d;var _=function(){function R(P){this.type=s.Syntax.AwaitExpression,this.argument=P}return R}();i.AwaitExpression=_;var h=function(){function R(P,V,Ee){var Mt=P==="||"||P==="&&";this.type=Mt?s.Syntax.LogicalExpression:s.Syntax.BinaryExpression,this.operator=P,this.left=V,this.right=Ee}return R}();i.BinaryExpression=h;var m=function(){function R(P){this.type=s.Syntax.BlockStatement,this.body=P}return R}();i.BlockStatement=m;var g=function(){function R(P){this.type=s.Syntax.BreakStatement,this.label=P}return R}();i.BreakStatement=g;var v=function(){function R(P,V){this.type=s.Syntax.CallExpression,this.callee=P,this.arguments=V}return R}();i.CallExpression=v;var y=function(){function R(P,V){this.type=s.Syntax.CatchClause,this.param=P,this.body=V}return R}();i.CatchClause=y;var A=function(){function R(P){this.type=s.Syntax.ClassBody,this.body=P}return R}();i.ClassBody=A;var b=function(){function R(P,V,Ee){this.type=s.Syntax.ClassDeclaration,this.id=P,this.superClass=V,this.body=Ee}return R}();i.ClassDeclaration=b;var S=function(){function R(P,V,Ee){this.type=s.Syntax.ClassExpression,this.id=P,this.superClass=V,this.body=Ee}return R}();i.ClassExpression=S;var D=function(){function R(P,V){this.type=s.Syntax.MemberExpression,this.computed=!0,this.object=P,this.property=V}return R}();i.ComputedMemberExpression=D;var k=function(){function R(P,V,Ee){this.type=s.Syntax.ConditionalExpression,this.test=P,this.consequent=V,this.alternate=Ee}return R}();i.ConditionalExpression=k;var T=function(){function R(P){this.type=s.Syntax.ContinueStatement,this.label=P}return R}();i.ContinueStatement=T;var B=function(){function R(){this.type=s.Syntax.DebuggerStatement}return R}();i.DebuggerStatement=B;var M=function(){function R(P,V){this.type=s.Syntax.ExpressionStatement,this.expression=P,this.directive=V}return R}();i.Directive=M;var U=function(){function R(P,V){this.type=s.Syntax.DoWhileStatement,this.body=P,this.test=V}return R}();i.DoWhileStatement=U;var H=function(){function R(){this.type=s.Syntax.EmptyStatement}return R}();i.EmptyStatement=H;var Q=function(){function R(P){this.type=s.Syntax.ExportAllDeclaration,this.source=P}return R}();i.ExportAllDeclaration=Q;var te=function(){function R(P){this.type=s.Syntax.ExportDefaultDeclaration,this.declaration=P}return R}();i.ExportDefaultDeclaration=te;var $=function(){function R(P,V,Ee){this.type=s.Syntax.ExportNamedDeclaration,this.declaration=P,this.specifiers=V,this.source=Ee}return R}();i.ExportNamedDeclaration=$;var X=function(){function R(P,V){this.type=s.Syntax.ExportSpecifier,this.exported=V,this.local=P}return R}();i.ExportSpecifier=X;var ie=function(){function R(P){this.type=s.Syntax.ExpressionStatement,this.expression=P}return R}();i.ExpressionStatement=ie;var ae=function(){function R(P,V,Ee){this.type=s.Syntax.ForInStatement,this.left=P,this.right=V,this.body=Ee,this.each=!1}return R}();i.ForInStatement=ae;var j=function(){function R(P,V,Ee){this.type=s.Syntax.ForOfStatement,this.left=P,this.right=V,this.body=Ee}return R}();i.ForOfStatement=j;var I=function(){function R(P,V,Ee,Mt){this.type=s.Syntax.ForStatement,this.init=P,this.test=V,this.update=Ee,this.body=Mt}return R}();i.ForStatement=I;var O=function(){function R(P,V,Ee,Mt){this.type=s.Syntax.FunctionDeclaration,this.id=P,this.params=V,this.body=Ee,this.generator=Mt,this.expression=!1,this.async=!1}return R}();i.FunctionDeclaration=O;var Z=function(){function R(P,V,Ee,Mt){this.type=s.Syntax.FunctionExpression,this.id=P,this.params=V,this.body=Ee,this.generator=Mt,this.expression=!1,this.async=!1}return R}();i.FunctionExpression=Z;var K=function(){function R(P){this.type=s.Syntax.Identifier,this.name=P}return R}();i.Identifier=K;var pe=function(){function R(P,V,Ee){this.type=s.Syntax.IfStatement,this.test=P,this.consequent=V,this.alternate=Ee}return R}();i.IfStatement=pe;var Me=function(){function R(P,V){this.type=s.Syntax.ImportDeclaration,this.specifiers=P,this.source=V}return R}();i.ImportDeclaration=Me;var tt=function(){function R(P){this.type=s.Syntax.ImportDefaultSpecifier,this.local=P}return R}();i.ImportDefaultSpecifier=tt;var vt=function(){function R(P){this.type=s.Syntax.ImportNamespaceSpecifier,this.local=P}return R}();i.ImportNamespaceSpecifier=vt;var Ze=function(){function R(P,V){this.type=s.Syntax.ImportSpecifier,this.local=P,this.imported=V}return R}();i.ImportSpecifier=Ze;var nt=function(){function R(P,V){this.type=s.Syntax.LabeledStatement,this.label=P,this.body=V}return R}();i.LabeledStatement=nt;var Ke=function(){function R(P,V){this.type=s.Syntax.Literal,this.value=P,this.raw=V}return R}();i.Literal=Ke;var xt=function(){function R(P,V){this.type=s.Syntax.MetaProperty,this.meta=P,this.property=V}return R}();i.MetaProperty=xt;var yt=function(){function R(P,V,Ee,Mt,Zo){this.type=s.Syntax.MethodDefinition,this.key=P,this.computed=V,this.value=Ee,this.kind=Mt,this.static=Zo}return R}();i.MethodDefinition=yt;var Ve=function(){function R(P){this.type=s.Syntax.Program,this.body=P,this.sourceType="module"}return R}();i.Module=Ve;var Ct=function(){function R(P,V){this.type=s.Syntax.NewExpression,this.callee=P,this.arguments=V}return R}();i.NewExpression=Ct;var Ut=function(){function R(P){this.type=s.Syntax.ObjectExpression,this.properties=P}return R}();i.ObjectExpression=Ut;var ce=function(){function R(P){this.type=s.Syntax.ObjectPattern,this.properties=P}return R}();i.ObjectPattern=ce;var jt=function(){function R(P,V,Ee,Mt,Zo,d1){this.type=s.Syntax.Property,this.key=V,this.computed=Ee,this.value=Mt,this.kind=P,this.method=Zo,this.shorthand=d1}return R}();i.Property=jt;var De=function(){function R(P,V,Ee,Mt){this.type=s.Syntax.Literal,this.value=P,this.raw=V,this.regex={pattern:Ee,flags:Mt}}return R}();i.RegexLiteral=De;var Se=function(){function R(P){this.type=s.Syntax.RestElement,this.argument=P}return R}();i.RestElement=Se;var wt=function(){function R(P){this.type=s.Syntax.ReturnStatement,this.argument=P}return R}();i.ReturnStatement=wt;var ee=function(){function R(P){this.type=s.Syntax.Program,this.body=P,this.sourceType="script"}return R}();i.Script=ee;var At=function(){function R(P){this.type=s.Syntax.SequenceExpression,this.expressions=P}return R}();i.SequenceExpression=At;var an=function(){function R(P){this.type=s.Syntax.SpreadElement,this.argument=P}return R}();i.SpreadElement=an;var G=function(){function R(P,V){this.type=s.Syntax.MemberExpression,this.computed=!1,this.object=P,this.property=V}return R}();i.StaticMemberExpression=G;var oe=function(){function R(){this.type=s.Syntax.Super}return R}();i.Super=oe;var C=function(){function R(P,V){this.type=s.Syntax.SwitchCase,this.test=P,this.consequent=V}return R}();i.SwitchCase=C;var x=function(){function R(P,V){this.type=s.Syntax.SwitchStatement,this.discriminant=P,this.cases=V}return R}();i.SwitchStatement=x;var E=function(){function R(P,V){this.type=s.Syntax.TaggedTemplateExpression,this.tag=P,this.quasi=V}return R}();i.TaggedTemplateExpression=E;var F=function(){function R(P,V){this.type=s.Syntax.TemplateElement,this.value=P,this.tail=V}return R}();i.TemplateElement=F;var N=function(){function R(P,V){this.type=s.Syntax.TemplateLiteral,this.quasis=P,this.expressions=V}return R}();i.TemplateLiteral=N;var L=function(){function R(){this.type=s.Syntax.ThisExpression}return R}();i.ThisExpression=L;var z=function(){function R(P){this.type=s.Syntax.ThrowStatement,this.argument=P}return R}();i.ThrowStatement=z;var ye=function(){function R(P,V,Ee){this.type=s.Syntax.TryStatement,this.block=P,this.handler=V,this.finalizer=Ee}return R}();i.TryStatement=ye;var Le=function(){function R(P,V){this.type=s.Syntax.UnaryExpression,this.operator=P,this.argument=V,this.prefix=!0}return R}();i.UnaryExpression=Le;var Oe=function(){function R(P,V,Ee){this.type=s.Syntax.UpdateExpression,this.operator=P,this.argument=V,this.prefix=Ee}return R}();i.UpdateExpression=Oe;var Ue=function(){function R(P,V){this.type=s.Syntax.VariableDeclaration,this.declarations=P,this.kind=V}return R}();i.VariableDeclaration=Ue;var Ie=function(){function R(P,V){this.type=s.Syntax.VariableDeclarator,this.id=P,this.init=V}return R}();i.VariableDeclarator=Ie;var re=function(){function R(P,V){this.type=s.Syntax.WhileStatement,this.test=P,this.body=V}return R}();i.WhileStatement=re;var Re=function(){function R(P,V){this.type=s.Syntax.WithStatement,this.object=P,this.body=V}return R}();i.WithStatement=Re;var ui=function(){function R(P,V){this.type=s.Syntax.YieldExpression,this.argument=P,this.delegate=V}return R}();i.YieldExpression=ui},function(n,i,r){Object.defineProperty(i,"__esModule",{value:!0});var s=r(9),o=r(10),a=r(11),l=r(7),u=r(12),c=r(2),p=r(13),f="ArrowParameterPlaceHolder",d=function(){function _(h,m,g){m===void 0&&(m={}),this.config={range:typeof m.range=="boolean"&&m.range,loc:typeof m.loc=="boolean"&&m.loc,source:null,tokens:typeof m.tokens=="boolean"&&m.tokens,comment:typeof m.comment=="boolean"&&m.comment,tolerant:typeof m.tolerant=="boolean"&&m.tolerant},this.config.loc&&m.source&&m.source!==null&&(this.config.source=String(m.source)),this.delegate=g,this.errorHandler=new o.ErrorHandler,this.errorHandler.tolerant=this.config.tolerant,this.scanner=new u.Scanner(h,this.errorHandler),this.scanner.trackComment=this.config.comment,this.operatorPrecedence={")":0,";":0,",":0,"=":0,"]":0,"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":11,"/":11,"%":11},this.lookahead={type:2,value:"",lineNumber:this.scanner.lineNumber,lineStart:0,start:0,end:0},this.hasLineTerminator=!1,this.context={isModule:!1,await:!1,allowIn:!0,allowStrictDirective:!0,allowYield:!0,firstCoverInitializedNameError:null,isAssignmentTarget:!1,isBindingElement:!1,inFunctionBody:!1,inIteration:!1,inSwitch:!1,labelSet:{},strict:!1},this.tokens=[],this.startMarker={index:0,line:this.scanner.lineNumber,column:0},this.lastMarker={index:0,line:this.scanner.lineNumber,column:0},this.nextToken(),this.lastMarker={index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}return _.prototype.throwError=function(h){for(var m=[],g=1;g0&&this.delegate)for(var m=0;m>="||h===">>>="||h==="&="||h==="^="||h==="|="},_.prototype.isolateCoverGrammar=function(h){var m=this.context.isBindingElement,g=this.context.isAssignmentTarget,v=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var y=h.call(this);return this.context.firstCoverInitializedNameError!==null&&this.throwUnexpectedToken(this.context.firstCoverInitializedNameError),this.context.isBindingElement=m,this.context.isAssignmentTarget=g,this.context.firstCoverInitializedNameError=v,y},_.prototype.inheritCoverGrammar=function(h){var m=this.context.isBindingElement,g=this.context.isAssignmentTarget,v=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var y=h.call(this);return this.context.isBindingElement=this.context.isBindingElement&&m,this.context.isAssignmentTarget=this.context.isAssignmentTarget&&g,this.context.firstCoverInitializedNameError=v||this.context.firstCoverInitializedNameError,y},_.prototype.consumeSemicolon=function(){this.match(";")?this.nextToken():this.hasLineTerminator||(this.lookahead.type!==2&&!this.match("}")&&this.throwUnexpectedToken(this.lookahead),this.lastMarker.index=this.startMarker.index,this.lastMarker.line=this.startMarker.line,this.lastMarker.column=this.startMarker.column)},_.prototype.parsePrimaryExpression=function(){var h=this.createNode(),m,g,v;switch(this.lookahead.type){case 3:(this.context.isModule||this.context.await)&&this.lookahead.value==="await"&&this.tolerateUnexpectedToken(this.lookahead),m=this.matchAsyncFunction()?this.parseFunctionExpression():this.finalize(h,new l.Identifier(this.nextToken().value));break;case 6:case 8:this.context.strict&&this.lookahead.octal&&this.tolerateUnexpectedToken(this.lookahead,a.Messages.StrictOctalLiteral),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,g=this.nextToken(),v=this.getTokenRaw(g),m=this.finalize(h,new l.Literal(g.value,v));break;case 1:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,g=this.nextToken(),v=this.getTokenRaw(g),m=this.finalize(h,new l.Literal(g.value==="true",v));break;case 5:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,g=this.nextToken(),v=this.getTokenRaw(g),m=this.finalize(h,new l.Literal(null,v));break;case 10:m=this.parseTemplateLiteral();break;case 7:switch(this.lookahead.value){case"(":this.context.isBindingElement=!1,m=this.inheritCoverGrammar(this.parseGroupExpression);break;case"[":m=this.inheritCoverGrammar(this.parseArrayInitializer);break;case"{":m=this.inheritCoverGrammar(this.parseObjectInitializer);break;case"/":case"/=":this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.scanner.index=this.startMarker.index,g=this.nextRegexToken(),v=this.getTokenRaw(g),m=this.finalize(h,new l.RegexLiteral(g.regex,v,g.pattern,g.flags));break;default:m=this.throwUnexpectedToken(this.nextToken())}break;case 4:!this.context.strict&&this.context.allowYield&&this.matchKeyword("yield")?m=this.parseIdentifierName():!this.context.strict&&this.matchKeyword("let")?m=this.finalize(h,new l.Identifier(this.nextToken().value)):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.matchKeyword("function")?m=this.parseFunctionExpression():this.matchKeyword("this")?(this.nextToken(),m=this.finalize(h,new l.ThisExpression)):this.matchKeyword("class")?m=this.parseClassExpression():m=this.throwUnexpectedToken(this.nextToken()));break;default:m=this.throwUnexpectedToken(this.nextToken())}return m},_.prototype.parseSpreadElement=function(){var h=this.createNode();this.expect("...");var m=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(h,new l.SpreadElement(m))},_.prototype.parseArrayInitializer=function(){var h=this.createNode(),m=[];for(this.expect("[");!this.match("]");)if(this.match(","))this.nextToken(),m.push(null);else if(this.match("...")){var g=this.parseSpreadElement();this.match("]")||(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.expect(",")),m.push(g)}else m.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.match("]")||this.expect(",");return this.expect("]"),this.finalize(h,new l.ArrayExpression(m))},_.prototype.parsePropertyMethod=function(h){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var m=this.context.strict,g=this.context.allowStrictDirective;this.context.allowStrictDirective=h.simple;var v=this.isolateCoverGrammar(this.parseFunctionSourceElements);return this.context.strict&&h.firstRestricted&&this.tolerateUnexpectedToken(h.firstRestricted,h.message),this.context.strict&&h.stricted&&this.tolerateUnexpectedToken(h.stricted,h.message),this.context.strict=m,this.context.allowStrictDirective=g,v},_.prototype.parsePropertyMethodFunction=function(){var h=!1,m=this.createNode(),g=this.context.allowYield;this.context.allowYield=!0;var v=this.parseFormalParameters(),y=this.parsePropertyMethod(v);return this.context.allowYield=g,this.finalize(m,new l.FunctionExpression(null,v.params,y,h))},_.prototype.parsePropertyMethodAsyncFunction=function(){var h=this.createNode(),m=this.context.allowYield,g=this.context.await;this.context.allowYield=!1,this.context.await=!0;var v=this.parseFormalParameters(),y=this.parsePropertyMethod(v);return this.context.allowYield=m,this.context.await=g,this.finalize(h,new l.AsyncFunctionExpression(null,v.params,y))},_.prototype.parseObjectPropertyKey=function(){var h=this.createNode(),m=this.nextToken(),g;switch(m.type){case 8:case 6:this.context.strict&&m.octal&&this.tolerateUnexpectedToken(m,a.Messages.StrictOctalLiteral);var v=this.getTokenRaw(m);g=this.finalize(h,new l.Literal(m.value,v));break;case 3:case 1:case 5:case 4:g=this.finalize(h,new l.Identifier(m.value));break;case 7:m.value==="["?(g=this.isolateCoverGrammar(this.parseAssignmentExpression),this.expect("]")):g=this.throwUnexpectedToken(m);break;default:g=this.throwUnexpectedToken(m)}return g},_.prototype.isPropertyKey=function(h,m){return h.type===c.Syntax.Identifier&&h.name===m||h.type===c.Syntax.Literal&&h.value===m},_.prototype.parseObjectProperty=function(h){var m=this.createNode(),g=this.lookahead,v,y=null,A=null,b=!1,S=!1,D=!1,k=!1;if(g.type===3){var T=g.value;this.nextToken(),b=this.match("["),k=!this.hasLineTerminator&&T==="async"&&!this.match(":")&&!this.match("(")&&!this.match("*")&&!this.match(","),y=k?this.parseObjectPropertyKey():this.finalize(m,new l.Identifier(T))}else this.match("*")?this.nextToken():(b=this.match("["),y=this.parseObjectPropertyKey());var B=this.qualifiedPropertyName(this.lookahead);if(g.type===3&&!k&&g.value==="get"&&B)v="get",b=this.match("["),y=this.parseObjectPropertyKey(),this.context.allowYield=!1,A=this.parseGetterMethod();else if(g.type===3&&!k&&g.value==="set"&&B)v="set",b=this.match("["),y=this.parseObjectPropertyKey(),A=this.parseSetterMethod();else if(g.type===7&&g.value==="*"&&B)v="init",b=this.match("["),y=this.parseObjectPropertyKey(),A=this.parseGeneratorMethod(),S=!0;else if(y||this.throwUnexpectedToken(this.lookahead),v="init",this.match(":")&&!k)!b&&this.isPropertyKey(y,"__proto__")&&(h.value&&this.tolerateError(a.Messages.DuplicateProtoProperty),h.value=!0),this.nextToken(),A=this.inheritCoverGrammar(this.parseAssignmentExpression);else if(this.match("("))A=k?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),S=!0;else if(g.type===3){var T=this.finalize(m,new l.Identifier(g.value));if(this.match("=")){this.context.firstCoverInitializedNameError=this.lookahead,this.nextToken(),D=!0;var M=this.isolateCoverGrammar(this.parseAssignmentExpression);A=this.finalize(m,new l.AssignmentPattern(T,M))}else D=!0,A=T}else this.throwUnexpectedToken(this.nextToken());return this.finalize(m,new l.Property(v,y,b,A,S,D))},_.prototype.parseObjectInitializer=function(){var h=this.createNode();this.expect("{");for(var m=[],g={value:!1};!this.match("}");)m.push(this.parseObjectProperty(g)),this.match("}")||this.expectCommaSeparator();return this.expect("}"),this.finalize(h,new l.ObjectExpression(m))},_.prototype.parseTemplateHead=function(){s.assert(this.lookahead.head,"Template literal must start with a template head");var h=this.createNode(),m=this.nextToken(),g=m.value,v=m.cooked;return this.finalize(h,new l.TemplateElement({raw:g,cooked:v},m.tail))},_.prototype.parseTemplateElement=function(){this.lookahead.type!==10&&this.throwUnexpectedToken();var h=this.createNode(),m=this.nextToken(),g=m.value,v=m.cooked;return this.finalize(h,new l.TemplateElement({raw:g,cooked:v},m.tail))},_.prototype.parseTemplateLiteral=function(){var h=this.createNode(),m=[],g=[],v=this.parseTemplateHead();for(g.push(v);!v.tail;)m.push(this.parseExpression()),v=this.parseTemplateElement(),g.push(v);return this.finalize(h,new l.TemplateLiteral(g,m))},_.prototype.reinterpretExpressionAsPattern=function(h){switch(h.type){case c.Syntax.Identifier:case c.Syntax.MemberExpression:case c.Syntax.RestElement:case c.Syntax.AssignmentPattern:break;case c.Syntax.SpreadElement:h.type=c.Syntax.RestElement,this.reinterpretExpressionAsPattern(h.argument);break;case c.Syntax.ArrayExpression:h.type=c.Syntax.ArrayPattern;for(var m=0;m")||this.expect("=>"),h={type:f,params:[],async:!1};else{var m=this.lookahead,g=[];if(this.match("..."))h=this.parseRestElement(g),this.expect(")"),this.match("=>")||this.expect("=>"),h={type:f,params:[h],async:!1};else{var v=!1;if(this.context.isBindingElement=!0,h=this.inheritCoverGrammar(this.parseAssignmentExpression),this.match(",")){var y=[];for(this.context.isAssignmentTarget=!1,y.push(h);this.lookahead.type!==2&&this.match(",");){if(this.nextToken(),this.match(")")){this.nextToken();for(var A=0;A")||this.expect("=>"),this.context.isBindingElement=!1;for(var A=0;A")&&(h.type===c.Syntax.Identifier&&h.name==="yield"&&(v=!0,h={type:f,params:[h],async:!1}),!v)){if(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),h.type===c.Syntax.SequenceExpression)for(var A=0;A")){for(var S=0;S0){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;for(var y=[h,this.lookahead],A=m,b=this.isolateCoverGrammar(this.parseExponentiationExpression),S=[A,g.value,b],D=[v];v=this.binaryPrecedence(this.lookahead),!(v<=0);){for(;S.length>2&&v<=D[D.length-1];){b=S.pop();var k=S.pop();D.pop(),A=S.pop(),y.pop();var T=this.startNode(y[y.length-1]);S.push(this.finalize(T,new l.BinaryExpression(k,A,b)))}S.push(this.nextToken().value),D.push(v),y.push(this.lookahead),S.push(this.isolateCoverGrammar(this.parseExponentiationExpression))}var B=S.length-1;m=S[B];for(var M=y.pop();B>1;){var U=y.pop(),H=M&&M.lineStart,T=this.startNode(U,H),k=S[B-1];m=this.finalize(T,new l.BinaryExpression(k,S[B-2],m)),B-=2,M=U}}return m},_.prototype.parseConditionalExpression=function(){var h=this.lookahead,m=this.inheritCoverGrammar(this.parseBinaryExpression);if(this.match("?")){this.nextToken();var g=this.context.allowIn;this.context.allowIn=!0;var v=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=g,this.expect(":");var y=this.isolateCoverGrammar(this.parseAssignmentExpression);m=this.finalize(this.startNode(h),new l.ConditionalExpression(m,v,y)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return m},_.prototype.checkPatternParam=function(h,m){switch(m.type){case c.Syntax.Identifier:this.validateParam(h,m,m.name);break;case c.Syntax.RestElement:this.checkPatternParam(h,m.argument);break;case c.Syntax.AssignmentPattern:this.checkPatternParam(h,m.left);break;case c.Syntax.ArrayPattern:for(var g=0;g")){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var y=h.async,A=this.reinterpretAsCoverFormalsList(h);if(A){this.hasLineTerminator&&this.tolerateUnexpectedToken(this.lookahead),this.context.firstCoverInitializedNameError=null;var b=this.context.strict,S=this.context.allowStrictDirective;this.context.allowStrictDirective=A.simple;var D=this.context.allowYield,k=this.context.await;this.context.allowYield=!0,this.context.await=y;var T=this.startNode(m);this.expect("=>");var B=void 0;if(this.match("{")){var M=this.context.allowIn;this.context.allowIn=!0,B=this.parseFunctionSourceElements(),this.context.allowIn=M}else B=this.isolateCoverGrammar(this.parseAssignmentExpression);var U=B.type!==c.Syntax.BlockStatement;this.context.strict&&A.firstRestricted&&this.throwUnexpectedToken(A.firstRestricted,A.message),this.context.strict&&A.stricted&&this.tolerateUnexpectedToken(A.stricted,A.message),h=y?this.finalize(T,new l.AsyncArrowFunctionExpression(A.params,B,U)):this.finalize(T,new l.ArrowFunctionExpression(A.params,B,U)),this.context.strict=b,this.context.allowStrictDirective=S,this.context.allowYield=D,this.context.await=k}}else if(this.matchAssign()){if(this.context.isAssignmentTarget||this.tolerateError(a.Messages.InvalidLHSInAssignment),this.context.strict&&h.type===c.Syntax.Identifier){var H=h;this.scanner.isRestrictedWord(H.name)&&this.tolerateUnexpectedToken(g,a.Messages.StrictLHSAssignment),this.scanner.isStrictModeReservedWord(H.name)&&this.tolerateUnexpectedToken(g,a.Messages.StrictReservedWord)}this.match("=")?this.reinterpretExpressionAsPattern(h):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1),g=this.nextToken();var Q=g.value,te=this.isolateCoverGrammar(this.parseAssignmentExpression);h=this.finalize(this.startNode(m),new l.AssignmentExpression(Q,h,te)),this.context.firstCoverInitializedNameError=null}}return h},_.prototype.parseExpression=function(){var h=this.lookahead,m=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){var g=[];for(g.push(m);this.lookahead.type!==2&&this.match(",");)this.nextToken(),g.push(this.isolateCoverGrammar(this.parseAssignmentExpression));m=this.finalize(this.startNode(h),new l.SequenceExpression(g))}return m},_.prototype.parseStatementListItem=function(){var h;if(this.context.isAssignmentTarget=!0,this.context.isBindingElement=!0,this.lookahead.type===4)switch(this.lookahead.value){case"export":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,a.Messages.IllegalExportDeclaration),h=this.parseExportDeclaration();break;case"import":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,a.Messages.IllegalImportDeclaration),h=this.parseImportDeclaration();break;case"const":h=this.parseLexicalDeclaration({inFor:!1});break;case"function":h=this.parseFunctionDeclaration();break;case"class":h=this.parseClassDeclaration();break;case"let":h=this.isLexicalDeclaration()?this.parseLexicalDeclaration({inFor:!1}):this.parseStatement();break;default:h=this.parseStatement();break}else h=this.parseStatement();return h},_.prototype.parseBlock=function(){var h=this.createNode();this.expect("{");for(var m=[];!this.match("}");)m.push(this.parseStatementListItem());return this.expect("}"),this.finalize(h,new l.BlockStatement(m))},_.prototype.parseLexicalBinding=function(h,m){var g=this.createNode(),v=[],y=this.parsePattern(v,h);this.context.strict&&y.type===c.Syntax.Identifier&&this.scanner.isRestrictedWord(y.name)&&this.tolerateError(a.Messages.StrictVarName);var A=null;return h==="const"?!this.matchKeyword("in")&&!this.matchContextualKeyword("of")&&(this.match("=")?(this.nextToken(),A=this.isolateCoverGrammar(this.parseAssignmentExpression)):this.throwError(a.Messages.DeclarationMissingInitializer,"const")):(!m.inFor&&y.type!==c.Syntax.Identifier||this.match("="))&&(this.expect("="),A=this.isolateCoverGrammar(this.parseAssignmentExpression)),this.finalize(g,new l.VariableDeclarator(y,A))},_.prototype.parseBindingList=function(h,m){for(var g=[this.parseLexicalBinding(h,m)];this.match(",");)this.nextToken(),g.push(this.parseLexicalBinding(h,m));return g},_.prototype.isLexicalDeclaration=function(){var h=this.scanner.saveState();this.scanner.scanComments();var m=this.scanner.lex();return this.scanner.restoreState(h),m.type===3||m.type===7&&m.value==="["||m.type===7&&m.value==="{"||m.type===4&&m.value==="let"||m.type===4&&m.value==="yield"},_.prototype.parseLexicalDeclaration=function(h){var m=this.createNode(),g=this.nextToken().value;s.assert(g==="let"||g==="const","Lexical declaration must be either let or const");var v=this.parseBindingList(g,h);return this.consumeSemicolon(),this.finalize(m,new l.VariableDeclaration(v,g))},_.prototype.parseBindingRestElement=function(h,m){var g=this.createNode();this.expect("...");var v=this.parsePattern(h,m);return this.finalize(g,new l.RestElement(v))},_.prototype.parseArrayPattern=function(h,m){var g=this.createNode();this.expect("[");for(var v=[];!this.match("]");)if(this.match(","))this.nextToken(),v.push(null);else{if(this.match("...")){v.push(this.parseBindingRestElement(h,m));break}else v.push(this.parsePatternWithDefault(h,m));this.match("]")||this.expect(",")}return this.expect("]"),this.finalize(g,new l.ArrayPattern(v))},_.prototype.parsePropertyPattern=function(h,m){var g=this.createNode(),v=!1,y=!1,A=!1,b,S;if(this.lookahead.type===3){var D=this.lookahead;b=this.parseVariableIdentifier();var k=this.finalize(g,new l.Identifier(D.value));if(this.match("=")){h.push(D),y=!0,this.nextToken();var T=this.parseAssignmentExpression();S=this.finalize(this.startNode(D),new l.AssignmentPattern(k,T))}else this.match(":")?(this.expect(":"),S=this.parsePatternWithDefault(h,m)):(h.push(D),y=!0,S=k)}else v=this.match("["),b=this.parseObjectPropertyKey(),this.expect(":"),S=this.parsePatternWithDefault(h,m);return this.finalize(g,new l.Property("init",b,v,S,A,y))},_.prototype.parseObjectPattern=function(h,m){var g=this.createNode(),v=[];for(this.expect("{");!this.match("}");)v.push(this.parsePropertyPattern(h,m)),this.match("}")||this.expect(",");return this.expect("}"),this.finalize(g,new l.ObjectPattern(v))},_.prototype.parsePattern=function(h,m){var g;return this.match("[")?g=this.parseArrayPattern(h,m):this.match("{")?g=this.parseObjectPattern(h,m):(this.matchKeyword("let")&&(m==="const"||m==="let")&&this.tolerateUnexpectedToken(this.lookahead,a.Messages.LetInLexicalBinding),h.push(this.lookahead),g=this.parseVariableIdentifier(m)),g},_.prototype.parsePatternWithDefault=function(h,m){var g=this.lookahead,v=this.parsePattern(h,m);if(this.match("=")){this.nextToken();var y=this.context.allowYield;this.context.allowYield=!0;var A=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowYield=y,v=this.finalize(this.startNode(g),new l.AssignmentPattern(v,A))}return v},_.prototype.parseVariableIdentifier=function(h){var m=this.createNode(),g=this.nextToken();return g.type===4&&g.value==="yield"?this.context.strict?this.tolerateUnexpectedToken(g,a.Messages.StrictReservedWord):this.context.allowYield||this.throwUnexpectedToken(g):g.type!==3?this.context.strict&&g.type===4&&this.scanner.isStrictModeReservedWord(g.value)?this.tolerateUnexpectedToken(g,a.Messages.StrictReservedWord):(this.context.strict||g.value!=="let"||h!=="var")&&this.throwUnexpectedToken(g):(this.context.isModule||this.context.await)&&g.type===3&&g.value==="await"&&this.tolerateUnexpectedToken(g),this.finalize(m,new l.Identifier(g.value))},_.prototype.parseVariableDeclaration=function(h){var m=this.createNode(),g=[],v=this.parsePattern(g,"var");this.context.strict&&v.type===c.Syntax.Identifier&&this.scanner.isRestrictedWord(v.name)&&this.tolerateError(a.Messages.StrictVarName);var y=null;return this.match("=")?(this.nextToken(),y=this.isolateCoverGrammar(this.parseAssignmentExpression)):v.type!==c.Syntax.Identifier&&!h.inFor&&this.expect("="),this.finalize(m,new l.VariableDeclarator(v,y))},_.prototype.parseVariableDeclarationList=function(h){var m={inFor:h.inFor},g=[];for(g.push(this.parseVariableDeclaration(m));this.match(",");)this.nextToken(),g.push(this.parseVariableDeclaration(m));return g},_.prototype.parseVariableStatement=function(){var h=this.createNode();this.expectKeyword("var");var m=this.parseVariableDeclarationList({inFor:!1});return this.consumeSemicolon(),this.finalize(h,new l.VariableDeclaration(m,"var"))},_.prototype.parseEmptyStatement=function(){var h=this.createNode();return this.expect(";"),this.finalize(h,new l.EmptyStatement)},_.prototype.parseExpressionStatement=function(){var h=this.createNode(),m=this.parseExpression();return this.consumeSemicolon(),this.finalize(h,new l.ExpressionStatement(m))},_.prototype.parseIfClause=function(){return this.context.strict&&this.matchKeyword("function")&&this.tolerateError(a.Messages.StrictFunction),this.parseStatement()},_.prototype.parseIfStatement=function(){var h=this.createNode(),m,g=null;this.expectKeyword("if"),this.expect("(");var v=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),m=this.finalize(this.createNode(),new l.EmptyStatement)):(this.expect(")"),m=this.parseIfClause(),this.matchKeyword("else")&&(this.nextToken(),g=this.parseIfClause())),this.finalize(h,new l.IfStatement(v,m,g))},_.prototype.parseDoWhileStatement=function(){var h=this.createNode();this.expectKeyword("do");var m=this.context.inIteration;this.context.inIteration=!0;var g=this.parseStatement();this.context.inIteration=m,this.expectKeyword("while"),this.expect("(");var v=this.parseExpression();return!this.match(")")&&this.config.tolerant?this.tolerateUnexpectedToken(this.nextToken()):(this.expect(")"),this.match(";")&&this.nextToken()),this.finalize(h,new l.DoWhileStatement(g,v))},_.prototype.parseWhileStatement=function(){var h=this.createNode(),m;this.expectKeyword("while"),this.expect("(");var g=this.parseExpression();if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),m=this.finalize(this.createNode(),new l.EmptyStatement);else{this.expect(")");var v=this.context.inIteration;this.context.inIteration=!0,m=this.parseStatement(),this.context.inIteration=v}return this.finalize(h,new l.WhileStatement(g,m))},_.prototype.parseForStatement=function(){var h=null,m=null,g=null,v=!0,y,A,b=this.createNode();if(this.expectKeyword("for"),this.expect("("),this.match(";"))this.nextToken();else if(this.matchKeyword("var")){h=this.createNode(),this.nextToken();var S=this.context.allowIn;this.context.allowIn=!1;var D=this.parseVariableDeclarationList({inFor:!0});if(this.context.allowIn=S,D.length===1&&this.matchKeyword("in")){var k=D[0];k.init&&(k.id.type===c.Syntax.ArrayPattern||k.id.type===c.Syntax.ObjectPattern||this.context.strict)&&this.tolerateError(a.Messages.ForInOfLoopInitializer,"for-in"),h=this.finalize(h,new l.VariableDeclaration(D,"var")),this.nextToken(),y=h,A=this.parseExpression(),h=null}else D.length===1&&D[0].init===null&&this.matchContextualKeyword("of")?(h=this.finalize(h,new l.VariableDeclaration(D,"var")),this.nextToken(),y=h,A=this.parseAssignmentExpression(),h=null,v=!1):(h=this.finalize(h,new l.VariableDeclaration(D,"var")),this.expect(";"))}else if(this.matchKeyword("const")||this.matchKeyword("let")){h=this.createNode();var T=this.nextToken().value;if(!this.context.strict&&this.lookahead.value==="in")h=this.finalize(h,new l.Identifier(T)),this.nextToken(),y=h,A=this.parseExpression(),h=null;else{var S=this.context.allowIn;this.context.allowIn=!1;var D=this.parseBindingList(T,{inFor:!0});this.context.allowIn=S,D.length===1&&D[0].init===null&&this.matchKeyword("in")?(h=this.finalize(h,new l.VariableDeclaration(D,T)),this.nextToken(),y=h,A=this.parseExpression(),h=null):D.length===1&&D[0].init===null&&this.matchContextualKeyword("of")?(h=this.finalize(h,new l.VariableDeclaration(D,T)),this.nextToken(),y=h,A=this.parseAssignmentExpression(),h=null,v=!1):(this.consumeSemicolon(),h=this.finalize(h,new l.VariableDeclaration(D,T)))}}else{var B=this.lookahead,S=this.context.allowIn;if(this.context.allowIn=!1,h=this.inheritCoverGrammar(this.parseAssignmentExpression),this.context.allowIn=S,this.matchKeyword("in"))(!this.context.isAssignmentTarget||h.type===c.Syntax.AssignmentExpression)&&this.tolerateError(a.Messages.InvalidLHSInForIn),this.nextToken(),this.reinterpretExpressionAsPattern(h),y=h,A=this.parseExpression(),h=null;else if(this.matchContextualKeyword("of"))(!this.context.isAssignmentTarget||h.type===c.Syntax.AssignmentExpression)&&this.tolerateError(a.Messages.InvalidLHSInForLoop),this.nextToken(),this.reinterpretExpressionAsPattern(h),y=h,A=this.parseAssignmentExpression(),h=null,v=!1;else{if(this.match(",")){for(var M=[h];this.match(",");)this.nextToken(),M.push(this.isolateCoverGrammar(this.parseAssignmentExpression));h=this.finalize(this.startNode(B),new l.SequenceExpression(M))}this.expect(";")}}typeof y=="undefined"&&(this.match(";")||(m=this.parseExpression()),this.expect(";"),this.match(")")||(g=this.parseExpression()));var U;if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),U=this.finalize(this.createNode(),new l.EmptyStatement);else{this.expect(")");var H=this.context.inIteration;this.context.inIteration=!0,U=this.isolateCoverGrammar(this.parseStatement),this.context.inIteration=H}return typeof y=="undefined"?this.finalize(b,new l.ForStatement(h,m,g,U)):v?this.finalize(b,new l.ForInStatement(y,A,U)):this.finalize(b,new l.ForOfStatement(y,A,U))},_.prototype.parseContinueStatement=function(){var h=this.createNode();this.expectKeyword("continue");var m=null;if(this.lookahead.type===3&&!this.hasLineTerminator){var g=this.parseVariableIdentifier();m=g;var v="$"+g.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,v)||this.throwError(a.Messages.UnknownLabel,g.name)}return this.consumeSemicolon(),m===null&&!this.context.inIteration&&this.throwError(a.Messages.IllegalContinue),this.finalize(h,new l.ContinueStatement(m))},_.prototype.parseBreakStatement=function(){var h=this.createNode();this.expectKeyword("break");var m=null;if(this.lookahead.type===3&&!this.hasLineTerminator){var g=this.parseVariableIdentifier(),v="$"+g.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,v)||this.throwError(a.Messages.UnknownLabel,g.name),m=g}return this.consumeSemicolon(),m===null&&!this.context.inIteration&&!this.context.inSwitch&&this.throwError(a.Messages.IllegalBreak),this.finalize(h,new l.BreakStatement(m))},_.prototype.parseReturnStatement=function(){this.context.inFunctionBody||this.tolerateError(a.Messages.IllegalReturn);var h=this.createNode();this.expectKeyword("return");var m=!this.match(";")&&!this.match("}")&&!this.hasLineTerminator&&this.lookahead.type!==2||this.lookahead.type===8||this.lookahead.type===10,g=m?this.parseExpression():null;return this.consumeSemicolon(),this.finalize(h,new l.ReturnStatement(g))},_.prototype.parseWithStatement=function(){this.context.strict&&this.tolerateError(a.Messages.StrictModeWith);var h=this.createNode(),m;this.expectKeyword("with"),this.expect("(");var g=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),m=this.finalize(this.createNode(),new l.EmptyStatement)):(this.expect(")"),m=this.parseStatement()),this.finalize(h,new l.WithStatement(g,m))},_.prototype.parseSwitchCase=function(){var h=this.createNode(),m;this.matchKeyword("default")?(this.nextToken(),m=null):(this.expectKeyword("case"),m=this.parseExpression()),this.expect(":");for(var g=[];!(this.match("}")||this.matchKeyword("default")||this.matchKeyword("case"));)g.push(this.parseStatementListItem());return this.finalize(h,new l.SwitchCase(m,g))},_.prototype.parseSwitchStatement=function(){var h=this.createNode();this.expectKeyword("switch"),this.expect("(");var m=this.parseExpression();this.expect(")");var g=this.context.inSwitch;this.context.inSwitch=!0;var v=[],y=!1;for(this.expect("{");!this.match("}");){var A=this.parseSwitchCase();A.test===null&&(y&&this.throwError(a.Messages.MultipleDefaultsInSwitch),y=!0),v.push(A)}return this.expect("}"),this.context.inSwitch=g,this.finalize(h,new l.SwitchStatement(m,v))},_.prototype.parseLabelledStatement=function(){var h=this.createNode(),m=this.parseExpression(),g;if(m.type===c.Syntax.Identifier&&this.match(":")){this.nextToken();var v=m,y="$"+v.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,y)&&this.throwError(a.Messages.Redeclaration,"Label",v.name),this.context.labelSet[y]=!0;var A=void 0;if(this.matchKeyword("class"))this.tolerateUnexpectedToken(this.lookahead),A=this.parseClassDeclaration();else if(this.matchKeyword("function")){var b=this.lookahead,S=this.parseFunctionDeclaration();this.context.strict?this.tolerateUnexpectedToken(b,a.Messages.StrictFunction):S.generator&&this.tolerateUnexpectedToken(b,a.Messages.GeneratorInLegacyContext),A=S}else A=this.parseStatement();delete this.context.labelSet[y],g=new l.LabeledStatement(v,A)}else this.consumeSemicolon(),g=new l.ExpressionStatement(m);return this.finalize(h,g)},_.prototype.parseThrowStatement=function(){var h=this.createNode();this.expectKeyword("throw"),this.hasLineTerminator&&this.throwError(a.Messages.NewlineAfterThrow);var m=this.parseExpression();return this.consumeSemicolon(),this.finalize(h,new l.ThrowStatement(m))},_.prototype.parseCatchClause=function(){var h=this.createNode();this.expectKeyword("catch"),this.expect("("),this.match(")")&&this.throwUnexpectedToken(this.lookahead);for(var m=[],g=this.parsePattern(m),v={},y=0;y0&&this.tolerateError(a.Messages.BadGetterArity);var y=this.parsePropertyMethod(v);return this.context.allowYield=g,this.finalize(h,new l.FunctionExpression(null,v.params,y,m))},_.prototype.parseSetterMethod=function(){var h=this.createNode(),m=!1,g=this.context.allowYield;this.context.allowYield=!m;var v=this.parseFormalParameters();v.params.length!==1?this.tolerateError(a.Messages.BadSetterArity):v.params[0]instanceof l.RestElement&&this.tolerateError(a.Messages.BadSetterRestParameter);var y=this.parsePropertyMethod(v);return this.context.allowYield=g,this.finalize(h,new l.FunctionExpression(null,v.params,y,m))},_.prototype.parseGeneratorMethod=function(){var h=this.createNode(),m=!0,g=this.context.allowYield;this.context.allowYield=!0;var v=this.parseFormalParameters();this.context.allowYield=!1;var y=this.parsePropertyMethod(v);return this.context.allowYield=g,this.finalize(h,new l.FunctionExpression(null,v.params,y,m))},_.prototype.isStartOfExpression=function(){var h=!0,m=this.lookahead.value;switch(this.lookahead.type){case 7:h=m==="["||m==="("||m==="{"||m==="+"||m==="-"||m==="!"||m==="~"||m==="++"||m==="--"||m==="/"||m==="/=";break;case 4:h=m==="class"||m==="delete"||m==="function"||m==="let"||m==="new"||m==="super"||m==="this"||m==="typeof"||m==="void"||m==="yield";break}return h},_.prototype.parseYieldExpression=function(){var h=this.createNode();this.expectKeyword("yield");var m=null,g=!1;if(!this.hasLineTerminator){var v=this.context.allowYield;this.context.allowYield=!1,g=this.match("*"),g?(this.nextToken(),m=this.parseAssignmentExpression()):this.isStartOfExpression()&&(m=this.parseAssignmentExpression()),this.context.allowYield=v}return this.finalize(h,new l.YieldExpression(m,g))},_.prototype.parseClassElement=function(h){var m=this.lookahead,g=this.createNode(),v="",y=null,A=null,b=!1,S=!1,D=!1,k=!1;if(this.match("*"))this.nextToken();else{b=this.match("["),y=this.parseObjectPropertyKey();var T=y;if(T.name==="static"&&(this.qualifiedPropertyName(this.lookahead)||this.match("*"))&&(m=this.lookahead,D=!0,b=this.match("["),this.match("*")?this.nextToken():y=this.parseObjectPropertyKey()),m.type===3&&!this.hasLineTerminator&&m.value==="async"){var B=this.lookahead.value;B!==":"&&B!=="("&&B!=="*"&&(k=!0,m=this.lookahead,y=this.parseObjectPropertyKey(),m.type===3&&m.value==="constructor"&&this.tolerateUnexpectedToken(m,a.Messages.ConstructorIsAsync))}}var M=this.qualifiedPropertyName(this.lookahead);return m.type===3?m.value==="get"&&M?(v="get",b=this.match("["),y=this.parseObjectPropertyKey(),this.context.allowYield=!1,A=this.parseGetterMethod()):m.value==="set"&&M&&(v="set",b=this.match("["),y=this.parseObjectPropertyKey(),A=this.parseSetterMethod()):m.type===7&&m.value==="*"&&M&&(v="init",b=this.match("["),y=this.parseObjectPropertyKey(),A=this.parseGeneratorMethod(),S=!0),!v&&y&&this.match("(")&&(v="init",A=k?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),S=!0),v||this.throwUnexpectedToken(this.lookahead),v==="init"&&(v="method"),b||(D&&this.isPropertyKey(y,"prototype")&&this.throwUnexpectedToken(m,a.Messages.StaticPrototype),!D&&this.isPropertyKey(y,"constructor")&&((v!=="method"||!S||A&&A.generator)&&this.throwUnexpectedToken(m,a.Messages.ConstructorSpecialMethod),h.value?this.throwUnexpectedToken(m,a.Messages.DuplicateConstructor):h.value=!0,v="constructor")),this.finalize(g,new l.MethodDefinition(y,b,A,v,D))},_.prototype.parseClassElementList=function(){var h=[],m={value:!1};for(this.expect("{");!this.match("}");)this.match(";")?this.nextToken():h.push(this.parseClassElement(m));return this.expect("}"),h},_.prototype.parseClassBody=function(){var h=this.createNode(),m=this.parseClassElementList();return this.finalize(h,new l.ClassBody(m))},_.prototype.parseClassDeclaration=function(h){var m=this.createNode(),g=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var v=h&&this.lookahead.type!==3?null:this.parseVariableIdentifier(),y=null;this.matchKeyword("extends")&&(this.nextToken(),y=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var A=this.parseClassBody();return this.context.strict=g,this.finalize(m,new l.ClassDeclaration(v,y,A))},_.prototype.parseClassExpression=function(){var h=this.createNode(),m=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var g=this.lookahead.type===3?this.parseVariableIdentifier():null,v=null;this.matchKeyword("extends")&&(this.nextToken(),v=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var y=this.parseClassBody();return this.context.strict=m,this.finalize(h,new l.ClassExpression(g,v,y))},_.prototype.parseModule=function(){this.context.strict=!0,this.context.isModule=!0,this.scanner.isModule=!0;for(var h=this.createNode(),m=this.parseDirectivePrologues();this.lookahead.type!==2;)m.push(this.parseStatementListItem());return this.finalize(h,new l.Module(m))},_.prototype.parseScript=function(){for(var h=this.createNode(),m=this.parseDirectivePrologues();this.lookahead.type!==2;)m.push(this.parseStatementListItem());return this.finalize(h,new l.Script(m))},_.prototype.parseModuleSpecifier=function(){var h=this.createNode();this.lookahead.type!==8&&this.throwError(a.Messages.InvalidModuleSpecifier);var m=this.nextToken(),g=this.getTokenRaw(m);return this.finalize(h,new l.Literal(m.value,g))},_.prototype.parseImportSpecifier=function(){var h=this.createNode(),m,g;return this.lookahead.type===3?(m=this.parseVariableIdentifier(),g=m,this.matchContextualKeyword("as")&&(this.nextToken(),g=this.parseVariableIdentifier())):(m=this.parseIdentifierName(),g=m,this.matchContextualKeyword("as")?(this.nextToken(),g=this.parseVariableIdentifier()):this.throwUnexpectedToken(this.nextToken())),this.finalize(h,new l.ImportSpecifier(g,m))},_.prototype.parseNamedImports=function(){this.expect("{");for(var h=[];!this.match("}");)h.push(this.parseImportSpecifier()),this.match("}")||this.expect(",");return this.expect("}"),h},_.prototype.parseImportDefaultSpecifier=function(){var h=this.createNode(),m=this.parseIdentifierName();return this.finalize(h,new l.ImportDefaultSpecifier(m))},_.prototype.parseImportNamespaceSpecifier=function(){var h=this.createNode();this.expect("*"),this.matchContextualKeyword("as")||this.throwError(a.Messages.NoAsAfterImportNamespace),this.nextToken();var m=this.parseIdentifierName();return this.finalize(h,new l.ImportNamespaceSpecifier(m))},_.prototype.parseImportDeclaration=function(){this.context.inFunctionBody&&this.throwError(a.Messages.IllegalImportDeclaration);var h=this.createNode();this.expectKeyword("import");var m,g=[];if(this.lookahead.type===8)m=this.parseModuleSpecifier();else{if(this.match("{")?g=g.concat(this.parseNamedImports()):this.match("*")?g.push(this.parseImportNamespaceSpecifier()):this.isIdentifierName(this.lookahead)&&!this.matchKeyword("default")?(g.push(this.parseImportDefaultSpecifier()),this.match(",")&&(this.nextToken(),this.match("*")?g.push(this.parseImportNamespaceSpecifier()):this.match("{")?g=g.concat(this.parseNamedImports()):this.throwUnexpectedToken(this.lookahead))):this.throwUnexpectedToken(this.nextToken()),!this.matchContextualKeyword("from")){var v=this.lookahead.value?a.Messages.UnexpectedToken:a.Messages.MissingFromClause;this.throwError(v,this.lookahead.value)}this.nextToken(),m=this.parseModuleSpecifier()}return this.consumeSemicolon(),this.finalize(h,new l.ImportDeclaration(g,m))},_.prototype.parseExportSpecifier=function(){var h=this.createNode(),m=this.parseIdentifierName(),g=m;return this.matchContextualKeyword("as")&&(this.nextToken(),g=this.parseIdentifierName()),this.finalize(h,new l.ExportSpecifier(m,g))},_.prototype.parseExportDeclaration=function(){this.context.inFunctionBody&&this.throwError(a.Messages.IllegalExportDeclaration);var h=this.createNode();this.expectKeyword("export");var m;if(this.matchKeyword("default"))if(this.nextToken(),this.matchKeyword("function")){var g=this.parseFunctionDeclaration(!0);m=this.finalize(h,new l.ExportDefaultDeclaration(g))}else if(this.matchKeyword("class")){var g=this.parseClassDeclaration(!0);m=this.finalize(h,new l.ExportDefaultDeclaration(g))}else if(this.matchContextualKeyword("async")){var g=this.matchAsyncFunction()?this.parseFunctionDeclaration(!0):this.parseAssignmentExpression();m=this.finalize(h,new l.ExportDefaultDeclaration(g))}else{this.matchContextualKeyword("from")&&this.throwError(a.Messages.UnexpectedToken,this.lookahead.value);var g=this.match("{")?this.parseObjectInitializer():this.match("[")?this.parseArrayInitializer():this.parseAssignmentExpression();this.consumeSemicolon(),m=this.finalize(h,new l.ExportDefaultDeclaration(g))}else if(this.match("*")){if(this.nextToken(),!this.matchContextualKeyword("from")){var v=this.lookahead.value?a.Messages.UnexpectedToken:a.Messages.MissingFromClause;this.throwError(v,this.lookahead.value)}this.nextToken();var y=this.parseModuleSpecifier();this.consumeSemicolon(),m=this.finalize(h,new l.ExportAllDeclaration(y))}else if(this.lookahead.type===4){var g=void 0;switch(this.lookahead.value){case"let":case"const":g=this.parseLexicalDeclaration({inFor:!1});break;case"var":case"class":case"function":g=this.parseStatementListItem();break;default:this.throwUnexpectedToken(this.lookahead)}m=this.finalize(h,new l.ExportNamedDeclaration(g,[],null))}else if(this.matchAsyncFunction()){var g=this.parseFunctionDeclaration();m=this.finalize(h,new l.ExportNamedDeclaration(g,[],null))}else{var A=[],b=null,S=!1;for(this.expect("{");!this.match("}");)S=S||this.matchKeyword("default"),A.push(this.parseExportSpecifier()),this.match("}")||this.expect(",");if(this.expect("}"),this.matchContextualKeyword("from"))this.nextToken(),b=this.parseModuleSpecifier(),this.consumeSemicolon();else if(S){var v=this.lookahead.value?a.Messages.UnexpectedToken:a.Messages.MissingFromClause;this.throwError(v,this.lookahead.value)}else this.consumeSemicolon();m=this.finalize(h,new l.ExportNamedDeclaration(null,A,b))}return m},_}();i.Parser=d},function(n,i){Object.defineProperty(i,"__esModule",{value:!0});function r(s,o){if(!s)throw new Error("ASSERT: "+o)}i.assert=r},function(n,i){Object.defineProperty(i,"__esModule",{value:!0});var r=function(){function s(){this.errors=[],this.tolerant=!1}return s.prototype.recordError=function(o){this.errors.push(o)},s.prototype.tolerate=function(o){if(this.tolerant)this.recordError(o);else throw o},s.prototype.constructError=function(o,a){var l=new Error(o);try{throw l}catch(u){Object.create&&Object.defineProperty&&(l=Object.create(u),Object.defineProperty(l,"column",{value:a}))}return l},s.prototype.createError=function(o,a,l,u){var c="Line "+a+": "+u,p=this.constructError(c,l);return p.index=o,p.lineNumber=a,p.description=u,p},s.prototype.throwError=function(o,a,l,u){throw this.createError(o,a,l,u)},s.prototype.tolerateError=function(o,a,l,u){var c=this.createError(o,a,l,u);if(this.tolerant)this.recordError(c);else throw c},s}();i.ErrorHandler=r},function(n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.Messages={BadGetterArity:"Getter must not have any formal parameters",BadSetterArity:"Setter must have exactly one formal parameter",BadSetterRestParameter:"Setter function argument must not be a rest parameter",ConstructorIsAsync:"Class constructor may not be an async method",ConstructorSpecialMethod:"Class constructor may not be an accessor",DeclarationMissingInitializer:"Missing initializer in %0 declaration",DefaultRestParameter:"Unexpected token =",DuplicateBinding:"Duplicate binding %0",DuplicateConstructor:"A class may only have one constructor",DuplicateProtoProperty:"Duplicate __proto__ fields are not allowed in object literals",ForInOfLoopInitializer:"%0 loop variable declaration may not have an initializer",GeneratorInLegacyContext:"Generator declarations are not allowed in legacy contexts",IllegalBreak:"Illegal break statement",IllegalContinue:"Illegal continue statement",IllegalExportDeclaration:"Unexpected token",IllegalImportDeclaration:"Unexpected token",IllegalLanguageModeDirective:"Illegal 'use strict' directive in function with non-simple parameter list",IllegalReturn:"Illegal return statement",InvalidEscapedReservedWord:"Keyword must not contain escaped characters",InvalidHexEscapeSequence:"Invalid hexadecimal escape sequence",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",InvalidLHSInForLoop:"Invalid left-hand side in for-loop",InvalidModuleSpecifier:"Unexpected token",InvalidRegExp:"Invalid regular expression",LetInLexicalBinding:"let is disallowed as a lexically bound name",MissingFromClause:"Unexpected token",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NewlineAfterThrow:"Illegal newline after throw",NoAsAfterImportNamespace:"Unexpected token",NoCatchOrFinally:"Missing catch or finally after try",ParameterAfterRestParameter:"Rest parameter must be last formal parameter",Redeclaration:"%0 '%1' has already been declared",StaticPrototype:"Classes may not have static property named prototype",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictFunction:"In strict mode code, functions can only be declared at top level or inside a block",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictModeWith:"Strict mode code may not include a with statement",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",TemplateOctalLiteral:"Octal literals are not allowed in template strings.",UnexpectedEOS:"Unexpected end of input",UnexpectedIdentifier:"Unexpected identifier",UnexpectedNumber:"Unexpected number",UnexpectedReserved:"Unexpected reserved word",UnexpectedString:"Unexpected string",UnexpectedTemplate:"Unexpected quasi %0",UnexpectedToken:"Unexpected token %0",UnexpectedTokenIllegal:"Unexpected token ILLEGAL",UnknownLabel:"Undefined label '%0'",UnterminatedRegExp:"Invalid regular expression: missing /"}},function(n,i,r){Object.defineProperty(i,"__esModule",{value:!0});var s=r(9),o=r(4),a=r(11);function l(p){return"0123456789abcdef".indexOf(p.toLowerCase())}function u(p){return"01234567".indexOf(p)}var c=function(){function p(f,d){this.source=f,this.errorHandler=d,this.trackComment=!1,this.isModule=!1,this.length=f.length,this.index=0,this.lineNumber=f.length>0?1:0,this.lineStart=0,this.curlyStack=[]}return p.prototype.saveState=function(){return{index:this.index,lineNumber:this.lineNumber,lineStart:this.lineStart}},p.prototype.restoreState=function(f){this.index=f.index,this.lineNumber=f.lineNumber,this.lineStart=f.lineStart},p.prototype.eof=function(){return this.index>=this.length},p.prototype.throwUnexpectedToken=function(f){return f===void 0&&(f=a.Messages.UnexpectedTokenIllegal),this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,f)},p.prototype.tolerateUnexpectedToken=function(f){f===void 0&&(f=a.Messages.UnexpectedTokenIllegal),this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,f)},p.prototype.skipSingleLineComment=function(f){var d=[],_,h;for(this.trackComment&&(d=[],_=this.index-f,h={start:{line:this.lineNumber,column:this.index-this.lineStart-f},end:{}});!this.eof();){var m=this.source.charCodeAt(this.index);if(++this.index,o.Character.isLineTerminator(m)){if(this.trackComment){h.end={line:this.lineNumber,column:this.index-this.lineStart-1};var g={multiLine:!1,slice:[_+f,this.index-1],range:[_,this.index-1],loc:h};d.push(g)}return m===13&&this.source.charCodeAt(this.index)===10&&++this.index,++this.lineNumber,this.lineStart=this.index,d}}if(this.trackComment){h.end={line:this.lineNumber,column:this.index-this.lineStart};var g={multiLine:!1,slice:[_+f,this.index],range:[_,this.index],loc:h};d.push(g)}return d},p.prototype.skipMultiLineComment=function(){var f=[],d,_;for(this.trackComment&&(f=[],d=this.index-2,_={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}});!this.eof();){var h=this.source.charCodeAt(this.index);if(o.Character.isLineTerminator(h))h===13&&this.source.charCodeAt(this.index+1)===10&&++this.index,++this.lineNumber,++this.index,this.lineStart=this.index;else if(h===42){if(this.source.charCodeAt(this.index+1)===47){if(this.index+=2,this.trackComment){_.end={line:this.lineNumber,column:this.index-this.lineStart};var m={multiLine:!0,slice:[d+2,this.index-2],range:[d,this.index],loc:_};f.push(m)}return f}++this.index}else++this.index}if(this.trackComment){_.end={line:this.lineNumber,column:this.index-this.lineStart};var m={multiLine:!0,slice:[d+2,this.index],range:[d,this.index],loc:_};f.push(m)}return this.tolerateUnexpectedToken(),f},p.prototype.scanComments=function(){var f;this.trackComment&&(f=[]);for(var d=this.index===0;!this.eof();){var _=this.source.charCodeAt(this.index);if(o.Character.isWhiteSpace(_))++this.index;else if(o.Character.isLineTerminator(_))++this.index,_===13&&this.source.charCodeAt(this.index)===10&&++this.index,++this.lineNumber,this.lineStart=this.index,d=!0;else if(_===47)if(_=this.source.charCodeAt(this.index+1),_===47){this.index+=2;var h=this.skipSingleLineComment(2);this.trackComment&&(f=f.concat(h)),d=!0}else if(_===42){this.index+=2;var h=this.skipMultiLineComment();this.trackComment&&(f=f.concat(h))}else break;else if(d&&_===45)if(this.source.charCodeAt(this.index+1)===45&&this.source.charCodeAt(this.index+2)===62){this.index+=3;var h=this.skipSingleLineComment(3);this.trackComment&&(f=f.concat(h))}else break;else if(_===60&&!this.isModule)if(this.source.slice(this.index+1,this.index+4)==="!--"){this.index+=4;var h=this.skipSingleLineComment(4);this.trackComment&&(f=f.concat(h))}else break;else break}return f},p.prototype.isFutureReservedWord=function(f){switch(f){case"enum":case"export":case"import":case"super":return!0;default:return!1}},p.prototype.isStrictModeReservedWord=function(f){switch(f){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}},p.prototype.isRestrictedWord=function(f){return f==="eval"||f==="arguments"},p.prototype.isKeyword=function(f){switch(f.length){case 2:return f==="if"||f==="in"||f==="do";case 3:return f==="var"||f==="for"||f==="new"||f==="try"||f==="let";case 4:return f==="this"||f==="else"||f==="case"||f==="void"||f==="with"||f==="enum";case 5:return f==="while"||f==="break"||f==="catch"||f==="throw"||f==="const"||f==="yield"||f==="class"||f==="super";case 6:return f==="return"||f==="typeof"||f==="delete"||f==="switch"||f==="export"||f==="import";case 7:return f==="default"||f==="finally"||f==="extends";case 8:return f==="function"||f==="continue"||f==="debugger";case 10:return f==="instanceof";default:return!1}},p.prototype.codePointAt=function(f){var d=this.source.charCodeAt(f);if(d>=55296&&d<=56319){var _=this.source.charCodeAt(f+1);if(_>=56320&&_<=57343){var h=d;d=(h-55296)*1024+_-56320+65536}}return d},p.prototype.scanHexEscape=function(f){for(var d=f==="u"?4:2,_=0,h=0;h1114111||f!=="}")&&this.throwUnexpectedToken(),o.Character.fromCodePoint(d)},p.prototype.getIdentifier=function(){for(var f=this.index++;!this.eof();){var d=this.source.charCodeAt(this.index);if(d===92)return this.index=f,this.getComplexIdentifier();if(d>=55296&&d<57343)return this.index=f,this.getComplexIdentifier();if(o.Character.isIdentifierPart(d))++this.index;else break}return this.source.slice(f,this.index)},p.prototype.getComplexIdentifier=function(){var f=this.codePointAt(this.index),d=o.Character.fromCodePoint(f);this.index+=d.length;var _;for(f===92&&(this.source.charCodeAt(this.index)!==117&&this.throwUnexpectedToken(),++this.index,this.source[this.index]==="{"?(++this.index,_=this.scanUnicodeCodePointEscape()):(_=this.scanHexEscape("u"),(_===null||_==="\\"||!o.Character.isIdentifierStart(_.charCodeAt(0)))&&this.throwUnexpectedToken()),d=_);!this.eof()&&(f=this.codePointAt(this.index),!!o.Character.isIdentifierPart(f));)_=o.Character.fromCodePoint(f),d+=_,this.index+=_.length,f===92&&(d=d.substr(0,d.length-1),this.source.charCodeAt(this.index)!==117&&this.throwUnexpectedToken(),++this.index,this.source[this.index]==="{"?(++this.index,_=this.scanUnicodeCodePointEscape()):(_=this.scanHexEscape("u"),(_===null||_==="\\"||!o.Character.isIdentifierPart(_.charCodeAt(0)))&&this.throwUnexpectedToken()),d+=_);return d},p.prototype.octalToDecimal=function(f){var d=f!=="0",_=u(f);return!this.eof()&&o.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(d=!0,_=_*8+u(this.source[this.index++]),"0123".indexOf(f)>=0&&!this.eof()&&o.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(_=_*8+u(this.source[this.index++]))),{code:_,octal:d}},p.prototype.scanIdentifier=function(){var f,d=this.index,_=this.source.charCodeAt(d)===92?this.getComplexIdentifier():this.getIdentifier();if(_.length===1?f=3:this.isKeyword(_)?f=4:_==="null"?f=5:_==="true"||_==="false"?f=1:f=3,f!==3&&d+_.length!==this.index){var h=this.index;this.index=d,this.tolerateUnexpectedToken(a.Messages.InvalidEscapedReservedWord),this.index=h}return{type:f,value:_,lineNumber:this.lineNumber,lineStart:this.lineStart,start:d,end:this.index}},p.prototype.scanPunctuator=function(){var f=this.index,d=this.source[this.index];switch(d){case"(":case"{":d==="{"&&this.curlyStack.push("{"),++this.index;break;case".":++this.index,this.source[this.index]==="."&&this.source[this.index+1]==="."&&(this.index+=2,d="...");break;case"}":++this.index,this.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++this.index;break;default:d=this.source.substr(this.index,4),d===">>>="?this.index+=4:(d=d.substr(0,3),d==="==="||d==="!=="||d===">>>"||d==="<<="||d===">>="||d==="**="?this.index+=3:(d=d.substr(0,2),d==="&&"||d==="||"||d==="=="||d==="!="||d==="+="||d==="-="||d==="*="||d==="/="||d==="++"||d==="--"||d==="<<"||d===">>"||d==="&="||d==="|="||d==="^="||d==="%="||d==="<="||d===">="||d==="=>"||d==="**"?this.index+=2:(d=this.source[this.index],"<>=!+-*%&|^/".indexOf(d)>=0&&++this.index)))}return this.index===f&&this.throwUnexpectedToken(),{type:7,value:d,lineNumber:this.lineNumber,lineStart:this.lineStart,start:f,end:this.index}},p.prototype.scanHexLiteral=function(f){for(var d="";!this.eof()&&o.Character.isHexDigit(this.source.charCodeAt(this.index));)d+=this.source[this.index++];return d.length===0&&this.throwUnexpectedToken(),o.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:6,value:parseInt("0x"+d,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:f,end:this.index}},p.prototype.scanBinaryLiteral=function(f){for(var d="",_;!this.eof()&&(_=this.source[this.index],!(_!=="0"&&_!=="1"));)d+=this.source[this.index++];return d.length===0&&this.throwUnexpectedToken(),this.eof()||(_=this.source.charCodeAt(this.index),(o.Character.isIdentifierStart(_)||o.Character.isDecimalDigit(_))&&this.throwUnexpectedToken()),{type:6,value:parseInt(d,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:f,end:this.index}},p.prototype.scanOctalLiteral=function(f,d){var _="",h=!1;for(o.Character.isOctalDigit(f.charCodeAt(0))?(h=!0,_="0"+this.source[this.index++]):++this.index;!this.eof()&&o.Character.isOctalDigit(this.source.charCodeAt(this.index));)_+=this.source[this.index++];return!h&&_.length===0&&this.throwUnexpectedToken(),(o.Character.isIdentifierStart(this.source.charCodeAt(this.index))||o.Character.isDecimalDigit(this.source.charCodeAt(this.index)))&&this.throwUnexpectedToken(),{type:6,value:parseInt(_,8),octal:h,lineNumber:this.lineNumber,lineStart:this.lineStart,start:d,end:this.index}},p.prototype.isImplicitOctalLiteral=function(){for(var f=this.index+1;f=0&&(h=h.replace(/\\u\{([0-9a-fA-F]+)\}|\\u([a-fA-F0-9]{4})/g,function(g,v,y){var A=parseInt(v||y,16);return A>1114111&&m.throwUnexpectedToken(a.Messages.InvalidRegExp),A<=65535?String.fromCharCode(A):_}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,_));try{RegExp(h)}catch{this.throwUnexpectedToken(a.Messages.InvalidRegExp)}try{return new RegExp(f,d)}catch{return null}},p.prototype.scanRegExpBody=function(){var f=this.source[this.index];s.assert(f==="/","Regular expression literal must start with a slash");for(var d=this.source[this.index++],_=!1,h=!1;!this.eof();)if(f=this.source[this.index++],d+=f,f==="\\")f=this.source[this.index++],o.Character.isLineTerminator(f.charCodeAt(0))&&this.throwUnexpectedToken(a.Messages.UnterminatedRegExp),d+=f;else if(o.Character.isLineTerminator(f.charCodeAt(0)))this.throwUnexpectedToken(a.Messages.UnterminatedRegExp);else if(_)f==="]"&&(_=!1);else if(f==="/"){h=!0;break}else f==="["&&(_=!0);return h||this.throwUnexpectedToken(a.Messages.UnterminatedRegExp),d.substr(1,d.length-2)},p.prototype.scanRegExpFlags=function(){for(var f="",d="";!this.eof();){var _=this.source[this.index];if(!o.Character.isIdentifierPart(_.charCodeAt(0)))break;if(++this.index,_==="\\"&&!this.eof())if(_=this.source[this.index],_==="u"){++this.index;var h=this.index,m=this.scanHexEscape("u");if(m!==null)for(d+=m,f+="\\u";h=55296&&f<57343&&o.Character.isIdentifierStart(this.codePointAt(this.index))?this.scanIdentifier():this.scanPunctuator()},p}();i.Scanner=c},function(n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.TokenName={},i.TokenName[1]="Boolean",i.TokenName[2]="",i.TokenName[3]="Identifier",i.TokenName[4]="Keyword",i.TokenName[5]="Null",i.TokenName[6]="Numeric",i.TokenName[7]="Punctuator",i.TokenName[8]="String",i.TokenName[9]="RegularExpression",i.TokenName[10]="Template"},function(n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.XHTMLEntities={quot:'"',amp:"&",apos:"'",gt:">",nbsp:"\xA0",iexcl:"\xA1",cent:"\xA2",pound:"\xA3",curren:"\xA4",yen:"\xA5",brvbar:"\xA6",sect:"\xA7",uml:"\xA8",copy:"\xA9",ordf:"\xAA",laquo:"\xAB",not:"\xAC",shy:"\xAD",reg:"\xAE",macr:"\xAF",deg:"\xB0",plusmn:"\xB1",sup2:"\xB2",sup3:"\xB3",acute:"\xB4",micro:"\xB5",para:"\xB6",middot:"\xB7",cedil:"\xB8",sup1:"\xB9",ordm:"\xBA",raquo:"\xBB",frac14:"\xBC",frac12:"\xBD",frac34:"\xBE",iquest:"\xBF",Agrave:"\xC0",Aacute:"\xC1",Acirc:"\xC2",Atilde:"\xC3",Auml:"\xC4",Aring:"\xC5",AElig:"\xC6",Ccedil:"\xC7",Egrave:"\xC8",Eacute:"\xC9",Ecirc:"\xCA",Euml:"\xCB",Igrave:"\xCC",Iacute:"\xCD",Icirc:"\xCE",Iuml:"\xCF",ETH:"\xD0",Ntilde:"\xD1",Ograve:"\xD2",Oacute:"\xD3",Ocirc:"\xD4",Otilde:"\xD5",Ouml:"\xD6",times:"\xD7",Oslash:"\xD8",Ugrave:"\xD9",Uacute:"\xDA",Ucirc:"\xDB",Uuml:"\xDC",Yacute:"\xDD",THORN:"\xDE",szlig:"\xDF",agrave:"\xE0",aacute:"\xE1",acirc:"\xE2",atilde:"\xE3",auml:"\xE4",aring:"\xE5",aelig:"\xE6",ccedil:"\xE7",egrave:"\xE8",eacute:"\xE9",ecirc:"\xEA",euml:"\xEB",igrave:"\xEC",iacute:"\xED",icirc:"\xEE",iuml:"\xEF",eth:"\xF0",ntilde:"\xF1",ograve:"\xF2",oacute:"\xF3",ocirc:"\xF4",otilde:"\xF5",ouml:"\xF6",divide:"\xF7",oslash:"\xF8",ugrave:"\xF9",uacute:"\xFA",ucirc:"\xFB",uuml:"\xFC",yacute:"\xFD",thorn:"\xFE",yuml:"\xFF",OElig:"\u0152",oelig:"\u0153",Scaron:"\u0160",scaron:"\u0161",Yuml:"\u0178",fnof:"\u0192",circ:"\u02C6",tilde:"\u02DC",Alpha:"\u0391",Beta:"\u0392",Gamma:"\u0393",Delta:"\u0394",Epsilon:"\u0395",Zeta:"\u0396",Eta:"\u0397",Theta:"\u0398",Iota:"\u0399",Kappa:"\u039A",Lambda:"\u039B",Mu:"\u039C",Nu:"\u039D",Xi:"\u039E",Omicron:"\u039F",Pi:"\u03A0",Rho:"\u03A1",Sigma:"\u03A3",Tau:"\u03A4",Upsilon:"\u03A5",Phi:"\u03A6",Chi:"\u03A7",Psi:"\u03A8",Omega:"\u03A9",alpha:"\u03B1",beta:"\u03B2",gamma:"\u03B3",delta:"\u03B4",epsilon:"\u03B5",zeta:"\u03B6",eta:"\u03B7",theta:"\u03B8",iota:"\u03B9",kappa:"\u03BA",lambda:"\u03BB",mu:"\u03BC",nu:"\u03BD",xi:"\u03BE",omicron:"\u03BF",pi:"\u03C0",rho:"\u03C1",sigmaf:"\u03C2",sigma:"\u03C3",tau:"\u03C4",upsilon:"\u03C5",phi:"\u03C6",chi:"\u03C7",psi:"\u03C8",omega:"\u03C9",thetasym:"\u03D1",upsih:"\u03D2",piv:"\u03D6",ensp:"\u2002",emsp:"\u2003",thinsp:"\u2009",zwnj:"\u200C",zwj:"\u200D",lrm:"\u200E",rlm:"\u200F",ndash:"\u2013",mdash:"\u2014",lsquo:"\u2018",rsquo:"\u2019",sbquo:"\u201A",ldquo:"\u201C",rdquo:"\u201D",bdquo:"\u201E",dagger:"\u2020",Dagger:"\u2021",bull:"\u2022",hellip:"\u2026",permil:"\u2030",prime:"\u2032",Prime:"\u2033",lsaquo:"\u2039",rsaquo:"\u203A",oline:"\u203E",frasl:"\u2044",euro:"\u20AC",image:"\u2111",weierp:"\u2118",real:"\u211C",trade:"\u2122",alefsym:"\u2135",larr:"\u2190",uarr:"\u2191",rarr:"\u2192",darr:"\u2193",harr:"\u2194",crarr:"\u21B5",lArr:"\u21D0",uArr:"\u21D1",rArr:"\u21D2",dArr:"\u21D3",hArr:"\u21D4",forall:"\u2200",part:"\u2202",exist:"\u2203",empty:"\u2205",nabla:"\u2207",isin:"\u2208",notin:"\u2209",ni:"\u220B",prod:"\u220F",sum:"\u2211",minus:"\u2212",lowast:"\u2217",radic:"\u221A",prop:"\u221D",infin:"\u221E",ang:"\u2220",and:"\u2227",or:"\u2228",cap:"\u2229",cup:"\u222A",int:"\u222B",there4:"\u2234",sim:"\u223C",cong:"\u2245",asymp:"\u2248",ne:"\u2260",equiv:"\u2261",le:"\u2264",ge:"\u2265",sub:"\u2282",sup:"\u2283",nsub:"\u2284",sube:"\u2286",supe:"\u2287",oplus:"\u2295",otimes:"\u2297",perp:"\u22A5",sdot:"\u22C5",lceil:"\u2308",rceil:"\u2309",lfloor:"\u230A",rfloor:"\u230B",loz:"\u25CA",spades:"\u2660",clubs:"\u2663",hearts:"\u2665",diams:"\u2666",lang:"\u27E8",rang:"\u27E9"}},function(n,i,r){Object.defineProperty(i,"__esModule",{value:!0});var s=r(10),o=r(12),a=r(13),l=function(){function c(){this.values=[],this.curly=this.paren=-1}return c.prototype.beforeFunctionExpression=function(p){return["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","**","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="].indexOf(p)>=0},c.prototype.isRegexStart=function(){var p=this.values[this.values.length-1],f=p!==null;switch(p){case"this":case"]":f=!1;break;case")":var d=this.values[this.paren-1];f=d==="if"||d==="while"||d==="for"||d==="with";break;case"}":if(f=!1,this.values[this.curly-3]==="function"){var _=this.values[this.curly-4];f=_?!this.beforeFunctionExpression(_):!1}else if(this.values[this.curly-4]==="function"){var _=this.values[this.curly-5];f=_?!this.beforeFunctionExpression(_):!0}break}return f},c.prototype.push=function(p){p.type===7||p.type===4?(p.value==="{"?this.curly=this.values.length:p.value==="("&&(this.paren=this.values.length),this.values.push(p.value)):this.values.push(null)},c}(),u=function(){function c(p,f){this.errorHandler=new s.ErrorHandler,this.errorHandler.tolerant=f?typeof f.tolerant=="boolean"&&f.tolerant:!1,this.scanner=new o.Scanner(p,this.errorHandler),this.scanner.trackComment=f?typeof f.comment=="boolean"&&f.comment:!1,this.trackRange=f?typeof f.range=="boolean"&&f.range:!1,this.trackLoc=f?typeof f.loc=="boolean"&&f.loc:!1,this.buffer=[],this.reader=new l}return c.prototype.errors=function(){return this.errorHandler.errors},c.prototype.getNextToken=function(){if(this.buffer.length===0){var p=this.scanner.scanComments();if(this.scanner.trackComment)for(var f=0;f0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");n===-1&&(n=t);var i=n===t?0:4-n%4;return[n,i]}function Zw(e){var t=ip(e),n=t[0],i=t[1];return(n+i)*3/4-i}function Kw(e,t,n){return(t+n)*3/4-n}function qw(e){var t,n=ip(e),i=n[0],r=n[1],s=new Yw(Kw(e,i,r)),o=0,a=r>0?i-4:i,l;for(l=0;l>16&255,s[o++]=t>>8&255,s[o++]=t&255;return r===2&&(t=Xt[e.charCodeAt(l)]<<2|Xt[e.charCodeAt(l+1)]>>4,s[o++]=t&255),r===1&&(t=Xt[e.charCodeAt(l)]<<10|Xt[e.charCodeAt(l+1)]<<4|Xt[e.charCodeAt(l+2)]>>2,s[o++]=t>>8&255,s[o++]=t&255),s}function Qw(e){return mn[e>>18&63]+mn[e>>12&63]+mn[e>>6&63]+mn[e&63]}function eE(e,t,n){for(var i,r=[],s=t;sa?a:o+s));return i===1?(t=e[n-1],r.push(mn[t>>2]+mn[t<<4&63]+"==")):i===2&&(t=(e[n-2]<<8)+e[n-1],r.push(mn[t>>10]+mn[t>>4&63]+mn[t<<2&63]+"=")),r.join("")}var ru={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ru.read=function(e,t,n,i,r){var s,o,a=r*8-i-1,l=(1<>1,c=-7,p=n?r-1:0,f=n?-1:1,d=e[t+p];for(p+=f,s=d&(1<<-c)-1,d>>=-c,c+=a;c>0;s=s*256+e[t+p],p+=f,c-=8);for(o=s&(1<<-c)-1,s>>=-c,c+=i;c>0;o=o*256+e[t+p],p+=f,c-=8);if(s===0)s=1-u;else{if(s===l)return o?NaN:(d?-1:1)*(1/0);o=o+Math.pow(2,i),s=s-u}return(d?-1:1)*o*Math.pow(2,s-i)};ru.write=function(e,t,n,i,r,s){var o,a,l,u=s*8-r-1,c=(1<>1,f=r===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=i?0:s-1,_=i?1:-1,h=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,o=c):(o=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-o))<1&&(o--,l*=2),o+p>=1?t+=f/l:t+=f*Math.pow(2,1-p),t*l>=2&&(o++,l/=2),o+p>=c?(a=0,o=c):o+p>=1?(a=(t*l-1)*Math.pow(2,r),o=o+p):(a=t*Math.pow(2,p-1)*Math.pow(2,r),o=0));r>=8;e[n+d]=a&255,d+=_,a/=256,r-=8);for(o=o<0;e[n+d]=o&255,d+=_,o/=256,u-=8);e[n+d-_]|=h*128};/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */(function(e){const t=Vo,n=ru,i=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=a,e.SlowBuffer=v,e.INSPECT_MAX_BYTES=50;const r=2147483647;e.kMaxLength=r,a.TYPED_ARRAY_SUPPORT=s(),!a.TYPED_ARRAY_SUPPORT&&typeof console!="undefined"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function s(){try{const C=new Uint8Array(1),x={foo:function(){return 42}};return Object.setPrototypeOf(x,Uint8Array.prototype),Object.setPrototypeOf(C,x),C.foo()===42}catch{return!1}}Object.defineProperty(a.prototype,"parent",{enumerable:!0,get:function(){if(!!a.isBuffer(this))return this.buffer}}),Object.defineProperty(a.prototype,"offset",{enumerable:!0,get:function(){if(!!a.isBuffer(this))return this.byteOffset}});function o(C){if(C>r)throw new RangeError('The value "'+C+'" is invalid for option "size"');const x=new Uint8Array(C);return Object.setPrototypeOf(x,a.prototype),x}function a(C,x,E){if(typeof C=="number"){if(typeof x=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return p(C)}return l(C,x,E)}a.poolSize=8192;function l(C,x,E){if(typeof C=="string")return f(C,x);if(ArrayBuffer.isView(C))return _(C);if(C==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof C);if(ee(C,ArrayBuffer)||C&&ee(C.buffer,ArrayBuffer)||typeof SharedArrayBuffer!="undefined"&&(ee(C,SharedArrayBuffer)||C&&ee(C.buffer,SharedArrayBuffer)))return h(C,x,E);if(typeof C=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const F=C.valueOf&&C.valueOf();if(F!=null&&F!==C)return a.from(F,x,E);const N=m(C);if(N)return N;if(typeof Symbol!="undefined"&&Symbol.toPrimitive!=null&&typeof C[Symbol.toPrimitive]=="function")return a.from(C[Symbol.toPrimitive]("string"),x,E);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof C)}a.from=function(C,x,E){return l(C,x,E)},Object.setPrototypeOf(a.prototype,Uint8Array.prototype),Object.setPrototypeOf(a,Uint8Array);function u(C){if(typeof C!="number")throw new TypeError('"size" argument must be of type number');if(C<0)throw new RangeError('The value "'+C+'" is invalid for option "size"')}function c(C,x,E){return u(C),C<=0?o(C):x!==void 0?typeof E=="string"?o(C).fill(x,E):o(C).fill(x):o(C)}a.alloc=function(C,x,E){return c(C,x,E)};function p(C){return u(C),o(C<0?0:g(C)|0)}a.allocUnsafe=function(C){return p(C)},a.allocUnsafeSlow=function(C){return p(C)};function f(C,x){if((typeof x!="string"||x==="")&&(x="utf8"),!a.isEncoding(x))throw new TypeError("Unknown encoding: "+x);const E=y(C,x)|0;let F=o(E);const N=F.write(C,x);return N!==E&&(F=F.slice(0,N)),F}function d(C){const x=C.length<0?0:g(C.length)|0,E=o(x);for(let F=0;F=r)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r.toString(16)+" bytes");return C|0}function v(C){return+C!=C&&(C=0),a.alloc(+C)}a.isBuffer=function(x){return x!=null&&x._isBuffer===!0&&x!==a.prototype},a.compare=function(x,E){if(ee(x,Uint8Array)&&(x=a.from(x,x.offset,x.byteLength)),ee(E,Uint8Array)&&(E=a.from(E,E.offset,E.byteLength)),!a.isBuffer(x)||!a.isBuffer(E))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(x===E)return 0;let F=x.length,N=E.length;for(let L=0,z=Math.min(F,N);LN.length?(a.isBuffer(z)||(z=a.from(z)),z.copy(N,L)):Uint8Array.prototype.set.call(N,z,L);else if(a.isBuffer(z))z.copy(N,L);else throw new TypeError('"list" argument must be an Array of Buffers');L+=z.length}return N};function y(C,x){if(a.isBuffer(C))return C.length;if(ArrayBuffer.isView(C)||ee(C,ArrayBuffer))return C.byteLength;if(typeof C!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof C);const E=C.length,F=arguments.length>2&&arguments[2]===!0;if(!F&&E===0)return 0;let N=!1;for(;;)switch(x){case"ascii":case"latin1":case"binary":return E;case"utf8":case"utf-8":return ce(C).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E*2;case"hex":return E>>>1;case"base64":return Se(C).length;default:if(N)return F?-1:ce(C).length;x=(""+x).toLowerCase(),N=!0}}a.byteLength=y;function A(C,x,E){let F=!1;if((x===void 0||x<0)&&(x=0),x>this.length||((E===void 0||E>this.length)&&(E=this.length),E<=0)||(E>>>=0,x>>>=0,E<=x))return"";for(C||(C="utf8");;)switch(C){case"hex":return ae(this,x,E);case"utf8":case"utf-8":return Q(this,x,E);case"ascii":return X(this,x,E);case"latin1":case"binary":return ie(this,x,E);case"base64":return H(this,x,E);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return j(this,x,E);default:if(F)throw new TypeError("Unknown encoding: "+C);C=(C+"").toLowerCase(),F=!0}}a.prototype._isBuffer=!0;function b(C,x,E){const F=C[x];C[x]=C[E],C[E]=F}a.prototype.swap16=function(){const x=this.length;if(x%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let E=0;EE&&(x+=" ... "),""},i&&(a.prototype[i]=a.prototype.inspect),a.prototype.compare=function(x,E,F,N,L){if(ee(x,Uint8Array)&&(x=a.from(x,x.offset,x.byteLength)),!a.isBuffer(x))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof x);if(E===void 0&&(E=0),F===void 0&&(F=x?x.length:0),N===void 0&&(N=0),L===void 0&&(L=this.length),E<0||F>x.length||N<0||L>this.length)throw new RangeError("out of range index");if(N>=L&&E>=F)return 0;if(N>=L)return-1;if(E>=F)return 1;if(E>>>=0,F>>>=0,N>>>=0,L>>>=0,this===x)return 0;let z=L-N,ye=F-E;const Le=Math.min(z,ye),Oe=this.slice(N,L),Ue=x.slice(E,F);for(let Ie=0;Ie2147483647?E=2147483647:E<-2147483648&&(E=-2147483648),E=+E,At(E)&&(E=N?0:C.length-1),E<0&&(E=C.length+E),E>=C.length){if(N)return-1;E=C.length-1}else if(E<0)if(N)E=0;else return-1;if(typeof x=="string"&&(x=a.from(x,F)),a.isBuffer(x))return x.length===0?-1:D(C,x,E,F,N);if(typeof x=="number")return x=x&255,typeof Uint8Array.prototype.indexOf=="function"?N?Uint8Array.prototype.indexOf.call(C,x,E):Uint8Array.prototype.lastIndexOf.call(C,x,E):D(C,[x],E,F,N);throw new TypeError("val must be string, number or Buffer")}function D(C,x,E,F,N){let L=1,z=C.length,ye=x.length;if(F!==void 0&&(F=String(F).toLowerCase(),F==="ucs2"||F==="ucs-2"||F==="utf16le"||F==="utf-16le")){if(C.length<2||x.length<2)return-1;L=2,z/=2,ye/=2,E/=2}function Le(Ue,Ie){return L===1?Ue[Ie]:Ue.readUInt16BE(Ie*L)}let Oe;if(N){let Ue=-1;for(Oe=E;Oez&&(E=z-ye),Oe=E;Oe>=0;Oe--){let Ue=!0;for(let Ie=0;IeN&&(F=N)):F=N;const L=x.length;F>L/2&&(F=L/2);let z;for(z=0;z>>0,isFinite(F)?(F=F>>>0,N===void 0&&(N="utf8")):(N=F,F=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const L=this.length-E;if((F===void 0||F>L)&&(F=L),x.length>0&&(F<0||E<0)||E>this.length)throw new RangeError("Attempt to write outside buffer bounds");N||(N="utf8");let z=!1;for(;;)switch(N){case"hex":return k(this,x,E,F);case"utf8":case"utf-8":return T(this,x,E,F);case"ascii":case"latin1":case"binary":return B(this,x,E,F);case"base64":return M(this,x,E,F);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return U(this,x,E,F);default:if(z)throw new TypeError("Unknown encoding: "+N);N=(""+N).toLowerCase(),z=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function H(C,x,E){return x===0&&E===C.length?t.fromByteArray(C):t.fromByteArray(C.slice(x,E))}function Q(C,x,E){E=Math.min(C.length,E);const F=[];let N=x;for(;N239?4:L>223?3:L>191?2:1;if(N+ye<=E){let Le,Oe,Ue,Ie;switch(ye){case 1:L<128&&(z=L);break;case 2:Le=C[N+1],(Le&192)===128&&(Ie=(L&31)<<6|Le&63,Ie>127&&(z=Ie));break;case 3:Le=C[N+1],Oe=C[N+2],(Le&192)===128&&(Oe&192)===128&&(Ie=(L&15)<<12|(Le&63)<<6|Oe&63,Ie>2047&&(Ie<55296||Ie>57343)&&(z=Ie));break;case 4:Le=C[N+1],Oe=C[N+2],Ue=C[N+3],(Le&192)===128&&(Oe&192)===128&&(Ue&192)===128&&(Ie=(L&15)<<18|(Le&63)<<12|(Oe&63)<<6|Ue&63,Ie>65535&&Ie<1114112&&(z=Ie))}}z===null?(z=65533,ye=1):z>65535&&(z-=65536,F.push(z>>>10&1023|55296),z=56320|z&1023),F.push(z),N+=ye}return $(F)}const te=4096;function $(C){const x=C.length;if(x<=te)return String.fromCharCode.apply(String,C);let E="",F=0;for(;FF)&&(E=F);let N="";for(let L=x;LF&&(x=F),E<0?(E+=F,E<0&&(E=0)):E>F&&(E=F),EE)throw new RangeError("Trying to access beyond buffer length")}a.prototype.readUintLE=a.prototype.readUIntLE=function(x,E,F){x=x>>>0,E=E>>>0,F||I(x,E,this.length);let N=this[x],L=1,z=0;for(;++z>>0,E=E>>>0,F||I(x,E,this.length);let N=this[x+--E],L=1;for(;E>0&&(L*=256);)N+=this[x+--E]*L;return N},a.prototype.readUint8=a.prototype.readUInt8=function(x,E){return x=x>>>0,E||I(x,1,this.length),this[x]},a.prototype.readUint16LE=a.prototype.readUInt16LE=function(x,E){return x=x>>>0,E||I(x,2,this.length),this[x]|this[x+1]<<8},a.prototype.readUint16BE=a.prototype.readUInt16BE=function(x,E){return x=x>>>0,E||I(x,2,this.length),this[x]<<8|this[x+1]},a.prototype.readUint32LE=a.prototype.readUInt32LE=function(x,E){return x=x>>>0,E||I(x,4,this.length),(this[x]|this[x+1]<<8|this[x+2]<<16)+this[x+3]*16777216},a.prototype.readUint32BE=a.prototype.readUInt32BE=function(x,E){return x=x>>>0,E||I(x,4,this.length),this[x]*16777216+(this[x+1]<<16|this[x+2]<<8|this[x+3])},a.prototype.readBigUInt64LE=G(function(x){x=x>>>0,yt(x,"offset");const E=this[x],F=this[x+7];(E===void 0||F===void 0)&&Ve(x,this.length-8);const N=E+this[++x]*2**8+this[++x]*2**16+this[++x]*2**24,L=this[++x]+this[++x]*2**8+this[++x]*2**16+F*2**24;return BigInt(N)+(BigInt(L)<>>0,yt(x,"offset");const E=this[x],F=this[x+7];(E===void 0||F===void 0)&&Ve(x,this.length-8);const N=E*2**24+this[++x]*2**16+this[++x]*2**8+this[++x],L=this[++x]*2**24+this[++x]*2**16+this[++x]*2**8+F;return(BigInt(N)<>>0,E=E>>>0,F||I(x,E,this.length);let N=this[x],L=1,z=0;for(;++z=L&&(N-=Math.pow(2,8*E)),N},a.prototype.readIntBE=function(x,E,F){x=x>>>0,E=E>>>0,F||I(x,E,this.length);let N=E,L=1,z=this[x+--N];for(;N>0&&(L*=256);)z+=this[x+--N]*L;return L*=128,z>=L&&(z-=Math.pow(2,8*E)),z},a.prototype.readInt8=function(x,E){return x=x>>>0,E||I(x,1,this.length),this[x]&128?(255-this[x]+1)*-1:this[x]},a.prototype.readInt16LE=function(x,E){x=x>>>0,E||I(x,2,this.length);const F=this[x]|this[x+1]<<8;return F&32768?F|4294901760:F},a.prototype.readInt16BE=function(x,E){x=x>>>0,E||I(x,2,this.length);const F=this[x+1]|this[x]<<8;return F&32768?F|4294901760:F},a.prototype.readInt32LE=function(x,E){return x=x>>>0,E||I(x,4,this.length),this[x]|this[x+1]<<8|this[x+2]<<16|this[x+3]<<24},a.prototype.readInt32BE=function(x,E){return x=x>>>0,E||I(x,4,this.length),this[x]<<24|this[x+1]<<16|this[x+2]<<8|this[x+3]},a.prototype.readBigInt64LE=G(function(x){x=x>>>0,yt(x,"offset");const E=this[x],F=this[x+7];(E===void 0||F===void 0)&&Ve(x,this.length-8);const N=this[x+4]+this[x+5]*2**8+this[x+6]*2**16+(F<<24);return(BigInt(N)<>>0,yt(x,"offset");const E=this[x],F=this[x+7];(E===void 0||F===void 0)&&Ve(x,this.length-8);const N=(E<<24)+this[++x]*2**16+this[++x]*2**8+this[++x];return(BigInt(N)<>>0,E||I(x,4,this.length),n.read(this,x,!0,23,4)},a.prototype.readFloatBE=function(x,E){return x=x>>>0,E||I(x,4,this.length),n.read(this,x,!1,23,4)},a.prototype.readDoubleLE=function(x,E){return x=x>>>0,E||I(x,8,this.length),n.read(this,x,!0,52,8)},a.prototype.readDoubleBE=function(x,E){return x=x>>>0,E||I(x,8,this.length),n.read(this,x,!1,52,8)};function O(C,x,E,F,N,L){if(!a.isBuffer(C))throw new TypeError('"buffer" argument must be a Buffer instance');if(x>N||xC.length)throw new RangeError("Index out of range")}a.prototype.writeUintLE=a.prototype.writeUIntLE=function(x,E,F,N){if(x=+x,E=E>>>0,F=F>>>0,!N){const ye=Math.pow(2,8*F)-1;O(this,x,E,F,ye,0)}let L=1,z=0;for(this[E]=x&255;++z>>0,F=F>>>0,!N){const ye=Math.pow(2,8*F)-1;O(this,x,E,F,ye,0)}let L=F-1,z=1;for(this[E+L]=x&255;--L>=0&&(z*=256);)this[E+L]=x/z&255;return E+F},a.prototype.writeUint8=a.prototype.writeUInt8=function(x,E,F){return x=+x,E=E>>>0,F||O(this,x,E,1,255,0),this[E]=x&255,E+1},a.prototype.writeUint16LE=a.prototype.writeUInt16LE=function(x,E,F){return x=+x,E=E>>>0,F||O(this,x,E,2,65535,0),this[E]=x&255,this[E+1]=x>>>8,E+2},a.prototype.writeUint16BE=a.prototype.writeUInt16BE=function(x,E,F){return x=+x,E=E>>>0,F||O(this,x,E,2,65535,0),this[E]=x>>>8,this[E+1]=x&255,E+2},a.prototype.writeUint32LE=a.prototype.writeUInt32LE=function(x,E,F){return x=+x,E=E>>>0,F||O(this,x,E,4,4294967295,0),this[E+3]=x>>>24,this[E+2]=x>>>16,this[E+1]=x>>>8,this[E]=x&255,E+4},a.prototype.writeUint32BE=a.prototype.writeUInt32BE=function(x,E,F){return x=+x,E=E>>>0,F||O(this,x,E,4,4294967295,0),this[E]=x>>>24,this[E+1]=x>>>16,this[E+2]=x>>>8,this[E+3]=x&255,E+4};function Z(C,x,E,F,N){xt(x,F,N,C,E,7);let L=Number(x&BigInt(4294967295));C[E++]=L,L=L>>8,C[E++]=L,L=L>>8,C[E++]=L,L=L>>8,C[E++]=L;let z=Number(x>>BigInt(32)&BigInt(4294967295));return C[E++]=z,z=z>>8,C[E++]=z,z=z>>8,C[E++]=z,z=z>>8,C[E++]=z,E}function K(C,x,E,F,N){xt(x,F,N,C,E,7);let L=Number(x&BigInt(4294967295));C[E+7]=L,L=L>>8,C[E+6]=L,L=L>>8,C[E+5]=L,L=L>>8,C[E+4]=L;let z=Number(x>>BigInt(32)&BigInt(4294967295));return C[E+3]=z,z=z>>8,C[E+2]=z,z=z>>8,C[E+1]=z,z=z>>8,C[E]=z,E+8}a.prototype.writeBigUInt64LE=G(function(x,E=0){return Z(this,x,E,BigInt(0),BigInt("0xffffffffffffffff"))}),a.prototype.writeBigUInt64BE=G(function(x,E=0){return K(this,x,E,BigInt(0),BigInt("0xffffffffffffffff"))}),a.prototype.writeIntLE=function(x,E,F,N){if(x=+x,E=E>>>0,!N){const Le=Math.pow(2,8*F-1);O(this,x,E,F,Le-1,-Le)}let L=0,z=1,ye=0;for(this[E]=x&255;++L>0)-ye&255;return E+F},a.prototype.writeIntBE=function(x,E,F,N){if(x=+x,E=E>>>0,!N){const Le=Math.pow(2,8*F-1);O(this,x,E,F,Le-1,-Le)}let L=F-1,z=1,ye=0;for(this[E+L]=x&255;--L>=0&&(z*=256);)x<0&&ye===0&&this[E+L+1]!==0&&(ye=1),this[E+L]=(x/z>>0)-ye&255;return E+F},a.prototype.writeInt8=function(x,E,F){return x=+x,E=E>>>0,F||O(this,x,E,1,127,-128),x<0&&(x=255+x+1),this[E]=x&255,E+1},a.prototype.writeInt16LE=function(x,E,F){return x=+x,E=E>>>0,F||O(this,x,E,2,32767,-32768),this[E]=x&255,this[E+1]=x>>>8,E+2},a.prototype.writeInt16BE=function(x,E,F){return x=+x,E=E>>>0,F||O(this,x,E,2,32767,-32768),this[E]=x>>>8,this[E+1]=x&255,E+2},a.prototype.writeInt32LE=function(x,E,F){return x=+x,E=E>>>0,F||O(this,x,E,4,2147483647,-2147483648),this[E]=x&255,this[E+1]=x>>>8,this[E+2]=x>>>16,this[E+3]=x>>>24,E+4},a.prototype.writeInt32BE=function(x,E,F){return x=+x,E=E>>>0,F||O(this,x,E,4,2147483647,-2147483648),x<0&&(x=4294967295+x+1),this[E]=x>>>24,this[E+1]=x>>>16,this[E+2]=x>>>8,this[E+3]=x&255,E+4},a.prototype.writeBigInt64LE=G(function(x,E=0){return Z(this,x,E,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),a.prototype.writeBigInt64BE=G(function(x,E=0){return K(this,x,E,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function pe(C,x,E,F,N,L){if(E+F>C.length)throw new RangeError("Index out of range");if(E<0)throw new RangeError("Index out of range")}function Me(C,x,E,F,N){return x=+x,E=E>>>0,N||pe(C,x,E,4),n.write(C,x,E,F,23,4),E+4}a.prototype.writeFloatLE=function(x,E,F){return Me(this,x,E,!0,F)},a.prototype.writeFloatBE=function(x,E,F){return Me(this,x,E,!1,F)};function tt(C,x,E,F,N){return x=+x,E=E>>>0,N||pe(C,x,E,8),n.write(C,x,E,F,52,8),E+8}a.prototype.writeDoubleLE=function(x,E,F){return tt(this,x,E,!0,F)},a.prototype.writeDoubleBE=function(x,E,F){return tt(this,x,E,!1,F)},a.prototype.copy=function(x,E,F,N){if(!a.isBuffer(x))throw new TypeError("argument should be a Buffer");if(F||(F=0),!N&&N!==0&&(N=this.length),E>=x.length&&(E=x.length),E||(E=0),N>0&&N=this.length)throw new RangeError("Index out of range");if(N<0)throw new RangeError("sourceEnd out of bounds");N>this.length&&(N=this.length),x.length-E>>0,F=F===void 0?this.length:F>>>0,x||(x=0);let L;if(typeof x=="number")for(L=E;L2**32?N=nt(String(E)):typeof E=="bigint"&&(N=String(E),(E>BigInt(2)**BigInt(32)||E<-(BigInt(2)**BigInt(32)))&&(N=nt(N)),N+="n"),F+=` It must be ${x}. Received ${N}`,F},RangeError);function nt(C){let x="",E=C.length;const F=C[0]==="-"?1:0;for(;E>=F+4;E-=3)x=`_${C.slice(E-3,E)}${x}`;return`${C.slice(0,E)}${x}`}function Ke(C,x,E){yt(x,"offset"),(C[x]===void 0||C[x+E]===void 0)&&Ve(x,C.length-(E+1))}function xt(C,x,E,F,N,L){if(C>E||C3?x===0||x===BigInt(0)?ye=`>= 0${z} and < 2${z} ** ${(L+1)*8}${z}`:ye=`>= -(2${z} ** ${(L+1)*8-1}${z}) and < 2 ** ${(L+1)*8-1}${z}`:ye=`>= ${x}${z} and <= ${E}${z}`,new vt.ERR_OUT_OF_RANGE("value",ye,C)}Ke(F,N,L)}function yt(C,x){if(typeof C!="number")throw new vt.ERR_INVALID_ARG_TYPE(x,"number",C)}function Ve(C,x,E){throw Math.floor(C)!==C?(yt(C,E),new vt.ERR_OUT_OF_RANGE(E||"offset","an integer",C)):x<0?new vt.ERR_BUFFER_OUT_OF_BOUNDS:new vt.ERR_OUT_OF_RANGE(E||"offset",`>= ${E?1:0} and <= ${x}`,C)}const Ct=/[^+/0-9A-Za-z-_]/g;function Ut(C){if(C=C.split("=")[0],C=C.trim().replace(Ct,""),C.length<2)return"";for(;C.length%4!==0;)C=C+"=";return C}function ce(C,x){x=x||1/0;let E;const F=C.length;let N=null;const L=[];for(let z=0;z55295&&E<57344){if(!N){if(E>56319){(x-=3)>-1&&L.push(239,191,189);continue}else if(z+1===F){(x-=3)>-1&&L.push(239,191,189);continue}N=E;continue}if(E<56320){(x-=3)>-1&&L.push(239,191,189),N=E;continue}E=(N-55296<<10|E-56320)+65536}else N&&(x-=3)>-1&&L.push(239,191,189);if(N=null,E<128){if((x-=1)<0)break;L.push(E)}else if(E<2048){if((x-=2)<0)break;L.push(E>>6|192,E&63|128)}else if(E<65536){if((x-=3)<0)break;L.push(E>>12|224,E>>6&63|128,E&63|128)}else if(E<1114112){if((x-=4)<0)break;L.push(E>>18|240,E>>12&63|128,E>>6&63|128,E&63|128)}else throw new Error("Invalid code point")}return L}function jt(C){const x=[];for(let E=0;E>8,N=E%256,L.push(N),L.push(F);return L}function Se(C){return t.toByteArray(Ut(C))}function wt(C,x,E,F){let N;for(N=0;N=x.length||N>=C.length);++N)x[N+E]=C[N];return N}function ee(C,x){return C instanceof x||C!=null&&C.constructor!=null&&C.constructor.name!=null&&C.constructor.name===x.name}function At(C){return C!==C}const an=function(){const C="0123456789abcdef",x=new Array(256);for(let E=0;E<16;++E){const F=E*16;for(let N=0;N<16;++N)x[F+N]=C[E]+C[N]}return x}();function G(C){return typeof BigInt=="undefined"?oe:C}function oe(){throw new Error("BigInt not supported")}})(np);function nE(e){return Array.isArray?Array.isArray(e):Xo(e)==="[object Array]"}_t.isArray=nE;function iE(e){return typeof e=="boolean"}_t.isBoolean=iE;function rE(e){return e===null}_t.isNull=rE;function sE(e){return e==null}_t.isNullOrUndefined=sE;function oE(e){return typeof e=="number"}_t.isNumber=oE;function aE(e){return typeof e=="string"}_t.isString=aE;function lE(e){return typeof e=="symbol"}_t.isSymbol=lE;function uE(e){return e===void 0}_t.isUndefined=uE;function cE(e){return Xo(e)==="[object RegExp]"}_t.isRegExp=cE;function hE(e){return typeof e=="object"&&e!==null}_t.isObject=hE;function fE(e){return Xo(e)==="[object Date]"}_t.isDate=fE;function dE(e){return Xo(e)==="[object Error]"||e instanceof Error}_t.isError=dE;function pE(e){return typeof e=="function"}_t.isFunction=pE;function mE(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"||typeof e=="symbol"||typeof e=="undefined"}_t.isPrimitive=mE;_t.isBuffer=np.Buffer.isBuffer;function Xo(e){return Object.prototype.toString.call(e)}const rp=32,br=7,Mh=256,Oh=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9];let le;const Lh=e=>e<1e5?e<100?e<10?0:1:e<1e4?e<1e3?2:3:4:e<1e7?e<1e6?5:6:e<1e9?e<1e8?7:8:9;function Rh(e,t){if(e===t)return 0;if(~~e===e&&~~t===t){if(e===0||t===0)return e=0)return-1;if(e>=0)return 1;e=-e,t=-t}const r=Lh(e),s=Lh(t);let o=0;return rs&&(t*=Oh[r-s-1],e/=10,o=1),e===t?o:e=rp;)t|=e&1,e>>=1;return e+t}function Ph(e,t,n,i){let r=t+1;if(r===n)return 1;if(i(e[r++],e[t])<0){for(;r=0;)r++;return r-t}function $h(e,t,n){for(n--;t>>1;r(s,e[c])<0?l=c:a=c+1}let u=i-a;switch(u){case 3:e[a+3]=e[a+2],le[a+3]=le[a+2];case 2:e[a+2]=e[a+1],le[a+2]=le[a+1];case 1:e[a+1]=e[a],le[a+1]=le[a];break;default:for(;u>0;)e[a+u]=e[a+u-1],le[a+u]=le[a+u-1],u--}e[a]=s,le[a]=o}}function Ta(e,t,n,i,r,s){let o=0,a=0,l=1;if(s(e,t[n+r])>0){for(a=i-r;l0;)o=l,l=(l<<1)+1,l<=0&&(l=a);l>a&&(l=a),o+=r,l+=r}else{for(a=r+1;la&&(l=a);const u=o;o=r-l,l=r-u}for(o++;o>>1);s(e,t[n+u])>0?o=u+1:l=u}return l}function Ba(e,t,n,i,r,s){let o=0,a=0,l=1;if(s(e,t[n+r])<0){for(a=r+1;la&&(l=a);const u=o;o=r-l,l=r-u}else{for(a=i-r;l=0;)o=l,l=(l<<1)+1,l<=0&&(l=a);l>a&&(l=a),o+=r,l+=r}for(o++;o>>1);s(e,t[n+u])<0?l=u:o=u+1}return l}class _E{constructor(t,n){this.array=t,this.compare=n;const{length:i}=t;this.length=i,this.minGallop=br,this.tmpStorageLength=i<2*Mh?i>>>1:Mh,this.tmp=new Array(this.tmpStorageLength),this.tmpIndex=new Array(this.tmpStorageLength),this.stackLength=i<120?5:i<1542?10:i<119151?19:40,this.runStart=new Array(this.stackLength),this.runLength=new Array(this.stackLength),this.stackSize=0}pushRun(t,n){this.runStart[this.stackSize]=t,this.runLength[this.stackSize]=n,this.stackSize+=1}mergeRuns(){for(;this.stackSize>1;){let t=this.stackSize-2;if(t>=1&&this.runLength[t-1]<=this.runLength[t]+this.runLength[t+1]||t>=2&&this.runLength[t-2]<=this.runLength[t]+this.runLength[t-1])this.runLength[t-1]this.runLength[t+1])break;this.mergeAt(t)}}forceMergeRuns(){for(;this.stackSize>1;){let t=this.stackSize-2;t>0&&this.runLength[t-1]=br||h>=br);if(m)break;d<0&&(d=0),d+=2}if(this.minGallop=d,d<1&&(this.minGallop=1),n===1){for(u=0;u=0;u--)o[_+u]=o[d+u],le[_+u]=le[d+u];o[f]=a[p],le[f]=l[p];return}let{minGallop:h}=this;for(;;){let m=0,g=0,v=!1;do if(s(a[p],o[c])<0){if(o[f]=o[c],le[f]=le[c],f--,c--,m++,g=0,--n===0){v=!0;break}}else if(o[f]=a[p],le[f]=l[p],f--,p--,g++,m=0,--r===1){v=!0;break}while((m|g)=0;u--)o[_+u]=o[d+u],le[_+u]=le[d+u];if(n===0){v=!0;break}}if(o[f]=a[p],le[f]=l[p],f--,p--,--r===1){v=!0;break}if(g=r-Ta(o[c],a,0,r,r-1,s),g!==0){for(f-=g,p-=g,r-=g,_=f+1,d=p+1,u=0;u=br||g>=br);if(v)break;h<0&&(h=0),h+=2}if(this.minGallop=h,h<1&&(this.minGallop=1),r===1){for(f-=n,c-=n,_=f+1,d=c+1,u=n-1;u>=0;u--)o[_+u]=o[d+u],le[_+u]=le[d+u];o[f]=a[p],le[f]=l[p]}else{if(r===0)throw new Error("mergeHigh preconditions were not respected");for(d=f-(r-1),u=0;uu&&(c=u),zh(e,n,n+c,n+a,t),a=c}l.pushRun(n,a),l.mergeRuns(),o-=a,n+=a}while(o!==0);return l.forceMergeRuns(),le}var xE={sort:vE};const yE=Object.prototype.hasOwnProperty;var wE=(e,t)=>yE.call(e,t);const su=wE,{isObject:Uh,isArray:EE}=_t,ou="before",sp="after-prop",op="after-colon",ap="after-value",lp="after",up="before-all",cp="after-all",bE="[",AE="]",SE="{",DE="}",CE=",",kE="",FE="-",au=[ou,sp,op,ap,lp],IE=[ou,up,cp].map(Symbol.for),hp=":",jh=void 0,as=(e,t)=>Symbol.for(e+hp+t),Jo=(e,t,n)=>Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0}),Sl=(e,t,n,i,r,s)=>{const o=as(r,i);if(!su(t,o))return;const a=n===i?o:as(r,n);Jo(e,a,t[o]),s&&delete t[o]},fp=(e,t,n,i,r)=>{au.forEach(s=>{Sl(e,t,n,i,s,r)})},TE=(e,t,n)=>{t!==n&&au.forEach(i=>{const r=as(i,n);if(!su(e,r)){Sl(e,e,n,t,i,!0);return}const s=e[r];delete e[r],Sl(e,e,n,t,i,!0),Jo(e,as(i,t),s)})},Na=(e,t)=>{IE.forEach(n=>{const i=t[n];i&&Jo(e,n,i)})},BE=(e,t,n)=>(n.forEach(i=>{!su(t,i)||(e[i]=t[i],fp(e,t,i,i))}),e);var Go={SYMBOL_PREFIXES:au,PREFIX_BEFORE:ou,PREFIX_AFTER_PROP:sp,PREFIX_AFTER_COLON:op,PREFIX_AFTER_VALUE:ap,PREFIX_AFTER:lp,PREFIX_BEFORE_ALL:up,PREFIX_AFTER_ALL:cp,BRACKET_OPEN:bE,BRACKET_CLOSE:AE,CURLY_BRACKET_OPEN:SE,CURLY_BRACKET_CLOSE:DE,COLON:hp,COMMA:CE,MINUS:FE,EMPTY:kE,UNDEFINED:jh,symbol:as,define:Jo,copy_comments:fp,swap_comments:TE,assign_non_prop_comments:Na,assign(e,t,n){if(!Uh(e))throw new TypeError("Cannot convert undefined or null to object");if(!Uh(t))return e;if(n===jh)n=Object.keys(t),Na(e,t);else if(EE(n))n.length===0&&Na(e,t);else throw new TypeError("keys must be array or undefined");return BE(e,t,n)}};const{isArray:NE}=_t,{sort:ME}=xE,{SYMBOL_PREFIXES:OE,UNDEFINED:Hh,symbol:LE,copy_comments:RE,swap_comments:dp}=Go,PE=e=>{const{length:t}=e;let n=0;const i=t/2;for(;n{RE(e,t,n+i,n,r)},$i=(e,t,n,i,r,s)=>{if(r>0){let a=i;for(;a-- >0;)Vh(e,t,n+a,r,s);return}let o=0;for(;o{OE.forEach(n=>{const i=LE(n,t);delete e[i]})},$E=(e,t)=>{let n=t;for(;n in e;)n=e[n];return n};class vo extends Array{splice(...t){const{length:n}=this,i=super.splice(...t);let[r,s,...o]=t;r<0&&(r+=n),arguments.length===1?s=n-r:s=Math.min(n-r,s);const{length:a}=o,l=a-s,u=r+s,c=n-u;return $i(this,this,u,c,l,!0),i}slice(...t){const{length:n}=this,i=super.slice(...t);if(!i.length)return new vo;let[r,s]=t;return s===Hh?s=n:s<0&&(s+=n),r<0?r+=n:r===Hh&&(r=0),$i(i,this,r,s-r,-r),i}unshift(...t){const{length:n}=this,i=super.unshift(...t),{length:r}=t;return r>0&&$i(this,this,0,n,r,!0),i}shift(){const t=super.shift(),{length:n}=this;return Xh(this,0),$i(this,this,1,n,-1,!0),t}reverse(){return super.reverse(),PE(this),this}pop(){const t=super.pop();return Xh(this,this.length),t}concat(...t){let{length:n}=this;const i=super.concat(...t);return t.length&&($i(i,this,0,this.length,0),t.forEach(r=>{const s=n;n+=NE(r)?r.length:1,r instanceof vo&&$i(i,r,0,r.length,s)})),i}sort(...t){const n=ME(this,...t.slice(0,1)),i=Object.create(null);return n.forEach((r,s)=>{if(r===s)return;const o=$E(i,r);o!==s&&(i[s]=o,dp(this,s,o))}),this}}var pp={CommentArray:vo};const zE=tp.exports,{CommentArray:UE}=pp,{PREFIX_BEFORE:xo,PREFIX_AFTER_PROP:jE,PREFIX_AFTER_COLON:HE,PREFIX_AFTER_VALUE:mp,PREFIX_AFTER:lu,PREFIX_BEFORE_ALL:VE,PREFIX_AFTER_ALL:XE,BRACKET_OPEN:JE,BRACKET_CLOSE:Jh,CURLY_BRACKET_OPEN:GE,CURLY_BRACKET_CLOSE:Gh,COLON:gp,COMMA:_p,MINUS:Yh,EMPTY:YE,UNDEFINED:Yo,define:uu,assign_non_prop_comments:WE}=Go,vp=e=>zE.tokenize(e,{comment:!0,loc:!0}),cu=[];let ai=null,gn=null;const hu=[];let li,xp=!1,yp=!1,ls=null,us=null,St=null,wp,yo=null;const Ep=()=>{hu.length=cu.length=0,us=null,li=Yo},ZE=()=>{Ep(),ls.length=0,gn=ai=ls=us=St=yo=null},fu=e=>Symbol.for(li!==Yo?e+gp+li:e),du=(e,t)=>yo?yo(e,t):t,bp=()=>{const e=new SyntaxError(`Unexpected token ${St.value.slice(0,1)}`);throw Object.assign(e,St.loc.start),e},Ap=()=>{const e=new SyntaxError("Unexpected end of JSON input");throw Object.assign(e,us?us.loc.end:{line:1,column:0}),e},Jt=()=>{const e=ls[++wp];yp=St&&e&&St.loc.end.line===e.loc.start.line||!1,us=St,St=e},Dl=()=>(St||Ap(),St.type==="Punctuator"?St.value:St.type),Si=e=>Dl()===e,eo=e=>{Si(e)||bp()},pu=e=>{cu.push(ai),ai=e},mu=()=>{ai=cu.pop()},Sp=()=>{if(!gn)return;const e=[];for(const n of gn)if(n.inline)e.push(n);else break;const{length:t}=e;!t||(t===gn.length?gn=null:gn.splice(0,t),uu(ai,fu(lu),e))},Zn=e=>{!gn||(uu(ai,fu(e),gn),gn=null)},_n=e=>{const t=[];for(;St&&(Si("LineComment")||Si("BlockComment"));){const n=Je(ge({},St),{inline:yp});t.push(n),Jt()}if(!xp&&!!t.length){if(e){uu(ai,fu(e),t);return}gn=t}},wo=(e,t)=>{t&&hu.push(li),li=e},Dp=()=>{li=hu.pop()},KE=()=>{const e={};pu(e),wo(Yo,!0);let t=!1,n;for(_n();!Si(Gh)&&!(t&&(Zn(mp),eo(_p),Jt(),_n(),Sp(),Si(Gh)));)t=!0,eo("String"),n=JSON.parse(St.value),wo(n),Zn(xo),Jt(),_n(jE),eo(gp),Jt(),_n(HE),e[n]=du(n,gu()),_n();return t&&Zn(lu),Jt(),li=void 0,t||Zn(xo),mu(),Dp(),e},qE=()=>{const e=new UE;pu(e),wo(Yo,!0);let t=!1,n=0;for(_n();!Si(Jh)&&!(t&&(Zn(mp),eo(_p),Jt(),_n(),Sp(),Si(Jh)));)t=!0,wo(n),Zn(xo),e[n]=du(n,gu()),n++,_n();return t&&Zn(lu),Jt(),li=void 0,t||Zn(xo),mu(),Dp(),e};function gu(){let e=Dl();if(e===GE)return Jt(),KE();if(e===JE)return Jt(),qE();let t=YE;e===Yh&&(Jt(),e=Dl(),t=Yh);let n;switch(e){case"String":case"Boolean":case"Null":case"Numeric":return n=St.value,Jt(),JSON.parse(t+n)}}const QE=e=>Object(e)===e,e5=(e,t,n)=>{Ep(),ls=vp(e),yo=t,xp=n,ls.length||Ap(),wp=-1,Jt(),pu({}),_n(VE);let i=gu();return _n(XE),St&&bp(),!n&&i!==null&&(QE(i)||(i=new Object(i)),WE(i,ai)),mu(),i=du("",i),ZE(),i};var t5={parse:e5,tokenize:vp};/*! + * repeat-string + * + * Copyright (c) 2014-2015, Jon Schlinkert. + * Licensed under the MIT License. + */var An="",Ma,n5=i5;function i5(e,t){if(typeof e!="string")throw new TypeError("expected a string");if(t===1)return e;if(t===2)return e+e;var n=e.length*t;if(Ma!==e||typeof Ma=="undefined")Ma=e,An="";else if(An.length>=n)return An.substr(0,n);for(;n>An.length&&t>1;)t&1&&(An+=e),t>>=1,e+=e;return An+=e,An=An.substr(0,n),An}const{isArray:_u,isObject:Cp,isFunction:Cl,isNumber:r5,isString:s5}=_t,o5=n5,{PREFIX_BEFORE_ALL:a5,PREFIX_BEFORE:kp,PREFIX_AFTER_PROP:l5,PREFIX_AFTER_COLON:u5,PREFIX_AFTER_VALUE:c5,PREFIX_AFTER:vu,PREFIX_AFTER_ALL:h5,BRACKET_OPEN:f5,BRACKET_CLOSE:d5,CURLY_BRACKET_OPEN:p5,CURLY_BRACKET_CLOSE:m5,COLON:g5,COMMA:Fp,EMPTY:zt,UNDEFINED:_5}=Go,Oa=/[\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,xu=" ",_i=` +`,Ip="null",Tp=e=>`${kp}:${e}`,v5=e=>`${l5}:${e}`,x5=e=>`${u5}:${e}`,Bp=e=>`${c5}:${e}`,Np=e=>`${vu}:${e}`,y5={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},w5=e=>(Oa.lastIndex=0,Oa.test(e)?e.replace(Oa,t=>{const n=y5[t];return typeof n=="string"?n:t}):e),Mp=e=>`"${w5(e)}"`,E5=(e,t)=>t?`//${e}`:`/*${e}*/`,Pt=(e,t,n,i)=>{const r=e[Symbol.for(t)];if(!r||!r.length)return zt;let s=!1;const o=r.reduce((a,{inline:l,type:u,value:c})=>{const p=l?xu:_i+n;return s=u==="LineComment",a+p+E5(c,s)},zt);return i||s?o+_i+n:o};let hr=null,Ds=zt;const b5=()=>{hr=null,Ds=zt},cs=(e,t,n)=>e?t?e+t.trim()+_i+n:e.trimRight()+_i+n:t?t.trimRight()+_i+n:zt,Op=(e,t,n)=>{const i=Pt(t,kp,n+Ds,!0);return cs(i,e,n)},A5=(e,t)=>{const n=t+Ds,{length:i}=e;let r=zt,s=zt;for(let o=0;o{if(!e)return"null";const n=t+Ds;let i=zt,r=zt,s=!0;const o=_u(hr)?hr:Object.keys(e),a=l=>{const u=yu(l,e,n);if(u===_5)return;s||(i+=Fp),s=!1,i+=cs(r,Pt(e,Tp(l),n),n)||_i+n,i+=Mp(l)+Pt(e,v5(l),n)+g5+Pt(e,x5(l),n)+xu+u+Pt(e,Bp(l),n),r=Pt(e,Np(l),n)};return o.forEach(a),i+=cs(r,Pt(e,vu,n),n),p5+Op(i,e,t)+m5};function yu(e,t,n){let i=t[e];switch(Cp(i)&&Cl(i.toJSON)&&(i=i.toJSON(e)),Cl(hr)&&(i=hr.call(t,e,i)),typeof i){case"string":return Mp(i);case"number":return Number.isFinite(i)?String(i):Ip;case"boolean":case"null":return String(i);case"object":return _u(i)?A5(i,n):S5(i,n)}}const D5=e=>s5(e)?e:r5(e)?o5(xu,e):zt,{toString:C5}=Object.prototype,k5=["[object Number]","[object String]","[object Boolean]"],F5=e=>{if(typeof e!="object")return!1;const t=C5.call(e);return k5.includes(t)};var I5=(e,t,n)=>{const i=D5(n);if(!i)return JSON.stringify(e,t);!Cl(t)&&!_u(t)&&(t=null),hr=t,Ds=i;const r=F5(e)?JSON.stringify(e):yu("",{"":e},zt);return b5(),Cp(e)?Pt(e,a5,zt).trimLeft()+r+Pt(e,h5,zt).trimRight():r};const{parse:T5,tokenize:B5}=t5,N5=I5,{CommentArray:M5}=pp,{assign:O5}=Go;var Wh={parse:T5,stringify:N5,tokenize:B5,CommentArray:M5,assign:O5};function to(e,t){return e.schema.hook(L5,new q.ModelPath(e),e.data,{blockStates:t})}const L5={base({},e,t){return t},choice({switchNode:e},t,n,i){return e.hook(this,t,n,i)},list({children:e},t,n,i){if(!Array.isArray(n))return n;const r=n.map((s,o)=>e.hook(this,t.push(o),s.node,i));for(const s of Object.getOwnPropertySymbols(n))r[s]=n[s];return r},map({children:e,config:t},n,i,r){var a,l;if(i===void 0)return;const s=((a=t.validation)==null?void 0:a.validator)==="block_state_map"?(l=r.blockStates)==null?void 0:l[q.relativePath(n,t.validation.params.id).get()]:null,o={};Object.keys(i).forEach(u=>{var c;s&&!Object.keys((c=s.properties)!=null?c:{}).includes(u)||(o[u]=e.hook(this,n.push(u),i[u],r))});for(const u of Object.getOwnPropertySymbols(i))o[u]=i[u];return o},object({getActiveFields:e},t,n,i){if(n==null||typeof n!="object")return n;const r={},s=e(t);Object.keys(s).filter(o=>s[o].enabled(t)).forEach(o=>{const a=s[o].hook(this,t.push(o),n[o],i);a!=null&&(r[o]=a)});for(const o of Object.getOwnPropertySymbols(n))r[o]=n[o];return r}},La={"2_spaces":2,"4_spaces":4,tabs:" ",minified:void 0},Ra={json:{parse:Wh.parse,stringify:(e,t)=>Wh.stringify(e,null,t)+` +`},yaml:{parse:Za.load,stringify:(e,t)=>Za.dump(e,{flowLevel:t===void 0?0:-1,indent:typeof t=="string"?4:t})}};function R5({name:e,model:t,blockStates:n,doCopy:i,doDownload:r,doImport:s,copySuccess:o,onError:a}){const{locale:l}=We(),[u,c]=Y(pt.getIndent()),[p,f]=Y(pt.getFormat()),[d,_]=Y(pt.getHighlighting()),[h,m]=Y(!1),g=Pe(null),v=Pe(),y=Pe(),A=Pe(),b=Pe(),S=mt((B,M)=>{const U=to(B,M);return Ra[p].stringify(U,La[u])},[u,p]);me(()=>{v.current=()=>{if(!(!t||!n))try{const B=S(t,n);b.current.setValue(B)}catch(B){B instanceof Error?(B.message=`Error getting JSON output: ${B.message}`,a(B)):a(`Error getting JSON output: ${Yt(B)}`),console.error(B),b.current.setValue("")}},y.current=()=>{const B=b.current.getValue();if(B.length!==0)try{const M=Ra[p].parse(B);t==null||t.reset(q.DataModel.wrapLists(M),!1)}catch(M){M instanceof Error?(M.message=`Error importing: ${M.message}`,a(M)):a(`Error importing: ${Yt(M)}`),console.error(M)}}},[t,n,u,p,d]),me(()=>{d?(m(!1),b.current={getValue(){return""},setValue(){},configure(){},select(){}},Ce(()=>import("./index.8ac52a74.js").then(function(B){return B.i}),[]).then(async B=>{await Promise.all([Ce(()=>import("./json.c327d69b.js").then(function(U){return U.j}),[]),Ce(()=>import("./yaml.e8f3b9ab.js"),[])]);const M=B.edit("editor");M.setOptions({fontSize:14,showFoldWidgets:!1,highlightSelectedWord:!1}),M.$blockScrolling=1/0,M.on("blur",U=>y.current(U)),M.getSession().setMode("ace/mode/json"),b.current={getValue(){return M.getSession().getValue()},setValue(U){M.getSession().setValue(U)},configure(U,H){M.setOption("useSoftTabs",U!=="tabs"),M.setOption("tabSize",U==="tabs"?4:La[U]),M.getSession().setMode(`ace/mode/${H}`)},select(){M.selectAll()}},m(!0)})):b.current={getValue(){return A.current.value},setValue(B){A.current.value=B},configure(){},select(){}}},[d]),Mo(t,()=>{v.current()}),me(()=>{t&&v.current()},[t]),me(()=>{(!d||h)&&(b.current.configure(u,p),v.current())},[u,p,d,h]),me(()=>{i&&t&&n&&navigator.clipboard.writeText(S(t,n)).then(()=>{o()})},[i]),me(()=>{if(r&&t&&n&&g.current){const B=encodeURIComponent(S(t,n));g.current.setAttribute("href",`data:text/json;charset=utf-8,${B}`),g.current.setAttribute("download",`${e}.${p}`),g.current.click()}},[r]),me(()=>{s&&b.current&&(b.current.setValue(""),b.current.select())},[s]);const D=B=>{pt.setIndent(B),c(B)},k=B=>{pt.setFormat(B),f(B)},T=B=>{pt.setHighlighting(B),_(B)};return w(xe,null,w("div",{class:"controls source-controls"},w(Tt,{icon:"gear",tooltip:l("output_settings"),"data-cy":"source-controls"},Object.entries(La).map(([B])=>w(fe,{label:l(`indentation.${B}`),active:u===B,onClick:()=>D(B)})),w("hr",null),Object.keys(Ra).map(B=>w(fe,{label:l(`format.${B}`),active:p===B,onClick:()=>k(B)})),w("hr",null),w(fe,{icon:d?"square_fill":"square",label:l("highlighting"),onClick:()=>T(!d)}))),d?w("pre",{id:"editor",class:"source"}):w("textarea",{ref:A,class:"source",spellcheck:!1,autocorrect:"off",onBlur:y.current}),w("a",{ref:g,style:"display: none;"}))}function Lp(e,t){for(var n in t)e[n]=t[n];return e}function kl(e,t){for(var n in e)if(n!=="__source"&&!(n in t))return!0;for(var i in t)if(i!=="__source"&&e[i]!==t[i])return!0;return!1}function Fl(e){this.props=e}function Rp(e,t){function n(r){var s=this.props.ref,o=s==r.ref;return!o&&s&&(s.call?s(null):s.current=null),t?!t(this.props,r)||!o:kl(this.props,r)}function i(r){return this.shouldComponentUpdate=n,w(e,r)}return i.displayName="Memo("+(e.displayName||e.name)+")",i.prototype.isReactComponent=!0,i.__f=!0,i}(Fl.prototype=new tn).isPureReactComponent=!0,Fl.prototype.shouldComponentUpdate=function(e,t){return kl(this.props,e)||kl(this.state,t)};var Zh=ue.__b;ue.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),Zh&&Zh(e)};var P5=typeof Symbol!="undefined"&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function $5(e){function t(n,i){var r=Lp({},n);return delete r.ref,e(r,(i=n.ref||i)&&(typeof i!="object"||"current"in i)?i:null)}return t.$$typeof=P5,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(e.displayName||e.name)+")",t}var Kh=function(e,t){return e==null?null:nn(nn(e).map(t))},z5={map:Kh,forEach:Kh,count:function(e){return e?nn(e).length:0},only:function(e){var t=nn(e);if(t.length!==1)throw"Children.only";return t[0]},toArray:nn},U5=ue.__e;ue.__e=function(e,t,n){if(e.then){for(var i,r=t;r=r.__;)if((i=r.__c)&&i.__c)return t.__e==null&&(t.__e=n.__e,t.__k=n.__k),i.__c(e,t)}U5(e,t,n)};var qh=ue.unmount;function no(){this.__u=0,this.t=null,this.__b=null}function Pp(e){var t=e.__.__c;return t&&t.__e&&t.__e(e)}function j5(e){var t,n,i;function r(s){if(t||(t=e()).then(function(o){n=o.default||o},function(o){i=o}),i)throw i;if(!n)throw t;return w(n,s)}return r.displayName="Lazy",r.__f=!0,r}function Ir(){this.u=null,this.o=null}ue.unmount=function(e){var t=e.__c;t&&t.__R&&t.__R(),t&&e.__h===!0&&(e.type=null),qh&&qh(e)},(no.prototype=new tn).__c=function(e,t){var n=t.__c,i=this;i.t==null&&(i.t=[]),i.t.push(n);var r=Pp(i.__v),s=!1,o=function(){s||(s=!0,n.__R=null,r?r(a):a())};n.__R=o;var a=function(){if(!--i.__u){if(i.state.__e){var u=i.state.__e;i.__v.__k[0]=function p(f,d,_){return f&&(f.__v=null,f.__k=f.__k&&f.__k.map(function(h){return p(h,d,_)}),f.__c&&f.__c.__P===d&&(f.__e&&_.insertBefore(f.__e,f.__d),f.__c.__e=!0,f.__c.__P=_)),f}(u,u.__c.__P,u.__c.__O)}var c;for(i.setState({__e:i.__b=null});c=i.t.pop();)c.forceUpdate()}},l=t.__h===!0;i.__u++||l||i.setState({__e:i.__b=i.__v.__k[0]}),e.then(o,o)},no.prototype.componentWillUnmount=function(){this.t=[]},no.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var n=document.createElement("div"),i=this.__v.__k[0].__c;this.__v.__k[0]=function s(o,a,l){return o&&(o.__c&&o.__c.__H&&(o.__c.__H.__.forEach(function(u){typeof u.__c=="function"&&u.__c()}),o.__c.__H=null),(o=Lp({},o)).__c!=null&&(o.__c.__P===l&&(o.__c.__P=a),o.__c=null),o.__k=o.__k&&o.__k.map(function(u){return s(u,a,l)})),o}(this.__b,n,i.__O=i.__P)}this.__b=null}var r=t.__e&&w(xe,null,e.fallback);return r&&(r.__h=null),[w(xe,null,t.__e?null:e.children),r]};var Qh=function(e,t,n){if(++n[1]===n[0]&&e.o.delete(t),e.props.revealOrder&&(e.props.revealOrder[0]!=="t"||!e.o.size))for(n=e.u;n;){for(;n.length>3;)n.pop()();if(n[1]>>1,1),t.i.removeChild(i)}}),Qi(w(H5,{context:t.context},e.__v),t.l)):t.l&&t.componentWillUnmount()}function X5(e,t){return w(V5,{__v:e,i:t})}(Ir.prototype=new tn).__e=function(e){var t=this,n=Pp(t.__v),i=t.o.get(e);return i[0]++,function(r){var s=function(){t.props.revealOrder?(i.push(r),Qh(t,e,i)):r()};n?n(s):s()}},Ir.prototype.render=function(e){this.u=null,this.o=new Map;var t=nn(e.children);e.revealOrder&&e.revealOrder[0]==="b"&&t.reverse();for(var n=t.length;n--;)this.o.set(t[n],this.u=[1,0,this.u]);return e.children},Ir.prototype.componentDidUpdate=Ir.prototype.componentDidMount=function(){var e=this;this.o.forEach(function(t,n){Qh(e,n,t)})};var $p=typeof Symbol!="undefined"&&Symbol.for&&Symbol.for("react.element")||60103,J5=/^(?: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]/,G5=function(e){return(typeof Symbol!="undefined"&&typeof Symbol()=="symbol"?/fil|che|rad/i:/fil|che|ra/i).test(e)};function Y5(e,t,n){return t.__k==null&&(t.textContent=""),Qi(e,t),typeof n=="function"&&n(),e?e.__c:null}function W5(e,t,n){return $f(e,t),typeof n=="function"&&n(),e?e.__c:null}tn.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(e){Object.defineProperty(tn.prototype,e,{configurable:!0,get:function(){return this["UNSAFE_"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})});var ef=ue.event;function Z5(){}function K5(){return this.cancelBubble}function q5(){return this.defaultPrevented}ue.event=function(e){return ef&&(e=ef(e)),e.persist=Z5,e.isPropagationStopped=K5,e.isDefaultPrevented=q5,e.nativeEvent=e};var zp,tf={configurable:!0,get:function(){return this.class}},nf=ue.vnode;ue.vnode=function(e){var t=e.type,n=e.props,i=n;if(typeof t=="string"){for(var r in i={},n){var s=n[r];r==="value"&&"defaultValue"in n&&s==null||(r==="defaultValue"&&"value"in n&&n.value==null?r="value":r==="download"&&s===!0?s="":/ondoubleclick/i.test(r)?r="ondblclick":/^onchange(textarea|input)/i.test(r+t)&&!G5(n.type)?r="oninput":/^on(Ani|Tra|Tou|BeforeInp)/.test(r)?r=r.toLowerCase():J5.test(r)?r=r.replace(/[A-Z0-9]/,"-$&").toLowerCase():s===null&&(s=void 0),i[r]=s)}t=="select"&&i.multiple&&Array.isArray(i.value)&&(i.value=nn(n.children).forEach(function(o){o.props.selected=i.value.indexOf(o.props.value)!=-1})),t=="select"&&i.defaultValue!=null&&(i.value=nn(n.children).forEach(function(o){o.props.selected=i.multiple?i.defaultValue.indexOf(o.props.value)!=-1:i.defaultValue==o.props.value})),e.props=i}t&&n.class!=n.className&&(tf.enumerable="className"in n,n.className!=null&&(i.class=n.className),Object.defineProperty(i,"className",tf)),e.$$typeof=$p,nf&&nf(e)};var rf=ue.__r;ue.__r=function(e){rf&&rf(e),zp=e.__c};var Q5={ReactCurrentDispatcher:{current:{readContext:function(e){return zp.__n[e.__c].props.value}}}};typeof performance=="object"&&typeof performance.now=="function"&&performance.now.bind(performance);function eb(e){return w.bind(null,e)}function Up(e){return!!e&&e.$$typeof===$p}function tb(e){return Up(e)?zf.apply(null,arguments):e}function nb(e){return!!e.__k&&(Qi(null,e),!0)}function ib(e){return e&&(e.base||e.nodeType===1&&e)||null}var rb=function(e,t){return e(t)},Il={useState:Y,useReducer:Gf,useEffect:me,useLayoutEffect:Yf,useRef:Pe,useImperativeHandle:L1,useMemo:He,useCallback:mt,useContext:pr,useDebugValue:R1,version:"16.8.0",Children:z5,render:Y5,hydrate:W5,unmountComponentAtNode:nb,createPortal:X5,createElement:w,createContext:fr,createFactory:eb,cloneElement:tb,createRef:x1,Fragment:xe,isValidElement:Up,findDOMNode:ib,Component:tn,PureComponent:Fl,memo:Rp,forwardRef:$5,unstable_batchedUpdates:rb,StrictMode:xe,Suspense:no,SuspenseList:Ir,lazy:j5,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:Q5};class jp extends q.DataModel{constructor(t,n,i,r){super(t),this.mapper=n,this.getter=i,this.setter=r}map(t){return this.mapper(t)}get(t){return this.getter(t)}set(t,n,i){return this.setter(t,n,i)}}const sb=["loot_table.type","loot_entry.type","function.function","condition.condition","criterion.trigger","recipe.type","dimension.generator.type","dimension.generator.biome_source.type","dimension.generator.biome_source.preset","carver.type","feature.type","decorator.type","feature.tree.minimum_size.type","block_state_provider.type","trunk_placer.type","foliage_placer.type","tree_decorator.type","int_provider.type","float_provider.type","height_provider.type","structure_feature.type","surface_builder.type","processor.processor_type","rule_test.predicate_type","pos_rule_test.predicate_type","template_element.element_type","block_placer.type","block_predicate.type","material_rule.type","material_condition.type","structure_placement.type","density_function.type","root_placer.type","entity.type_specific.cat.variant","entity.type_specific.frog.variant"],ob=["number_provider.type","score_provider.type","nbt_provider.type","int_provider.type","float_provider.type","height_provider.type"],ab=["feature.config","decorator.config","int_provider.value","float_provider.value","block_state_provider.simple_state_provider.state","block_state_provider.rotated_block_provider.state","block_state_provider.weighted_state_provider.entries.entry.data","rule_test.block_state","structure_feature.config","surface_builder.config","template_pool.elements.entry.element","decorator.block_survives_filter.state","material_rule.block.result_state"],lb=["loot_entry.type","function.function","condition.condition","criterion.trigger","dimension.generator.type","dimension.generator.biome_source.type","feature.type","decorator.type","block_state_provider.type","feature.tree.minimum_size.type","trunk_placer.type","foliage_placer.type","tree_decorator.type","block_placer.type","rule_test.predicate_type","processor.processor_type","template_element.element_type","nbt_operation.op","number_provider.value","score_provider.name","score_provider.target","nbt_provider.source","nbt_provider.target","generator_biome.biome","block_predicate.type","material_rule.type","material_condition.type","density_function.type","root_placer.type","entity.type_specific.type"],ub=["function.set_nbt.tag","advancement.display.icon.nbt","text_component_object.nbt","entity.nbt","block.nbt","item.nbt"],cb=["generator_biome.parameters.temperature","generator_biome.parameters.humidity","generator_biome.parameters.continentalness","generator_biome.parameters.erosion","generator_biome.parameters.depth","generator_biome.parameters.weirdness","feature.end_spike.crystal_beam_target","feature.end_gateway.exit","decorator.block_filter.offset","block_predicate.matching_blocks.offset","block_predicate.matching_fluids.offset","model_element.from","model_element.to","model_element.rotation.origin","model_element.faces.uv","item_transform.rotation","item_transform.translation","item_transform.scale","generator_structure.random_spread.locate_offset"],sf=["noise_settings.surface_rule","noise_settings.noise.terrain_shaper"],hb=["density_function.argument","density_function.argument1","density_function.argument2","density_function.input","density_function.when_in_range","density_function.when_out_of_range"],fb=e=>Ne.generators.find(t=>t.id===e.replace(/^\$/,"")),db=new q.DataModel(q.MapNode(q.StringNode(),q.StringNode()),{historyMax:0});function pb({model:e,lang:t,version:n,blockStates:i}){var l;const r=new q.ModelPath(e),[s,o,a]=e.schema.hook(Hp,r,No(e.data),t,n,i,{});return(l=o==null?void 0:o.props)!=null&&l.children.some(u=>u)?w("div",{class:`node ${e.schema.type(r)}-node`,"data-category":e.schema.category(r)},w("div",{class:"node-header"},s,o),w("div",{class:"node-body"},a)):a}const Hp={base(){return[null,null,null]},boolean(e,t,n,i,r,s,o){return[null,w(mb,ge({},Je(ge({},e),{path:t,value:n,lang:i,version:r,states:s,ctx:o}))),null]},choice({choices:e,config:t,switchNode:n},i,r,s,o,a,l){const u=n.activeCase(i,!0),c=t!=null&&t.context?new q.ModelPath(i.getModel(),new q.Path(i.getArray(),[t.context])):i,[p,f,d]=u.node.hook(this,c,r,s,o,a,l);if(e.length===1)return[p,f,d];const _=t!=null&&t.choiceContext?new q.Path([],[t.choiceContext]):t!=null&&t.context?new q.Path([],[t.context]):i,h=g=>{var b;const v=(b=e.find(S=>S.type===g))!=null?b:u,y=v.node.default(),A=v.change?v.change(q.DataModel.unwrapLists(r)):t.choiceContext==="feature"&&(y==null?void 0:y.type)==="minecraft:decorated"?y.config.feature:y;i.model.set(i,q.DataModel.wrapLists(A))},m=w("select",{value:u.type,onChange:g=>h(g.target.value)},e.map(g=>w("option",{value:g.type},Eo(s,_.contextPush(g.type)))));return[p,w(xe,null,m,f),d]},list({children:e,config:t},n,i,r,s,o,a){const{expand:l,collapse:u,isToggled:c}=Pa(),[p,f]=Y(50),d=n.getContext().join(".");if(cb.includes(d)){const v=w(xe,null,[...Array(t.maxLength)].map((A,b)=>w(Tr,{lang:r,path:n.modelPush(b)})),w("div",{class:"fixed-list"})),y=w(xe,null,[...Array(t.maxLength)].map((A,b)=>{var D;return e.hook(this,n.modelPush(b),(D=i==null?void 0:i[b])==null?void 0:D.node,r,s,o,a)[1]}));return[v,y,null]}const _=()=>{Array.isArray(i)||(i=[]);const v=q.DataModel.wrapLists(e.default());n.model.set(n,[{node:v,id:gi()},...i])},h=()=>{Array.isArray(i)||(i=[]);const v=q.DataModel.wrapLists(e.default());n.model.set(n,[...i,{node:v,id:gi()}])},m=w("button",{class:"add tooltipped tip-se","aria-label":Fe(r,"add_top"),onClick:_},be.plus_circle),g=w(xe,null,i&&Array.isArray(i)&&i.map(({node:v,id:y},A)=>{if(A===p)return w("div",{class:"node node-header"},w("label",null,Fe(r,"entries_hidden",`${i.length-p}`)),w("button",{onClick:()=>f(Math.min(p+50,i.length))},Fe(r,"entries_hidden.more","50")),w("button",{onClick:()=>f(i.length)},Fe(r,"entries_hidden.all")));if(A>p)return null;const b=n.push(A).contextPush("entry"),S=e.type(b)==="object",D=c(y);if(S&&(D===!1||D===void 0&&i.length>20))return w("div",{class:"node node-header","data-category":e.category(b)},w(Tr,{lang:r,path:b,nested:!0}),w("button",{class:"toggle tooltipped tip-se","aria-label":`${Fe(r,"expand")} +${Fe(r,"expand_all","Ctrl")}`,onClick:l(y)},be.chevron_right),w("label",null,Eo(r,b,`${A}`)),w(of,{key:y,path:b,value:v,schema:e}));const k=()=>b.set(void 0),T=()=>{const U=[...n.get()];[U[A-1],U[A]]=[U[A],U[A-1]],n.model.set(n,U)},B=()=>{const U=[...n.get()];[U[A+1],U[A]]=[U[A],U[A+1]],n.model.set(n,U)};return w($a,{key:y,path:b,schema:e,value:v,lang:r,version:s,states:o,actions:[{icon:"duplicate",label:"duplicate",onSelect:()=>{const U=[...n.get()];U.splice(A,0,{id:gi(),node:No(v)}),n.model.set(n,U)}}],ctx:Je(ge({},a),{index:(A===0?1:0)+(A===i.length-1?2:0)})},S&&w("button",{class:"toggle tooltipped tip-se","aria-label":`${Fe(r,"collapse")} +${Fe(r,"collapse_all","Ctrl")}`,onClick:u(y)},be.chevron_down),w("button",{class:"remove tooltipped tip-se","aria-label":Fe(r,"remove"),onClick:k},be.trashcan),i.length>1&&w("div",{class:"node-move"},w("button",{class:"move tooltipped tip-se","aria-label":Fe(r,"move_up"),onClick:T,disabled:A===0},be.chevron_up),w("button",{class:"move tooltipped tip-se","aria-label":Fe(r,"move_down"),onClick:B,disabled:A===i.length-1},be.chevron_down)))}),i&&i.length>0&&i.length<=p&&w("div",{class:"node node-header"},w("button",{class:"add tooltipped tip-se","aria-label":Fe(r,"add_bottom"),onClick:h},be.plus_circle)));return[null,m,g]},map({children:e,keys:t,config:n},i,r,s,o,a,l){var v,y,A,b,S;const{expand:u,collapse:c,isToggled:p}=Pa(),f=new q.ModelPath(db,new q.Path([xb(i.toString())])),d=()=>{const D=f.get();i.model.set(i.push(D),q.DataModel.wrapLists(e.default()))},_=((v=n.validation)==null?void 0:v.validator)==="block_state_map"?a==null?void 0:a[q.relativePath(i,n.validation.params.id).get()]:null,h=_!=null&&_.properties?q.StringNode(null,{enum:Object.keys((y=_.properties)!=null?y:{})}):t;if(_&&i.last()==="Properties"){typeof r!="object"&&(r={});const D=Object.entries((A=_.properties)!=null?A:{}).map(([k,T])=>[k,q.StringNode(null,{enum:T})]);return Object.entries((b=_.properties)!=null?b:{}).forEach(([k,T])=>{typeof r[k]!="string"?i.model.errors.add(i.push(k),"error.expected_string"):T.includes(r[k])||i.model.errors.add(i.push(k),"error.invalid_enum_option",r[k])}),q.ObjectNode(Object.fromEntries(D)).hook(this,i,r,s,o,a,l)}const m=w(xe,null,h.hook(this,f,(S=f.get())!=null?S:"",s,o,a,l)[1],w("button",{class:"add tooltipped tip-se","aria-label":Fe(s,"add"),onClick:d},be.plus_circle)),g=w(xe,null,typeof r=="object"&&Object.entries(r).map(([D,k])=>{var Q,te,$,X;const T=i.modelPush(D),B=e.type(T)==="object",M=p(D);if(B&&(M===!1||M===void 0&&r.length>20))return w("div",{class:"node node-header","data-category":e.category(T)},w(Tr,{lang:s,path:T,nested:!0}),w("button",{class:"toggle tooltipped tip-se","aria-label":`${Fe(s,"expand")} +${Fe(s,"expand_all","Ctrl")}`,onClick:u(D)},be.chevron_right),w("label",null,D),w(of,{key:D,path:T,value:k,schema:e}));const U=_?q.StringNode(null,{enum:(te=(Q=_.properties)==null?void 0:Q[D])!=null?te:[]}):e;(($=_==null?void 0:_.properties)==null?void 0:$[D])&&typeof k=="string"&&!((X=_.properties)!=null&&X[D].includes(k))&&i.model.errors.add(T,"error.invalid_enum_option",k);const H=()=>T.set(void 0);return w($a,{key:D,schema:U,path:T,value:k,lang:s,version:o,states:a,ctx:l,label:D},B&&w("button",{class:"toggle tooltipped tip-se","aria-label":`${Fe(s,"collapse")} +${Fe(s,"collapse_all","Ctrl")}`,onClick:c(D)},be.chevron_down),w("button",{class:"remove tooltipped tip-se","aria-label":Fe(s,"remove"),onClick:H},be.trashcan))}));return[null,m,g]},number(e,t,n,i,r,s,o){return[null,w(gb,ge({},Je(ge({},e),{path:t,value:n,lang:i,version:r,states:s,ctx:o}))),null]},object({node:e,config:t,getActiveFields:n,getChildModelPath:i},r,s,o,a,l,u){var v;const{expand:c,collapse:p,isToggled:f}=Pa();if(r.getArray().length==0&&yb(t.context,s)){const{wrapper:y,fields:A}=wb(n(r),r,s);s=y.data,n=()=>A,i=(b,S)=>new q.ModelPath(y,new q.Path(b.getArray(),["feature"])).push(S)}let d=null,_=null;if(e.optional())if(s===void 0){const y=()=>r.set(q.DataModel.wrapLists(e.default()));_=w("button",{class:"collapse closed tooltipped tip-se","aria-label":Fe(o,"expand"),onClick:y},be.plus_circle)}else{const y=()=>r.set(void 0);_=w("button",{class:"collapse open tooltipped tip-se","aria-label":Fe(o,"remove"),onClick:y},be.trashcan)}const h=r.getContext().join(".");if(hb.includes(h)||sf.includes(h)){const y=f(""),A=sf.includes(h)?y:!y;if(d=w(xe,null,w("button",{class:"toggle tooltipped tip-se","aria-label":Fe(o,A?"collapse":"expand"),onClick:y?p(""):c("")},A?be.chevron_down:be.chevron_right)),!A)return[d,_,null]}const m=typeof s=="object"&&s!==null&&((v=e.default())==null?void 0:v.pools)?Je(ge({},u),{loot:s==null?void 0:s.type}):u,g=w(xe,null,typeof s=="object"&&s!==null&&!(e.optional()&&s===void 0)&&Object.entries(n(r)).filter(([y,A])=>A.enabled(r)).map(([y,A])=>{const b=i(r,y),S=b.getContext().join(".");if(ob.includes(S))return null;const[D,k,T]=A.hook(this,b,s[y],o,a,l,m),B=A.type(b)==="object"&&ab.includes(S),M=lb.includes(S);return B||M?(d=w(xe,null,d,w(Tr,{lang:o,path:b}),w(Vp,{lang:o,path:b}),D),_=w(xe,null,_,k),B?T:null):w($a,{key:y,schema:A,path:b,value:s[y],lang:o,version:a,states:l,ctx:m})}));return[d,_,g]},string(e,t,n,i,r,s,o){return[null,w(_b,ge({},Je(ge({},e),{path:t,value:n,lang:i,version:r,states:s,ctx:o}))),null]}};function of({path:e,value:t}){var i,r,s,o,a;switch(e.getContext().join(".")){case"loot_table.pools.entry":return w("label",null,(r=(i=t==null?void 0:t.entries)==null?void 0:i.length)!=null?r:0," entries");case"function.set_contents.entries.entry":case"loot_pool.entries.entry":return w("label",null,(a=(s=t==null?void 0:t.name)==null?void 0:s.replace(/^minecraft:/,""))!=null?a:(o=t==null?void 0:t.type)==null?void 0:o.replace(/^minecraft:/,""))}for(const l of Object.values(t!=null?t:{}))if(typeof l=="string")return w("label",null,l.replace(/^minecraft:/,""));return null}function Pa(){const[e,t]=Y(new Map),[n,i]=Y(void 0);return{expand:a=>l=>{l.ctrlKey?(t(new Map),i(!0)):t(u=>new Map(u.set(a,!0)))},collapse:a=>l=>{l.ctrlKey?(t(new Map),i(!1)):t(u=>new Map(u.set(a,!1)))},isToggled:a=>{var l;return e instanceof Map?(l=e.get(a))!=null?l:n:!1}}}function mb({path:e,node:t,value:n,lang:i}){const r=s=>{e.model.set(e,t.optional()&&n===s?void 0:s)};return w(xe,null,w("button",{class:n===!1?"selected":"",onClick:()=>r(!1)},Fe(i,"false")),w("button",{class:n===!0?"selected":"",onClick:()=>r(!0)},Fe(i,"true")))}function gb({path:e,config:t,integer:n,value:i,lang:r}){var a;const s=l=>{const u=l.target.value,c=n?parseInt(u):parseFloat(u);e.model.set(e,c)},o=l=>{const u=l.target.value,c=parseInt(u.slice(1),16);e.model.set(e,c)};return w(xe,null,w("input",{type:"text",value:i!=null?i:"",onBlur:s,onKeyDown:l=>{l.key==="Enter"&&s(l)}}),(t==null?void 0:t.color)&&w("input",{type:"color",value:"#"+((a=i==null?void 0:i.toString(16).padStart(6,"0"))!=null?a:"000000"),onChange:o}),["dimension.generator.seed","dimension.generator.biome_source.seed","world_settings.seed","structure_placement.salt"].includes(e.getContext().join("."))&&w("button",{onClick:()=>P0(e.model),class:"tooltipped tip-se","aria-label":Fe(r,"generate_new_seed")},be.sync))}function _b({path:e,getValues:t,config:n,node:i,value:r,lang:s,version:o,states:a}){var f;const l=d=>{d.stopPropagation();const _=d.target.value;_!==r&&e.model.set(e,_.length===0?void 0:_)},u=t(),c=e.getContext().join("."),p=!Ar(n)&&(n==null?void 0:n.validator)==="resource"&&typeof n.params.pool=="string"?n.params.pool:void 0;if(ub.includes(c))return w("textarea",{value:r!=null?r:"",onBlur:l});if(Ar(n)&&!n.additional||sb.includes(c)){let d=new q.Path([]);return Ar(n)&&typeof n.enum=="string"?d=d.contextPush(n.enum):p?d=d.contextPush(p):Ar(n)&&(d=e),w("select",{value:r!=null?r:"",onChange:l},i.optional()&&w("option",{value:""},Fe(s,"unset")),u.map(_=>w("option",{value:_},Eo(s,d.contextPush(_.replace(/^minecraft:/,""))))))}else if(!Ar(n)&&(n==null?void 0:n.validator)==="block_state_key"){const d=a==null?void 0:a[q.relativePath(e,n.params.id).get()],_=Object.keys((f=d==null?void 0:d.properties)!=null?f:{});return w("select",{value:r!=null?r:"",onChange:l},_.map(h=>w("option",null,h)))}else{const d=gi(),_=p?fb(p):void 0;return w(xe,null,w("input",{value:r!=null?r:"",onBlur:l,onKeyDown:h=>{h.key==="Enter"&&l(h)},list:u.length>0?d:""}),u.length>0&&w("datalist",{id:d},u.map(h=>w("option",{value:h}))),_&&u.includes(r)&&r.startsWith("minecraft:")&&w("a",{href:`/${_.url}/?version=${o}&preset=${r.replace(/^minecraft:/,"")}`,class:"tooltipped tip-se","aria-label":Fe(s,"follow_reference")},be.link_external))}}function vb({label:e,schema:t,path:n,value:i,lang:r,version:s,states:o,ctx:a,actions:l,children:u}){var A;const c=t.type(n),p=t.category(n),f=n.getContext().join("."),[d,_]=Hl(),h=b=>{b.preventDefault(),_()},m=Je(ge({},a),{depth:((A=a.depth)!=null?A:0)+1});delete m.index;const[g,v,y]=t.hook(Hp,n,i,r,s,o,m);return w("div",{class:`node ${c}-node`,"data-category":p},w("div",{class:"node-header",onContextMenu:h},w(Tr,{lang:r,path:n}),w(Vp,{lang:r,path:n}),u,g,w("label",null,e!=null?e:Eo(r,n,`${n.last()}`),d&&w("div",{class:"node-menu"},l==null?void 0:l.map(b=>{var S;return w("div",{key:b.label,class:"menu-item"},w(fe,{icon:b.icon,tooltip:Fe(r,b.label),tooltipLoc:"se",onClick:()=>b.onSelect()}),w("span",null,(S=b.description)!=null?S:Fe(r,b.label)))}),w("div",{class:"menu-item"},w(fe,{icon:"clippy",tooltip:Fe(r,"copy_context"),tooltipLoc:"se",onClick:()=>navigator.clipboard.writeText(f)}),w("span",null,f)))),v),y&&w("div",{class:"node-body"},y))}const $a=Rp(vb,(e,t)=>e.schema===t.schema&&e.lang===t.lang&&e.path.equals(t.path)&&yi(e.ctx,t.ctx)&&yi(e.value,t.value));function Ar(e){return!!(e!=null&&e.enum)}function xb(e){var t=0,n,i;for(n=0;no.path.startsWith(t)):t.model.errors.get(t,!0);if(i.length===0)return null;const r=Fe(e,i[0].error,...(s=i[0].params)!=null?s:[]);return Xp("node-error","issue_opened",r)}function Vp({lang:e,path:t}){const n=t.contextPush("help").getContext().join("."),i=Fe(e,n);return i===n?null:Xp("node-help","info",i)}const Xp=(e,t,n)=>{const[i,r]=Hl();return w("div",{class:`node-icon ${e}${i?" show":""}`,onClick:r},be[t],w("span",{class:"icon-popup"},n))};function yb(e,t){var n;return e==="feature"&&((n=t==null?void 0:t.type)==null?void 0:n.replace(/^minecraft:/,""))==="decorated"&&Ci(t==null?void 0:t.config)}function wb(e,t,n){const i=[],r=Br(n,i),s={type:e.type,config:q.ObjectNode({decorators:q.ListNode(Y0),feature:W0},{context:"feature.decorated"})},o=q.ObjectNode(s,{context:"feature"}),a=new q.Path(["config","feature"]),l=new q.Path(["config","decorators"]),u=t.getModel(),c=new jp(o,p=>{if(p.startsWith(a))return new q.Path([...[...Array(i.length-1)].flatMap(()=>["config","feature"]),...p.modelArr]);if(p.startsWith(l)){if(p.modelArr.length===2)return new q.Path([]);const f=p.modelArr[2];if(typeof f=="number")return new q.Path([...[...Array(f)].flatMap(()=>["config","feature"]),"config","decorator",...p.modelArr.slice(3)])}return p},p=>{if(p.equals(l)){const f=[];return Br(u.data,f),f}return u.get(c.map(p))},(p,f,d)=>{if(p.startsWith(a)){const _=[];Br(u.data,_);const h=new q.Path([...[...Array(_.length-1)].flatMap(()=>["config","feature"]),...p.modelArr]);return u.set(h,f,d)}else if(p.startsWith(l)){const _=p.modelArr[2];if(p.modelArr.length===2){const h=c.get(a);return u.set(new q.Path,Tl(h,f),d)}else if(typeof _=="number")if(p.modelArr.length===3&&f===void 0){const h=c.get(a),m=[];Br(u.data,m),m.splice(_,1);const g=Tl(h,m);return u.set(new q.Path,g,d)}else{const h=new q.Path([...[...Array(_)].flatMap(()=>["config","feature"]),"config","decorator",...p.modelArr.slice(3)]);return u.set(h,f,d)}}u.set(p,f,d)});return c.data={type:u.data.type,config:{decorators:i,feature:r}},c.errors=u.errors,{fields:s,wrapper:c}}function Br(e,t){var n,i;return((n=e==null?void 0:e.type)==null?void 0:n.replace(/^minecraft:/,""))!=="decorated"||!Ci(e==null?void 0:e.config)?e:(t.push({id:t.length,node:e.config.decorator}),Br((i=e.config.feature)!=null?i:"",t))}function Tl(e,t){return t.length===0?e:{type:"minecraft:decorated",config:{decorator:t.shift().node,feature:Tl(e,t)}}}function Eb({version:e,model:t,blockStates:n,onError:i}){const{lang:r}=We();if(!t||!n||r==="none")return w(xe,null);const[s]=Wf(a=>{i(`Error rendering the tree: ${a.message}`),console.error(a)});if(s)return w(xe,null);const[,o]=Y(0);return Mo(t,()=>{o(a=>a+1)}),w("div",{class:"tree","data-cy":"tree"},w(pb,{model:t,lang:r,version:e,blockStates:n}))}var bb=Object.defineProperty,Ab=Object.defineProperties,Sb=Object.getOwnPropertyDescriptors,af=Object.getOwnPropertySymbols,Db=Object.prototype.hasOwnProperty,Cb=Object.prototype.propertyIsEnumerable,lf=(e,t,n)=>t in e?bb(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Jp=(e,t)=>{for(var n in t||(t={}))Db.call(t,n)&&lf(e,n,t[n]);if(af)for(var n of af(t))Cb.call(t,n)&&lf(e,n,t[n]);return e};const uf="Please consider reporting this error at https://github.com/laymonage/giscus/issues/new.";function Ps(e){return`[giscus] An error occurred. Error message: "${e}".`}function cf(e){const t=document.querySelector(`meta[property='og:${e}'],meta[name='${e}']`);return t?t.content:""}function kb(){const e=document.getElementById("giscus-css")||document.createElement("style");e.id="giscus-css",e.textContent=` + .giscus, .giscus-frame { + width: 100%; + } + .giscus-frame { + border: none; + color-scheme: normal; + } + `,document.head.prepend(e)}function Fb(e){const[t,n]=Y(""),i=function({repo:o,repoId:a,category:l="",categoryId:u="",mapping:c,term:p="",theme:f="light",reactionsEnabled:d="1",emitMetadata:_="0",inputPosition:h="bottom",lang:m="en",session:g,origin:v}){const y=new URL(location.href);y.searchParams.delete("giscus");const A=y.toString(),b={origin:v=v||A,session:g,theme:f,reactionsEnabled:d,emitMetadata:_,inputPosition:h,repo:o,repoId:a,category:l,categoryId:u,description:cf("description")};switch(c){case"url":b.term=A;break;case"title":b.term=document.title;break;case"og:title":b.term=cf("title");break;case"specific":b.term=p;break;case"number":b.number=p;break;case"pathname":default:b.term=location.pathname.length<2?"index":location.pathname.substring(1).replace(/\.\w+$/,"")}return`https://giscus.app/${m}/widget?${new URLSearchParams(b)}`}((r=Jp({},e),Ab(r,Sb({session:t}))));var r;const s=Pe(null);return me(()=>{const o=location.href,a=new URL(o),l=localStorage.getItem("giscus-session"),u=a.searchParams.get("giscus")||"";if(u)return localStorage.setItem("giscus-session",JSON.stringify(u)),n(u),a.searchParams.delete("giscus"),void history.replaceState(void 0,document.title,a.toString());if(l)try{n(JSON.parse(l||"")||"")}catch(c){n(""),localStorage.removeItem("giscus-session"),console.warn(`${Ps(c==null?void 0:c.message)} Session has been cleared.`)}},[]),me(kb,[]),me(()=>{const o=function(a,l=null){return function(u){if(u.origin!=="https://giscus.app")return;const{data:c}=u;if(typeof c!="object"||!c.giscus||(l&&c.giscus.resizeHeight&&(l.style.height=`${c.giscus.resizeHeight}px`),!c.giscus.error))return;const p=c.giscus.error;if(p.includes("Bad credentials")||p.includes("Invalid state value")){if(localStorage.getItem("giscus-session")!==null)return localStorage.removeItem("giscus-session"),a(),void console.warn(`${Ps(p)} Session has been cleared.`);console.error(`${Ps(p)} No session is stored initially. ${uf}`)}p.includes("Discussion not found")?console.warn(`[giscus] ${p}. A new discussion will be created if a comment/reaction is submitted.`):console.error(`${Ps(p)} ${uf}`)}}(()=>n(""),s.current);return window.addEventListener("message",o),()=>window.removeEventListener("message",o)},[]),Il.createElement("div",{className:"giscus"},Il.createElement("iframe",{className:"giscus-frame",title:"Comments",scrolling:"no",src:i,ref:s}))}function Ib(e){const[t,n]=Y(!1);return me(()=>n(!0),[]),t?Il.createElement(Fb,Jp({},e)):null}function wu({term:e}){const{actualTheme:t}=rd(),n=t==="light"?"-burn":"",i=`${location.protocol}//${location.host}/assets/giscus${n}.css`;return w(Ib,{repo:"misode/misode.github.io",repoId:"MDEwOlJlcG9zaXRvcnkxOTIyNTQyMzA=",category:"Site",categoryId:"DIC_kwDOC3WRFs4COB8r",mapping:e?"specific":"pathname",term:e,reactionsEnabled:"1",emitMetadata:"0",inputPosition:"top",theme:i,lang:"en"})}function Gp(){return{baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}let yr=Gp();function Tb(e){yr=e}const Bb=/[&<>"']/,Nb=/[&<>"']/g,Mb=/[<>"']|&(?!#?\w+;)/,Ob=/[<>"']|&(?!#?\w+;)/g,Lb={"&":"&","<":"<",">":">",'"':""","'":"'"},hf=e=>Lb[e];function dt(e,t){if(t){if(Bb.test(e))return e.replace(Nb,hf)}else if(Mb.test(e))return e.replace(Ob,hf);return e}const Rb=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;function Yp(e){return e.replace(Rb,(t,n)=>(n=n.toLowerCase(),n==="colon"?":":n.charAt(0)==="#"?n.charAt(1)==="x"?String.fromCharCode(parseInt(n.substring(2),16)):String.fromCharCode(+n.substring(1)):""))}const Pb=/(^|[^\[])\^/g;function ze(e,t){e=e.source||e,t=t||"";const n={replace:(i,r)=>(r=r.source||r,r=r.replace(Pb,"$1"),e=e.replace(i,r),n),getRegex:()=>new RegExp(e,t)};return n}const $b=/[^\w:]/g,zb=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function ff(e,t,n){if(e){let i;try{i=decodeURIComponent(Yp(n)).replace($b,"").toLowerCase()}catch{return null}if(i.indexOf("javascript:")===0||i.indexOf("vbscript:")===0||i.indexOf("data:")===0)return null}t&&!zb.test(n)&&(n=Vb(t,n));try{n=encodeURI(n).replace(/%25/g,"%")}catch{return null}return n}const $s={},Ub=/^[^:]+:\/*[^/]*$/,jb=/^([^:]+:)[\s\S]*$/,Hb=/^([^:]+:\/*[^/]*)[\s\S]*$/;function Vb(e,t){$s[" "+e]||(Ub.test(e)?$s[" "+e]=e+"/":$s[" "+e]=io(e,"/",!0)),e=$s[" "+e];const n=e.indexOf(":")===-1;return t.substring(0,2)==="//"?n?t:e.replace(jb,"$1")+t:t.charAt(0)==="/"?n?t:e.replace(Hb,"$1")+t:e+t}const bo={exec:function(){}};function on(e){let t=1,n,i;for(;t{let l=!1,u=o;for(;--u>=0&&a[u]==="\\";)l=!l;return l?"|":" |"}),i=n.split(/ \|/);let r=0;if(i[0].trim()||i.shift(),i[i.length-1].trim()||i.pop(),i.length>t)i.splice(t);else for(;i.length1;)t&1&&(n+=e),t>>=1,e+=e;return n+e}function mf(e,t,n,i){const r=t.href,s=t.title?dt(t.title):null,o=e[1].replace(/\\([\[\]])/g,"$1");if(e[0].charAt(0)!=="!"){i.state.inLink=!0;const a={type:"link",raw:n,href:r,title:s,text:o,tokens:i.inlineTokens(o,[])};return i.state.inLink=!1,a}else return{type:"image",raw:n,href:r,title:s,text:dt(o)}}function Jb(e,t){const n=e.match(/^(\s+)(?:```)/);if(n===null)return t;const i=n[1];return t.split(` +`).map(r=>{const s=r.match(/^\s+/);if(s===null)return r;const[o]=s;return o.length>=i.length?r.slice(i.length):r}).join(` +`)}class Eu{constructor(t){this.options=t||yr}space(t){const n=this.rules.block.newline.exec(t);if(n&&n[0].length>0)return{type:"space",raw:n[0]}}code(t){const n=this.rules.block.code.exec(t);if(n){const i=n[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:n[0],codeBlockStyle:"indented",text:this.options.pedantic?i:io(i,` +`)}}}fences(t){const n=this.rules.block.fences.exec(t);if(n){const i=n[0],r=Jb(i,n[3]||"");return{type:"code",raw:i,lang:n[2]?n[2].trim():n[2],text:r}}}heading(t){const n=this.rules.block.heading.exec(t);if(n){let i=n[2].trim();if(/#$/.test(i)){const s=io(i,"#");(this.options.pedantic||!s||/ $/.test(s))&&(i=s.trim())}const r={type:"heading",raw:n[0],depth:n[1].length,text:i,tokens:[]};return this.lexer.inline(r.text,r.tokens),r}}hr(t){const n=this.rules.block.hr.exec(t);if(n)return{type:"hr",raw:n[0]}}blockquote(t){const n=this.rules.block.blockquote.exec(t);if(n){const i=n[0].replace(/^ *> ?/gm,"");return{type:"blockquote",raw:n[0],tokens:this.lexer.blockTokens(i,[]),text:i}}}list(t){let n=this.rules.block.list.exec(t);if(n){let i,r,s,o,a,l,u,c,p,f,d,_,h=n[1].trim();const m=h.length>1,g={type:"list",raw:"",ordered:m,start:m?+h.slice(0,-1):"",loose:!1,items:[]};h=m?`\\d{1,9}\\${h.slice(-1)}`:`\\${h}`,this.options.pedantic&&(h=m?h:"[*+-]");const v=new RegExp(`^( {0,3}${h})((?: [^\\n]*)?(?:\\n|$))`);for(;t&&(_=!1,!(!(n=v.exec(t))||this.rules.block.hr.test(t)));){if(i=n[0],t=t.substring(i.length),c=n[2].split(` +`,1)[0],p=t.split(` +`,1)[0],this.options.pedantic?(o=2,d=c.trimLeft()):(o=n[2].search(/[^ ]/),o=o>4?1:o,d=c.slice(o),o+=n[1].length),l=!1,!c&&/^ *$/.test(p)&&(i+=p+` +`,t=t.substring(p.length+1),_=!0),!_){const A=new RegExp(`^ {0,${Math.min(3,o-1)}}(?:[*+-]|\\d{1,9}[.)])`);for(;t&&(f=t.split(` +`,1)[0],c=f,this.options.pedantic&&(c=c.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),!A.test(c));){if(c.search(/[^ ]/)>=o||!c.trim())d+=` +`+c.slice(o);else if(!l)d+=` +`+c;else break;!l&&!c.trim()&&(l=!0),i+=f+` +`,t=t.substring(f.length+1)}}g.loose||(u?g.loose=!0:/\n *\n *$/.test(i)&&(u=!0)),this.options.gfm&&(r=/^\[[ xX]\] /.exec(d),r&&(s=r[0]!=="[ ] ",d=d.replace(/^\[[ xX]\] +/,""))),g.items.push({type:"list_item",raw:i,task:!!r,checked:s,loose:!1,text:d}),g.raw+=i}g.items[g.items.length-1].raw=i.trimRight(),g.items[g.items.length-1].text=d.trimRight(),g.raw=g.raw.trimRight();const y=g.items.length;for(a=0;aS.type==="space"),b=A.every(S=>{const D=S.raw.split("");let k=0;for(const T of D)if(T===` +`&&(k+=1),k>1)return!0;return!1});!g.loose&&A.length&&b&&(g.loose=!0,g.items[a].loose=!0)}return g}}html(t){const n=this.rules.block.html.exec(t);if(n){const i={type:"html",raw:n[0],pre:!this.options.sanitizer&&(n[1]==="pre"||n[1]==="script"||n[1]==="style"),text:n[0]};return this.options.sanitize&&(i.type="paragraph",i.text=this.options.sanitizer?this.options.sanitizer(n[0]):dt(n[0]),i.tokens=[],this.lexer.inline(i.text,i.tokens)),i}}def(t){const n=this.rules.block.def.exec(t);if(n){n[3]&&(n[3]=n[3].substring(1,n[3].length-1));const i=n[1].toLowerCase().replace(/\s+/g," ");return{type:"def",tag:i,raw:n[0],href:n[2],title:n[3]}}}table(t){const n=this.rules.block.table.exec(t);if(n){const i={type:"table",header:df(n[1]).map(r=>({text:r})),align:n[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:n[3]?n[3].replace(/\n[ \t]*$/,"").split(` +`):[]};if(i.header.length===i.align.length){i.raw=n[0];let r=i.align.length,s,o,a,l;for(s=0;s({text:u}));for(r=i.header.length,o=0;o/i.test(n[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(n[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(n[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:n[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(n[0]):dt(n[0]):n[0]}}link(t){const n=this.rules.inline.link.exec(t);if(n){const i=n[2].trim();if(!this.options.pedantic&&/^$/.test(i))return;const o=io(i.slice(0,-1),"\\");if((i.length-o.length)%2===0)return}else{const o=Xb(n[2],"()");if(o>-1){const l=(n[0].indexOf("!")===0?5:4)+n[1].length+o;n[2]=n[2].substring(0,o),n[0]=n[0].substring(0,l).trim(),n[3]=""}}let r=n[2],s="";if(this.options.pedantic){const o=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(r);o&&(r=o[1],s=o[3])}else s=n[3]?n[3].slice(1,-1):"";return r=r.trim(),/^$/.test(i)?r=r.slice(1):r=r.slice(1,-1)),mf(n,{href:r&&r.replace(this.rules.inline._escapes,"$1"),title:s&&s.replace(this.rules.inline._escapes,"$1")},n[0],this.lexer)}}reflink(t,n){let i;if((i=this.rules.inline.reflink.exec(t))||(i=this.rules.inline.nolink.exec(t))){let r=(i[2]||i[1]).replace(/\s+/g," ");if(r=n[r.toLowerCase()],!r||!r.href){const s=i[0].charAt(0);return{type:"text",raw:s,text:s}}return mf(i,r,i[0],this.lexer)}}emStrong(t,n,i=""){let r=this.rules.inline.emStrong.lDelim.exec(t);if(!r||r[3]&&i.match(/[\p{L}\p{N}]/u))return;const s=r[1]||r[2]||"";if(!s||s&&(i===""||this.rules.inline.punctuation.exec(i))){const o=r[0].length-1;let a,l,u=o,c=0;const p=r[0][0]==="*"?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(p.lastIndex=0,n=n.slice(-1*t.length+o);(r=p.exec(n))!=null;){if(a=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!a)continue;if(l=a.length,r[3]||r[4]){u+=l;continue}else if((r[5]||r[6])&&o%3&&!((o+l)%3)){c+=l;continue}if(u-=l,u>0)continue;if(l=Math.min(l,l+u+c),Math.min(o,l)%2){const d=t.slice(1,o+r.index+l);return{type:"em",raw:t.slice(0,o+r.index+l+1),text:d,tokens:this.lexer.inlineTokens(d,[])}}const f=t.slice(2,o+r.index+l-1);return{type:"strong",raw:t.slice(0,o+r.index+l+1),text:f,tokens:this.lexer.inlineTokens(f,[])}}}}codespan(t){const n=this.rules.inline.code.exec(t);if(n){let i=n[2].replace(/\n/g," ");const r=/[^ ]/.test(i),s=/^ /.test(i)&&/ $/.test(i);return r&&s&&(i=i.substring(1,i.length-1)),i=dt(i,!0),{type:"codespan",raw:n[0],text:i}}}br(t){const n=this.rules.inline.br.exec(t);if(n)return{type:"br",raw:n[0]}}del(t){const n=this.rules.inline.del.exec(t);if(n)return{type:"del",raw:n[0],text:n[2],tokens:this.lexer.inlineTokens(n[2],[])}}autolink(t,n){const i=this.rules.inline.autolink.exec(t);if(i){let r,s;return i[2]==="@"?(r=dt(this.options.mangle?n(i[1]):i[1]),s="mailto:"+r):(r=dt(i[1]),s=r),{type:"link",raw:i[0],text:r,href:s,tokens:[{type:"text",raw:r,text:r}]}}}url(t,n){let i;if(i=this.rules.inline.url.exec(t)){let r,s;if(i[2]==="@")r=dt(this.options.mangle?n(i[0]):i[0]),s="mailto:"+r;else{let o;do o=i[0],i[0]=this.rules.inline._backpedal.exec(i[0])[0];while(o!==i[0]);r=dt(i[0]),i[1]==="www."?s="http://"+r:s=r}return{type:"link",raw:i[0],text:r,href:s,tokens:[{type:"text",raw:r,text:r}]}}}inlineText(t,n){const i=this.rules.inline.text.exec(t);if(i){let r;return this.lexer.state.inRawBlock?r=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(i[0]):dt(i[0]):i[0]:r=dt(this.options.smartypants?n(i[0]):i[0]),{type:"text",raw:i[0],text:r}}}}const he={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)( [^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?]+)>?(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:bo,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/};he._label=/(?!\s*\])(?:\\.|[^\[\]\\])+/;he._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/;he.def=ze(he.def).replace("label",he._label).replace("title",he._title).getRegex();he.bullet=/(?:[*+-]|\d{1,9}[.)])/;he.listItemStart=ze(/^( *)(bull) */).replace("bull",he.bullet).getRegex();he.list=ze(he.list).replace(/bull/g,he.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+he.def.source+")").getRegex();he._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul";he._comment=/|$)/;he.html=ze(he.html,"i").replace("comment",he._comment).replace("tag",he._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex();he.paragraph=ze(he._paragraph).replace("hr",he.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",he._tag).getRegex();he.blockquote=ze(he.blockquote).replace("paragraph",he.paragraph).getRegex();he.normal=on({},he);he.gfm=on({},he.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"});he.gfm.table=ze(he.gfm.table).replace("hr",he.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",he._tag).getRegex();he.gfm.paragraph=ze(he._paragraph).replace("hr",he.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",he.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",he._tag).getRegex();he.pedantic=on({},he.normal,{html:ze(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",he._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:bo,paragraph:ze(he.normal._paragraph).replace("hr",he.hr).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",he.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});const ne={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:bo,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:bo,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\?@\\[\\]`^{|}~";ne.punctuation=ze(ne.punctuation).replace(/punctuation/g,ne._punctuation).getRegex();ne.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g;ne.escapedEmSt=/\\\*|\\_/g;ne._comment=ze(he._comment).replace("(?:-->|$)","-->").getRegex();ne.emStrong.lDelim=ze(ne.emStrong.lDelim).replace(/punct/g,ne._punctuation).getRegex();ne.emStrong.rDelimAst=ze(ne.emStrong.rDelimAst,"g").replace(/punct/g,ne._punctuation).getRegex();ne.emStrong.rDelimUnd=ze(ne.emStrong.rDelimUnd,"g").replace(/punct/g,ne._punctuation).getRegex();ne._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g;ne._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;ne._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;ne.autolink=ze(ne.autolink).replace("scheme",ne._scheme).replace("email",ne._email).getRegex();ne._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/;ne.tag=ze(ne.tag).replace("comment",ne._comment).replace("attribute",ne._attribute).getRegex();ne._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/;ne._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/;ne._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/;ne.link=ze(ne.link).replace("label",ne._label).replace("href",ne._href).replace("title",ne._title).getRegex();ne.reflink=ze(ne.reflink).replace("label",ne._label).replace("ref",he._label).getRegex();ne.nolink=ze(ne.nolink).replace("ref",he._label).getRegex();ne.reflinkSearch=ze(ne.reflinkSearch,"g").replace("reflink",ne.reflink).replace("nolink",ne.nolink).getRegex();ne.normal=on({},ne);ne.pedantic=on({},ne.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:ze(/^!?\[(label)\]\((.*?)\)/).replace("label",ne._label).getRegex(),reflink:ze(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",ne._label).getRegex()});ne.gfm=on({},ne.normal,{escape:ze(ne.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\.5&&(i="x"+i.toString(16)),t+="&#"+i+";";return t}class Pn{constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||yr,this.options.tokenizer=this.options.tokenizer||new Eu,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};const n={block:he.normal,inline:ne.normal};this.options.pedantic?(n.block=he.pedantic,n.inline=ne.pedantic):this.options.gfm&&(n.block=he.gfm,this.options.breaks?n.inline=ne.breaks:n.inline=ne.gfm),this.tokenizer.rules=n}static get rules(){return{block:he,inline:ne}}static lex(t,n){return new Pn(n).lex(t)}static lexInline(t,n){return new Pn(n).inlineTokens(t)}lex(t){t=t.replace(/\r\n|\r/g,` +`).replace(/\t/g," "),this.blockTokens(t,this.tokens);let n;for(;n=this.inlineQueue.shift();)this.inlineTokens(n.src,n.tokens);return this.tokens}blockTokens(t,n=[]){this.options.pedantic&&(t=t.replace(/^ +$/gm,""));let i,r,s,o;for(;t;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(a=>(i=a.call({lexer:this},t,n))?(t=t.substring(i.raw.length),n.push(i),!0):!1))){if(i=this.tokenizer.space(t)){t=t.substring(i.raw.length),i.raw.length===1&&n.length>0?n[n.length-1].raw+=` +`:n.push(i);continue}if(i=this.tokenizer.code(t)){t=t.substring(i.raw.length),r=n[n.length-1],r&&(r.type==="paragraph"||r.type==="text")?(r.raw+=` +`+i.raw,r.text+=` +`+i.text,this.inlineQueue[this.inlineQueue.length-1].src=r.text):n.push(i);continue}if(i=this.tokenizer.fences(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.heading(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.hr(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.blockquote(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.list(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.html(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.def(t)){t=t.substring(i.raw.length),r=n[n.length-1],r&&(r.type==="paragraph"||r.type==="text")?(r.raw+=` +`+i.raw,r.text+=` +`+i.raw,this.inlineQueue[this.inlineQueue.length-1].src=r.text):this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title});continue}if(i=this.tokenizer.table(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.lheading(t)){t=t.substring(i.raw.length),n.push(i);continue}if(s=t,this.options.extensions&&this.options.extensions.startBlock){let a=1/0;const l=t.slice(1);let u;this.options.extensions.startBlock.forEach(function(c){u=c.call({lexer:this},l),typeof u=="number"&&u>=0&&(a=Math.min(a,u))}),a<1/0&&a>=0&&(s=t.substring(0,a+1))}if(this.state.top&&(i=this.tokenizer.paragraph(s))){r=n[n.length-1],o&&r.type==="paragraph"?(r.raw+=` +`+i.raw,r.text+=` +`+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):n.push(i),o=s.length!==t.length,t=t.substring(i.raw.length);continue}if(i=this.tokenizer.text(t)){t=t.substring(i.raw.length),r=n[n.length-1],r&&r.type==="text"?(r.raw+=` +`+i.raw,r.text+=` +`+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):n.push(i);continue}if(t){const a="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(a);break}else throw new Error(a)}}return this.state.top=!0,n}inline(t,n){this.inlineQueue.push({src:t,tokens:n})}inlineTokens(t,n=[]){let i,r,s,o=t,a,l,u;if(this.tokens.links){const c=Object.keys(this.tokens.links);if(c.length>0)for(;(a=this.tokenizer.rules.inline.reflinkSearch.exec(o))!=null;)c.includes(a[0].slice(a[0].lastIndexOf("[")+1,-1))&&(o=o.slice(0,a.index)+"["+pf("a",a[0].length-2)+"]"+o.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(a=this.tokenizer.rules.inline.blockSkip.exec(o))!=null;)o=o.slice(0,a.index)+"["+pf("a",a[0].length-2)+"]"+o.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(a=this.tokenizer.rules.inline.escapedEmSt.exec(o))!=null;)o=o.slice(0,a.index)+"++"+o.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);for(;t;)if(l||(u=""),l=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(c=>(i=c.call({lexer:this},t,n))?(t=t.substring(i.raw.length),n.push(i),!0):!1))){if(i=this.tokenizer.escape(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.tag(t)){t=t.substring(i.raw.length),r=n[n.length-1],r&&i.type==="text"&&r.type==="text"?(r.raw+=i.raw,r.text+=i.text):n.push(i);continue}if(i=this.tokenizer.link(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(i.raw.length),r=n[n.length-1],r&&i.type==="text"&&r.type==="text"?(r.raw+=i.raw,r.text+=i.text):n.push(i);continue}if(i=this.tokenizer.emStrong(t,o,u)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.codespan(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.br(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.del(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.autolink(t,gf)){t=t.substring(i.raw.length),n.push(i);continue}if(!this.state.inLink&&(i=this.tokenizer.url(t,gf))){t=t.substring(i.raw.length),n.push(i);continue}if(s=t,this.options.extensions&&this.options.extensions.startInline){let c=1/0;const p=t.slice(1);let f;this.options.extensions.startInline.forEach(function(d){f=d.call({lexer:this},p),typeof f=="number"&&f>=0&&(c=Math.min(c,f))}),c<1/0&&c>=0&&(s=t.substring(0,c+1))}if(i=this.tokenizer.inlineText(s,Gb)){t=t.substring(i.raw.length),i.raw.slice(-1)!=="_"&&(u=i.raw.slice(-1)),l=!0,r=n[n.length-1],r&&r.type==="text"?(r.raw+=i.raw,r.text+=i.text):n.push(i);continue}if(t){const c="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(c);break}else throw new Error(c)}}return n}}class bu{constructor(t){this.options=t||yr}code(t,n,i){const r=(n||"").match(/\S*/)[0];if(this.options.highlight){const s=this.options.highlight(t,r);s!=null&&s!==t&&(i=!0,t=s)}return t=t.replace(/\n$/,"")+` +`,r?'
'+(i?t:dt(t,!0))+`
+`:"
"+(i?t:dt(t,!0))+`
+`}blockquote(t){return`
+`+t+`
+`}html(t){return t}heading(t,n,i,r){return this.options.headerIds?"'+t+" +`:""+t+" +`}hr(){return this.options.xhtml?`
+`:`
+`}list(t,n,i){const r=n?"ol":"ul",s=n&&i!==1?' start="'+i+'"':"";return"<"+r+s+`> +`+t+" +`}listitem(t){return"
  • "+t+`
  • +`}checkbox(t){return" "}paragraph(t){return"

    "+t+`

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

    An error occurred:

    "+dt(i.message+"",!0)+"
    ";throw i}}ve.options=ve.setOptions=function(e){return on(ve.defaults,e),Tb(ve.defaults),ve};ve.getDefaults=Gp;ve.defaults=yr;ve.use=function(...e){const t=on({},...e),n=ve.defaults.extensions||{renderers:{},childTokens:{}};let i;e.forEach(r=>{if(r.extensions&&(i=!0,r.extensions.forEach(s=>{if(!s.name)throw new Error("extension name required");if(s.renderer){const o=n.renderers?n.renderers[s.name]:null;o?n.renderers[s.name]=function(...a){let l=s.renderer.apply(this,a);return l===!1&&(l=o.apply(this,a)),l}:n.renderers[s.name]=s.renderer}if(s.tokenizer){if(!s.level||s.level!=="block"&&s.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");n[s.level]?n[s.level].unshift(s.tokenizer):n[s.level]=[s.tokenizer],s.start&&(s.level==="block"?n.startBlock?n.startBlock.push(s.start):n.startBlock=[s.start]:s.level==="inline"&&(n.startInline?n.startInline.push(s.start):n.startInline=[s.start]))}s.childTokens&&(n.childTokens[s.name]=s.childTokens)})),r.renderer){const s=ve.defaults.renderer||new bu;for(const o in r.renderer){const a=s[o];s[o]=(...l)=>{let u=r.renderer[o].apply(s,l);return u===!1&&(u=a.apply(s,l)),u}}t.renderer=s}if(r.tokenizer){const s=ve.defaults.tokenizer||new Eu;for(const o in r.tokenizer){const a=s[o];s[o]=(...l)=>{let u=r.tokenizer[o].apply(s,l);return u===!1&&(u=a.apply(s,l)),u}}t.tokenizer=s}if(r.walkTokens){const s=ve.defaults.walkTokens;t.walkTokens=function(o){r.walkTokens.call(this,o),s&&s.call(this,o)}}i&&(t.extensions=n),ve.setOptions(t)})};ve.walkTokens=function(e,t){for(const n of e)switch(t.call(ve,n),n.type){case"table":{for(const i of n.header)ve.walkTokens(i.tokens,t);for(const i of n.rows)for(const r of i)ve.walkTokens(r.tokens,t);break}case"list":{ve.walkTokens(n.items,t);break}default:ve.defaults.extensions&&ve.defaults.extensions.childTokens&&ve.defaults.extensions.childTokens[n.type]?ve.defaults.extensions.childTokens[n.type].forEach(function(i){ve.walkTokens(n[i],t)}):n.tokens&&ve.walkTokens(n.tokens,t)}};ve.parseInline=function(e,t){if(typeof e=="undefined"||e===null)throw new Error("marked.parseInline(): input parameter is undefined or null");if(typeof e!="string")throw new Error("marked.parseInline(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected");t=on({},ve.defaults,t||{}),Wp(t);try{const n=Pn.lexInline(e,t);return t.walkTokens&&ve.walkTokens(n,t.walkTokens),$n.parseInline(n,t)}catch(n){if(n.message+=` +Please report this to https://github.com/markedjs/marked.`,t.silent)return"

    An error occurred:

    "+dt(n.message+"",!0)+"
    ";throw n}};ve.Parser=$n;ve.parser=$n.parse;ve.Renderer=bu;ve.TextRenderer=Zp;ve.Lexer=Pn;ve.lexer=Pn.lex;ve.Tokenizer=Eu;ve.Slugger=Kp;ve.parse=ve;$n.parse;Pn.lex;function Yb({change:e,activeTags:t,toggleTag:n}){return w("div",{class:"changelog-entry"},w("div",{class:"changelog-version"},w(_f,ge({},e.version)),w(_f,ge({},e.group))),w("div",{class:"changelog-tags"},e.tags.map(i=>w(Cs,{label:i,onClick:n?()=>n(i):void 0,active:t==null?void 0:t.includes(i)}))),w("div",{class:"changelog-content",dangerouslySetInnerHTML:{__html:ve(e.content)}}))}function _f({id:e,article:t}){return t===null?w("span",null,e):w("a",{href:`https://www.minecraft.net/en-us/article/${t}`,target:"_blank"},e)}function Cs({label:e,active:t,onClick:n}){const i=e==="breaking"?5:$0(e)%360;return w("div",{class:`changelog-tag${t?" active":""}${n?" clickable":""}`,style:`--tint: ${i}`,onClick:n},e==="breaking"&&be.alert,e)}function qp({changes:e,defaultOrder:t}){const{locale:n}=We(),[i,r]=Y(""),[s,o]=Y([]),a=f=>{s.includes(f)?o(s.filter(d=>d!==f)):o([...s,f])},l=He(()=>{const f=i.split(" ").map(d=>d.trim().toLowerCase()).filter(d=>d.length>0);return f.length===0&&s.length===0?e:e==null?void 0:e.filter(d=>{if(!s.every(h=>d.tags.includes(h)))return!1;const _=d.tags.join(" ")+" "+d.content.toLowerCase();return f.every(h=>h.startsWith("!")?h.length===1||!_.includes(h.slice(1)):_.includes(h))})},[e,i,s]),[u,c]=Y(t==="desc"),p=He(()=>l==null?void 0:l.sort((f,d)=>u?d.order-f.order:f.order-d.order),[l,u]);return w(xe,null,w("div",{class:"changelog-query"},w(wi,{class:"btn btn-input changelog-search",list:"sound-list",placeholder:n("changelog.search"),value:i,onChange:r}),w(fe,{icon:u?"sort_desc":"sort_asc",label:u?"Newest first":"Oldest first",onClick:()=>c(!u)})),s.length>0&&w("div",{class:"changelog-tags"},s.map(f=>w(Cs,{label:f,onClick:()=>o(s.filter(d=>d!==f))}))),w("div",{class:"changelog-list"},p===void 0?w("span",{class:"note"},n("loading")):p.length===0?w("span",{class:"note"},n("changelog.no_results")):p.map(f=>w(Yb,{change:f,activeTags:s,toggleTag:a}))))}function Wb({version:e}){const{locale:t}=We(),[n,i]=Y("changelog"),[r,s]=Y(void 0);me(()=>{V0().then(a=>s(a.map(l=>Je(ge({},l),{tags:l.tags.filter(u=>u!==l.group.id)})))).catch(a=>console.error(a))},[]);const o=He(()=>r==null?void 0:r.filter(a=>a.version.id===e.id||a.group.id===e.id),[e.id,r]);return w(xe,null,w("div",{class:"version-detail"},w("h2",null,e.name),w("div",{class:"version-info"},w(Tn,{label:t("versions.released"),value:Qp(e)}),w(Tn,{label:t("versions.release_target"),value:e.release_target,link:e.id!==e.release_target?`/versions/?id=${e.release_target}`:void 0}),w(Tn,{label:t("versions.data_version"),value:e.data_version}),w(Tn,{label:t("versions.protocol_version"),value:e.protocol_version}),w(Tn,{label:t("versions.data_pack_format"),value:e.data_pack_version}),w(Tn,{label:t("versions.resource_pack_format"),value:e.resource_pack_version})),w("div",{class:"version-tabs"},w("span",{class:n==="changelog"?"selected":"",onClick:()=>i("changelog")},t("versions.technical_changes")),w("span",{class:n==="discussion"?"selected":"",onClick:()=>i("discussion")},t("versions.discussion"))),w("div",{class:"version-tab"},n==="changelog"&&w(qp,{changes:o,defaultOrder:"asc"}),n==="discussion"&&w(wu,{term:`version/${e.id}`}))))}function Qp(e){return new Date(e.release_time).toLocaleDateString(void 0,{day:"numeric",month:"short",year:"numeric"})}function Zb({version:e,link:t}){const{locale:n}=We();return w("a",{class:"version-entry",href:t},w("span",{class:"version-id"},e.id),w(Tn,{label:n("versions.released"),value:Qp(e),compact:!0}),w(Tn,{label:n("versions.data_version"),value:e.data_version,optional:!0}),w(Tn,{label:n("versions.pack_format"),value:e.data_pack_version,optional:!0}))}function Kb({versions:e,link:t}){const{locale:n}=We(),[i,r]=Y(!0),[s,o]=Y(""),a=He(()=>e.filter(l=>l.type==="snapshot"&&!i?!1:l.id.includes(s)),[e,i,s]);return w(xe,null,w("div",{class:"versions-controls"},w(wi,{class:"btn btn-input version-search",placeholder:n("versions.search"),value:s,onChange:o}),w(mv,{label:"Include snapshots",value:i,onChange:r})),w("div",{class:"version-list"},a.map(l=>w(Zb,{version:l,link:t==null?void 0:t(l.id)})),a.length===0&&w("span",null,n("versions.no_results"))))}function Tn({label:e,value:t,link:n,compact:i,optional:r}){return w("div",{class:`version-metadata${r?" version-metadata-hide":""}`},w("span",{class:i?"version-metadata-hide":void 0},e,": "),w("span",{class:"version-metadata-value"},t),n&&w("a",{href:n,class:"version-metadata-link"},be.link_external))}function qb({title:e,link:t,versions:n,tags:i,activeTags:r,toggleTag:s}){const o=a=>l=>{s&&s(a),l.preventDefault(),l.stopImmediatePropagation()};return w("a",{class:"guide-card",href:t},w("span",{class:"guide-versions"},n.join(" \u2022 ")),w("h3",null,e),w("div",{class:"guide-tags"},i.sort().map(a=>w(Cs,{label:a,onClick:o(a),active:r==null?void 0:r.includes(a)}))))}const vf={system:"device_desktop",dark:"moon",light:"sun"};function Qb(){const{lang:e,locale:t,changeLanguage:n}=We(),{theme:i,changeTheme:r}=rd(),{version:s}=_r(),{title:o}=sn(),a=z0(er());return w("header",null,w("div",{class:"title"},w(Jf,{class:"home-link",href:"/","aria-label":t("home"),"data-cy":"home-link"},e1.home),w("h1",null,o),a&&w(Tt,{icon:"chevron_down",tooltip:t("switch_generator"),"data-cy":"generator-switcher"},Ne.generators.filter(l=>l.category===(a==null?void 0:a.category)&&Bt(s,l.minVersion)).map(l=>w(fe,{label:t(l.id),active:l.id===a.id,onClick:()=>ii(Rn(l.url))})))),w("nav",null,w("ul",null,w("li",{"data-cy":"language-switcher"},w(Tt,{icon:"globe",tooltip:t("language")},Ne.languages.map(({code:l,name:u})=>w(fe,{label:u,active:l===e,onClick:()=>n(l)})))),w("li",{"data-cy":"theme-switcher"},w(Tt,{icon:vf[i],tooltip:t("theme")},Object.entries(vf).map(([l,u])=>w(fe,{icon:u,label:t(`theme.${l}`),active:l===i,onClick:()=>r(l)})))),w("li",{class:"dimmed"},w("a",{href:"https://github.com/misode/misode.github.io",target:"_blank",rel:"noreferrer",class:"tooltipped tip-sw","aria-label":t("github")},be.mark_github)))))}const e1={home:w("svg",{width:"32",height:"28",viewBox:"0 0 32 28",fill:"none",xmlns:"http://www.w3.org/2000/svg"},w("rect",{width:"26",height:"6",rx:"3",fill:"#7CB45C"}),w("rect",{x:"8",width:"18",height:"6",rx:"3",fill:"#4BA041"}),w("rect",{y:"11",width:"32",height:"6",rx:"3",fill:"#AAA8A8"}),w("rect",{x:"11",y:"11",width:"21",height:"6",rx:"3",fill:"#91908F"}),w("rect",{x:"11",y:"22",width:"21",height:"6",rx:"3",fill:"#70B5C3"}),w("rect",{x:"17",y:"22",width:"15",height:"6",rx:"3",fill:"#4D989B"})),report:w("svg",{width:"30",height:"36",viewBox:"0 0 30 36",xmlns:"http://www.w3.org/2000/svg"},w("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"}),w("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"}),w("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"}),w("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"}),w("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"}),w("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:w("svg",{width:"20",height:"20",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},w("circle",{cx:"10",cy:"10",r:"10",fill:"#451475"}),w("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M3.5 10C3.5 8.27609 4.18482 6.62279 5.40381 5.40381C6.62279 4.18482 8.27609 3.5 10 3.5C11.7239 3.5 13.3772 4.18482 14.5962 5.40381C15.8152 6.62279 16.5 8.27609 16.5 10C16.5 11.7239 15.8152 13.3772 14.5962 14.5962C13.3772 15.8152 11.7239 16.5 10 16.5C8.27609 16.5 6.62279 15.8152 5.40381 14.5962C4.18482 13.3772 3.5 11.7239 3.5 10V10ZM10 2C7.87827 2 5.84344 2.84285 4.34315 4.34315C2.84285 5.84344 2 7.87827 2 10C2 12.1217 2.84285 14.1566 4.34315 15.6569C5.84344 17.1571 7.87827 18 10 18C12.1217 18 14.1566 17.1571 15.6569 15.6569C17.1571 14.1566 18 12.1217 18 10C18 7.87827 17.1571 5.84344 15.6569 4.34315C14.1566 2.84285 12.1217 2 10 2V2ZM8.379 7.227C8.34101 7.20412 8.29762 7.19175 8.25327 7.19117C8.20892 7.19059 8.16522 7.20181 8.12664 7.2237C8.08807 7.24558 8.05601 7.27733 8.03375 7.3157C8.0115 7.35406 7.99985 7.39765 8 7.442V12.559C8.00003 12.6033 8.0118 12.6467 8.03413 12.685C8.05646 12.7232 8.08854 12.7548 8.12708 12.7765C8.16563 12.7983 8.20926 12.8095 8.25352 12.8088C8.29778 12.8082 8.34108 12.7958 8.379 12.773L12.643 10.214C12.6798 10.1917 12.7103 10.1604 12.7315 10.1229C12.7526 10.0854 12.7638 10.043 12.7638 10C12.7638 9.95695 12.7526 9.91463 12.7315 9.87714C12.7103 9.83965 12.6798 9.80825 12.643 9.786L8.379 7.227Z",fill:"#C5A5E6"}))};function eA({howler:e,sounds:t,sound:n,delay:i,pitch:r,volume:s,onEdit:o,onDelete:a,delayedPlay:l}){const{locale:u}=We(),{version:c}=_r(),[p,f]=Y(!0),[d,_]=Y(!1),[h,m]=Y(!1),g=Pe([]),v=`playsound minecraft:${n} master @s ~ ~ ~ ${s} ${r}`;me(()=>{var B,M,U;const T=t[n];m(((M=(B=T==null?void 0:T.sounds)==null?void 0:B.length)!=null?M:0)===0),g.current.forEach(H=>H.stop()),g.current=((U=T==null?void 0:T.sounds)!=null?U:[]).map(H=>{const Q=typeof H=="string"?H:H.name,te=Sv(c,Q),$=e({src:[te],format:["ogg"],volume:s,rate:r});$.on("end",()=>{_(!1)});const X=()=>{p&&g.current.every(ie=>ie.state()==="loaded")&&f(!1)};return $.state()==="loaded"?setTimeout(()=>X()):$.on("load",()=>{X()}),$}),f(!0)},[n,t]),me(()=>{g.current.forEach(T=>T.rate(r))},[r]),me(()=>{g.current.forEach(T=>T.volume(s))},[s]);const y=()=>{if(p||h)return;A();const T=Math.floor(Math.random()*g.current.length);g.current[T].play(),_(!0)},A=()=>{g.current.forEach(T=>T.stop())};me(()=>{l&&setTimeout(()=>y(),i*50)},[l]),me(()=>()=>A(),[]);const[b,S]=Y(!1),D=Pe(void 0),k=()=>{navigator.clipboard.writeText(v),S(!0),D.current!==void 0&&clearTimeout(D.current),D.current=setTimeout(()=>{S(!1)},2e3)};return w("div",{class:`sound-config${p?" loading":d?" playing":""}${h?" invalid":""}`},w(fe,{class:"play",icon:h?"alert":p?"sync":"play",label:u("sounds.play"),onClick:y,tooltip:u(h?"sounds.unknown_sound":p?"sounds.loading_sound":"sounds.play_sound"),tooltipLoc:"se"}),w(wi,{class:"btn btn-input sound",list:"sound-list",spellcheck:!1,value:n,onChange:T=>o({sound:T})}),w("label",{class:"delay-label"},u("sounds.delay"),": "),w(gv,{class:"btn btn-input delay",min:0,value:i,onChange:T=>o({delay:T})}),w("label",{class:"pitch-label"},u("sounds.pitch"),": "),w(pc,{class:"pitch tooltipped tip-s",min:.5,max:2,step:.01,"aria-label":r.toFixed(2),style:`--x: ${(r-.5)*(100/1.5)}%`,value:r,onChange:T=>o({pitch:T})}),w("label",{class:"volume-label"},u("sounds.volume"),": "),w(pc,{class:"volume tooltipped tip-s",min:0,max:1,step:.01,"aria-label":s.toFixed(2),style:`--x: ${s*100}%`,value:s,onChange:T=>o({volume:T})}),w(fe,{class:`copy${b?" active":""}`,icon:b?"check":"terminal",label:u("copy"),tooltip:u(b?"copied":"sounds.copy_command"),onClick:k}),w(fe,{class:"remove",icon:"trashcan",tooltip:u("sounds.remove_sound"),onClick:()=>{a(),A()}}))}function Ht({title:e,desc:t,link:n,icon:i,children:r}){const s=w(xe,null,w("div",{class:"tool-head"},i&&e1[i],w("div",null,w("h3",null,e),w("p",null,t))),r&&w("div",{class:"tool-body"},r));return n?w("a",{class:"tool-card",href:n},s):w("div",{class:"tool-card"},s)}const xf="/";function t1({entries:e,onSelect:t,indent:n}){const i=He(()=>{var u;const l={};for(const c of e){const p=c.indexOf(xf);if(p>=0){const f=c.slice(0,p);((u=l[f])!=null?u:l[f]=[]).push(c.slice(p+1))}}return Object.entries(l)},e),r=He(()=>e.filter(l=>!l.includes(xf)),e),[s,o]=Y(new Set),a=l=>{s.has(l)?s.delete(l):s.add(l),o(new Set(s))};return w("div",{class:"tree-view",style:`--indent: ${n!=null?n:0};`},i.map(([l,u])=>w("div",null,w(yf,{icon:s.has(l)?"chevron_right":"chevron_down",key:l,label:l,onClick:()=>a(l)}),!s.has(l)&&w(t1,{entries:u,onSelect:c=>t(`${l}/${c}`),indent:(n!=null?n:0)+1}))),r.map(l=>w(yf,{icon:"file",key:l,label:l,onClick:()=>t(l)})))}function yf({icon:e,label:t,onClick:n}){return w("div",{class:"entry",onClick:n},be[e],t)}function wf({category:e}){const{locale:t}=We();return sn(t("title.generator_category",t(e))),w("main",null,w("div",{class:"category"},Ne.generators.filter(n=>n.category===e).map(n=>w(Ht,{title:t(n.id),link:Rn(n.url)}))))}function tA({}){const{locale:e}=We(),[t,n]=Y(null);sn(e("title.changelog"));const[i,r]=Y([]);return me(()=>{V0().then(s=>r(s)).catch(s=>{console.error(s),n(s)})},[]),w("main",null,w(ps,{type:"text",id:"changelog"}),t&&w(Yi,{error:t,onDismiss:()=>n(null)}),w("div",{class:"changelog"},w(qp,{changes:i,defaultOrder:"desc"})))}function nA({}){var Ie;const{locale:e}=We(),{version:t,changeVersion:n,changeTargetVersion:i}=_r(),{project:r,file:s,updateFile:o,openFile:a,closeFile:l}=nd(),[u,c]=Y(null),[p,f]=Wf();if(p)return p.message=`Something went wrong rendering the generator: ${p.message}`,w("main",null,w(Yi,{error:p,onDismiss:f}));const d=z0(er());if(!d)return w("main",null,w(Yi,{error:`Cannot find generator "${er()}"`}));const _=He(()=>Ne.versions.filter(re=>Bt(re.id,d.minVersion,d.maxVersion)).map(re=>re.id).reverse(),[d.minVersion,d.maxVersion]);sn(e("title.generator",e(d.id)),_),Bt(t,d.minVersion)||c(`The minimum version for this generator is ${d.minVersion}`),Bt(t,void 0,d.maxVersion)||c(`This generator is not available in versions above ${d.maxVersion}`);const[h,m]=Jr("preset"),[g,v]=Jr(Ka),y=Pe(!1);me(()=>{D&&h?Ze(h).then(re=>{y.current=!0,D.reset(q.DataModel.wrapLists(re),!1),v(void 0)}):D&&g&&xc(g).then(re=>A(D,re))},[h,g]);const A=(re,Re)=>{if(Re.version&&Re.version!==t&&n(Re.version,!1),Re.type&&Re.type!==d.id){const ui=Ne.generators.find(R=>R.id===Re.type);ui&&ii(`${Rn(ui.url)}?${Ka}=${Re.id}`)}Re.show_preview&&!z&&(ye(!0),Se(!1)),re.reset(q.DataModel.wrapLists(Re.data),!1)},b=He(()=>pt.getBackup(d.id),[d.id]),S=()=>{b!==void 0&&(D==null||D.reset(q.DataModel.wrapLists(b),!1))},[D,k]=Y(null),[T,B]=Y(null);me(()=>{c(null),k(null),Nv(t).then(re=>B(re)),Tv(t,d.id).then(async re=>{if(it.setGenerator(d.id),h){const Re=await Ze(h);re.reset(q.DataModel.wrapLists(Re),!1)}else if(g){const Re=await xc(g);A(re,Re)}k(re)}).catch(re=>{console.error(re),c(re)})},[t,d.id]);const[M,U]=Y(!1);Mo(D,()=>{y.current||(m(void 0,!0),v(void 0,!0)),y.current=!1,pt.setBackup(d.id,q.DataModel.unwrapLists(D==null?void 0:D.data)),c(null),U(!0)},[d.id,m,v]);const[H,Q]=Y(""),[te,$]=Sr(),[X,ie]=Sr(),ae=()=>{if(H!==(s==null?void 0:s.id)&&H&&D&&T){const re=to(D,T);o(d.id,s==null?void 0:s.id,{id:H,data:re})?$():(ie(),s&&Q(s==null?void 0:s.id))}else s&&Q(s==null?void 0:s.id)},j=()=>{s&&o(d.id,s.id,{})};me(()=>{s&&Q(s.id)},[s]),me(()=>{var re;D&&(Q((re=s==null?void 0:s.id)!=null?re:""),s&&d.id===s.type&&D.reset(q.DataModel.wrapLists(s.data)),U(!1))},[s,D]);const I=()=>{it.generatorEvent("reset"),D==null||D.reset(q.DataModel.wrapLists(D.schema.default()),!0)},O=re=>{re.stopPropagation(),it.generatorEvent("undo","Menu"),D==null||D.undo()},Z=re=>{re.stopPropagation(),it.generatorEvent("redo","Menu"),D==null||D.redo()},K=re=>{re.ctrlKey&&re.key==="z"?(it.generatorEvent("undo","Hotkey"),D==null||D.undo()):re.ctrlKey&&re.key==="y"&&(it.generatorEvent("redo","Hotkey"),D==null||D.redo())},pe=re=>{if(re.ctrlKey&&re.key==="s"&&(re.preventDefault(),D&&T&&s)){it.generatorEvent("save","Hotkey");const Re=to(D,T);o(d.id,s==null?void 0:s.id,{id:s==null?void 0:s.id,data:Re}),U(!1),$()}};me(()=>(document.addEventListener("keyup",K),document.addEventListener("keydown",pe),()=>{document.removeEventListener("keyup",K),document.removeEventListener("keydown",pe)}),[D,T,s]);const[Me,tt]=Y([]);me(()=>{Bv(t).then(re=>{tt(re.get(d.id).map(Re=>Re.slice(10)))}).catch(re=>{console.error(re),c(re)})},[t,d.id]);const vt=re=>{it.generatorEvent("load-preset",re),v(void 0,!0),i(t,!0),m(re)},Ze=async re=>{var Re,ui,R;try{const P=await J0(t,(Re=d.path)!=null?Re:d.id,re),V=D==null?void 0:D.get(new q.Path(["generator","seed"]));return((ui=P==null?void 0:P.generator)==null?void 0:ui.seed)!==void 0&&V!==void 0&&(P.generator.seed=V,((R=P.generator.biome_source)==null?void 0:R.seed)!==void 0&&(P.generator.biome_source.seed=V)),P}catch{c(`Cannot load preset ${re} in ${t}`),m(void 0,!0)}},nt=re=>{v(void 0,!0),n(re)},[Ke,xt]=Y(void 0),[yt,Ve]=Y(!1),[Ct,Ut]=Sr({cooldown:3e3}),ce=()=>{if(yt){Ve(!1);return}if(h)xt(`${location.origin}/${d.url}/?version=${t}&preset=${h}`),Ve(!0),jt();else if(D&&T){const re=to(D,T);yi(re,D.schema.default())?(xt(`${location.origin}/${d.url}/?version=${t}`),Ve(!0)):Ov(d.id,t,re,z).then(Re=>{xt(Re),Ve(!0)}).catch(Re=>{Re instanceof Error&&c(Re)})}},jt=()=>{navigator.clipboard.writeText(Ke!=null?Ke:""),Ut()};me(()=>{Ct||(xt(void 0),Ve(!1))},[Ct]);const[De,Se]=Y(window.innerWidth>820),[wt,ee]=Y(0),[At,an]=Y(0),[G,oe]=Y(0),C=()=>{it.generatorEvent("copy"),ee(wt+1)},x=()=>{it.generatorEvent("download"),an(At+1)},E=()=>{it.generatorEvent("import"),Se(!0),oe(G+1)},F=()=>{it.generatorEvent("toggle-output",De?"hidden":"visible"),Se(!De),ee(0),an(0),oe(0)},[N,L]=Sr(),[z,ye]=Y(!1),Le=Jw.includes(d.id)&&!(d.id==="worldgen/configured_feature"&&Bt(t,"1.18"));z&&!Le&&ye(!1);let Oe=2;Le&&(Oe+=1),De&&(Oe+=2);const Ue=()=>{it.generatorEvent("toggle-preview",z?"hidden":"visible"),ye(!z),!z&&De&&Se(!1)};return w(xe,null,w("main",{class:z?"has-preview":""},w(ps,{id:"data-pack-generator",type:"text"}),w("div",{class:"controls"},w("div",{class:`project-controls ${s&&"has-file"}`},w("div",{class:"btn-row"},w(Tt,{icon:"repo",label:r.name,relative:!1},w(fe,{icon:"arrow_left",label:e("project.go_to"),onClick:()=>ii("/project")}),s&&w(fe,{icon:"file",label:e("project.new_file"),onClick:l}),b!==void 0&&w(fe,{icon:"history",label:e("restore_backup"),onClick:S}),w(mc,{searchPlaceholder:e(r.name==="Drafts"?"project.search_drafts":"project.search"),noResults:e("project.no_files"),values:r.files.filter(re=>re.type===d.id).map(re=>re.id),onSelect:re=>a(d.id,re)})),w(wi,{class:"btn btn-input",placeholder:e("project.unsaved_file"),value:H,onChange:Q,onEnter:ae,onBlur:ae}),s&&w(fe,{icon:"trashcan",tooltip:e("project.delete_file"),onClick:j})),M?w("div",{class:"status-icon"},be.dot_fill):te?w("div",{class:"status-icon active"},be.check):X&&w("div",{class:"status-icon danger"},be.x)),w("div",{class:"generator-controls"},w(fe,{icon:"upload",label:e("import"),onClick:E}),w(Tt,{icon:"archive",label:e("presets"),relative:!1},w(mc,{searchPlaceholder:e("search"),noResults:e("no_presets"),values:Me,onSelect:vt})),w(Tt,{icon:"tag",label:t,tooltip:e("switch_version"),"data-cy":"version-switcher"},_.map(re=>w(fe,{label:re,active:re===t,onClick:()=>nt(re)}))),w(Tt,{icon:"kebab_horizontal",tooltip:e("more")},w(fe,{icon:"history",label:e("reset"),onClick:I}),w(fe,{icon:"arrow_left",label:e("undo"),onClick:O}),w(fe,{icon:"arrow_right",label:e("redo"),onClick:Z})))),u&&w(Yi,{error:u,onDismiss:()=>c(null)}),w(Eb,{model:D,version:t,blockStates:T,onError:c})),w("div",{class:"popup-actions",style:`--offset: -${8+Oe*50}px;`},w("div",{class:`popup-action action-preview${Le?" shown":""} tooltipped tip-nw`,"aria-label":e(z?"hide_preview":"show_preview"),onClick:Ue},z?be.x_circle:be.play),w("div",{class:"popup-action action-share shown tooltipped tip-nw","aria-label":e("share"),onClick:ce},be.link),w("div",{class:`popup-action action-download${De?" shown":""} tooltipped tip-nw`,"aria-label":e("download"),onClick:x},be.download),w("div",{class:`popup-action action-copy${De?" shown":""}${N?" active":""} tooltipped tip-nw`,"aria-label":e(N?"copied":"copy"),onClick:C},N?be.check:be.clippy),w("div",{class:"popup-action action-code shown tooltipped tip-nw","aria-label":e(De?"hide_output":"show_output"),onClick:F},De?be.chevron_right:be.code)),w("div",{class:`popup-preview${z?" shown":""}`},w(Gw,{model:D,version:t,id:d.id,shown:z,onError:c})),w("div",{class:`popup-source${De?" shown":""}`},w(R5,{model:D,blockStates:T,doCopy:wt,doDownload:At,doImport:G,name:(Ie=d.schema)!=null?Ie:"data",copySuccess:L,onError:c})),w("div",{class:`popup-share${yt?" shown":""}`},w(wi,{value:Ke,readonly:!0}),w(fe,{icon:Ct?"check":"clippy",onClick:jt,tooltip:e(Ct?"copied":"copy_share"),tooltipLoc:"nw",active:Ct,showTooltip:Ct})))}var Au={exports:{}};function Su(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(function(t){var n=e[t];typeof n=="object"&&!Object.isFrozen(n)&&Su(n)}),e}Au.exports=Su;Au.exports.default=Su;var iA=Au.exports;class Ef{constructor(t){t.data===void 0&&(t.data={}),this.data=t.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function n1(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function Kn(e,...t){const n=Object.create(null);for(const i in e)n[i]=e[i];return t.forEach(function(i){for(const r in i)n[r]=i[r]}),n}const rA="",bf=e=>!!e.kind,sA=(e,{prefix:t})=>{if(e.includes(".")){const n=e.split(".");return[`${t}${n.shift()}`,...n.map((i,r)=>`${i}${"_".repeat(r+1)}`)].join(" ")}return`${t}${e}`};class oA{constructor(t,n){this.buffer="",this.classPrefix=n.classPrefix,t.walk(this)}addText(t){this.buffer+=n1(t)}openNode(t){if(!bf(t))return;let n=t.kind;t.sublanguage?n=`language-${n}`:n=sA(n,{prefix:this.classPrefix}),this.span(n)}closeNode(t){!bf(t)||(this.buffer+=rA)}value(){return this.buffer}span(t){this.buffer+=``}}class Du{constructor(){this.rootNode={children:[]},this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(t){this.top.children.push(t)}openNode(t){const n={kind:t,children:[]};this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(t){return this.constructor._walk(t,this.rootNode)}static _walk(t,n){return typeof n=="string"?t.addText(n):n.children&&(t.openNode(n),n.children.forEach(i=>this._walk(t,i)),t.closeNode(n)),t}static _collapse(t){typeof t!="string"&&(!t.children||(t.children.every(n=>typeof n=="string")?t.children=[t.children.join("")]:t.children.forEach(n=>{Du._collapse(n)})))}}class aA extends Du{constructor(t){super(),this.options=t}addKeyword(t,n){t!==""&&(this.openNode(n),this.addText(t),this.closeNode())}addText(t){t!==""&&this.add(t)}addSublanguage(t,n){const i=t.root;i.kind=n,i.sublanguage=!0,this.add(i)}toHTML(){return new oA(this,this.options).value()}finalize(){return!0}}function hs(e){return e?typeof e=="string"?e:e.source:null}function i1(e){return Fi("(?=",e,")")}function lA(e){return Fi("(?:",e,")*")}function uA(e){return Fi("(?:",e,")?")}function Fi(...e){return e.map(n=>hs(n)).join("")}function cA(e){const t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function Cu(...e){const t=cA(e);return"("+(t.capture?"":"?:")+e.map(i=>hs(i)).join("|")+")"}function r1(e){return new RegExp(e.toString()+"|").exec("").length-1}function hA(e,t){const n=e&&e.exec(t);return n&&n.index===0}const fA=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function ku(e,{joinWith:t}){let n=0;return e.map(i=>{n+=1;const r=n;let s=hs(i),o="";for(;s.length>0;){const a=fA.exec(s);if(!a){o+=s;break}o+=s.substring(0,a.index),s=s.substring(a.index+a[0].length),a[0][0]==="\\"&&a[1]?o+="\\"+String(Number(a[1])+r):(o+=a[0],a[0]==="("&&n++)}return o}).map(i=>`(${i})`).join(t)}const dA=/\b\B/,s1="[a-zA-Z]\\w*",Fu="[a-zA-Z_]\\w*",o1="\\b\\d+(\\.\\d+)?",a1="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",l1="\\b(0b[01]+)",pA="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",mA=(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=Fi(t,/.*\b/,e.binary,/\b.*/)),Kn({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(n,i)=>{n.index!==0&&i.ignoreMatch()}},e)},fs={begin:"\\\\[\\s\\S]",relevance:0},gA={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[fs]},_A={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[fs]},vA={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},Wo=function(e,t,n={}){const i=Kn({scope:"comment",begin:e,end:t,contains:[]},n);i.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const r=Cu("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return i.contains.push({begin:Fi(/[ ]+/,"(",r,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),i},xA=Wo("//","$"),yA=Wo("/\\*","\\*/"),wA=Wo("#","$"),EA={scope:"number",begin:o1,relevance:0},bA={scope:"number",begin:a1,relevance:0},AA={scope:"number",begin:l1,relevance:0},SA={begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[fs,{begin:/\[/,end:/\]/,relevance:0,contains:[fs]}]}]},DA={scope:"title",begin:s1,relevance:0},CA={scope:"title",begin:Fu,relevance:0},kA={begin:"\\.\\s*"+Fu,relevance:0},FA=function(e){return Object.assign(e,{"on:begin":(t,n)=>{n.data._beginMatch=t[1]},"on:end":(t,n)=>{n.data._beginMatch!==t[1]&&n.ignoreMatch()}})};var zs=Object.freeze({__proto__:null,MATCH_NOTHING_RE:dA,IDENT_RE:s1,UNDERSCORE_IDENT_RE:Fu,NUMBER_RE:o1,C_NUMBER_RE:a1,BINARY_NUMBER_RE:l1,RE_STARTERS_RE:pA,SHEBANG:mA,BACKSLASH_ESCAPE:fs,APOS_STRING_MODE:gA,QUOTE_STRING_MODE:_A,PHRASAL_WORDS_MODE:vA,COMMENT:Wo,C_LINE_COMMENT_MODE:xA,C_BLOCK_COMMENT_MODE:yA,HASH_COMMENT_MODE:wA,NUMBER_MODE:EA,C_NUMBER_MODE:bA,BINARY_NUMBER_MODE:AA,REGEXP_MODE:SA,TITLE_MODE:DA,UNDERSCORE_TITLE_MODE:CA,METHOD_GUARD:kA,END_SAME_AS_BEGIN:FA});function IA(e,t){e.input[e.index-1]==="."&&t.ignoreMatch()}function TA(e,t){e.className!==void 0&&(e.scope=e.className,delete e.className)}function BA(e,t){!t||!e.beginKeywords||(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=IA,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function NA(e,t){!Array.isArray(e.illegal)||(e.illegal=Cu(...e.illegal))}function MA(e,t){if(!!e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function OA(e,t){e.relevance===void 0&&(e.relevance=1)}const LA=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const n=Object.assign({},e);Object.keys(e).forEach(i=>{delete e[i]}),e.keywords=n.keywords,e.begin=Fi(n.beforeMatch,i1(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},RA=["of","and","for","in","not","or","if","then","parent","list","value"],PA="keyword";function u1(e,t,n=PA){const i=Object.create(null);return typeof e=="string"?r(n,e.split(" ")):Array.isArray(e)?r(n,e):Object.keys(e).forEach(function(s){Object.assign(i,u1(e[s],t,s))}),i;function r(s,o){t&&(o=o.map(a=>a.toLowerCase())),o.forEach(function(a){const l=a.split("|");i[l[0]]=[s,$A(l[0],l[1])]})}}function $A(e,t){return t?Number(t):zA(e)?0:1}function zA(e){return RA.includes(e.toLowerCase())}const Af={},vi=e=>{console.error(e)},Sf=(e,...t)=>{console.log(`WARN: ${e}`,...t)},zi=(e,t)=>{Af[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),Af[`${e}/${t}`]=!0)},Ao=new Error;function c1(e,t,{key:n}){let i=0;const r=e[n],s={},o={};for(let a=1;a<=t.length;a++)o[a+i]=r[a],s[a+i]=!0,i+=r1(t[a-1]);e[n]=o,e[n]._emit=s,e[n]._multi=!0}function UA(e){if(!!Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw vi("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),Ao;if(typeof e.beginScope!="object"||e.beginScope===null)throw vi("beginScope must be object"),Ao;c1(e,e.begin,{key:"beginScope"}),e.begin=ku(e.begin,{joinWith:""})}}function jA(e){if(!!Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw vi("skip, excludeEnd, returnEnd not compatible with endScope: {}"),Ao;if(typeof e.endScope!="object"||e.endScope===null)throw vi("endScope must be object"),Ao;c1(e,e.end,{key:"endScope"}),e.end=ku(e.end,{joinWith:""})}}function HA(e){e.scope&&typeof e.scope=="object"&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function VA(e){HA(e),typeof e.beginScope=="string"&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope=="string"&&(e.endScope={_wrap:e.endScope}),UA(e),jA(e)}function XA(e){function t(o,a){return new RegExp(hs(o),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(a?"g":""))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(a,l){l.position=this.position++,this.matchIndexes[this.matchAt]=l,this.regexes.push([l,a]),this.matchAt+=r1(a)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const a=this.regexes.map(l=>l[1]);this.matcherRe=t(ku(a,{joinWith:"|"}),!0),this.lastIndex=0}exec(a){this.matcherRe.lastIndex=this.lastIndex;const l=this.matcherRe.exec(a);if(!l)return null;const u=l.findIndex((p,f)=>f>0&&p!==void 0),c=this.matchIndexes[u];return l.splice(0,u),Object.assign(l,c)}}class i{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(a){if(this.multiRegexes[a])return this.multiRegexes[a];const l=new n;return this.rules.slice(a).forEach(([u,c])=>l.addRule(u,c)),l.compile(),this.multiRegexes[a]=l,l}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(a,l){this.rules.push([a,l]),l.type==="begin"&&this.count++}exec(a){const l=this.getMatcher(this.regexIndex);l.lastIndex=this.lastIndex;let u=l.exec(a);if(this.resumingScanAtSamePosition()&&!(u&&u.index===this.lastIndex)){const c=this.getMatcher(0);c.lastIndex=this.lastIndex+1,u=c.exec(a)}return u&&(this.regexIndex+=u.position+1,this.regexIndex===this.count&&this.considerAll()),u}}function r(o){const a=new i;return o.contains.forEach(l=>a.addRule(l.begin,{rule:l,type:"begin"})),o.terminatorEnd&&a.addRule(o.terminatorEnd,{type:"end"}),o.illegal&&a.addRule(o.illegal,{type:"illegal"}),a}function s(o,a){const l=o;if(o.isCompiled)return l;[TA,MA,VA,LA].forEach(c=>c(o,a)),e.compilerExtensions.forEach(c=>c(o,a)),o.__beforeBegin=null,[BA,NA,OA].forEach(c=>c(o,a)),o.isCompiled=!0;let u=null;return typeof o.keywords=="object"&&o.keywords.$pattern&&(o.keywords=Object.assign({},o.keywords),u=o.keywords.$pattern,delete o.keywords.$pattern),u=u||/\w+/,o.keywords&&(o.keywords=u1(o.keywords,e.case_insensitive)),l.keywordPatternRe=t(u,!0),a&&(o.begin||(o.begin=/\B|\b/),l.beginRe=t(l.begin),!o.end&&!o.endsWithParent&&(o.end=/\B|\b/),o.end&&(l.endRe=t(l.end)),l.terminatorEnd=hs(l.end)||"",o.endsWithParent&&a.terminatorEnd&&(l.terminatorEnd+=(o.end?"|":"")+a.terminatorEnd)),o.illegal&&(l.illegalRe=t(o.illegal)),o.contains||(o.contains=[]),o.contains=[].concat(...o.contains.map(function(c){return JA(c==="self"?o:c)})),o.contains.forEach(function(c){s(c,l)}),o.starts&&s(o.starts,a),l.matcher=r(l),l}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=Kn(e.classNameAliases||{}),s(e)}function h1(e){return e?e.endsWithParent||h1(e.starts):!1}function JA(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return Kn(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:h1(e)?Kn(e,{starts:e.starts?Kn(e.starts):null}):Object.isFrozen(e)?Kn(e):e}var GA="11.5.1";class YA extends Error{constructor(t,n){super(t),this.name="HTMLInjectionError",this.html=n}}const za=n1,Df=Kn,Cf=Symbol("nomatch"),WA=7,ZA=function(e){const t=Object.create(null),n=Object.create(null),i=[];let r=!0;const s="Could not find the language '{}', did you forget to load/include a language module?",o={disableAutodetect:!0,name:"Plain text",contains:[]};let a={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:aA};function l($){return a.noHighlightRe.test($)}function u($){let X=$.className+" ";X+=$.parentNode?$.parentNode.className:"";const ie=a.languageDetectRe.exec(X);if(ie){const ae=T(ie[1]);return ae||(Sf(s.replace("{}",ie[1])),Sf("Falling back to no-highlight mode for this block.",$)),ae?ie[1]:"no-highlight"}return X.split(/\s+/).find(ae=>l(ae)||T(ae))}function c($,X,ie){let ae="",j="";typeof X=="object"?(ae=$,ie=X.ignoreIllegals,j=X.language):(zi("10.7.0","highlight(lang, code, ...args) has been deprecated."),zi("10.7.0",`Please use highlight(code, options) instead. +https://github.com/highlightjs/highlight.js/issues/2277`),j=$,ae=X),ie===void 0&&(ie=!0);const I={code:ae,language:j};Q("before:highlight",I);const O=I.result?I.result:p(I.language,I.code,ie);return O.code=I.code,Q("after:highlight",O),O}function p($,X,ie,ae){const j=Object.create(null);function I(G,oe){return G.keywords[oe]}function O(){if(!ce.keywords){De.addText(Se);return}let G=0;ce.keywordPatternRe.lastIndex=0;let oe=ce.keywordPatternRe.exec(Se),C="";for(;oe;){C+=Se.substring(G,oe.index);const x=Ve.case_insensitive?oe[0].toLowerCase():oe[0],E=I(ce,x);if(E){const[F,N]=E;if(De.addText(C),C="",j[x]=(j[x]||0)+1,j[x]<=WA&&(wt+=N),F.startsWith("_"))C+=oe[0];else{const L=Ve.classNameAliases[F]||F;De.addKeyword(oe[0],L)}}else C+=oe[0];G=ce.keywordPatternRe.lastIndex,oe=ce.keywordPatternRe.exec(Se)}C+=Se.substr(G),De.addText(C)}function Z(){if(Se==="")return;let G=null;if(typeof ce.subLanguage=="string"){if(!t[ce.subLanguage]){De.addText(Se);return}G=p(ce.subLanguage,Se,!0,jt[ce.subLanguage]),jt[ce.subLanguage]=G._top}else G=d(Se,ce.subLanguage.length?ce.subLanguage:null);ce.relevance>0&&(wt+=G.relevance),De.addSublanguage(G._emitter,G.language)}function K(){ce.subLanguage!=null?Z():O(),Se=""}function pe(G,oe){let C=1;const x=oe.length-1;for(;C<=x;){if(!G._emit[C]){C++;continue}const E=Ve.classNameAliases[G[C]]||G[C],F=oe[C];E?De.addKeyword(F,E):(Se=F,O(),Se=""),C++}}function Me(G,oe){return G.scope&&typeof G.scope=="string"&&De.openNode(Ve.classNameAliases[G.scope]||G.scope),G.beginScope&&(G.beginScope._wrap?(De.addKeyword(Se,Ve.classNameAliases[G.beginScope._wrap]||G.beginScope._wrap),Se=""):G.beginScope._multi&&(pe(G.beginScope,oe),Se="")),ce=Object.create(G,{parent:{value:ce}}),ce}function tt(G,oe,C){let x=hA(G.endRe,C);if(x){if(G["on:end"]){const E=new Ef(G);G["on:end"](oe,E),E.isMatchIgnored&&(x=!1)}if(x){for(;G.endsParent&&G.parent;)G=G.parent;return G}}if(G.endsWithParent)return tt(G.parent,oe,C)}function vt(G){return ce.matcher.regexIndex===0?(Se+=G[0],1):(an=!0,0)}function Ze(G){const oe=G[0],C=G.rule,x=new Ef(C),E=[C.__beforeBegin,C["on:begin"]];for(const F of E)if(!!F&&(F(G,x),x.isMatchIgnored))return vt(oe);return C.skip?Se+=oe:(C.excludeBegin&&(Se+=oe),K(),!C.returnBegin&&!C.excludeBegin&&(Se=oe)),Me(C,G),C.returnBegin?0:oe.length}function nt(G){const oe=G[0],C=X.substr(G.index),x=tt(ce,G,C);if(!x)return Cf;const E=ce;ce.endScope&&ce.endScope._wrap?(K(),De.addKeyword(oe,ce.endScope._wrap)):ce.endScope&&ce.endScope._multi?(K(),pe(ce.endScope,G)):E.skip?Se+=oe:(E.returnEnd||E.excludeEnd||(Se+=oe),K(),E.excludeEnd&&(Se=oe));do ce.scope&&De.closeNode(),!ce.skip&&!ce.subLanguage&&(wt+=ce.relevance),ce=ce.parent;while(ce!==x.parent);return x.starts&&Me(x.starts,G),E.returnEnd?0:oe.length}function Ke(){const G=[];for(let oe=ce;oe!==Ve;oe=oe.parent)oe.scope&&G.unshift(oe.scope);G.forEach(oe=>De.openNode(oe))}let xt={};function yt(G,oe){const C=oe&&oe[0];if(Se+=G,C==null)return K(),0;if(xt.type==="begin"&&oe.type==="end"&&xt.index===oe.index&&C===""){if(Se+=X.slice(oe.index,oe.index+1),!r){const x=new Error(`0 width match regex (${$})`);throw x.languageName=$,x.badRule=xt.rule,x}return 1}if(xt=oe,oe.type==="begin")return Ze(oe);if(oe.type==="illegal"&&!ie){const x=new Error('Illegal lexeme "'+C+'" for mode "'+(ce.scope||"")+'"');throw x.mode=ce,x}else if(oe.type==="end"){const x=nt(oe);if(x!==Cf)return x}if(oe.type==="illegal"&&C==="")return 1;if(At>1e5&&At>oe.index*3)throw new Error("potential infinite loop, way more iterations than matches");return Se+=C,C.length}const Ve=T($);if(!Ve)throw vi(s.replace("{}",$)),new Error('Unknown language: "'+$+'"');const Ct=XA(Ve);let Ut="",ce=ae||Ct;const jt={},De=new a.__emitter(a);Ke();let Se="",wt=0,ee=0,At=0,an=!1;try{for(ce.matcher.considerAll();;){At++,an?an=!1:ce.matcher.considerAll(),ce.matcher.lastIndex=ee;const G=ce.matcher.exec(X);if(!G)break;const oe=X.substring(ee,G.index),C=yt(oe,G);ee=G.index+C}return yt(X.substr(ee)),De.closeAllNodes(),De.finalize(),Ut=De.toHTML(),{language:$,value:Ut,relevance:wt,illegal:!1,_emitter:De,_top:ce}}catch(G){if(G.message&&G.message.includes("Illegal"))return{language:$,value:za(X),illegal:!0,relevance:0,_illegalBy:{message:G.message,index:ee,context:X.slice(ee-100,ee+100),mode:G.mode,resultSoFar:Ut},_emitter:De};if(r)return{language:$,value:za(X),illegal:!1,relevance:0,errorRaised:G,_emitter:De,_top:ce};throw G}}function f($){const X={value:za($),illegal:!1,relevance:0,_top:o,_emitter:new a.__emitter(a)};return X._emitter.addText($),X}function d($,X){X=X||a.languages||Object.keys(t);const ie=f($),ae=X.filter(T).filter(M).map(K=>p(K,$,!1));ae.unshift(ie);const j=ae.sort((K,pe)=>{if(K.relevance!==pe.relevance)return pe.relevance-K.relevance;if(K.language&&pe.language){if(T(K.language).supersetOf===pe.language)return 1;if(T(pe.language).supersetOf===K.language)return-1}return 0}),[I,O]=j,Z=I;return Z.secondBest=O,Z}function _($,X,ie){const ae=X&&n[X]||ie;$.classList.add("hljs"),$.classList.add(`language-${ae}`)}function h($){let X=null;const ie=u($);if(l(ie))return;if(Q("before:highlightElement",{el:$,language:ie}),$.children.length>0&&(a.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn($)),a.throwUnescapedHTML))throw new YA("One of your code blocks includes unescaped HTML.",$.innerHTML);X=$;const ae=X.textContent,j=ie?c(ae,{language:ie,ignoreIllegals:!0}):d(ae);$.innerHTML=j.value,_($,ie,j.language),$.result={language:j.language,re:j.relevance,relevance:j.relevance},j.secondBest&&($.secondBest={language:j.secondBest.language,relevance:j.secondBest.relevance}),Q("after:highlightElement",{el:$,result:j,text:ae})}function m($){a=Df(a,$)}const g=()=>{A(),zi("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function v(){A(),zi("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let y=!1;function A(){if(document.readyState==="loading"){y=!0;return}document.querySelectorAll(a.cssSelector).forEach(h)}function b(){y&&A()}typeof window!="undefined"&&window.addEventListener&&window.addEventListener("DOMContentLoaded",b,!1);function S($,X){let ie=null;try{ie=X(e)}catch(ae){if(vi("Language definition for '{}' could not be registered.".replace("{}",$)),r)vi(ae);else throw ae;ie=o}ie.name||(ie.name=$),t[$]=ie,ie.rawDefinition=X.bind(null,e),ie.aliases&&B(ie.aliases,{languageName:$})}function D($){delete t[$];for(const X of Object.keys(n))n[X]===$&&delete n[X]}function k(){return Object.keys(t)}function T($){return $=($||"").toLowerCase(),t[$]||t[n[$]]}function B($,{languageName:X}){typeof $=="string"&&($=[$]),$.forEach(ie=>{n[ie.toLowerCase()]=X})}function M($){const X=T($);return X&&!X.disableAutodetect}function U($){$["before:highlightBlock"]&&!$["before:highlightElement"]&&($["before:highlightElement"]=X=>{$["before:highlightBlock"](Object.assign({block:X.el},X))}),$["after:highlightBlock"]&&!$["after:highlightElement"]&&($["after:highlightElement"]=X=>{$["after:highlightBlock"](Object.assign({block:X.el},X))})}function H($){U($),i.push($)}function Q($,X){const ie=$;i.forEach(function(ae){ae[ie]&&ae[ie](X)})}function te($){return zi("10.7.0","highlightBlock will be removed entirely in v12.0"),zi("10.7.0","Please use highlightElement now."),h($)}Object.assign(e,{highlight:c,highlightAuto:d,highlightAll:A,highlightElement:h,highlightBlock:te,configure:m,initHighlighting:g,initHighlightingOnLoad:v,registerLanguage:S,unregisterLanguage:D,listLanguages:k,getLanguage:T,registerAliases:B,autoDetection:M,inherit:Df,addPlugin:H}),e.debugMode=function(){r=!1},e.safeMode=function(){r=!0},e.versionString=GA,e.regex={concat:Fi,lookahead:i1,either:Cu,optional:uA,anyNumberOfTimes:lA};for(const $ in zs)typeof zs[$]=="object"&&iA(zs[$]);return Object.assign(e,zs),e};var ds=ZA({}),KA=ds;ds.HighlightJS=ds;ds.default=ds;var f1=KA;function qA(e){const t={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},n={match:/[{}[\],:]/,className:"punctuation",relevance:0},i={beginKeywords:["true","false","null"].join(" ")};return{name:"JSON",contains:[t,n,e.QUOTE_STRING_MODE,i,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}const QA='';f1.registerLanguage("json",qA);ve.use({highlight:(e,t)=>{if(t!=="")return f1.highlight(e,{language:t}).value}});function eS({id:e}){const{locale:t}=We(),{version:n,changeVersion:i}=_r(),{changeTitle:r}=sn(),[s,o]=Y(void 0),a=He(()=>{if(!s)return;const b=uv(s);return r(b==null?void 0:b.title,b==null?void 0:b.versions),b},[s]),l=He(()=>{var S;const b=Ne.versions.map(D=>D.id);return(S=a==null?void 0:a.versions)==null?void 0:S.sort((D,k)=>b.indexOf(k)-b.indexOf(D))},[a==null?void 0:a.versions]),u=He(()=>!l||l.includes(n)?n:l[0],[n,a==null?void 0:a.versions]),c=He(()=>{if(!s)return;const b=s.substring(s.indexOf("---",3)+3);return cv(b,u)},[u,s]),p=He(()=>{if(!!c)return ve.use({renderer:{link(b,S,D){if(b===null)return D;const k=S?` title="${S}"`:"",T=b!=null&&b.match(/^https?:\/\//)?' target="_blank"':"";return`
    ${D}`},heading(b,S,D,k){const T=k.slug(D),B=`${QA}`;return`${B}${b}`}}}),ve(c,{version:"1.19"})},[c]),[f,d]=pv(),_=mt(()=>{if(!p)return;const b=document.querySelector(`[id=guide-${f.slice(1)}]`);if(b){const S=b.getBoundingClientRect().top+window.scrollY;window.scrollTo({top:S-68,behavior:"smooth"})}},[p,f]);me(()=>{_()},[p===void 0,f]);const h=mt(b=>{if(!(b.target instanceof HTMLSpanElement))return;const S="#"+b.target.id.replace(/^guide-/,"");i(n,!1,!0),d(S),S===f&&_()},[_,f,n]);me(()=>{(async()=>{const S=await(await fetch(`../../guides/${e}.md`)).text();o(S)})()},[e]);const[m,g]=Sr(),v=mt(()=>{const b=`${location.origin}/guides/${e}/?version=${n}`;navigator.clipboard.writeText(b),g()},[e,n]),y=b=>{ii(`/guides/?tags=${b}`)},[A]=Y(window.innerWidth>600);return w("main",null,w("div",{class:"guide"},w("div",{class:"navigation"},w("a",{class:"btn btn-link",href:"/guides/"},be.arrow_left,t("guides.all")),w(fe,{icon:m?"check":"link",label:t("share"),onClick:v,active:m,tooltip:t(m?"copied":"copy_share"),class:"guide-share"}),l&&w(Tt,{icon:"tag",label:u,tooltip:t("switch_version")},l.map(b=>w(fe,{label:b,active:b===u,onClick:()=>i(b)})))),(a==null?void 0:a.tags)&&a.tags.length>0&&w("div",{class:"guide-tags"},a.tags.map(b=>w(Cs,{label:b,active:!0,onClick:()=>y(b)}))),p&&w(xe,null,w(ps,{id:"guide",type:A?"image":"text"}),w("div",{class:"guide-content",dangerouslySetInnerHTML:{__html:p},onClick:h}),w(wu,null))))}const tS="tags",Ua="|";function nS({}){const{locale:e}=We(),{version:t,changeVersion:n}=_r();sn(e("title.guides"));const[i,r]=Y(""),[s,o]=Jr(tS),a=He(()=>{var d;return(d=s==null?void 0:s.split(Ua))!=null?d:[]},[s]),l=d=>{a.includes(d)?o(a.filter(_=>_!==d).join(Ua)):o([...a,d].sort().join(Ua))},[u,c]=Y(!1),p=He(()=>u===!1?[{id:"adding-custom-structures",title:"Adding custom structures",versions:["1.18.2","1.19"],tags:["worldgen","structures"]}]:[{id:"adding-custom-structures",title:"Adding custom structures",versions:["1.18.2","1.19"],tags:["worldgen","structures"]}].filter(d=>{var _;return(_=d.versions)==null?void 0:_.includes(t)}),[t,u]),f=He(()=>{const d=i.split(" ").map(_=>_.trim().toLowerCase()).filter(_=>_.length>0);return p.filter(_=>{var m;if(!a.every(g=>{var v;return(v=_.tags)==null?void 0:v.includes(g)}))return!1;const h=((m=_.tags)==null?void 0:m.join(" "))+" "+_.title.toLowerCase();return d.every(g=>g.startsWith("!")?g.length===1||!h.includes(g.slice(1)):h.includes(g))})},[p,i,s]);return w("main",null,w("div",{class:"guides"},w("div",{class:"changelog-query"},w(wi,{class:"btn btn-input changelog-search",placeholder:e("guides.search"),value:i,onChange:r}),w(Tt,{icon:"tag",label:u?t:e("any_version"),tooltip:e("switch_version")},w(fe,{label:e("any_version"),active:!u,onClick:()=>c(!u)}),Ne.versions.slice().reverse().map(d=>w(fe,{label:d.id,active:u&&d.id===t,onClick:()=>{n(d.id),c(!0)}})))),a.length>0&&w("div",{class:"changelog-tags"},a.map(d=>w(Cs,{label:d,onClick:()=>l(d)}))),p.length===0?w(xe,null,w("span",{class:"note"},e("guides.no_results.version"))):f.length===0?w(xe,null,w("span",{class:"note"},e("guides.no_results.query"))):f.map(d=>{var _,h;return w(qb,{title:d.title,link:`/guides/${d.id}/`,tags:(_=d.tags)!=null?_:[],versions:(h=d.versions)!=null?h:[],activeTags:a,toggleTag:l})})))}function iS({}){const{locale:e}=We();return sn(e("title.home")),w("main",null,w("div",{class:"home"},w(Ht,{title:"Data packs"},Ne.generators.filter(t=>!t.category).map(t=>w(Ht,{title:e(t.id),link:Rn(t.url)})),w(Ht,{title:e("worldgen"),link:"/worldgen/"})),w(Ht,{title:"Resource packs"},Ne.generators.filter(t=>t.category==="assets").map(t=>w(Ht,{title:e(t.id),link:Rn(t.url)}))),w(Ht,{title:"Report Inspector",icon:"report",link:"https://misode.github.io/report/",desc:"Analyse your performance reports"}),w(Ht,{title:"Minecraft Sounds",icon:"sounds",link:"/sounds/",desc:"Browse through and mix all the vanilla sounds"}),w(Ht,{title:"Data Pack Upgrader",link:"https://misode.github.io/upgrader/",desc:"Convert your data packs from 1.16 to 1.17 to 1.18"}),w(Ht,{title:"Technical Changelog",link:"/changelog/"}),w(Ht,{title:"Minecraft Versions",link:"/versions/"}),w(Ht,{title:"Data Pack Guides",link:"/guides/"}),w(wu,null)))}function rS({}){const{locale:e}=We(),{project:t,openFile:n}=nd();sn(e("title.project",t.name));const i=He(()=>t.files.map(jv),t.files),r=s=>{const[,o,a,...l]=s.split("/");n(a,`${o}:${l}`)};return w("main",null,w(ps,{id:"data-pack-project",type:"text"}),w("div",{class:"project"},w("h2",null,t.name),w("div",{class:"file-view"},w(t1,{entries:i,onSelect:r}))))}function sS({}){const{locale:e}=We(),{version:t,changeVersion:n}=_r(),[i,r]=Y(null);sn(e("title.sounds"));const[s,o]=Y(void 0);me(()=>{(async()=>{const S=await Ce(()=>import("./howler.ff64ae5d.js").then(function(D){return D.h}),[]);o(()=>D=>new S.Howl(D))})()},[]);const[a,l]=Y({}),u=Object.keys(a!=null?a:{});me(()=>{Av(t).then(l).catch(S=>{console.error(S),r(S)})},[t]);const[c,p]=Y(""),[f,d]=Y([]),_=()=>{d([{id:gi(),sound:c,delay:0,pitch:1,volume:1},...f])},h=S=>D=>{d(f.map(k=>k.id===S?ge(ge({},k),D):k))},m=S=>()=>{d(f.filter(D=>D.id!==S))},[g,v]=Y(0),y=()=>{v(g+1)},A=Pe(null),b=()=>{const S=f.some(k=>k.delay>0),D=f.sort((k,T)=>k.delay-T.delay).map(k=>`${S?`execute if score @s delay matches ${k.delay} run `:""}playsound minecraft:${k.sound} master @s ~ ~ ~ ${k.volume} ${k.pitch}`).join(` +`);A.current.setAttribute("href","data:text/plain;charset=utf-8,"+D+"%0A"),A.current.setAttribute("download","sounds.mcfunction"),A.current.click()};return w("main",null,i&&w(Yi,{error:i,onDismiss:()=>r(null)}),u.length>0&&w(xe,null,w("div",{class:"controls sounds-controls"},w("div",{class:"sound-search-group"},w(wi,{class:"btn btn-input sound-search",list:"sound-list",placeholder:e("sounds.search"),value:c,onChange:p,onEnter:_}),w(fe,{icon:"plus",tooltip:e("sounds.add_sound"),class:"add-sound",onClick:_})),f.length>1&&w(fe,{icon:"play",label:e("sounds.play_all"),class:"play-all-sounds",onClick:y}),w("div",{class:"spacer"}),w(fe,{icon:"download",label:e("download"),tooltip:e("sounds.download_function"),class:"download-sounds",onClick:b}),w(Tt,{icon:"tag",label:t,tooltip:e("switch_version")},Ne.versions.slice().reverse().map(S=>w(fe,{label:S.id,active:S.id===t,onClick:()=>n(S.id)})))),w("div",{class:"sounds"},s&&f.map(S=>w(eA,Je(ge({key:S.id},S),{howler:s,sounds:a,delayedPlay:g,onEdit:h(S.id),onDelete:m(S.id)})))),w("a",{ref:A,style:"display: none;"})),w("datalist",{id:"sound-list"},u.map(S=>w("option",{key:S,value:S}))))}function oS({}){const{locale:e}=We(),[t,n]=Y(null);sn(e("title.versions"));const[i,r]=Y([]);me(()=>{Dv().then(u=>r(u)).catch(u=>{console.error(u),n(u)})},[]);const[s]=Jr("id"),o=i.find(u=>u.id===s);sn(o?o.name:"Versions Explorer",o?[]:void 0);const a=o&&kf(i,o,-1),l=o&&kf(i,o,1);return w("main",null,w(ps,{type:"text",id:"versions"}),t&&w(Yi,{error:t,onDismiss:()=>n(null)}),w("div",{class:"versions"},s?w(xe,null,w("div",{class:"navigation"},w("a",{class:"btn btn-link",href:"/versions/"},be.three_bars,e("versions.all")),w("a",ge({class:"btn btn-link"},l?{href:`/versions/?id=${l.id}`}:{disabled:!0}),be.arrow_left,e("versions.previous")),w("a",ge({class:"btn btn-link"},a?{href:`/versions/?id=${a.id}`}:{disabled:!0}),e("versions.next"),be.arrow_right)),o?w(Wb,{version:o}):w("div",{class:"version-detail"},w("h2",null,s),w("div",{class:"version-info"},w("p",null,"This version does not exist. Only versions since 1.14 are tracked, or it may be too recent.")))):w(Kb,{versions:i,link:u=>`/versions/?id=${u}`})))}function kf(e,t,n){const r=e.findIndex(s=>s.id===t.id)+n;if(!(r<0||r>=e.length))return e[r]}function aS(){return w(xe,null,w(Qb,null),w(On,{onChange:t=>{window.dispatchEvent(new CustomEvent("replacestate")),setTimeout(()=>it.pageview(Rn(t.url)))}},w(iS,{path:"/"}),w(wf,{path:"/worldgen",category:"worldgen"}),w(wf,{path:"/assets",category:"assets"}),w(sS,{path:"/sounds"}),w(tA,{path:"/changelog"}),w(oS,{path:"/versions"}),w(rS,{path:"/project"}),w(nS,{path:"/guides/"}),w(eS,{path:"/guides/:id"}),w(nA,{default:!0})))}function lS(){return w(zv,null,w(Hv,null,w(Gv,null,w(Xv,null,w(Uv,null,w(aS,null))))))}Qi(w(lS,null),document.body);export{ji as c,q as l}; +//# sourceMappingURL=index.18869b2a.js.map diff --git a/assets/index.18869b2a.js.map b/assets/index.18869b2a.js.map new file mode 100644 index 00000000..64fd4409 --- /dev/null +++ b/assets/index.18869b2a.js.map @@ -0,0 +1 @@ +{"version":3,"mappings":"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","names":["p","n","u","i","t","o","r","f","e","v","d","_","b","c","I","T","y","g","x","L","z","w","C","P","H","$","M","m","j","A","s","a","N","O","k","EMPTY$1","rank","EMPTY","toChildArray","this$1","assign","cloneElement","Component","createElement","h","l","useEffect","Path_1","Errors_1","escapeString","dec2hex","hexId","DataModel_1","require$$0","require$$1","utils_1","require$$2","BooleanNode_1","Node_1","ListNode_1","SwitchNode_1","MapNode_1","require$$3","require$$4","Reference_1","StringNode_1","isEnum","Registries","this","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","common","isObject","repeat","YAMLException","Mark","Type","Schema","isNull","isBoolean","json","core","_require","require","_hasOwnProperty","_toString","isUndefined","isRegExp","esprima","isFunction","DEFAULT_SAFE_SCHEMA","DEFAULT_FULL_SCHEMA","State","load","loader","dumper","jsYaml","deprecated","Path","cleanUrl","yaml","hashString","rfdc","useRef","useState","useCallback","mapStackTrace","useMemo","Versions","ChoiceNode","StringNode","Reference","DataModel","createContext","useContext","Project","HASH","COMMENT","toString","crypt","cryptModule","md5","md5Module","B","F","V","D","U","E","G","Y","X","Z","q","K","Q","et","st","nt","it","bt","tt","ot","Ut","ie","W","R","at","wasm","LAYERS","cacheState","getCached","FixedBiome","Identifier","NormalNoise","LegacyRandom","PerlinNoise","J","OldNoiseChunkGenerator","ChunkPos","BlockPos","DensityFunction","clampedMap","XoroshiroRandom","NoiseSettings","NoiseRouter","NoiseParameters","Registry","WorldgenRegistries","NoiseGeneratorSettings","NoiseChunkGenerator","deepslate18.FixedBiome","deepslate18.NoiseChunkGenerator","Chunk","ieee754","isArray","isNumber","isString","sort","PREFIX_BEFORE","PREFIX_AFTER_PROP","PREFIX_AFTER_COLON","PREFIX_AFTER_VALUE","PREFIX_AFTER","PREFIX_BEFORE_ALL","PREFIX_AFTER_ALL","BRACKET_OPEN","BRACKET_CLOSE","CURLY_BRACKET_OPEN","CURLY_BRACKET_CLOSE","COMMA","MINUS","SYMBOL_PREFIXES","COLON","UNDEFINED","symbol","define","copy_comments","swap_comments","assign_non_prop_comments","remove_comments","CommentArray","tokenize","inline","clean","parse","repeatString","escape","stringify","ModelPath","relativePath","MapNode","ObjectNode","memo","ListNode","useErrorBoundary","unescape","Response","hljs","render"],"sources":["../../vite/modulepreload-polyfill","../../node_modules/preact/dist/preact.module.js","../../node_modules/preact-router/dist/preact-router.es.js","../../src/app/Analytics.ts","../../node_modules/preact/hooks/dist/hooks.module.js","../../src/app/components/Ad.tsx","../../src/app/components/Btn.tsx","../../node_modules/@mcschema/core/lib/model/Path.js","../../node_modules/@mcschema/core/lib/model/Errors.js","../../node_modules/@mcschema/core/lib/utils.js","../../node_modules/@mcschema/core/lib/model/DataModel.js","../../node_modules/@mcschema/core/lib/nodes/Node.js","../../node_modules/@mcschema/core/lib/nodes/BooleanNode.js","../../node_modules/@mcschema/core/lib/nodes/ListNode.js","../../node_modules/@mcschema/core/lib/nodes/SwitchNode.js","../../node_modules/@mcschema/core/lib/nodes/ChoiceNode.js","../../node_modules/@mcschema/core/lib/nodes/MapNode.js","../../node_modules/@mcschema/core/lib/nodes/NumberNode.js","../../node_modules/@mcschema/core/lib/nodes/ObjectNode.js","../../node_modules/@mcschema/core/lib/nodes/Reference.js","../../node_modules/@mcschema/core/lib/nodes/StringNode.js","../../node_modules/@mcschema/core/lib/Hook.js","../../node_modules/@mcschema/core/lib/Registries.js","../../node_modules/@mcschema/core/lib/ValidationOption.js","../../node_modules/@mcschema/core/lib/index.js","../../node_modules/js-yaml/lib/js-yaml/common.js","../../node_modules/js-yaml/lib/js-yaml/exception.js","../../node_modules/js-yaml/lib/js-yaml/mark.js","../../node_modules/js-yaml/lib/js-yaml/type.js","../../node_modules/js-yaml/lib/js-yaml/schema.js","../../node_modules/js-yaml/lib/js-yaml/type/str.js","../../node_modules/js-yaml/lib/js-yaml/type/seq.js","../../node_modules/js-yaml/lib/js-yaml/type/map.js","../../node_modules/js-yaml/lib/js-yaml/schema/failsafe.js","../../node_modules/js-yaml/lib/js-yaml/type/null.js","../../node_modules/js-yaml/lib/js-yaml/type/bool.js","../../node_modules/js-yaml/lib/js-yaml/type/int.js","../../node_modules/js-yaml/lib/js-yaml/type/float.js","../../node_modules/js-yaml/lib/js-yaml/schema/json.js","../../node_modules/js-yaml/lib/js-yaml/schema/core.js","../../node_modules/js-yaml/lib/js-yaml/type/timestamp.js","../../node_modules/js-yaml/lib/js-yaml/type/merge.js","../../node_modules/js-yaml/lib/js-yaml/type/binary.js","../../node_modules/js-yaml/lib/js-yaml/type/omap.js","../../node_modules/js-yaml/lib/js-yaml/type/pairs.js","../../node_modules/js-yaml/lib/js-yaml/type/set.js","../../node_modules/js-yaml/lib/js-yaml/schema/default_safe.js","../../node_modules/js-yaml/lib/js-yaml/type/js/undefined.js","../../node_modules/js-yaml/lib/js-yaml/type/js/regexp.js","../../node_modules/js-yaml/lib/js-yaml/type/js/function.js","../../node_modules/js-yaml/lib/js-yaml/schema/default_full.js","../../node_modules/js-yaml/lib/js-yaml/loader.js","../../node_modules/js-yaml/lib/js-yaml/dumper.js","../../node_modules/js-yaml/lib/js-yaml.js","../../node_modules/js-yaml/index.js","../../node_modules/rfdc/index.js","../../src/app/Utils.ts","../../src/app/components/BtnInput.tsx","../../src/app/hooks/useActiveTimout.ts","../../src/app/hooks/useCanvas.ts","../../src/app/hooks/useFocus.ts","../../src/app/hooks/useHash.ts","../../src/app/hooks/useMediaQuery.ts","../../src/app/hooks/useModel.ts","../../src/app/hooks/useSearchParam.ts","../../src/app/components/BtnMenu.tsx","../../node_modules/sourcemapped-stacktrace/dist/sourcemapped-stacktrace.js","../../src/app/components/Octicon.tsx","../../src/app/components/ErrorPanel.tsx","../../src/app/components/forms/Checkbox.tsx","../../src/app/components/forms/Input.tsx","../../src/app/components/forms/SearchList.tsx","../../src/app/services/Changelogs.ts","../../src/app/services/DataFetcher.ts","../../vite/preload-helper","../../src/app/services/Schemas.ts","../../node_modules/lz-string/libs/lz-string.js","../../src/app/services/Sharing.ts","../../src/app/Store.ts","../../src/app/contexts/Locale.tsx","../../src/app/contexts/Project.tsx","../../src/app/contexts/Theme.tsx","../../src/app/contexts/Title.tsx","../../src/app/contexts/Version.tsx","../../node_modules/pako/dist/pako.esm.mjs","../../node_modules/crypt/crypt.js","../../node_modules/charenc/charenc.js","../../node_modules/is-buffer/index.js","../../node_modules/md5/md5.js","../../node_modules/deepslate/dist/deepslate.esm.js","../../node_modules/deepslate-rs/deepslate_rs.js","../../node_modules/deepslate-rs/deepslate_rs_bg.wasm?url","../../src/app/previews/BiomeSource.ts","../../src/app/previews/Decorator.ts","../../node_modules/deepslate-1.18/dist/deepslate.esm.js","../../src/app/previews/noise/NoiseChunkGenerator.ts","../../src/app/previews/NoiseSettings.ts","../../src/app/previews/NormalNoise.ts","../../src/app/components/previews/BiomeSourcePreview.tsx","../../src/app/components/previews/DecoratorPreview.tsx","../../src/app/components/previews/DensityFunctionPreview.tsx","../../src/app/components/previews/NoisePreview.tsx","../../src/app/components/previews/NoiseSettingsPreview.tsx","../../src/app/components/generator/PreviewPanel.tsx","../../node_modules/esprima/dist/esprima.js","../../node_modules/base64-js/index.js","../../node_modules/ieee754/index.js","../../node_modules/buffer/index.js","../../node_modules/core-util-is/lib/util.js","../../node_modules/array-timsort/src/index.js","../../node_modules/has-own-prop/index.js","../../node_modules/comment-json/src/common.js","../../node_modules/comment-json/src/array.js","../../node_modules/comment-json/src/parse.js","../../node_modules/repeat-string/index.js","../../node_modules/comment-json/src/stringify.js","../../node_modules/comment-json/src/index.js","../../src/app/schema/transformOutput.ts","../../src/app/components/generator/SourcePanel.tsx","../../node_modules/preact/compat/dist/compat.module.js","../../src/app/schema/ModelWrapper.ts","../../src/app/schema/renderHtml.tsx","../../src/app/components/generator/Tree.tsx","../../node_modules/@giscus/react/dist/index.es.js","../../src/app/components/Giscus.tsx","../../node_modules/marked/lib/marked.esm.js","../../src/app/components/versions/ChangelogEntry.tsx","../../src/app/components/versions/ChangelogTag.tsx","../../src/app/components/versions/ChangelogList.tsx","../../src/app/components/versions/VersionDetail.tsx","../../src/app/components/versions/VersionEntry.tsx","../../src/app/components/versions/VersionList.tsx","../../src/app/components/versions/VersionMetaData.tsx","../../src/app/components/GuideCard.tsx","../../src/app/components/Header.tsx","../../src/app/components/Icons.tsx","../../src/app/components/sounds/SoundConfig.tsx","../../src/app/components/ToolCard.tsx","../../src/app/components/TreeView.tsx","../../src/app/pages/Category.tsx","../../src/app/pages/Changelog.tsx","../../src/app/pages/Generator.tsx","../../node_modules/highlight.js/lib/core.js","../../node_modules/highlight.js/es/languages/json.js","../../src/app/pages/Guide.tsx","../../src/app/pages/Guides.tsx","../../src/app/pages/Home.tsx","../../src/app/pages/Project.tsx","../../src/app/pages/Sounds.tsx","../../src/app/pages/Versions.tsx","../../src/app/App.tsx","../../src/app/Main.tsx"],"sourcesContent":["const p = function polyfill() {\n const relList = document.createElement('link').relList;\n if (relList && relList.supports && relList.supports('modulepreload')) {\n return;\n }\n for (const link of document.querySelectorAll('link[rel=\"modulepreload\"]')) {\n processPreload(link);\n }\n new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.type !== 'childList') {\n continue;\n }\n for (const node of mutation.addedNodes) {\n if (node.tagName === 'LINK' && node.rel === 'modulepreload')\n processPreload(node);\n }\n }\n }).observe(document, { childList: true, subtree: true });\n function getFetchOpts(script) {\n const fetchOpts = {};\n if (script.integrity)\n fetchOpts.integrity = script.integrity;\n if (script.referrerpolicy)\n fetchOpts.referrerPolicy = script.referrerpolicy;\n if (script.crossorigin === 'use-credentials')\n fetchOpts.credentials = 'include';\n else if (script.crossorigin === 'anonymous')\n fetchOpts.credentials = 'omit';\n else\n fetchOpts.credentials = 'same-origin';\n return fetchOpts;\n }\n function processPreload(link) {\n if (link.ep)\n // ep marker = processed\n return;\n link.ep = true;\n // prepopulate the load record\n const fetchOpts = getFetchOpts(link);\n fetch(link.href, fetchOpts);\n }\n};__VITE_IS_MODERN__&&p();","var n,l,u,i,t,o,r={},f=[],e=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function c(n,l){for(var u in l)n[u]=l[u];return n}function s(n){var l=n.parentNode;l&&l.removeChild(n)}function a(n,l,u){var i,t,o,r=arguments,f={};for(o in l)\"key\"==o?i=l[o]:\"ref\"==o?t=l[o]:f[o]=l[o];if(arguments.length>3)for(u=[u],o=3;o0?v(k.type,k.props,k.key,null,k.__v):k)){if(k.__=u,k.__b=u.__b+1,null===(_=A[h])||_&&k.key==_.key&&k.type===_.type)A[h]=void 0;else for(p=0;p3)for(u=[u],o=3;o b.rank) ? -1 :\n\t\t\t\t(a.index - b.index)\n\t);\n}\n\n// filter out VNodes without attributes (which are unrankeable), and add `index`/`rank` properties to be used in sorting.\nfunction prepareVNodeForRanking(vnode, index) {\n\tvnode.index = index;\n\tvnode.rank = rankChild(vnode);\n\treturn vnode.props;\n}\n\nfunction segmentize(url) {\n\treturn url.replace(/(^\\/+|\\/+$)/g, '').split('/');\n}\n\nfunction rankSegment(segment) {\n\treturn segment.charAt(0)==':' ? (1 + '*+?'.indexOf(segment.charAt(segment.length-1))) || 4 : 5;\n}\n\nfunction rank(path) {\n\treturn segmentize(path).map(rankSegment).join('');\n}\n\nfunction rankChild(vnode) {\n\treturn vnode.props.default ? 0 : rank(vnode.props.path);\n}\n\nvar customHistory = null;\n\nvar ROUTERS = [];\n\nvar subscribers = [];\n\nvar EMPTY = {};\n\nfunction setUrl(url, type) {\n\tif ( type === void 0 ) type='push';\n\n\tif (customHistory && customHistory[type]) {\n\t\tcustomHistory[type](url);\n\t}\n\telse if (typeof history!=='undefined' && history[type+'State']) {\n\t\thistory[type+'State'](null, null, url);\n\t}\n}\n\n\nfunction getCurrentUrl() {\n\tvar url;\n\tif (customHistory && customHistory.location) {\n\t\turl = customHistory.location;\n\t}\n\telse if (customHistory && customHistory.getCurrentLocation) {\n\t\turl = customHistory.getCurrentLocation();\n\t}\n\telse {\n\t\turl = typeof location!=='undefined' ? location : EMPTY;\n\t}\n\treturn (\"\" + (url.pathname || '') + (url.search || ''));\n}\n\n\n\nfunction route(url, replace) {\n\tif ( replace === void 0 ) replace=false;\n\n\tif (typeof url!=='string' && url.url) {\n\t\treplace = url.replace;\n\t\turl = url.url;\n\t}\n\n\t// only push URL into history if we can handle it\n\tif (canRoute(url)) {\n\t\tsetUrl(url, replace ? 'replace' : 'push');\n\t}\n\n\treturn routeTo(url);\n}\n\n\n/** Check if the given URL can be handled by any router instances. */\nfunction canRoute(url) {\n\tfor (var i=ROUTERS.length; i--; ) {\n\t\tif (ROUTERS[i].canRoute(url)) { return true; }\n\t}\n\treturn false;\n}\n\n\n/** Tell all router instances to handle the given URL. */\nfunction routeTo(url) {\n\tvar didRoute = false;\n\tfor (var i=0; i 0;\n\t};\n\n\t/** Re-render children with a new URL to match against. */\n\tRouter.prototype.routeTo = function routeTo (url) {\n\t\tthis.setState({ url: url });\n\n\t\tvar didRoute = this.canRoute(url);\n\n\t\t// trigger a manual re-route if we're not in the middle of an update:\n\t\tif (!this.updating) { this.forceUpdate(); }\n\n\t\treturn didRoute;\n\t};\n\n\tRouter.prototype.componentWillMount = function componentWillMount () {\n\t\tROUTERS.push(this);\n\t\tthis.updating = true;\n\t};\n\n\tRouter.prototype.componentDidMount = function componentDidMount () {\n\t\tvar this$1 = this;\n\n\t\tif (customHistory) {\n\t\t\tthis.unlisten = customHistory.listen(function (location) {\n\t\t\t\tthis$1.routeTo((\"\" + (location.pathname || '') + (location.search || '')));\n\t\t\t});\n\t\t}\n\t\tthis.updating = false;\n\t};\n\n\tRouter.prototype.componentWillUnmount = function componentWillUnmount () {\n\t\tif (typeof this.unlisten==='function') { this.unlisten(); }\n\t\tROUTERS.splice(ROUTERS.indexOf(this), 1);\n\t};\n\n\tRouter.prototype.componentWillUpdate = function componentWillUpdate () {\n\t\tthis.updating = true;\n\t};\n\n\tRouter.prototype.componentDidUpdate = function componentDidUpdate () {\n\t\tthis.updating = false;\n\t};\n\n\tRouter.prototype.getMatchingChildren = function getMatchingChildren (children, url, invoke) {\n\t\treturn children\n\t\t\t.filter(prepareVNodeForRanking)\n\t\t\t.sort(pathRankSort)\n\t\t\t.map( function (vnode) {\n\t\t\t\tvar matches = exec(url, vnode.props.path, vnode.props);\n\t\t\t\tif (matches) {\n\t\t\t\t\tif (invoke !== false) {\n\t\t\t\t\t\tvar newProps = { url: url, matches: matches };\n\t\t\t\t\t\tassign(newProps, matches);\n\t\t\t\t\t\tdelete newProps.ref;\n\t\t\t\t\t\tdelete newProps.key;\n\t\t\t\t\t\treturn cloneElement(vnode, newProps);\n\t\t\t\t\t}\n\t\t\t\t\treturn vnode;\n\t\t\t\t}\n\t\t\t}).filter(Boolean);\n\t};\n\n\tRouter.prototype.render = function render (ref, ref$1) {\n\t\tvar children = ref.children;\n\t\tvar onChange = ref.onChange;\n\t\tvar url = ref$1.url;\n\n\t\tvar active = this.getMatchingChildren(toChildArray(children), url, true);\n\n\t\tvar current = active[0] || null;\n\n\t\tvar previous = this.previousUrl;\n\t\tif (url!==previous) {\n\t\t\tthis.previousUrl = url;\n\t\t\tif (typeof onChange==='function') {\n\t\t\t\tonChange({\n\t\t\t\t\trouter: this,\n\t\t\t\t\turl: url,\n\t\t\t\t\tprevious: previous,\n\t\t\t\t\tactive: active,\n\t\t\t\t\tcurrent: current\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn current;\n\t};\n\n\treturn Router;\n}(Component));\n\nvar Link = function (props) { return (\n\tcreateElement('a', assign({ onClick: handleLinkClick }, props))\n); };\n\nvar Route = function (props) { return createElement(props.component, props); };\n\nRouter.subscribers = subscribers;\nRouter.getCurrentUrl = getCurrentUrl;\nRouter.route = route;\nRouter.Router = Router;\nRouter.Route = Route;\nRouter.Link = Link;\nRouter.exec = exec;\n\nexport { subscribers, getCurrentUrl, route, Router, Route, Link, exec };export default Router;\n//# sourceMappingURL=preact-router.es.js.map\n","export namespace Analytics {\n\tconst ID_SITE = 'Site'\n\tconst ID_GENERATOR = 'Generator'\n\n\tconst DIM_THEME = 1\n\tconst DIM_VERSION = 3\n\tconst DIM_LANGUAGE = 4\n\tconst DIM_PREVIEW = 5\n\tconst DIM_GENERATOR = 6\n\tconst DIM_PREFERS_COLOR_SCHEME = 7\n\n\tfunction event(category: string, action: string, label?: string) {\n\t\tga('send', 'event', category, action, label)\n\t}\n\n\tfunction dimension(index: number, value: string) {\n\t\tga('set', `dimension${index}`, value)\n\t}\n\n\texport function pageview(page: string) {\n\t\tga('set', 'page', page)\n\t\tga('send', 'pageview')\n\t}\n\n\texport function setLanguage(language: string) {\n\t\tdimension(DIM_LANGUAGE, language)\n\t\tevent(ID_SITE, 'set-language', language)\n\t}\n\n\texport function setTheme(theme: string) {\n\t\tdimension(DIM_THEME, theme)\n\t\tevent(ID_SITE, 'set-theme', theme)\n\t}\n\n\texport function setVersion(version: string) {\n\t\tdimension(DIM_VERSION, version)\n\t\tevent(ID_GENERATOR, 'set-version', version)\n\t}\n\n\texport function setPreview(preview: string) {\n\t\tdimension(DIM_PREVIEW, preview)\n\t\tevent(ID_GENERATOR, 'set-preview', preview)\n\t}\n\n\texport function setGenerator(generator: string) {\n\t\tdimension(DIM_GENERATOR, generator)\n\t}\n\n\texport function setPrefersColorScheme(colorScheme: string) {\n\t\tdimension(DIM_PREFERS_COLOR_SCHEME, colorScheme)\n\t}\n\n\texport function generatorEvent(action: string, label?: string) {\n\t\tevent(ID_GENERATOR, action, label)\n\t}\n}\n","import{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","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\tshowTooltip?: boolean,\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","\"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: (0, 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: (0, utils_1.hexId)() };\r\n }\r\n else {\r\n node[path.last()] = value;\r\n }\r\n if (silent)\r\n return;\r\n if (this.verbose) {\r\n console.log('Set', path.toString(), JSON.stringify(value));\r\n }\r\n this.validate(true);\r\n this.invalidate();\r\n }\r\n /**\r\n * Go one step back in history\r\n */\r\n undo() {\r\n if (this.historyIndex > 0) {\r\n this.historyIndex -= 1;\r\n this.data = JSON.parse(this.history[this.historyIndex]);\r\n this.validate(false);\r\n this.silentInvalidate();\r\n }\r\n }\r\n /**\r\n * Go one step forward in history.\r\n */\r\n redo() {\r\n if (this.historyIndex < this.history.length - 1) {\r\n this.historyIndex += 1;\r\n this.data = JSON.parse(this.history[this.historyIndex]);\r\n this.validate(false);\r\n this.silentInvalidate();\r\n }\r\n }\r\n /**\r\n * Uses the schema to check whether the data is valid\r\n */\r\n validate(loose) {\r\n var _a;\r\n const path = new Path_1.Path().withModel(this);\r\n this.errors.clear();\r\n this.data = (_a = this.schema.validate(path, this.data, this.errors, { loose, wrapLists: this.wrapLists })) !== null && _a !== void 0 ? _a : {};\r\n }\r\n error(path, error, ...params) {\r\n const tempErrors = new Errors_1.Errors();\r\n tempErrors.add(path, error, params);\r\n this.listeners.forEach(l => {\r\n if (l.errors)\r\n l.errors(tempErrors);\r\n });\r\n }\r\n static wrapLists(value) {\r\n if (Array.isArray(value)) {\r\n const res = value.map(v => ({\r\n node: this.wrapLists(v),\r\n id: (0, utils_1.hexId)(),\r\n }));\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else if (typeof value === 'object' && value !== null) {\r\n const res = {};\r\n Object.entries(value).map(([k, v]) => {\r\n res[k] = this.wrapLists(v);\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n static unwrapLists(value) {\r\n if (Array.isArray(value)) {\r\n const res = value.map(v => this.unwrapLists(v.node));\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else if (typeof value === 'object' && value !== null) {\r\n const res = {};\r\n Object.entries(value).map(([k, v]) => {\r\n res[k] = this.unwrapLists(v);\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n}\r\nexports.DataModel = DataModel;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Keep = exports.Opt = exports.Has = exports.Mod = exports.Base = void 0;\r\nexports.Base = ({\r\n type: () => 'base',\r\n category: () => undefined,\r\n default: () => undefined,\r\n enabled: () => true,\r\n keep: () => false,\r\n optional: () => false,\r\n navigate() { return this; },\r\n pathPush: (p) => p,\r\n suggest: () => [],\r\n validate: (_, v) => v,\r\n validationOption: () => undefined,\r\n hook(hook, path, ...args) { return hook.base({ node: this }, path, ...args); },\r\n canUpdate: () => false,\r\n update: () => []\r\n});\r\nconst Mod = (node, mods) => ({\r\n ...node, ...(typeof mods === 'function' ? mods(node) : mods)\r\n});\r\nexports.Mod = Mod;\r\nconst Has = (key, node) => (0, exports.Mod)(node, {\r\n enabled: (p) => p.push(key).get() !== undefined\r\n});\r\nexports.Has = Has;\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\nconst 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\nexports.BooleanNode = BooleanNode;\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\nconst ListNode = (children, config) => {\r\n var _a, _b;\r\n const min = (_a = config === null || config === void 0 ? void 0 : config.minLength) !== null && _a !== void 0 ? _a : 0;\r\n const max = (_b = config === null || config === void 0 ? void 0 : config.maxLength) !== null && _b !== void 0 ? _b : Infinity;\r\n const between = (config === null || config === void 0 ? void 0 : config.minLength) && (config === null || config === void 0 ? void 0 : config.maxLength);\r\n return ({\r\n ...Node_1.Base,\r\n type: () => 'list',\r\n default: () => (config === null || config === void 0 ? void 0 : config.minLength) ? [...Array(min)].map(_ => children.default()) : [],\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n return children.navigate(path, nextIndex);\r\n },\r\n pathPush(path, index) {\r\n return path.push(parseInt(index.toString())).contextPush('entry');\r\n },\r\n validate(path, value, errors, options) {\r\n if (options.loose && !Array.isArray(value)) {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (!Array.isArray(value)) {\r\n errors.add(path, 'error.expected_list');\r\n return value;\r\n }\r\n else if (between && (value.length < min || value.length > max)) {\r\n if (min === max) {\r\n errors.add(path, 'error.invalid_list_range.exact', value.length, min);\r\n }\r\n else {\r\n errors.add(path, 'error.invalid_list_range.between', value.length, min, max);\r\n }\r\n }\r\n else if (value.length < min) {\r\n errors.add(path, 'error.invalid_list_range.smaller', value.length, min);\r\n }\r\n else if (value.length > max) {\r\n errors.add(path, 'error.invalid_list_range.larger', value.length, max);\r\n }\r\n const res = value.map((obj, index) => {\r\n const newObj = children.validate(path.push(index), options.wrapLists ? obj.node : obj, errors, options);\r\n return options.wrapLists ? { node: newObj, id: obj.id } : newObj;\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.list) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, children, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n });\r\n};\r\nexports.ListNode = ListNode;\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\nconst 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\nexports.SwitchNode = SwitchNode;\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\nconst 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 = (0, 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\nexports.ChoiceNode = ChoiceNode;\r\nconst XOrList = (x) => ((node, config) => {\r\n return (0, 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: (0, 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\nconst ObjectOrPreset = (presetNode, objectNode, presets) => {\r\n return (0, 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\nexports.ObjectOrPreset = ObjectOrPreset;\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\nconst MapNode = (keys, children, config) => {\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'map',\r\n default: () => ({}),\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n return children.navigate(path, nextIndex);\r\n },\r\n pathPush(path, key) {\r\n return path.modelPush(key);\r\n },\r\n suggest: (path) => keys.suggest(path, ''),\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'object') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (value === null || typeof value !== 'object') {\r\n errors.add(path, 'error.expected_object');\r\n return value;\r\n }\r\n const res = {};\r\n Object.keys(value).forEach(k => {\r\n keys.validate(path, k, errors, options);\r\n res[k] = children.validate(path.push(k), value[k], errors, options);\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n },\r\n validationOption(path) {\r\n var _a;\r\n return (_a = config === null || config === void 0 ? void 0 : config.validation) !== null && _a !== void 0 ? _a : keys.validationOption(path.push(''));\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.map) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, keys, children, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n };\r\n};\r\nexports.MapNode = MapNode;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NumberEnum = exports.NumberNode = void 0;\r\nconst __1 = require(\"..\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst Node_1 = require(\"./Node\");\r\nconst NumberNode = (config) => {\r\n var _a, _b, _c;\r\n const integer = (config === null || config === void 0 ? void 0 : config.color) ? true : (_a = config === null || config === void 0 ? void 0 : config.integer) !== null && _a !== void 0 ? _a : false;\r\n const min = (config === null || config === void 0 ? void 0 : config.color) ? 0 : (_b = config === null || config === void 0 ? void 0 : config.min) !== null && _b !== void 0 ? _b : -Infinity;\r\n const max = (config === null || config === void 0 ? void 0 : config.color) ? 16777215 : (_c = config === null || config === void 0 ? void 0 : config.max) !== null && _c !== void 0 ? _c : Infinity;\r\n const between = (config === null || config === void 0 ? void 0 : config.min) !== undefined && (config === null || config === void 0 ? void 0 : config.max) !== undefined;\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'number',\r\n default: () => min > 0 ? min : 0,\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'number') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (typeof value !== 'number') {\r\n errors.add(path, 'error.expected_number');\r\n }\r\n else if (integer && !Number.isInteger(value)) {\r\n errors.add(path, 'error.expected_integer');\r\n }\r\n else if (between && (value < min || value > max)) {\r\n errors.add(path, 'error.invalid_number_range.between', value, min, max);\r\n }\r\n else if (value < min) {\r\n errors.add(path, 'error.invalid_number_range.smaller', value, min);\r\n }\r\n else if (value > max) {\r\n errors.add(path, 'error.invalid_number_range.larger', value, max);\r\n }\r\n return value;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.number) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, integer, min, max, between, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n };\r\n};\r\nexports.NumberNode = NumberNode;\r\nconst NumberEnum = ({ integer, values }) => (0, __1.Mod)((0, exports.NumberNode)({ integer }), node => ({\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if (!values.includes(value)) {\r\n errors.add(path, 'error.invalid_number_enum', values.join(', '));\r\n }\r\n return value;\r\n }\r\n}));\r\nexports.NumberEnum = NumberEnum;\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\nconst 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 = (0, 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 ? (0, 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 = (0, Path_1.relativePath)(path, filter);\r\n let switchValue = filterPath.get();\r\n if (path.equals(filterPath.pop())) {\r\n const filterField = filterPath.last();\r\n switchValue = defaultFields[filterField].validate(path.push(filterField), value[filterField], new Errors_1.Errors(), options);\r\n }\r\n activeFields = { ...activeFields, ...cases[switchValue] };\r\n }\r\n const activeKeys = Object.keys(activeFields);\r\n const forcedKeys = activeKeys.filter(k => !activeFields[k].optional());\r\n const keys = new Set([...forcedKeys, ...Object.keys(value)]);\r\n const res = {};\r\n keys.forEach(k => {\r\n if (activeKeys.includes(k)) {\r\n if (!activeFields[k].enabled(path))\r\n return;\r\n const newValue = activeFields[k].validate(path.push(k), value[k], errors, options);\r\n if (!activeFields[k].keep() && activeFields[k].optional()\r\n && (newValue === undefined\r\n || (Array.isArray(newValue) && newValue.length === 0)\r\n || (newValue.constructor === Object && Object.keys(newValue).length === 0))) {\r\n delete res[k];\r\n }\r\n else {\r\n res[k] = newValue;\r\n path.getModel().set(path.push(k), newValue, true);\r\n }\r\n }\r\n else {\r\n res[k] = value[k];\r\n }\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.object) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, fields: defaultFields, config: config !== null && config !== void 0 ? config : {}, filter, cases, getActiveFields, getChildModelPath }, path, ...args);\r\n }\r\n });\r\n};\r\nexports.ObjectNode = ObjectNode;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Reference = void 0;\r\nconst 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\nexports.Reference = Reference;\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 return !!(value === null || value === void 0 ? void 0 : value.enum);\r\n};\r\nconst isValidator = (value) => {\r\n return !!(value === null || value === void 0 ? void 0 : value.validator);\r\n};\r\n/**\r\n * Simple string node with one text field\r\n */\r\nconst StringNode = (collections, config) => {\r\n const getValues = () => {\r\n var _a, _b, _c, _d;\r\n if (isEnum(config)) {\r\n if (typeof config.enum === 'string') {\r\n return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.enum)) !== null && _a !== void 0 ? _a : [];\r\n }\r\n return config.enum;\r\n }\r\n if ((config === null || config === void 0 ? void 0 : config.validator) === 'resource') {\r\n if (typeof config.params.pool === 'string') {\r\n if (config.params.requireTag) {\r\n return (_b = collections === null || collections === void 0 ? void 0 : collections.get(`tag/${config.params.pool}`).map(e => `#${e}`)) !== null && _b !== void 0 ? _b : [];\r\n }\r\n const registry = config.params.pool.replace(/^\\$/, '');\r\n return [\r\n ...config.params.allowTag ? (_c = collections === null || collections === void 0 ? void 0 : collections.get(`tag/${registry}`).map(e => `#${e}`)) !== null && _c !== void 0 ? _c : [] : [],\r\n ...(_d = collections === null || collections === void 0 ? void 0 : collections.get(registry)) !== null && _d !== void 0 ? _d : [],\r\n ];\r\n }\r\n return config.params.pool;\r\n }\r\n return [];\r\n };\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'string',\r\n default: () => '',\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'string') {\r\n value = (options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default()) || undefined;\r\n }\r\n if (typeof value !== 'string') {\r\n errors.add(path, 'error.expected_string');\r\n return value;\r\n }\r\n if (isValidator(config)) {\r\n if (config.validator === 'resource' && value.length > 0 && !value.includes(':')) {\r\n value = value.startsWith('#')\r\n ? '#minecraft:' + value.slice(1)\r\n : 'minecraft:' + value;\r\n }\r\n if (config.validator === 'resource' && typeof value == 'string') {\r\n let id = value;\r\n if (value.startsWith('#')) {\r\n if (typeof config.params.pool === 'string' && config.params.pool.startsWith('$tag/')) {\r\n errors.add(path, 'error.disallowed_tag_prefix');\r\n return value;\r\n }\r\n else if (!config.params.allowTag && !config.params.requireTag) {\r\n errors.add(path, 'error.disallowed_tag');\r\n return value;\r\n }\r\n id = id.slice(1);\r\n }\r\n else if (config.params.requireTag) {\r\n errors.add(path, 'error.expected_tag');\r\n return value;\r\n }\r\n if (!id.match(/^(?:[_\\-a-z0-9.]*:)?[_\\-a-z0-9/.]*$/g)) {\r\n errors.add(path, 'error.invalid_resource_location');\r\n return value;\r\n }\r\n }\r\n if (config.validator === 'resource' && ((typeof config.params.pool === 'string' && config.params.pool.startsWith('$')) ||\r\n ((config.params.allowTag || config.params.requireTag) && value.startsWith('#')) ||\r\n config.params.isDefinition ||\r\n config.params.allowUnknown)) {\r\n return value;\r\n }\r\n }\r\n if ((isEnum(config) && config.additional)) {\r\n return value;\r\n }\r\n const values = getValues();\r\n if (values.length > 0 && !values.includes(value)) {\r\n errors.add(path, 'error.invalid_enum_option', value);\r\n }\r\n return value;\r\n },\r\n suggest: () => getValues().map(utils_1.quoteString),\r\n validationOption() {\r\n return isValidator(config) ? config : undefined;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.string) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, getValues, config }, path, ...args);\r\n }\r\n };\r\n};\r\nexports.StringNode = StringNode;\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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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\" && !Object.prototype.hasOwnProperty.call(exports, 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';\n\n\nfunction isNothing(subject) {\n return (typeof subject === 'undefined') || (subject === null);\n}\n\n\nfunction isObject(subject) {\n return (typeof subject === 'object') && (subject !== null);\n}\n\n\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n\n return [ sequence ];\n}\n\n\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n\n if (source) {\n sourceKeys = Object.keys(source);\n\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n\nfunction repeat(string, count) {\n var result = '', cycle;\n\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n\n return result;\n}\n\n\nfunction isNegativeZero(number) {\n return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);\n}\n\n\nmodule.exports.isNothing = isNothing;\nmodule.exports.isObject = isObject;\nmodule.exports.toArray = toArray;\nmodule.exports.repeat = repeat;\nmodule.exports.isNegativeZero = isNegativeZero;\nmodule.exports.extend = extend;\n","// YAML error class. http://stackoverflow.com/questions/8458984\n//\n'use strict';\n\nfunction YAMLException(reason, mark) {\n // Super constructor\n Error.call(this);\n\n this.name = 'YAMLException';\n this.reason = reason;\n this.mark = mark;\n this.message = (this.reason || '(unknown reason)') + (this.mark ? ' ' + this.mark.toString() : '');\n\n // Include stack trace in error object\n if (Error.captureStackTrace) {\n // Chrome and NodeJS\n Error.captureStackTrace(this, this.constructor);\n } else {\n // FF, IE 10+ and Safari 6+. Fallback for others\n this.stack = (new Error()).stack || '';\n }\n}\n\n\n// Inherit from Error\nYAMLException.prototype = Object.create(Error.prototype);\nYAMLException.prototype.constructor = YAMLException;\n\n\nYAMLException.prototype.toString = function toString(compact) {\n var result = this.name + ': ';\n\n result += this.reason || '(unknown reason)';\n\n if (!compact && this.mark) {\n result += ' ' + this.mark.toString();\n }\n\n return result;\n};\n\n\nmodule.exports = YAMLException;\n","'use strict';\n\n\nvar common = require('./common');\n\n\nfunction Mark(name, buffer, position, line, column) {\n this.name = name;\n this.buffer = buffer;\n this.position = position;\n this.line = line;\n this.column = column;\n}\n\n\nMark.prototype.getSnippet = function getSnippet(indent, maxLength) {\n var head, start, tail, end, snippet;\n\n if (!this.buffer) return null;\n\n indent = indent || 4;\n maxLength = maxLength || 75;\n\n head = '';\n start = this.position;\n\n while (start > 0 && '\\x00\\r\\n\\x85\\u2028\\u2029'.indexOf(this.buffer.charAt(start - 1)) === -1) {\n start -= 1;\n if (this.position - start > (maxLength / 2 - 1)) {\n head = ' ... ';\n start += 5;\n break;\n }\n }\n\n tail = '';\n end = this.position;\n\n while (end < this.buffer.length && '\\x00\\r\\n\\x85\\u2028\\u2029'.indexOf(this.buffer.charAt(end)) === -1) {\n end += 1;\n if (end - this.position > (maxLength / 2 - 1)) {\n tail = ' ... ';\n end -= 5;\n break;\n }\n }\n\n snippet = this.buffer.slice(start, end);\n\n return common.repeat(' ', indent) + head + snippet + tail + '\\n' +\n common.repeat(' ', indent + this.position - start + head.length) + '^';\n};\n\n\nMark.prototype.toString = function toString(compact) {\n var snippet, where = '';\n\n if (this.name) {\n where += 'in \"' + this.name + '\" ';\n }\n\n where += 'at line ' + (this.line + 1) + ', column ' + (this.column + 1);\n\n if (!compact) {\n snippet = this.getSnippet();\n\n if (snippet) {\n where += ':\\n' + snippet;\n }\n }\n\n return where;\n};\n\n\nmodule.exports = Mark;\n","'use strict';\n\nvar YAMLException = require('./exception');\n\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n 'kind',\n 'resolve',\n 'construct',\n 'instanceOf',\n 'predicate',\n 'represent',\n 'defaultStyle',\n 'styleAliases'\n];\n\nvar YAML_NODE_KINDS = [\n 'scalar',\n 'sequence',\n 'mapping'\n];\n\nfunction compileStyleAliases(map) {\n var result = {};\n\n if (map !== null) {\n Object.keys(map).forEach(function (style) {\n map[style].forEach(function (alias) {\n result[String(alias)] = style;\n });\n });\n }\n\n return result;\n}\n\nfunction Type(tag, options) {\n options = options || {};\n\n Object.keys(options).forEach(function (name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new YAMLException('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n\n // TODO: Add tag format check.\n this.tag = tag;\n this.kind = options['kind'] || null;\n this.resolve = options['resolve'] || function () { return true; };\n this.construct = options['construct'] || function (data) { return data; };\n this.instanceOf = options['instanceOf'] || null;\n this.predicate = options['predicate'] || null;\n this.represent = options['represent'] || null;\n this.defaultStyle = options['defaultStyle'] || null;\n this.styleAliases = compileStyleAliases(options['styleAliases'] || null);\n\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new YAMLException('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\n\nmodule.exports = Type;\n","'use strict';\n\n/*eslint-disable max-len*/\n\nvar common = require('./common');\nvar YAMLException = require('./exception');\nvar Type = require('./type');\n\n\nfunction compileList(schema, name, result) {\n var exclude = [];\n\n schema.include.forEach(function (includedSchema) {\n result = compileList(includedSchema, name, result);\n });\n\n schema[name].forEach(function (currentType) {\n result.forEach(function (previousType, previousIndex) {\n if (previousType.tag === currentType.tag && previousType.kind === currentType.kind) {\n exclude.push(previousIndex);\n }\n });\n\n result.push(currentType);\n });\n\n return result.filter(function (type, index) {\n return exclude.indexOf(index) === -1;\n });\n}\n\n\nfunction compileMap(/* lists... */) {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {}\n }, index, length;\n\n function collectType(type) {\n result[type.kind][type.tag] = result['fallback'][type.tag] = type;\n }\n\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\n\n\nfunction Schema(definition) {\n this.include = definition.include || [];\n this.implicit = definition.implicit || [];\n this.explicit = definition.explicit || [];\n\n this.implicit.forEach(function (type) {\n if (type.loadKind && type.loadKind !== 'scalar') {\n throw new YAMLException('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');\n }\n });\n\n this.compiledImplicit = compileList(this, 'implicit', []);\n this.compiledExplicit = compileList(this, 'explicit', []);\n this.compiledTypeMap = compileMap(this.compiledImplicit, this.compiledExplicit);\n}\n\n\nSchema.DEFAULT = null;\n\n\nSchema.create = function createSchema() {\n var schemas, types;\n\n switch (arguments.length) {\n case 1:\n schemas = Schema.DEFAULT;\n types = arguments[0];\n break;\n\n case 2:\n schemas = arguments[0];\n types = arguments[1];\n break;\n\n default:\n throw new YAMLException('Wrong number of arguments for Schema.create function');\n }\n\n schemas = common.toArray(schemas);\n types = common.toArray(types);\n\n if (!schemas.every(function (schema) { return schema instanceof Schema; })) {\n throw new YAMLException('Specified list of super schemas (or a single Schema object) contains a non-Schema object.');\n }\n\n if (!types.every(function (type) { return type instanceof Type; })) {\n throw new YAMLException('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n\n return new Schema({\n include: schemas,\n explicit: types\n });\n};\n\n\nmodule.exports = Schema;\n","'use strict';\n\nvar Type = require('../type');\n\nmodule.exports = new Type('tag:yaml.org,2002:str', {\n kind: 'scalar',\n construct: function (data) { return data !== null ? data : ''; }\n});\n","'use strict';\n\nvar Type = require('../type');\n\nmodule.exports = new Type('tag:yaml.org,2002:seq', {\n kind: 'sequence',\n construct: function (data) { return data !== null ? data : []; }\n});\n","'use strict';\n\nvar Type = require('../type');\n\nmodule.exports = new Type('tag:yaml.org,2002:map', {\n kind: 'mapping',\n construct: function (data) { return data !== null ? data : {}; }\n});\n","// Standard YAML's Failsafe schema.\n// http://www.yaml.org/spec/1.2/spec.html#id2802346\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n explicit: [\n require('../type/str'),\n require('../type/seq'),\n require('../type/map')\n ]\n});\n","'use strict';\n\nvar Type = require('../type');\n\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n\n var max = data.length;\n\n return (max === 1 && data === '~') ||\n (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));\n}\n\nfunction constructYamlNull() {\n return null;\n}\n\nfunction isNull(object) {\n return object === null;\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:null', {\n kind: 'scalar',\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function () { return '~'; },\n lowercase: function () { return 'null'; },\n uppercase: function () { return 'NULL'; },\n camelcase: function () { return 'Null'; }\n },\n defaultStyle: 'lowercase'\n});\n","'use strict';\n\nvar Type = require('../type');\n\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n\n var max = data.length;\n\n return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||\n (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));\n}\n\nfunction constructYamlBoolean(data) {\n return data === 'true' ||\n data === 'True' ||\n data === 'TRUE';\n}\n\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === '[object Boolean]';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:bool', {\n kind: 'scalar',\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function (object) { return object ? 'true' : 'false'; },\n uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },\n camelcase: function (object) { return object ? 'True' : 'False'; }\n },\n defaultStyle: 'lowercase'\n});\n","'use strict';\n\nvar common = require('../common');\nvar Type = require('../type');\n\nfunction isHexCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||\n ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||\n ((0x61/* a */ <= c) && (c <= 0x66/* f */));\n}\n\nfunction isOctCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));\n}\n\nfunction isDecCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));\n}\n\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n\n var max = data.length,\n index = 0,\n hasDigits = false,\n ch;\n\n if (!max) return false;\n\n ch = data[index];\n\n // sign\n if (ch === '-' || ch === '+') {\n ch = data[++index];\n }\n\n if (ch === '0') {\n // 0\n if (index + 1 === max) return true;\n ch = data[++index];\n\n // base 2, base 8, base 16\n\n if (ch === 'b') {\n // base 2\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch !== '0' && ch !== '1') return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'x') {\n // base 16\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n // base 8\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n // base 10 (except 0) or base 60\n\n // value should not start with `_`;\n if (ch === '_') return false;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch === ':') break;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n\n // Should have digits and should not end with `_`\n if (!hasDigits || ch === '_') return false;\n\n // if !base60 - done;\n if (ch !== ':') return true;\n\n // base60 almost not used, no needs to optimize\n return /^(:[0-5]?[0-9])+$/.test(data.slice(index));\n}\n\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch, base, digits = [];\n\n if (value.indexOf('_') !== -1) {\n value = value.replace(/_/g, '');\n }\n\n ch = value[0];\n\n if (ch === '-' || ch === '+') {\n if (ch === '-') sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n\n if (value === '0') return 0;\n\n if (ch === '0') {\n if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);\n if (value[1] === 'x') return sign * parseInt(value, 16);\n return sign * parseInt(value, 8);\n }\n\n if (value.indexOf(':') !== -1) {\n value.split(':').forEach(function (v) {\n digits.unshift(parseInt(v, 10));\n });\n\n value = 0;\n base = 1;\n\n digits.forEach(function (d) {\n value += (d * base);\n base *= 60;\n });\n\n return sign * value;\n\n }\n\n return sign * parseInt(value, 10);\n}\n\nfunction isInteger(object) {\n return (Object.prototype.toString.call(object)) === '[object Number]' &&\n (object % 1 === 0 && !common.isNegativeZero(object));\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:int', {\n kind: 'scalar',\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },\n octal: function (obj) { return obj >= 0 ? '0' + obj.toString(8) : '-0' + obj.toString(8).slice(1); },\n decimal: function (obj) { return obj.toString(10); },\n /* eslint-disable max-len */\n hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }\n },\n defaultStyle: 'decimal',\n styleAliases: {\n binary: [ 2, 'bin' ],\n octal: [ 8, 'oct' ],\n decimal: [ 10, 'dec' ],\n hexadecimal: [ 16, 'hex' ]\n }\n});\n","'use strict';\n\nvar common = require('../common');\nvar Type = require('../type');\n\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n '^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +\n // .2e4, .2\n // special case, seems not from spec\n '|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +\n // 20:59\n '|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\\\.[0-9_]*' +\n // .inf\n '|[-+]?\\\\.(?:inf|Inf|INF)' +\n // .nan\n '|\\\\.(?:nan|NaN|NAN))$');\n\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n\n if (!YAML_FLOAT_PATTERN.test(data) ||\n // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === '_') {\n return false;\n }\n\n return true;\n}\n\nfunction constructYamlFloat(data) {\n var value, sign, base, digits;\n\n value = data.replace(/_/g, '').toLowerCase();\n sign = value[0] === '-' ? -1 : 1;\n digits = [];\n\n if ('+-'.indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n\n if (value === '.inf') {\n return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\n } else if (value === '.nan') {\n return NaN;\n\n } else if (value.indexOf(':') >= 0) {\n value.split(':').forEach(function (v) {\n digits.unshift(parseFloat(v, 10));\n });\n\n value = 0.0;\n base = 1;\n\n digits.forEach(function (d) {\n value += d * base;\n base *= 60;\n });\n\n return sign * value;\n\n }\n return sign * parseFloat(value, 10);\n}\n\n\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\n\nfunction representYamlFloat(object, style) {\n var res;\n\n if (isNaN(object)) {\n switch (style) {\n case 'lowercase': return '.nan';\n case 'uppercase': return '.NAN';\n case 'camelcase': return '.NaN';\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '.inf';\n case 'uppercase': return '.INF';\n case 'camelcase': return '.Inf';\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '-.inf';\n case 'uppercase': return '-.INF';\n case 'camelcase': return '-.Inf';\n }\n } else if (common.isNegativeZero(object)) {\n return '-0.0';\n }\n\n res = object.toString(10);\n\n // JS stringifier can build scientific format without dots: 5e-100,\n // while YAML requres dot: 5.e-100. Fix it with simple hack\n\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;\n}\n\nfunction isFloat(object) {\n return (Object.prototype.toString.call(object) === '[object Number]') &&\n (object % 1 !== 0 || common.isNegativeZero(object));\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:float', {\n kind: 'scalar',\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: 'lowercase'\n});\n","// Standard YAML's JSON schema.\n// http://www.yaml.org/spec/1.2/spec.html#id2803231\n//\n// NOTE: JS-YAML does not support schema-specific tag resolution restrictions.\n// So, this schema is not such strict as defined in the YAML specification.\n// It allows numbers in binary notaion, use `Null` and `NULL` as `null`, etc.\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n include: [\n require('./failsafe')\n ],\n implicit: [\n require('../type/null'),\n require('../type/bool'),\n require('../type/int'),\n require('../type/float')\n ]\n});\n","// Standard YAML's Core schema.\n// http://www.yaml.org/spec/1.2/spec.html#id2804923\n//\n// NOTE: JS-YAML does not support schema-specific tag resolution restrictions.\n// So, Core schema has no distinctions from JSON schema is JS-YAML.\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n include: [\n require('./json')\n ]\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar YAML_DATE_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9])' + // [2] month\n '-([0-9][0-9])$'); // [3] day\n\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9]?)' + // [2] month\n '-([0-9][0-9]?)' + // [3] day\n '(?:[Tt]|[ \\\\t]+)' + // ...\n '([0-9][0-9]?)' + // [4] hour\n ':([0-9][0-9])' + // [5] minute\n ':([0-9][0-9])' + // [6] second\n '(?:\\\\.([0-9]*))?' + // [7] fraction\n '(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour\n '(?::([0-9][0-9]))?))?$'); // [11] tz_minute\n\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\n\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0,\n delta = null, tz_hour, tz_minute, date;\n\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n\n if (match === null) throw new Error('Date resolve error');\n\n // match: [1] year [2] month [3] day\n\n year = +(match[1]);\n month = +(match[2]) - 1; // JS month starts with 0\n day = +(match[3]);\n\n if (!match[4]) { // no hour\n return new Date(Date.UTC(year, month, day));\n }\n\n // match: [4] hour [5] minute [6] second [7] fraction\n\n hour = +(match[4]);\n minute = +(match[5]);\n second = +(match[6]);\n\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) { // milli-seconds\n fraction += '0';\n }\n fraction = +fraction;\n }\n\n // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute\n\n if (match[9]) {\n tz_hour = +(match[10]);\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds\n if (match[9] === '-') delta = -delta;\n }\n\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n\n if (delta) date.setTime(date.getTime() - delta);\n\n return date;\n}\n\nfunction representYamlTimestamp(object /*, style*/) {\n return object.toISOString();\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:timestamp', {\n kind: 'scalar',\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\n","'use strict';\n\nvar Type = require('../type');\n\nfunction resolveYamlMerge(data) {\n return data === '<<' || data === null;\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:merge', {\n kind: 'scalar',\n resolve: resolveYamlMerge\n});\n","'use strict';\n\n/*eslint-disable no-bitwise*/\n\nvar NodeBuffer;\n\ntry {\n // A trick for browserified version, to not include `Buffer` shim\n var _require = require;\n NodeBuffer = _require('buffer').Buffer;\n} catch (__) {}\n\nvar Type = require('../type');\n\n\n// [ 64, 65, 66 ] -> [ padding, CR, LF ]\nvar BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r';\n\n\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n\n var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;\n\n // Convert one by one.\n for (idx = 0; idx < max; idx++) {\n code = map.indexOf(data.charAt(idx));\n\n // Skip CR/LF\n if (code > 64) continue;\n\n // Fail on illegal characters\n if (code < 0) return false;\n\n bitlen += 6;\n }\n\n // If there are any bits left, source was corrupted\n return (bitlen % 8) === 0;\n}\n\nfunction constructYamlBinary(data) {\n var idx, tailbits,\n input = data.replace(/[\\r\\n=]/g, ''), // remove CR/LF & padding to simplify scan\n max = input.length,\n map = BASE64_MAP,\n bits = 0,\n result = [];\n\n // Collect by 6*4 bits (3 bytes)\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 4 === 0) && idx) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n }\n\n bits = (bits << 6) | map.indexOf(input.charAt(idx));\n }\n\n // Dump tail\n\n tailbits = (max % 4) * 6;\n\n if (tailbits === 0) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n } else if (tailbits === 18) {\n result.push((bits >> 10) & 0xFF);\n result.push((bits >> 2) & 0xFF);\n } else if (tailbits === 12) {\n result.push((bits >> 4) & 0xFF);\n }\n\n // Wrap into Buffer for NodeJS and leave Array for browser\n if (NodeBuffer) {\n // Support node 6.+ Buffer API when available\n return NodeBuffer.from ? NodeBuffer.from(result) : new NodeBuffer(result);\n }\n\n return result;\n}\n\nfunction representYamlBinary(object /*, style*/) {\n var result = '', bits = 0, idx, tail,\n max = object.length,\n map = BASE64_MAP;\n\n // Convert every three bytes to 4 ASCII characters.\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 3 === 0) && idx) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n }\n\n bits = (bits << 8) + object[idx];\n }\n\n // Dump tail\n\n tail = max % 3;\n\n if (tail === 0) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n } else if (tail === 2) {\n result += map[(bits >> 10) & 0x3F];\n result += map[(bits >> 4) & 0x3F];\n result += map[(bits << 2) & 0x3F];\n result += map[64];\n } else if (tail === 1) {\n result += map[(bits >> 2) & 0x3F];\n result += map[(bits << 4) & 0x3F];\n result += map[64];\n result += map[64];\n }\n\n return result;\n}\n\nfunction isBinary(object) {\n return NodeBuffer && NodeBuffer.isBuffer(object);\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:binary', {\n kind: 'scalar',\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\nvar _toString = Object.prototype.toString;\n\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n\n var objectKeys = [], index, length, pair, pairKey, pairHasKey,\n object = data;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n\n if (_toString.call(pair) !== '[object Object]') return false;\n\n for (pairKey in pair) {\n if (_hasOwnProperty.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n\n if (!pairHasKey) return false;\n\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n\n return true;\n}\n\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:omap', {\n kind: 'sequence',\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar _toString = Object.prototype.toString;\n\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n if (_toString.call(pair) !== '[object Object]') return false;\n\n keys = Object.keys(pair);\n\n if (keys.length !== 1) return false;\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return true;\n}\n\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n keys = Object.keys(pair);\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return result;\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:pairs', {\n kind: 'sequence',\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n\n var key, object = data;\n\n for (key in object) {\n if (_hasOwnProperty.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n\n return true;\n}\n\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:set', {\n kind: 'mapping',\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\n","// JS-YAML's default schema for `safeLoad` function.\n// It is not described in the YAML specification.\n//\n// This schema is based on standard YAML's Core schema and includes most of\n// extra types described at YAML tag repository. (http://yaml.org/type/)\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n include: [\n require('./core')\n ],\n implicit: [\n require('../type/timestamp'),\n require('../type/merge')\n ],\n explicit: [\n require('../type/binary'),\n require('../type/omap'),\n require('../type/pairs'),\n require('../type/set')\n ]\n});\n","'use strict';\n\nvar Type = require('../../type');\n\nfunction resolveJavascriptUndefined() {\n return true;\n}\n\nfunction constructJavascriptUndefined() {\n /*eslint-disable no-undefined*/\n return undefined;\n}\n\nfunction representJavascriptUndefined() {\n return '';\n}\n\nfunction isUndefined(object) {\n return typeof object === 'undefined';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:js/undefined', {\n kind: 'scalar',\n resolve: resolveJavascriptUndefined,\n construct: constructJavascriptUndefined,\n predicate: isUndefined,\n represent: representJavascriptUndefined\n});\n","'use strict';\n\nvar Type = require('../../type');\n\nfunction resolveJavascriptRegExp(data) {\n if (data === null) return false;\n if (data.length === 0) return false;\n\n var regexp = data,\n tail = /\\/([gim]*)$/.exec(data),\n modifiers = '';\n\n // if regexp starts with '/' it can have modifiers and must be properly closed\n // `/foo/gim` - modifiers tail can be maximum 3 chars\n if (regexp[0] === '/') {\n if (tail) modifiers = tail[1];\n\n if (modifiers.length > 3) return false;\n // if expression starts with /, is should be properly terminated\n if (regexp[regexp.length - modifiers.length - 1] !== '/') return false;\n }\n\n return true;\n}\n\nfunction constructJavascriptRegExp(data) {\n var regexp = data,\n tail = /\\/([gim]*)$/.exec(data),\n modifiers = '';\n\n // `/foo/gim` - tail can be maximum 4 chars\n if (regexp[0] === '/') {\n if (tail) modifiers = tail[1];\n regexp = regexp.slice(1, regexp.length - modifiers.length - 1);\n }\n\n return new RegExp(regexp, modifiers);\n}\n\nfunction representJavascriptRegExp(object /*, style*/) {\n var result = '/' + object.source + '/';\n\n if (object.global) result += 'g';\n if (object.multiline) result += 'm';\n if (object.ignoreCase) result += 'i';\n\n return result;\n}\n\nfunction isRegExp(object) {\n return Object.prototype.toString.call(object) === '[object RegExp]';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:js/regexp', {\n kind: 'scalar',\n resolve: resolveJavascriptRegExp,\n construct: constructJavascriptRegExp,\n predicate: isRegExp,\n represent: representJavascriptRegExp\n});\n","'use strict';\n\nvar esprima;\n\n// Browserified version does not have esprima\n//\n// 1. For node.js just require module as deps\n// 2. For browser try to require mudule via external AMD system.\n// If not found - try to fallback to window.esprima. If not\n// found too - then fail to parse.\n//\ntry {\n // workaround to exclude package from browserify list.\n var _require = require;\n esprima = _require('esprima');\n} catch (_) {\n /* eslint-disable no-redeclare */\n /* global window */\n if (typeof window !== 'undefined') esprima = window.esprima;\n}\n\nvar Type = require('../../type');\n\nfunction resolveJavascriptFunction(data) {\n if (data === null) return false;\n\n try {\n var source = '(' + data + ')',\n ast = esprima.parse(source, { range: true });\n\n if (ast.type !== 'Program' ||\n ast.body.length !== 1 ||\n ast.body[0].type !== 'ExpressionStatement' ||\n (ast.body[0].expression.type !== 'ArrowFunctionExpression' &&\n ast.body[0].expression.type !== 'FunctionExpression')) {\n return false;\n }\n\n return true;\n } catch (err) {\n return false;\n }\n}\n\nfunction constructJavascriptFunction(data) {\n /*jslint evil:true*/\n\n var source = '(' + data + ')',\n ast = esprima.parse(source, { range: true }),\n params = [],\n body;\n\n if (ast.type !== 'Program' ||\n ast.body.length !== 1 ||\n ast.body[0].type !== 'ExpressionStatement' ||\n (ast.body[0].expression.type !== 'ArrowFunctionExpression' &&\n ast.body[0].expression.type !== 'FunctionExpression')) {\n throw new Error('Failed to resolve function');\n }\n\n ast.body[0].expression.params.forEach(function (param) {\n params.push(param.name);\n });\n\n body = ast.body[0].expression.body.range;\n\n // Esprima's ranges include the first '{' and the last '}' characters on\n // function expressions. So cut them out.\n if (ast.body[0].expression.body.type === 'BlockStatement') {\n /*eslint-disable no-new-func*/\n return new Function(params, source.slice(body[0] + 1, body[1] - 1));\n }\n // ES6 arrow functions can omit the BlockStatement. In that case, just return\n // the body.\n /*eslint-disable no-new-func*/\n return new Function(params, 'return ' + source.slice(body[0], body[1]));\n}\n\nfunction representJavascriptFunction(object /*, style*/) {\n return object.toString();\n}\n\nfunction isFunction(object) {\n return Object.prototype.toString.call(object) === '[object Function]';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:js/function', {\n kind: 'scalar',\n resolve: resolveJavascriptFunction,\n construct: constructJavascriptFunction,\n predicate: isFunction,\n represent: representJavascriptFunction\n});\n","// JS-YAML's default schema for `load` function.\n// It is not described in the YAML specification.\n//\n// This schema is based on JS-YAML's default safe schema and includes\n// JavaScript-specific types: !!js/undefined, !!js/regexp and !!js/function.\n//\n// Also this schema is used as default base schema at `Schema.create` function.\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = Schema.DEFAULT = new Schema({\n include: [\n require('./default_safe')\n ],\n explicit: [\n require('../type/js/undefined'),\n require('../type/js/regexp'),\n require('../type/js/function')\n ]\n});\n","'use strict';\n\n/*eslint-disable max-len,no-use-before-define*/\n\nvar common = require('./common');\nvar YAMLException = require('./exception');\nvar Mark = require('./mark');\nvar DEFAULT_SAFE_SCHEMA = require('./schema/default_safe');\nvar DEFAULT_FULL_SCHEMA = require('./schema/default_full');\n\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\n\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\n\n\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\n\n\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction is_EOL(c) {\n return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);\n}\n\nfunction is_WHITE_SPACE(c) {\n return (c === 0x09/* Tab */) || (c === 0x20/* Space */);\n}\n\nfunction is_WS_OR_EOL(c) {\n return (c === 0x09/* Tab */) ||\n (c === 0x20/* Space */) ||\n (c === 0x0A/* LF */) ||\n (c === 0x0D/* CR */);\n}\n\nfunction is_FLOW_INDICATOR(c) {\n return c === 0x2C/* , */ ||\n c === 0x5B/* [ */ ||\n c === 0x5D/* ] */ ||\n c === 0x7B/* { */ ||\n c === 0x7D/* } */;\n}\n\nfunction fromHexCode(c) {\n var lc;\n\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n /*eslint-disable no-bitwise*/\n lc = c | 0x20;\n\n if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {\n return lc - 0x61 + 10;\n }\n\n return -1;\n}\n\nfunction escapedHexLen(c) {\n if (c === 0x78/* x */) { return 2; }\n if (c === 0x75/* u */) { return 4; }\n if (c === 0x55/* U */) { return 8; }\n return 0;\n}\n\nfunction fromDecimalCode(c) {\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n return -1;\n}\n\nfunction simpleEscapeSequence(c) {\n /* eslint-disable indent */\n return (c === 0x30/* 0 */) ? '\\x00' :\n (c === 0x61/* a */) ? '\\x07' :\n (c === 0x62/* b */) ? '\\x08' :\n (c === 0x74/* t */) ? '\\x09' :\n (c === 0x09/* Tab */) ? '\\x09' :\n (c === 0x6E/* n */) ? '\\x0A' :\n (c === 0x76/* v */) ? '\\x0B' :\n (c === 0x66/* f */) ? '\\x0C' :\n (c === 0x72/* r */) ? '\\x0D' :\n (c === 0x65/* e */) ? '\\x1B' :\n (c === 0x20/* Space */) ? ' ' :\n (c === 0x22/* \" */) ? '\\x22' :\n (c === 0x2F/* / */) ? '/' :\n (c === 0x5C/* \\ */) ? '\\x5C' :\n (c === 0x4E/* N */) ? '\\x85' :\n (c === 0x5F/* _ */) ? '\\xA0' :\n (c === 0x4C/* L */) ? '\\u2028' :\n (c === 0x50/* P */) ? '\\u2029' : '';\n}\n\nfunction charFromCodepoint(c) {\n if (c <= 0xFFFF) {\n return String.fromCharCode(c);\n }\n // Encode UTF-16 surrogate pair\n // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF\n return String.fromCharCode(\n ((c - 0x010000) >> 10) + 0xD800,\n ((c - 0x010000) & 0x03FF) + 0xDC00\n );\n}\n\nvar simpleEscapeCheck = new Array(256); // integer, for fast access\nvar simpleEscapeMap = new Array(256);\nfor (var i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\n\n\nfunction State(input, options) {\n this.input = input;\n\n this.filename = options['filename'] || null;\n this.schema = options['schema'] || DEFAULT_FULL_SCHEMA;\n this.onWarning = options['onWarning'] || null;\n this.legacy = options['legacy'] || false;\n this.json = options['json'] || false;\n this.listener = options['listener'] || null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n\n this.documents = [];\n\n /*\n this.version;\n this.checkLineBreaks;\n this.tagMap;\n this.anchorMap;\n this.tag;\n this.anchor;\n this.kind;\n this.result;*/\n\n}\n\n\nfunction generateError(state, message) {\n return new YAMLException(\n message,\n new Mark(state.filename, state.input, state.position, state.line, (state.position - state.lineStart)));\n}\n\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\n\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\n\n\nvar directiveHandlers = {\n\n YAML: function handleYamlDirective(state, name, args) {\n\n var match, major, minor;\n\n if (state.version !== null) {\n throwError(state, 'duplication of %YAML directive');\n }\n\n if (args.length !== 1) {\n throwError(state, 'YAML directive accepts exactly one argument');\n }\n\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n\n if (match === null) {\n throwError(state, 'ill-formed argument of the YAML directive');\n }\n\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n\n if (major !== 1) {\n throwError(state, 'unacceptable YAML version of the document');\n }\n\n state.version = args[0];\n state.checkLineBreaks = (minor < 2);\n\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, 'unsupported YAML version of the document');\n }\n },\n\n TAG: function handleTagDirective(state, name, args) {\n\n var handle, prefix;\n\n if (args.length !== 2) {\n throwError(state, 'TAG directive accepts exactly two arguments');\n }\n\n handle = args[0];\n prefix = args[1];\n\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');\n }\n\n if (_hasOwnProperty.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');\n }\n\n state.tagMap[handle] = prefix;\n }\n};\n\n\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n\n if (start < end) {\n _result = state.input.slice(start, end);\n\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 0x09 ||\n (0x20 <= _character && _character <= 0x10FFFF))) {\n throwError(state, 'expected valid JSON character');\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, 'the stream contains non-printable characters');\n }\n\n state.result += _result;\n }\n}\n\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n\n if (!common.isObject(source)) {\n throwError(state, 'cannot merge mappings; the provided source object is unacceptable');\n }\n\n sourceKeys = Object.keys(source);\n\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n\n if (!_hasOwnProperty.call(destination, key)) {\n destination[key] = source[key];\n overridableKeys[key] = true;\n }\n }\n}\n\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startPos) {\n var index, quantity;\n\n // The output is a plain object here, so keys can only be strings.\n // We need to convert keyNode to a string, but doing so can hang the process\n // (deeply nested arrays that explode exponentially using aliases).\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state, 'nested arrays are not supported inside keys');\n }\n\n if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {\n keyNode[index] = '[object Object]';\n }\n }\n }\n\n // Avoid code execution in load() via toString property\n // (still use its own toString for arrays, timestamps,\n // and whatever user schema extensions happen to have @@toStringTag)\n if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {\n keyNode = '[object Object]';\n }\n\n\n keyNode = String(keyNode);\n\n if (_result === null) {\n _result = {};\n }\n\n if (keyTag === 'tag:yaml.org,2002:merge') {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state.json &&\n !_hasOwnProperty.call(overridableKeys, keyNode) &&\n _hasOwnProperty.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.position = startPos || state.position;\n throwError(state, 'duplicated mapping key');\n }\n _result[keyNode] = valueNode;\n delete overridableKeys[keyNode];\n }\n\n return _result;\n}\n\nfunction readLineBreak(state) {\n var ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x0A/* LF */) {\n state.position++;\n } else if (ch === 0x0D/* CR */) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {\n state.position++;\n }\n } else {\n throwError(state, 'a line break is expected');\n }\n\n state.line += 1;\n state.lineStart = state.position;\n}\n\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0,\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (allowComments && ch === 0x23/* # */) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);\n }\n\n if (is_EOL(ch)) {\n readLineBreak(state);\n\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n\n while (ch === 0x20/* Space */) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, 'deficient indentation');\n }\n\n return lineBreaks;\n}\n\nfunction testDocumentSeparator(state) {\n var _position = state.position,\n ch;\n\n ch = state.input.charCodeAt(_position);\n\n // Condition state.position === state.lineStart is tested\n // in parent on each call, for efficiency. No needs to test here again.\n if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&\n ch === state.input.charCodeAt(_position + 1) &&\n ch === state.input.charCodeAt(_position + 2)) {\n\n _position += 3;\n\n ch = state.input.charCodeAt(_position);\n\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction writeFoldedLines(state, count) {\n if (count === 1) {\n state.result += ' ';\n } else if (count > 1) {\n state.result += common.repeat('\\n', count - 1);\n }\n}\n\n\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding,\n following,\n captureStart,\n captureEnd,\n hasPendingContent,\n _line,\n _lineStart,\n _lineIndent,\n _kind = state.kind,\n _result = state.result,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (is_WS_OR_EOL(ch) ||\n is_FLOW_INDICATOR(ch) ||\n ch === 0x23/* # */ ||\n ch === 0x26/* & */ ||\n ch === 0x2A/* * */ ||\n ch === 0x21/* ! */ ||\n ch === 0x7C/* | */ ||\n ch === 0x3E/* > */ ||\n ch === 0x27/* ' */ ||\n ch === 0x22/* \" */ ||\n ch === 0x25/* % */ ||\n ch === 0x40/* @ */ ||\n ch === 0x60/* ` */) {\n return false;\n }\n\n if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n\n state.kind = 'scalar';\n state.result = '';\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n\n while (ch !== 0) {\n if (ch === 0x3A/* : */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n\n } else if (ch === 0x23/* # */) {\n preceding = state.input.charCodeAt(state.position - 1);\n\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n\n } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||\n withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, captureEnd, false);\n\n if (state.result) {\n return true;\n }\n\n state.kind = _kind;\n state.result = _result;\n return false;\n}\n\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch,\n captureStart, captureEnd;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x27/* ' */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x27/* ' */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x27/* ' */) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a single quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a single quoted scalar');\n}\n\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart,\n captureEnd,\n hexLength,\n hexResult,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x22/* \" */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x22/* \" */) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n\n } else if (ch === 0x5C/* \\ */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n\n // TODO: rework to inline fn with no type cast?\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n\n } else {\n throwError(state, 'expected hexadecimal character');\n }\n }\n\n state.result += charFromCodepoint(hexResult);\n\n state.position++;\n\n } else {\n throwError(state, 'unknown escape sequence');\n }\n\n captureStart = captureEnd = state.position;\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a double quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a double quoted scalar');\n}\n\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true,\n _line,\n _tag = state.tag,\n _result,\n _anchor = state.anchor,\n following,\n terminator,\n isPair,\n isExplicitPair,\n isMapping,\n overridableKeys = {},\n keyNode,\n keyTag,\n valueNode,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x5B/* [ */) {\n terminator = 0x5D;/* ] */\n isMapping = false;\n _result = [];\n } else if (ch === 0x7B/* { */) {\n terminator = 0x7D;/* } */\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? 'mapping' : 'sequence';\n state.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state, 'missed comma between flow collection entries');\n }\n\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n\n if (ch === 0x3F/* ? */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n\n if (isMapping) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode);\n } else if (isPair) {\n _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode));\n } else {\n _result.push(keyNode);\n }\n\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x2C/* , */) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a flow collection');\n}\n\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart,\n folding,\n chomping = CHOMPING_CLIP,\n didReadContent = false,\n detectedIndent = false,\n textIndent = nodeIndent,\n emptyLines = 0,\n atMoreIndented = false,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x7C/* | */) {\n folding = false;\n } else if (ch === 0x3E/* > */) {\n folding = true;\n } else {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {\n if (CHOMPING_CLIP === chomping) {\n chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, 'repeat of a chomping mode identifier');\n }\n\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state, 'repeat of an indentation width identifier');\n }\n\n } else {\n break;\n }\n }\n\n if (is_WHITE_SPACE(ch)) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (is_WHITE_SPACE(ch));\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (!is_EOL(ch) && (ch !== 0));\n }\n }\n\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n\n ch = state.input.charCodeAt(state.position);\n\n while ((!detectedIndent || state.lineIndent < textIndent) &&\n (ch === 0x20/* Space */)) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n\n // End of the scalar.\n if (state.lineIndent < textIndent) {\n\n // Perform the chomping.\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) { // i.e. only if the scalar is not empty.\n state.result += '\\n';\n }\n }\n\n // Break this `while` cycle and go to the funciton's epilogue.\n break;\n }\n\n // Folded style: use fancy rules to handle line breaks.\n if (folding) {\n\n // Lines starting with white space characters (more-indented lines) are not folded.\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n // except for the first content line (cf. Example 8.1)\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n\n // End of more-indented block.\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat('\\n', emptyLines + 1);\n\n // Just one line break - perceive as the same line.\n } else if (emptyLines === 0) {\n if (didReadContent) { // i.e. only if we have already read some scalar content.\n state.result += ' ';\n }\n\n // Several line breaks - perceive as different lines.\n } else {\n state.result += common.repeat('\\n', emptyLines);\n }\n\n // Literal style: just add exact number of line breaks between content lines.\n } else {\n // Keep all line breaks except the header line break.\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n }\n\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n\n while (!is_EOL(ch) && (ch !== 0)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, state.position, false);\n }\n\n return true;\n}\n\nfunction readBlockSequence(state, nodeIndent) {\n var _line,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = [],\n following,\n detected = false,\n ch;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n\n if (ch !== 0x2D/* - */) {\n break;\n }\n\n following = state.input.charCodeAt(state.position + 1);\n\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n\n detected = true;\n state.position++;\n\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a sequence entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'sequence';\n state.result = _result;\n return true;\n }\n return false;\n}\n\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following,\n allowCompact,\n _line,\n _pos,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = {},\n overridableKeys = {},\n keyTag = null,\n keyNode = null,\n valueNode = null,\n atExplicitKey = false,\n detected = false,\n ch;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line; // Save the current line.\n _pos = state.position;\n\n //\n // Explicit notation case. There are two separate blocks:\n // first for the key (denoted by \"?\") and second for the value (denoted by \":\")\n //\n if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {\n\n if (ch === 0x3F/* ? */) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n\n } else if (atExplicitKey) {\n // i.e. 0x3A/* : */ === character after the explicit key.\n atExplicitKey = false;\n allowCompact = true;\n\n } else {\n throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');\n }\n\n state.position += 1;\n ch = following;\n\n //\n // Implicit notation case. Flow-style node as the key first, then \":\", and the value.\n //\n } else if (composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x3A/* : */) {\n ch = state.input.charCodeAt(++state.position);\n\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');\n }\n\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n\n } else if (detected) {\n throwError(state, 'can not read an implicit mapping pair; a colon is missed');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else if (detected) {\n throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else {\n break; // Reading is done. Go to the epilogue.\n }\n\n //\n // Common reading code for both explicit and implicit notations.\n //\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n } else {\n valueNode = state.result;\n }\n }\n\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _pos);\n keyTag = keyNode = valueNode = null;\n }\n\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n\n if (state.lineIndent > nodeIndent && (ch !== 0)) {\n throwError(state, 'bad indentation of a mapping entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n //\n // Epilogue.\n //\n\n // Special case: last mapping's node contains only the key in explicit notation.\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);\n }\n\n // Expose the resulting mapping.\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'mapping';\n state.result = _result;\n }\n\n return detected;\n}\n\nfunction readTagProperty(state) {\n var _position,\n isVerbatim = false,\n isNamed = false,\n tagHandle,\n tagName,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x21/* ! */) return false;\n\n if (state.tag !== null) {\n throwError(state, 'duplication of a tag property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x3C/* < */) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n\n } else if (ch === 0x21/* ! */) {\n isNamed = true;\n tagHandle = '!!';\n ch = state.input.charCodeAt(++state.position);\n\n } else {\n tagHandle = '!';\n }\n\n _position = state.position;\n\n if (isVerbatim) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && ch !== 0x3E/* > */);\n\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else {\n throwError(state, 'unexpected end of the stream within a verbatim tag');\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n\n if (ch === 0x21/* ! */) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, 'named tag handle cannot contain such characters');\n }\n\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, 'tag suffix cannot contain exclamation marks');\n }\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n tagName = state.input.slice(_position, state.position);\n\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, 'tag suffix cannot contain flow indicator characters');\n }\n }\n\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, 'tag name cannot contain such characters: ' + tagName);\n }\n\n if (isVerbatim) {\n state.tag = tagName;\n\n } else if (_hasOwnProperty.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n\n } else if (tagHandle === '!') {\n state.tag = '!' + tagName;\n\n } else if (tagHandle === '!!') {\n state.tag = 'tag:yaml.org,2002:' + tagName;\n\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n\n return true;\n}\n\nfunction readAnchorProperty(state) {\n var _position,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x26/* & */) return false;\n\n if (state.anchor !== null) {\n throwError(state, 'duplication of an anchor property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an anchor node must contain at least one character');\n }\n\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\n\nfunction readAlias(state) {\n var _position, alias,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x2A/* * */) return false;\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an alias node must contain at least one character');\n }\n\n alias = state.input.slice(_position, state.position);\n\n if (!_hasOwnProperty.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\n\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles,\n allowBlockScalars,\n allowBlockCollections,\n indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n\n blockIndent = state.position - state.lineStart;\n\n if (indentStatus === 1) {\n if (allowBlockCollections &&\n (readBlockSequence(state, blockIndent) ||\n readBlockMapping(state, blockIndent, flowIndent)) ||\n readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||\n readSingleQuotedScalar(state, flowIndent) ||\n readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n\n } else if (readAlias(state)) {\n hasContent = true;\n\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, 'alias node should not have any properties');\n }\n\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n\n if (state.tag === null) {\n state.tag = '?';\n }\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n // Special case: block sequences are allowed to have same indentation level as the parent.\n // http://www.yaml.org/spec/1.2/spec.html#id2799784\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n\n if (state.tag !== null && state.tag !== '!') {\n if (state.tag === '?') {\n // Implicit resolving is not allowed for non-scalar types, and '?'\n // non-specific tag is only automatically assigned to plain scalars.\n //\n // We only need to check kind conformity in case user explicitly assigns '?'\n // tag, for example like this: \"! [0]\"\n //\n if (state.result !== null && state.kind !== 'scalar') {\n throwError(state, 'unacceptable node kind for ! tag; it should be \"scalar\", not \"' + state.kind + '\"');\n }\n\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type = state.implicitTypes[typeIndex];\n\n if (type.resolve(state.result)) { // `state.result` updated in resolver if matched\n state.result = type.construct(state.result);\n state.tag = type.tag;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n } else if (_hasOwnProperty.call(state.typeMap[state.kind || 'fallback'], state.tag)) {\n type = state.typeMap[state.kind || 'fallback'][state.tag];\n\n if (state.result !== null && type.kind !== state.kind) {\n throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be \"' + type.kind + '\", not \"' + state.kind + '\"');\n }\n\n if (!type.resolve(state.result)) { // `state.result` updated in resolver if matched\n throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');\n } else {\n state.result = type.construct(state.result);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else {\n throwError(state, 'unknown tag !<' + state.tag + '>');\n }\n }\n\n if (state.listener !== null) {\n state.listener('close', state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\n\nfunction readDocument(state) {\n var documentStart = state.position,\n _position,\n directiveName,\n directiveArgs,\n hasDirectives = false,\n ch;\n\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = {};\n state.anchorMap = {};\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if (state.lineIndent > 0 || ch !== 0x25/* % */) {\n break;\n }\n\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n\n if (directiveName.length < 1) {\n throwError(state, 'directive name must not be less than one character in length');\n }\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && !is_EOL(ch));\n break;\n }\n\n if (is_EOL(ch)) break;\n\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n\n if (ch !== 0) readLineBreak(state);\n\n if (_hasOwnProperty.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n } else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n\n skipSeparationSpace(state, true, -1);\n\n if (state.lineIndent === 0 &&\n state.input.charCodeAt(state.position) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n\n } else if (hasDirectives) {\n throwError(state, 'directives end mark is expected');\n }\n\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n\n if (state.checkLineBreaks &&\n PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, 'non-ASCII line breaks are interpreted as content');\n }\n\n state.documents.push(state.result);\n\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n\n if (state.input.charCodeAt(state.position) === 0x2E/* . */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n\n if (state.position < (state.length - 1)) {\n throwError(state, 'end of the stream or a document separator is expected');\n } else {\n return;\n }\n}\n\n\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n\n if (input.length !== 0) {\n\n // Add tailing `\\n` if not exists\n if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&\n input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {\n input += '\\n';\n }\n\n // Strip BOM\n if (input.charCodeAt(0) === 0xFEFF) {\n input = input.slice(1);\n }\n }\n\n var state = new State(input, options);\n\n var nullpos = input.indexOf('\\0');\n\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, 'null byte is not allowed in input');\n }\n\n // Use 0 as string terminator. That significantly simplifies bounds check.\n state.input += '\\0';\n\n while (state.input.charCodeAt(state.position) === 0x20/* Space */) {\n state.lineIndent += 1;\n state.position += 1;\n }\n\n while (state.position < (state.length - 1)) {\n readDocument(state);\n }\n\n return state.documents;\n}\n\n\nfunction loadAll(input, iterator, options) {\n if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n var documents = loadDocuments(input, options);\n\n if (typeof iterator !== 'function') {\n return documents;\n }\n\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\n\n\nfunction load(input, options) {\n var documents = loadDocuments(input, options);\n\n if (documents.length === 0) {\n /*eslint-disable no-undefined*/\n return undefined;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new YAMLException('expected a single document in the stream, but found more');\n}\n\n\nfunction safeLoadAll(input, iterator, options) {\n if (typeof iterator === 'object' && iterator !== null && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n return loadAll(input, iterator, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options));\n}\n\n\nfunction safeLoad(input, options) {\n return load(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options));\n}\n\n\nmodule.exports.loadAll = loadAll;\nmodule.exports.load = load;\nmodule.exports.safeLoadAll = safeLoadAll;\nmodule.exports.safeLoad = safeLoad;\n","'use strict';\n\n/*eslint-disable no-use-before-define*/\n\nvar common = require('./common');\nvar YAMLException = require('./exception');\nvar DEFAULT_FULL_SCHEMA = require('./schema/default_full');\nvar DEFAULT_SAFE_SCHEMA = require('./schema/default_safe');\n\nvar _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar CHAR_TAB = 0x09; /* Tab */\nvar CHAR_LINE_FEED = 0x0A; /* LF */\nvar CHAR_CARRIAGE_RETURN = 0x0D; /* CR */\nvar CHAR_SPACE = 0x20; /* Space */\nvar CHAR_EXCLAMATION = 0x21; /* ! */\nvar CHAR_DOUBLE_QUOTE = 0x22; /* \" */\nvar CHAR_SHARP = 0x23; /* # */\nvar CHAR_PERCENT = 0x25; /* % */\nvar CHAR_AMPERSAND = 0x26; /* & */\nvar CHAR_SINGLE_QUOTE = 0x27; /* ' */\nvar CHAR_ASTERISK = 0x2A; /* * */\nvar CHAR_COMMA = 0x2C; /* , */\nvar CHAR_MINUS = 0x2D; /* - */\nvar CHAR_COLON = 0x3A; /* : */\nvar CHAR_EQUALS = 0x3D; /* = */\nvar CHAR_GREATER_THAN = 0x3E; /* > */\nvar CHAR_QUESTION = 0x3F; /* ? */\nvar CHAR_COMMERCIAL_AT = 0x40; /* @ */\nvar CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */\nvar CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */\nvar CHAR_GRAVE_ACCENT = 0x60; /* ` */\nvar CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */\nvar CHAR_VERTICAL_LINE = 0x7C; /* | */\nvar CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */\n\nvar ESCAPE_SEQUENCES = {};\n\nESCAPE_SEQUENCES[0x00] = '\\\\0';\nESCAPE_SEQUENCES[0x07] = '\\\\a';\nESCAPE_SEQUENCES[0x08] = '\\\\b';\nESCAPE_SEQUENCES[0x09] = '\\\\t';\nESCAPE_SEQUENCES[0x0A] = '\\\\n';\nESCAPE_SEQUENCES[0x0B] = '\\\\v';\nESCAPE_SEQUENCES[0x0C] = '\\\\f';\nESCAPE_SEQUENCES[0x0D] = '\\\\r';\nESCAPE_SEQUENCES[0x1B] = '\\\\e';\nESCAPE_SEQUENCES[0x22] = '\\\\\"';\nESCAPE_SEQUENCES[0x5C] = '\\\\\\\\';\nESCAPE_SEQUENCES[0x85] = '\\\\N';\nESCAPE_SEQUENCES[0xA0] = '\\\\_';\nESCAPE_SEQUENCES[0x2028] = '\\\\L';\nESCAPE_SEQUENCES[0x2029] = '\\\\P';\n\nvar DEPRECATED_BOOLEANS_SYNTAX = [\n 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',\n 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'\n];\n\nfunction compileStyleMap(schema, map) {\n var result, keys, index, length, tag, style, type;\n\n if (map === null) return {};\n\n result = {};\n keys = Object.keys(map);\n\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map[tag]);\n\n if (tag.slice(0, 2) === '!!') {\n tag = 'tag:yaml.org,2002:' + tag.slice(2);\n }\n type = schema.compiledTypeMap['fallback'][tag];\n\n if (type && _hasOwnProperty.call(type.styleAliases, style)) {\n style = type.styleAliases[style];\n }\n\n result[tag] = style;\n }\n\n return result;\n}\n\nfunction encodeHex(character) {\n var string, handle, length;\n\n string = character.toString(16).toUpperCase();\n\n if (character <= 0xFF) {\n handle = 'x';\n length = 2;\n } else if (character <= 0xFFFF) {\n handle = 'u';\n length = 4;\n } else if (character <= 0xFFFFFFFF) {\n handle = 'U';\n length = 8;\n } else {\n throw new YAMLException('code point within a string may not be greater than 0xFFFFFFFF');\n }\n\n return '\\\\' + handle + common.repeat('0', length - string.length) + string;\n}\n\nfunction State(options) {\n this.schema = options['schema'] || DEFAULT_FULL_SCHEMA;\n this.indent = Math.max(1, (options['indent'] || 2));\n this.noArrayIndent = options['noArrayIndent'] || false;\n this.skipInvalid = options['skipInvalid'] || false;\n this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);\n this.styleMap = compileStyleMap(this.schema, options['styles'] || null);\n this.sortKeys = options['sortKeys'] || false;\n this.lineWidth = options['lineWidth'] || 80;\n this.noRefs = options['noRefs'] || false;\n this.noCompatMode = options['noCompatMode'] || false;\n this.condenseFlow = options['condenseFlow'] || false;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n\n this.tag = null;\n this.result = '';\n\n this.duplicates = [];\n this.usedDuplicates = null;\n}\n\n// Indents every line in a string. Empty lines (\\n only) are not indented.\nfunction indentString(string, spaces) {\n var ind = common.repeat(' ', spaces),\n position = 0,\n next = -1,\n result = '',\n line,\n length = string.length;\n\n while (position < length) {\n next = string.indexOf('\\n', position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n\n if (line.length && line !== '\\n') result += ind;\n\n result += line;\n }\n\n return result;\n}\n\nfunction generateNextLine(state, level) {\n return '\\n' + common.repeat(' ', state.indent * level);\n}\n\nfunction testImplicitResolving(state, str) {\n var index, length, type;\n\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type = state.implicitTypes[index];\n\n if (type.resolve(str)) {\n return true;\n }\n }\n\n return false;\n}\n\n// [33] s-white ::= s-space | s-tab\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\n\n// Returns true if the character can be printed without escaping.\n// From YAML 1.2: \"any allowed characters known to be non-printable\n// should also be escaped. [However,] This isn’t mandatory\"\n// Derived from nb-char - \\t - #x85 - #xA0 - #x2028 - #x2029.\nfunction isPrintable(c) {\n return (0x00020 <= c && c <= 0x00007E)\n || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)\n || ((0x0E000 <= c && c <= 0x00FFFD) && c !== 0xFEFF /* BOM */)\n || (0x10000 <= c && c <= 0x10FFFF);\n}\n\n// [34] ns-char ::= nb-char - s-white\n// [27] nb-char ::= c-printable - b-char - c-byte-order-mark\n// [26] b-char ::= b-line-feed | b-carriage-return\n// [24] b-line-feed ::= #xA /* LF */\n// [25] b-carriage-return ::= #xD /* CR */\n// [3] c-byte-order-mark ::= #xFEFF\nfunction isNsChar(c) {\n return isPrintable(c) && !isWhitespace(c)\n // byte-order-mark\n && c !== 0xFEFF\n // b-char\n && c !== CHAR_CARRIAGE_RETURN\n && c !== CHAR_LINE_FEED;\n}\n\n// Simplified test for values allowed after the first character in plain style.\nfunction isPlainSafe(c, prev) {\n // Uses a subset of nb-char - c-flow-indicator - \":\" - \"#\"\n // where nb-char ::= c-printable - b-char - c-byte-order-mark.\n return isPrintable(c) && c !== 0xFEFF\n // - c-flow-indicator\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // - \":\" - \"#\"\n // /* An ns-char preceding */ \"#\"\n && c !== CHAR_COLON\n && ((c !== CHAR_SHARP) || (prev && isNsChar(prev)));\n}\n\n// Simplified test for values allowed as the first character in plain style.\nfunction isPlainSafeFirst(c) {\n // Uses a subset of ns-char - c-indicator\n // where ns-char = nb-char - s-white.\n return isPrintable(c) && c !== 0xFEFF\n && !isWhitespace(c) // - s-white\n // - (c-indicator ::=\n // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”\n && c !== CHAR_MINUS\n && c !== CHAR_QUESTION\n && c !== CHAR_COLON\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “\"”\n && c !== CHAR_SHARP\n && c !== CHAR_AMPERSAND\n && c !== CHAR_ASTERISK\n && c !== CHAR_EXCLAMATION\n && c !== CHAR_VERTICAL_LINE\n && c !== CHAR_EQUALS\n && c !== CHAR_GREATER_THAN\n && c !== CHAR_SINGLE_QUOTE\n && c !== CHAR_DOUBLE_QUOTE\n // | “%” | “@” | “`”)\n && c !== CHAR_PERCENT\n && c !== CHAR_COMMERCIAL_AT\n && c !== CHAR_GRAVE_ACCENT;\n}\n\n// Determines whether block indentation indicator is required.\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\n\nvar STYLE_PLAIN = 1,\n STYLE_SINGLE = 2,\n STYLE_LITERAL = 3,\n STYLE_FOLDED = 4,\n STYLE_DOUBLE = 5;\n\n// Determines which scalar styles are possible and returns the preferred style.\n// lineWidth = -1 => no limit.\n// Pre-conditions: str.length > 0.\n// Post-conditions:\n// STYLE_PLAIN or STYLE_SINGLE => no \\n are in the string.\n// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).\n// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType) {\n var i;\n var char, prev_char;\n var hasLineBreak = false;\n var hasFoldableLine = false; // only checked if shouldTrackWidth\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1; // count the first line correctly\n var plain = isPlainSafeFirst(string.charCodeAt(0))\n && !isWhitespace(string.charCodeAt(string.length - 1));\n\n if (singleLineOnly) {\n // Case: no block styles.\n // Check for disallowed characters to rule out plain and single.\n for (i = 0; i < string.length; i++) {\n char = string.charCodeAt(i);\n if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n prev_char = i > 0 ? string.charCodeAt(i - 1) : null;\n plain = plain && isPlainSafe(char, prev_char);\n }\n } else {\n // Case: block styles permitted.\n for (i = 0; i < string.length; i++) {\n char = string.charCodeAt(i);\n if (char === CHAR_LINE_FEED) {\n hasLineBreak = true;\n // Check if any line can be folded.\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine ||\n // Foldable line = too long, and not more-indented.\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' ');\n previousLineBreak = i;\n }\n } else if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n prev_char = i > 0 ? string.charCodeAt(i - 1) : null;\n plain = plain && isPlainSafe(char, prev_char);\n }\n // in case the end is missing a \\n\n hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' '));\n }\n // Although every style can represent \\n without escaping, prefer block styles\n // for multiline, since they're more readable and they don't add empty lines.\n // Also prefer folding a super-long line.\n if (!hasLineBreak && !hasFoldableLine) {\n // Strings interpretable as another type have to be quoted;\n // e.g. the string 'true' vs. the boolean true.\n return plain && !testAmbiguousType(string)\n ? STYLE_PLAIN : STYLE_SINGLE;\n }\n // Edge case: block indentation indicator can only have one digit.\n if (indentPerLevel > 9 && needIndentIndicator(string)) {\n return STYLE_DOUBLE;\n }\n // At this point we know block styles are valid.\n // Prefer literal style unless we want to fold.\n return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n}\n\n// Note: line breaking/folding is implemented for only the folded style.\n// NB. We drop the last trailing newline (if any) of a returned block scalar\n// since the dumper adds its own newline. This always works:\n// • No ending newline => unaffected; already using strip \"-\" chomping.\n// • Ending newline => removed then restored.\n// Importantly, this keeps the \"+\" chomp indicator from gaining an extra line.\nfunction writeScalar(state, string, level, iskey) {\n state.dump = (function () {\n if (string.length === 0) {\n return \"''\";\n }\n if (!state.noCompatMode &&\n DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1) {\n return \"'\" + string + \"'\";\n }\n\n var indent = state.indent * Math.max(1, level); // no 0-indent scalars\n // As indentation gets deeper, let the width decrease monotonically\n // to the lower bound min(state.lineWidth, 40).\n // Note that this implies\n // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.\n // state.lineWidth > 40 + state.indent: width decreases until the lower bound.\n // This behaves better than a constant minimum width which disallows narrower options,\n // or an indent threshold which causes the width to suddenly increase.\n var lineWidth = state.lineWidth === -1\n ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n\n // Without knowing if keys are implicit/explicit, assume implicit for safety.\n var singleLineOnly = iskey\n // No block styles in flow mode.\n || (state.flowLevel > -1 && level >= state.flowLevel);\n function testAmbiguity(string) {\n return testImplicitResolving(state, string);\n }\n\n switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth, testAmbiguity)) {\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return '|' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return '>' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string, lineWidth) + '\"';\n default:\n throw new YAMLException('impossible error: invalid scalar style');\n }\n }());\n}\n\n// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';\n\n // note the special case: the string '\\n' counts as a \"trailing\" empty line.\n var clip = string[string.length - 1] === '\\n';\n var keep = clip && (string[string.length - 2] === '\\n' || string === '\\n');\n var chomp = keep ? '+' : (clip ? '' : '-');\n\n return indentIndicator + chomp + '\\n';\n}\n\n// (See the note for writeScalar.)\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === '\\n' ? string.slice(0, -1) : string;\n}\n\n// Note: a long line without a suitable break point will exceed the width limit.\n// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.\nfunction foldString(string, width) {\n // In folded style, $k$ consecutive newlines output as $k+1$ newlines—\n // unless they're before or after a more-indented line, or at the very\n // beginning or end, in which case $k$ maps to $k$.\n // Therefore, parse each chunk as newline(s) followed by a content line.\n var lineRe = /(\\n+)([^\\n]*)/g;\n\n // first line (possibly an empty line)\n var result = (function () {\n var nextLF = string.indexOf('\\n');\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine(string.slice(0, nextLF), width);\n }());\n // If we haven't reached the first content line yet, don't add an extra \\n.\n var prevMoreIndented = string[0] === '\\n' || string[0] === ' ';\n var moreIndented;\n\n // rest of the lines\n var match;\n while ((match = lineRe.exec(string))) {\n var prefix = match[1], line = match[2];\n moreIndented = (line[0] === ' ');\n result += prefix\n + (!prevMoreIndented && !moreIndented && line !== ''\n ? '\\n' : '')\n + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n\n return result;\n}\n\n// Greedy line breaking.\n// Picks the longest line under the limit each time,\n// otherwise settles for the shortest line over the limit.\n// NB. More-indented lines *cannot* be folded, as that would add an extra \\n.\nfunction foldLine(line, width) {\n if (line === '' || line[0] === ' ') return line;\n\n // Since a more-indented line adds a \\n, breaks can't be followed by a space.\n var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.\n var match;\n // start is an inclusive index. end, curr, and next are exclusive.\n var start = 0, end, curr = 0, next = 0;\n var result = '';\n\n // Invariants: 0 <= start <= length-1.\n // 0 <= curr <= next <= max(0, length-2). curr - start <= width.\n // Inside the loop:\n // A match implies length >= 2, so curr and next are <= length-2.\n while ((match = breakRe.exec(line))) {\n next = match.index;\n // maintain invariant: curr - start <= width\n if (next - start > width) {\n end = (curr > start) ? curr : next; // derive end <= length-2\n result += '\\n' + line.slice(start, end);\n // skip the space that was output as \\n\n start = end + 1; // derive start <= length-1\n }\n curr = next;\n }\n\n // By the invariants, start <= length-1, so there is something left over.\n // It is either the whole string or a part starting from non-whitespace.\n result += '\\n';\n // Insert a break if the remainder is too long and there is a break available.\n if (line.length - start > width && curr > start) {\n result += line.slice(start, curr) + '\\n' + line.slice(curr + 1);\n } else {\n result += line.slice(start);\n }\n\n return result.slice(1); // drop extra \\n joiner\n}\n\n// Escapes a double-quoted string.\nfunction escapeString(string) {\n var result = '';\n var char, nextChar;\n var escapeSeq;\n\n for (var i = 0; i < string.length; i++) {\n char = string.charCodeAt(i);\n // Check for surrogate pairs (reference Unicode 3.0 section \"3.7 Surrogates\").\n if (char >= 0xD800 && char <= 0xDBFF/* high surrogate */) {\n nextChar = string.charCodeAt(i + 1);\n if (nextChar >= 0xDC00 && nextChar <= 0xDFFF/* low surrogate */) {\n // Combine the surrogate pair and store it escaped.\n result += encodeHex((char - 0xD800) * 0x400 + nextChar - 0xDC00 + 0x10000);\n // Advance index one extra since we already used that char here.\n i++; continue;\n }\n }\n escapeSeq = ESCAPE_SEQUENCES[char];\n result += !escapeSeq && isPrintable(char)\n ? string[i]\n : escapeSeq || encodeHex(char);\n }\n\n return result;\n}\n\nfunction writeFlowSequence(state, level, object) {\n var _result = '',\n _tag = state.tag,\n index,\n length;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n // Write only valid elements.\n if (writeNode(state, level, object[index], false, false)) {\n if (index !== 0) _result += ',' + (!state.condenseFlow ? ' ' : '');\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = '[' + _result + ']';\n}\n\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n index,\n length;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n // Write only valid elements.\n if (writeNode(state, level + 1, object[index], true, true)) {\n if (!compact || index !== 0) {\n _result += generateNextLine(state, level);\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n _result += '-';\n } else {\n _result += '- ';\n }\n\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = _result || '[]'; // Empty sequence if no valid values.\n}\n\nfunction writeFlowMapping(state, level, object) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n pairBuffer;\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n\n pairBuffer = '';\n if (index !== 0) pairBuffer += ', ';\n\n if (state.condenseFlow) pairBuffer += '\"';\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (!writeNode(state, level, objectKey, false, false)) {\n continue; // Skip this pair because of invalid key;\n }\n\n if (state.dump.length > 1024) pairBuffer += '? ';\n\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : '') + ':' + (state.condenseFlow ? '' : ' ');\n\n if (!writeNode(state, level, objectValue, false, false)) {\n continue; // Skip this pair because of invalid value.\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = '{' + _result + '}';\n}\n\nfunction writeBlockMapping(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n explicitPair,\n pairBuffer;\n\n // Allow sorting keys so that the output file is deterministic\n if (state.sortKeys === true) {\n // Default sorting\n objectKeyList.sort();\n } else if (typeof state.sortKeys === 'function') {\n // Custom sort function\n objectKeyList.sort(state.sortKeys);\n } else if (state.sortKeys) {\n // Something is wrong\n throw new YAMLException('sortKeys must be a boolean or a function');\n }\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = '';\n\n if (!compact || index !== 0) {\n pairBuffer += generateNextLine(state, level);\n }\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (!writeNode(state, level + 1, objectKey, true, true, true)) {\n continue; // Skip this pair because of invalid key.\n }\n\n explicitPair = (state.tag !== null && state.tag !== '?') ||\n (state.dump && state.dump.length > 1024);\n\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += '?';\n } else {\n pairBuffer += '? ';\n }\n }\n\n pairBuffer += state.dump;\n\n if (explicitPair) {\n pairBuffer += generateNextLine(state, level);\n }\n\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {\n continue; // Skip this pair because of invalid value.\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += ':';\n } else {\n pairBuffer += ': ';\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = _result || '{}'; // Empty mapping if no valid pairs.\n}\n\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type, style;\n\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type = typeList[index];\n\n if ((type.instanceOf || type.predicate) &&\n (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&\n (!type.predicate || type.predicate(object))) {\n\n state.tag = explicit ? type.tag : '?';\n\n if (type.represent) {\n style = state.styleMap[type.tag] || type.defaultStyle;\n\n if (_toString.call(type.represent) === '[object Function]') {\n _result = type.represent(object, style);\n } else if (_hasOwnProperty.call(type.represent, style)) {\n _result = type.represent[style](object, style);\n } else {\n throw new YAMLException('!<' + type.tag + '> tag resolver accepts not \"' + style + '\" style');\n }\n\n state.dump = _result;\n }\n\n return true;\n }\n }\n\n return false;\n}\n\n// Serializes `object` and writes it to global `result`.\n// Returns true on success, or false on invalid object.\n//\nfunction writeNode(state, level, object, block, compact, iskey) {\n state.tag = null;\n state.dump = object;\n\n if (!detectType(state, object, false)) {\n detectType(state, object, true);\n }\n\n var type = _toString.call(state.dump);\n\n if (block) {\n block = (state.flowLevel < 0 || state.flowLevel > level);\n }\n\n var objectOrArray = type === '[object Object]' || type === '[object Array]',\n duplicateIndex,\n duplicate;\n\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n\n if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {\n compact = false;\n }\n\n if (duplicate && state.usedDuplicates[duplicateIndex]) {\n state.dump = '*ref_' + duplicateIndex;\n } else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {\n state.usedDuplicates[duplicateIndex] = true;\n }\n if (type === '[object Object]') {\n if (block && (Object.keys(state.dump).length !== 0)) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object Array]') {\n var arrayLevel = (state.noArrayIndent && (level > 0)) ? level - 1 : level;\n if (block && (state.dump.length !== 0)) {\n writeBlockSequence(state, arrayLevel, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowSequence(state, arrayLevel, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object String]') {\n if (state.tag !== '?') {\n writeScalar(state, state.dump, level, iskey);\n }\n } else {\n if (state.skipInvalid) return false;\n throw new YAMLException('unacceptable kind of an object to dump ' + type);\n }\n\n if (state.tag !== null && state.tag !== '?') {\n state.dump = '!<' + state.tag + '> ' + state.dump;\n }\n }\n\n return true;\n}\n\nfunction getDuplicateReferences(object, state) {\n var objects = [],\n duplicatesIndexes = [],\n index,\n length;\n\n inspectNode(object, objects, duplicatesIndexes);\n\n for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {\n state.duplicates.push(objects[duplicatesIndexes[index]]);\n }\n state.usedDuplicates = new Array(length);\n}\n\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList,\n index,\n length;\n\n if (object !== null && typeof object === 'object') {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) {\n duplicatesIndexes.push(index);\n }\n } else {\n objects.push(object);\n\n if (Array.isArray(object)) {\n for (index = 0, length = object.length; index < length; index += 1) {\n inspectNode(object[index], objects, duplicatesIndexes);\n }\n } else {\n objectKeyList = Object.keys(object);\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n}\n\nfunction dump(input, options) {\n options = options || {};\n\n var state = new State(options);\n\n if (!state.noRefs) getDuplicateReferences(input, state);\n\n if (writeNode(state, 0, input, true, true)) return state.dump + '\\n';\n\n return '';\n}\n\nfunction safeDump(input, options) {\n return dump(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options));\n}\n\nmodule.exports.dump = dump;\nmodule.exports.safeDump = safeDump;\n","'use strict';\n\n\nvar loader = require('./js-yaml/loader');\nvar dumper = require('./js-yaml/dumper');\n\n\nfunction deprecated(name) {\n return function () {\n throw new Error('Function ' + name + ' is deprecated and cannot be used.');\n };\n}\n\n\nmodule.exports.Type = require('./js-yaml/type');\nmodule.exports.Schema = require('./js-yaml/schema');\nmodule.exports.FAILSAFE_SCHEMA = require('./js-yaml/schema/failsafe');\nmodule.exports.JSON_SCHEMA = require('./js-yaml/schema/json');\nmodule.exports.CORE_SCHEMA = require('./js-yaml/schema/core');\nmodule.exports.DEFAULT_SAFE_SCHEMA = require('./js-yaml/schema/default_safe');\nmodule.exports.DEFAULT_FULL_SCHEMA = require('./js-yaml/schema/default_full');\nmodule.exports.load = loader.load;\nmodule.exports.loadAll = loader.loadAll;\nmodule.exports.safeLoad = loader.safeLoad;\nmodule.exports.safeLoadAll = loader.safeLoadAll;\nmodule.exports.dump = dumper.dump;\nmodule.exports.safeDump = dumper.safeDump;\nmodule.exports.YAMLException = require('./js-yaml/exception');\n\n// Deprecated schema names from JS-YAML 2.0.x\nmodule.exports.MINIMAL_SCHEMA = require('./js-yaml/schema/failsafe');\nmodule.exports.SAFE_SCHEMA = require('./js-yaml/schema/default_safe');\nmodule.exports.DEFAULT_SCHEMA = require('./js-yaml/schema/default_full');\n\n// Deprecated functions from JS-YAML 1.x.x\nmodule.exports.scan = deprecated('scan');\nmodule.exports.parse = deprecated('parse');\nmodule.exports.compose = deprecated('compose');\nmodule.exports.addConstructor = deprecated('addConstructor');\n","'use strict';\n\n\nvar yaml = require('./lib/js-yaml.js');\n\n\nmodule.exports = yaml;\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","import type { DataModel } from '@mcschema/core'\nimport { Path } from '@mcschema/core'\nimport yaml from 'js-yaml'\nimport { route } from 'preact-router'\nimport rfdc from 'rfdc'\nimport config from '../config.json'\n\nexport function isPromise(obj: any): obj is Promise {\n\treturn typeof (obj as any)?.then === 'function' \n}\n\nexport function isObject(obj: any): obj is Record {\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 (isObject(dimensions)) {\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(['placement', 'salt']), Math.abs(seed), true)\n\tmodel.set(new Path(['generator', 'seed']), seed, true)\n\tmodel.set(new Path(['generator', 'biome_source', 'seed']), seed)\n}\n\nexport function htmlEncode(str: string) {\n\treturn str.replace(/&/g, '&').replace(//g, '>')\n\t\t.replace(/\"/g, '"').replace(/'/g, ''').replace(/\\//g, '/')\n}\n\nexport function hashString(s: string) {\n\tlet h = 0\n\tfor(let i = 0; i < s.length; i++)\n\t\th = Math.imul(31, h) + s.charCodeAt(i) | 0\n\treturn h\n}\n\nexport function cleanUrl(url: string) {\n\treturn `/${url}/`.replaceAll('//', '/')\n}\n\nexport function getPath(url: string) {\n\tconst searchIndex = url.indexOf('?')\n\tif (searchIndex >= 0) {\n\t\turl = url.slice(0, searchIndex)\n\t}\n\treturn cleanUrl(url)\n}\n\nexport function getGenerator(url: string) {\n\tconst trimmedUrl = getPath(url).replace(/^\\//, '').replace(/\\/$/, '')\n\treturn config.generators.find(g => g.url === trimmedUrl)\n}\n\nexport function changeUrl({ path, search, hash, replace }: { path?: string, search?: string, hash?: string, replace?: boolean }) {\n\tconst url = (path !== undefined ? cleanUrl(path) : location.pathname)\n\t\t+ (search !== undefined ? (search.startsWith('?') || search.length === 0 ? search : '?' + search) : location.search)\n\t\t+ (hash !== undefined ? (hash.startsWith('#') ? hash : '#' + hash) : location.hash)\n\troute(url, replace)\n}\n\nexport function parseFrontMatter(source: string): Record {\n\tconst data = yaml.load(source.substring(3, source.indexOf('---', 3)))\n\tif (!isObject(data)) return {}\n\treturn data\n}\n\nexport function versionContent(content: string, version: string) {\n\tlet cursor = 0\n\twhile (true) {\n\t\tconst start = content.indexOf('{#', cursor)\n\t\tif (start < 0) {\n\t\t\tbreak\n\t\t}\n\t\tconst end = findMatchingClose(content, start + 2)\n\t\tconst vStart = content.indexOf('#[', start + 1)\n\t\tlet sub = ''\n\t\tif (vStart >= 0 && vStart < end) {\n\t\t\tconst vEnd = content.indexOf(']', vStart + 2)\n\t\t\tconst v = content.substring(vStart + 2, vEnd)\n\t\t\tif (v === version) {\n\t\t\t\tsub = content.substring(vEnd + 1, end).trim()\n\t\t\t}\n\t\t} else {\n\t\t\tconst key = content.substring(start + 2, end)\n\t\t\tconst versionConfig = config.versions.find(v => v.id === version)\n\t\t\tsub = ({\n\t\t\t\tversion: versionConfig?.id,\n\t\t\t\tpack_format: versionConfig?.pack_format.toString(),\n\t\t\t} as Record)[key] ?? ''\n\t\t}\n\t\tcontent = content.substring(0, start) + sub + content.substring(end + 2)\n\t\tcursor = start\n\t\t\n\t}\n\treturn content\n}\n\nfunction findMatchingClose(source: string, index: number) {\n\tlet depth = 0\n\tlet iteration = 0\n\twhile (iteration++ < 1000) {\n\t\tconst close = source.indexOf('#}', index)\n\t\tconst open = source.indexOf('{#', index)\n\t\tif (close < 0) {\n\t\t\tconsole.warn('Missing closing bracket')\n\t\t\treturn source.length\n\t\t}\n\t\tif (open < 0) {\n\t\t\tif (depth === 0) {\n\t\t\t\treturn close\n\t\t\t} else {\n\t\t\t\tdepth -= 1\n\t\t\t\tindex = close + 2\n\t\t\t}\n\t\t} else if (open < close) {\n\t\t\tdepth += 1\n\t\t\tindex = open + 2\n\t\t} else if (depth === 0) {\n\t\t\treturn close\n\t\t} else {\n\t\t\tdepth -= 1\n\t\t\tindex = close + 2\n\t\t}\n\t}\n\tconsole.warn('Exceeded max iterations while finding closing bracket')\n\treturn source.length\n}\n\nexport function stringToColor(str: string): [number, number, number] {\n\tconst h = Math.abs(hashString(str))\n\treturn [h % 256, (h >> 8) % 256, (h >> 16) % 256]\n}\n\nexport function square(a: number) {\n\treturn a * a\n}\n\nexport function clamp(a: number, b: number, c: number) {\n\treturn Math.max(a, Math.min(b, c))\n}\n\nexport function clampedLerp(a: number, b: number, c: number): number {\n\tif (c < 0) {\n\t\treturn a\n\t} else if (c > 1) {\n\t\treturn b\n\t} else {\n\t\treturn lerp(c, a, b)\n\t}\n}\n\nexport function lerp(a: number, b: number, c: number): number {\n\treturn b + a * (c - b)\n}\n\nexport function lerp2(a: number, b: number, c: number, d: number, e: number, f: number): number {\n\treturn lerp(b, lerp(a, c, d), lerp(a, e, f))\n}\n\nexport function lerp3(a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) {\n\treturn lerp(c, lerp2(a, b, d, e, f, g), lerp2(a, b, h, i, j, k))\n}\n\nexport function smoothstep(x: number): number {\n\treturn x * x * x * (x * (x * 6 - 15) + 10)\n}\n\nexport function message(e: unknown): string {\n\tif (e instanceof Error) return e.message\n\treturn `${e}`\n}\n\nexport const deepClone = rfdc()\n\n/**\n * MIT License\n * \n * Copyright (c) 2017 Evgeny Poberezkin\n * \n * https://github.com/epoberezkin/fast-deep-equal/blob/master/LICENSE\n */\nexport function deepEqual(a: any, b: any) {\n\tif (a === b) return true\n\n\tif (a && b && typeof a == 'object' && typeof b == 'object') {\n\t\tif (a.constructor !== b.constructor) return false\n\t\tlet length, i\n\t\tif (Array.isArray(a)) {\n\t\t\tlength = a.length\n\t\t\tif (length != b.length) return false\n\t\t\tfor (i = 0; i < length; i++) {\n\t\t\t\tif (!deepEqual(a[i], b[i])) return false\n\t\t\t}\n\t\t\treturn true\n\t\t}\n\t\tif (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf()\n\t\tif (a.toString !== Object.prototype.toString) return a.toString() === b.toString()\n\t\tconst keys = Object.keys(a)\n\t\tlength = keys.length\n\t\tif (length !== Object.keys(b).length) return false\n\t\tfor (i = length; i-- !== 0;)\n\t\t\tif (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false\n\t\tfor (i = length; i-- !== 0;) {\n\t\t\tconst key = keys[i]\n\t\t\tif (!deepEqual(a[key], b[key])) return false\n\t\t}\n\t\treturn true\n\t}\n\treturn a !== a && b !== b\n}\n\nexport class BiMap {\n\tprivate readonly forward: Map\n\tprivate readonly backward: Map\n\n\tconstructor() {\n\t\tthis.forward = new Map()\n\t\tthis.backward = new Map()\n\t}\n\n\tpublic set(a: A, b: B) {\n\t\tthis.forward.set(a, b)\n\t\tthis.backward.set(b, a)\n\t}\n\n\tpublic getA(key: B) {\n\t\treturn this.backward.get(key)\n\t}\n\n\tpublic getB(key: A) {\n\t\treturn this.forward.get(key)\n\t}\n\n\tpublic getOrPut(key: A, defaultValue: B) {\n\t\tconst b = this.forward.get(key)\n\t\tif (b === undefined) {\n\t\t\tthis.set(key, defaultValue)\n\t\t\treturn defaultValue\n\t\t}\n\t\treturn b\n\t}\n}\n","import { useEffect, useRef } from 'preact/hooks'\nimport { Octicon } from '.'\nimport { hexId } from '../Utils'\n\ntype BtnInputProps = {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\tlarge?: boolean,\n\tlarger?: boolean,\n\tdoSelect?: number,\n\tvalue?: string,\n\tplaceholder?: string,\n\tdataList?: string[],\n\tonChange?: (value: string) => unknown,\n}\nexport function BtnInput({ icon, label, large, larger, doSelect, value, placeholder, dataList, onChange }: BtnInputProps) {\n\tconst onInput = onChange === undefined ? () => {} : (e: any) => {\n\t\tconst value = (e.target as HTMLInputElement).value\n\t\tonChange?.(value)\n\t}\n\n\tconst ref = useRef(null)\n\tuseEffect(() => {\n\t\tif (doSelect && ref.current) {\n\t\t\tref.current.select()\n\t\t}\n\t}, [doSelect])\n\n\tconst dataListId = dataList && hexId()\n\n\treturn
    e.stopPropagation()}>\n\t\t{icon && Octicon[icon]}\n\t\t{label && {label}}\n\t\t\n\t\t{dataList && \n\t\t\t{dataList.map(e => }\n\t
    \n}\n","import { useRef, useState } from 'preact/hooks'\n\ninterface ActiveTimeoutOptions {\n\tcooldown?: number,\n\tinvert?: boolean,\n\tinitial?: boolean,\n}\nexport function useActiveTimeout({ cooldown, invert, initial }: ActiveTimeoutOptions = {}): [boolean | undefined, () => unknown] {\n\tconst [active, setActive] = useState(initial)\n\tconst timeout = useRef(undefined)\n\n\tconst trigger = () => {\n\t\tsetActive(invert ? false : true)\n\t\tif (timeout.current !== undefined) clearTimeout(timeout.current)\n\t\ttimeout.current = setTimeout(() => {\n\t\t\tsetActive(invert ? true : false)\n\t\t}, cooldown ?? 2000) as any\n\t}\n\n\treturn [active, trigger]\n}\n","import type { Inputs } from 'preact/hooks'\nimport { useEffect, useRef } from 'preact/hooks'\n\ntype Vec2 = [number, number]\n\nexport function useCanvas({ size, draw, onDrag, onHover, onLeave }: {\n\tsize: () => Vec2,\n\tdraw: (img: ImageData) => Promise,\n\tonDrag?: (dx: number, dy: number) => Promise,\n\tonHover?: (x: number, y: number) => unknown,\n\tonLeave?: () => unknown,\n}, inputs?: Inputs) {\n\tconst canvas = useRef(null)\n\n\tconst dragStart = useRef()\n\tconst dragRequest = useRef()\n\tconst dragPending = useRef([0, 0])\n\tconst dragBusy = useRef(false)\n\n\tuseEffect(() => {\n\t\tconst onMouseDown = (e: MouseEvent) => {\n\t\t\tdragStart.current = [e.offsetX, e.offsetY]\n\t\t}\n\t\tconst onMouseMove = (e: MouseEvent) => {\n\t\t\tif (dragStart.current === undefined) {\n\t\t\t\tconst x = e.offsetX / canvas.current.clientWidth\n\t\t\t\tconst y = e.offsetY / canvas.current.clientHeight\n\t\t\t\tonHover?.(x, y)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (!onDrag) return\n\t\t\tconst dx = e.offsetX - dragStart.current[0]\n\t\t\tconst dy = e.offsetY - dragStart.current[1]\n\t\t\tif (!(dx === 0 && dy === 0)) {\n\t\t\t\tdragPending.current = [dragPending.current[0] + dx, dragPending.current[1] + dy]\n\t\t\t\tif (!dragBusy.current) {\n\t\t\t\t\tcancelAnimationFrame(dragRequest.current)\n\t\t\t\t\tdragRequest.current = requestAnimationFrame(async () => {\n\t\t\t\t\t\tdragBusy.current = true\n\t\t\t\t\t\tconst dx = dragPending.current[0] / canvas.current.clientWidth\n\t\t\t\t\t\tconst dy = dragPending.current[1] / canvas.current.clientHeight\n\t\t\t\t\t\tdragPending.current = [0, 0]\n\t\t\t\t\t\tawait onDrag?.(dx, dy)\n\t\t\t\t\t\tdragBusy.current = false\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\tdragStart.current = [e.offsetX, e.offsetY]\n\t\t}\n\t\tconst onMouseUp = () => {\n\t\t\tdragStart.current = undefined\n\t\t}\n\t\tconst onMouseLeave = () => {\n\t\t\tonLeave?.()\n\t\t}\n\n\t\tcanvas.current.addEventListener('mousedown', onMouseDown)\n\t\tcanvas.current.addEventListener('mousemove', onMouseMove)\n\t\tcanvas.current.addEventListener('mouseleave', onMouseLeave)\n\t\tdocument.body.addEventListener('mouseup', onMouseUp)\n\n\t\treturn () => {\n\t\t\tcanvas.current?.removeEventListener('mousedown', onMouseDown)\n\t\t\tcanvas.current?.removeEventListener('mousemove', onMouseMove)\n\t\t\tcanvas.current?.removeEventListener('mouseleave', onMouseLeave)\n\t\t\tdocument.body.removeEventListener('mouseup', onMouseUp)\n\t\t}\n\t}, [...inputs ?? [], canvas.current])\n\n\tconst redraw = useRef<() => Promise>()\n\tconst redrawCount = useRef(0)\n\tredraw.current = async () => {\n\t\tconst ctx = canvas.current.getContext('2d')!\n\t\tconst s = size()\n\t\tcanvas.current.width = s[0]\n\t\tcanvas.current.height = s[1]\n\t\tconst img = ctx.getImageData(0, 0, s[0], s[1])\n\t\tconst ownCount = redrawCount.current += 1\n\t\ttry {\n\t\t\tawait draw(img)\n\t\t} catch (e) {\n\t\t\tthrow e\n\t\t}\n\t\tif (ownCount === redrawCount.current) {\n\t\t\tctx.putImageData(img, 0, 0)\n\t\t}\n\t}\n\n\treturn {\n\t\tcanvas,\n\t\tredraw: redraw.current,\n\t}\n}\n","import { useEffect, useState } from 'preact/hooks'\n\nexport function useFocus(): [boolean, () => unknown] {\n\tconst [active, setActive] = useState(false)\n\n\tconst hider = () => {\n\t\tsetActive(false)\n\t}\n\n\tuseEffect(() => {\n\t\tif (active) {\n\t\t\tdocument.body.addEventListener('click', hider)\n\t\t\tdocument.body.addEventListener('contextmenu', hider)\n\t\t}\n\t\treturn () => {\n\t\t\tdocument.body.removeEventListener('click', hider)\n\t\t\tdocument.body.removeEventListener('contextmenu', hider)\n\t\t}\n\t}, [active])\n\n\treturn [active, () => setActive(true)]\n}\n","import { useCallback, useEffect, useState } from 'preact/hooks'\nimport { changeUrl } from '../Utils'\n\nexport function useHash(): [string, (hash: string) => unknown] {\n\tconst [hash, setHash] = useState(window.location.hash)\n\n\tconst onChange = useCallback(() => {\n\t\tsetHash(window.location.hash)\n\t}, [])\n\n\tuseEffect(() => {\n\t\twindow.addEventListener('hashchange', onChange)\n\t\twindow.addEventListener('replacestate', onChange)\n\t\treturn () => {\n\t\t\twindow.removeEventListener('hashchange', onChange)\n\t\t\twindow.removeEventListener('replacestate', onChange)\n\t\t}\n\t}, [])\n\n\tconst changeHash = useCallback((newHash: string) => {\n\t\tif (newHash !== hash) {\n\t\t\tchangeUrl({ hash: newHash })\n\t\t}\n\t}, [hash])\n\n\treturn [hash, changeHash]\n}\n","import { useEffect, useState } from 'preact/hooks'\n\nexport function useMediaQuery(query: string): boolean {\n\tconst [prefers, setPrefers] = useState(matchMedia(query).matches)\n\n\tconst onChange = (e: MediaQueryListEvent) => {\n\t\tsetPrefers(e.matches)\n\t}\n\n\tuseEffect(() => {\n\t\tconst mediaQuery = matchMedia(query)\n\t\tmediaQuery.addEventListener('change', onChange)\n\t\treturn () => {\n\t\t\tmediaQuery.removeEventListener('change', onChange)\n\t\t}\n\t}, [query])\n\n\treturn prefers\n}\n","import type { DataModel } from '@mcschema/core'\nimport type { Inputs } from 'preact/hooks'\nimport { useEffect } from 'preact/hooks'\n\nexport function useModel(model: DataModel | undefined | null, invalidated: (model: DataModel) => unknown, inputs?: Inputs) {\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, ...inputs ?? []])\n}\n","import { useCallback, useEffect, useState } from 'preact/hooks'\nimport { changeUrl } from '../Utils'\n\nconst getValue = (search: string, param: string) => new URLSearchParams(search).get(param) ?? undefined\n\nexport function useSearchParam(param: string): [string | undefined, (value: string | undefined, replace?: boolean) => unknown] {\n\tconst location = window.location\n\tconst [value, setValue] = useState(getValue(location.search, param))\n\n\tuseEffect(() => {\n\t\tconst onChange = () => {\n\t\t\tsetValue(getValue(location.search, param))\n\t\t}\n\n\t\twindow.addEventListener('popstate', onChange)\n\t\twindow.addEventListener('pushstate', onChange)\n\t\twindow.addEventListener('replacestate', onChange)\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener('popstate', onChange)\n\t\t\twindow.removeEventListener('pushstate', onChange)\n\t\t\twindow.removeEventListener('replacestate', onChange)\n\t\t}\n\t}, [])\n\n\tconst changeValue = useCallback((newValue: string | undefined, replace?: boolean) => {\n\t\tif (newValue !== value) {\n\t\t\tconst params = new URLSearchParams(location.search)\n\t\t\tif (newValue === undefined || newValue.length === 0) {\n\t\t\t\tparams.delete(param)\n\t\t\t} else {\n\t\t\t\tparams.set(param, newValue)\n\t\t\t}\n\t\t\tchangeUrl({ search: params.toString().replaceAll('%7C', '|'), replace })\n\t\t}\n\t}, [value])\n\n\treturn [value, changeValue]\n};\n","import type { ComponentChildren } from 'preact'\nimport type { Octicon } from '.'\nimport { Btn } from '.'\nimport { useFocus } from '../hooks'\n\ninterface BtnMenuProps extends JSX.HTMLAttributes {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\trelative?: boolean,\n\ttooltip?: string,\n\ttooltipLoc?: 'se' | 'sw' | 'nw',\n\tchildren: ComponentChildren,\n}\nexport function BtnMenu(props: BtnMenuProps) {\n\tconst { icon, label, relative, tooltip, tooltipLoc, children } = props\n\tconst [active, setActive] = useFocus()\n\n\treturn
    \n\t\t\n\t\t{active &&
    \n\t\t\t{children}\n\t\t
    }\n\t
    \n}\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"sourceMappedStackTrace\"] = factory();\n\telse\n\t\troot[\"sourceMappedStackTrace\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*\n\t * sourcemapped-stacktrace.js\n\t * created by James Salter (2014)\n\t *\n\t * https://github.com/novocaine/sourcemapped-stacktrace\n\t *\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\t/*global define */\n\n\t// note we only include source-map-consumer, not the whole source-map library,\n\t// which includes gear for generating source maps that we don't need\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_RESULT__ = function(source_map_consumer) {\n\n\t var global_mapForUri = {};\n\n\t /**\n\t * Re-map entries in a stacktrace using sourcemaps if available.\n\t *\n\t * @param {str} stack - The stacktrace from the browser.\n\t * @param {function} done - Callback invoked with the transformed stacktrace\n\t * (an Array of Strings) passed as the first\n\t * argument\n\t * @param {Object} [opts] - Optional options object.\n\t * @param {Function} [opts.filter] - Filter function applied to each stackTrace line.\n\t * Lines which do not pass the filter won't be processesd.\n\t * @param {boolean} [opts.cacheGlobally] - Whether to cache sourcemaps globally across multiple calls.\n\t * @param {boolean} [opts.sync] - Whether to use synchronous ajax to load the sourcemaps.\n\t * @param {string} [opts.traceFormat] - If `error.stack` is formatted according to chrome or\n\t * Firefox's style. Can be either `\"chrome\"`, `\"firefox\"`\n\t * or `undefined` (default). If `undefined`, this library\n\t * will guess based on `navigator.userAgent`.\n\t */\n\t var mapStackTrace = function(stack, done, opts) {\n\t var lines;\n\t var line;\n\t var mapForUri = {};\n\t var rows = {};\n\t var fields;\n\t var uri;\n\t var expected_fields;\n\t var regex;\n\t var skip_lines;\n\n\t var fetcher = new Fetcher(opts);\n\n\t var traceFormat = opts && opts.traceFormat;\n\t if (traceFormat !== \"chrome\" && traceFormat !== \"firefox\") {\n\t if (traceFormat) {\n\t throw new Error(\"unknown traceFormat \\\"\" + traceFormat + \"\\\" :(\");\n\t } else if (isChromeOrEdge() || isIE11Plus()) {\n\t traceFormat = \"chrome\";\n\t } else if (isFirefox() || isSafari()) {\n\t traceFormat = \"firefox\";\n\t } else {\n\t throw new Error(\"unknown browser :(\");\n\t }\n\t }\n\n\t if (traceFormat === \"chrome\") {\n\t regex = /^ +at.+\\((.*):([0-9]+):([0-9]+)/;\n\t expected_fields = 4;\n\t // (skip first line containing exception message)\n\t skip_lines = 1;\n\t } else {\n\t regex = /@(.*):([0-9]+):([0-9]+)/;\n\t expected_fields = 4;\n\t skip_lines = 0;\n\t }\n\n\t lines = stack.split(\"\\n\").slice(skip_lines);\n\n\t for (var i=0; i < lines.length; i++) {\n\t line = lines[i];\n\t if ( opts && opts.filter && !opts.filter(line) ) continue;\n\t \n\t fields = line.match(regex);\n\t if (fields && fields.length === expected_fields) {\n\t rows[i] = fields;\n\t uri = fields[1];\n\t if (!uri.match(//)) {\n\t fetcher.fetchScript(uri);\n\t }\n\t }\n\t }\n\n\t fetcher.sem.whenReady(function() {\n\t var result = processSourceMaps(lines, rows, fetcher.mapForUri, traceFormat);\n\t done(result);\n\t });\n\t };\n\n\t var isChromeOrEdge = function() {\n\t return navigator.userAgent.toLowerCase().indexOf('chrome') > -1;\n\t };\n\n\t var isFirefox = function() {\n\t return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n\t }; \n\n\t var isSafari = function() {\n\t return navigator.userAgent.toLowerCase().indexOf('safari') > -1;\n\t };\n\t\t\t\n\t var isIE11Plus = function() {\n\t \treturn document.documentMode && document.documentMode >= 11;\n\t };\n\n\n\t var Semaphore = function() {\n\t this.count = 0;\n\t this.pending = [];\n\t };\n\n\t Semaphore.prototype.incr = function() {\n\t this.count++;\n\t };\n\n\t Semaphore.prototype.decr = function() {\n\t this.count--;\n\t this.flush();\n\t };\n\n\t Semaphore.prototype.whenReady = function(fn) {\n\t this.pending.push(fn);\n\t this.flush();\n\t };\n\n\t Semaphore.prototype.flush = function() {\n\t if (this.count === 0) {\n\t this.pending.forEach(function(fn) { fn(); });\n\t this.pending = [];\n\t }\n\t };\n\n\n\t var Fetcher = function(opts) {\n\t this.sem = new Semaphore();\n\t this.sync = opts && opts.sync;\n\t this.mapForUri = opts && opts.cacheGlobally ? global_mapForUri : {};\n\t };\n\n\t Fetcher.prototype.ajax = function(uri, callback) {\n\t var xhr = createXMLHTTPObject();\n\t var that = this;\n\t xhr.onreadystatechange = function() {\n\t if (xhr.readyState == 4) {\n\t callback.call(that, xhr, uri);\n\t }\n\t };\n\t xhr.open(\"GET\", uri, !this.sync);\n\t xhr.send();\n\t }\n\n\t Fetcher.prototype.fetchScript = function(uri) {\n\t if (!(uri in this.mapForUri)) {\n\t this.sem.incr();\n\t this.mapForUri[uri] = null;\n\t } else {\n\t return;\n\t }\n\n\t this.ajax(uri, this.onScriptLoad);\n\t };\n\n\t var absUrlRegex = new RegExp('^(?:[a-z]+:)?//', 'i');\n\n\t Fetcher.prototype.onScriptLoad = function(xhr, uri) {\n\t if (xhr.status === 200 || (uri.slice(0, 7) === \"file://\" && xhr.status === 0)) {\n\t // find .map in file.\n\t //\n\t // attempt to find it at the very end of the file, but tolerate trailing\n\t // whitespace inserted by some packers.\n\t var match = xhr.responseText.match(\"//# [s]ourceMappingURL=(.*)[\\\\s]*$\", \"m\");\n\t if (match && match.length === 2) {\n\t // get the map\n\t var mapUri = match[1];\n\n\t var embeddedSourceMap = mapUri.match(\"data:application/json;(charset=[^;]+;)?base64,(.*)\");\n\n\t if (embeddedSourceMap && embeddedSourceMap[2]) {\n\t this.mapForUri[uri] = new source_map_consumer.SourceMapConsumer(atob(embeddedSourceMap[2]));\n\t this.sem.decr();\n\t } else {\n\t if (!absUrlRegex.test(mapUri)) {\n\t // relative url; according to sourcemaps spec is 'source origin'\n\t var origin;\n\t var lastSlash = uri.lastIndexOf('/');\n\t if (lastSlash !== -1) {\n\t origin = uri.slice(0, lastSlash + 1);\n\t mapUri = origin + mapUri;\n\t // note if lastSlash === -1, actual script uri has no slash\n\t // somehow, so no way to use it as a prefix... we give up and try\n\t // as absolute\n\t }\n\t }\n\n\t this.ajax(mapUri, function(xhr) {\n\t if (xhr.status === 200 || (mapUri.slice(0, 7) === \"file://\" && xhr.status === 0)) {\n\t this.mapForUri[uri] = new source_map_consumer.SourceMapConsumer(xhr.responseText);\n\t }\n\t this.sem.decr();\n\t });\n\t }\n\t } else {\n\t // no map\n\t this.sem.decr();\n\t }\n\t } else {\n\t // HTTP error fetching uri of the script\n\t this.sem.decr();\n\t }\n\t };\n\n\t var processSourceMaps = function(lines, rows, mapForUri, traceFormat) {\n\t var result = [];\n\t var map;\n\t var origName = traceFormat === \"chrome\" ? origNameChrome : origNameFirefox;\n\t for (var i=0; i < lines.length; i++) {\n\t var row = rows[i];\n\t if (row) {\n\t var uri = row[1];\n\t var line = parseInt(row[2], 10);\n\t var column = parseInt(row[3], 10);\n\t map = mapForUri[uri];\n\n\t if (map) {\n\t // we think we have a map for that uri. call source-map library\n\t var origPos = map.originalPositionFor(\n\t { line: line, column: column });\n\t result.push(formatOriginalPosition(origPos.source,\n\t origPos.line, origPos.column, origPos.name || origName(lines[i])));\n\t } else {\n\t // we can't find a map for that url, but we parsed the row.\n\t // reformat unchanged line for consistency with the sourcemapped\n\t // lines.\n\t result.push(formatOriginalPosition(uri, line, column, origName(lines[i])));\n\t }\n\t } else {\n\t // we weren't able to parse the row, push back what we were given\n\t result.push(lines[i]);\n\t }\n\t }\n\n\t return result;\n\t };\n\n\t function origNameChrome(origLine) {\n\t var match = / +at +([^ ]*).*/.exec(origLine);\n\t return match && match[1];\n\t }\n\n\t function origNameFirefox(origLine) {\n\t var match = /([^@]*)@.*/.exec(origLine);\n\t return match && match[1];\n\t }\n\n\t var formatOriginalPosition = function(source, line, column, name) {\n\t // mimic chrome's format\n\t return \" at \" + (name ? name : \"(unknown)\") +\n\t \" (\" + source + \":\" + line + \":\" + column + \")\";\n\t };\n\n\t // xmlhttprequest boilerplate\n\t var XMLHttpFactories = [\n\t\tfunction () {return new XMLHttpRequest();},\n\t\tfunction () {return new ActiveXObject(\"Msxml2.XMLHTTP\");},\n\t\tfunction () {return new ActiveXObject(\"Msxml3.XMLHTTP\");},\n\t\tfunction () {return new ActiveXObject(\"Microsoft.XMLHTTP\");}\n\t ];\n\n\t function createXMLHTTPObject() {\n\t var xmlhttp = false;\n\t for (var i=0;i= 0) {\n\t var mapping = this._originalMappings[index];\n\n\t if (aArgs.column === undefined) {\n\t var originalLine = mapping.originalLine;\n\n\t // Iterate until either we run out of mappings, or we run into\n\t // a mapping for a different line than the one we found. Since\n\t // mappings are sorted, this is guaranteed to find all mappings for\n\t // the line we found.\n\t while (mapping && mapping.originalLine === originalLine) {\n\t mappings.push({\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t });\n\n\t mapping = this._originalMappings[++index];\n\t }\n\t } else {\n\t var originalColumn = mapping.originalColumn;\n\n\t // Iterate until either we run out of mappings, or we run into\n\t // a mapping for a different line than the one we were searching for.\n\t // Since mappings are sorted, this is guaranteed to find all mappings for\n\t // the line we are searching for.\n\t while (mapping &&\n\t mapping.originalLine === line &&\n\t mapping.originalColumn == originalColumn) {\n\t mappings.push({\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t });\n\n\t mapping = this._originalMappings[++index];\n\t }\n\t }\n\t }\n\n\t return mappings;\n\t };\n\n\texports.SourceMapConsumer = SourceMapConsumer;\n\n\t/**\n\t * A BasicSourceMapConsumer instance represents a parsed source map which we can\n\t * query for information about the original file positions by giving it a file\n\t * position in the generated source.\n\t *\n\t * The only parameter is the raw source map (either as a JSON string, or\n\t * already parsed to an object). According to the spec, source maps have the\n\t * following attributes:\n\t *\n\t * - version: Which version of the source map spec this map is following.\n\t * - sources: An array of URLs to the original source files.\n\t * - names: An array of identifiers which can be referrenced by individual mappings.\n\t * - sourceRoot: Optional. The URL root from which all sources are relative.\n\t * - sourcesContent: Optional. An array of contents of the original source files.\n\t * - mappings: A string of base64 VLQs which contain the actual mappings.\n\t * - file: Optional. The generated file this source map is associated with.\n\t *\n\t * Here is an example source map, taken from the source map spec[0]:\n\t *\n\t * {\n\t * version : 3,\n\t * file: \"out.js\",\n\t * sourceRoot : \"\",\n\t * sources: [\"foo.js\", \"bar.js\"],\n\t * names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t * mappings: \"AA,AB;;ABCDE;\"\n\t * }\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n\t */\n\tfunction BasicSourceMapConsumer(aSourceMap) {\n\t var sourceMap = aSourceMap;\n\t if (typeof aSourceMap === 'string') {\n\t sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t }\n\n\t var version = util.getArg(sourceMap, 'version');\n\t var sources = util.getArg(sourceMap, 'sources');\n\t // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n\t // requires the array) to play nice here.\n\t var names = util.getArg(sourceMap, 'names', []);\n\t var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n\t var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n\t var mappings = util.getArg(sourceMap, 'mappings');\n\t var file = util.getArg(sourceMap, 'file', null);\n\n\t // Once again, Sass deviates from the spec and supplies the version as a\n\t // string rather than a number, so we use loose equality checking here.\n\t if (version != this._version) {\n\t throw new Error('Unsupported version: ' + version);\n\t }\n\n\t sources = sources\n\t .map(String)\n\t // Some source maps produce relative source paths like \"./foo.js\" instead of\n\t // \"foo.js\". Normalize these first so that future comparisons will succeed.\n\t // See bugzil.la/1090768.\n\t .map(util.normalize)\n\t // Always ensure that absolute sources are internally stored relative to\n\t // the source root, if the source root is absolute. Not doing this would\n\t // be particularly problematic when the source root is a prefix of the\n\t // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n\t .map(function (source) {\n\t return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n\t ? util.relative(sourceRoot, source)\n\t : source;\n\t });\n\n\t // Pass `true` below to allow duplicate names and sources. While source maps\n\t // are intended to be compressed and deduplicated, the TypeScript compiler\n\t // sometimes generates source maps with duplicates in them. See Github issue\n\t // #72 and bugzil.la/889492.\n\t this._names = ArraySet.fromArray(names.map(String), true);\n\t this._sources = ArraySet.fromArray(sources, true);\n\n\t this.sourceRoot = sourceRoot;\n\t this.sourcesContent = sourcesContent;\n\t this._mappings = mappings;\n\t this.file = file;\n\t}\n\n\tBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n\t/**\n\t * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n\t *\n\t * @param SourceMapGenerator aSourceMap\n\t * The source map that will be consumed.\n\t * @returns BasicSourceMapConsumer\n\t */\n\tBasicSourceMapConsumer.fromSourceMap =\n\t function SourceMapConsumer_fromSourceMap(aSourceMap) {\n\t var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n\t var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n\t var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n\t smc.sourceRoot = aSourceMap._sourceRoot;\n\t smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n\t smc.sourceRoot);\n\t smc.file = aSourceMap._file;\n\n\t // Because we are modifying the entries (by converting string sources and\n\t // names to indices into the sources and names ArraySets), we have to make\n\t // a copy of the entry or else bad things happen. Shared mutable state\n\t // strikes again! See github issue #191.\n\n\t var generatedMappings = aSourceMap._mappings.toArray().slice();\n\t var destGeneratedMappings = smc.__generatedMappings = [];\n\t var destOriginalMappings = smc.__originalMappings = [];\n\n\t for (var i = 0, length = generatedMappings.length; i < length; i++) {\n\t var srcMapping = generatedMappings[i];\n\t var destMapping = new Mapping;\n\t destMapping.generatedLine = srcMapping.generatedLine;\n\t destMapping.generatedColumn = srcMapping.generatedColumn;\n\n\t if (srcMapping.source) {\n\t destMapping.source = sources.indexOf(srcMapping.source);\n\t destMapping.originalLine = srcMapping.originalLine;\n\t destMapping.originalColumn = srcMapping.originalColumn;\n\n\t if (srcMapping.name) {\n\t destMapping.name = names.indexOf(srcMapping.name);\n\t }\n\n\t destOriginalMappings.push(destMapping);\n\t }\n\n\t destGeneratedMappings.push(destMapping);\n\t }\n\n\t quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n\t return smc;\n\t };\n\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tBasicSourceMapConsumer.prototype._version = 3;\n\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n\t get: function () {\n\t return this._sources.toArray().map(function (s) {\n\t return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;\n\t }, this);\n\t }\n\t});\n\n\t/**\n\t * Provide the JIT with a nice shape / hidden class.\n\t */\n\tfunction Mapping() {\n\t this.generatedLine = 0;\n\t this.generatedColumn = 0;\n\t this.source = null;\n\t this.originalLine = null;\n\t this.originalColumn = null;\n\t this.name = null;\n\t}\n\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tBasicSourceMapConsumer.prototype._parseMappings =\n\t function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t var generatedLine = 1;\n\t var previousGeneratedColumn = 0;\n\t var previousOriginalLine = 0;\n\t var previousOriginalColumn = 0;\n\t var previousSource = 0;\n\t var previousName = 0;\n\t var length = aStr.length;\n\t var index = 0;\n\t var cachedSegments = {};\n\t var temp = {};\n\t var originalMappings = [];\n\t var generatedMappings = [];\n\t var mapping, str, segment, end, value;\n\n\t while (index < length) {\n\t if (aStr.charAt(index) === ';') {\n\t generatedLine++;\n\t index++;\n\t previousGeneratedColumn = 0;\n\t }\n\t else if (aStr.charAt(index) === ',') {\n\t index++;\n\t }\n\t else {\n\t mapping = new Mapping();\n\t mapping.generatedLine = generatedLine;\n\n\t // Because each offset is encoded relative to the previous one,\n\t // many segments often have the same encoding. We can exploit this\n\t // fact by caching the parsed variable length fields of each segment,\n\t // allowing us to avoid a second parse if we encounter the same\n\t // segment again.\n\t for (end = index; end < length; end++) {\n\t if (this._charIsMappingSeparator(aStr, end)) {\n\t break;\n\t }\n\t }\n\t str = aStr.slice(index, end);\n\n\t segment = cachedSegments[str];\n\t if (segment) {\n\t index += str.length;\n\t } else {\n\t segment = [];\n\t while (index < end) {\n\t base64VLQ.decode(aStr, index, temp);\n\t value = temp.value;\n\t index = temp.rest;\n\t segment.push(value);\n\t }\n\n\t if (segment.length === 2) {\n\t throw new Error('Found a source, but no line and column');\n\t }\n\n\t if (segment.length === 3) {\n\t throw new Error('Found a source and line, but no column');\n\t }\n\n\t cachedSegments[str] = segment;\n\t }\n\n\t // Generated column.\n\t mapping.generatedColumn = previousGeneratedColumn + segment[0];\n\t previousGeneratedColumn = mapping.generatedColumn;\n\n\t if (segment.length > 1) {\n\t // Original source.\n\t mapping.source = previousSource + segment[1];\n\t previousSource += segment[1];\n\n\t // Original line.\n\t mapping.originalLine = previousOriginalLine + segment[2];\n\t previousOriginalLine = mapping.originalLine;\n\t // Lines are stored 0-based\n\t mapping.originalLine += 1;\n\n\t // Original column.\n\t mapping.originalColumn = previousOriginalColumn + segment[3];\n\t previousOriginalColumn = mapping.originalColumn;\n\n\t if (segment.length > 4) {\n\t // Original name.\n\t mapping.name = previousName + segment[4];\n\t previousName += segment[4];\n\t }\n\t }\n\n\t generatedMappings.push(mapping);\n\t if (typeof mapping.originalLine === 'number') {\n\t originalMappings.push(mapping);\n\t }\n\t }\n\t }\n\n\t quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t this.__generatedMappings = generatedMappings;\n\n\t quickSort(originalMappings, util.compareByOriginalPositions);\n\t this.__originalMappings = originalMappings;\n\t };\n\n\t/**\n\t * Find the mapping that best matches the hypothetical \"needle\" mapping that\n\t * we are searching for in the given \"haystack\" of mappings.\n\t */\n\tBasicSourceMapConsumer.prototype._findMapping =\n\t function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n\t aColumnName, aComparator, aBias) {\n\t // To return the position we are searching for, we must first find the\n\t // mapping for the given position and then return the opposite position it\n\t // points to. Because the mappings are sorted, we can use binary search to\n\t // find the best mapping.\n\n\t if (aNeedle[aLineName] <= 0) {\n\t throw new TypeError('Line must be greater than or equal to 1, got '\n\t + aNeedle[aLineName]);\n\t }\n\t if (aNeedle[aColumnName] < 0) {\n\t throw new TypeError('Column must be greater than or equal to 0, got '\n\t + aNeedle[aColumnName]);\n\t }\n\n\t return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n\t };\n\n\t/**\n\t * Compute the last column for each generated mapping. The last column is\n\t * inclusive.\n\t */\n\tBasicSourceMapConsumer.prototype.computeColumnSpans =\n\t function SourceMapConsumer_computeColumnSpans() {\n\t for (var index = 0; index < this._generatedMappings.length; ++index) {\n\t var mapping = this._generatedMappings[index];\n\n\t // Mappings do not contain a field for the last generated columnt. We\n\t // can come up with an optimistic estimate, however, by assuming that\n\t // mappings are contiguous (i.e. given two consecutive mappings, the\n\t // first mapping ends where the second one starts).\n\t if (index + 1 < this._generatedMappings.length) {\n\t var nextMapping = this._generatedMappings[index + 1];\n\n\t if (mapping.generatedLine === nextMapping.generatedLine) {\n\t mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n\t continue;\n\t }\n\t }\n\n\t // The last mapping for each line spans the entire line.\n\t mapping.lastGeneratedColumn = Infinity;\n\t }\n\t };\n\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t * - line: The line number in the generated source.\n\t * - column: The column number in the generated source.\n\t * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - source: The original source file, or null.\n\t * - line: The line number in the original source, or null.\n\t * - column: The column number in the original source, or null.\n\t * - name: The original identifier, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.originalPositionFor =\n\t function SourceMapConsumer_originalPositionFor(aArgs) {\n\t var needle = {\n\t generatedLine: util.getArg(aArgs, 'line'),\n\t generatedColumn: util.getArg(aArgs, 'column')\n\t };\n\n\t var index = this._findMapping(\n\t needle,\n\t this._generatedMappings,\n\t \"generatedLine\",\n\t \"generatedColumn\",\n\t util.compareByGeneratedPositionsDeflated,\n\t util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t );\n\n\t if (index >= 0) {\n\t var mapping = this._generatedMappings[index];\n\n\t if (mapping.generatedLine === needle.generatedLine) {\n\t var source = util.getArg(mapping, 'source', null);\n\t if (source !== null) {\n\t source = this._sources.at(source);\n\t if (this.sourceRoot != null) {\n\t source = util.join(this.sourceRoot, source);\n\t }\n\t }\n\t var name = util.getArg(mapping, 'name', null);\n\t if (name !== null) {\n\t name = this._names.at(name);\n\t }\n\t return {\n\t source: source,\n\t line: util.getArg(mapping, 'originalLine', null),\n\t column: util.getArg(mapping, 'originalColumn', null),\n\t name: name\n\t };\n\t }\n\t }\n\n\t return {\n\t source: null,\n\t line: null,\n\t column: null,\n\t name: null\n\t };\n\t };\n\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t function BasicSourceMapConsumer_hasContentsOfAllSources() {\n\t if (!this.sourcesContent) {\n\t return false;\n\t }\n\t return this.sourcesContent.length >= this._sources.size() &&\n\t !this.sourcesContent.some(function (sc) { return sc == null; });\n\t };\n\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tBasicSourceMapConsumer.prototype.sourceContentFor =\n\t function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t if (!this.sourcesContent) {\n\t return null;\n\t }\n\n\t if (this.sourceRoot != null) {\n\t aSource = util.relative(this.sourceRoot, aSource);\n\t }\n\n\t if (this._sources.has(aSource)) {\n\t return this.sourcesContent[this._sources.indexOf(aSource)];\n\t }\n\n\t var url;\n\t if (this.sourceRoot != null\n\t && (url = util.urlParse(this.sourceRoot))) {\n\t // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n\t // many users. We can help them out when they expect file:// URIs to\n\t // behave like it would if they were running a local HTTP server. See\n\t // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n\t var fileUriAbsPath = aSource.replace(/^file:\\/\\//, \"\");\n\t if (url.scheme == \"file\"\n\t && this._sources.has(fileUriAbsPath)) {\n\t return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n\t }\n\n\t if ((!url.path || url.path == \"/\")\n\t && this._sources.has(\"/\" + aSource)) {\n\t return this.sourcesContent[this._sources.indexOf(\"/\" + aSource)];\n\t }\n\t }\n\n\t // This function is used recursively from\n\t // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n\t // don't want to throw if we can't find the source - we just want to\n\t // return null, so we provide a flag to exit gracefully.\n\t if (nullOnMissing) {\n\t return null;\n\t }\n\t else {\n\t throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t }\n\t };\n\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t * - source: The filename of the original source.\n\t * - line: The line number in the original source.\n\t * - column: The column number in the original source.\n\t * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - line: The line number in the generated source, or null.\n\t * - column: The column number in the generated source, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.generatedPositionFor =\n\t function SourceMapConsumer_generatedPositionFor(aArgs) {\n\t var source = util.getArg(aArgs, 'source');\n\t if (this.sourceRoot != null) {\n\t source = util.relative(this.sourceRoot, source);\n\t }\n\t if (!this._sources.has(source)) {\n\t return {\n\t line: null,\n\t column: null,\n\t lastColumn: null\n\t };\n\t }\n\t source = this._sources.indexOf(source);\n\n\t var needle = {\n\t source: source,\n\t originalLine: util.getArg(aArgs, 'line'),\n\t originalColumn: util.getArg(aArgs, 'column')\n\t };\n\n\t var index = this._findMapping(\n\t needle,\n\t this._originalMappings,\n\t \"originalLine\",\n\t \"originalColumn\",\n\t util.compareByOriginalPositions,\n\t util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t );\n\n\t if (index >= 0) {\n\t var mapping = this._originalMappings[index];\n\n\t if (mapping.source === needle.source) {\n\t return {\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t };\n\t }\n\t }\n\n\t return {\n\t line: null,\n\t column: null,\n\t lastColumn: null\n\t };\n\t };\n\n\texports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n\t/**\n\t * An IndexedSourceMapConsumer instance represents a parsed source map which\n\t * we can query for information. It differs from BasicSourceMapConsumer in\n\t * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n\t * input.\n\t *\n\t * The only parameter is a raw source map (either as a JSON string, or already\n\t * parsed to an object). According to the spec for indexed source maps, they\n\t * have the following attributes:\n\t *\n\t * - version: Which version of the source map spec this map is following.\n\t * - file: Optional. The generated file this source map is associated with.\n\t * - sections: A list of section definitions.\n\t *\n\t * Each value under the \"sections\" field has two fields:\n\t * - offset: The offset into the original specified at which this section\n\t * begins to apply, defined as an object with a \"line\" and \"column\"\n\t * field.\n\t * - map: A source map definition. This source map could also be indexed,\n\t * but doesn't have to be.\n\t *\n\t * Instead of the \"map\" field, it's also possible to have a \"url\" field\n\t * specifying a URL to retrieve a source map from, but that's currently\n\t * unsupported.\n\t *\n\t * Here's an example source map, taken from the source map spec[0], but\n\t * modified to omit a section which uses the \"url\" field.\n\t *\n\t * {\n\t * version : 3,\n\t * file: \"app.js\",\n\t * sections: [{\n\t * offset: {line:100, column:10},\n\t * map: {\n\t * version : 3,\n\t * file: \"section.js\",\n\t * sources: [\"foo.js\", \"bar.js\"],\n\t * names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t * mappings: \"AAAA,E;;ABCDE;\"\n\t * }\n\t * }],\n\t * }\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n\t */\n\tfunction IndexedSourceMapConsumer(aSourceMap) {\n\t var sourceMap = aSourceMap;\n\t if (typeof aSourceMap === 'string') {\n\t sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t }\n\n\t var version = util.getArg(sourceMap, 'version');\n\t var sections = util.getArg(sourceMap, 'sections');\n\n\t if (version != this._version) {\n\t throw new Error('Unsupported version: ' + version);\n\t }\n\n\t this._sources = new ArraySet();\n\t this._names = new ArraySet();\n\n\t var lastOffset = {\n\t line: -1,\n\t column: 0\n\t };\n\t this._sections = sections.map(function (s) {\n\t if (s.url) {\n\t // The url field will require support for asynchronicity.\n\t // See https://github.com/mozilla/source-map/issues/16\n\t throw new Error('Support for url field in sections not implemented.');\n\t }\n\t var offset = util.getArg(s, 'offset');\n\t var offsetLine = util.getArg(offset, 'line');\n\t var offsetColumn = util.getArg(offset, 'column');\n\n\t if (offsetLine < lastOffset.line ||\n\t (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n\t throw new Error('Section offsets must be ordered and non-overlapping.');\n\t }\n\t lastOffset = offset;\n\n\t return {\n\t generatedOffset: {\n\t // The offset fields are 0-based, but we use 1-based indices when\n\t // encoding/decoding from VLQ.\n\t generatedLine: offsetLine + 1,\n\t generatedColumn: offsetColumn + 1\n\t },\n\t consumer: new SourceMapConsumer(util.getArg(s, 'map'))\n\t }\n\t });\n\t}\n\n\tIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tIndexedSourceMapConsumer.prototype._version = 3;\n\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n\t get: function () {\n\t var sources = [];\n\t for (var i = 0; i < this._sections.length; i++) {\n\t for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n\t sources.push(this._sections[i].consumer.sources[j]);\n\t }\n\t }\n\t return sources;\n\t }\n\t});\n\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t * - line: The line number in the generated source.\n\t * - column: The column number in the generated source.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - source: The original source file, or null.\n\t * - line: The line number in the original source, or null.\n\t * - column: The column number in the original source, or null.\n\t * - name: The original identifier, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.originalPositionFor =\n\t function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n\t var needle = {\n\t generatedLine: util.getArg(aArgs, 'line'),\n\t generatedColumn: util.getArg(aArgs, 'column')\n\t };\n\n\t // Find the section containing the generated position we're trying to map\n\t // to an original position.\n\t var sectionIndex = binarySearch.search(needle, this._sections,\n\t function(needle, section) {\n\t var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n\t if (cmp) {\n\t return cmp;\n\t }\n\n\t return (needle.generatedColumn -\n\t section.generatedOffset.generatedColumn);\n\t });\n\t var section = this._sections[sectionIndex];\n\n\t if (!section) {\n\t return {\n\t source: null,\n\t line: null,\n\t column: null,\n\t name: null\n\t };\n\t }\n\n\t return section.consumer.originalPositionFor({\n\t line: needle.generatedLine -\n\t (section.generatedOffset.generatedLine - 1),\n\t column: needle.generatedColumn -\n\t (section.generatedOffset.generatedLine === needle.generatedLine\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0),\n\t bias: aArgs.bias\n\t });\n\t };\n\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n\t return this._sections.every(function (s) {\n\t return s.consumer.hasContentsOfAllSources();\n\t });\n\t };\n\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tIndexedSourceMapConsumer.prototype.sourceContentFor =\n\t function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\n\t var content = section.consumer.sourceContentFor(aSource, true);\n\t if (content) {\n\t return content;\n\t }\n\t }\n\t if (nullOnMissing) {\n\t return null;\n\t }\n\t else {\n\t throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t }\n\t };\n\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t * - source: The filename of the original source.\n\t * - line: The line number in the original source.\n\t * - column: The column number in the original source.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - line: The line number in the generated source, or null.\n\t * - column: The column number in the generated source, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.generatedPositionFor =\n\t function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\n\t // Only consider this section if the requested source is in the list of\n\t // sources of the consumer.\n\t if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {\n\t continue;\n\t }\n\t var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n\t if (generatedPosition) {\n\t var ret = {\n\t line: generatedPosition.line +\n\t (section.generatedOffset.generatedLine - 1),\n\t column: generatedPosition.column +\n\t (section.generatedOffset.generatedLine === generatedPosition.line\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0)\n\t };\n\t return ret;\n\t }\n\t }\n\n\t return {\n\t line: null,\n\t column: null\n\t };\n\t };\n\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tIndexedSourceMapConsumer.prototype._parseMappings =\n\t function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t this.__generatedMappings = [];\n\t this.__originalMappings = [];\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\t var sectionMappings = section.consumer._generatedMappings;\n\t for (var j = 0; j < sectionMappings.length; j++) {\n\t var mapping = sectionMappings[j];\n\n\t var source = section.consumer._sources.at(mapping.source);\n\t if (section.consumer.sourceRoot !== null) {\n\t source = util.join(section.consumer.sourceRoot, source);\n\t }\n\t this._sources.add(source);\n\t source = this._sources.indexOf(source);\n\n\t var name = section.consumer._names.at(mapping.name);\n\t this._names.add(name);\n\t name = this._names.indexOf(name);\n\n\t // The mappings coming from the consumer for the section have\n\t // generated positions relative to the start of the section, so we\n\t // need to offset them to be relative to the start of the concatenated\n\t // generated file.\n\t var adjustedMapping = {\n\t source: source,\n\t generatedLine: mapping.generatedLine +\n\t (section.generatedOffset.generatedLine - 1),\n\t generatedColumn: mapping.generatedColumn +\n\t (section.generatedOffset.generatedLine === mapping.generatedLine\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0),\n\t originalLine: mapping.originalLine,\n\t originalColumn: mapping.originalColumn,\n\t name: name\n\t };\n\n\t this.__generatedMappings.push(adjustedMapping);\n\t if (typeof adjustedMapping.originalLine === 'number') {\n\t this.__originalMappings.push(adjustedMapping);\n\t }\n\t }\n\t }\n\n\t quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t quickSort(this.__originalMappings, util.compareByOriginalPositions);\n\t };\n\n\texports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\t/**\n\t * This is a helper function for getting values from parameter/options\n\t * objects.\n\t *\n\t * @param args The object we are extracting values from\n\t * @param name The name of the property we are getting.\n\t * @param defaultValue An optional value to return if the property is missing\n\t * from the object. If this is not specified and the property is missing, an\n\t * error will be thrown.\n\t */\n\tfunction getArg(aArgs, aName, aDefaultValue) {\n\t if (aName in aArgs) {\n\t return aArgs[aName];\n\t } else if (arguments.length === 3) {\n\t return aDefaultValue;\n\t } else {\n\t throw new Error('\"' + aName + '\" is a required argument.');\n\t }\n\t}\n\texports.getArg = getArg;\n\n\tvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.]*)(?::(\\d+))?(\\S*)$/;\n\tvar dataUrlRegexp = /^data:.+\\,.+$/;\n\n\tfunction urlParse(aUrl) {\n\t var match = aUrl.match(urlRegexp);\n\t if (!match) {\n\t return null;\n\t }\n\t return {\n\t scheme: match[1],\n\t auth: match[2],\n\t host: match[3],\n\t port: match[4],\n\t path: match[5]\n\t };\n\t}\n\texports.urlParse = urlParse;\n\n\tfunction urlGenerate(aParsedUrl) {\n\t var url = '';\n\t if (aParsedUrl.scheme) {\n\t url += aParsedUrl.scheme + ':';\n\t }\n\t url += '//';\n\t if (aParsedUrl.auth) {\n\t url += aParsedUrl.auth + '@';\n\t }\n\t if (aParsedUrl.host) {\n\t url += aParsedUrl.host;\n\t }\n\t if (aParsedUrl.port) {\n\t url += \":\" + aParsedUrl.port\n\t }\n\t if (aParsedUrl.path) {\n\t url += aParsedUrl.path;\n\t }\n\t return url;\n\t}\n\texports.urlGenerate = urlGenerate;\n\n\t/**\n\t * Normalizes a path, or the path portion of a URL:\n\t *\n\t * - Replaces consecutive slashes with one slash.\n\t * - Removes unnecessary '.' parts.\n\t * - Removes unnecessary '/..' parts.\n\t *\n\t * Based on code in the Node.js 'path' core module.\n\t *\n\t * @param aPath The path or url to normalize.\n\t */\n\tfunction normalize(aPath) {\n\t var path = aPath;\n\t var url = urlParse(aPath);\n\t if (url) {\n\t if (!url.path) {\n\t return aPath;\n\t }\n\t path = url.path;\n\t }\n\t var isAbsolute = exports.isAbsolute(path);\n\n\t var parts = path.split(/\\/+/);\n\t for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n\t part = parts[i];\n\t if (part === '.') {\n\t parts.splice(i, 1);\n\t } else if (part === '..') {\n\t up++;\n\t } else if (up > 0) {\n\t if (part === '') {\n\t // The first part is blank if the path is absolute. Trying to go\n\t // above the root is a no-op. Therefore we can remove all '..' parts\n\t // directly after the root.\n\t parts.splice(i + 1, up);\n\t up = 0;\n\t } else {\n\t parts.splice(i, 2);\n\t up--;\n\t }\n\t }\n\t }\n\t path = parts.join('/');\n\n\t if (path === '') {\n\t path = isAbsolute ? '/' : '.';\n\t }\n\n\t if (url) {\n\t url.path = path;\n\t return urlGenerate(url);\n\t }\n\t return path;\n\t}\n\texports.normalize = normalize;\n\n\t/**\n\t * Joins two paths/URLs.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be joined with the root.\n\t *\n\t * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n\t * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n\t * first.\n\t * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n\t * is updated with the result and aRoot is returned. Otherwise the result\n\t * is returned.\n\t * - If aPath is absolute, the result is aPath.\n\t * - Otherwise the two paths are joined with a slash.\n\t * - Joining for example 'http://' and 'www.example.com' is also supported.\n\t */\n\tfunction join(aRoot, aPath) {\n\t if (aRoot === \"\") {\n\t aRoot = \".\";\n\t }\n\t if (aPath === \"\") {\n\t aPath = \".\";\n\t }\n\t var aPathUrl = urlParse(aPath);\n\t var aRootUrl = urlParse(aRoot);\n\t if (aRootUrl) {\n\t aRoot = aRootUrl.path || '/';\n\t }\n\n\t // `join(foo, '//www.example.org')`\n\t if (aPathUrl && !aPathUrl.scheme) {\n\t if (aRootUrl) {\n\t aPathUrl.scheme = aRootUrl.scheme;\n\t }\n\t return urlGenerate(aPathUrl);\n\t }\n\n\t if (aPathUrl || aPath.match(dataUrlRegexp)) {\n\t return aPath;\n\t }\n\n\t // `join('http://', 'www.example.com')`\n\t if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n\t aRootUrl.host = aPath;\n\t return urlGenerate(aRootUrl);\n\t }\n\n\t var joined = aPath.charAt(0) === '/'\n\t ? aPath\n\t : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n\t if (aRootUrl) {\n\t aRootUrl.path = joined;\n\t return urlGenerate(aRootUrl);\n\t }\n\t return joined;\n\t}\n\texports.join = join;\n\n\texports.isAbsolute = function (aPath) {\n\t return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);\n\t};\n\n\t/**\n\t * Make a path relative to a URL or another path.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be made relative to aRoot.\n\t */\n\tfunction relative(aRoot, aPath) {\n\t if (aRoot === \"\") {\n\t aRoot = \".\";\n\t }\n\n\t aRoot = aRoot.replace(/\\/$/, '');\n\n\t // It is possible for the path to be above the root. In this case, simply\n\t // checking whether the root is a prefix of the path won't work. Instead, we\n\t // need to remove components from the root one by one, until either we find\n\t // a prefix that fits, or we run out of components to remove.\n\t var level = 0;\n\t while (aPath.indexOf(aRoot + '/') !== 0) {\n\t var index = aRoot.lastIndexOf(\"/\");\n\t if (index < 0) {\n\t return aPath;\n\t }\n\n\t // If the only part of the root that is left is the scheme (i.e. http://,\n\t // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n\t // have exhausted all components, so the path is not relative to the root.\n\t aRoot = aRoot.slice(0, index);\n\t if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n\t return aPath;\n\t }\n\n\t ++level;\n\t }\n\n\t // Make sure we add a \"../\" for each component we removed from the root.\n\t return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n\t}\n\texports.relative = relative;\n\n\tvar supportsNullProto = (function () {\n\t var obj = Object.create(null);\n\t return !('__proto__' in obj);\n\t}());\n\n\tfunction identity (s) {\n\t return s;\n\t}\n\n\t/**\n\t * Because behavior goes wacky when you set `__proto__` on objects, we\n\t * have to prefix all the strings in our set with an arbitrary character.\n\t *\n\t * See https://github.com/mozilla/source-map/pull/31 and\n\t * https://github.com/mozilla/source-map/issues/30\n\t *\n\t * @param String aStr\n\t */\n\tfunction toSetString(aStr) {\n\t if (isProtoString(aStr)) {\n\t return '$' + aStr;\n\t }\n\n\t return aStr;\n\t}\n\texports.toSetString = supportsNullProto ? identity : toSetString;\n\n\tfunction fromSetString(aStr) {\n\t if (isProtoString(aStr)) {\n\t return aStr.slice(1);\n\t }\n\n\t return aStr;\n\t}\n\texports.fromSetString = supportsNullProto ? identity : fromSetString;\n\n\tfunction isProtoString(s) {\n\t if (!s) {\n\t return false;\n\t }\n\n\t var length = s.length;\n\n\t if (length < 9 /* \"__proto__\".length */) {\n\t return false;\n\t }\n\n\t if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n\t s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n\t s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n\t s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n\t s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n\t s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 9) !== 95 /* '_' */) {\n\t return false;\n\t }\n\n\t for (var i = length - 10; i >= 0; i--) {\n\t if (s.charCodeAt(i) !== 36 /* '$' */) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t}\n\n\t/**\n\t * Comparator between two mappings where the original positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same original source/line/column, but different generated\n\t * line and column the same. Useful when searching for a mapping with a\n\t * stubbed out mapping.\n\t */\n\tfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n\t var cmp = mappingA.source - mappingB.source;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0 || onlyCompareOriginal) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t return mappingA.name - mappingB.name;\n\t}\n\texports.compareByOriginalPositions = compareByOriginalPositions;\n\n\t/**\n\t * Comparator between two mappings with deflated source and name indices where\n\t * the generated positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same generated line and column, but different\n\t * source/name/original line and column the same. Useful when searching for a\n\t * mapping with a stubbed out mapping.\n\t */\n\tfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n\t var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0 || onlyCompareGenerated) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.source - mappingB.source;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t return mappingA.name - mappingB.name;\n\t}\n\texports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\n\tfunction strcmp(aStr1, aStr2) {\n\t if (aStr1 === aStr2) {\n\t return 0;\n\t }\n\n\t if (aStr1 > aStr2) {\n\t return 1;\n\t }\n\n\t return -1;\n\t}\n\n\t/**\n\t * Comparator between two mappings with inflated source and name strings where\n\t * the generated positions are compared.\n\t */\n\tfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n\t var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = strcmp(mappingA.source, mappingB.source);\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t return strcmp(mappingA.name, mappingB.name);\n\t}\n\texports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\texports.GREATEST_LOWER_BOUND = 1;\n\texports.LEAST_UPPER_BOUND = 2;\n\n\t/**\n\t * Recursive implementation of binary search.\n\t *\n\t * @param aLow Indices here and lower do not contain the needle.\n\t * @param aHigh Indices here and higher do not contain the needle.\n\t * @param aNeedle The element being searched for.\n\t * @param aHaystack The non-empty array being searched.\n\t * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t */\n\tfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n\t // This function terminates when one of the following is true:\n\t //\n\t // 1. We find the exact element we are looking for.\n\t //\n\t // 2. We did not find the exact element, but we can return the index of\n\t // the next-closest element.\n\t //\n\t // 3. We did not find the exact element, and there is no next-closest\n\t // element than the one we are searching for, so we return -1.\n\t var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n\t var cmp = aCompare(aNeedle, aHaystack[mid], true);\n\t if (cmp === 0) {\n\t // Found the element we are looking for.\n\t return mid;\n\t }\n\t else if (cmp > 0) {\n\t // Our needle is greater than aHaystack[mid].\n\t if (aHigh - mid > 1) {\n\t // The element is in the upper half.\n\t return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n\t }\n\n\t // The exact needle element was not found in this haystack. Determine if\n\t // we are in termination case (3) or (2) and return the appropriate thing.\n\t if (aBias == exports.LEAST_UPPER_BOUND) {\n\t return aHigh < aHaystack.length ? aHigh : -1;\n\t } else {\n\t return mid;\n\t }\n\t }\n\t else {\n\t // Our needle is less than aHaystack[mid].\n\t if (mid - aLow > 1) {\n\t // The element is in the lower half.\n\t return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n\t }\n\n\t // we are in termination case (3) or (2) and return the appropriate thing.\n\t if (aBias == exports.LEAST_UPPER_BOUND) {\n\t return mid;\n\t } else {\n\t return aLow < 0 ? -1 : aLow;\n\t }\n\t }\n\t}\n\n\t/**\n\t * This is an implementation of binary search which will always try and return\n\t * the index of the closest element if there is no exact hit. This is because\n\t * mappings between original and generated line/col pairs are single points,\n\t * and there is an implicit region between each of them, so a miss just means\n\t * that you aren't on the very start of a region.\n\t *\n\t * @param aNeedle The element you are looking for.\n\t * @param aHaystack The array that is being searched.\n\t * @param aCompare A function which takes the needle and an element in the\n\t * array and returns -1, 0, or 1 depending on whether the needle is less\n\t * than, equal to, or greater than the element, respectively.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n\t */\n\texports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n\t if (aHaystack.length === 0) {\n\t return -1;\n\t }\n\n\t var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n\t aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n\t if (index < 0) {\n\t return -1;\n\t }\n\n\t // We have found either the exact element, or the next-closest element than\n\t // the one we are searching for. However, there may be more than one such\n\t // element. Make sure we always return the smallest of these.\n\t while (index - 1 >= 0) {\n\t if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n\t break;\n\t }\n\t --index;\n\t }\n\n\t return index;\n\t};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\tvar util = __webpack_require__(2);\n\tvar has = Object.prototype.hasOwnProperty;\n\n\t/**\n\t * A data structure which is a combination of an array and a set. Adding a new\n\t * member is O(1), testing for membership is O(1), and finding the index of an\n\t * element is O(1). Removing elements from the set is not supported. Only\n\t * strings are supported for membership.\n\t */\n\tfunction ArraySet() {\n\t this._array = [];\n\t this._set = Object.create(null);\n\t}\n\n\t/**\n\t * Static method for creating ArraySet instances from an existing array.\n\t */\n\tArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n\t var set = new ArraySet();\n\t for (var i = 0, len = aArray.length; i < len; i++) {\n\t set.add(aArray[i], aAllowDuplicates);\n\t }\n\t return set;\n\t};\n\n\t/**\n\t * Return how many unique items are in this ArraySet. If duplicates have been\n\t * added, than those do not count towards the size.\n\t *\n\t * @returns Number\n\t */\n\tArraySet.prototype.size = function ArraySet_size() {\n\t return Object.getOwnPropertyNames(this._set).length;\n\t};\n\n\t/**\n\t * Add the given string to this set.\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n\t var sStr = util.toSetString(aStr);\n\t var isDuplicate = has.call(this._set, sStr);\n\t var idx = this._array.length;\n\t if (!isDuplicate || aAllowDuplicates) {\n\t this._array.push(aStr);\n\t }\n\t if (!isDuplicate) {\n\t this._set[sStr] = idx;\n\t }\n\t};\n\n\t/**\n\t * Is the given string a member of this set?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.has = function ArraySet_has(aStr) {\n\t var sStr = util.toSetString(aStr);\n\t return has.call(this._set, sStr);\n\t};\n\n\t/**\n\t * What is the index of the given string in the array?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n\t var sStr = util.toSetString(aStr);\n\t if (has.call(this._set, sStr)) {\n\t return this._set[sStr];\n\t }\n\t throw new Error('\"' + aStr + '\" is not in the set.');\n\t};\n\n\t/**\n\t * What is the element at the given index?\n\t *\n\t * @param Number aIdx\n\t */\n\tArraySet.prototype.at = function ArraySet_at(aIdx) {\n\t if (aIdx >= 0 && aIdx < this._array.length) {\n\t return this._array[aIdx];\n\t }\n\t throw new Error('No element indexed by ' + aIdx);\n\t};\n\n\t/**\n\t * Returns the array representation of this set (which has the proper indices\n\t * indicated by indexOf). Note that this is a copy of the internal array used\n\t * for storing the members so that no one can mess with internal state.\n\t */\n\tArraySet.prototype.toArray = function ArraySet_toArray() {\n\t return this._array.slice();\n\t};\n\n\texports.ArraySet = ArraySet;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t *\n\t * Based on the Base 64 VLQ implementation in Closure Compiler:\n\t * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n\t *\n\t * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n\t * Redistribution and use in source and binary forms, with or without\n\t * modification, are permitted provided that the following conditions are\n\t * met:\n\t *\n\t * * Redistributions of source code must retain the above copyright\n\t * notice, this list of conditions and the following disclaimer.\n\t * * Redistributions in binary form must reproduce the above\n\t * copyright notice, this list of conditions and the following\n\t * disclaimer in the documentation and/or other materials provided\n\t * with the distribution.\n\t * * Neither the name of Google Inc. nor the names of its\n\t * contributors may be used to endorse or promote products derived\n\t * from this software without specific prior written permission.\n\t *\n\t * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\t * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n\t * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n\t * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n\t * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n\t * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n\t * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n\t * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n\t * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n\t * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t */\n\n\tvar base64 = __webpack_require__(6);\n\n\t// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n\t// length quantities we use in the source map spec, the first bit is the sign,\n\t// the next four bits are the actual value, and the 6th bit is the\n\t// continuation bit. The continuation bit tells us whether there are more\n\t// digits in this value following this digit.\n\t//\n\t// Continuation\n\t// | Sign\n\t// | |\n\t// V V\n\t// 101011\n\n\tvar VLQ_BASE_SHIFT = 5;\n\n\t// binary: 100000\n\tvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n\t// binary: 011111\n\tvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n\t// binary: 100000\n\tvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n\t/**\n\t * Converts from a two-complement value to a value where the sign bit is\n\t * placed in the least significant bit. For example, as decimals:\n\t * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n\t * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n\t */\n\tfunction toVLQSigned(aValue) {\n\t return aValue < 0\n\t ? ((-aValue) << 1) + 1\n\t : (aValue << 1) + 0;\n\t}\n\n\t/**\n\t * Converts to a two-complement value from a value where the sign bit is\n\t * placed in the least significant bit. For example, as decimals:\n\t * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n\t * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n\t */\n\tfunction fromVLQSigned(aValue) {\n\t var isNegative = (aValue & 1) === 1;\n\t var shifted = aValue >> 1;\n\t return isNegative\n\t ? -shifted\n\t : shifted;\n\t}\n\n\t/**\n\t * Returns the base 64 VLQ encoded value.\n\t */\n\texports.encode = function base64VLQ_encode(aValue) {\n\t var encoded = \"\";\n\t var digit;\n\n\t var vlq = toVLQSigned(aValue);\n\n\t do {\n\t digit = vlq & VLQ_BASE_MASK;\n\t vlq >>>= VLQ_BASE_SHIFT;\n\t if (vlq > 0) {\n\t // There are still more digits in this value, so we must make sure the\n\t // continuation bit is marked.\n\t digit |= VLQ_CONTINUATION_BIT;\n\t }\n\t encoded += base64.encode(digit);\n\t } while (vlq > 0);\n\n\t return encoded;\n\t};\n\n\t/**\n\t * Decodes the next base 64 VLQ value from the given string and returns the\n\t * value and the rest of the string via the out parameter.\n\t */\n\texports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n\t var strLen = aStr.length;\n\t var result = 0;\n\t var shift = 0;\n\t var continuation, digit;\n\n\t do {\n\t if (aIndex >= strLen) {\n\t throw new Error(\"Expected more digits in base 64 VLQ value.\");\n\t }\n\n\t digit = base64.decode(aStr.charCodeAt(aIndex++));\n\t if (digit === -1) {\n\t throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n\t }\n\n\t continuation = !!(digit & VLQ_CONTINUATION_BIT);\n\t digit &= VLQ_BASE_MASK;\n\t result = result + (digit << shift);\n\t shift += VLQ_BASE_SHIFT;\n\t } while (continuation);\n\n\t aOutParam.value = fromVLQSigned(result);\n\t aOutParam.rest = aIndex;\n\t};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\tvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n\t/**\n\t * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n\t */\n\texports.encode = function (number) {\n\t if (0 <= number && number < intToCharMap.length) {\n\t return intToCharMap[number];\n\t }\n\t throw new TypeError(\"Must be between 0 and 63: \" + number);\n\t};\n\n\t/**\n\t * Decode a single base 64 character code digit to an integer. Returns -1 on\n\t * failure.\n\t */\n\texports.decode = function (charCode) {\n\t var bigA = 65; // 'A'\n\t var bigZ = 90; // 'Z'\n\n\t var littleA = 97; // 'a'\n\t var littleZ = 122; // 'z'\n\n\t var zero = 48; // '0'\n\t var nine = 57; // '9'\n\n\t var plus = 43; // '+'\n\t var slash = 47; // '/'\n\n\t var littleOffset = 26;\n\t var numberOffset = 52;\n\n\t // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n\t if (bigA <= charCode && charCode <= bigZ) {\n\t return (charCode - bigA);\n\t }\n\n\t // 26 - 51: abcdefghijklmnopqrstuvwxyz\n\t if (littleA <= charCode && charCode <= littleZ) {\n\t return (charCode - littleA + littleOffset);\n\t }\n\n\t // 52 - 61: 0123456789\n\t if (zero <= charCode && charCode <= nine) {\n\t return (charCode - zero + numberOffset);\n\t }\n\n\t // 62: +\n\t if (charCode == plus) {\n\t return 62;\n\t }\n\n\t // 63: /\n\t if (charCode == slash) {\n\t return 63;\n\t }\n\n\t // Invalid base64 digit.\n\t return -1;\n\t};\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\t// It turns out that some (most?) JavaScript engines don't self-host\n\t// `Array.prototype.sort`. This makes sense because C++ will likely remain\n\t// faster than JS when doing raw CPU-intensive sorting. However, when using a\n\t// custom comparator function, calling back and forth between the VM's C++ and\n\t// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n\t// worse generated code for the comparator function than would be optimal. In\n\t// fact, when sorting with a comparator, these costs outweigh the benefits of\n\t// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n\t// a ~3500ms mean speed-up in `bench/bench.html`.\n\n\t/**\n\t * Swap the elements indexed by `x` and `y` in the array `ary`.\n\t *\n\t * @param {Array} ary\n\t * The array.\n\t * @param {Number} x\n\t * The index of the first item.\n\t * @param {Number} y\n\t * The index of the second item.\n\t */\n\tfunction swap(ary, x, y) {\n\t var temp = ary[x];\n\t ary[x] = ary[y];\n\t ary[y] = temp;\n\t}\n\n\t/**\n\t * Returns a random integer within the range `low .. high` inclusive.\n\t *\n\t * @param {Number} low\n\t * The lower bound on the range.\n\t * @param {Number} high\n\t * The upper bound on the range.\n\t */\n\tfunction randomIntInRange(low, high) {\n\t return Math.round(low + (Math.random() * (high - low)));\n\t}\n\n\t/**\n\t * The Quick Sort algorithm.\n\t *\n\t * @param {Array} ary\n\t * An array to sort.\n\t * @param {function} comparator\n\t * Function to use to compare two items.\n\t * @param {Number} p\n\t * Start index of the array\n\t * @param {Number} r\n\t * End index of the array\n\t */\n\tfunction doQuickSort(ary, comparator, p, r) {\n\t // If our lower bound is less than our upper bound, we (1) partition the\n\t // array into two pieces and (2) recurse on each half. If it is not, this is\n\t // the empty array and our base case.\n\n\t if (p < r) {\n\t // (1) Partitioning.\n\t //\n\t // The partitioning chooses a pivot between `p` and `r` and moves all\n\t // elements that are less than or equal to the pivot to the before it, and\n\t // all the elements that are greater than it after it. The effect is that\n\t // once partition is done, the pivot is in the exact place it will be when\n\t // the array is put in sorted order, and it will not need to be moved\n\t // again. This runs in O(n) time.\n\n\t // Always choose a random pivot so that an input array which is reverse\n\t // sorted does not cause O(n^2) running time.\n\t var pivotIndex = randomIntInRange(p, r);\n\t var i = p - 1;\n\n\t swap(ary, pivotIndex, r);\n\t var pivot = ary[r];\n\n\t // Immediately after `j` is incremented in this loop, the following hold\n\t // true:\n\t //\n\t // * Every element in `ary[p .. i]` is less than or equal to the pivot.\n\t //\n\t // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n\t for (var j = p; j < r; j++) {\n\t if (comparator(ary[j], pivot) <= 0) {\n\t i += 1;\n\t swap(ary, i, j);\n\t }\n\t }\n\n\t swap(ary, i + 1, j);\n\t var q = i + 1;\n\n\t // (2) Recurse on each half.\n\n\t doQuickSort(ary, comparator, p, q - 1);\n\t doQuickSort(ary, comparator, q + 1, r);\n\t }\n\t}\n\n\t/**\n\t * Sort the given array in-place with the given comparator function.\n\t *\n\t * @param {Array} ary\n\t * An array to sort.\n\t * @param {function} comparator\n\t * Function to use to compare two items.\n\t */\n\texports.quickSort = function (ary, comparator) {\n\t doQuickSort(ary, comparator, 0, ary.length - 1);\n\t};\n\n\n/***/ })\n/******/ ])\n});\n;","export const Octicon = {\n\talert: ,\n\tarchive: ,\n\tarrow_left: ,\n\tarrow_right: ,\n\tcheck: ,\n\tchevron_down: ,\n\tchevron_right: ,\n\tchevron_up: ,\n\tclippy: ,\n\tcode: ,\n\tdash: ,\n\tdevice_desktop: ,\n\tdot_fill: ,\n\tdownload: ,\n\tduplicate: ,\n\teye: ,\n\teye_closed: ,\n\tfile: ,\n\tfile_directory: ,\n\tgear: ,\n\tglobe: ,\n\thistory: ,\n\tinfo: ,\n\tissue_opened: ,\n\tkebab_horizontal: ,\n\tlink: ,\n\tlink_external: ,\n\tmark_github: ,\n\tmoon: ,\n\tplay: ,\n\tplus: ,\n\tplus_circle: ,\n\trepo: ,\n\tsearch: ,\n\tsort_asc: ,\n\tsort_desc: ,\n\tsquare: ,\n\tsquare_fill: ,\n\tstack: ,\n\tsun: ,\n\tsync: ,\n\ttag: ,\n\tterminal: ,\n\tthree_bars: ,\n\ttrashcan: ,\n\tunfold: ,\n\tupload: ,\n\tx: ,\n\tx_circle: ,\n}\n","import { useEffect, useMemo, useState } from 'preact/hooks'\nimport { mapStackTrace } from 'sourcemapped-stacktrace'\nimport { Octicon } from './Octicon'\n\ntype ErrorPanelProps = {\n\terror: string | Error,\n\tonDismiss?: () => unknown,\n}\nexport function ErrorPanel({ error, onDismiss }: ErrorPanelProps) {\n\tconst [stackVisible, setStackVisible] = useState(false)\n\tconst [stack, setStack] = useState(undefined)\n\n\tuseEffect(() => {\n\t\tif (error instanceof Error) {\n\t\t\tconst stack = error.stack!.split('\\n').map(line => {\n\t\t\t\treturn line.replace(/^(\\s+)at (?:async )?(https?:.*)/, '$1at ($2)')\n\t\t\t})\n\t\t\tsetStack(stack.join('\\n'))\n\t\t\tmapStackTrace(stack.join('\\n'), (mapped) => {\n\t\t\t\tconst mappedStack = mapped.map(line => {\n\t\t\t\t\treturn line.replace(/..\\/..\\/src\\//, 'src/')\n\t\t\t\t}).join('\\n')\n\t\t\t\tsetStack(mappedStack)\n\t\t\t})\n\t\t}\n\t}, [error])\n\n\tconst url = useMemo(() => {\n\t\tlet url ='https://github.com/misode/misode.github.io/issues/new'\n\t\tif (error instanceof Error) {\n\t\t\turl += `?title=${encodeURIComponent(`${error.name}: ${error.message}`)}`\n\t\t\tif (stack) {\n\t\t\t\turl += `&body=${encodeURIComponent(`\\`\\`\\`\\n${error.name}: ${error.message}\\n${stack}\\n\\`\\`\\`\\n`)}`\n\t\t\t}\n\t\t} else {\n\t\t\turl += `?title=${encodeURIComponent(error.toString())}`\n\t\t}\n\t\treturn url\n\t}, [error, stack])\n\n\treturn
    \n\t\t{onDismiss &&
    {Octicon.x}
    }\n\t\t

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

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

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

    \n\t
    \n}\n","import { hexId } from '../../Utils'\n\ninterface Props {\n\tlabel: string,\n\tvalue: boolean,\n\tonChange: (value: boolean) => unknown,\n}\nexport function Checkbox({ label, value, onChange }: Props) {\n\tconst id = hexId()\n\treturn \n}\n","import type { JSXInternal } from 'preact/src/jsx'\n\ntype InputProps = JSXInternal.HTMLAttributes\n\ntype BaseInputProps = Omit & {\n\tonChange?: (value: T) => unknown,\n\tonEnter?: (value: T) => unknown,\n}\nfunction BaseInput(name: string, type: string, fn: (value: string) => T) {\n\tconst component = (props: BaseInputProps) => {\n\t\tconst onChange = props.onChange && ((evt: Event) => {\n\t\t\tconst value = (evt.target as HTMLInputElement).value\n\t\t\tprops.onChange?.(fn(value))\n\t\t})\n\t\tconst onKeyDown = props.onEnter && ((evt: KeyboardEvent) => {\n\t\t\tif (evt.key === 'Enter') {\n\t\t\t\tconst value = (evt.target as HTMLInputElement).value\n\t\t\t\tprops.onEnter?.(fn(value))\n\t\t\t}\n\t\t})\n\t\treturn \n\t}\n\tcomponent.displayName = name\n\treturn component\n}\n\nexport const TextInput = BaseInput('TextInput', 'text', v => v)\n\nexport const NumberInput = BaseInput('NumberInput', 'number', v => Number(v))\n\nexport const RangeInput = BaseInput('RangeInput', 'range', v => Number(v))\n","import { useMemo, useState } from 'preact/hooks'\nimport { Btn, BtnInput } from '..'\n\ninterface Props {\n\tvalues?: string[],\n\tonSelect?: (value: string) => unknown,\n\tsearchPlaceholder?: string,\n\tnoResults?: string,\n}\nexport function SearchList({ values, onSelect, searchPlaceholder, noResults }: Props) {\n\tconst [search, setSearch] = useState('')\n\tconst results = useMemo(() => {\n\t\tconst terms = search.trim().split(' ')\n\t\treturn values?.filter(v => terms.every(t => v.includes(t))) ?? []\n\t}, [values, search])\n\n\treturn <>\n\t\t\n\t\t
    \n\t\t\t{results.map(v => onSelect?.(v)} />)}\n\t\t\t{results.length === 0 && }\n\t\t
    \n\t\n}\n","import { isObject } from '../Utils'\n\nconst repo = 'https://raw.githubusercontent.com/misode/technical-changes/main'\n\nexport type Change = {\n\tgroup: ChangelogVersion,\n\tversion: ChangelogVersion,\n\torder: number,\n\ttags: string[],\n\tcontent: string,\n}\n\nexport type ChangelogVersion = {\n\tid: string,\n\tarticle: string | null,\n}\n\nlet Changelogs: Change[] | Promise | null = null\n\nexport async function getChangelogs() {\n\tif (!Changelogs) {\n\t\tconst index = await (await fetch(`${repo}/index.json`)).json() as string[]\n\t\tChangelogs = (await Promise.all(\n\t\t\tindex.map((group, i) => fetchGroup(parseVersion(group), i))\n\t\t)).flat().map(change => ({\n\t\t\t...change,\n\t\t\ttags: [change.group.id, ...change.tags],\n\t\t}))\n\t}\n\treturn Changelogs\n}\n\nasync function fetchGroup(group: ChangelogVersion, groupIndex: number) {\n\tconst index = await (await fetch(`${repo}/${group.id}/index.json`)).json() as string[]\n\treturn (await Promise.all(\n\t\tindex.map((version, i) => fetchChangelog(group, parseVersion(version), groupIndex, i))\n\t)).flat()\n}\n\nasync function fetchChangelog(group: ChangelogVersion, version: ChangelogVersion, groupIndex: number, versionIndex: number) {\n\tconst text = await (await fetch(`${repo}/${group.id}/${version.id}.md`)).text()\n\treturn parseChangelog(text).map(change => ({\n\t\tversion,\n\t\tgroup,\n\t\torder: groupIndex * 1000 + versionIndex,\n\t\t...change,\n\t}))\n}\n\nfunction parseChangelog(text: string) {\n\treturn text.split('\\n\\n')\n\t\t.map(entry => {\n\t\t\tconst i = entry.indexOf('|')\n\t\t\treturn {\n\t\t\t\ttags: entry.substring(0, i).trim().split(' '),\n\t\t\t\tcontent: entry.slice(i + 1).trim()\n\t\t\t\t\t.replaceAll('->', '→')\n\t\t\t\t\t.replaceAll('\\n...\\n', '\\n\\n'),\n\t\t\t}\n\t\t})\n}\n\nfunction parseVersion(version: unknown): ChangelogVersion {\n\tif (typeof version === 'string') {\n\t\treturn {\n\t\t\tid: version,\n\t\t\tarticle: version.match(/\\d\\dw\\d\\d[a-z]/) ? 'minecraft-snapshot-' + version : version.match(/\\d+\\.\\d+(\\.\\d+)?-pre[0-9]+/) ? 'minecraft-' + version.replaceAll('.', '-').replaceAll('pre', 'pre-release-') : null,\n\t\t}\n\t} else if (isObject(version)) {\n\t\treturn version as ChangelogVersion\n\t}\n\treturn { id: 'unknown', article: null }\n}\n","import type { CollectionRegistry } from '@mcschema/core'\nimport config from '../../config.json'\nimport { message } from '../Utils'\nimport type { BlockStateRegistry, VersionId } from './Schemas'\n\n// Cleanup old caches\n['1.15', '1.16', '1.17'].forEach(v => localStorage.removeItem(`cache_${v}`));\n['mcdata_master', 'vanilla_datapack_summary'].forEach(v => localStorage.removeItem(`cached_${v}`))\ncaches.delete('misode-v1')\n\nconst CACHE_NAME = 'misode-v2'\nconst CACHE_LATEST_VERSION = 'cached_latest_version'\n\ntype Version = {\n\tid: string,\n\tref?: string,\n\tdynamic?: boolean,\n}\n\ndeclare var __LATEST_VERSION__: string\nconst latestVersion = __LATEST_VERSION__ ?? ''\nconst mcmetaUrl = 'https://raw.githubusercontent.com/misode/mcmeta'\n\ntype McmetaTypes = 'summary' | 'data' | 'assets' | 'registries'\n\nfunction mcmeta(version: { dynamic: true } | { dynamic?: false, ref?: string}, type: McmetaTypes) {\n\treturn `${mcmetaUrl}/${version.dynamic ? type : `${version.ref}-${type}`}`\n}\n\nasync function validateCache(version: Version) {\n\tif (version.dynamic) {\n\t\tif (localStorage.getItem(CACHE_LATEST_VERSION) !== latestVersion) {\n\t\t\tawait deleteMatching(url => url.startsWith(`${mcmetaUrl}/summary/`) || url.startsWith(`${mcmetaUrl}/data/`) || url.startsWith(`${mcmetaUrl}/assets/`) || url.startsWith(`${mcmetaUrl}/registries/`))\n\t\t\tlocalStorage.setItem(CACHE_LATEST_VERSION, latestVersion)\n\t\t}\n\t\tversion.ref = latestVersion\n\t}\n}\n\nexport async function fetchData(versionId: string, collectionTarget: CollectionRegistry, blockStateTarget: BlockStateRegistry) {\n\tconst version = config.versions.find(v => v.id === versionId) as Version | undefined\n\tif (!version) {\n\t\tconsole.error(`[fetchData] Unknown version ${version} in ${JSON.stringify(config.versions)}`)\n\t\treturn\n\t}\n\n\tawait validateCache(version)\n\n\tawait Promise.all([\n\t\tfetchRegistries(version, collectionTarget),\n\t\tfetchBlockStateMap(version, blockStateTarget),\n\t])\n}\n\nasync function fetchRegistries(version: Version, target: CollectionRegistry) {\n\tconsole.debug(`[fetchRegistries] ${version.id}`)\n\ttry {\n\t\tconst data = await getData(`${mcmeta(version, 'summary')}/registries/data.min.json`)\n\t\tfor (const id in data) {\n\t\t\ttarget.register(id, data[id].map((e: string) => 'minecraft:' + e))\n\t\t}\n\t} catch (e) {\n\t\tconsole.warn('Error occurred while fetching registries:', message(e))\n\t}\n}\n\nasync function fetchBlockStateMap(version: Version, target: BlockStateRegistry) {\n\tconsole.debug(`[fetchBlockStateMap] ${version.id}`)\n\ttry {\n\t\tconst data = await getData(`${mcmeta(version, 'summary')}/blocks/data.min.json`)\n\t\tfor (const id in data) {\n\t\t\ttarget['minecraft:' + id] = {\n\t\t\t\tproperties: data[id][0],\n\t\t\t\tdefault: data[id][1],\n\t\t\t}\n\t\t}\n\t} catch (e) {\n\t\tconsole.warn('Error occurred while fetching block state map:', message(e))\n\t}\n}\n\nexport async function fetchPreset(versionId: VersionId, registry: string, id: string) {\n\tconsole.debug(`[fetchPreset] ${versionId} ${registry} ${id}`)\n\tconst version = config.versions.find(v => v.id === versionId)!\n\ttry {\n\t\tconst type = ['blockstates', 'models'].includes(registry) ? 'assets' : 'data'\n\t\tconst url = `${mcmeta(version, type)}/${type}/minecraft/${registry}/${id}.json`\n\t\tconst res = await fetch(url)\n\t\treturn await res.json()\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching ${registry} preset ${id}: ${message(e)}`)\n\t}\n}\n\nexport async function fetchAllPresets(versionId: VersionId, registry: string) {\n\tconsole.debug(`[fetchAllPresets] ${versionId} ${registry}`)\n\tconst version = config.versions.find(v => v.id === versionId)!\n\tawait validateCache(version)\n\ttry {\n\t\tconst entries = await getData(`${mcmeta(version, 'registries')}/${registry}/data.min.json`)\n\t\treturn new Map(await Promise.all(\n\t\t\tentries.map(async (e: string) =>\n\t\t\t\t[e, await getData(`${mcmeta(version, 'data')}/data/minecraft/${registry}/${e}.json`)])\n\t\t))\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching all ${registry} presets: ${message(e)}`)\n\t}\n}\n\nexport type SoundEvents = {\n\t[key: string]: {\n\t\tsounds: (string | { name: string })[],\n\t},\n}\nexport async function fetchSounds(versionId: VersionId): Promise {\n\tconst version = config.versions.find(v => v.id === versionId)!\n\tawait validateCache(version)\n\ttry {\n\t\tconst url = `${mcmeta(version, 'summary')}/sounds/data.min.json`\n\t\treturn await getData(url)\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching sounds for ${version}: ${message(e)}`)\n\t}\n}\n\nexport function getSoundUrl(versionId: VersionId, path: string) {\n\tconst version = config.versions.find(v => v.id === versionId)!\n\treturn `${mcmeta(version, 'assets')}/assets/minecraft/sounds/${path}.ogg`\n}\n\nexport type VersionMeta = {\n\tid: string,\n\tname: string,\n\trelease_target: string,\n\ttype: 'snapshot' | 'release',\n\tstable: boolean,\n\tdata_version: number,\n\tprotocol_version: number,\n\tdata_pack_version: number,\n\tresource_pack_version: number,\n\tbuild_time: string,\n\trelease_time: string,\n\tsha1: string,\n}\nexport async function fetchVersions(): Promise {\n\tconst version = config.versions[config.versions.length - 1]\n\tawait validateCache(version)\n\ttry {\n\t\treturn getData(`${mcmeta(version, 'summary')}/versions/data.min.json`)\n\t} catch (e) {\n\t\tthrow new Error(`Error occured while fetching versions: ${message(e)}`)\n\t}\n}\n\nasync function getData(url: string, fn: (v: any) => T = (v: any) => v): Promise {\n\ttry {\n\t\tconst cache = await caches.open(CACHE_NAME)\n\t\tconsole.debug(`[getData] Opened cache ${CACHE_NAME} ${url}`)\n\t\tconst cacheResponse = await cache.match(url)\n \n\t\tif (cacheResponse && cacheResponse.ok) {\n\t\t\tconsole.debug(`[getData] Retrieving cached data ${url}`)\n\t\t\treturn await cacheResponse.json()\n\t\t}\n \n\t\tconsole.debug(`[getData] fetching data ${url}`)\n\t\tconst fetchResponse = await fetch(url)\n\t\tconst responseData = fn(await fetchResponse.json())\n\t\tawait cache.put(url, new Response(JSON.stringify(responseData)))\n\t\treturn responseData\n\t} catch (e) {\n\t\tconsole.warn(`[getData] Failed to open cache ${CACHE_NAME}: ${message(e)}`)\n\n\t\tconsole.debug(`[getData] fetching data ${url}`)\n\t\tconst fetchResponse = await fetch(url)\n\t\tconst responseData = fn(await fetchResponse.json())\n\t\treturn responseData\n\t}\n}\n\nasync function deleteMatching(matches: (url: string) => boolean) {\n\ttry {\n\t\tconst cache = await caches.open(CACHE_NAME)\n\t\tconsole.debug(`[deleteMatching] Opened cache ${CACHE_NAME}`)\n\t\tconst promises: Promise[] = []\n \n\t\tfor (const request of await cache.keys()) {\n\t\t\tif (matches(request.url)) {\n\t\t\t\tpromises.push(cache.delete(request))\n\t\t\t}\n\t\t}\n\t\tconsole.debug(`[deleteMatching] Removing ${promises.length} cache objects...`)\n\t\tawait Promise.all(promises)\n\t} catch (e) {\n\t\tconsole.warn(`[deleteMatching] Failed to open cache ${CACHE_NAME}: ${message(e)}`)\n\t}\n}\n","const scriptRel = 'modulepreload';const seen = {};const base = '/';export const __vitePreload = function preload(baseModule, deps) {\n // @ts-ignore\n if (!__VITE_IS_MODERN__ || !deps || deps.length === 0) {\n return baseModule();\n }\n return Promise.all(deps.map((dep) => {\n // @ts-ignore\n dep = `${base}${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(new Error(`Unable to preload CSS for ${dep}`)));\n });\n }\n })).then(() => baseModule());\n}","import type { CollectionRegistry, INode, SchemaRegistry } from '@mcschema/core'\nimport { ChoiceNode, DataModel, Reference, StringNode } from '@mcschema/core'\nimport config from '../../config.json'\nimport { message } from '../Utils'\nimport { fetchData } from './DataFetcher'\n\nexport const VersionIds = ['1.15', '1.16', '1.17', '1.18', '1.18.2', '1.19'] as const\nexport type VersionId = typeof VersionIds[number]\n\nexport type BlockStateRegistry = {\n\t[block: string]: {\n\t\tproperties?: {\n\t\t\t[key: string]: string[],\n\t\t},\n\t\tdefault?: {\n\t\t\t[key: string]: string,\n\t\t},\n\t},\n}\n\ntype VersionData = {\n\tcollections: CollectionRegistry,\n\tschemas: SchemaRegistry,\n\tblockStates: BlockStateRegistry,\n}\nconst Versions: Record> = {}\n\ntype ModelData = {\n\tmodel: DataModel,\n\tversion: VersionId,\n}\nconst Models: Record = {}\n\nconst versionGetter: {\n\t[versionId in VersionId]: () => Promise<{\n\t\tgetCollections: () => CollectionRegistry,\n\t\tgetSchemas: (collections: CollectionRegistry) => SchemaRegistry,\n\t}>\n} = {\n\t1.15: () => import('@mcschema/java-1.15'),\n\t1.16: () => import('@mcschema/java-1.16'),\n\t1.17: () => import('@mcschema/java-1.17'),\n\t1.18: () => import('@mcschema/java-1.18'),\n\t'1.18.2': () => import('@mcschema/java-1.18.2'),\n\t1.19: () => import('@mcschema/java-1.19'),\n}\n\nexport let CachedDecorator: INode\nexport let CachedFeature: INode\nexport let CachedCollections: CollectionRegistry\n\nasync function getVersion(id: VersionId): Promise {\n\tif (!Versions[id]) {\n\t\tVersions[id] = (async () => {\n\t\t\ttry {\n\t\t\t\tconst mcschema = await versionGetter[id]()\n\t\t\t\tconst collections = mcschema.getCollections()\n\t\t\t\tconst blockStates: BlockStateRegistry = {}\n\t\t\t\tawait fetchData(id, collections, blockStates)\n\t\t\t\tconst schemas = mcschema.getSchemas(collections)\n\t\t\t\tVersions[id] = { collections, schemas, blockStates }\n\t\t\t\treturn Versions[id]\n\t\t\t} catch (e) {\n\t\t\t\tthrow new Error(`Cannot get version \"${id}\": ${message(e)}`)\n\t\t\t}\n\t\t})()\n\t\treturn Versions[id]\n\t}\n\treturn Versions[id]\n}\n\nexport async function getModel(version: VersionId, id: string): Promise {\n\tif (!Models[id] || Models[id].version !== version) {\n\t\tconst versionData = await getVersion(version)\n\t\t\n\t\tCachedDecorator = Reference(versionData.schemas, 'configured_decorator')\n\t\tCachedFeature = ChoiceNode([\n\t\t\t{\n\t\t\t\ttype: 'string',\n\t\t\t\tnode: StringNode(versionData.collections, { validator: 'resource', params: { pool: '$worldgen/configured_feature' } }),\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'object',\n\t\t\t\tnode: Reference(versionData.schemas, 'configured_feature'),\n\t\t\t},\n\t\t], { choiceContext: 'feature' })\n\n\t\tconst schemaName = config.generators.find(g => g.id === id)?.schema\n\t\tif (!schemaName) {\n\t\t\tthrow new Error(`Cannot find model ${id}`)\n\t\t}\n\t\ttry {\n\t\t\tconst schema = versionData.schemas.get(schemaName)\n\t\t\tconst model = new DataModel(schema, { wrapLists: true })\n\t\t\tif (Models[id]) {\n\t\t\t\tmodel.reset(Models[id].model.data, false)\n\t\t\t} else {\n\t\t\t\tmodel.validate(true)\n\t\t\t\tmodel.history = [JSON.stringify(model.data)]\n\t\t\t}\n\t\t\tModels[id] = { model, version }\n\t\t} catch (e) {\n\t\t\tconst err = new Error(`Cannot get generator \"${id}\" for version \"${version}\": ${message(e)}`)\n\t\t\tif (e instanceof Error) err.stack = e.stack\n\t\t\tthrow err\n\t\t}\n\t}\n\treturn Models[id].model\n}\n\nexport async function getCollections(version: VersionId): Promise {\n\tconst versionData = await getVersion(version)\n\tCachedCollections = versionData.collections\n\treturn versionData.collections\n}\n\nexport async function getBlockStates(version: VersionId): Promise {\n\tconst versionData = await getVersion(version)\n\treturn versionData.blockStates\n}\n\nexport function checkVersion(versionId: string, minVersionId: string | undefined, maxVersionId?: string) {\n\tconst version = config.versions.findIndex(v => v.id === versionId)\n\tconst minVersion = minVersionId ? config.versions.findIndex(v => v.id === minVersionId) : 0\n\tconst maxVersion = maxVersionId ? config.versions.findIndex(v => v.id === maxVersionId) : config.versions.length - 1\n\treturn minVersion <= version && version <= maxVersion\n}\n","// Copyright (c) 2013 Pieroxy \n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.4\nvar LZString = (function() {\n\n// private property\nvar f = String.fromCharCode;\nvar keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nvar keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\nvar baseReverseDic = {};\n\nfunction getBaseValue(alphabet, character) {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {};\n for (var i=0 ; i>> 8;\n buf[i*2+1] = current_value % 256;\n }\n return buf;\n },\n\n //decompress from uint8array (UCS-2 big endian format)\n decompressFromUint8Array:function (compressed) {\n if (compressed===null || compressed===undefined){\n return LZString.decompress(compressed);\n } else {\n var buf=new Array(compressed.length/2); // 2 bytes per character\n for (var i=0, TotalLen=buf.length; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++;\n context_w = String(context_c);\n }\n }\n\n // Output the code for w.\n if (context_w !== \"\") {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n }\n\n // Mark the end of the stream\n value = 2;\n for (i=0 ; i> 1;\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data.push(getCharFromInt(context_data_val));\n break;\n }\n else context_data_position++;\n }\n return context_data.join('');\n },\n\n decompress: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); });\n },\n\n _decompress: function (length, resetValue, getNextValue) {\n var dictionary = [],\n next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry = \"\",\n result = [],\n i,\n w,\n bits, resb, maxpower, power,\n c,\n data = {val:getNextValue(0), position:resetValue, index:1};\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i;\n }\n\n bits = 0;\n maxpower = Math.pow(2,2);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (next = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 2:\n return \"\";\n }\n dictionary[3] = c;\n w = c;\n result.push(c);\n while (true) {\n if (data.index > length) {\n return \"\";\n }\n\n bits = 0;\n maxpower = Math.pow(2,numBits);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (c = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 2:\n return result.join('');\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n if (dictionary[c]) {\n entry = dictionary[c];\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0);\n } else {\n return null;\n }\n }\n result.push(entry);\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0);\n enlargeIn--;\n\n w = entry;\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n }\n }\n};\n return LZString;\n})();\n\nif (typeof define === 'function' && define.amd) {\n define(function () { return LZString; });\n} else if( typeof module !== 'undefined' && module != null ) {\n module.exports = LZString\n}\n","import lz from 'lz-string'\nimport config from '../../config.json'\nimport type { VersionId } from './Schemas'\n\nconst API_PREFIX = 'https://z15g7can.directus.app/items'\nexport const SHARE_KEY = 'share'\n\nconst ShareCache = new Map()\n\nexport async function shareSnippet(type: string, version: VersionId, jsonData: any, show_preview: boolean) {\n\ttry {\n\t\tconst data = lz.compressToBase64(JSON.stringify(jsonData))\n\t\tconst raw = btoa(JSON.stringify(jsonData))\n\t\tconsole.log('Compression rate', raw.length / data.length)\n\t\tconst body = JSON.stringify({ data, type, version, show_preview })\n\t\tlet id = ShareCache.get(body)\n\t\tif (!id) {\n\t\t\tconst snippet = await fetchApi('/snippets', body)\n\t\t\tShareCache.set(body, snippet.id)\n\t\t\tid = snippet.id as string\n\t\t}\n\t\tconst gen = config.generators.find(g => g.id === type)!\n\t\treturn `${location.protocol}//${location.host}/${gen.url}/?${SHARE_KEY}=${id}`\n\t} catch (e) {\n\t\tif (e instanceof Error) {\n\t\t\te.message = `Error creating share link: ${e.message}`\n\t\t}\n\t\tthrow e\n\t}\n}\n\nexport async function getSnippet(id: string) {\n\ttry {\n\t\tconst snippet = await fetchApi(`/snippets/${id}`)\n\t\treturn {\n\t\t\t...snippet,\n\t\t\tdata: JSON.parse(lz.decompressFromBase64(snippet.data) ?? '{}'),\n\t\t}\n\t} catch (e) {\n\t\tif (e instanceof Error) {\n\t\t\te.message = `Error loading shared content: ${e.message}`\n\t\t}\n\t\tthrow e\n\t}\n}\n\nasync function fetchApi(url: string, body?: string) {\n\tconst res = await fetch(API_PREFIX + url, body ? {\n\t\tmethod: 'post',\n\t\theaders: { 'Content-Type': 'application/json' },\n\t\tbody,\n\t} : undefined)\n\tconst data = await res.json()\n\tif (data.data) {\n\t\treturn data.data\n\t}\n\tthrow new Error(data.errors?.[0]?.message ?? 'Unknown error')\n}\n","import type { Project } from './contexts'\nimport { DRAFT_PROJECT } from './contexts'\nimport type { VersionId } from './services'\nimport { VersionIds } from './services'\n\nexport namespace Store {\n\texport const ID_LANGUAGE = 'language'\n\texport const ID_THEME = 'theme'\n\texport const ID_VERSION = 'schema_version'\n\texport const ID_INDENT = 'indentation'\n\texport const ID_FORMAT = 'output_format'\n\texport const ID_HIGHLIGHTING = 'output_highlighting'\n\texport const ID_SOUNDS_VERSION = 'minecraft_sounds_version'\n\texport const ID_PROJECTS = 'misode_projects'\n\texport const ID_BACKUPS = 'misode_generator_backups'\n\n\texport function getLanguage() {\n\t\treturn localStorage.getItem(ID_LANGUAGE) ?? 'en'\n\t}\n\n\texport function getTheme() {\n\t\treturn localStorage.getItem(ID_THEME) ?? 'dark'\n\t}\n\n\texport function getVersion(): VersionId {\n\t\tconst version = localStorage.getItem(ID_VERSION)\n\t\tif (version && VersionIds.includes(version as VersionId)) {\n\t\t\treturn version as VersionId\n\t\t}\n\t\treturn '1.18.2'\n\t}\n\n\texport function getIndent() {\n\t\treturn localStorage.getItem(ID_INDENT) ?? '2_spaces'\n\t}\n\n\texport function getFormat() {\n\t\treturn localStorage.getItem(ID_FORMAT) ?? 'json'\n\t}\n\n\texport function getHighlighting() {\n\t\treturn localStorage.getItem(ID_HIGHLIGHTING) !== 'false'\n\t}\n\n\texport function getSoundsVersion() {\n\t\treturn localStorage.getItem(ID_SOUNDS_VERSION) ?? 'latest'\n\t}\n\n\texport function getProjects(): Project[] {\n\t\tconst projects = localStorage.getItem(ID_PROJECTS)\n\t\tif (projects) {\n\t\t\treturn JSON.parse(projects) as Project[]\n\t\t}\n\t\treturn [DRAFT_PROJECT]\n\t}\n\n\texport function getBackup(id: string): object | undefined {\n\t\tconst backups = JSON.parse(localStorage.getItem(ID_BACKUPS) ?? '{}')\n\t\treturn backups[id]\n\t}\n\n\texport function setLanguage(language: string | undefined) {\n\t\tif (language) localStorage.setItem(ID_LANGUAGE, language)\n\t}\n\n\texport function setTheme(theme: string | undefined) {\n\t\tif (theme) localStorage.setItem(ID_THEME, theme)\n\t}\n\n\texport function setVersion(version: VersionId | undefined) {\n\t\tif (version) localStorage.setItem(ID_VERSION, version)\n\t}\n\n\texport function setIndent(indent: string | undefined) {\n\t\tif (indent) localStorage.setItem(ID_INDENT, indent)\n\t}\n\n\texport function setFormat(format: string | undefined) {\n\t\tif (format) localStorage.setItem(ID_FORMAT, format)\n\t}\n\n\texport function setHighlighting(highlighting: boolean | undefined) {\n\t\tif (highlighting !== undefined) localStorage.setItem(ID_HIGHLIGHTING, highlighting.toString())\n\t}\n\n\texport function setSoundsVersion(version: string | undefined) {\n\t\tif (version) localStorage.setItem(ID_SOUNDS_VERSION, version)\n\t}\n\n\texport function setProjects(projects: Project[] | undefined) {\n\t\tif (projects) localStorage.setItem(ID_PROJECTS, JSON.stringify(projects))\n\t}\n\n\texport function setBackup(id: string, data: object | undefined) {\n\t\tconst backups = JSON.parse(localStorage.getItem(ID_BACKUPS) ?? '{}')\n\t\tif (data === undefined) {\n\t\t\tdelete backups[id]\n\t\t} else {\n\t\t\tbackups[id] = data\n\t\t}\n\t\tlocalStorage.setItem(ID_BACKUPS, JSON.stringify(backups))\n\t}\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport English from '../../locales/en.json'\nimport { Analytics } from '../Analytics'\nimport { Store } from '../Store'\n\ninterface Locale {\n\tlang: string,\n\tlocale: (key: string, ...params: string[]) => string,\n\tchangeLanguage: (lang: string) => unknown,\n}\nconst Locale = createContext({\n\tlang: 'none',\n\tlocale: key => key,\n\tchangeLanguage: () => {},\n})\n\nexport const Locales: {\n\t[key: string]: {\n\t\t[key: string]: string,\n\t},\n} = {\n\tfallback: English,\n}\n\nexport function localize(lang: string, key: string, ...params: string[]) {\n\tconst value: string | undefined = Locales[lang]?.[key]\n\t?? Locales.en?.[key] ?? Locales.fallback[key] ?? key\n\treturn resolveLocaleParams(value, params)\n}\n\nfunction resolveLocaleParams(value: string, params?: string[]): string {\n\treturn value.replace(/%\\d+%/g, match => {\n\t\tconst index = parseInt(match.slice(1, -1))\n\t\treturn params?.[index] !== undefined ? params[index] : match\n\t})\n}\n\nasync function loadLocale(language: string) {\n\tif (Locales[language]) return\n\tconst langConfig = config.languages.find(lang => lang.code === language)\n\tif (!langConfig) return\n\tconst data = await import(`../../locales/${language}.json`)\n\tconst schema = langConfig.schemas !== false\n\t\t&& await import(`../../../node_modules/@mcschema/locales/src/${language}.json`)\n\tLocales[language] = { ...data.default, ...schema.default }\n}\n\nexport function useLocale() {\n\treturn useContext(Locale)\n}\n\nexport function LocaleProvider({ children }: { children: ComponentChildren }) {\n\tconst [lang, setLanguage] = useState('none')\n\n\tconst locale = useCallback((key: string, ...params: string[]) => {\n\t\treturn localize(lang, key, ...params)\n\t}, [lang])\n\n\tconst changeLanguage = useCallback(async (lang: string) => {\n\t\tawait loadLocale(lang)\n\t\tAnalytics.setLanguage(lang)\n\t\tStore.setLanguage(lang)\n\t\tsetLanguage(lang)\n\t}, [])\n\n\tuseEffect(() => {\n\t\t(async () => {\n\t\t\tconst target = Store.getLanguage()\n\t\t\tawait Promise.all([\n\t\t\t\tloadLocale('en'),\n\t\t\t\t...(target !== 'en' ? [loadLocale(target)] : []),\n\t\t\t])\n\t\t\tsetLanguage(target)\n\t\t})()\n\t}, [])\n\n\tconst value: Locale = {\n\t\tlang,\n\t\tlocale: locale,\n\t\tchangeLanguage,\n\t}\n\n\treturn \n\t\t{children}\n\t\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { route } from 'preact-router'\nimport { useCallback, useContext, useMemo, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport type { VersionId } from '../services'\nimport { Store } from '../Store'\nimport { cleanUrl } from '../Utils'\n\nexport type Project = {\n\tname: string,\n\tnamespace: string,\n\tversion?: VersionId,\n\tfiles: ProjectFile[],\n}\nexport const DRAFT_PROJECT: Project = {\n\tname: 'Drafts',\n\tnamespace: 'draft',\n\tfiles: [],\n}\n\nexport type ProjectFile = {\n\ttype: string,\n\tid: string,\n\tdata: any,\n}\n\ninterface ProjectContext {\n\tproject: Project,\n\tfile?: ProjectFile,\n\tchangeProject: (name: string) => unknown,\n\tupdateProject: (project: Partial) => unknown,\n\tupdateFile: (type: string, id: string | undefined, file: Partial) => boolean,\n\topenFile: (type: string, id: string) => unknown,\n\tcloseFile: () => unknown,\n}\nconst Project = createContext({\n\tproject: DRAFT_PROJECT,\n\tchangeProject: () => {},\n\tupdateProject: () => {},\n\tupdateFile: () => false,\n\topenFile: () => {},\n\tcloseFile: () => {},\n})\n\nexport function useProject() {\n\treturn useContext(Project)\n}\n\nexport function ProjectProvider({ children }: { children: ComponentChildren }) {\n\tconst [projects, setProjects] = useState(Store.getProjects())\n\n\tconst [projectName, setProjectName] = useState(DRAFT_PROJECT.name)\n\tconst project = useMemo(() => {\n\t\treturn projects.find(p => p.name === projectName) ?? DRAFT_PROJECT\n\t}, [projects, projectName])\n\n\tconst [fileId, setFileId] = useState<[string, string] | undefined>(undefined)\n\tconst file = useMemo(() => {\n\t\tif (!fileId) return undefined\n\t\treturn project.files.find(f => f.type === fileId[0] && f.id === fileId[1])\n\t}, [project, fileId])\n\n\tconst changeProjects = useCallback((projects: Project[]) => {\n\t\tStore.setProjects(projects)\n\t\tsetProjects(projects)\n\t}, [])\n\n\tconst updateProject = useCallback((edits: Partial) => {\n\t\tchangeProjects(projects.map(p => p.name === projectName ?\t{ ...p, ...edits } : p))\n\t}, [projects, projectName])\n\n\tconst updateFile = useCallback((type: string, id: string | undefined, edits: Partial) => {\n\t\tif (!edits.id) { // remove\n\t\t\tupdateProject({ files: project.files.filter(f => f.type !== type || f.id !== id) })\n\t\t} else {\n\t\t\tconst newId = edits.id.includes(':') ? edits.id : `${project.namespace}:${edits.id}`\n\t\t\tconst exists = project.files.some(f => f.type === type && f.id === newId)\n\t\t\tif (!id) { // create\n\t\t\t\tif (exists) return false\n\t\t\t\tupdateProject({ files: [...project.files, { type, id: newId, data: edits.data ?? {} } ]})\n\t\t\t\tsetFileId([type, newId])\n\t\t\t} else { // rename or update data\n\t\t\t\tif (file?.id === id && id !== newId && exists) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tupdateProject({ files: project.files.map(f => f.type === type && f.id === id ? { ...f, ...edits, id: newId } : f)})\n\t\t\t\tif (file?.id === id) setFileId([type, newId])\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}, [updateProject, project, file])\n\n\tconst openFile = useCallback((type: string, id: string) => {\n\t\tconst gen = config.generators.find(g => g.id === type || g.path === type)\n\t\tif (!gen) {\n\t\t\tthrow new Error(`Cannot find generator of type ${type}`)\n\t\t}\n\t\tsetFileId([gen.id, id])\n\t\troute(cleanUrl(gen.url))\n\t}, [])\n\n\tconst closeFile = useCallback(() => {\n\t\tsetFileId(undefined)\n\t}, [])\n\n\tconst value: ProjectContext = {\n\t\tproject,\n\t\tfile,\n\t\tchangeProject: setProjectName,\n\t\tupdateProject,\n\t\tupdateFile,\n\t\topenFile,\n\t\tcloseFile,\n\t}\n\n\treturn \n\t\t{children}\n\t\n}\n\nexport function getFilePath(file: ProjectFile) {\n\tconst [namespace, id] = file.id.includes(':') ? file.id.split(':') : ['minecraft', file.id]\n\tconst gen = config.generators.find(g => g.id === file.type)\n\tif (!gen) {\n\t\tthrow new Error(`Cannot find generator of type ${file.type}`)\n\t}\n\treturn `data/${namespace}/${gen.path ?? gen.id}/${id}`\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport { Analytics } from '../Analytics'\nimport { useMediaQuery } from '../hooks'\nimport { Store } from '../Store'\n\ninterface Theme {\n\ttheme: string,\n\tactualTheme: 'light' | 'dark',\n\tchangeTheme: (theme: string) => unknown,\n}\nconst Theme = createContext({\n\ttheme: 'dark',\n\tactualTheme: 'dark',\n\tchangeTheme: () => {},\n})\n\nexport function useTheme() {\n\treturn useContext(Theme)\n}\n\nexport function ThemeProvider({ children }: { children: ComponentChildren }) {\n\tconst [theme, setTheme] = useState(Store.getTheme())\n\tconst prefersLight = useMediaQuery('(prefers-color-scheme: light)')\n\tconst prefersDark = useMediaQuery('(prefers-color-scheme: dark)')\n\n\tuseEffect(() => {\n\t\tdocument.documentElement.setAttribute('data-theme', theme)\n\t}, [theme])\n\n\tconst changeTheme = useCallback((theme: string) => {\n\t\tAnalytics.setTheme(theme)\n\t\tStore.setTheme(theme)\n\t\tsetTheme(theme)\n\t}, [])\n\n\tuseEffect(() => {\n\t\tAnalytics.setPrefersColorScheme(prefersLight ? 'light' : prefersDark ? 'dark' : 'none')\n\t}, [prefersLight, prefersDark])\n\n\tconst value: Theme = {\n\t\ttheme,\n\t\tactualTheme: theme === 'light' || (theme !== 'dark' && prefersLight) ? 'light' : 'dark',\n\t\tchangeTheme,\n\t}\n\n\treturn \n\t\t{children}\n\t\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport { useLocale } from '.'\nimport config from '../../config.json'\nimport type { VersionId } from '../services'\n\nconst VERSIONS_IN_TITLE = 3\n\ninterface Title {\n\ttitle: string,\n\tchangeTitle: (title: string, versions?: VersionId[]) => unknown,\n}\nconst Title = createContext({\n\ttitle: '',\n\tchangeTitle: () => {},\n})\n\nexport function useTitle(title?: string, versions?: VersionId[]) {\n\tconst context = useContext(Title)\n\tuseEffect(() => {\n\t\tif (title) {\n\t\t\tcontext.changeTitle(title, versions)\n\t\t}\n\t}, [title, versions])\n\treturn context\n}\n\nexport function TitleProvider({ children }: { children: ComponentChildren }) {\n\tconst { locale } = useLocale()\n\tconst [title, setTitle] = useState<string>(locale('title.home'))\n\n\tconst changeTitle = useCallback((title: string, versions?: VersionId[]) => {\n\t\tversions ??= config.versions.map(v => v.id as VersionId)\n\t\tconst titleVersions = versions.slice(-VERSIONS_IN_TITLE)\n\t\tdocument.title = `${title} Minecraft ${titleVersions.join(', ')}`\n\t\tsetTitle(title)\n\t}, [])\n\n\tconst value = {\n\t\ttitle,\n\t\tchangeTitle,\n\t}\n\n\treturn <Title.Provider value={value}>\n\t\t{children}\n\t</Title.Provider>\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport { Analytics } from '../Analytics'\nimport { useSearchParam } from '../hooks'\nimport type { VersionId } from '../services'\nimport { VersionIds } from '../services'\nimport { Store } from '../Store'\n\nconst VERSION_PARAM = 'version'\n\ninterface Version {\n\tversion: VersionId,\n\tchangeVersion: (version: VersionId, store?: boolean, updateSearch?: boolean) => unknown,\n\tchangeTargetVersion: (version: VersionId, replace?: boolean) => unknown,\n}\nconst Version = createContext<Version>({\n\tversion: '1.18.2',\n\tchangeVersion: () => {},\n\tchangeTargetVersion: () => {},\n})\n\nexport function useVersion() {\n\treturn useContext(Version)\n}\n\nexport function VersionProvider({ children }: { children: ComponentChildren }) {\n\tconst [version, setVersion] = useState<VersionId>(Store.getVersion())\n\n\tconst [targetVersion, changeTargetVersion] = useSearchParam(VERSION_PARAM)\n\n\tuseEffect(() => {\n\t\tif (VersionIds.includes(targetVersion as VersionId) && version !== targetVersion) {\n\t\t\tsetVersion(targetVersion as VersionId)\n\t\t}\n\t}, [version, targetVersion])\n\n\tconst changeVersion = useCallback((newVersion: VersionId, store = true, updateSearch = false) => {\n\t\tif (updateSearch || targetVersion) {\n\t\t\tchangeTargetVersion(newVersion, true)\n\t\t}\n\t\tif (store) {\n\t\t\tAnalytics.setVersion(newVersion)\n\t\t\tStore.setVersion(newVersion)\n\t\t}\n\t\tsetVersion(newVersion)\n\t}, [targetVersion])\n\n\tconst value: Version = {\n\t\tversion,\n\t\tchangeVersion,\n\t\tchangeTargetVersion,\n\t}\n\n\treturn <Version.Provider value={value}>\n\t\t{children}\n\t</Version.Provider>\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<<MAX_BITS)-1,\n // \"inconsistent bit counts\");\n //Tracev((stderr,\"\\ngen_codes: max_code %d \", max_code));\n\n for (n = 0; n <= max_code; n++) {\n let len = tree[n * 2 + 1]/*.Len*/;\n if (len === 0) { continue; }\n /* Now reverse the bits */\n tree[n * 2]/*.Code*/ = bi_reverse(next_code[len]++, len);\n\n //Tracecv(tree != static_ltree, (stderr,\"\\nn %3d %c l %2d c %4x (%x) \",\n // n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));\n }\n};\n\n\n/* ===========================================================================\n * Initialize the various 'constant' tables.\n */\nconst tr_static_init = () => {\n\n let n; /* iterates over tree elements */\n let bits; /* bit counter */\n let length; /* length value */\n let code; /* code value */\n let dist; /* distance index */\n const bl_count = new Array(MAX_BITS$1 + 1);\n /* number of codes at each bit length for an optimal tree */\n\n // do check in _tr_init()\n //if (static_init_done) return;\n\n /* For some embedded targets, global variables are not initialized: */\n/*#ifdef NO_INIT_GLOBAL_POINTERS\n static_l_desc.static_tree = static_ltree;\n static_l_desc.extra_bits = extra_lbits;\n static_d_desc.static_tree = static_dtree;\n static_d_desc.extra_bits = extra_dbits;\n static_bl_desc.extra_bits = extra_blbits;\n#endif*/\n\n /* Initialize the mapping length (0..255) -> length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES$1 - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES$1; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES$1 + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES$1; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS$1 + 1, L_CODES$1, MAX_BITS$1);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES$1, MAX_BITS$1);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES$1, MAX_BL_BITS);\n\n //static_init_done = true;\n};\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nconst init_block = (s) => {\n\n let n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES$1; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES$1; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES$1; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nconst bi_windup = (s) =>\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n};\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nconst copy_block = (s, buf, len, header) =>\n//DeflateState *s;\n//charf *buf; /* the input data */\n//unsigned len; /* its length */\n//int header; /* true if block header must be written */\n{\n bi_windup(s); /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n }\n// while (len--) {\n// put_byte(s, *buf++);\n// }\n s.pending_buf.set(s.window.subarray(buf, buf + len), s.pending);\n s.pending += len;\n};\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nconst smaller = (tree, n, m, depth) => {\n\n const _n2 = n * 2;\n const _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n};\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nconst pqdownheap = (s, tree, k) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n{\n const v = s.heap[k];\n let j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n};\n\n\n// inlined manually\n// const SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nconst compress_block = (s, ltree, dtree) =>\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n{\n let dist; /* distance of matched string */\n let lc; /* match length or unmatched char (if dist == 0) */\n let lx = 0; /* running index in l_buf */\n let code; /* the code to send */\n let extra; /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS$1 + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n\n } while (lx < s.last_lit);\n }\n\n send_code(s, END_BLOCK, ltree);\n};\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nconst build_tree = (s, desc) =>\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n const tree = desc.dyn_tree;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const elems = desc.stat_desc.elems;\n let n, m; /* iterate over heap elements */\n let max_code = -1; /* largest code with non zero frequency */\n let node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE$1;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n};\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nconst scan_tree = (s, tree, max_code) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nconst send_tree = (s, tree, max_code) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nconst build_bl_tree = (s) => {\n\n let max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES$1 - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n};\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nconst send_all_trees = (s, lcodes, dcodes, blcodes) =>\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n let rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n};\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nconst detect_data_type = (s) => {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n let black_mask = 0xf3ffc07f;\n let n;\n\n /* Check for non-textual (\"black-listed\") bytes. */\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"white-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS$1; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n};\n\n\nlet static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nconst _tr_init$1 = (s) =>\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n};\n\n\n/* ===========================================================================\n * Send a stored block\n */\nconst _tr_stored_block$1 = (s, buf, stored_len, last) =>\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n copy_block(s, buf, stored_len, true); /* with header */\n};\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nconst _tr_align$1 = (s) => {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n};\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nconst _tr_flush_block$1 = (s, buf, stored_len, last) =>\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n let opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n let max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN$1) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block$1(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED$1 || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n};\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nconst _tr_tally$1 = (s, dist, lc) =>\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n //let out_length, in_length, dcode;\n\n s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS$1 + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n\n//#ifdef TRUNCATE_BLOCK\n// /* Try to guess if it is profitable to stop the current block here */\n// if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n// /* Compute an upper bound for the compressed length */\n// out_length = s.last_lit*8;\n// in_length = s.strstart - s.block_start;\n//\n// for (dcode = 0; dcode < D_CODES; dcode++) {\n// out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n// }\n// out_length >>>= 3;\n// //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n// // s->last_lit, in_length, out_length,\n// // 100L - out_length*100L/in_length));\n// if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n// return true;\n// }\n// }\n//#endif\n\n return (s.last_lit === s.lit_bufsize - 1);\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n};\n\nvar _tr_init_1 = _tr_init$1;\nvar _tr_stored_block_1 = _tr_stored_block$1;\nvar _tr_flush_block_1 = _tr_flush_block$1;\nvar _tr_tally_1 = _tr_tally$1;\nvar _tr_align_1 = _tr_align$1;\n\nvar trees = {\n\t_tr_init: _tr_init_1,\n\t_tr_stored_block: _tr_stored_block_1,\n\t_tr_flush_block: _tr_flush_block_1,\n\t_tr_tally: _tr_tally_1,\n\t_tr_align: _tr_align_1\n};\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst adler32 = (adler, buf, len, pos) => {\n let s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n};\n\n\nvar adler32_1 = adler32;\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nconst makeTable = () => {\n let c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n};\n\n// Create table on load. Just 255 signed longs. Not a problem.\nconst crcTable = new Uint32Array(makeTable());\n\n\nconst crc32 = (crc, buf, len, pos) => {\n const t = crcTable;\n const end = pos + len;\n\n crc ^= -1;\n\n for (let i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n};\n\n\nvar crc32_1 = crc32;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar messages = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar constants$2 = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align } = trees;\n\n\n\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$2, Z_PARTIAL_FLUSH, Z_FULL_FLUSH: Z_FULL_FLUSH$1, Z_FINISH: Z_FINISH$3, Z_BLOCK: Z_BLOCK$1,\n Z_OK: Z_OK$3, Z_STREAM_END: Z_STREAM_END$3, Z_STREAM_ERROR: Z_STREAM_ERROR$2, Z_DATA_ERROR: Z_DATA_ERROR$2, Z_BUF_ERROR: Z_BUF_ERROR$1,\n Z_DEFAULT_COMPRESSION: Z_DEFAULT_COMPRESSION$1,\n Z_FILTERED, Z_HUFFMAN_ONLY, Z_RLE, Z_FIXED, Z_DEFAULT_STRATEGY: Z_DEFAULT_STRATEGY$1,\n Z_UNKNOWN,\n Z_DEFLATED: Z_DEFLATED$2\n} = constants$2;\n\n/*============================================================================*/\n\n\nconst MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nconst MAX_WBITS$1 = 15;\n/* 32K LZ77 window */\nconst DEF_MEM_LEVEL = 8;\n\n\nconst LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nconst LITERALS = 256;\n/* number of literal bytes 0..255 */\nconst L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nconst D_CODES = 30;\n/* number of distance codes */\nconst BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nconst HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\nconst MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst MIN_MATCH = 3;\nconst MAX_MATCH = 258;\nconst MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nconst PRESET_DICT = 0x20;\n\nconst INIT_STATE = 42;\nconst EXTRA_STATE = 69;\nconst NAME_STATE = 73;\nconst COMMENT_STATE = 91;\nconst HCRC_STATE = 103;\nconst BUSY_STATE = 113;\nconst FINISH_STATE = 666;\n\nconst BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nconst BS_BLOCK_DONE = 2; /* block flush performed */\nconst BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nconst BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nconst OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nconst err = (strm, errorCode) => {\n strm.msg = messages[errorCode];\n return errorCode;\n};\n\nconst rank = (f) => {\n return ((f) << 1) - ((f) > 4 ? 9 : 0);\n};\n\nconst zero = (buf) => {\n let len = buf.length; while (--len >= 0) { buf[len] = 0; }\n};\n\n\n/* eslint-disable new-cap */\nlet HASH_ZLIB = (s, prev, data) => ((prev << s.hash_shift) ^ data) & s.hash_mask;\n// This hash causes less collisions, https://github.com/nodeca/pako/issues/135\n// But breaks binary compatibility\n//let HASH_FAST = (s, prev, data) => ((prev << 8) + (prev >> 8) + (data << 4)) & s.hash_mask;\nlet HASH = HASH_ZLIB;\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\nconst flush_pending = (strm) => {\n const s = strm.state;\n\n //_tr_flush_bits(s);\n let len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n};\n\n\nconst flush_block_only = (s, last) => {\n _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n};\n\n\nconst put_byte = (s, b) => {\n s.pending_buf[s.pending++] = b;\n};\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nconst putShortMSB = (s, b) => {\n\n // put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n};\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nconst read_buf = (strm, buf, start, size) => {\n\n let len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32_1(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32_1(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n};\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nconst longest_match = (s, cur_match) => {\n\n let chain_length = s.max_chain_length; /* max hash chain length */\n let scan = s.strstart; /* current string */\n let match; /* matched string */\n let len; /* length of current match */\n let best_len = s.prev_length; /* best match length so far */\n let nice_match = s.nice_match; /* stop if match long enough */\n const limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n const _win = s.window; // shortcut\n\n const wmask = s.w_mask;\n const prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n const strend = s.strstart + MAX_MATCH;\n let scan_end1 = _win[scan + best_len - 1];\n let scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n};\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nconst fill_window = (s) => {\n\n const _w_size = s.w_size;\n let p, n, m, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n s.window.set(s.window.subarray(_w_size, _w_size + _w_size), 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n\n /* Slide the hash table (could be avoided with 32 bit values\n at the expense of memory usage). We slide even when level == 0\n to keep the hash table consistent if we switch back to level > 0\n later. (Using level 0 permanently is not an optimal usage of\n zlib, so we don't care about this pathological case.)\n */\n\n n = s.hash_size;\n p = n;\n\n do {\n m = s.head[--p];\n s.head[p] = (m >= _w_size ? m - _w_size : 0);\n } while (--n);\n\n n = _w_size;\n p = n;\n\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= _w_size ? m - _w_size : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + 1]);\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// const curr = s.strstart + s.lookahead;\n// let init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n};\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\nconst deflate_stored = (s, flush) => {\n\n /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n * to pending_buf_size, and each stored block has a 5 byte header:\n */\n let max_block_size = 0xffff;\n\n if (max_block_size > s.pending_buf_size - 5) {\n max_block_size = s.pending_buf_size - 5;\n }\n\n /* Copy as much as possible from input to output: */\n for (;;) {\n /* Fill the window as much as possible: */\n if (s.lookahead <= 1) {\n\n //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n // s->block_start >= (long)s->w_size, \"slide too late\");\n// if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n// s.block_start >= s.w_size)) {\n// throw new Error(\"slide too late\");\n// }\n\n fill_window(s);\n if (s.lookahead === 0 && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n }\n //Assert(s->block_start >= 0L, \"block gone\");\n// if (s.block_start < 0) throw new Error(\"block gone\");\n\n s.strstart += s.lookahead;\n s.lookahead = 0;\n\n /* Emit a stored block if pending_buf will be full: */\n const max_start = s.block_start + max_block_size;\n\n if (s.strstart === 0 || s.strstart >= max_start) {\n /* strstart == 0 is possible when wraparound on 16-bit machine */\n s.lookahead = s.strstart - max_start;\n s.strstart = max_start;\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n\n }\n /* Flush if we may have to slide, otherwise block_start may become\n * negative and the data will be gone:\n */\n if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n\n if (s.strstart > s.block_start) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_NEED_MORE;\n};\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nconst deflate_fast = (s, flush) => {\n\n let hash_head; /* head of the hash chain */\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + 1]);\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nconst deflate_slow = (s, flush) => {\n\n let hash_head; /* head of hash chain */\n let bflush; /* set if current block must be flushed */\n\n let max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n};\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nconst deflate_rle = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n let prev; /* byte at distance one to match */\n let scan, strend; /* scan goes up to strend for length of run */\n\n const _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nconst deflate_huff = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nconst configuration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nconst lm_init = (s) => {\n\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n};\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED$2; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new Uint16Array(HEAP_SIZE * 2);\n this.dyn_dtree = new Uint16Array((2 * D_CODES + 1) * 2);\n this.bl_tree = new Uint16Array((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new Uint16Array(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new Uint16Array(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new Uint16Array(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.l_buf = 0; /* buffer index for literals or lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.last_lit = 0; /* running index in l_buf */\n\n this.d_buf = 0;\n /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n * the same number of elements. To use different lengths, an extra flag\n * array would be necessary.\n */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\nconst deflateResetKeep = (strm) => {\n\n if (!strm || !strm.state) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n const s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status = (s.wrap ? INIT_STATE : BUSY_STATE);\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = Z_NO_FLUSH$2;\n _tr_init(s);\n return Z_OK$3;\n};\n\n\nconst deflateReset = (strm) => {\n\n const ret = deflateResetKeep(strm);\n if (ret === Z_OK$3) {\n lm_init(strm.state);\n }\n return ret;\n};\n\n\nconst deflateSetHeader = (strm, head) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$2; }\n if (strm.state.wrap !== 2) { return Z_STREAM_ERROR$2; }\n strm.state.gzhead = head;\n return Z_OK$3;\n};\n\n\nconst deflateInit2 = (strm, level, method, windowBits, memLevel, strategy) => {\n\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR$2;\n }\n let wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION$1) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED$2 ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n const s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new Uint8Array(s.w_size * 2);\n s.head = new Uint16Array(s.hash_size);\n s.prev = new Uint16Array(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n\n //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);\n //s->pending_buf = (uchf *) overlay;\n s.pending_buf = new Uint8Array(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);\n s.d_buf = 1 * s.lit_bufsize;\n\n //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;\n s.l_buf = (1 + 2) * s.lit_bufsize;\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n};\n\nconst deflateInit = (strm, level) => {\n\n return deflateInit2(strm, level, Z_DEFLATED$2, MAX_WBITS$1, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY$1);\n};\n\n\nconst deflate$2 = (strm, flush) => {\n\n let beg, val; // for gzip header write only\n\n if (!strm || !strm.state ||\n flush > Z_BLOCK$1 || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR$2) : Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n\n if (!strm.output ||\n (!strm.input && strm.avail_in !== 0) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH$3)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR$1 : Z_STREAM_ERROR$2);\n }\n\n s.strm = strm; /* just in case */\n const old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Write the header */\n if (s.status === INIT_STATE) {\n\n if (s.wrap === 2) { // GZIP header\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n else // DEFLATE header\n {\n let header = (Z_DEFLATED$2 + ((s.w_bits - 8) << 4)) << 8;\n let level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n s.status = BUSY_STATE;\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n }\n }\n\n//#ifdef GZIP\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n\n while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n break;\n }\n }\n put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n s.gzindex++;\n }\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (s.gzindex === s.gzhead.extra.length) {\n s.gzindex = 0;\n s.status = NAME_STATE;\n }\n }\n else {\n s.status = NAME_STATE;\n }\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.gzindex = 0;\n s.status = COMMENT_STATE;\n }\n }\n else {\n s.status = COMMENT_STATE;\n }\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.status = HCRC_STATE;\n }\n }\n else {\n s.status = HCRC_STATE;\n }\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n }\n if (s.pending + 2 <= s.pending_buf_size) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n }\n }\n else {\n s.status = BUSY_STATE;\n }\n }\n//#endif\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK$3;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH$3) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH$2 && s.status !== FINISH_STATE)) {\n let bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :\n (s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush));\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK$3;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n _tr_align(s);\n }\n else if (flush !== Z_BLOCK$1) { /* FULL_FLUSH or SYNC_FLUSH */\n\n _tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH$1) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK$3;\n }\n }\n }\n //Assert(strm->avail_out > 0, \"bug2\");\n //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n if (flush !== Z_FINISH$3) { return Z_OK$3; }\n if (s.wrap <= 0) { return Z_STREAM_END$3; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK$3 : Z_STREAM_END$3;\n};\n\n\nconst deflateEnd = (strm) => {\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR$2;\n }\n\n const status = strm.state.status;\n if (status !== INIT_STATE &&\n status !== EXTRA_STATE &&\n status !== NAME_STATE &&\n status !== COMMENT_STATE &&\n status !== HCRC_STATE &&\n status !== BUSY_STATE &&\n status !== FINISH_STATE\n ) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR$2) : Z_OK$3;\n};\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nconst deflateSetDictionary = (strm, dictionary) => {\n\n let dictLength = dictionary.length;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n const wrap = s.wrap;\n\n if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n return Z_STREAM_ERROR$2;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32_1(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) { /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n let tmpDict = new Uint8Array(s.w_size);\n tmpDict.set(dictionary.subarray(dictLength - s.w_size, dictLength), 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n const avail = strm.avail_in;\n const next = strm.next_in;\n const input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH) {\n let str = s.strstart;\n let n = s.lookahead - (MIN_MATCH - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK$3;\n};\n\n\nvar deflateInit_1 = deflateInit;\nvar deflateInit2_1 = deflateInit2;\nvar deflateReset_1 = deflateReset;\nvar deflateResetKeep_1 = deflateResetKeep;\nvar deflateSetHeader_1 = deflateSetHeader;\nvar deflate_2$1 = deflate$2;\nvar deflateEnd_1 = deflateEnd;\nvar deflateSetDictionary_1 = deflateSetDictionary;\nvar deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.deflateBound = deflateBound;\nmodule.exports.deflateCopy = deflateCopy;\nmodule.exports.deflateParams = deflateParams;\nmodule.exports.deflatePending = deflatePending;\nmodule.exports.deflatePrime = deflatePrime;\nmodule.exports.deflateTune = deflateTune;\n*/\n\nvar deflate_1$2 = {\n\tdeflateInit: deflateInit_1,\n\tdeflateInit2: deflateInit2_1,\n\tdeflateReset: deflateReset_1,\n\tdeflateResetKeep: deflateResetKeep_1,\n\tdeflateSetHeader: deflateSetHeader_1,\n\tdeflate: deflate_2$1,\n\tdeflateEnd: deflateEnd_1,\n\tdeflateSetDictionary: deflateSetDictionary_1,\n\tdeflateInfo: deflateInfo\n};\n\nconst _has = (obj, key) => {\n return Object.prototype.hasOwnProperty.call(obj, key);\n};\n\nvar assign = function (obj /*from1, from2, from3, ...*/) {\n const sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n const source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (const p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// Join array of chunks to single array.\nvar flattenChunks = (chunks) => {\n // calculate data length\n let len = 0;\n\n for (let i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n const result = new Uint8Array(len);\n\n for (let i = 0, pos = 0, l = chunks.length; i < l; i++) {\n let chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n};\n\nvar common = {\n\tassign: assign,\n\tflattenChunks: flattenChunks\n};\n\n// String encode/decode helpers\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\nlet STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nconst _utf8len = new Uint8Array(256);\nfor (let q = 0; q < 256; q++) {\n _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n}\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nvar string2buf = (str) => {\n if (typeof TextEncoder === 'function' && TextEncoder.prototype.encode) {\n return new TextEncoder().encode(str);\n }\n\n let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new Uint8Array(buf_len);\n\n // convert\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper\nconst buf2binstring = (buf, len) => {\n // On Chrome, the arguments in a function call that are allowed is `65534`.\n // If the length of the buffer is smaller than that, we can use this optimization,\n // otherwise we will take a slower path.\n if (len < 65534) {\n if (buf.subarray && STR_APPLY_UIA_OK) {\n return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len));\n }\n }\n\n let result = '';\n for (let i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n};\n\n\n// convert array to string\nvar buf2string = (buf, max) => {\n const len = max || buf.length;\n\n if (typeof TextDecoder === 'function' && TextDecoder.prototype.decode) {\n return new TextDecoder().decode(buf.subarray(0, max));\n }\n\n let i, out;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n const utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n let c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n let c_len = _utf8len[c];\n // skip 5 & 6 byte codes\n if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nvar utf8border = (buf, max) => {\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n let pos = max - 1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means buffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\nvar strings = {\n\tstring2buf: string2buf,\n\tbuf2string: buf2string,\n\tutf8border: utf8border\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nvar zstream = ZStream;\n\nconst toString$1 = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$1, Z_SYNC_FLUSH, Z_FULL_FLUSH, Z_FINISH: Z_FINISH$2,\n Z_OK: Z_OK$2, Z_STREAM_END: Z_STREAM_END$2,\n Z_DEFAULT_COMPRESSION,\n Z_DEFAULT_STRATEGY,\n Z_DEFLATED: Z_DEFLATED$1\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overridden.\n **/\n\n/**\n * Deflate.result -> Uint8Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * , chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nfunction Deflate$1(options) {\n this.options = common.assign({\n level: Z_DEFAULT_COMPRESSION,\n method: Z_DEFLATED$1,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY\n }, options || {});\n\n let opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = deflate_1$2.deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n if (opt.header) {\n deflate_1$2.deflateSetHeader(this.strm, opt.header);\n }\n\n if (opt.dictionary) {\n let dict;\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n // If we need to compress text, change encoding to utf8.\n dict = strings.string2buf(opt.dictionary);\n } else if (toString$1.call(opt.dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(opt.dictionary);\n } else {\n dict = opt.dictionary;\n }\n\n status = deflate_1$2.deflateSetDictionary(this.strm, dict);\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n this._dict_set = true;\n }\n}\n\n/**\n * Deflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer|String): input data. Strings will be\n * converted to utf8 byte sequence.\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must\n * have `flush_mode` Z_FINISH (or `true`). That will flush internal pending\n * buffers and call [[Deflate#onEnd]].\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nDeflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n let status, _flush_mode;\n\n if (this.ended) { return false; }\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH$2 : Z_NO_FLUSH$1;\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = strings.string2buf(data);\n } else if (toString$1.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n // Make sure avail_out > 6 to avoid repeating markers\n if ((_flush_mode === Z_SYNC_FLUSH || _flush_mode === Z_FULL_FLUSH) && strm.avail_out <= 6) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n status = deflate_1$2.deflate(strm, _flush_mode);\n\n // Ended => flush and finish\n if (status === Z_STREAM_END$2) {\n if (strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n }\n status = deflate_1$2.deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK$2;\n }\n\n // Flush if out buffer full\n if (strm.avail_out === 0) {\n this.onData(strm.output);\n continue;\n }\n\n // Flush if requested and has data\n if (_flush_mode > 0 && strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array): output data.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK$2) {\n this.result = common.flattenChunks(this.chunks);\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate algorithm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n * - dictionary\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const data = new Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate$1(input, options) {\n const deflator = new Deflate$1(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg || messages[deflator.err]; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return deflate$1(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip$1(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate$1(input, options);\n}\n\n\nvar Deflate_1$1 = Deflate$1;\nvar deflate_2 = deflate$1;\nvar deflateRaw_1$1 = deflateRaw$1;\nvar gzip_1$1 = gzip$1;\nvar constants$1 = constants$2;\n\nvar deflate_1$1 = {\n\tDeflate: Deflate_1$1,\n\tdeflate: deflate_2,\n\tdeflateRaw: deflateRaw_1$1,\n\tgzip: gzip_1$1,\n\tconstants: constants$1\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nconst BAD$1 = 30; /* got a data error -- remain here until reset */\nconst TYPE$1 = 12; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nvar inffast = function inflate_fast(strm, start) {\n let _in; /* local strm.input */\n let last; /* have enough input while in < last */\n let _out; /* local strm.output */\n let beg; /* inflate()'s initial strm.output */\n let end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n let dmax; /* maximum distance from zlib header */\n//#endif\n let wsize; /* window size or zero if not using window */\n let whave; /* valid bytes in the window */\n let wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n let s_window; /* allocated sliding window, if wsize != 0 */\n let hold; /* local strm.hold */\n let bits; /* local strm.bits */\n let lcode; /* local strm.lencode */\n let dcode; /* local strm.distcode */\n let lmask; /* mask for first level of length codes */\n let dmask; /* mask for first level of distance codes */\n let here; /* retrieved table entry */\n let op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n let len; /* match length, unused bytes */\n let dist; /* match distance */\n let from; /* where to copy match from */\n let from_source;\n\n\n let input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n const state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE$1;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst MAXBITS = 15;\nconst ENOUGH_LENS$1 = 852;\nconst ENOUGH_DISTS$1 = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst CODES$1 = 0;\nconst LENS$1 = 1;\nconst DISTS$1 = 2;\n\nconst lbase = new Uint16Array([ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n]);\n\nconst lext = new Uint8Array([ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n]);\n\nconst dbase = new Uint16Array([ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n]);\n\nconst dext = new Uint8Array([ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n]);\n\nconst inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) =>\n{\n const bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n let len = 0; /* a code's length in bits */\n let sym = 0; /* index of code symbols */\n let min = 0, max = 0; /* minimum and maximum code lengths */\n let root = 0; /* number of index bits for root table */\n let curr = 0; /* number of index bits for current table */\n let drop = 0; /* code bits to drop for sub-table */\n let left = 0; /* number of prefix codes available */\n let used = 0; /* code entries in table used */\n let huff = 0; /* Huffman code */\n let incr; /* for incrementing code, index */\n let fill; /* index for replicating entries */\n let low; /* low bits for current root entry */\n let mask; /* mask for low root bits */\n let next; /* next available space in table */\n let base = null; /* base value table to use */\n let base_index = 0;\n// let shoextra; /* extra bits table to use */\n let end; /* use base and extra for symbol > end */\n const count = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n const offs = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n let extra = null;\n let extra_index = 0;\n\n let here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES$1 || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES$1) {\n base = extra = work; /* dummy value--not used */\n end = 19;\n\n } else if (type === LENS$1) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n\n\nvar inftrees = inflate_table;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n\n\n\n\n\nconst CODES = 0;\nconst LENS = 1;\nconst DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_FINISH: Z_FINISH$1, Z_BLOCK, Z_TREES,\n Z_OK: Z_OK$1, Z_STREAM_END: Z_STREAM_END$1, Z_NEED_DICT: Z_NEED_DICT$1, Z_STREAM_ERROR: Z_STREAM_ERROR$1, Z_DATA_ERROR: Z_DATA_ERROR$1, Z_MEM_ERROR: Z_MEM_ERROR$1, Z_BUF_ERROR,\n Z_DEFLATED\n} = constants$2;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nconst HEAD = 1; /* i: waiting for magic header */\nconst FLAGS = 2; /* i: waiting for method and flags (gzip) */\nconst TIME = 3; /* i: waiting for modification time (gzip) */\nconst OS = 4; /* i: waiting for extra flags and operating system (gzip) */\nconst EXLEN = 5; /* i: waiting for extra length (gzip) */\nconst EXTRA = 6; /* i: waiting for extra bytes (gzip) */\nconst NAME = 7; /* i: waiting for end of file name (gzip) */\nconst COMMENT = 8; /* i: waiting for end of comment (gzip) */\nconst HCRC = 9; /* i: waiting for header crc (gzip) */\nconst DICTID = 10; /* i: waiting for dictionary check value */\nconst DICT = 11; /* waiting for inflateSetDictionary() call */\nconst TYPE = 12; /* i: waiting for type bits, including last-flag bit */\nconst TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */\nconst STORED = 14; /* i: waiting for stored size (length and complement) */\nconst COPY_ = 15; /* i/o: same as COPY below, but only first time in */\nconst COPY = 16; /* i/o: waiting for input or output to copy stored block */\nconst TABLE = 17; /* i: waiting for dynamic block table lengths */\nconst LENLENS = 18; /* i: waiting for code length code lengths */\nconst CODELENS = 19; /* i: waiting for length/lit and distance code lengths */\nconst LEN_ = 20; /* i: same as LEN below, but only first time in */\nconst LEN = 21; /* i: waiting for length/lit/eob code */\nconst LENEXT = 22; /* i: waiting for length extra bits */\nconst DIST = 23; /* i: waiting for distance code */\nconst DISTEXT = 24; /* i: waiting for distance extra bits */\nconst MATCH = 25; /* o: waiting for output space to copy string */\nconst LIT = 26; /* o: waiting for output space to write literal */\nconst CHECK = 27; /* i: waiting for 32-bit check value */\nconst LENGTH = 28; /* i: waiting for 32-bit length (gzip) */\nconst DONE = 29; /* finished check, done -- remain here until reset */\nconst BAD = 30; /* got a data error -- remain here until reset */\nconst MEM = 31; /* got an inflate() memory error -- remain here until reset */\nconst SYNC = 32; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nconst ENOUGH_LENS = 852;\nconst ENOUGH_DISTS = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst MAX_WBITS = 15;\n/* 32K LZ77 window */\nconst DEF_WBITS = MAX_WBITS;\n\n\nconst zswap32 = (q) => {\n\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n};\n\n\nfunction InflateState() {\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib) */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new Uint16Array(320); /* temporary storage for code lengths */\n this.work = new Uint16Array(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new Int32Array(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\n\nconst inflateResetKeep = (strm) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new Int32Array(ENOUGH_LENS);\n state.distcode = state.distdyn = new Int32Array(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK$1;\n};\n\n\nconst inflateReset = (strm) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n};\n\n\nconst inflateReset2 = (strm, windowBits) => {\n let wrap;\n\n /* get the state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 1;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR$1;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n};\n\n\nconst inflateInit2 = (strm, windowBits) => {\n\n if (!strm) { return Z_STREAM_ERROR$1; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n const state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.window = null/*Z_NULL*/;\n const ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK$1) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n};\n\n\nconst inflateInit = (strm) => {\n\n return inflateInit2(strm, DEF_WBITS);\n};\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nlet virgin = true;\n\nlet lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\n\nconst fixedtables = (state) => {\n\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n lenfix = new Int32Array(512);\n distfix = new Int32Array(32);\n\n /* literal/length table */\n let sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inftrees(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inftrees(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n};\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nconst updatewindow = (strm, src, end, copy) => {\n\n let dist;\n const state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new Uint8Array(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n state.window.set(src.subarray(end - state.wsize, end), 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n state.window.set(src.subarray(end - copy, end), 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n};\n\n\nconst inflate$2 = (strm, flush) => {\n\n let state;\n let input, output; // input/output buffers\n let next; /* next input INDEX */\n let put; /* next output INDEX */\n let have, left; /* available input and output */\n let hold; /* bit buffer */\n let bits; /* bits in bit buffer */\n let _in, _out; /* save starting available input and output */\n let copy; /* number of stored or match bytes to copy */\n let from; /* where to copy match bytes from */\n let from_source;\n let here = 0; /* current decoding table entry */\n let here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //let last; /* parent table entry */\n let last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n let len; /* length to copy for repeats, bits to drop */\n let ret; /* return code */\n const hbuf = new Uint8Array(4); /* buffer for gzip header crc calculation */\n let opts;\n\n let n; // temporary variable for NEED_BITS\n\n const order = /* permutation of code lengths */\n new Uint8Array([ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]);\n\n\n if (!strm || !strm.state || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR$1;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK$1;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n state.flags = 0; /* expect zlib header */\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n\n // !!! pako patch. Force use `options.windowBits` if passed.\n // Required to always use max window size by default.\n state.dmax = 1 << state.wbits;\n //state.dmax = 1 << len;\n\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32_1(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Uint8Array(state.head.extra_len);\n }\n state.head.extra.set(\n input.subarray(\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n next + copy\n ),\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT$1;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n output.set(input.subarray(next, next + copy), put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inftrees(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inftrees(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inftrees(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inffast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' instead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if (_out) {\n strm.adler = state.check =\n /*UPDATE(state.check, put - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, put - _out) : adler32_1(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END$1;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR$1;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR$1;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR$1;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH$1))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ;\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if (state.wrap && _out) {\n strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, strm.next_out - _out) : adler32_1(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH$1) && ret === Z_OK$1) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n};\n\n\nconst inflateEnd = (strm) => {\n\n if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {\n return Z_STREAM_ERROR$1;\n }\n\n let state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK$1;\n};\n\n\nconst inflateGetHeader = (strm, head) => {\n\n /* check state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR$1; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK$1;\n};\n\n\nconst inflateSetDictionary = (strm, dictionary) => {\n const dictLength = dictionary.length;\n\n let state;\n let dictid;\n let ret;\n\n /* check state */\n if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR$1; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR$1;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32_1(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR$1;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR$1;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK$1;\n};\n\n\nvar inflateReset_1 = inflateReset;\nvar inflateReset2_1 = inflateReset2;\nvar inflateResetKeep_1 = inflateResetKeep;\nvar inflateInit_1 = inflateInit;\nvar inflateInit2_1 = inflateInit2;\nvar inflate_2$1 = inflate$2;\nvar inflateEnd_1 = inflateEnd;\nvar inflateGetHeader_1 = inflateGetHeader;\nvar inflateSetDictionary_1 = inflateSetDictionary;\nvar inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.inflateCopy = inflateCopy;\nmodule.exports.inflateGetDictionary = inflateGetDictionary;\nmodule.exports.inflateMark = inflateMark;\nmodule.exports.inflatePrime = inflatePrime;\nmodule.exports.inflateSync = inflateSync;\nmodule.exports.inflateSyncPoint = inflateSyncPoint;\nmodule.exports.inflateUndermine = inflateUndermine;\n*/\n\nvar inflate_1$2 = {\n\tinflateReset: inflateReset_1,\n\tinflateReset2: inflateReset2_1,\n\tinflateResetKeep: inflateResetKeep_1,\n\tinflateInit: inflateInit_1,\n\tinflateInit2: inflateInit2_1,\n\tinflate: inflate_2$1,\n\tinflateEnd: inflateEnd_1,\n\tinflateGetHeader: inflateGetHeader_1,\n\tinflateSetDictionary: inflateSetDictionary_1,\n\tinflateInfo: inflateInfo\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\nvar gzheader = GZheader;\n\nconst toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH, Z_FINISH,\n Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overridden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * const chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nfunction Inflate$1(options) {\n this.options = common.assign({\n chunkSize: 1024 * 64,\n windowBits: 15,\n to: ''\n }, options || {});\n\n const opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = inflate_1$2.inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n\n this.header = new gzheader();\n\n inflate_1$2.inflateGetHeader(this.strm, this.header);\n\n // Setup dictionary\n if (opt.dictionary) {\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n opt.dictionary = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n opt.dictionary = new Uint8Array(opt.dictionary);\n }\n if (opt.raw) { //In raw mode we need to set the dictionary early\n status = inflate_1$2.inflateSetDictionary(this.strm, opt.dictionary);\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n }\n }\n}\n\n/**\n * Inflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer): input data\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE\n * flush modes. See constants. Skipped or `false` means Z_NO_FLUSH,\n * `true` means Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. If end of stream detected,\n * [[Inflate#onEnd]] will be called.\n *\n * `flush_mode` is not needed for normal operation, because end of stream\n * detected automatically. You may try to use it for advanced things, but\n * this functionality was not tested.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nInflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n const dictionary = this.options.dictionary;\n let status, _flush_mode, last_avail_out;\n\n if (this.ended) return false;\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;\n\n // Convert data if needed\n if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = inflate_1$2.inflate(strm, _flush_mode);\n\n if (status === Z_NEED_DICT && dictionary) {\n status = inflate_1$2.inflateSetDictionary(strm, dictionary);\n\n if (status === Z_OK) {\n status = inflate_1$2.inflate(strm, _flush_mode);\n } else if (status === Z_DATA_ERROR) {\n // Replace code with more verbose\n status = Z_NEED_DICT;\n }\n }\n\n // Skip snyc markers if more data follows and not raw mode\n while (strm.avail_in > 0 &&\n status === Z_STREAM_END &&\n strm.state.wrap > 0 &&\n data[strm.next_in] !== 0)\n {\n inflate_1$2.inflateReset(strm);\n status = inflate_1$2.inflate(strm, _flush_mode);\n }\n\n switch (status) {\n case Z_STREAM_ERROR:\n case Z_DATA_ERROR:\n case Z_NEED_DICT:\n case Z_MEM_ERROR:\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n // Remember real `avail_out` value, because we may patch out buffer content\n // to align utf8 strings boundaries.\n last_avail_out = strm.avail_out;\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === Z_STREAM_END) {\n\n if (this.options.to === 'string') {\n\n let next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n let tail = strm.next_out - next_out_utf8;\n let utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n // move tail & realign counters\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) strm.output.set(strm.output.subarray(next_out_utf8, next_out_utf8 + tail), 0);\n\n this.onData(utf8str);\n\n } else {\n this.onData(strm.output.length === strm.next_out ? strm.output : strm.output.subarray(0, strm.next_out));\n }\n }\n }\n\n // Must repeat iteration if out buffer is full\n if (status === Z_OK && last_avail_out === 0) continue;\n\n // Finalize if end of stream reached.\n if (status === Z_STREAM_END) {\n status = inflate_1$2.inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return true;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|String): output data. When string output requested,\n * each chunk will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = common.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako');\n * const input = pako.deflate(new Uint8Array([1,2,3,4,5,6,7,8,9]));\n * let output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err) {\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate$1(input, options) {\n const inflator = new Inflate$1(options);\n\n inflator.push(input);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) throw inflator.msg || messages[inflator.err];\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return inflate$1(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nvar Inflate_1$1 = Inflate$1;\nvar inflate_2 = inflate$1;\nvar inflateRaw_1$1 = inflateRaw$1;\nvar ungzip$1 = inflate$1;\nvar constants = constants$2;\n\nvar inflate_1$1 = {\n\tInflate: Inflate_1$1,\n\tinflate: inflate_2,\n\tinflateRaw: inflateRaw_1$1,\n\tungzip: ungzip$1,\n\tconstants: constants\n};\n\nconst { Deflate, deflate, deflateRaw, gzip } = deflate_1$1;\n\nconst { Inflate, inflate, inflateRaw, ungzip } = inflate_1$1;\n\n\n\nvar Deflate_1 = Deflate;\nvar deflate_1 = deflate;\nvar deflateRaw_1 = deflateRaw;\nvar gzip_1 = gzip;\nvar Inflate_1 = Inflate;\nvar inflate_1 = inflate;\nvar inflateRaw_1 = inflateRaw;\nvar ungzip_1 = ungzip;\nvar constants_1 = constants$2;\n\nvar pako = {\n\tDeflate: Deflate_1,\n\tdeflate: deflate_1,\n\tdeflateRaw: deflateRaw_1,\n\tgzip: gzip_1,\n\tInflate: Inflate_1,\n\tinflate: inflate_1,\n\tinflateRaw: inflateRaw_1,\n\tungzip: ungzip_1,\n\tconstants: constants_1\n};\n\nexport { Deflate_1 as Deflate, Inflate_1 as Inflate, constants_1 as constants, pako as default, deflate_1 as deflate, deflateRaw_1 as deflateRaw, gzip_1 as gzip, inflate_1 as inflate, inflateRaw_1 as inflateRaw, ungzip_1 as ungzip };\n","(function() {\n var base64map\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n crypt = {\n // Bit-wise rotation left\n rotl: function(n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n // Bit-wise rotation right\n rotr: function(n, b) {\n return (n << (32 - b)) | (n >>> b);\n },\n\n // Swap big-endian to little-endian and vice versa\n endian: function(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++)\n n[i] = crypt.endian(n[i]);\n return n;\n },\n\n // Generate an array of any length of random bytes\n randomBytes: function(n) {\n for (var bytes = []; n > 0; n--)\n bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - b % 32);\n return words;\n },\n\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a hex string\n bytesToHex: function(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n\n // Convert a hex string to a byte array\n hexToBytes: function(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n\n // Convert a byte array to a base-64 string\n bytesToBase64: function(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n for (var j = 0; j < 4; j++)\n if (i * 8 + j * 6 <= bytes.length * 8)\n base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n else\n base64.push('=');\n }\n return base64.join('');\n },\n\n // Convert a base-64 string to a byte array\n base64ToBytes: function(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n }\n return bytes;\n }\n };\n\n module.exports = crypt;\n})();\n","var charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n for (var bytes = [], i = 0; i < str.length; i++)\n bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++)\n str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\n\nmodule.exports = charenc;\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","(function(){\r\n var crypt = require('crypt'),\r\n utf8 = require('charenc').utf8,\r\n isBuffer = require('is-buffer'),\r\n bin = require('charenc').bin,\r\n\r\n // The core\r\n md5 = function (message, options) {\r\n // Convert to byte array\r\n if (message.constructor == String)\r\n if (options && options.encoding === 'binary')\r\n message = bin.stringToBytes(message);\r\n else\r\n message = utf8.stringToBytes(message);\r\n else if (isBuffer(message))\r\n message = Array.prototype.slice.call(message, 0);\r\n else if (!Array.isArray(message) && message.constructor !== Uint8Array)\r\n message = message.toString();\r\n // else, assume byte array already\r\n\r\n var m = crypt.bytesToWords(message),\r\n l = message.length * 8,\r\n a = 1732584193,\r\n b = -271733879,\r\n c = -1732584194,\r\n d = 271733878;\r\n\r\n // Swap endian\r\n for (var i = 0; i < m.length; i++) {\r\n m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |\r\n ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;\r\n }\r\n\r\n // Padding\r\n m[l >>> 5] |= 0x80 << (l % 32);\r\n m[(((l + 64) >>> 9) << 4) + 14] = l;\r\n\r\n // Method shortcuts\r\n var FF = md5._ff,\r\n GG = md5._gg,\r\n HH = md5._hh,\r\n II = md5._ii;\r\n\r\n for (var i = 0; i < m.length; i += 16) {\r\n\r\n var aa = a,\r\n bb = b,\r\n cc = c,\r\n dd = d;\r\n\r\n a = FF(a, b, c, d, m[i+ 0], 7, -680876936);\r\n d = FF(d, a, b, c, m[i+ 1], 12, -389564586);\r\n c = FF(c, d, a, b, m[i+ 2], 17, 606105819);\r\n b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);\r\n a = FF(a, b, c, d, m[i+ 4], 7, -176418897);\r\n d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);\r\n c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);\r\n b = FF(b, c, d, a, m[i+ 7], 22, -45705983);\r\n a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);\r\n d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);\r\n c = FF(c, d, a, b, m[i+10], 17, -42063);\r\n b = FF(b, c, d, a, m[i+11], 22, -1990404162);\r\n a = FF(a, b, c, d, m[i+12], 7, 1804603682);\r\n d = FF(d, a, b, c, m[i+13], 12, -40341101);\r\n c = FF(c, d, a, b, m[i+14], 17, -1502002290);\r\n b = FF(b, c, d, a, m[i+15], 22, 1236535329);\r\n\r\n a = GG(a, b, c, d, m[i+ 1], 5, -165796510);\r\n d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);\r\n c = GG(c, d, a, b, m[i+11], 14, 643717713);\r\n b = GG(b, c, d, a, m[i+ 0], 20, -373897302);\r\n a = GG(a, b, c, d, m[i+ 5], 5, -701558691);\r\n d = GG(d, a, b, c, m[i+10], 9, 38016083);\r\n c = GG(c, d, a, b, m[i+15], 14, -660478335);\r\n b = GG(b, c, d, a, m[i+ 4], 20, -405537848);\r\n a = GG(a, b, c, d, m[i+ 9], 5, 568446438);\r\n d = GG(d, a, b, c, m[i+14], 9, -1019803690);\r\n c = GG(c, d, a, b, m[i+ 3], 14, -187363961);\r\n b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);\r\n a = GG(a, b, c, d, m[i+13], 5, -1444681467);\r\n d = GG(d, a, b, c, m[i+ 2], 9, -51403784);\r\n c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);\r\n b = GG(b, c, d, a, m[i+12], 20, -1926607734);\r\n\r\n a = HH(a, b, c, d, m[i+ 5], 4, -378558);\r\n d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);\r\n c = HH(c, d, a, b, m[i+11], 16, 1839030562);\r\n b = HH(b, c, d, a, m[i+14], 23, -35309556);\r\n a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);\r\n d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);\r\n c = HH(c, d, a, b, m[i+ 7], 16, -155497632);\r\n b = HH(b, c, d, a, m[i+10], 23, -1094730640);\r\n a = HH(a, b, c, d, m[i+13], 4, 681279174);\r\n d = HH(d, a, b, c, m[i+ 0], 11, -358537222);\r\n c = HH(c, d, a, b, m[i+ 3], 16, -722521979);\r\n b = HH(b, c, d, a, m[i+ 6], 23, 76029189);\r\n a = HH(a, b, c, d, m[i+ 9], 4, -640364487);\r\n d = HH(d, a, b, c, m[i+12], 11, -421815835);\r\n c = HH(c, d, a, b, m[i+15], 16, 530742520);\r\n b = HH(b, c, d, a, m[i+ 2], 23, -995338651);\r\n\r\n a = II(a, b, c, d, m[i+ 0], 6, -198630844);\r\n d = II(d, a, b, c, m[i+ 7], 10, 1126891415);\r\n c = II(c, d, a, b, m[i+14], 15, -1416354905);\r\n b = II(b, c, d, a, m[i+ 5], 21, -57434055);\r\n a = II(a, b, c, d, m[i+12], 6, 1700485571);\r\n d = II(d, a, b, c, m[i+ 3], 10, -1894986606);\r\n c = II(c, d, a, b, m[i+10], 15, -1051523);\r\n b = II(b, c, d, a, m[i+ 1], 21, -2054922799);\r\n a = II(a, b, c, d, m[i+ 8], 6, 1873313359);\r\n d = II(d, a, b, c, m[i+15], 10, -30611744);\r\n c = II(c, d, a, b, m[i+ 6], 15, -1560198380);\r\n b = II(b, c, d, a, m[i+13], 21, 1309151649);\r\n a = II(a, b, c, d, m[i+ 4], 6, -145523070);\r\n d = II(d, a, b, c, m[i+11], 10, -1120210379);\r\n c = II(c, d, a, b, m[i+ 2], 15, 718787259);\r\n b = II(b, c, d, a, m[i+ 9], 21, -343485551);\r\n\r\n a = (a + aa) >>> 0;\r\n b = (b + bb) >>> 0;\r\n c = (c + cc) >>> 0;\r\n d = (d + dd) >>> 0;\r\n }\r\n\r\n return crypt.endian([a, b, c, d]);\r\n };\r\n\r\n // Auxiliary functions\r\n md5._ff = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & c | ~b & d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._gg = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & d | c & ~d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._hh = function (a, b, c, d, x, s, t) {\r\n var n = a + (b ^ c ^ d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._ii = function (a, b, c, d, x, s, t) {\r\n var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n\r\n // Package private blocksize\r\n md5._blocksize = 16;\r\n md5._digestsize = 16;\r\n\r\n module.exports = function (message, options) {\r\n if (message === undefined || message === null)\r\n throw new Error('Illegal argument ' + message);\r\n\r\n var digestbytes = crypt.wordsToBytes(md5(message, options));\r\n return options && options.asBytes ? digestbytes :\r\n options && options.asString ? bin.bytesToString(digestbytes) :\r\n crypt.bytesToHex(digestbytes);\r\n };\r\n\r\n})();\r\n","import t from\"pako\";import e from\"md5\";import{vec3 as s,mat4 as r,glMatrix as i}from\"gl-matrix\";var n,o;(o=n||(n={})).UP=\"up\",o.DOWN=\"down\",o.NORTH=\"north\",o.EAST=\"east\",o.SOUTH=\"south\",o.WEST=\"west\";const a={[n.UP]:[0,1,0],[n.DOWN]:[0,-1,0],[n.NORTH]:[0,0,-1],[n.EAST]:[1,0,0],[n.SOUTH]:[0,0,1],[n.WEST]:[-1,0,0]};var l,u;!function(t){t.ALL=[t.UP,t.DOWN,t.NORTH,t.EAST,t.SOUTH,t.WEST],t.normal=function(t){return a[t]}}(n||(n={})),(u=l||(l={})).create=function(t,e,s){return[t,e,s]},u.ZERO=u.create(0,0,0),u.offset=function(t,e,s,r){return[t[0]+e,t[1]+s,t[2]+r]},u.towards=function(t,e){return u.offset(t,...n.normal(e))},u.equals=function(t,e){return t===e||t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]},u.magnitude=function(t){return t[0]*t[0]+t[1]*t[1]+t[2]*t[2]};const h={end:0,byte:1,short:2,int:3,long:4,float:5,double:6,byteArray:7,string:8,list:9,compound:10,intArray:11,longArray:12},c=[\"end\",\"byte\",\"short\",\"int\",\"long\",\"float\",\"double\",\"byteArray\",\"string\",\"list\",\"compound\",\"intArray\",\"longArray\"];class f{constructor(t,e=!1){this.byte=this.readNum.bind(this,\"getInt8\",1),this.short=this.readNum.bind(this,\"getInt16\",2),this.int=this.readNum.bind(this,\"getInt32\",4),this.float=this.readNum.bind(this,\"getFloat32\",4),this.double=this.readNum.bind(this,\"getFloat64\",8),this.offset=0,this.littleEndian=e,this.arrayView=t,this.dataView=new DataView(t.buffer,t.byteOffset)}end(){return null}readNum(t,e){const s=this.dataView[t](this.offset,this.littleEndian);return this.offset+=e,s}long(){return[this.int(),this.int()]}byteArray(){const t=this.int(),e=[];for(let s=0;s<t;s++)e.push(this.byte());return e}intArray(){const t=this.int(),e=[];for(let s=0;s<t;s++)e.push(this.int());return e}longArray(){const t=this.int(),e=[];for(let s=0;s<t;s++)e.push(this.long());return e}string(){const t=this.short(),e=this.arrayView.slice(this.offset,this.offset+t);return this.offset+=t,function(t){var e,s=[];for(e=0;e<t.length;e++)0==(128&t[e])?s.push(127&t[e]):e+1<t.length&&192==(224&t[e])&&128==(192&t[e+1])?s.push((31&t[e])<<6|63&t[e+1]):e+2<t.length&&224==(240&t[e])&&128==(192&t[e+1])&&128==(192&t[e+2])?s.push((15&t[e])<<12|(63&t[e+1])<<6|63&t[e+2]):e+3<t.length&&240==(248&t[e])&&128==(192&t[e+1])&&128==(192&t[e+2])&&128==(192&t[e+3])&&s.push((7&t[e])<<18|(63&t[e+1])<<12|(63&t[e+2])<<6|63&t[e+3]);return String.fromCharCode.apply(null,s)}(e)}list(){const t=c[this.byte()],e=this.int(),s=[];for(let r=0;r<e;r++)s.push(this[t]());return{type:t,value:s}}compound(){const t={};for(;;){const e=c[this.byte()];if(\"end\"===e)break;const s=this.string(),r=this[e]();t[s]={type:e,value:r}}return t}}class m{constructor(t=!1){this.byte=this.writeNum.bind(this,\"setInt8\",1),this.short=this.writeNum.bind(this,\"setInt16\",2),this.int=this.writeNum.bind(this,\"setInt32\",4),this.float=this.writeNum.bind(this,\"setFloat32\",4),this.double=this.writeNum.bind(this,\"setFloat64\",8),this.offset=0,this.littleEndian=t,this.buffer=new ArrayBuffer(1024),this.arrayView=new Uint8Array(this.buffer),this.dataView=new DataView(this.buffer)}accommodate(t){const e=this.offset+t;if(this.buffer.byteLength>=e)return;let s=this.buffer.byteLength;for(;s<e;)s*=2;const r=new ArrayBuffer(s),i=new Uint8Array(r);i.set(this.arrayView),this.offset>this.buffer.byteLength&&i.fill(0,this.buffer.byteLength,this.offset),this.buffer=r,this.dataView=new DataView(r),this.arrayView=i}getData(){return this.accommodate(0),this.arrayView.slice(0,this.offset)}end(t){}writeNum(t,e,s){this.accommodate(e),this.dataView[t](this.offset,s,this.littleEndian),this.offset+=e}long(t){this.int(t[0]),this.int(t[1])}byteArray(t){this.int(t.length),this.accommodate(t.length),this.arrayView.set(t,this.offset),this.offset+=t.length}intArray(t){this.int(t.length);for(let e=0;e<t.length;e++)this.int(t[e])}longArray(t){this.int(t.length);for(let e=0;e<t.length;e++)this.long(t[e])}string(t){const e=function(t){var e,s,r=[];for(e=0;e<t.length;e++)(s=t.charCodeAt(e))<128?r.push(s):s<2048?(r.push(192|s>>6),r.push(128|63&s)):s<65536?(r.push(224|s>>12),r.push(128|s>>6&63),r.push(128|63&s)):(r.push(240|s>>18&7),r.push(128|s>>12&63),r.push(128|s>>6&63),r.push(128|63&s));return r}(t);this.short(e.length),this.accommodate(e.length),this.arrayView.set(e,this.offset),this.offset+=e.length}list(t){this.byte(h[t.type]),this.int(t.value.length),t.value;for(let e=0;e<t.value.length;e++)this[t.type](t.value[e])}compound(t){for(const e in t)this.byte(h[t[e].type]),this.string(e),this[t[e].type](t[e].value);this.byte(h.end)}}function d(t,e){const s=new f(t,e);if(s.byte()!==h.compound)throw new Error(\"Top tag should be a compound\");return{name:s.string(),value:s.compound()}}function p(e,s){return d(t.inflate(e),s)}function g(t,e){return 2===(s=new Uint8Array(t.slice(0,2))).length&&31===s[0]&&139===s[1]?{compressed:!0,result:p(t,e)}:{compressed:!1,result:d(t,e)};var s}function v(t){const e=[];for(let s=0;s<32;s+=1)for(let r=0;r<32;r+=1){const i=4*((31&s)+32*(31&r));if(0===t[i+3])continue;const n=(t[i]<<16)+(t[i+1]<<8)+t[i+2],o=(t[i+4096]<<24)+(t[i+4097]<<16)+(t[i+4098]<<8)+t[i+4099],a=4096*n,l=(t[a]<<24)+(t[a+1]<<16)+(t[a+2]<<8)+t[a+3],u=t[a+4],h=t.slice(a+5,a+4+l);e.push({x:s,z:r,timestamp:o,compression:u,data:h})}return e}function w(t,e,s){const r=y(t,e,s);switch(r.compression){case 1:case 2:r.nbt=p(r.data);break;case 3:r.nbt=d(r.data);break;default:throw new Error(`Invalid compression mode ${r.compression}`)}return r}function b(t,e){const s=new m(e);return s.byte(h.compound),s.string(t.name),s.compound(t.value),s.getData()}function x(e,s,r){const i=b(e,s);return t[r?\"deflate\":\"gzip\"](i)}function S(t,e,s){return e?x(t,s):b(t,s)}function _(t){let e=0;for(const s of t)e+=Math.ceil(s.data.length/4096);const s=new Uint8Array(8192+4096*e),r=new DataView(s.buffer);let i=2;for(const e of t){const t=4*((31&e.x)+32*(31&e.z)),n=Math.ceil(e.data.length/4096);r.setInt8(t,i>>16),r.setInt16(t+1,65535&i),r.setInt8(t+3,n),r.setInt32(t+4096,e.timestamp);const o=4096*i;r.setInt32(o,e.data.length+1),r.setInt8(o+4,e.compression),s.set(e.data,o+5),i+=n}return s}function A(t,e,s,r){const i=y(t,e,s);switch(i.compression){case 1:i.data=x(r);break;case 2:i.data=x(r,!1,!0);break;case 3:i.data=b(r);break;default:throw new Error(`Invalid compression mode ${i.compression}`)}return i}function y(t,e,s){const r=t.find((t=>t.x===e&&t.z===s));if(void 0===r)throw new Error(`Cannot find chunk [${e}, ${s}]`);return r}function E(t,e,s){if(!t[e])throw new Error(`Missing ${e} tag`);if(t[e].type!==s)throw new Error(`Expected ${e} to be of type ${s}, but found ${t[e].type}`);return t[e].value}function I(t,e,s,r){const i=E(t,e,\"list\");if(i.type!==s)throw new Error(`Expected ${e} to be a list of ${s}s, but found ${i.type}s`);if(r&&i.value.length!==r)throw new Error(`Expected ${e} to be a list of length ${r}, but found length ${i.value.length}`);return i.value}function N(t,e){try{return t()}catch(t){return e}}var B;function R(t){let e=null;return()=>(null==e&&(e=t()),e)}function T(t,e,s){const r=t.get(e);if(r)return r;const i=s(e);return t.set(e,i),i}!function(t){function e(t){return\"object\"==typeof t&&null!==t?t:void 0}t.readNumber=function(t){return\"number\"==typeof t?t:void 0},t.readInt=function(t){return\"number\"==typeof t?Math.floor(t):void 0},t.readString=function(t){return\"string\"==typeof t?t:void 0},t.readBoolean=function(t){return\"boolean\"==typeof t?t:void 0},t.readObject=e,t.readArray=function(t,e){if(Array.isArray(t))return t.map((t=>e(t)))},t.readMap=function(t,s){var r;const i=null!=(r=e(t))?r:{};return Object.fromEntries(Object.entries(i).map((([t,e])=>[t,s(e)])))},t.compose=function(t,e,s){const r=e(t);return r?s(r):void 0},t.readEnum=function(t,e){return\"string\"!=typeof t?e[0]:e.includes(t)?t:e[0]}}(B||(B={}));const M=class{constructor(t,e){if(this.namespace=t,this.path=e,!t.match(/^[a-z0-9._-]+$/))throw new Error(`Non [a-z0-9._-] character in namespace of ${t}:${e}`);if(!e.match(/^[a-z0-9/._-]+$/))throw new Error(`Non [a-z0-9/._-] character in path of ${t}:${e}`)}equals(t){return this===t||this.namespace===t.namespace&&this.path===t.path}toString(){return`${this.namespace}:${this.path}`}static create(t){return new M(this.DEFAULT_NAMESPACE,t)}static parse(t){const e=t.indexOf(this.SEPARATOR);if(e>=0){const s=e>=1?t.substring(0,e):this.DEFAULT_NAMESPACE,r=t.substring(e+1);return new M(s,r)}return new M(this.DEFAULT_NAMESPACE,t)}};let C=M;C.DEFAULT_NAMESPACE=\"minecraft\",C.SEPARATOR=\":\";var O=Object.defineProperty,k=Object.defineProperties,P=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertySymbols,F=Object.prototype.hasOwnProperty,V=Object.prototype.propertyIsEnumerable,D=(t,e,s)=>e in t?O(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;const U=class{constructor(t,e={}){this.properties=e,this.name=\"string\"==typeof t?C.parse(t):t}getName(){return this.name}getProperties(){return this.properties}getProperty(t){return this.properties[t]}isFluid(){return this.is(U.WATER)||this.is(U.LAVA)}equals(t){return!!this.name.equals(t.name)&&Object.keys(this.properties).every((e=>t.properties[e]===this.properties[e]))}is(t){return this.name.equals(t.name)}toString(){return 0===Object.keys(this.properties).length?this.name.toString():`${this.name.toString()}[${Object.entries(this.properties).map((([t,e])=>t+\"=\"+e)).join(\",\")}]`}static fromNbt(t){const e=C.parse(E(t.value,\"Name\",\"string\")),s=N((()=>E(t.value,\"Properties\",\"compound\")),{}),r=Object.keys(s).reduce(((t,e)=>{return r=((t,e)=>{for(var s in e||(e={}))F.call(e,s)&&D(t,s,e[s]);if(L)for(var s of L(e))V.call(e,s)&&D(t,s,e[s]);return t})({},t),i={[e]:E(s,e,\"string\")},k(r,P(i));var r,i}),{});return new U(e,r)}static fromJson(t){var e,s;const r=null!=(e=B.readObject(t))?e:{},i=C.parse(null!=(s=B.readString(r.Name))?s:U.STONE.name.toString()),n=B.readMap(r.Properties,(t=>{var e;return null!=(e=B.readString(t))?e:\"\"}));return new U(i,n)}};let G=U;G.AIR=new U(C.create(\"air\")),G.STONE=new U(C.create(\"stone\")),G.WATER=new U(C.create(\"water\"),{level:\"0\"}),G.LAVA=new U(C.create(\"lava\"),{level:\"0\"});const z=class{constructor(t){this.minY=t,this.storage=Array(z.SIZE).fill(0),this.palette=[G.AIR]}get minBlockY(){return this.minY<<4}index(t,e,s){return(t<<8)+(e<<4)+s}getBlockState(t,e,s){var r;const i=this.storage[this.index(t,e,s)];return null!=(r=this.palette[i])?r:G.AIR}setBlockState(t,e,s,r){let i=this.palette.findIndex((t=>t.equals(r)));-1===i&&(i=this.palette.length,this.palette.push(r)),this.storage[this.index(t,e,s)]=i}};let Y=z;Y.WIDTH=16,Y.SIZE=z.WIDTH*z.WIDTH*z.WIDTH;class H{constructor(t,e,s){this.minY=t,this.height=e,this.pos=s,this.sections=Array(this.sectionsCount).fill(null)}get maxY(){return this.minY+this.height}get minSection(){return this.minY>>4}get maxSection(){return 1+(this.maxY-1>>4)}get sectionsCount(){return this.maxSection-this.minSection}getSectionIndex(t){return(t>>4)-this.minSection}getBlockState(t){var e;const[s,r,i]=t,n=this.sections[this.getSectionIndex(r)];return null!=(e=null==n?void 0:n.getBlockState(15&s,15&r,15&i))?e:G.AIR}setBlockState(t,e){const[s,r,i]=t,n=this.getSectionIndex(r);let o=this.sections[n];if(null===o){if(e.equals(G.AIR))return;o=this.getOrCreateSection(n)}o.setBlockState(15&s,15&r,15&i,e)}getOrCreateSection(t){return null==this.sections[t]&&(this.sections[t]=new Y(this.minSection+t)),this.sections[t]}}var X,j;!function(t){function e(t,e){return BigInt(4294967295&t)|BigInt(4294967295&e)<<BigInt(32)}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.toLong=function(t){return e(t[0],t[1])},t.asLong=e,t.minBlockX=function(t){return t[0]<<4},t.minBlockZ=function(t){return t[1]<<4},t.maxBlockX=function(t){return 15+(t[0]<<4)},t.maxBlockZ=function(t){return 15+(t[1]<<4)}}(X||(X={})),function(t){function e(t){return{value:()=>t,key:()=>{}}}function s(t,e){return{value:()=>t.getOrThrow(e),key:()=>e}}t.parser=function(t,r){return i=>\"string\"==typeof i?s(t,C.parse(i)):e(r(i))},t.direct=e,t.reference=s}(j||(j={}));const Z=class{constructor(t,e){this.key=t,this.parser=e,this.storage=new Map,this.builtin=new Map}register(t,e,s){return this.storage.set(t.toString(),e),s&&this.builtin.set(t.toString(),e),j.reference(this,t)}keys(){return[...this.storage.keys()].map((t=>C.parse(t)))}get(t){return this.storage.get(t.toString())}getOrThrow(t){const e=this.storage.get(t.toString());if(void 0===e)throw new Error(`Missing key in ${this.key.toString()}: ${t.toString()}`);return e}parse(t){if(!this.parser)throw new Error(`No parser exists for ${this.key.toString()}`);return this.parser(t)}clear(){this.storage.clear();for(const[t,e]of this.builtin.entries())this.storage.set(t,e);return this}assign(t){if(!this.key.equals(t.key))throw new Error(`Cannot assign registry of type ${t.key.toString()} to registry of type ${this.key.toString()}`);for(const e of t.keys())this.storage.set(e.toString(),t.getOrThrow(e));return this}cloneEmpty(){return new Z(this.key,this.parser)}};let q=Z;q.REGISTRY=new Z(C.create(\"root\"));class J{constructor(t,e=[],s=[]){this.size=t,this.palette=e,this.blocks=s,this.blocksMap=[],s.forEach((e=>{if(!this.isInside(e.pos))throw new Error(`Found block at ${e.pos} which is outside the structure bounds ${this.size}`);this.blocksMap[e.pos[0]*t[1]*t[2]+e.pos[1]*t[2]+e.pos[2]]=e}))}getSize(){return this.size}addBlock(t,e,s,r){if(!this.isInside(t))throw new Error(`Cannot add block at ${t} outside the structure bounds ${this.size}`);const i=new G(e,s);let n=this.palette.findIndex((t=>t.equals(i)));return-1===n&&(n=this.palette.length,this.palette.push(i)),this.blocks.push({pos:t,state:n,nbt:r}),this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]]={pos:t,state:n,nbt:r},this}getBlocks(){return this.blocks.map((t=>({pos:t.pos,state:this.palette[t.state],nbt:t.nbt})))}getBlock(t){if(!this.isInside(t))return null;const e=this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]];if(!e)return null;return{pos:e.pos,state:this.palette[e.state],nbt:e.nbt}}isInside(t){return t[0]>=0&&t[0]<this.size[0]&&t[1]>=0&&t[1]<this.size[1]&&t[2]>=0&&t[2]<this.size[2]}static fromNbt(t){const e=I(t.value,\"size\",\"int\",3),s=I(t.value,\"palette\",\"compound\").map((t=>G.fromNbt({name:\"\",value:t}))),r=I(t.value,\"blocks\",\"compound\").map((t=>({pos:I(t,\"pos\",\"int\",3),state:E(t,\"state\",\"int\"),nbt:N((()=>E(t,\"nbt\",\"compound\")),void 0)})));return new J(e,s,r)}}function W(t){return t*t}function $(t,e,s){return Math.max(e,Math.min(s,t))}function K(t,e,s){return e+t*(s-e)}function Q(t,e,s,r,i,n){return K(e,K(t,s,r),K(t,i,n))}function tt(t,e,s,r,i,n,o,a,l,u,h){return K(s,Q(t,e,r,i,n,o),Q(t,e,a,l,u,h))}function et(t,e,s){return 0===t?e():1===t?s():e()+t*(s()-e())}function st(t,e,s,r,i,n){return et(e,(()=>et(t,s,r)),(()=>et(t,i,n)))}function rt(t,e,s,r,i,n,o,a,l,u,h){return et(s,(()=>st(t,e,r,i,n,o)),(()=>st(t,e,a,l,u,h)))}function it(t,e,s){return s<0?t:s>1?e:K(s,t,e)}function nt(t,e,s){return(t-e)/(s-e)}function ot(t){return t*t*t*(t*(6*t-15)+10)}function at(t,e,s,r,i){return K(nt(t,e,s),r,i)}function lt(t,e,s,r,i){return it(r,i,nt(t,e,s))}function ut(t,e,s){let r=e-t;for(;r>0;){const e=Math.floor(r/2),i=t+e;s(i)?r=e:(t=i+1,r-=e+1)}return t}function ht(t,e,s){let r=BigInt(3129871*t)^BigInt(s)*BigInt(116129781)^BigInt(e);return r=r*r*BigInt(42317861)+r*BigInt(11),r>>BigInt(16)}function ct(t,e,s,r,i,n,o,a){return BigInt(t)<<BigInt(56)|BigInt(e)<<BigInt(48)|BigInt(s)<<BigInt(40)|BigInt(r)<<BigInt(32)|BigInt(i)<<BigInt(24)|BigInt(n)<<BigInt(16)|BigInt(o)<<BigInt(8)|BigInt(a)}var ft;!function(t){t.fromJson=function t(r,i){var n,o,a,l;if(\"number\"==typeof r)return new e(r);const u=null!=(n=B.readObject(r))?n:{},h=new s(i(u.coordinate)),c=null!=(o=B.readArray(u.points,(t=>{var e;return null!=(e=B.readObject(t))?e:{}})))?o:[];if(0===c.length)return new e(0);for(const e of c){const s=null!=(a=B.readNumber(e.location))?a:0,r=t(e.value,i),n=null!=(l=B.readNumber(e.derivative))?l:0;h.addPoint(s,r,n)}return h};class e{constructor(t){this.value=t}compute(){return this.value}min(){return this.value}max(){return this.value}mapAll(){return this}}t.Constant=e;class s{constructor(t,e=[],s=[],r=[]){this.coordinate=t,this.locations=e,this.values=s,this.derivatives=r}compute(t){const e=this.coordinate.compute(t),s=ut(0,this.locations.length,(t=>e<this.locations[t]))-1,r=this.locations.length-1;if(s<0)return this.values[0].compute(t)+this.derivatives[0]*(e-this.locations[0]);if(s===r)return this.values[r].compute(t)+this.derivatives[r]*(e-this.locations[r]);const i=this.locations[s],n=this.locations[s+1],o=this.derivatives[s],a=this.derivatives[s+1],l=(e-i)/(n-i),u=this.values[s].compute(t),h=this.values[s+1].compute(t),c=o*(n-i)-(h-u),f=-a*(n-i)+(h-u);return K(l,u,h)+l*(1-l)*K(l,c,f)}min(){return Math.min(...this.values.map((t=>t.min())))}max(){return Math.max(...this.values.map((t=>t.max())))}mapAll(t){return new s(t(this.coordinate),this.locations,this.values.map((e=>e.mapAll(t))),this.derivatives)}addPoint(e,s,r=0){return this.locations.push(e),this.values.push(\"number\"==typeof s?new t.Constant(s):s),this.derivatives.push(r),this}}t.MultiPoint=s}(ft||(ft={}));const mt=class{constructor(t){this.seed=BigInt(0),this.setSeed(t)}fork(){return new mt(this.nextLong())}forkPositional(){return new pt(this.nextLong())}setSeed(t){this.seed=t^mt.MULTIPLIER&mt.MODULUS_MASK}advance(){this.seed=this.seed*mt.MULTIPLIER+mt.INCREMENT&mt.MODULUS_MASK}consume(t){for(let e=0;e<t;e+=1)this.advance()}next(t){this.advance();const e=Number(this.seed>>BigInt(mt.MODULUS_BITS-t));return e>2147483647?e-4294967296:e}nextInt(t){if(void 0===t)return this.next(32);if(0==(t&t-1))return Number(BigInt(t)*BigInt(this.next(31))>>BigInt(31));let e,s;for(;(e=this.next(31))-(s=e%t)+(t-1)<0;);return s}nextLong(){return(BigInt(this.next(32))<<BigInt(32))+BigInt(this.next(32))}nextFloat(){return this.next(24)*mt.FLOAT_MULTIPLIER}nextDouble(){const t=this.next(30);return this.advance(),t*mt.DOUBLE_MULTIPLIER}};let dt=mt;dt.MODULUS_BITS=48,dt.MODULUS_MASK=BigInt(\"281474976710655\"),dt.MULTIPLIER=BigInt(\"25214903917\"),dt.INCREMENT=BigInt(\"11\"),dt.FLOAT_MULTIPLIER=1/Math.pow(2,24),dt.DOUBLE_MULTIPLIER=1/Math.pow(2,30);class pt{constructor(t){this.seed=t}at(t,e,s){const r=ht(t,e,s);return new dt(r^this.seed)}fromHashOf(t){const s=e(t,{asBytes:!0}),r=ct(s[0],s[1],s[2],s[3],s[4],s[5],s[6],s[7]);return new dt(r^this.seed)}seedKey(){return[this.seed,BigInt(0)]}}const gt=class{constructor(t){this.seed=[BigInt(0),BigInt(0)],this.seed=t}static create(t){return new gt(gt.upgradeSeedTo128bit(t))}static mixStafford13(t){return((t=((t=(t^t>>gt.BIGINT_30)*gt.STAFFORD_1>.MAX_ULONG)^t>>gt.BIGINT_27)*gt.STAFFORD_2>.MAX_ULONG)^t>>gt.BIGINT_31)>.MAX_ULONG}static upgradeSeedTo128bit(t){t<0&&(t+=gt.POW2_60);const e=t^gt.SILVER_RATIO_64,s=e+gt.GOLDEN_RATIO_64>.MAX_ULONG;return[gt.mixStafford13(e),gt.mixStafford13(s)]}static rotateLeft(t,e){return t<<e>.MAX_ULONG|t>>gt.BIGINT_64-e}setSeed(t){this.seed=gt.upgradeSeedTo128bit(t)}fork(){return new gt([this.next(),this.next()])}forkPositional(){return new wt(this.next(),this.next())}next(){const t=this.seed[0];let e=this.seed[1];const s=gt.rotateLeft(t+e>.MAX_ULONG,gt.BIGINT_17)+t>.MAX_ULONG;return e^=t,this.seed=[gt.rotateLeft(t,gt.BIGINT_49)^e^e<<gt.BIGINT_21>.MAX_ULONG,gt.rotateLeft(e,gt.BIGINT_28)],s}nextLong(){let t=this.next();return t>gt.POW2_63&&(t-=gt.POW2_60),t}consume(t){let e=this.seed[0],s=this.seed[1];for(let r=0;r<t;r+=1)s^=e,e=gt.rotateLeft(e,gt.BIGINT_49)^s^s<<gt.BIGINT_21,s=gt.rotateLeft(s,gt.BIGINT_28);this.seed=[e,s]}nextBits(t){return this.next()>>BigInt(64-t)}nextInt(t){let e=this.next()>.MAX_UINT;if(t){const s=BigInt(t);let r=e*s,i=r>.MAX_UINT;if(i<s){const t=((~s>.MAX_UINT)+gt.BIGINT_1)%s;for(;i<t;)e=this.next()>.MAX_UINT,r=e*s,i=r>.MAX_UINT}const n=r>>gt.BIGINT_32;return Number(n)}{let t=Number(e);return t>=2147483648&&(t-=4294967296),t}}nextFloat(){return Number(this.nextBits(24))*gt.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*gt.DOUBLE_MULTIPLIER}parityConfigString(){return\"seedLo: \"+this.seed[0]+\", seedHi: \"+this.seed[1]}};let vt=gt;vt.SILVER_RATIO_64=BigInt(\"7640891576956012809\"),vt.GOLDEN_RATIO_64=BigInt(\"-7046029254386353131\"),vt.FLOAT_MULTIPLIER=1/Math.pow(2,24),vt.DOUBLE_MULTIPLIER=11102230246251565e-32,vt.BIGINT_1=BigInt(1),vt.BIGINT_17=BigInt(17),vt.BIGINT_21=BigInt(21),vt.BIGINT_27=BigInt(27),vt.BIGINT_28=BigInt(28),vt.BIGINT_30=BigInt(30),vt.BIGINT_31=BigInt(31),vt.BIGINT_32=BigInt(32),vt.BIGINT_49=BigInt(49),vt.BIGINT_64=BigInt(64),vt.STAFFORD_1=BigInt(\"-4658895280553007687\"),vt.STAFFORD_2=BigInt(\"-7723592293110705685\"),vt.MAX_ULONG=BigInt(\"0xFFFFFFFFFFFFFFFF\"),vt.POW2_60=BigInt(\"0x10000000000000000\"),vt.POW2_63=BigInt(\"0x8000000000000000\"),vt.MAX_UINT=BigInt(4294967295);class wt{constructor(t,e){this.seedLo=t,this.seedHi=e}at(t,e,s){const r=ht(t,e,s)^this.seedLo;return new vt([r,this.seedHi])}fromHashOf(t){const s=e(t,{asBytes:!0}),r=ct(s[0],s[1],s[2],s[3],s[4],s[5],s[6],s[7]),i=ct(s[8],s[9],s[10],s[11],s[12],s[13],s[14],s[15]);return new vt([r^this.seedLo,i^this.seedHi])}seedKey(){return[this.seedLo,this.seedHi]}}const bt=class{constructor(t){this.xo=256*t.nextDouble(),this.yo=256*t.nextDouble(),this.zo=256*t.nextDouble(),this.p=Array(256);for(let t=0;t<256;t+=1)this.p[t]=t;for(let e=0;e<256;e+=1){const s=t.nextInt(256-e),r=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=r}}sample2D(t,e){let s,r,i;const n=(t+e)*bt.F2,o=Math.floor(t+n),a=t-(o-(s=(o+(r=Math.floor(e+n)))*bt.G2));let l,u;a>(i=e-(r-s))?(l=1,u=0):(l=0,u=1);const h=a-l+bt.G2,c=i-u+bt.G2,f=a-1+2*bt.G2,m=i-1+2*bt.G2,d=255&o,p=255&r,g=this.P(d+this.P(p))%12,v=this.P(d+l+this.P(p+u))%12,w=this.P(d+1+this.P(p+1))%12;return 70*(this.getCornerNoise3D(g,a,i,0,.5)+this.getCornerNoise3D(v,h,c,0,.5)+this.getCornerNoise3D(w,f,m,0,.5))}sample(t,e,s){const r=.3333333333333333*(t+e+s),i=Math.floor(t+r),n=Math.floor(e+r),o=Math.floor(s+r),a=.16666666666666666*(i+n+o),l=t-(i-a),u=e-(n-a),h=s-(o-a);let c,f,m,d,p,g;l>=u?u>=h?(c=1,f=0,m=0,d=1,p=1,g=0):l>=h?(c=1,f=0,m=0,d=1,p=0,g=1):(c=0,f=0,m=1,d=1,p=0,g=1):u<h?(c=0,f=0,m=1,d=0,p=1,g=1):l<h?(c=0,f=1,m=0,d=0,p=1,g=1):(c=0,f=1,m=0,d=1,p=1,g=0);const v=l-c+.16666666666666666,w=u-f+.16666666666666666,b=h-m+.16666666666666666,x=l-d+.3333333333333333,S=u-p+.3333333333333333,_=h-g+.3333333333333333,A=l-.5,y=u-.5,E=h-.5,I=255&i,N=255&n,B=255&o,R=this.P(I+this.P(N+this.P(B)))%12,T=this.P(I+c+this.P(N+f+this.P(B+m)))%12,M=this.P(I+d+this.P(N+p+this.P(B+g)))%12,C=this.P(I+1+this.P(N+1+this.P(B+1)))%12;return 32*(this.getCornerNoise3D(R,l,u,h,.6)+this.getCornerNoise3D(T,v,w,b,.6)+this.getCornerNoise3D(M,x,S,_,.6)+this.getCornerNoise3D(C,A,y,E,.6))}P(t){return this.p[255&t]}getCornerNoise3D(t,e,s,r,i){let n,o=i-e*e-s*s-r*r;return o<0?n=0:(o*=o,n=o*o*bt.gradDot(t,e,s,r)),n}static gradDot(t,e,s,r){const i=bt.GRADIENT[15&t];return i[0]*e+i[1]*s+i[2]*r}};let xt=bt;xt.GRADIENT=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1],[1,1,0],[0,-1,1],[-1,1,0],[0,-1,-1]],xt.F2=.5*(Math.sqrt(3)-1),xt.G2=(3-Math.sqrt(3))/6;class St{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>127?t-256:t;for(let e=0;e<256;e+=1){const s=t.nextInt(256-e),r=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=r}}sample(t,e,s,r=0,i=0){const n=t+this.xo,o=e+this.yo,a=s+this.zo,l=Math.floor(n),u=Math.floor(o),h=Math.floor(a),c=n-l,f=o-u,m=a-h;let d=0;if(0!==r){const t=i>=0&&i<f?i:f;d=Math.floor(t/r+1e-7)*r}return this.sampleAndLerp(l,u,h,c,f-d,m,f)}sampleAndLerp(t,e,s,r,i,n,o){const a=this.P(t),l=this.P(t+1),u=this.P(a+e),h=this.P(a+e+1),c=this.P(l+e),f=this.P(l+e+1),m=xt.gradDot(this.P(u+s),r,i,n),d=xt.gradDot(this.P(c+s),r-1,i,n),p=xt.gradDot(this.P(h+s),r,i-1,n),g=xt.gradDot(this.P(f+s),r-1,i-1,n),v=xt.gradDot(this.P(u+s+1),r,i,n-1),w=xt.gradDot(this.P(c+s+1),r-1,i,n-1),b=xt.gradDot(this.P(h+s+1),r,i-1,n-1),x=xt.gradDot(this.P(f+s+1),r-1,i-1,n-1);return tt(ot(r),ot(o),ot(n),m,d,p,g,v,w,b,x)}P(t){return 255&this.p[255&t]}}class _t{constructor(t,e,s){if(t instanceof vt){const r=t.forkPositional();this.noiseLevels=Array(s.length);for(let t=0;t<s.length;t++)if(0!==s[t]){const s=e+t;this.noiseLevels[t]=new St(r.fromHashOf(\"octave_\"+s))}}else{if(1-e<s.length)throw new Error(\"Positive octaves are not allowed when using LegacyRandom\");this.noiseLevels=Array(s.length);for(let r=-e;r>=0;r-=1)r<s.length&&0!==s[r]?this.noiseLevels[r]=new St(t):t.consume(262)}this.amplitudes=s,this.lowestFreqInputFactor=Math.pow(2,e),this.lowestFreqValueFactor=Math.pow(2,s.length-1)/(Math.pow(2,s.length)-1),this.maxValue=this.edgeValue(2)}sample(t,e,s,r=0,i=0,n=!1){let o=0,a=this.lowestFreqInputFactor,l=this.lowestFreqValueFactor;for(let u=0;u<this.noiseLevels.length;u+=1){const h=this.noiseLevels[u];h&&(o+=this.amplitudes[u]*l*h.sample(_t.wrap(t*a),n?-h.yo:_t.wrap(e*a),_t.wrap(s*a),r*a,i*a)),a*=2,l/=2}return o}getOctaveNoise(t){return this.noiseLevels[this.noiseLevels.length-1-t]}edgeValue(t){let e=0,s=this.lowestFreqValueFactor;for(let r=0;r<this.noiseLevels.length;r+=1)this.noiseLevels[r]&&(e+=this.amplitudes[r]*t*s),s/=2;return e}static wrap(t){return t-33554432*Math.floor(t/33554432+.5)}}class At{constructor(t,e,s,r){this.cellWidth=s,this.cellHeight=r,this.minLimitNoise=new _t(t,-15,[1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0]),this.maxLimitNoise=new _t(t,-15,[1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0]),this.mainNoise=new _t(t,-7,[1,1,1,1,1,0,0,0]),this.xzScale=684.412*e.xzScale,this.yScale=684.412*e.yScale,this.xzMainScale=this.xzScale/e.xzFactor,this.yMainScale=this.yScale/e.yFactor,this.maxValue=this.minLimitNoise.edgeValue(this.yScale+2)}sample(t,e,s){let r;t=Math.floor(t/this.cellWidth),e=Math.floor(e/this.cellHeight),s=Math.floor(s/this.cellWidth);let i=0,n=1;for(let o=0;o<8;o+=1){if(r=this.mainNoise.getOctaveNoise(o),r){const o=this.xzMainScale*n,a=this.yMainScale*n,l=_t.wrap(t*o),u=_t.wrap(e*a),h=_t.wrap(s*o);i+=r.sample(l,u,h,a,e*a)/n}n/=2}i=(i/10+1)/2,n=1;let o=0,a=0;for(let l=0;l<16;l+=1){const u=this.xzScale*n,h=this.yScale*n,c=_t.wrap(t*u),f=_t.wrap(e*h),m=_t.wrap(s*u);i<1&&(r=this.minLimitNoise.getOctaveNoise(l))&&(o+=r.sample(c,f,m,h,e*h)/n),i>0&&(r=this.maxLimitNoise.getOctaveNoise(l))&&(a+=r.sample(c,f,m,h,e*h)/n),n/=2}return it(o/512,a/512,i)/128}}var yt;(yt||(yt={})).fromJson=function(t){var e,s,r,i,n;const o=null!=(e=B.readObject(t))?e:{};return{xzScale:null!=(s=B.readNumber(o.xz_scale))?s:1,yScale:null!=(r=B.readNumber(o.y_scale))?r:1,xzFactor:null!=(i=B.readNumber(o.xz_factor))?i:80,yFactor:null!=(n=B.readNumber(o.y_factor))?n:80}};const Et=class{constructor(t,{firstOctave:e,amplitudes:s}){this.first=new _t(t,e,s),this.second=new _t(t,e,s);let r=1/0,i=-1/0;for(let t=0;t<s.length;t+=1)0!==s[t]&&(r=Math.min(r,t),i=Math.max(i,t));const n=.1*(1+1/(i-r+1));this.valueFactor=1/6/n,this.maxValue=(this.first.maxValue+this.second.maxValue)*this.valueFactor}sample(t,e,s){const r=t*Et.INPUT_FACTOR,i=e*Et.INPUT_FACTOR,n=s*Et.INPUT_FACTOR;return(this.first.sample(t,e,s)+this.second.sample(r,i,n))*this.valueFactor}};let It=Et;var Nt,Bt;It.INPUT_FACTOR=1.0181268882175227,(Bt=Nt||(Nt={})).create=function(t,e){return{firstOctave:t,amplitudes:e}},Bt.fromJson=function(t){var e,s,r;const i=null!=(e=B.readObject(t))?e:{};return{firstOctave:null!=(s=B.readInt(i.firstOctave))?s:0,amplitudes:null!=(r=B.readArray(i.amplitudes,(t=>{var e;return null!=(e=B.readNumber(t))?e:0})))?r:[]}};class Rt{constructor(t,e){const s=e[e.length-1],r=-e[0]+s+1,i=new Set(e),n=new xt(t);this.noiseLevels=Array(r),s>=0&&s<r&&i.has(0)&&(this.noiseLevels[s]=n);for(let e=s+1;e<r;e+=1)e>=0&&i.has(s-e)?this.noiseLevels[e]=new xt(t):t.consume(262);if(s>0)throw new Error(\"Positive octaves are not allowed\");this.highestFreqInputFactor=Math.pow(2,s),this.highestFreqValueFactor=1/(Math.pow(2,r)-1)}sample(t,e,s){let r=0,i=this.highestFreqInputFactor,n=this.highestFreqValueFactor;for(let o=0;o<this.noiseLevels.length;o+=1){const a=this.noiseLevels[o];a&&(r+=n*a.sample2D(t*i+(s?a.xo:0),e*i+(s?a.yo:0))),i/=2,n*=2}return r}}const Tt=t=>[(t>>16&255)/256,(t>>8&255)/256,(255&t)/256],Mt=[124/256,189/256,107/256],Ct=Tt(6396257),Ot=Tt(8431445),kt=Tt(4764952),Pt=Tt(4159204),Lt=Tt(8431445),Ft=Tt(2129968),Vt=t=>[t/8,1-t/32,64*t],Dt={large_fern:()=>Mt,tall_grass:()=>Mt,grass_block:()=>Mt,fern:()=>Mt,grass:()=>Mt,potted_fern:()=>Mt,spruce_leaves:()=>Ct,birch_leaves:()=>Ot,oak_leaves:()=>kt,jungle_leaves:()=>kt,acacia_leaves:()=>kt,dark_oak_leaves:()=>kt,vine:()=>kt,water:()=>Pt,bubble_column:()=>Pt,cauldron:()=>Pt,redstone_wire:t=>{var e;return(t=>{const e=t/15;return[.6*e+(e>0?.4:.3),$(e*e*.7-.5,0,1),$(e*e*.6-.7,0,1)]})(parseInt(null!=(e=t.power)?e:\"0\"))},sugar_cane:()=>Mt,attached_melon_stem:()=>Lt,attached_pumpkin_stem:()=>Lt,melon_stem:t=>{var e;return Vt(parseInt(null!=(e=t.age)?e:\"0\"))},pumpkin_stem:t=>{var e;return Vt(parseInt(null!=(e=t.age)?e:\"0\"))},lily_pad:()=>Ft};var Ut;function Gt(...t){let e=0;for(const s of t)e+=s.length;const s=new Float32Array(e);let r=0;for(const e of t)s.set(e,r),r+=e.length;return s}function zt(t,e){const r=s.create();for(let i=0;i<t.length;i+=3)r[0]=t[i],r[1]=t[i+1],r[2]=t[i+2],s.transformMat4(r,r,e),t[i]=r[0],t[i+1]=r[1],t[i+2]=r[2]}(Ut||(Ut={})).rotate=function(t,e,s){let{up:r,down:i,north:n,east:o,south:a,west:l}=t;switch(s){case 90:[n,o,a,l]=[o,a,l,n];break;case 180:[n,o,a,l]=[a,l,n,o];break;case 270:[n,o,a,l]=[l,n,o,a]}switch(e){case 90:[r,n,i,a]=[n,i,a,r];break;case 180:[r,n,i,a]=[i,a,r,n];break;case 270:[r,n,i,a]=[a,r,n,i]}return{up:r,down:i,north:n,east:o,south:a,west:l}};class Yt{constructor(t,e,s){this.id=t,this.variants=e,this.multipart=s,this.variants=e}getModelVariants(t){if(this.variants){const e=Object.keys(this.variants).filter((e=>this.matchesVariant(e,t)));if(0===e.length)return[];const s=this.variants[e[0]];return[Array.isArray(s)?s[0]:s]}if(this.multipart){return this.multipart.filter((e=>!e.when||this.matchesCase(e.when,t))).map((t=>Array.isArray(t.apply)?t.apply[0]:t.apply))}return[]}getBuffers(t,e,s,n,o,a){var l,u,h,c;const f=this.getModelVariants(e),m=[],d=[],p=[],g=[];for(const v of f){const f=Ut.rotate(a,null!=(l=v.x)?l:0,null!=(u=v.y)?u:0),w=n.getBlockModel(v.model).getBuffers(t,e,s,o,f);if(v.x||v.y){const t=r.create();r.identity(t),r.translate(t,t,[8,8,8]),r.rotateY(t,t,-i.toRadian(null!=(h=v.y)?h:0)),r.rotateX(t,t,-i.toRadian(null!=(c=v.x)?c:0)),r.translate(t,t,[-8,-8,-8]),zt(w.position,t)}m.push(w.position),d.push(...w.texCoord),p.push(...w.tintColor),g.push(...w.index),o+=w.texCoord.length/2}const v=r.create();r.identity(v),r.scale(v,v,[.0625,.0625,.0625]);const w=Gt(...m);return zt(w,v),{position:w,texCoord:d,tintColor:p,index:g}}matchesVariant(t,e){return t.split(\",\").every((t=>{const[s,r]=t.split(\"=\");return e[s]===r}))}matchesCase(t,e){if(Array.isArray(t.OR))return t.OR.some((t=>this.matchesCase(t,e)));const s=t;return Object.keys(s).every((t=>s[t].split(\"|\").includes(e[t])))}static fromJson(t,e){return new Yt(t,e.variants,e.multipart)}}const Ht={0:[0,3,2,3,2,1,0,1],90:[2,3,2,1,0,1,0,3],180:[2,1,0,1,0,3,2,3],270:[0,1,0,3,2,3,2,1]},Xt={x:[1,0,0],y:[0,1,0],z:[0,0,1]},jt=1.41421356237,Zt={x:[1,jt,jt],y:[jt,1,jt],z:[jt,jt,1]};class qt{constructor(t,e,s,r){this.id=t,this.parent=e,this.textures=s,this.elements=r,this.flattened=!1}getBuffers(t,e,s,r,i){var n;const o=[],a=[],l=[],u=[];for(const h of null!=(n=this.elements)?n:[]){const n=this.getElementBuffers(t,e,h,r,s,i);o.push(n.position),a.push(...n.texCoord),l.push(...n.tintColor),u.push(...n.index),r+=n.texCoord.length/2}return{position:Gt(...o),texCoord:a,tintColor:l,index:u}}getElementBuffers(t,e,n,o,a,l){var u,h,c,f,m,d,p,g,v,w,b,x;const S=n.from[0],_=n.from[1],A=n.from[2],y=n.to[0],E=n.to[1],I=n.to[2],N=[],B=[],R=[],T=[],M=(s,r,i)=>{var n,l,u,h,c,f,m,d,p,g,v,w,b;const[x,S,_,A]=a.getTextureUV(this.getTexture(s.texture)),y=(_-x)/16,E=(A-S)/16,I=y/16,M=E/16;r[0]=(null!=(l=null==(n=s.uv)?void 0:n[0])?l:r[0])*y+I,r[1]=(null!=(h=null==(u=s.uv)?void 0:u[1])?h:r[1])*E+M,r[2]=(null!=(f=null==(c=s.uv)?void 0:c[2])?f:r[2])*y-I,r[3]=(null!=(d=null==(m=s.uv)?void 0:m[3])?d:r[3])*E-M;const C=Ht[null!=(p=s.rotation)?p:0];B.push(x+r[C[0]],S+r[C[1]],x+r[C[2]],S+r[C[3]],x+r[C[4]],S+r[C[5]],x+r[C[6]],S+r[C[7]]);const O=(null!=(g=s.tintindex)?g:-1)>=0&&null!=(b=null==(w=(v=Dt)[t.path])?void 0:w.call(v,e))?b:[1,1,1];R.push(...O,...O,...O,...O),N.push(...i),T.push(o,o+1,o+2,o,o+2,o+3),o+=4};!(null==(h=null==(u=n.faces)?void 0:u.up)?void 0:h.texture)||n.faces.up.cullface&&l[n.faces.up.cullface]||M(n.faces.up,[S,16-I,y,16-A],[S,E,I,y,E,I,y,E,A,S,E,A]),!(null==(f=null==(c=n.faces)?void 0:c.down)?void 0:f.texture)||n.faces.down.cullface&&l[n.faces.down.cullface]||M(n.faces.down,[16-I,16-y,16-A,16-S],[S,_,A,y,_,A,y,_,I,S,_,I]),!(null==(d=null==(m=n.faces)?void 0:m.south)?void 0:d.texture)||n.faces.south.cullface&&l[n.faces.south.cullface]||M(n.faces.south,[S,16-E,y,16-_],[S,_,I,y,_,I,y,E,I,S,E,I]),!(null==(g=null==(p=n.faces)?void 0:p.north)?void 0:g.texture)||n.faces.north.cullface&&l[n.faces.north.cullface]||M(n.faces.north,[16-y,16-E,16-S,16-_],[y,_,A,S,_,A,S,E,A,y,E,A]),!(null==(w=null==(v=n.faces)?void 0:v.east)?void 0:w.texture)||n.faces.east.cullface&&l[n.faces.east.cullface]||M(n.faces.east,[16-I,16-E,16-A,16-_],[y,_,I,y,_,A,y,E,A,y,E,I]),!(null==(x=null==(b=n.faces)?void 0:b.west)?void 0:x.texture)||n.faces.west.cullface&&l[n.faces.west.cullface]||M(n.faces.west,[A,16-E,I,16-_],[S,_,A,S,_,I,S,E,I,S,E,A]);const C=r.create();if(r.identity(C),n.rotation){const t=s.fromValues(...n.rotation.origin);r.translate(C,C,t),r.rotate(C,C,i.toRadian(n.rotation.angle),Xt[n.rotation.axis]),n.rotation.rescale&&r.scale(C,C,Zt[n.rotation.axis]),s.negate(t,t),r.translate(C,C,t)}const O=new Float32Array(N);return zt(O,C),{position:O,texCoord:B,tintColor:R,index:T}}getTexture(t){for(var e,s;t.startsWith(\"#\");)t=null!=(s=null==(e=this.textures)?void 0:e[t.slice(1)])?s:\"\";return t.startsWith(\"minecraft:\")||(t=\"minecraft:\"+t),t}flatten(t){var e;if(!this.flattened&&this.parent){const s=t.getBlockModel(this.parent);if(!s)return console.warn(`parent ${this.parent} does not exist!`),void(this.flattened=!0);s.flatten(t),this.elements||(this.elements=s.elements),this.textures||(this.textures={}),Object.keys(null!=(e=s.textures)?e:{}).forEach((t=>{this.textures[t]||(this.textures[t]=s.textures[t])})),this.flattened=!0}}static fromJson(t,e){let s=e.parent;return s&&!s.startsWith(\"minecraft:\")&&(s=\"minecraft:\"+s),new qt(t,s,e.textures,e.elements)}}class Jt{constructor(t,e,s){this.gl=t,this.program=this.initShaderProgram(e,s)}getProgram(){return this.program}initShaderProgram(t,e){const s=this.loadShader(this.gl.VERTEX_SHADER,t),r=this.loadShader(this.gl.FRAGMENT_SHADER,e),i=this.gl.createProgram();if(this.gl.attachShader(i,s),this.gl.attachShader(i,r),this.gl.linkProgram(i),!this.gl.getProgramParameter(i,this.gl.LINK_STATUS))throw new Error(`Unable to link shader program: ${this.gl.getProgramInfoLog(i)}`);return i}loadShader(t,e){const s=this.gl.createShader(t);if(this.gl.shaderSource(s,e),this.gl.compileShader(s),!this.gl.getShaderParameter(s,this.gl.COMPILE_STATUS)){const e=new Error(`Compiling ${t===this.gl.VERTEX_SHADER?\"vertex\":\"fragment\"} shader: ${this.gl.getShaderInfoLog(s)}`);throw this.gl.deleteShader(s),e}return s}}function Wt(t,e,s,r,i){const n=new Yt(\"\",{\"\":{model:\"\"}},void 0),o={getBlockModel:()=>i};return i.flatten(o),n.getBuffers(t,{},e,o,s,r)}function $t(t,e,s,r,i,o){const a=i.up?16:[14.2,12.5,10.5,9,7,5.3,3.7,1.9,16,16,16,16,16,16,16,16][s];return Wt(C.create(t),r,e,i,new qt(\"\",\"\",{still:`minecraft:block/${t}_still`,flow:`minecraft:block/${t}_flow`},[{from:[0,0,0],to:[16,a,16],faces:{up:{texture:\"#still\",tintindex:o,cullface:n.UP},down:{texture:\"#still\",tintindex:o,cullface:n.DOWN},north:{texture:\"#flow\",tintindex:o,cullface:n.NORTH},east:{texture:\"#flow\",tintindex:o,cullface:n.EAST},south:{texture:\"#flow\",tintindex:o,cullface:n.SOUTH},west:{texture:\"#flow\",tintindex:o,cullface:n.WEST}}}]))}const Kt={\"minecraft:water\":(t,e,s,r)=>$t(\"water\",t,parseInt(e.level),s,r,0),\"minecraft:lava\":(t,e,s,r)=>$t(\"lava\",t,parseInt(e.level),s,r),\"minecraft:chest\":(t,e,s)=>function(t,e,s,r){return Wt(C.create(\"chest\"),r,t,{},new qt(\"\",\"\",{0:\"minecraft:block/chest\"},[{from:[1,0,1],to:[15,14,15],faces:{up:{texture:\"#0\"},down:{texture:\"#0\"},north:{texture:\"#0\"},east:{texture:\"#0\"},south:{texture:\"#0\"},west:{texture:\"#0\"}}}]))}(t,e.facing,e.type,s)},Qt=new Set(Object.keys(Kt));class te{constructor(t,e,s,r){var i,n;this.gl=t,this.structure=e,this.resources=s,this.chunks=[],(null==r?void 0:r.facesPerBuffer)&&console.warn(\"webgl render warning: facesPerBuffer option has been removed in favor of chunkSize\"),this.chunkSize=null!=(i=null==r?void 0:r.chunkSize)?i:16,this.useInvisibleBlockBuffer=null==(n=null==r?void 0:r.useInvisibleBlockBuffer)||n,this.shaderProgram=new Jt(t,\"\\n attribute vec4 vertPos;\\n attribute vec2 texCoord;\\n attribute vec3 tintColor;\\n attribute vec3 normal;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vTexCoord = texCoord;\\n vTintColor = tintColor;\\n vLighting = normal.y * 0.2 + abs(normal.z) * 0.1 + 0.8;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n uniform sampler2D sampler;\\n\\n void main(void) {\\n vec4 texColor = texture2D(sampler, vTexCoord);\\n if(texColor.a < 0.01) discard;\\n gl_FragColor = vec4(texColor.xyz * vTintColor * vLighting, texColor.a);\\n }\\n\").getProgram(),this.gridShaderProgram=new Jt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 vertColor;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = vertColor;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.colorShaderProgram=new Jt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 blockPos;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = blockPos / 256.0;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.outlineBuffers=this.getOutlineBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers(),this.atlasTexture=this.getBlockTexture(),this.projMatrix=this.getPerspective(),this.activeShader=this.shaderProgram,this.initialize()}setStructure(t){this.structure=t,this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers()}initialize(){this.gl.enable(this.gl.DEPTH_TEST),this.gl.depthFunc(this.gl.LEQUAL),this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA),this.gl.enable(this.gl.CULL_FACE),this.gl.cullFace(this.gl.BACK)}getBlockTexture(){const t=this.gl.createTexture();return this.gl.bindTexture(this.gl.TEXTURE_2D,t),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,this.resources.getTextureAtlas()),this.gl.generateMipmap(this.gl.TEXTURE_2D),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.NEAREST),t}getPerspective(){const t=70*Math.PI/180,e=this.gl.canvas.clientWidth/this.gl.canvas.clientHeight,s=r.create();return r.perspective(s,t,e,.1,500),s}getChunk(t){const e=2*Math.abs(t[0])+(t[0]<0?1:0),s=2*Math.abs(t[1])+(t[1]<0?1:0),r=2*Math.abs(t[2])+(t[2]<0?1:0);return this.chunks[e]||(this.chunks[e]=[]),this.chunks[e][s]||(this.chunks[e][s]=[]),this.chunks[e][s][r]||(this.chunks[e][s][r]={positions:[],textureCoordinates:[],tintColors:[],blockPositions:[],normals:[],indices:[],indexOffset:0}),this.chunks[e][s][r]}updateStructureBuffers(t){var e;const i=(t,e,i)=>{const n=r.create();r.translate(n,n,e),zt(t.position,n),i.positions.push(t.position),i.textureCoordinates.push(...t.texCoord),i.tintColors.push(...t.tintColor);for(let e=0;e<t.position.length;e+=12){const r=s.fromValues(t.position[e],t.position[e+1],t.position[e+2]),n=s.fromValues(t.position[e+3],t.position[e+4],t.position[e+5]),o=s.fromValues(t.position[e+6],t.position[e+7],t.position[e+8]);s.subtract(n,n,r),s.subtract(o,o,r),s.cross(n,n,o),s.normalize(n,n),i.normals.push(...n,...n,...n,...n)}for(let s=0;s<t.texCoord.length/2;s+=1)i.blockPositions.push(...e);i.indices.push(...t.index),i.indexOffset+=t.texCoord.length/2},o=t=>{t.positions=[],t.textureCoordinates=[],t.tintColors=[],t.blockPositions=[],t.normals=[],t.indices=[],t.indexOffset=0},a=t=>{t.buffer?(this.updateBuffer(t.buffer.position,this.gl.ARRAY_BUFFER,Gt(...t.positions)),this.updateBuffer(t.buffer.texCoord,this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),this.updateBuffer(t.buffer.tintColor,this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),this.updateBuffer(t.buffer.normal,this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),this.updateBuffer(t.buffer.blockPos,this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),this.updateBuffer(t.buffer.index,this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),t.buffer.length=t.indices.length):t.buffer={position:this.createBuffer(this.gl.ARRAY_BUFFER,Gt(...t.positions)),texCoord:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),tintColor:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),blockPos:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),normal:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),index:this.createBuffer(this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),length:t.indices.length}};let l;t?t.forEach((t=>{const e=this.getChunk(t);o(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{o(t)}))))));for(const r of this.structure.getBlocks()){const o=r.state.getName(),a=r.state.getProperties(),u=null!=(e=this.resources.getDefaultBlockProperties(o))?e:{};Object.entries(u).forEach((([t,e])=>{a[t]||(a[t]=e)}));const h=[Math.floor(r.pos[0]/this.chunkSize),Math.floor(r.pos[1]/this.chunkSize),Math.floor(r.pos[2]/this.chunkSize)];if(t&&!t.some((t=>s.equals(t,h))))continue;const c=this.getChunk(h);try{const t=this.resources.getBlockDefinition(o),e={up:this.needsCull(r,n.UP),down:this.needsCull(r,n.DOWN),west:this.needsCull(r,n.WEST),east:this.needsCull(r,n.EAST),north:this.needsCull(r,n.NORTH),south:this.needsCull(r,n.SOUTH)};t&&(l=t.getBuffers(o,a,this.resources,this.resources,c.indexOffset,e),i(l,r.pos,c)),Qt.has(o.toString())&&(l=Kt[o.toString()](c.indexOffset,a,this.resources,e),i(l,r.pos,c))}catch(t){console.error(`Error rendering block ${o}`,t)}}t?t.forEach((t=>{const e=this.getChunk(t);a(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{a(t)}))))))}needsCull(t,e){var s,r;const i=null==(s=this.structure.getBlock(l.towards(t.pos,e)))?void 0:s.state;return!!i&&((null==(r=this.resources.getBlockFlags(i.getName()))?void 0:r.opaque)?!(e===n.UP&&t.state.isFluid()):t.state.isFluid()&&i.isFluid())}getGridBuffers(){const[t,e,s]=this.structure.getSize(),r=[],i=[];r.push(0,0,0,t,0,0),i.push(1,0,0,1,0,0),r.push(0,0,0,0,0,s),i.push(0,0,1,0,0,1),r.push(0,0,0,0,e,0),r.push(t,0,0,t,e,0),r.push(0,0,s,0,e,s),r.push(t,0,s,t,e,s),r.push(0,e,0,0,e,s),r.push(t,e,0,t,e,s),r.push(0,e,0,t,e,0),r.push(0,e,s,t,e,s);for(let e=1;e<=t;e+=1)r.push(e,0,0,e,0,s);for(let e=1;e<=s;e+=1)r.push(0,0,e,t,0,e);for(let e=0;e<8+t+s;e+=1)i.push(.8,.8,.8,.8,.8,.8);return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(r)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(i)),length:r.length/3}}getOutlineBuffers(){const t=[],e=[];return this.addCube(t,e,[1,1,1],[0,0,0],[1,1,1]),{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(e)),length:t.length/3}}getInvisibleBlockBuffers(){if(!this.useInvisibleBlockBuffer)return;const t=this.structure.getSize(),e=[],s=[];for(let r=0;r<t[0];r+=1)for(let i=0;i<t[1];i+=1)for(let n=0;n<t[2];n+=1){const t=this.structure.getBlock([r,i,n]);void 0!==t&&(null===t?this.addCube(e,s,[1,.25,.25],[r+.4375,i+.4375,n+.4375],[r+.5625,i+.5625,n+.5625]):t.state.is(G.AIR)?this.addCube(e,s,[.5,.5,1],[r+.375,i+.375,n+.375],[r+.625,i+.625,n+.625]):t.state.is(new G(\"cave_air\"))&&this.addCube(e,s,[.5,1,.5],[r+.375,i+.375,n+.375],[r+.625,i+.625,n+.625]))}return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(e)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(s)),length:e.length/3}}addCube(t,e,s,r,i){t.push(r[0],r[1],r[2],r[0],r[1],i[2]),t.push(i[0],r[1],r[2],i[0],r[1],i[2]),t.push(r[0],r[1],r[2],i[0],r[1],r[2]),t.push(r[0],r[1],i[2],i[0],r[1],i[2]),t.push(r[0],r[1],r[2],r[0],i[1],r[2]),t.push(i[0],r[1],r[2],i[0],i[1],r[2]),t.push(r[0],r[1],i[2],r[0],i[1],i[2]),t.push(i[0],r[1],i[2],i[0],i[1],i[2]),t.push(r[0],i[1],r[2],r[0],i[1],i[2]),t.push(i[0],i[1],r[2],i[0],i[1],i[2]),t.push(r[0],i[1],r[2],i[0],i[1],r[2]),t.push(r[0],i[1],i[2],i[0],i[1],i[2]);for(let t=0;t<24;t+=1)e.push(...s)}createBuffer(t,e){const s=this.gl.createBuffer();return this.gl.bindBuffer(t,s),this.gl.bufferData(t,e,this.gl.DYNAMIC_DRAW),s}updateBuffer(t,e,s){this.gl.bindBuffer(e,t),this.gl.bufferData(e,s,this.gl.STATIC_DRAW)}drawGrid(t){this.setShader(this.gridShaderProgram),this.setVertexAttr(\"vertPos\",3,this.gridBuffers.position),this.setVertexAttr(\"vertColor\",3,this.gridBuffers.color),this.setUniform(\"mView\",t),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.gridBuffers.length)}drawInvisibleBlocks(t){this.useInvisibleBlockBuffer&&(this.setShader(this.gridShaderProgram),this.setVertexAttr(\"vertPos\",3,this.invisibleBlockBuffers.position),this.setVertexAttr(\"vertColor\",3,this.invisibleBlockBuffers.color),this.setUniform(\"mView\",t),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.invisibleBlockBuffers.length))}drawStructure(t){this.setShader(this.shaderProgram),this.gl.activeTexture(this.gl.TEXTURE0),this.gl.bindTexture(this.gl.TEXTURE_2D,this.atlasTexture),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(\"texCoord\",2,t.buffer.texCoord),this.setVertexAttr(\"tintColor\",3,t.buffer.tintColor),this.setVertexAttr(\"normal\",3,t.buffer.normal),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawColoredStructure(t){this.setShader(this.colorShaderProgram),this.setUniform(\"mView\",t),this.setUniform(\"mProj\",this.projMatrix),this.chunks.forEach((t=>{t.forEach((t=>{t.forEach((t=>{t.buffer&&(this.setVertexAttr(\"vertPos\",3,t.buffer.position),this.setVertexAttr(\"blockPos\",3,t.buffer.blockPos),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawOutline(t,e){this.setShader(this.gridShaderProgram),this.setVertexAttr(\"vertPos\",3,this.outlineBuffers.position),this.setVertexAttr(\"vertColor\",3,this.outlineBuffers.color);const s=r.create();r.copy(s,t),r.translate(s,s,e),this.setUniform(\"mView\",s),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.outlineBuffers.length)}setViewport(t,e,s,r){this.gl.viewport(t,e,s,r),this.projMatrix=this.getPerspective()}setShader(t){this.gl.useProgram(t),this.activeShader=t}setVertexAttr(t,e,s){const r=this.gl.getAttribLocation(this.activeShader,t);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,s),this.gl.vertexAttribPointer(r,e,this.gl.FLOAT,!1,0,0),this.gl.enableVertexAttribArray(r)}setUniform(t,e){const s=this.gl.getUniformLocation(this.activeShader,t);this.gl.uniformMatrix4fv(s,!1,e)}}var ee=(t,e,s)=>new Promise(((r,i)=>{var n=t=>{try{a(s.next(t))}catch(t){i(t)}},o=t=>{try{a(s.throw(t))}catch(t){i(t)}},a=t=>t.done?r(t.value):Promise.resolve(t.value).then(n,o);a((s=s.apply(t,e)).next())}));class se{constructor(t,e){this.img=t,this.idMap=e,this.part=16/t.width}getTextureAtlas(){return this.img}getTextureUV(t){var e;return null!=(e=this.idMap[t])?e:[0,0,this.part,this.part]}static fromBlobs(t){return ee(this,null,(function*(){const e=Math.sqrt(Object.keys(t).length+1),s=Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))),r=16*s,i=1/s,n=document.createElement(\"canvas\");n.width=r,n.height=r;const o=n.getContext(\"2d\");this.drawInvalidTexture(o);const a={};let l=1;return yield Promise.all(Object.keys(t).map((e=>ee(this,null,(function*(){const r=l%s,n=Math.floor(l/s);l+=1,a[e]=[i*r,i*n,i*r+i,i*n+i];const u=yield createImageBitmap(t[e]);o.drawImage(u,0,0,16,16,16*r,16*n,16,16)}))))),new se(o.getImageData(0,0,r,r),a)}))}static empty(){const t=document.createElement(\"canvas\");t.width=16,t.height=16;const e=t.getContext(\"2d\");return se.drawInvalidTexture(e),new se(e.getImageData(0,0,16,16),{})}static drawInvalidTexture(t){t.fillStyle=\"black\",t.fillRect(0,0,16,16),t.fillStyle=\"magenta\",t.fillRect(0,0,8,8),t.fillRect(8,8,8,8)}}const re=class{constructor(t,e,s){this.offsetSampler=t,this.factorSampler=e,this.jaggednessSampler=s}static extractor(t){return{compute:e=>e[t]}}static fromJson(t){var e;const s=null!=(e=B.readObject(t))?e:{};return new re(ft.fromJson(s.offset,this.EXTRACTOR),ft.fromJson(s.factor,this.EXTRACTOR),ft.fromJson(s.jaggedness,this.EXTRACTOR))}offset(t){return this.offsetSampler.compute(t)+re.GLOBAL_OFFSET}factor(t){return this.factorSampler.compute(t)}jaggedness(t){return this.jaggednessSampler.compute(t)}static point(t,e,s){return{continents:t,erosion:e,weirdness:s,ridges:this.peaksAndValleys(s)}}static peaksAndValleys(t){return 3*-(Math.abs(Math.abs(t)-.6666667)-.33333334)}};let ie=re;var ne,oe,ae,le,ue;ie.GLOBAL_OFFSET=-.50375,ie.EXTRACTOR=t=>{var e;const s=null!=(e=B.readString(t))?e:\"continents\";return re.extractor(s)},ie.CONTINENTS=re.extractor(\"continents\"),ie.EROSION=re.extractor(\"erosion\"),ie.WEIRDNESS=re.extractor(\"weirdness\"),ie.RIDGES=re.extractor(\"ridges\"),function(t){function e(t){return t.ySize<<2}t.fromJson=function(t){var e,s,r,i,n;const o=null!=(e=B.readObject(t))?e:{};return{minY:null!=(s=B.readInt(o.min_y))?s:0,height:null!=(r=B.readInt(o.height))?r:256,xzSize:null!=(i=B.readInt(o.size_horizontal))?i:1,ySize:null!=(n=B.readInt(o.size_vertical))?n:1,sampling:yt.fromJson(o.sampling),topSlide:oe.fromJson(o.top_slide),bottomSlide:oe.fromJson(o.bottom_slide),terrainShaper:ie.fromJson(o.terrain_shaper)}},t.cellHeight=e,t.cellWidth=function(t){return t.xzSize<<2},t.cellCountY=function(t){return t.height/e(t)},t.minCellY=function(t){return Math.floor(t.minY/e(t))},t.applySlides=function(s,r,i){const n=Math.floor(i/e(s))-t.minCellY(s);return r=oe.apply(s.topSlide,r,t.cellCountY(s)-n),r=oe.apply(s.bottomSlide,r,n)}}(ne||(ne={})),(ae=oe||(oe={})).fromJson=function(t){var e,s,r,i;const n=null!=(e=B.readObject(t))?e:{};return{target:null!=(s=B.readNumber(n.target))?s:0,size:null!=(r=B.readInt(n.size))?r:0,offset:null!=(i=B.readInt(n.offset))?i:0}},ae.apply=function(t,e,s){if(t.size<=0)return e;const r=(s-t.offset)/t.size;return it(t.target,e,r)},function(t){function e(t){const e=new q(C.create(t));return q.REGISTRY.register(e.key,e),e}t.NOISE=e(\"worldgen/noise\"),t.DENSITY_FUNCTION=e(\"worldgen/density_function\")}(le||(le={}));class he{minValue(){return-this.maxValue()}mapAll(t){return t.map(this)}}!function(t){t.context=function(t,e,s){return{x:t,y:e,z:s}};class e extends t{constructor(t){super(),this.input=t}compute(t){return this.transform(t,this.input.compute(t))}}const s=j.parser(le.NOISE,Nt.fromJson);t.fromJson=function t(e,r=t){var l,v,S,N,T,D,U,G,z,Y,H,X,Z,q,J,W,$,K,Q;if(\"string\"==typeof e)return new n(j.reference(le.DENSITY_FUNCTION,C.parse(e)));if(\"number\"==typeof e)return new i(e);const tt=null!=(l=B.readObject(e))?l:{},et=null==(v=B.readString(tt.type))?void 0:v.replace(/^minecraft:/,\"\");switch(et){case\"blend_alpha\":return new o(1,0,1);case\"blend_offset\":case\"beardifier\":return new o(0,-1/0,1/0);case\"old_blended_noise\":return new a;case\"flat_cache\":return new u(r(tt.argument));case\"interpolated\":return new m(r(tt.argument));case\"cache_2d\":return new c(r(tt.argument));case\"cache_once\":return new f(r(tt.argument));case\"cache_all_in_cell\":return new h(r(tt.argument));case\"noise\":return new d(null!=(S=B.readNumber(tt.xz_scale))?S:1,null!=(N=B.readNumber(tt.y_scale))?N:1,s(tt.noise));case\"end_islands\":return new p;case\"weird_scaled_sampler\":return new w(r(tt.input),B.readEnum(tt.rarity_value_mapper,g),s(tt.noise));case\"shifted_noise\":return new b(r(tt.shift_x),r(tt.shift_y),r(tt.shift_z),null!=(T=B.readNumber(tt.xz_scale))?T:1,null!=(D=B.readNumber(tt.y_scale))?D:1,s(tt.noise));case\"range_choice\":return new x(r(tt.input),null!=(U=B.readNumber(tt.min_inclusive))?U:0,null!=(G=B.readNumber(tt.max_exclusive))?G:1,r(tt.when_in_range),r(tt.when_out_of_range));case\"shift_a\":return new _(s(tt.argument));case\"shift_b\":return new A(s(tt.argument));case\"shift\":return new y(s(tt.argument));case\"blend_density\":return new E(r(tt.argument));case\"clamp\":return new I(r(tt.input),null!=(z=B.readNumber(tt.min))?z:0,null!=(Y=B.readNumber(tt.max))?Y:1);case\"abs\":case\"square\":case\"cube\":case\"half_negative\":case\"quarter_negative\":case\"squeeze\":return new R(et,r(tt.argument));case\"slide\":return new M(r(tt.argument));case\"add\":case\"mul\":case\"min\":case\"max\":return new k(B.readEnum(et,O),r(tt.argument1),r(tt.argument2));case\"spline\":return new P(ft.fromJson(tt.spline,r),null!=(H=B.readNumber(tt.min_value))?H:0,null!=(X=B.readNumber(tt.max_value))?X:1);case\"terrain_shaper_spline\":return new F(r(tt.continentalness),r(tt.erosion),r(tt.weirdness),B.readEnum(tt.spline,L),null!=(Z=B.readNumber(tt.min_value))?Z:0,null!=(q=B.readNumber(tt.max_value))?q:1);case\"constant\":return new i(null!=(J=B.readNumber(tt.argument))?J:0);case\"y_clamped_gradient\":return new V(null!=(W=B.readInt(tt.from_y))?W:-4064,null!=($=B.readInt(tt.to_y))?$:4062,null!=(K=B.readNumber(tt.from_value))?K:-4064,null!=(Q=B.readNumber(tt.to_value))?Q:4062)}return i.ZERO};const r=class extends t{constructor(t){super(),this.value=t}compute(){return this.value}minValue(){return this.value}maxValue(){return this.value}};let i=r;i.ZERO=new r(0),i.ONE=new r(1),t.Constant=i;class n extends t{constructor(t){super(),this.holder=t}compute(t){return this.holder.value().compute(t)}minValue(){return this.holder.value().minValue()}maxValue(){return this.holder.value().maxValue()}}t.HolderHolder=n;class o extends t.Constant{constructor(t,e,s){super(t),this.min=e,this.max=s}minValue(){return this.min}maxValue(){return this.max}}t.ConstantMinMax=o;class a extends t{constructor(t){super(),this.blendedNoise=null!=t?t:new At(vt.create(BigInt(0)),{xzScale:1,yScale:1,xzFactor:80,yFactor:160},4,8)}compute(t){return this.blendedNoise.sample(t.x,t.y,t.z)}maxValue(){return this.blendedNoise.maxValue}}t.OldBlendedNoise=a;class l extends t{constructor(t){super(),this.wrapped=t}minValue(){return this.wrapped.minValue()}maxValue(){return this.wrapped.maxValue()}}class u extends l{constructor(t){super(t),this.lastValue=0}compute(e){const s=e.x>>2,r=e.z>>2;return this.lastQuartX===s&&this.lastQuartZ===r||(this.lastValue=this.wrapped.compute(t.context(s<<2,0,r<<2)),this.lastQuartX=s,this.lastQuartZ=r),this.lastValue}mapAll(t){return t.map(new u(this.wrapped.mapAll(t)))}}t.FlatCache=u;class h extends l{constructor(t){super(t)}compute(t){return this.wrapped.compute(t)}mapAll(t){return t.map(new h(this.wrapped.mapAll(t)))}}t.CacheAllInCell=h;class c extends l{constructor(t){super(t),this.lastValue=0}compute(t){const e=t.x,s=t.z;return this.lastBlockX===e&&this.lastBlockZ===s||(this.lastValue=this.wrapped.compute(t),this.lastBlockX=e,this.lastBlockZ=s),this.lastValue}mapAll(t){return t.map(new c(this.wrapped.mapAll(t)))}}t.Cache2D=c;class f extends l{constructor(t){super(t),this.lastValue=0}compute(t){const e=t.x,s=t.y,r=t.z;return this.lastBlockX===e&&this.lastBlockY===s&&this.lastBlockZ===r||(this.lastValue=this.wrapped.compute(t),this.lastBlockX=e,this.lastBlockY=s,this.lastBlockZ=r),this.lastValue}mapAll(t){return t.map(new f(this.wrapped.mapAll(t)))}}t.CacheOnce=f;class m extends l{constructor(t,e=4,s=4){super(t),this.cellWidth=e,this.cellHeight=s,this.values=new Map}compute({x:t,y:e,z:s}){const r=this.cellWidth,i=this.cellHeight,n=(t%r+r)%r/r,o=(e%i+i)%i/i,a=(s%r+r)%r/r,l=Math.floor(t/r)*r,u=Math.floor(e/i)*i,h=Math.floor(s/r)*r;return rt(n,o,a,(()=>this.computeCorner(l,u,h)),(()=>this.computeCorner(l+r,u,h)),(()=>this.computeCorner(l,u+i,h)),(()=>this.computeCorner(l+r,u+i,h)),(()=>this.computeCorner(l,u,h+r)),(()=>this.computeCorner(l+r,u,h+r)),(()=>this.computeCorner(l,u+i,h+r)),(()=>this.computeCorner(l+r,u+i,h+r)))}computeCorner(e,s,r){return T(this.values,`${e} ${s} ${r}`,(()=>this.wrapped.compute(t.context(e,s,r))))}mapAll(t){return t.map(new m(this.wrapped.mapAll(t)))}withCellSize(t,e){return new m(this.wrapped,t,e)}}t.Interpolated=m;class d extends t{constructor(t,e,s,r){super(),this.xzScale=t,this.yScale=e,this.noiseData=s,this.noise=r}compute(t){var e,s;return null!=(s=null==(e=this.noise)?void 0:e.sample(t.x*this.xzScale,t.y*this.yScale,t.z*this.xzScale))?s:0}maxValue(){var t,e;return null!=(e=null==(t=this.noise)?void 0:t.maxValue)?e:2}}t.Noise=d;class p extends t{compute(){return 0}minValue(){return-.84375}maxValue(){return.5625}}const g=[\"type_1\",\"type_2\"],v=class extends e{constructor(t,e,s,r){super(t),this.rarityValueMapper=e,this.noiseData=s,this.noise=r,this.mapper=v.ValueMapper[this.rarityValueMapper]}transform(t,e){if(!this.noise)return 0;const s=this.mapper(e);return s*Math.abs(this.noise.sample(t.x/s,t.y/s,t.z/s))}mapAll(t){return t.map(new v(this.input.mapAll(t),this.rarityValueMapper,this.noiseData,this.noise))}minValue(){return 0}maxValue(){return\"type_1\"===this.rarityValueMapper?2:3}static rarityValueMapper1(t){return t<-.5?.75:t<0?1:t<.5?1.5:2}static rarityValueMapper2(t){return t<-.75?.5:t<-.5?.75:t<.5?1:t<.75?2:3}};let w=v;w.ValueMapper={type_1:v.rarityValueMapper1,type_2:v.rarityValueMapper2},t.WeirdScaledSampler=w;class b extends d{constructor(t,e,s,r,i,n,o){super(r,i,n,o),this.shiftX=t,this.shiftY=e,this.shiftZ=s}compute(t){var e,s;const r=t.x*this.xzScale+this.shiftX.compute(t),i=t.y*this.yScale+this.shiftY.compute(t),n=t.z*this.xzScale+this.shiftZ.compute(t);return null!=(s=null==(e=this.noise)?void 0:e.sample(r,i,n))?s:0}mapAll(t){return t.map(new b(this.shiftX.mapAll(t),this.shiftY.mapAll(t),this.shiftZ.mapAll(t),this.xzScale,this.yScale,this.noiseData,this.noise))}}t.ShiftedNoise=b;class x extends t{constructor(t,e,s,r,i){super(),this.input=t,this.minInclusive=e,this.maxExclusive=s,this.whenInRange=r,this.whenOutOfRange=i}compute(t){const e=this.input.compute(t);return this.minInclusive<=e&&e<this.maxExclusive?this.whenInRange.compute(t):this.whenOutOfRange.compute(t)}mapAll(t){return t.map(new x(this.input.mapAll(t),this.minInclusive,this.maxExclusive,this.whenInRange.mapAll(t),this.whenOutOfRange.mapAll(t)))}minValue(){return Math.min(this.whenInRange.minValue(),this.whenOutOfRange.minValue())}maxValue(){return Math.max(this.whenInRange.maxValue(),this.whenOutOfRange.maxValue())}}t.RangeChoice=x;class S extends t{constructor(t,e){super(),this.noiseData=t,this.offsetNoise=e}compute(t){var e,s;return null!=(s=null==(e=this.offsetNoise)?void 0:e.sample(.25*t.x,.25*t.y,.25*t.z))?s:0}maxValue(){var t,e;return 4*(null!=(e=null==(t=this.offsetNoise)?void 0:t.maxValue)?e:2)}}t.ShiftNoise=S;class _ extends S{constructor(t,e){super(t,e)}compute(e){return super.compute(t.context(e.x,0,e.z))}withNewNoise(t){return new _(this.noiseData,t)}}t.ShiftA=_;class A extends S{constructor(t,e){super(t,e)}compute(e){return super.compute(t.context(e.z,e.x,0))}withNewNoise(t){return new A(this.noiseData,t)}}t.ShiftB=A;class y extends S{constructor(t,e){super(t,e)}withNewNoise(t){return new y(this.noiseData,t)}}t.Shift=y;class E extends e{constructor(t){super(t)}transform(t,e){return e}mapAll(t){return t.map(new E(this.input.mapAll(t)))}minValue(){return-1/0}maxValue(){return 1/0}}t.BlendDensity=E;class I extends e{constructor(t,e,s){super(t),this.min=e,this.max=s}transform(t,e){return $(e,this.min,this.max)}mapAll(t){return t.map(new I(this.input.mapAll(t),this.min,this.max))}minValue(){return this.min}maxValue(){return this.max}}t.Clamp=I;const N=class extends e{constructor(t,e,s,r){super(e),this.type=t,this.min=s,this.max=r,this.transformer=N.MappedTypes[this.type]}transform(t,e){return this.transformer(e)}mapAll(t){return t.map(new N(this.type,this.input.mapAll(t)))}minValue(){var t;return null!=(t=this.min)?t:-1/0}maxValue(){var t;return null!=(t=this.max)?t:1/0}withMinMax(){const t=this.input.minValue();let e=this.transformer(t),s=this.transformer(this.input.maxValue());return\"abs\"!==this.type&&\"square\"!==this.type||(s=Math.max(e,s),e=Math.max(0,t)),new N(this.type,this.input,e,s)}};let R=N;R.MappedTypes={abs:t=>Math.abs(t),square:t=>t*t,cube:t=>t*t*t,half_negative:t=>t>0?t:.5*t,quarter_negative:t=>t>0?t:.25*t,squeeze:t=>{const e=$(t,-1,1);return e/2-e*e*e/24}},t.Mapped=R;class M extends e{constructor(t,e){super(t),this.settings=e}transform(t,e){return this.settings?ne.applySlides(this.settings,e,t.y):e}mapAll(t){return t.map(new M(this.input.mapAll(t),this.settings))}minValue(){return this.settings?Math.min(this.input.minValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.minValue()}maxValue(){return this.settings?Math.max(this.input.maxValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.maxValue()}}t.Slide=M;const O=[\"add\",\"mul\",\"min\",\"max\"];class k extends t{constructor(t,e,s,r,i){super(),this.type=t,this.argument1=e,this.argument2=s,this.min=r,this.max=i}compute(t){const e=this.argument1.compute(t);switch(this.type){case\"add\":return e+this.argument2.compute(t);case\"mul\":return 0===e?0:e*this.argument2.compute(t);case\"min\":return e<this.argument2.minValue()?e:Math.min(e,this.argument2.compute(t));case\"max\":return e>this.argument2.maxValue()?e:Math.max(e,this.argument2.compute(t))}}mapAll(t){return t.map(new k(this.type,this.argument1.mapAll(t),this.argument2.mapAll(t)))}minValue(){var t;return null!=(t=this.min)?t:-1/0}maxValue(){var t;return null!=(t=this.max)?t:1/0}withMinMax(){const t=this.argument1.minValue(),e=this.argument2.minValue(),s=this.argument1.maxValue(),r=this.argument2.maxValue();let i,n;switch(\"min\"!==this.type&&\"max\"!==this.type||!(t>=r||e>=s)||console.warn(`Creating a ${this.type} function between two non-overlapping inputs`),this.type){case\"add\":i=t+e,n=s+r;break;case\"mul\":i=t>0&&e>0?t*e||0:s<0&&r<0?s*r||0:Math.min(t*r||0,e*s||0),n=t>0&&e>0?s*r||0:s<0&&r<0?t*e||0:Math.max(t*e||0,s*r||0);break;case\"min\":i=Math.min(t,e),n=Math.min(s,r);break;case\"max\":i=Math.max(t,e),n=Math.max(s,r)}return new k(this.type,this.argument1,this.argument2,i,n)}}t.Ap2=k;class P extends t{constructor(t,e,s){super(),this.spline=t,this.min=e,this.max=s}compute(t){return $(this.spline.compute(t),this.min,this.max)}mapAll(e){return e.map(new P(this.spline.mapAll((s=>s instanceof t?s.mapAll(e):s)),this.min,this.max))}minValue(){return this.min}maxValue(){return this.max}}t.Spline=P;const L=[\"offset\",\"factor\",\"jaggedness\"];class F extends t{constructor(t,e,s,r,i,n,o){super(),this.continentalness=t,this.erosion=e,this.weirdness=s,this.spline=r,this.min=i,this.max=n,this.shaper=o}compute(t){if(!this.shaper)return 0;const e=ie.point(this.continentalness.compute(t),this.erosion.compute(t),this.weirdness.compute(t));return $(this.shaper[this.spline](e),this.min,this.max)}mapAll(t){return t.map(new F(this.continentalness.mapAll(t),this.erosion.mapAll(t),this.weirdness.mapAll(t),this.spline,this.min,this.max,this.shaper))}minValue(){return this.min}maxValue(){return this.max}}t.TerrainShaperSpline=F;class V extends t{constructor(t,e,s,r){super(),this.fromY=t,this.toY=e,this.fromValue=s,this.toValue=r}compute(t){return lt(t.y,this.fromY,this.toY,this.fromValue,this.toValue)}minValue(){return Math.min(this.fromValue,this.toValue)}maxValue(){return Math.max(this.fromValue,this.toValue)}}t.YClampedGradient=V}(he||(he={}));class ce{constructor(t,e){this.level=t,this.type=e}at(t){return t<this.level?this.type:G.AIR}}(ue||(ue={})).createDisabled=function(t){return{compute({x:e,y:s,z:r},i){if(!(i>0))return t(e,s,r).at(s)}}};const fe=class{constructor(t,e,s,r,i,n,o,a,u,h){this.noiseChunk=t,this.barrierNoise=s,this.fluidLevelFloodednessNoise=r,this.fluidLevelSpreadNoise=i,this.lavaNoise=n,this.random=o,this.globalFluidPicker=h,this.minGridX=this.gridX(X.minBlockX(e))-1,this.gridSizeX=this.gridX(X.maxBlockX(e))+1-this.minGridX+1,this.minGridY=this.gridY(a)-1,this.minGridZ=this.gridZ(X.minBlockZ(e))-1,this.gridSizeZ=this.gridZ(X.maxBlockZ(e))+1-this.minGridZ+1;const c=this.gridY(a+u)+1-this.minGridY+1;this.gridSize=this.gridSizeX*c*this.gridSizeZ,this.aquiferCache=Array(this.gridSize).fill(void 0),this.aquiferLocationCache=Array(this.gridSize).fill(l.ZERO)}compute({x:t,y:e,z:s},r){if(r<=0){if(this.globalFluidPicker(t,e,s).at(e).is(G.LAVA))return G.LAVA;{const i=this.gridX(t-5),n=this.gridY(e+1),o=this.gridZ(s-5);let a=Number.MAX_SAFE_INTEGER,u=Number.MAX_SAFE_INTEGER,h=Number.MAX_SAFE_INTEGER,c=l.ZERO,f=l.ZERO,m=l.ZERO;for(let t=0;t<=1;t+=1)for(let e=-1;e<=1;e+=1)for(let s=0;s<=1;s+=1){const r=this.getLocation(i+t,n+e,o+s),d=l.magnitude(r);a>=d?(m=f,f=c,c=r,h=u,u=a,a=d):u>=d?(m=f,f=r,h=u,u=d):h>=d&&(m=r,h=d)}const d=this.getStatus(c),p=this.getStatus(f),g=this.getStatus(m),v=fe.similarity(a,u),w=fe.similarity(a,h),b=fe.similarity(u,h);let x;if(d.at(e).is(G.WATER)&&this.globalFluidPicker(t,e-1,s).at(e-1).is(G.LAVA))x=1;else if(v>-1){const r=R((()=>this.barrierNoise.compute(he.context(t,.5*e,s)))),i=this.calculatePressure(e,d,p,r),n=this.calculatePressure(e,d,g,r),o=this.calculatePressure(e,p,g,r),a=Math.max(i,n*Math.max(0,w),o*Math.max(b));x=Math.max(0,2*Math.max(0,v)*a)}else x=0;if(r+x<=0)return d.at(e)}}}static similarity(t,e){return 1-Math.abs(e-t)/25}calculatePressure(t,e,s,r){const i=e.at(t),n=s.at(t);if(i.is(G.LAVA)&&n.is(G.WATER)||i.is(G.WATER)&&n.is(G.LAVA))return 1;const o=Math.abs(e.level-s.level);if(0===o)return 0;const a=t+.5-(e.level+s.level)/2,l=o/2-Math.abs(a),u=a>0?l>0?l/1.5:l/2.5:l>-3?(l+3)/3:(l+3)/10;return u<-2||u>2?u:u+r()}getStatus(t){const[e,s,r]=t,i=this.getIndex(this.gridX(e),this.gridY(s),this.gridZ(r)),n=this.aquiferCache[i];if(void 0!==n)return n;const o=this.computeStatus(e,s,r);return this.aquiferCache[i]=o,o}computeStatus(t,e,s){const r=this.globalFluidPicker(t,e,s);let i=Number.MAX_SAFE_INTEGER,n=!1;for(const[o,a]of fe.SURFACE_SAMPLING){const l=t+(a<<4),u=s+(a<<4),h=this.noiseChunk.getPreliminarySurfaceLevel(l,u);i=Math.min(i,h);const c=0===o&&0===a;if(c&&e-12>h+8)return r;if(c||e+12>h+8){const t=this.globalFluidPicker(l,h+8,u);if(!t.at(h+8).is(G.AIR)){if(c)return t;n=!0}}}const o=n?lt(i+8-e,0,64,1,0):0,a=$(this.fluidLevelFloodednessNoise.compute(he.context(t,.67*e,s)),-1,1);if(a>at(o,1,0,-.3,.8))return r;if(a<=at(o,1,0,-.8,.4))return new ce(Number.MIN_SAFE_INTEGER,r.type);const l=Math.floor(e/40),u=this.fluidLevelSpreadNoise.compute(he.context(Math.floor(t/16),l,Math.floor(s/16))),h=40*l+20+3*Math.floor(u/3),c=Math.min(i,h),f=this.getFluidType(t,e,s,r.type,h);return new ce(c,f)}getFluidType(t,e,s,r,i){if(i<=-10){const r=this.lavaNoise.compute(he.context(Math.floor(t/64),Math.floor(e/40),Math.floor(s/64)));if(Math.abs(r)>.3)return G.LAVA}return r}getLocation(t,e,s){const r=this.getIndex(t,e,s),i=this.aquiferLocationCache[r];if(l.equals(i,l.ZERO))return i;const n=this.random.at(t,e,s),o=l.create(t*fe.X_SPACING+n.nextInt(10),e*fe.Y_SPACING+n.nextInt(9),s*fe.Z_SPACING+n.nextInt(10));return this.aquiferLocationCache[r]=o,o}getIndex(t,e,s){const r=t-this.minGridX,i=e-this.minGridY,n=s-this.minGridZ,o=(i*this.gridSizeZ+n)*this.gridSizeX+r;if(o<0||o>=this.gridSize)throw new Error(`Invalid aquifer index at ${t} ${e} ${s}: 0 <= ${o} < ${this.gridSize}`);return o}gridX(t){return Math.floor(t/fe.X_SPACING)}gridY(t){return Math.floor(t/fe.Y_SPACING)}gridZ(t){return Math.floor(t/fe.Z_SPACING)}};let me=fe;var de,pe;me.X_SPACING=16,me.Y_SPACING=12,me.Z_SPACING=16,me.SURFACE_SAMPLING=[[-2,-1],[-1,-1],[0,-1],[1,-1],[-3,0],[-2,0],[-1,0],[0,0],[1,0],[-2,1],[-1,1],[0,1],[1,1]],function(t){function e(t,e){return\"number\"==typeof t?new s(t,null!=e?e:t):t}t.target=function(t,e,s,r,n,o){return new i(t,e,s,r,n,o)},t.parameters=function(t,s,i,n,o,a,l){return new r(e(t),e(s),e(i),e(n),e(o),e(a),l)},t.param=e;class s{constructor(t,e){this.min=t,this.max=e}distance(t){const e=(\"number\"==typeof t?t:t.min)-this.max,s=this.min-(\"number\"==typeof t?t:t.max);return e>0?e:Math.max(s,0)}union(t){return new s(Math.min(this.min,t.min),Math.max(this.max,t.max))}static fromJson(t){var e;if(\"number\"==typeof t)return new s(t,t);const[r,i]=null!=(e=B.readArray(t,(t=>B.readNumber(t))))?e:[];return new s(null!=r?r:0,null!=i?i:0)}}t.Param=s;class r{constructor(t,e,s,r,i,n,o){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=r,this.depth=i,this.weirdness=n,this.offset=o}fittness(t){return W(this.temperature.distance(t.temperature))+W(this.humidity.distance(t.humidity))+W(this.continentalness.distance(t.continentalness))+W(this.erosion.distance(t.erosion))+W(this.depth.distance(t.depth))+W(this.weirdness.distance(t.weirdness))+W(this.offset-t.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new s(this.offset,this.offset)]}static fromJson(t){var e,i;const n=null!=(e=B.readObject(t))?e:{};return new r(s.fromJson(n.temperature),s.fromJson(n.humidity),s.fromJson(n.continentalness),s.fromJson(n.erosion),s.fromJson(n.depth),s.fromJson(n.weirdness),null!=(i=B.readInt(n.offset))?i:0)}}t.ParamPoint=r;class i{constructor(t,e,s,r,i,n){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=r,this.depth=i,this.weirdness=n}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}t.TargetPoint=i;t.Parameters=class{constructor(t){this.things=t,this.index=new o(t)}find(t){return this.index.search(t,((t,e)=>t.distance(e)))}};t.Sampler=class{constructor(t,e,s,r,i,n){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=r,this.depth=i,this.weirdness=n}static fromRouter(e){return new t.Sampler(e.temperature,e.vegetation,e.continents,e.erosion,e.depth,e.ridges)}sample(e,s,r){const i=he.context(e<<2,s<<2,r<<2);return t.target(this.temperature.compute(i),this.humidity.compute(i),this.continentalness.compute(i),this.erosion.compute(i),this.depth.compute(i),this.weirdness.compute(i))}};const n=class{constructor(t){this.root=n.build(t.map((([t,e])=>new u(t,e))))}static build(t){if(1===t.length)return t[0];if(t.length<=n.CHILDREN_PER_NODE){const e=t.map((t=>{let e=0;for(let s=0;s<7;s+=1){const r=t.space[s];e+=Math.abs((r.min+r.max)/2)}return{key:e,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t));return new l(e)}let e=1/0,s=-1,r=[];for(let i=0;i<7;++i){t=n.sort(t,i,!1),r=n.bucketize(t);let o=0;for(const t of r)o+=n.area(t.space);e>o&&(e=o,s=i)}return t=n.sort(t,s,!1),r=n.bucketize(t),r=n.sort(r,s,!0),new l(r.map((t=>n.build(t.children))))}static sort(t,e,s){return t.map((t=>{const r=t.space[e],i=(r.min+r.max)/2;return{key:s?Math.abs(i):i,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t))}static bucketize(t){const e=[];let s=[];const r=Math.pow(10,Math.floor(Math.log(t.length-.01)/Math.log(10)));for(const i of t)s.push(i),s.length<r||(e.push(new l(s)),s=[]);return 0!==s.length&&e.push(new l(s)),e}static area(t){let e=0;for(const s of t)e+=Math.abs(s.max-s.min);return e}search(t,e){return this.root.search(t.toArray(),e).thing()}};let o=n;o.CHILDREN_PER_NODE=10,t.RTree=o;class a{constructor(t){this.space=t}distance(t){let e=0;for(let s=0;s<7;s+=1)e+=W(this.space[s].distance(t[s]));return e}}t.RNode=a;class l extends a{constructor(t){super(l.buildSpace(t)),this.children=t}static buildSpace(t){let e=[...Array(7)].map((()=>new s(1/0,-1/0)));for(const s of t)e=[...Array(7)].map(((t,r)=>e[r].union(s.space[r])));return e}search(t,e){let s=1/0,r=null;for(const i of this.children){const n=e(i,t);if(s<=n)continue;const o=i.search(t,e),a=i==o?n:e(o,t);s<=a||(s=a,r=o)}return r}}t.RSubTree=l;class u extends a{constructor(t,e){super(t.space()),this.thing=e}search(){return this}}t.RLeaf=u}(de||(de={}));class ge{constructor(t){this.biome=t}getBiome(){return this.biome}static fromJson(t){var e,s;const r=null!=(e=B.readObject(t))?e:{},i=C.parse(null!=(s=B.readString(r.biome))?s:\"minecraft:the_void\");return new ge(i)}}class ve{constructor(t){this.parameters=t}getBiome(t,e,s,r){const i=r.sample(t,e,s);return this.parameters.find(i)}static fromJson(t){var e,s;const r=null!=(e=B.readObject(t))?e:{},i=(null!=(s=B.readArray(r.biomes,(t=>{var e,s,r;return s=null!=(e=B.readObject(t))?e:{},{biome:C.parse(null!=(r=B.readString(s.biome))?r:\"minecraft:the_void\"),parameters:de.ParamPoint.fromJson(s.parameters)}})))?s:[]).map((t=>[t.parameters,()=>t.biome]));return new ve(new de.Parameters(i))}}!function(t){function e(t,e,s){return le.NOISE.register(C.create(t),Nt.create(e,s))}t.TEMPERATURE=e(\"temperature\",-10,[1.5,0,1,0,0,0]),t.VEGETATION=e(\"vegetation\",-8,[1,1,0,0,0,0]),t.CONTINENTALNESS=e(\"continentalness\",-9,[1,1,2,2,2,1,1,1,1]),t.EROSION=e(\"erosion\",-9,[1,1,0,1,1]),t.TEMPERATURE_LARGE=e(\"temperature_large\",-12,[1.5,0,1,0,0,0]),t.VEGETATION_LARGE=e(\"vegetation_large\",-10,[1,1,0,0,0,0]),t.CONTINENTALNESS_LARGE=e(\"continentalness_large\",-11,[1,1,2,2,2,1,1,1,1]),t.EROSION_LARGE=e(\"erosion_large\",-11,[1,1,0,1,1]),t.RIDGE=e(\"ridge\",-7,[1,2,1,0,0,0]),t.SHIFT=e(\"offset\",-3,[1,1,1,0]),t.AQUIFER_BARRIER=e(\"aquifer_barrier\",-3,[1]),t.AQUIFER_FLUID_LEVEL_FLOODEDNESS=e(\"aquifer_fluid_level_floodedness\",-7,[1]),t.AQUIFER_FLUID_LEVEL_SPREAD=e(\"aquifer_fluid_level_spread\",-5,[1]),t.AQUIFER_LAVA=e(\"aquifer_lava\",-1,[1]),t.PILLAR=e(\"pillar\",-7,[1,1]),t.PILLAR_RARENESS=e(\"pillar_rareness\",-8,[1]),t.PILLAR_THICKNESS=e(\"pillar_thickness\",-8,[1]),t.SPAGHETTI_2D=e(\"spaghetti_2d\",-8,[1]),t.SPAGHETTI_2D_ELEVATION=e(\"spaghetti_2d_elevation\",-8,[1]),t.SPAGHETTI_2D_MODULATOR=e(\"spaghetti_2d_modulator\",-8,[1]),t.SPAGHETTI_2D_THICKNESS=e(\"spaghetti_2d_thickness\",-8,[1]),t.SPAGHETTI_3D_1=e(\"spaghetti_3d_1\",-8,[1]),t.SPAGHETTI_3D_2=e(\"spaghetti_3d_2\",-8,[1]),t.SPAGHETTI_3D_RARITY=e(\"spaghetti_3d_rarity\",-8,[1]),t.SPAGHETTI_3D_THICKNESS=e(\"spaghetti_3d_thickness\",-8,[1]),t.SPAGHETTI_ROUGHNESS=e(\"spaghetti_roughness\",-8,[1]),t.SPAGHETTI_ROUGHNESS_MODULATOR=e(\"spaghetti_roughness_modulator\",-8,[1]),t.CAVE_ENTRANCE=e(\"cave_entrance\",-7,[.4,.5,1]),t.CAVE_LAYER=e(\"cave_layer\",-8,[1]),t.CAVE_CHEESE=e(\"cave_cheese\",-8,[.5,1,2,1,2,1,0,2,0]),t.NOODLE=e(\"noodle\",-8,[1]),t.NOODLE_THICKNESS=e(\"noodle_thickness\",-8,[1]),t.NOODLE_RIDGE_A=e(\"noodle_ridge_a\",-7,[1]),t.NOODLE_RIDGE_B=e(\"noodle_ridge_b\",-7,[1]),t.JAGGED=e(\"jagged\",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),t.SURFACE=e(\"surface\",-6,[1,1,1]),t.SURFACE_SECONDARY=e(\"surface_secondary\",-6,[1,1,0,1]);const s=new Map;t.instantiate=function(t,e){var r;const i=null==(r=e.key())?void 0:r.toString();if(!i)throw new Error(\"Cannot instantiate noise from direct holder\");const n=t.seedKey(),o=s.get(i);if(o&&o[0]===n[0]&&o[1]===n[1])return o[2];const a=new It(t.fromHashOf(i),e.value());return s.set(i,[n[0],n[1],a]),a}}(pe||(pe={}));var we,be,xe,Se,_e,Ae,ye,Ee=Object.defineProperty,Ie=Object.defineProperties,Ne=Object.getOwnPropertyDescriptors,Be=Object.getOwnPropertySymbols,Re=Object.prototype.hasOwnProperty,Te=Object.prototype.propertyIsEnumerable,Me=(t,e,s)=>e in t?Ee(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,Ce=(t,e)=>{for(var s in e||(e={}))Re.call(e,s)&&Me(t,s,e[s]);if(Be)for(var s of Be(e))Te.call(e,s)&&Me(t,s,e[s]);return t};!function(t){const e=t=>j.parser(le.DENSITY_FUNCTION,he.fromJson)(t).value();t.fromJson=function(t){var s;const r=null!=(s=B.readObject(t))?s:{};return{barrier:e(r.barrier),fluidLevelFloodedness:e(r.fluid_level_floodedness),fluidLevelSpread:e(r.fluid_level_spread),lava:e(r.lava),temperature:e(r.temperature),vegetation:e(r.vegetation),continents:e(r.continents),erosion:e(r.erosion),depth:e(r.depth),ridges:e(r.ridges),initialDensityWithoutJaggedness:e(r.initial_density_without_jaggedness),finalDensity:e(r.final_density),veinToggle:e(r.vein_toggle),veinRidged:e(r.vein_ridged),veinGap:e(r.vein_gap)}},t.create=function(t){return Ce({barrier:he.Constant.ZERO,fluidLevelFloodedness:he.Constant.ZERO,fluidLevelSpread:he.Constant.ZERO,lava:he.Constant.ZERO,temperature:he.Constant.ZERO,vegetation:he.Constant.ZERO,continents:he.Constant.ZERO,erosion:he.Constant.ZERO,depth:he.Constant.ZERO,ridges:he.Constant.ZERO,initialDensityWithoutJaggedness:he.Constant.ZERO,finalDensity:he.Constant.ZERO,veinToggle:he.Constant.ZERO,veinRidged:he.Constant.ZERO,veinGap:he.Constant.ZERO},t)},t.withSettings=function(t,e,r,i=!1){const n=(i?new dt(r):vt.create(r)).forkPositional(),o=new s(n,e);return a=Ce({},o.mapAll(t)),l={aquiferPositionalRandomFactory:n.fromHashOf(C.create(\"aquifer\").toString()).forkPositional(),oreVeinsPositionalRandomFactory:n.fromHashOf(C.create(\"ore\").toString()).forkPositional()},Ie(a,Ne(l));var a,l};class s{constructor(t,e){this.random=t,this.settings=e,this.mapped=new Map}map(t){if(t instanceof he.HolderHolder){const e=t.holder.key();if(void 0!==e&&this.mapped.has(e.toString()))return this.mapped.get(e.toString());{const s=t.holder.value().mapAll(this);return void 0!==e&&this.mapped.set(e.toString(),s),s}}if(t instanceof he.Interpolated)return t.withCellSize(ne.cellWidth(this.settings),ne.cellHeight(this.settings));if(t instanceof he.Noise)return new he.Noise(t.xzScale,t.yScale,t.noiseData,pe.instantiate(this.random,t.noiseData));if(t instanceof he.ShiftNoise)return t.withNewNoise(pe.instantiate(this.random,t.noiseData));if(t instanceof he.ShiftedNoise){const e=pe.instantiate(this.random,t.noiseData);return new he.ShiftedNoise(t.shiftX,t.shiftY,t.shiftZ,t.xzScale,t.yScale,t.noiseData,e)}return t instanceof he.WeirdScaledSampler?new he.WeirdScaledSampler(t.input,t.rarityValueMapper,t.noiseData,pe.instantiate(this.random,t.noiseData)):t instanceof he.OldBlendedNoise?new he.OldBlendedNoise(new At(this.random.fromHashOf(C.create(\"terrain\").toString()),this.settings.sampling,ne.cellWidth(this.settings),ne.cellHeight(this.settings))):t instanceof he.Mapped||t instanceof he.Ap2?t.withMinMax():t instanceof he.TerrainShaperSpline?new he.TerrainShaperSpline(t.continentalness,t.erosion,t.weirdness,t.spline,t.min,t.max,this.settings.terrainShaper):t instanceof he.Slide?new he.Slide(t.input,this.settings):t}mapAll(t){return{barrier:t.barrier.mapAll(this),fluidLevelFloodedness:t.fluidLevelFloodedness.mapAll(this),fluidLevelSpread:t.fluidLevelSpread.mapAll(this),lava:t.lava.mapAll(this),temperature:t.temperature.mapAll(this),vegetation:t.vegetation.mapAll(this),continents:t.continents.mapAll(this),erosion:t.erosion.mapAll(this),depth:t.depth.mapAll(this),ridges:t.ridges.mapAll(this),initialDensityWithoutJaggedness:t.initialDensityWithoutJaggedness.mapAll(this),finalDensity:t.finalDensity.mapAll(this),veinToggle:t.veinToggle.mapAll(this),veinRidged:t.veinRidged.mapAll(this),veinGap:t.veinGap.mapAll(this)}}}t.Visitor=s,t.computePreliminarySurfaceLevelScanning=function(t,e,s,r){const i=ne.minCellY(t)+ne.cellCountY(t),n=ne.minCellY(t),o=ne.cellHeight(t);for(let a=i;a>=n;a-=1){const i=a*o,n=$(e.compute(he.context(s,i,r)),-64,64);if(ne.applySlides(t,n,i)>=.390625)return i}return Number.MAX_SAFE_INTEGER}}(we||(we={}));class Oe{constructor(t,e,s,r,i,n,o,a,l){this.cellCountXZ=t,this.cellCountY=e,this.cellNoiseMinY=s,this.router=r,this.minX=i,this.minZ=n,this.settings=o,this.preliminarySurfaceLevel=new Map,this.cellWidth=ne.cellWidth(o),this.cellHeight=ne.cellHeight(o),this.firstCellX=Math.floor(i/this.cellWidth),this.firstCellZ=Math.floor(n/this.cellWidth),this.firstNoiseX=i>>2,this.firstNoiseZ=n>>2,this.noiseSizeXZ=t*this.cellWidth>>2,this.aquifer=ue.createDisabled(l);const u=this.router.finalDensity;this.materialRule=be.fromList([t=>this.aquifer.compute(t,u.compute(t))]),this.initialDensityWithoutJaggedness=this.router.initialDensityWithoutJaggedness}getFinalState(t,e,s){return this.materialRule({x:t,y:e,z:s})}getPreliminarySurfaceLevel(t,e){return T(this.preliminarySurfaceLevel,X.asLong(t,e),(()=>we.computePreliminarySurfaceLevelScanning(this.settings,this.initialDensityWithoutJaggedness,t<<2,e<<2)))}getAquifer(){return this.aquifer}}(be||(be={})).fromList=function(t){return e=>{for(const s of t){const t=s(e);if(t)return t}}},(xe||(xe={})).fromJson=function(t){var e,s,r,i;const n=null!=(e=B.readObject(t))?e:{};return void 0!==n.absolute?(o=null!=(s=B.readNumber(n.absolute))?s:0,()=>o):void 0!==n.above_bottom?function(t){return e=>e.minY+t}(null!=(r=B.readNumber(n.above_bottom))?r:0):void 0!==n.below_top?function(t){return e=>e.maxY-t}(null!=(i=B.readNumber(n.below_top))?i:0):()=>0;var o},(Se||(Se={})).create=function(t,e){return{minY:t,height:e,maxY:t+e-1}};class ke{constructor(t,e,s){this.rule=t,this.defaultBlock=e,this.random=vt.create(s).forkPositional(),this.surfaceNoise=pe.instantiate(this.random,pe.SURFACE),this.surfaceSecondaryNoise=pe.instantiate(this.random,pe.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(t,e,s,r){const i=X.minBlockX(t.pos),n=X.minBlockZ(t.pos),o=new Pe(this,t,e,s,r),a=this.rule(o);for(let e=0;e<16;e+=1){const s=i+e;for(let e=0;e<1;e+=1){const r=n+e;o.updateXZ(s,r);let i=0,u=Number.MIN_SAFE_INTEGER,h=Number.MAX_SAFE_INTEGER;for(let e=t.maxY;e>=t.minY;e-=1){const n=l.create(s,e,r),c=t.getBlockState(n);if(c.equals(G.AIR)){i=0,u=Number.MIN_SAFE_INTEGER;continue}if(c.isFluid()){u===Number.MIN_SAFE_INTEGER&&(u=e+1);continue}if(h>=e){h=Number.MIN_SAFE_INTEGER;for(let i=e-1;i>=t.minY;i-=1){const e=t.getBlockState(l.create(s,i,r));if(e.equals(G.AIR)||e.isFluid()){h=i+1;break}}}i+=1;const f=e-h+1;if(!c.equals(this.defaultBlock))continue;o.updateY(i,f,u,e);const m=a(s,e,r);m&&t.setBlockState(n,m)}}}}getSurfaceDepth(t,e){return 2.75*this.surfaceNoise.sample(t,0,e)+3+.25*this.random.at(t,0,e).nextDouble()}getSurfaceSecondary(t,e){return this.surfaceSecondaryNoise.sample(t,0,e)}getRandom(t){return T(this.positionalRandoms,t,(()=>this.random.fromHashOf(t)))}}class Pe{constructor(t,e,s,r,i){this.system=t,this.chunk=e,this.noiseChunk=s,this.context=r,this.getBiome=i,this.blockX=0,this.blockY=0,this.blockZ=0,this.stoneDepthAbove=0,this.stoneDepthBelow=0,this.surfaceDepth=0,this.waterHeight=0,this.biome=()=>\"\",this.surfaceSecondary=()=>0,this.minSurfaceLevel=()=>0}updateXZ(t,e){this.blockX=t,this.blockZ=e,this.surfaceDepth=this.system.getSurfaceDepth(t,e),this.surfaceSecondary=R((()=>this.system.getSurfaceSecondary(t,e))),this.minSurfaceLevel=R((()=>this.calculateMinSurfaceLevel(t,e)))}updateY(t,e,s,r){this.blockY=r,this.stoneDepthAbove=t,this.stoneDepthBelow=e,this.waterHeight=s,this.biome=R((()=>this.getBiome(l.create(this.blockX,this.blockY,this.blockZ))))}calculateMinSurfaceLevel(t,e){const s=t>>4,r=e>>4,i=this.noiseChunk.getPreliminarySurfaceLevel(s<<4,r<<4),n=this.noiseChunk.getPreliminarySurfaceLevel(s+1<<4,r<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(s<<4,r+1<<4),a=this.noiseChunk.getPreliminarySurfaceLevel(s+1<<4,r+1<<4);return Math.floor(Q((15&t)/16,(15&e)/16,i,n,o,a))+this.surfaceDepth-8}}!function(t){function e(t){return()=>()=>t}function s(t){return e=>{const s=t.map((t=>t(e)));return(t,e,r)=>{for(const i of s){const s=i(t,e,r);if(s)return s}}}}function r(t,e){return s=>(r,i,n)=>{if(t(s))return e(s)(r,i,n)}}t.NOOP=()=>()=>{},t.fromJson=function(i){var n,o,a;const l=null!=(n=B.readObject(i))?n:{};switch(null==(o=B.readString(l.type))?void 0:o.replace(/^minecraft:/,\"\")){case\"block\":return e(G.fromJson(l.result_state));case\"sequence\":return s(null!=(a=B.readArray(l.sequence,t.fromJson))?a:[]);case\"condition\":return r(Ae.fromJson(l.if_true),t.fromJson(l.then_run))}return t.NOOP},t.block=e,t.sequence=s,t.condition=r}(_e||(_e={})),function(t){function e(){return t=>t.blockY>=t.minSurfaceLevel()}function s(t){const e=new Set(t);return t=>e.has(t.biome())}function r(t){return e=>!t(e)}function i(t,e,s,r){return i=>{const n=r?i.stoneDepthBelow:i.stoneDepthAbove,o=e?i.surfaceDepth:0,a=0===s?0:at(i.surfaceSecondary(),-1,1,0,s);return n<=1+t+o+a}}function n(t,e,s){return r=>{const i=e(r.context),n=s(r.context);if(r.blockY<=i)return!0;if(r.blockY>=n)return!1;const o=r.system.getRandom(t),a=at(r.blockY,i,n,1,0);return o.nextFloat()<a}}function o(t,e,s){return r=>{if(r.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const i=s?r.stoneDepthAbove:0;return r.blockY+i>=r.waterHeight+t+r.surfaceDepth*e}}function a(t,e,s){return r=>{const i=s?r.stoneDepthAbove:0;return r.blockY+i>=t(r.context)+r.surfaceDepth*e}}t.FALSE=()=>!1,t.TRUE=()=>!0,t.fromJson=function(e){var l,u,h,c,f,m,d,p,g,v,w,b;const x=null!=(l=B.readObject(e))?l:{};switch(null==(u=B.readString(x.type))?void 0:u.replace(/^minecraft:/,\"\")){case\"above_preliminary_surface\":return t=>t.blockY>=t.minSurfaceLevel();case\"biome\":return s(null!=(h=B.readArray(x.biome_is,(t=>{var e;return null!=(e=B.readString(t))?e:\"\"})))?h:[]);case\"not\":return r(t.fromJson(x.invert));case\"stone_depth\":return i(null!=(c=B.readInt(x.offset))?c:0,null!=(f=B.readBoolean(x.add_surface_depth))&&f,null!=(m=B.readInt(x.secondary_depth_range))?m:0,\"ceiling\"===B.readString(x.surface_type));case\"vertical_gradient\":return n(null!=(d=B.readString(x.random_name))?d:\"\",xe.fromJson(x.true_at_and_below),xe.fromJson(x.false_at_and_above));case\"water\":return o(null!=(p=B.readInt(x.offset))?p:0,null!=(g=B.readInt(x.surface_depth_multiplier))?g:0,null!=(v=B.readBoolean(x.add_surface_depth))&&v);case\"y_above\":return a(xe.fromJson(x.anchor),null!=(w=B.readInt(x.surface_depth_multiplier))?w:0,null!=(b=B.readBoolean(x.add_surface_depth))&&b)}return t.FALSE},t.abovePreliminarySurface=e,t.biome=s,t.not=r,t.stoneDepth=i,t.verticalGradient=n,t.water=o,t.yAbove=a}(Ae||(Ae={}));class Le{constructor(t,e,s){this.biomeSource=e,this.settings=s,this.router=we.withSettings(s.noiseRouter,s.noise,t,s.legacyRandomSource),this.noiseChunkCache=new Map,this.surfaceSystem=new ke(s.surfaceRule,s.defaultBlock,t);const r=new ce(-54,G.LAVA),i=new ce(s.seaLevel,s.defaultFluid);this.globalFluidPicker=(t,e,n)=>e<Math.min(-54,s.seaLevel)?r:i}fill(t,e=!1){var s;const r=Math.max(t.minY,this.settings.noise.minY),i=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),n=ne.cellWidth(this.settings.noise),o=ne.cellHeight(this.settings.noise),a=Math.floor(16/n),l=Math.floor(r/o),u=Math.floor((i-r)/o),h=X.minBlockX(t.pos),c=X.minBlockZ(t.pos),f=this.getNoiseChunk(t);for(let r=0;r<a;r+=1)for(let i=0;i<(e?1:a);i+=1){let a=t.getOrCreateSection(t.sectionsCount-1);for(let m=u-1;m>=0;m-=1)for(let u=o-1;u>=0;u-=1){const d=(l+m)*o+u,p=15&d,g=t.getSectionIndex(d);t.getSectionIndex(a.minBlockY)!==g&&(a=t.getOrCreateSection(g));for(let t=0;t<n;t+=1){const o=h+r*n+t,l=15&o;for(let t=0;t<(e?1:n);t+=1){const e=c+i*n+t,r=15&e,u=null!=(s=f.getFinalState(o,d,e))?s:this.settings.defaultBlock;a.setBlockState(l,p,r,u)}}}}}buildSurface(t,e=\"minecraft:plains\"){const s=this.getNoiseChunk(t),r=Se.create(this.settings.noise.minY,this.settings.noise.height);this.surfaceSystem.buildSurface(t,s,r,(()=>e))}getNoiseChunk(t){return T(this.noiseChunkCache,X.toLong(t.pos),(()=>{const e=Math.max(t.minY,this.settings.noise.minY),s=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),r=ne.cellWidth(this.settings.noise),i=ne.cellHeight(this.settings.noise),n=Math.floor(16/r),o=Math.floor(e/i),a=Math.floor((s-e)/i),l=X.minBlockX(t.pos),u=X.minBlockZ(t.pos);return new Oe(n,a,o,this.router,l,u,this.settings.noise,this.settings.aquifersEnabled,this.globalFluidPicker)}))}}(ye||(ye={})).fromJson=function(t){var e,s,r,i,n,o;const a=null!=(e=B.readObject(t))?e:{};return{surfaceRule:_e.fromJson(a.surface_rule),noise:ne.fromJson(a.noise),defaultBlock:G.fromJson(a.default_block),defaultFluid:G.fromJson(a.default_fluid),noiseRouter:we.fromJson(a.noise_router),seaLevel:null!=(s=B.readInt(a.sea_level))?s:0,disableMobGeneration:null!=(r=B.readBoolean(a.disable_mob_generation))&&r,aquifersEnabled:null!=(i=B.readBoolean(a.aquifers_enabled))&&i,oreVeinsEnabled:null!=(n=B.readBoolean(a.ore_veins_enabled))&&n,legacyRandomSource:null!=(o=B.readBoolean(a.legacy_random_source))&&o}};export{ue as Aquifer,At as BlendedNoise,Dt as BlockColors,Yt as BlockDefinition,qt as BlockModel,l as BlockPos,G as BlockState,H as Chunk,X as ChunkPos,Y as ChunkSection,de as Climate,ft as CubicSpline,he as DensityFunction,n as Direction,ge as FixedBiome,ce as FluidStatus,j as Holder,C as Identifier,St as ImprovedNoise,pt as LegacyPositionalRandom,dt as LegacyRandom,be as MaterialRule,ve as MultiNoise,f as NbtReader,m as NbtWriter,me as NoiseAquifer,Oe as NoiseChunk,Le as NoiseChunkGenerator,ye as NoiseGeneratorSettings,Nt as NoiseParameters,we as NoiseRouter,yt as NoiseSamplingSettings,ne as NoiseSettings,oe as NoiseSlideSettings,pe as Noises,It as NormalNoise,_t as PerlinNoise,Rt as PerlinSimplexNoise,q as Registry,xt as SimplexNoise,J as Structure,te as StructureRenderer,Ae as SurfaceCondition,Pe as SurfaceContext,_e as SurfaceRule,ke as SurfaceSystem,ie as TerrainShaper,se as TextureAtlas,xe as VerticalAnchor,Se as WorldgenContext,le as WorldgenRegistries,wt as XoroshiroPositionalRandom,vt as XoroshiroRandom,ut as binarySearch,$ as clamp,it as clampedLerp,lt as clampedMap,I as getListTag,N as getOptional,ht as getSeed,E as getTag,nt as inverseLerp,et as lazyLerp,st as lazyLerp2,rt as lazyLerp3,K as lerp,Q as lerp2,tt as lerp3,ct as longfromBytes,at as map,g as read,w as readChunk,p as readCompressed,v as readRegion,d as readUncompressed,ot as smoothstep,W as square,c as tagNames,h as tagTypes,S as write,A as writeChunk,x as writeCompressed,_ as writeRegion,b as writeUncompressed};\n//# sourceMappingURL=deepslate.esm.js.map\n","\nlet wasm;\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n\ncachedTextDecoder.decode();\n\nlet cachegetUint8Memory0 = null;\nfunction getUint8Memory0() {\n if (cachegetUint8Memory0 === null || cachegetUint8Memory0.buffer !== wasm.memory.buffer) {\n cachegetUint8Memory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachegetUint8Memory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));\n}\n\nconst u32CvtShim = new Uint32Array(2);\n\nconst int64CvtShim = new BigInt64Array(u32CvtShim.buffer);\n\nlet cachegetInt32Memory0 = null;\nfunction getInt32Memory0() {\n if (cachegetInt32Memory0 === null || cachegetInt32Memory0.buffer !== wasm.memory.buffer) {\n cachegetInt32Memory0 = new Int32Array(wasm.memory.buffer);\n }\n return cachegetInt32Memory0;\n}\n\nlet cachegetFloat64Memory0 = null;\nfunction getFloat64Memory0() {\n if (cachegetFloat64Memory0 === null || cachegetFloat64Memory0.buffer !== wasm.memory.buffer) {\n cachegetFloat64Memory0 = new Float64Array(wasm.memory.buffer);\n }\n return cachegetFloat64Memory0;\n}\n\nfunction getArrayF64FromWasm0(ptr, len) {\n return getFloat64Memory0().subarray(ptr / 8, ptr / 8 + len);\n}\n/**\n* @param {BigInt} seed\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function improved_noise(seed, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n wasm.improved_noise(retptr, low0, high0, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v1 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nfunction passArrayF64ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 8);\n getFloat64Memory0().set(arg, ptr / 8);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n/**\n* @param {BigInt} seed\n* @param {number} first_octave\n* @param {Float64Array} amplitudes\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function perlin_noise(seed, first_octave, amplitudes, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n var ptr1 = passArrayF64ToWasm0(amplitudes, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n wasm.perlin_noise(retptr, low0, high0, first_octave, ptr1, len1, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v2 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v2;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {BigInt} seed\n* @param {number} first_octave\n* @param {Float64Array} amplitudes\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function normal_noise(seed, first_octave, amplitudes, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n var ptr1 = passArrayF64ToWasm0(amplitudes, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n wasm.normal_noise(retptr, low0, high0, first_octave, ptr1, len1, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v2 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v2;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\nlet cachegetUint32Memory0 = null;\nfunction getUint32Memory0() {\n if (cachegetUint32Memory0 === null || cachegetUint32Memory0.buffer !== wasm.memory.buffer) {\n cachegetUint32Memory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachegetUint32Memory0;\n}\n\nfunction passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4);\n getUint32Memory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n/**\n* @param {Float64Array} t_min\n* @param {Float64Array} t_max\n* @param {Float64Array} h_min\n* @param {Float64Array} h_max\n* @param {Float64Array} c_min\n* @param {Float64Array} c_max\n* @param {Float64Array} e_min\n* @param {Float64Array} e_max\n* @param {Float64Array} w_min\n* @param {Float64Array} w_max\n* @param {Float64Array} d_min\n* @param {Float64Array} d_max\n* @param {Float64Array} offset\n* @param {Int32Array} biome\n* @returns {ParameterList}\n*/\nexport function biome_parameters(t_min, t_max, h_min, h_max, c_min, c_max, e_min, e_max, w_min, w_max, d_min, d_max, offset, biome) {\n var ptr0 = passArrayF64ToWasm0(t_min, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = passArrayF64ToWasm0(t_max, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n var ptr2 = passArrayF64ToWasm0(h_min, wasm.__wbindgen_malloc);\n var len2 = WASM_VECTOR_LEN;\n var ptr3 = passArrayF64ToWasm0(h_max, wasm.__wbindgen_malloc);\n var len3 = WASM_VECTOR_LEN;\n var ptr4 = passArrayF64ToWasm0(c_min, wasm.__wbindgen_malloc);\n var len4 = WASM_VECTOR_LEN;\n var ptr5 = passArrayF64ToWasm0(c_max, wasm.__wbindgen_malloc);\n var len5 = WASM_VECTOR_LEN;\n var ptr6 = passArrayF64ToWasm0(e_min, wasm.__wbindgen_malloc);\n var len6 = WASM_VECTOR_LEN;\n var ptr7 = passArrayF64ToWasm0(e_max, wasm.__wbindgen_malloc);\n var len7 = WASM_VECTOR_LEN;\n var ptr8 = passArrayF64ToWasm0(w_min, wasm.__wbindgen_malloc);\n var len8 = WASM_VECTOR_LEN;\n var ptr9 = passArrayF64ToWasm0(w_max, wasm.__wbindgen_malloc);\n var len9 = WASM_VECTOR_LEN;\n var ptr10 = passArrayF64ToWasm0(d_min, wasm.__wbindgen_malloc);\n var len10 = WASM_VECTOR_LEN;\n var ptr11 = passArrayF64ToWasm0(d_max, wasm.__wbindgen_malloc);\n var len11 = WASM_VECTOR_LEN;\n var ptr12 = passArrayF64ToWasm0(offset, wasm.__wbindgen_malloc);\n var len12 = WASM_VECTOR_LEN;\n var ptr13 = passArray32ToWasm0(biome, wasm.__wbindgen_malloc);\n var len13 = WASM_VECTOR_LEN;\n var ret = wasm.biome_parameters(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7, ptr8, len8, ptr9, len9, ptr10, len10, ptr11, len11, ptr12, len12, ptr13, len13);\n return ParameterList.__wrap(ret);\n}\n\n/**\n* @param {number} first_octave\n* @param {Float64Array} amplitudes\n* @returns {NoiseParameters}\n*/\nexport function noise_parameters(first_octave, amplitudes) {\n var ptr0 = passArrayF64ToWasm0(amplitudes, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n var ret = wasm.noise_parameters(first_octave, ptr0, len0);\n return NoiseParameters.__wrap(ret);\n}\n\n/**\n* @param {BigInt} seed\n* @param {number} t_first\n* @param {Float64Array} t_amplitudes\n* @param {number} h_first\n* @param {Float64Array} h_amplitudes\n* @param {number} c_first\n* @param {Float64Array} c_amplitudes\n* @param {number} e_first\n* @param {Float64Array} e_amplitudes\n* @param {number} w_first\n* @param {Float64Array} w_amplitudes\n* @param {number} s_first\n* @param {Float64Array} s_amplitudes\n* @returns {Sampler}\n*/\nexport function climate_sampler(seed, t_first, t_amplitudes, h_first, h_amplitudes, c_first, c_amplitudes, e_first, e_amplitudes, w_first, w_amplitudes, s_first, s_amplitudes) {\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n var ptr1 = passArrayF64ToWasm0(t_amplitudes, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n var ptr2 = passArrayF64ToWasm0(h_amplitudes, wasm.__wbindgen_malloc);\n var len2 = WASM_VECTOR_LEN;\n var ptr3 = passArrayF64ToWasm0(c_amplitudes, wasm.__wbindgen_malloc);\n var len3 = WASM_VECTOR_LEN;\n var ptr4 = passArrayF64ToWasm0(e_amplitudes, wasm.__wbindgen_malloc);\n var len4 = WASM_VECTOR_LEN;\n var ptr5 = passArrayF64ToWasm0(w_amplitudes, wasm.__wbindgen_malloc);\n var len5 = WASM_VECTOR_LEN;\n var ptr6 = passArrayF64ToWasm0(s_amplitudes, wasm.__wbindgen_malloc);\n var len6 = WASM_VECTOR_LEN;\n var ret = wasm.climate_sampler(low0, high0, t_first, ptr1, len1, h_first, ptr2, len2, c_first, ptr3, len3, e_first, ptr4, len4, w_first, ptr5, len5, s_first, ptr6, len6);\n return Sampler.__wrap(ret);\n}\n\nfunction _assertClass(instance, klass) {\n if (!(instance instanceof klass)) {\n throw new Error(`expected instance of ${klass.name}`);\n }\n return instance.ptr;\n}\n/**\n* @param {ParameterList} parameters\n* @param {Float64Array} target\n* @returns {number}\n*/\nexport function find_biome(parameters, target) {\n _assertClass(parameters, ParameterList);\n var ptr0 = passArrayF64ToWasm0(target, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n var ret = wasm.find_biome(parameters.ptr, ptr0, len0);\n return ret;\n}\n\nfunction getArrayI32FromWasm0(ptr, len) {\n return getInt32Memory0().subarray(ptr / 4, ptr / 4 + len);\n}\n/**\n* @param {ParameterList} parameters\n* @param {Sampler} sampler\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Int32Array}\n*/\nexport function multi_noise(parameters, sampler, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertClass(parameters, ParameterList);\n _assertClass(sampler, Sampler);\n wasm.multi_noise(retptr, parameters.ptr, sampler.ptr, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayI32FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {Sampler} sampler\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function climate_noise(sampler, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertClass(sampler, Sampler);\n wasm.climate_noise(retptr, sampler.ptr, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {number} x\n* @returns {Test}\n*/\nexport function create_test(x) {\n var ret = wasm.create_test(x);\n return Test.__wrap(ret);\n}\n\n/**\n* @param {Test} test\n* @returns {number}\n*/\nexport function calc_test(test) {\n _assertClass(test, Test);\n var ret = wasm.calc_test(test.ptr);\n return ret;\n}\n\n/**\n*/\nexport class ImprovedNoise {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_improvednoise_free(ptr);\n }\n}\n/**\n*/\nexport class NoiseOctaves {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_noiseoctaves_free(ptr);\n }\n}\n/**\n*/\nexport class NoiseParameters {\n\n static __wrap(ptr) {\n const obj = Object.create(NoiseParameters.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_noiseparameters_free(ptr);\n }\n}\n/**\n*/\nexport class NormalNoise {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_normalnoise_free(ptr);\n }\n}\n/**\n*/\nexport class ParameterList {\n\n static __wrap(ptr) {\n const obj = Object.create(ParameterList.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_parameterlist_free(ptr);\n }\n}\n/**\n*/\nexport class PerlinNoise {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_perlinnoise_free(ptr);\n }\n}\n/**\n*/\nexport class Sampler {\n\n static __wrap(ptr) {\n const obj = Object.create(Sampler.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_sampler_free(ptr);\n }\n}\n/**\n*/\nexport class Test {\n\n static __wrap(ptr) {\n const obj = Object.create(Test.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_test_free(ptr);\n }\n}\n\nasync function load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n\n } catch (e) {\n if (module.headers.get('Content-Type') != 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else {\n throw e;\n }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n\n } else {\n return instance;\n }\n }\n}\n\nasync function init(input) {\n if (typeof input === 'undefined') {\n input = new URL('deepslate_rs_bg.wasm', import.meta.url);\n }\n const imports = {};\n imports.wbg = {};\n imports.wbg.__wbindgen_throw = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n };\n\n if (typeof input === 'string' || (typeof Request === 'function' && input instanceof Request) || (typeof URL === 'function' && input instanceof URL)) {\n input = fetch(input);\n }\n\n\n\n const { instance, module } = await load(await input, imports);\n\n wasm = instance.exports;\n init.__wbindgen_wasm_module = module;\n\n return wasm;\n}\n\nexport default init;\n\n","export default \"__VITE_ASSET__4990c219__\"","import { DataModel } from '@mcschema/core'\nimport type { NoiseParameters } from 'deepslate'\nimport { FixedBiome, Identifier, LegacyRandom, NormalNoise } from 'deepslate'\nimport init, { biome_parameters, climate_noise, climate_sampler, multi_noise } from 'deepslate-rs'\n// @ts-expect-error\nimport wasm from 'deepslate-rs/deepslate_rs_bg.wasm?url'\nimport type { VersionId } from '../services'\nimport { checkVersion, fetchPreset } from '../services'\nimport { BiMap, clamp, deepClone, deepEqual, square, stringToColor } from '../Utils'\n\nlet ready = false\nasync function loadWasm() {\n\tif (ready) return\n\tawait init(wasm)\n\tready = true\n\tconsole.debug(`Loaded deepslate-rs from \"${wasm}\"`)\n}\n\nconst LAYERS = {\n\ttemperature: [-1, 1],\n\thumidity: [-1, 1],\n\tcontinentalness: [-1.1, 1],\n\terosion: [-1, 1],\n\tweirdness: [-1, 1],\n\toffset: [-1, 1],\n\tfactor: [0, 12],\n\tjaggedness: [0, 1],\n}\n\ntype Triple = [number, number, number]\ntype BiomeColors = Record<string, Triple>\ntype BiomeSourceOptions = {\n\toctaves: Record<string, NoiseParameters>,\n\tbiomeColors: BiomeColors,\n\toffset: [number, number],\n\tscale: number,\n\tres: number,\n\tseed: bigint,\n\tversion: VersionId,\n\tlayers: Set<keyof typeof LAYERS | 'biomes'>,\n}\n\ninterface CachedBiomeSource {\n\tgetBiome(x: number, y: number, z: number): Identifier\n\tgetBiomes?(xFrom: number, xTo: number, xStep: number, yFrom: number, yTo: number, yStep: number, zFrom: number, zTo: number, zStep: number): Identifier[]\n\tgetClimate?(x: number, y: number, z: number): {[k: string]: number}\n\tgetClimates?(xFrom: number, xTo: number, xStep: number, yFrom: number, yTo: number, yStep: number, zFrom: number, zTo: number, zStep: number): {[k: string]: number}[]\n}\n\nlet cacheState: any\nlet biomeSourceCache: CachedBiomeSource\n\nexport async function biomeMap(state: any, img: ImageData, options: BiomeSourceOptions) {\n\tconst { biomeSource } = await getCached(state, options)\n\n\tconst data = img.data\n\tconst ox = -Math.round(options.offset[0]) - 100 + options.res / 2\n\tconst oz = -Math.round(options.offset[1]) - 100 + options.res / 2\n\tconst row = img.width * 4 / options.res\n\tconst col = 4 / options.res\n\n\tconst xRange: Triple = [ox * options.scale, (200 + ox) * options.scale, options.res * options.scale]\n\tconst zRange: Triple = [oz * options.scale, (200 + oz) * options.scale, options.res * options.scale]\n\n\tconst biomes = !options.layers.has('biomes') ? undefined : biomeSource.getBiomes?.(...xRange, 64, 65, 1, ...zRange)\n\tconst layers = [...options.layers].filter(l => l !== 'biomes') as (keyof typeof LAYERS)[]\n\tconst noise = layers.length === 0 ? undefined : biomeSource.getClimates?.(...xRange, 64, 65, 1, ...zRange)\n\n\tfor (let x = 0; x < 200; x += options.res) {\n\t\tfor (let z = 0; z < 200; z += options.res) {\n\t\t\tconst i = z * row + x * col\n\t\t\tconst j = (x / options.res) * 200 / options.res + z / options.res\n\t\t\tconst worldX = (x + ox) * options.scale\n\t\t\tconst worldZ = (z + oz) * options.scale\n\t\t\tlet color: Triple = [50, 50, 50]\n\t\t\tif (options.layers.has('biomes')) {\n\t\t\t\tconst biome = biomes?.[j] ?? biomeSource.getBiome(worldX, 64, worldZ)\n\t\t\t\tcolor = getBiomeColor(biome.toString(), options.biomeColors)\n\t\t\t} else if (noise && layers[0]) {\n\t\t\t\tconst value = noise[j][layers[0]]\n\t\t\t\tconst [min, max] = LAYERS[layers[0]]\n\t\t\t\tconst brightness = (value - min) / (max - min) * 256\n\t\t\t\tcolor = [brightness, brightness, brightness]\n\t\t\t}\n\t\t\tdata[i] = color[0]\n\t\t\tdata[i + 1] = color[1]\n\t\t\tdata[i + 2] = color[2]\n\t\t\tdata[i + 3] = 255\n\t\t}\n\t}\n}\n\nexport async function getBiome(state: any, x: number, z: number, options: BiomeSourceOptions): Promise<{[k: string]: number | string} | undefined> {\n\tconst { biomeSource } = await getCached(state, options)\n\n\tconst [xx, zz] = toWorld([x, z], options)\n\treturn {\n\t\tbiome: biomeSource.getBiome(xx, 64, zz).toString(),\n\t\t...biomeSource.getClimate?.(xx, 64, zz),\n\t}\n}\n\nasync function getCached(state: any, options: BiomeSourceOptions): Promise<{ biomeSource: CachedBiomeSource}> {\n\tconst newState = [state, options.octaves, `${options.seed}`, options.version]\n\tif (!deepEqual(newState, cacheState)) {\n\t\tcacheState = deepClone(newState)\n\n\t\tbiomeSourceCache = await getBiomeSource(state, options)\n\t}\n\treturn {\n\t\tbiomeSource: biomeSourceCache,\n\t} \n}\n\nasync function getBiomeSource(state: any, options: BiomeSourceOptions): Promise<CachedBiomeSource> {\n\tswitch (state?.type?.replace(/^minecraft:/, '')) {\n\t\tcase 'fixed':\n\t\t\treturn new FixedBiome(Identifier.parse(state.biome as string))\n\n\t\tcase 'checkerboard':\n\t\t\tconst shift = (state.scale ?? 2) + 2\n\t\t\tconst numBiomes = state.biomes?.length ?? 0\n\t\t\treturn {\n\t\t\t\tgetBiome(x: number, _y: number, z: number) {\n\t\t\t\t\tconst i = (((x >> shift) + (z >> shift)) % numBiomes + numBiomes) % numBiomes\n\t\t\t\t\treturn Identifier.parse(state.biomes?.[i].node as string)\n\t\t\t\t},\n\t\t\t}\n\n\t\tcase 'multi_noise':\n\t\t\tswitch(state.preset?.replace(/^minecraft:/, '')) {\n\t\t\t\tcase 'nether':\n\t\t\t\t\tstate = checkVersion(options.version, '1.18') ? NetherPreset18 : NetherPreset\n\t\t\t\t\tbreak\n\t\t\t\tcase 'overworld':\n\t\t\t\t\tstate = checkVersion(options.version, '1.18') ? await OverworldPreset18() : state\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t\tstate = DataModel.unwrapLists(state)\n\t\t\tif (checkVersion(options.version, '1.18')) {\n\t\t\t\tawait loadWasm()\n\t\t\t\tconst BiomeIds = new BiMap<string, number>()\n\t\t\t\tconst param = (p: number | number[]) => {\n\t\t\t\t\treturn typeof p === 'number' ? [p, p] : p\n\t\t\t\t}\n\t\t\t\tconst [t0, t1, h0, h1, c0, c1, e0, e1, w0, w1, d0, d1, o, b] = [[], [], [], [], [], [], [], [], [], [], [], [], [], []] as number[][]\n\t\t\t\tfor (const i of state.biomes) {\n\t\t\t\t\tconst { temperature, humidity, continentalness, erosion, weirdness, depth, offset } = i.parameters\n\t\t\t\t\tt0.push(param(temperature)[0])\n\t\t\t\t\tt1.push(param(temperature)[1])\n\t\t\t\t\th0.push(param(humidity)[0])\n\t\t\t\t\th1.push(param(humidity)[1])\n\t\t\t\t\tc0.push(param(continentalness)[0])\n\t\t\t\t\tc1.push(param(continentalness)[1])\n\t\t\t\t\te0.push(param(erosion)[0])\n\t\t\t\t\te1.push(param(erosion)[1])\n\t\t\t\t\tw0.push(param(weirdness)[0])\n\t\t\t\t\tw1.push(param(weirdness)[1])\n\t\t\t\t\td0.push(param(depth)[0])\n\t\t\t\t\td1.push(param(depth)[1])\n\t\t\t\t\to.push(offset)\n\t\t\t\t\tb.push(BiomeIds.getOrPut(i.biome, Math.floor(Math.random() * 2147483647)))\n\t\t\t\t}\n\t\t\t\tconst parameters = biome_parameters(new Float64Array(t0), new Float64Array(t1), new Float64Array(h0), new Float64Array(h1), new Float64Array(c0), new Float64Array(c1), new Float64Array(e0), new Float64Array(e1), new Float64Array(w0), new Float64Array(w1), new Float64Array(d0), new Float64Array(d1), new Float64Array(o), new Int32Array(b))\n\t\t\t\tconst sampler = climate_sampler(options.seed, options.octaves.temperature.firstOctave, new Float64Array(options.octaves.temperature.amplitudes), options.octaves.humidity.firstOctave, new Float64Array(options.octaves.humidity.amplitudes), options.octaves.continentalness.firstOctave, new Float64Array(options.octaves.continentalness.amplitudes), options.octaves.erosion.firstOctave, new Float64Array(options.octaves.erosion.amplitudes), options.octaves.weirdness.firstOctave, new Float64Array(options.octaves.weirdness.amplitudes), options.octaves.shift.firstOctave, new Float64Array(options.octaves.shift.amplitudes))\n\t\t\t\treturn {\n\t\t\t\t\tgetBiome(x, y, z) {\n\t\t\t\t\t\tconst ids = multi_noise(parameters, sampler, x, x + 1, 1, y, y + 1, 1, z, z + 1, 1)\n\t\t\t\t\t\treturn Identifier.parse(BiomeIds.getA(ids[0]) ?? 'unknown')\n\t\t\t\t\t},\n\t\t\t\t\tgetBiomes(xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep) {\n\t\t\t\t\t\tconst ids = multi_noise(parameters, sampler, xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep)\n\t\t\t\t\t\treturn [...ids].map(id => Identifier.parse(BiomeIds.getA(id) ?? 'unknown'))\n\t\t\t\t\t},\n\t\t\t\t\tgetClimate(x, y, z) {\n\t\t\t\t\t\tconst climate = climate_noise(sampler, x, x + 1, 1, y, y + 1, 1, z, z + 1, 1)\n\t\t\t\t\t\tconst [t, h, c, e, w] = climate.slice(0, 5)\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttemperature: t,\n\t\t\t\t\t\t\thumidity: h,\n\t\t\t\t\t\t\tcontinentalness: c,\n\t\t\t\t\t\t\terosion: e,\n\t\t\t\t\t\t\tweirdness: w,\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tgetClimates(xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep) {\n\t\t\t\t\t\tconst climate = climate_noise(sampler, xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep)\n\t\t\t\t\t\tconst result = []\n\t\t\t\t\t\tfor (let i = 0; i < climate.length; i += 7) {\n\t\t\t\t\t\t\tconst [t, h, c, e, w] = climate.slice(i, i + 5)\n\t\t\t\t\t\t\tresult.push({\n\t\t\t\t\t\t\t\ttemperature: t,\n\t\t\t\t\t\t\t\thumidity: h,\n\t\t\t\t\t\t\t\tcontinentalness: c,\n\t\t\t\t\t\t\t\terosion: e,\n\t\t\t\t\t\t\t\tweirdness: w,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst noise = ['altitude', 'temperature', 'humidity', 'weirdness']\n\t\t\t\t\t.map((id, i) => {\n\t\t\t\t\t\tconst config = state[`${id}_noise`]\n\t\t\t\t\t\tconfig.firstOctave = clamp(config.firstOctave ?? -7, -100, -1)\n\t\t\t\t\t\treturn new NormalNoise(new LegacyRandom(options.seed + BigInt(i)), config)\n\t\t\t\t\t})\n\t\t\t\tif (!Array.isArray(state.biomes) || state.biomes.length === 0) {\n\t\t\t\t\treturn new FixedBiome(Identifier.create('unknown'))\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tgetBiome(x: number, _y: number, z: number): Identifier {\n\t\t\t\t\t\tconst n = noise.map(n => n.sample(x, z, 0))\n\t\t\t\t\t\tlet minDist = Infinity\n\t\t\t\t\t\tlet minBiome = ''\n\t\t\t\t\t\tfor (const { biome, parameters: p } of state.biomes) {\n\t\t\t\t\t\t\tconst dist = square(p.altitude - n[0]) + square(p.temperature - n[1]) + square(p.humidity - n[2]) + square(p.weirdness - n[3]) + square(p.offset)\n\t\t\t\t\t\t\tif (dist < minDist) {\n\t\t\t\t\t\t\t\tminDist = dist\n\t\t\t\t\t\t\t\tminBiome = biome\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn Identifier.parse(minBiome)\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t}\n\t}\n\tthrow new Error('Unknown biome source')\n}\n\nfunction getBiomeColor(biome: string, biomeColors: BiomeColors): Triple {\n\tif (!biome) {\n\t\treturn [128, 128, 128]\n\t}\n\tconst color = biomeColors[biome] ?? VanillaColors[biome]\n\tif (color === undefined) {\n\t\treturn stringToColor(biome)\n\t}\n\treturn color\n}\n\nfunction toWorld([x, z]: [number, number], options: BiomeSourceOptions) {\n\tconst xx = (x - options.offset[0] - 100 + options.res / 2) * options.scale\n\tconst zz = (z - options.offset[1] - 100 + options.res / 2) * options.scale\n\treturn [xx, zz]\n}\n\nconst VanillaColors: Record<string, Triple> = {\n\t'minecraft:badlands': [217,69,21],\n\t'minecraft:badlands_plateau': [202,140,101],\n\t'minecraft:bamboo_jungle': [118,142,20],\n\t'minecraft:bamboo_jungle_hills': [59,71,10],\n\t'minecraft:basalt_deltas': [64,54,54],\n\t'minecraft:beach': [250,222,85],\n\t'minecraft:birch_forest': [48,116,68],\n\t'minecraft:birch_forest_hills': [31,95,50],\n\t'minecraft:cold_ocean': [32,32,112],\n\t'minecraft:crimson_forest': [221,8,8],\n\t'minecraft:dark_forest': [64,81,26],\n\t'minecraft:dark_forest_hills': [104,121,66],\n\t'minecraft:deep_cold_ocean': [32,32,56],\n\t'minecraft:deep_frozen_ocean': [64,64,144],\n\t'minecraft:deep_lukewarm_ocean': [0,0,64],\n\t'minecraft:deep_ocean': [0,0,48],\n\t'minecraft:deep_warm_ocean': [0,0,80],\n\t'minecraft:desert': [250,148,24],\n\t'minecraft:desert_hills': [210,95,18],\n\t'minecraft:desert_lakes': [255,188,64],\n\t'minecraft:end_barrens': [128,128,255],\n\t'minecraft:end_highlands': [128,128,255],\n\t'minecraft:end_midlands': [128,128,255],\n\t'minecraft:eroded_badlands': [255,109,61],\n\t'minecraft:flower_forest': [45,142,73],\n\t'minecraft:forest': [5,102,33],\n\t'minecraft:frozen_ocean': [112,112,214],\n\t'minecraft:frozen_river': [160,160,255],\n\t'minecraft:giant_spruce_taiga': [129,142,121],\n\t'minecraft:old_growth_spruce_taiga': [129,142,121],\n\t'minecraft:giant_spruce_taiga_hills': [109,119,102],\n\t'minecraft:giant_tree_taiga': [89,102,81],\n\t'minecraft:old_growth_pine_taiga': [89,102,81],\n\t'minecraft:giant_tree_taiga_hills': [69,79,62],\n\t'minecraft:gravelly_hills': [136,136,136],\n\t'minecraft:gravelly_mountains': [136,136,136],\n\t'minecraft:windswept_gravelly_hills': [136,136,136],\n\t'minecraft:ice_spikes': [180,220,220],\n\t'minecraft:jungle': [83,123,9],\n\t'minecraft:jungle_edge': [98,139,23],\n\t'minecraft:sparse_jungle': [98,139,23],\n\t'minecraft:jungle_hills': [44,66,5],\n\t'minecraft:lukewarm_ocean': [0,0,144],\n\t'minecraft:modified_badlands_plateau': [242,180,141],\n\t'minecraft:modified_gravelly_mountains': [120,152,120],\n\t'minecraft:modified_jungle': [123,163,49],\n\t'minecraft:modified_jungle_edge': [138,179,63],\n\t'minecraft:modified_wooded_badlands_plateau': [216,191,141],\n\t'minecraft:mountain_edge': [114,120,154],\n\t'minecraft:extreme_hills': [96,96,96],\n\t'minecraft:mountains': [96,96,96],\n\t'minecraft:windswept_hills': [96,96,96],\n\t'minecraft:mushroom_field_shore': [160,0,255],\n\t'minecraft:mushroom_fields': [255,0,255],\n\t'minecraft:nether_wastes': [191,59,59],\n\t'minecraft:ocean': [0,0,112],\n\t'minecraft:plains': [141,179,96],\n\t'minecraft:river': [0,0,255],\n\t'minecraft:savanna': [189,178,95],\n\t'minecraft:savanna_plateau': [167,157,100],\n\t'minecraft:shattered_savanna': [229,218,135],\n\t'minecraft:windswept_savanna': [229,218,135],\n\t'minecraft:shattered_savanna_plateau': [207,197,140],\n\t'minecraft:small_end_islands': [128,128,255],\n\t'minecraft:snowy_beach': [250,240,192],\n\t'minecraft:snowy_mountains': [160,160,160],\n\t'minecraft:snowy_taiga': [49,85,74],\n\t'minecraft:snowy_taiga_hills': [36,63,54],\n\t'minecraft:snowy_taiga_mountains': [89,125,114],\n\t'minecraft:snowy_tundra': [255,255,255],\n\t'minecraft:snowy_plains': [255,255,255],\n\t'minecraft:soul_sand_valley': [94,56,48],\n\t'minecraft:stone_shore': [162,162,132],\n\t'minecraft:stony_shore': [162,162,132],\n\t'minecraft:sunflower_plains': [181,219,136],\n\t'minecraft:swamp': [7,249,178],\n\t'minecraft:swamp_hills': [47,255,218],\n\t'minecraft:taiga': [11,102,89],\n\t'minecraft:taiga_hills': [22,57,51],\n\t'minecraft:taiga_mountains': [51,142,129],\n\t'minecraft:tall_birch_forest': [88,156,108],\n\t'minecraft:old_growth_birch_forest': [88,156,108],\n\t'minecraft:tall_birch_hills': [71,135,90],\n\t'minecraft:the_end': [128,128,255],\n\t'minecraft:the_void': [0,0,0],\n\t'minecraft:warm_ocean': [0,0,172],\n\t'minecraft:warped_forest': [73,144,123],\n\t'minecraft:wooded_badlands_plateau': [176,151,101],\n\t'minecraft:wooded_badlands': [176,151,101],\n\t'minecraft:wooded_hills': [34,85,28],\n\t'minecraft:wooded_mountains': [80,112,80],\n\t'minecraft:windswept_forest': [80,112,80],\n\t'minecraft:snowy_slopes': [140, 195, 222],\n\t'minecraft:lofty_peaks': [196, 168, 193],\n\t'minecraft:jagged_peaks': [196, 168, 193],\n\t'minecraft:snowcapped_peaks': [200, 198, 200],\n\t'minecraft:frozen_peaks': [200, 198, 200],\n\t'minecraft:stony_peaks': [82, 92, 103],\n\t'minecraft:grove': [150, 150, 189],\n\t'minecraft:meadow': [169, 197, 80],\n\t'minecraft:lush_caves': [112, 255, 79],\n\t'minecraft:dripstone_caves': [140, 124, 0],\n}\n\nconst NetherPreset = {type:'minecraft:multi_noise',seed:0,altitude_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},humidity_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{biome:'minecraft:nether_wastes',parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}},{biome:'minecraft:soul_sand_valley',parameters:{altitude:0,temperature:0,humidity:-0.5,weirdness:0,offset:0}},{biome:'minecraft:crimson_forest',parameters:{altitude:0,temperature:0.4,humidity:0,weirdness:0,offset:0}},{biome:'minecraft:warped_forest',parameters:{altitude:0,temperature:0,humidity:0.5,weirdness:0,offset:0.375}},{biome:'minecraft:basalt_deltas',parameters:{altitude:0,temperature:-0.5,humidity:0,weirdness:0,offset:0.175}}]}\n\nconst NetherPreset18 = {type:'minecraft:multi_noise',biomes:[{biome:'minecraft:nether_wastes',parameters:{temperature:0,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:'minecraft:soul_sand_valley',parameters:{temperature:0,humidity:-0.5,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:'minecraft:crimson_forest',parameters:{temperature:0.4,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:'minecraft:warped_forest',parameters:{temperature:0,humidity:0.5,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0.375}},{biome:'minecraft:basalt_deltas',parameters:{temperature:-0.5,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0.175}}]}\n\nasync function OverworldPreset18() {\n\tconst overworld = await fetchPreset('1.18', 'dimension', 'overworld')\n\treturn overworld.generator.biome_source\n}\n","import { DataModel } from '@mcschema/core'\nimport type { Random } from 'deepslate'\nimport { LegacyRandom, PerlinNoise } from 'deepslate'\nimport type { VersionId } from '../services'\nimport { checkVersion } from '../services'\nimport { clamp, isObject, stringToColor } from '../Utils'\n\ntype BlockPos = [number, number, number]\ntype Placement = [BlockPos, number]\n\ntype PlacementContext = {\n\tplacements: Placement[],\n\tfeatures: string[],\n\trandom: Random,\n\tbiomeInfoNoise: PerlinNoise,\n\tseaLevel: number,\n\tversion: VersionId,\n\tnextFloat(): number,\n\tnextInt(max: number): number,\n\tnextGaussian(): number,\n\tsampleInt(provider: any): number,\n}\n\nconst terrain = [50, 50, 51, 51, 52, 52, 53, 54, 56, 57, 57, 58, 58, 59, 60, 60, 60, 59, 59, 59, 60, 61, 61, 62, 63, 63, 64, 64, 64, 65, 65, 66, 66, 65, 65, 66, 66, 67, 67, 67, 68, 69, 71, 73, 74, 76, 79, 80, 81, 81, 82, 83, 83, 82, 82, 81, 81, 80, 80, 80, 81, 81, 82, 82] \n\nconst featureColors = [\n\t[255, 77, 54], // red\n\t[59, 118, 255], // blue\n\t[91, 207, 25], // green\n\t[217, 32, 245], // magenta\n\t[255, 209, 41], // yellow\n\t[52, 204, 209], // cyan\n]\n\nexport type DecoratorOptions = {\n\tsize: [number, number, number],\n\tseed: bigint,\n\tversion: VersionId,\n}\nexport function decorator(state: any, img: ImageData, options: DecoratorOptions) {\n\tconst random = new LegacyRandom(options.seed)\n\tconst ctx: PlacementContext = {\n\t\tplacements: [],\n\t\tfeatures: [],\n\t\trandom,\n\t\tbiomeInfoNoise: new PerlinNoise(random.fork(), 0, [1]),\n\t\tseaLevel: 63,\n\t\tversion: options.version,\n\t\tnextFloat: () => random.nextFloat(),\n\t\tnextInt: (max: number) => random.nextInt(max),\n\t\tnextGaussian: () => Math.sqrt(-2 * Math.log(1 - random.nextFloat())) * Math.cos(2 * Math.PI * random.nextFloat()),\n\t\tsampleInt(value) { return sampleInt(value, this) },\n\t}\n\n\tfor (let x = 0; x < options.size[0] / 16; x += 1) {\n\t\tfor (let z = 0; z < options.size[2] / 16; z += 1) {\n\t\t\tif (checkVersion(options.version, undefined, '1.17')) {\n\t\t\t\tgetPlacements([x * 16, 0, z * 16], DataModel.unwrapLists(state), ctx)\n\t\t\t} else {\n\t\t\t\tmodifyPlacement([x * 16, 0, z * 16], DataModel.unwrapLists(state.placement), ctx)\n\t\t\t}\n\t\t}\n\t}\n\n\tconst data = img.data\n\timg.data.fill(255)\n\n\tfor (const [pos, feature] of ctx.placements) {\n\t\tif (pos[0] < 0 || pos[1] < 0 || pos[2] < 0 || pos[0] >= options.size[0] || pos[1] >= options.size[1] || pos[2] >= options.size[2]) continue\n\t\tconst i = (pos[2] * (img.width * 4)) + (pos[0] * 4)\n\t\tconst color = feature < featureColors.length ? featureColors[feature] : stringToColor(ctx.features[feature])\n\t\tdata[i] = clamp(50, 205, color[0])\n\t\tdata[i + 1] = clamp(50, 205, color[1])\n\t\tdata[i + 2] = clamp(50, 205, color[2])\n\t\tdata[i + 3] = 255\n\t}\n\n\tfor (let x = 0; x < options.size[0]; x += 1) {\n\t\tfor (let y = 0; y < options.size[2]; y += 1) {\n\t\t\tif ((Math.floor(x / 16) + Math.floor(y / 16)) % 2 === 0) continue\n\t\t\tconst i = (y * (img.width * 4)) + (x * 4)\n\t\t\tfor (let j = 0; j < 3; j += 1) {\n\t\t\t\tdata[i + j] = 0.85 * data[i + j] \n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction normalize(id: string) {\n\treturn id.startsWith('minecraft:') ? id.slice(10) : id\n}\n\nfunction decorateY(pos: BlockPos, y: number): BlockPos[] {\n\treturn [[ pos[0], y, pos[2] ]]\n}\n\nfunction sampleInt(value: any, ctx: PlacementContext): number {\n\tif (typeof value === 'number') {\n\t\treturn value\n\t} else if (value.base) {\n\t\treturn value.base ?? 1 + ctx.nextInt(1 + (value.spread ?? 0))\n\t} else {\n\t\tswitch (normalize(value.type)) {\n\t\t\tcase 'constant': return value.value\n\t\t\tcase 'uniform': return value.value.min_inclusive + ctx.nextInt(value.value.max_inclusive - value.value.min_inclusive + 1)\n\t\t\tcase 'biased_to_bottom': return value.value.min_inclusive + ctx.nextInt(ctx.nextInt(value.value.max_inclusive - value.value.min_inclusive + 1) + 1)\n\t\t\tcase 'clamped': return clamp(ctx.sampleInt(value.value.source), value.value.min_inclusive, value.value.max_inclusive)\n\t\t\tcase 'clamped_normal':\n\t\t\t\tconst normal = value.value.mean + ctx.nextGaussian() * value.value.deviation\n\t\t\t\treturn Math.floor(clamp(value.value.min_inclusive, value.value.max_inclusive, normal))\n\t\t\tcase 'weighted_list':\n\t\t\t\tconst totalWeight = (value.distribution as any[]).reduce<number>((sum, e) => sum + e.weight, 0)\n\t\t\t\tlet i = ctx.nextInt(totalWeight)\n\t\t\t\tfor (const e of value.distribution) {\n\t\t\t\t\ti -= e.weight\n\t\t\t\t\tif (i < 0) return ctx.sampleInt(e.data)\n\t\t\t\t}\n\t\t\t\treturn 0\n\t\t}\n\t\treturn 1\n\t}\n}\n\nfunction resolveAnchor(anchor: any, _ctx: PlacementContext): number {\n\tif (!isObject(anchor)) throw new Error('Invalid vertical anchor')\n\tif (anchor.absolute) return anchor.absolute\n\tif (anchor.above_bottom) return anchor.above_bottom\n\tif (anchor.below_top) return 256 - anchor.below_top\n\tthrow new Error('Invalid vertical anchor')\n}\n\nfunction sampleHeight(height: any, ctx: PlacementContext): number {\n\tif (!isObject(height)) throw new Error('Invalid height provider')\n\tif (typeof height.type !== 'string') {\n\t\treturn resolveAnchor(height, ctx)\n\t}\n\tswitch (normalize(height.type)) {\n\t\tcase 'constant': return resolveAnchor(height.value, ctx)\n\t\tcase 'uniform': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\treturn min + ctx.nextInt(max - min + 1)\n\t\t}\n\t\tcase 'biased_to_bottom': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\tconst n = ctx.nextInt(max - min - (height.inner ?? 1) + 1)\n\t\t\treturn min + ctx.nextInt(n + (height.inner ?? 1))\n\t\t}\n\t\tcase 'very_biased_to_bottom': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\tconst inner = height.inner ?? 1\n\t\t\tconst n1 = min + inner + ctx.nextInt(max - min - inner + 1)\n\t\t\tconst n2 = min + ctx.nextInt(n1 - min)\n\t\t\treturn min + ctx.nextInt(n2 - min + inner)\n\t\t}\n\t\tcase 'trapezoid': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\tconst plateau = height.plateau ?? 0\n\t\t\tif (plateau >= max - min) {\n\t\t\t\treturn min + ctx.nextInt(max - min + 1)\n\t\t\t}\n\t\t\tconst n1 = (max - min - plateau) / 2\n\t\t\tconst n2 = (max - min) - n1\n\t\t\treturn min + ctx.nextInt(n2 + 1) + ctx.nextInt(n1 + 1)\n\t\t}\n\t\tdefault: throw new Error(`Invalid height provider ${height.type}`)\n\t}\n}\n\n// 1.17 and before\nfunction useFeature(s: string, ctx: PlacementContext) {\n\tconst i = ctx.features.indexOf(s)\n\tif (i != -1) return i\n\tctx.features.push(s)\n\treturn ctx.features.length - 1\n}\n\nfunction getPlacements(pos: BlockPos, feature: any, ctx: PlacementContext): void {\n\tif (typeof feature === 'string') {\n\t\tctx.placements.push([pos, useFeature(feature, ctx)])\n\t\treturn\n\t}\n\tconst type = normalize(feature?.type ?? 'no_op')\n\tconst featureFn = Features[type]\n\tif (featureFn) {\n\t\tfeatureFn(feature.config, pos, ctx)\n\t} else {\n\t\tctx.placements.push([pos, useFeature(JSON.stringify(feature), ctx)])\n\t}\n}\n\nfunction getPositions(pos: BlockPos, decorator: any, ctx: PlacementContext): BlockPos[] {\n\tconst type = normalize(decorator?.type ?? 'nope')\n\tconst decoratorFn = Decorators[type]\n\tif (!decoratorFn) {\n\t\treturn [pos]\n\t}\n\treturn decoratorFn(decorator?.config, pos, ctx)\n}\n\nconst Features: {\n\t[key: string]: (config: any, pos: BlockPos, ctx: PlacementContext) => void,\n} = {\n\tdecorated: (config, pos, ctx) => {\n\t\tconst positions = getPositions(pos, config?.decorator, ctx)\n\t\tpositions.forEach(p => getPlacements(p, config?.feature, ctx))\n\t},\n\trandom_boolean_selector: (config, pos, ctx) => {\n\t\tconst feature = ctx.nextFloat() < 0.5 ? config?.feature_true : config?.feature_false\n\t\tgetPlacements(pos, feature, ctx)\n\t},\n\trandom_selector: (config, pos, ctx) => {\n\t\tfor (const f of config?.features ?? []) {\n\t\t\tif (ctx.nextFloat() < (f?.chance ?? 0)) {\n\t\t\t\tgetPlacements(pos, f.feature, ctx)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tgetPlacements(pos, config?.default, ctx)\n\t},\n\tsimple_random_selector: (config, pos, ctx) => {\n\t\tconst feature = config?.features?.[ctx.nextInt(config?.features?.length ?? 0)]\n\t\tgetPlacements(pos, feature, ctx)\n\t},\n}\n\nconst Decorators: {\n\t[key: string]: (config: any, pos: BlockPos, ctx: PlacementContext) => BlockPos[],\n} = {\n\tchance: (config, pos, ctx) => {\n\t\treturn ctx.nextFloat() < 1 / (config?.chance ?? 1) ? [pos] : []\n\t},\n\tcount: (config, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(config?.count ?? 1)).fill(pos)\n\t},\n\tcount_extra: (config, pos, ctx) => {\n\t\tlet count = config?.count ?? 1\n\t\tif (ctx.nextFloat() < config.extra_chance ?? 0){\n\t\t\tcount += config.extra_count ?? 0\n\t\t}\n\t\treturn new Array(count).fill(pos)\n\t},\n\tcount_multilayer: (config, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(config?.count ?? 1)).fill(pos)\n\t\t\t.map(p => [\n\t\t\t\tp[0] + ctx.nextInt(16),\n\t\t\t\tp[1], \n\t\t\t\tp[2] + ctx.nextInt(16),\n\t\t\t])\n\t},\n\tcount_noise: (config, pos, ctx) => {\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / 200, 0, pos[2] / 200)\n\t\tconst count = noise < config.noise_level ? config.below_noise : config.above_noise\n\t\treturn new Array(count).fill(pos)\n\t},\n\tcount_noise_biased: (config, pos, ctx) => {\n\t\tconst factor = Math.max(1, config.noise_factor)\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / factor, 0, pos[2] / factor)\n\t\tconst count = Math.max(0, Math.ceil((noise + (config.noise_offset ?? 0)) * config.noise_to_count_ratio))\n\t\treturn new Array(count).fill(pos)\n\t},\n\tdark_oak_tree: (_config, pos, ctx) => {\n\t\treturn [...new Array(16)].map((_, i) => {\n\t\t\tconst x = Math.floor(i / 4) * 4 + 1 + ctx.nextInt(3) + pos[0]\n\t\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, x)])\n\t\t\tconst z = Math.floor(i % 4) * 4 + 1 + ctx.nextInt(3) + pos[2]\n\t\t\treturn [x, y, z]\n\t\t})\n\t},\n\tdecorated: (config, pos, ctx) => {\n\t\treturn getPositions(pos, config?.outer, ctx).flatMap(p => {\n\t\t\treturn getPositions(p, config?.inner, ctx)\n\t\t})\n\t},\n\tdepth_average: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(config?.spread ?? 0) + ctx.nextInt(config?.spread ?? 0) - (config.spread ?? 0) + (config?.baseline ?? 0)\n\t\treturn decorateY(pos, y)\n\t},\n\temerald_ore: (_config, pos, ctx) => {\n\t\tconst count = 3 + ctx.nextInt(6)\n\t\treturn [...new Array(count)].map(() => [\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\t4 + ctx.nextInt(28),\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t])\n\t},\n\tfire: (config, pos, ctx) => {\n\t\tconst count = 1 + ctx.nextInt(ctx.nextInt(ctx.sampleInt(config?.count)))\n\t\treturn [...new Array(count)].map(() => [\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tctx.nextInt(128),\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t])\n\t},\n\tglowstone: (config, pos, ctx) => {\n\t\tconst count = ctx.nextInt(1 + ctx.nextInt(ctx.sampleInt(config?.count)))\n\t\treturn [...new Array(count)].map(() => [\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tctx.nextInt(128),\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t])\n\t},\n\theightmap: (_config, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, y)\n\t},\n\theightmap_spread_double: (_config, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, ctx.nextInt(y * 2))\n\t},\n\theightmap_world_surface: (_config, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, y)\n\t},\n\ticeberg: (_config, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + 4 + ctx.nextInt(8),\n\t\t\tpos[1],\n\t\t\tpos[2] + 4 + ctx.nextInt(8),\n\t\t]]\n\t},\n\tlava_lake: (config, pos, ctx) => {\n\t\tif (ctx.nextInt((config.chance ?? 1) / 10) === 0) {\n\t\t\tconst y = ctx.nextInt(ctx.nextInt(256 - 8) + 8)\n\t\t\tif (y < ctx.seaLevel || ctx.nextInt((config?.chance ?? 1) / 8) == 0) {\n\t\t\t\tconst x = ctx.nextInt(16) + pos[0]\n\t\t\t\tconst z = ctx.nextInt(16) + pos[2]\n\t\t\t\treturn [[x, y, z]]\n\t\t\t}\n\t\t}\n\t\treturn []\n\t},\n\tnope: (_config, pos) => {\n\t\treturn [pos]\n\t},\n\trange: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt((config?.maximum ?? 1) - (config?.top_offset ?? 0)) + (config?.bottom_offset ?? 0)\n\t\treturn decorateY(pos, y)\n\t},\n\trange_biased: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(ctx.nextInt((config?.maximum ?? 1) - (config?.top_offset ?? 0)) + (config?.bottom_offset ?? 0))\n\t\treturn decorateY(pos, y)\n\t},\n\trange_very_biased: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(ctx.nextInt(ctx.nextInt((config?.maximum ?? 1) - (config?.top_offset ?? 0)) + (config?.bottom_offset ?? 0)) + (config?.bottom_offset ?? 0))\n\t\treturn decorateY(pos, y)\n\t},\n\tspread_32_above: (_config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(pos[1] + 32)\n\t\treturn decorateY(pos, y)\n\t},\n\ttop_solid_heightmap: (_config, pos) => {\n\t\tconst y = terrain[clamp(0, 63, pos[0])]\n\t\treturn decorateY(pos, y)\n\t},\n\tmagma: (_config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(pos[1] + 32)\n\t\treturn decorateY(pos, y)\n\t},\n\tsquare: (_config, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tpos[1],\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t]]\n\t},\n\tsurface_relative_threshold: (config, pos) => {\n\t\tconst height = terrain[clamp(0, 63, pos[0])]\n\t\tconst min = height + (config?.min_inclusive ?? -Infinity)\n\t\tconst max = height + (config?.max_inclusive ?? Infinity)\n\t\treturn (pos[1] < min || pos[1] > max) ? [pos] : []\n\t},\n\twater_lake: (config, pos, ctx) => {\n\t\tif (ctx.nextInt(config.chance ?? 1) === 0) {\n\t\t\treturn [[\n\t\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\t\tctx.nextInt(256),\n\t\t\t\tpos[2] + ctx.nextInt(16),\n\t\t\t]]\n\t\t}\n\t\treturn []\n\t},\n}\n\n// 1.18 and after\nfunction modifyPlacement(pos: BlockPos, placement: any[], ctx: PlacementContext) {\n\tlet positions = [pos]\n\tfor (const modifier of placement) {\n\t\tconst modifierFn = PlacementModifiers[normalize(modifier?.type ?? 'nope')]\n\t\tif (!modifierFn) continue\n\t\tpositions = positions.flatMap(pos =>\n\t\t\tPlacementModifiers[normalize(modifier.type)](modifier, pos, ctx)\n\t\t)\n\t}\n\tfor (const pos of positions) {\n\t\tctx.placements.push([pos, 0])\n\t}\n}\n\nconst PlacementModifiers: {\n\t[key: string]: (config: any, pos: BlockPos, ctx: PlacementContext) => BlockPos[],\n} = {\n\tcount: ({ count }, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(count ?? 1)).fill(pos)\n\t},\n\tcount_on_every_layer: ({ count }, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(count ?? 1)).fill(pos)\n\t\t\t.map(p => [\n\t\t\t\tp[0] + ctx.nextInt(16),\n\t\t\t\tp[1], \n\t\t\t\tp[2] + ctx.nextInt(16),\n\t\t\t])\n\t},\n\tenvironment_scan: ({}, pos) => {\n\t\treturn [pos]\n\t},\n\theight_range: ({ height }, pos, ctx) => {\n\t\treturn decorateY(pos, sampleHeight(height, ctx))\n\t},\n\theightmap: ({}, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, y)\n\t},\n\tin_square: ({}, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tpos[1],\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t]]\n\t},\n\tnoise_based_count: ({ noise_to_count_ratio, noise_factor, noise_offset }, pos, ctx) => {\n\t\tconst factor = Math.max(1, noise_factor)\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / factor, 0, pos[2] / factor)\n\t\tconst count = Math.max(0, Math.ceil((noise + (noise_offset ?? 0)) * noise_to_count_ratio))\n\t\treturn new Array(count).fill(pos)\n\t},\n\tnoise_threshold_count: ({ noise_level, below_noise, above_noise }, pos, ctx) => {\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / 200, 0, pos[2] / 200)\n\t\tconst count = noise < noise_level ? below_noise : above_noise\n\t\treturn new Array(count).fill(pos)\n\t},\n\trandom_offset: ({ xz_spread, y_spread }, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + ctx.sampleInt(xz_spread),\n\t\t\tpos[1] + ctx.sampleInt(y_spread),\n\t\t\tpos[2] + ctx.sampleInt(xz_spread),\n\t\t]]\n\t},\n\trarity_filter: ({ chance }, pos, ctx) => {\n\t\treturn ctx.nextFloat() < 1 / (chance ?? 1) ? [pos] : []\n\t},\n}\n","import t from\"pako\";import e from\"md5\";import{vec3 as i,mat4 as s,glMatrix as n}from\"gl-matrix\";var r;!function(t){t.UP=\"up\",t.DOWN=\"down\",t.NORTH=\"north\",t.EAST=\"east\",t.SOUTH=\"south\",t.WEST=\"west\"}(r||(r={}));const o={[r.UP]:[0,1,0],[r.DOWN]:[0,-1,0],[r.NORTH]:[0,0,-1],[r.EAST]:[1,0,0],[r.SOUTH]:[0,0,1],[r.WEST]:[-1,0,0]};var a;!function(t){t.ALL=[t.UP,t.DOWN,t.NORTH,t.EAST,t.SOUTH,t.WEST],t.normal=function(t){return o[t]}}(r||(r={})),function(t){t.create=function(t,e,i){return[t,e,i]},t.offset=function(t,e,i,s){return[t[0]+e,t[1]+i,t[2]+s]},t.towards=function(e,i){return t.offset(e,...r.normal(i))}}(a||(a={}));const l={end:0,byte:1,short:2,int:3,long:4,float:5,double:6,byteArray:7,string:8,list:9,compound:10,intArray:11,longArray:12},h=[\"end\",\"byte\",\"short\",\"int\",\"long\",\"float\",\"double\",\"byteArray\",\"string\",\"list\",\"compound\",\"intArray\",\"longArray\"];class u{constructor(t,e=!1){this.byte=this.readNum.bind(this,\"getInt8\",1),this.short=this.readNum.bind(this,\"getInt16\",2),this.int=this.readNum.bind(this,\"getInt32\",4),this.float=this.readNum.bind(this,\"getFloat32\",4),this.double=this.readNum.bind(this,\"getFloat64\",8),this.offset=0,this.littleEndian=e,this.arrayView=t,this.dataView=new DataView(t.buffer,t.byteOffset)}end(){return null}readNum(t,e){const i=this.dataView[t](this.offset,this.littleEndian);return this.offset+=e,i}long(){return[this.int(),this.int()]}byteArray(){const t=this.int(),e=[];for(let i=0;i<t;i++)e.push(this.byte());return e}intArray(){const t=this.int(),e=[];for(let i=0;i<t;i++)e.push(this.int());return e}longArray(){const t=this.int(),e=[];for(let i=0;i<t;i++)e.push(this.long());return e}string(){const t=this.short(),e=this.arrayView.slice(this.offset,this.offset+t);return this.offset+=t,function(t){var e,i=[];for(e=0;e<t.length;e++)0==(128&t[e])?i.push(127&t[e]):e+1<t.length&&192==(224&t[e])&&128==(192&t[e+1])?i.push((31&t[e])<<6|63&t[e+1]):e+2<t.length&&224==(240&t[e])&&128==(192&t[e+1])&&128==(192&t[e+2])?i.push((15&t[e])<<12|(63&t[e+1])<<6|63&t[e+2]):e+3<t.length&&240==(248&t[e])&&128==(192&t[e+1])&&128==(192&t[e+2])&&128==(192&t[e+3])&&i.push((7&t[e])<<18|(63&t[e+1])<<12|(63&t[e+2])<<6|63&t[e+3]);return String.fromCharCode.apply(null,i)}(e)}list(){const t=h[this.byte()],e=this.int(),i=[];for(let s=0;s<e;s++)i.push(this[t]());return{type:t,value:i}}compound(){const t={};for(;;){const e=h[this.byte()];if(\"end\"===e)break;const i=this.string(),s=this[e]();t[i]={type:e,value:s}}return t}}class c{constructor(t=!1){this.byte=this.writeNum.bind(this,\"setInt8\",1),this.short=this.writeNum.bind(this,\"setInt16\",2),this.int=this.writeNum.bind(this,\"setInt32\",4),this.float=this.writeNum.bind(this,\"setFloat32\",4),this.double=this.writeNum.bind(this,\"setFloat64\",8),this.offset=0,this.littleEndian=t,this.buffer=new ArrayBuffer(1024),this.arrayView=new Uint8Array(this.buffer),this.dataView=new DataView(this.buffer)}accommodate(t){const e=this.offset+t;if(this.buffer.byteLength>=e)return;let i=this.buffer.byteLength;for(;i<e;)i*=2;const s=new ArrayBuffer(i),n=new Uint8Array(s);n.set(this.arrayView),this.offset>this.buffer.byteLength&&n.fill(0,this.buffer.byteLength,this.offset),this.buffer=s,this.dataView=new DataView(s),this.arrayView=n}getData(){return this.accommodate(0),this.arrayView.slice(0,this.offset)}end(t){}writeNum(t,e,i){this.accommodate(e),this.dataView[t](this.offset,i,this.littleEndian),this.offset+=e}long(t){this.int(t[0]),this.int(t[1])}byteArray(t){this.int(t.length),this.accommodate(t.length),this.arrayView.set(t,this.offset),this.offset+=t.length}intArray(t){this.int(t.length);for(let e=0;e<t.length;e++)this.int(t[e])}longArray(t){this.int(t.length);for(let e=0;e<t.length;e++)this.long(t[e])}string(t){const e=function(t){var e,i,s=[];for(e=0;e<t.length;e++)(i=t.charCodeAt(e))<128?s.push(i):i<2048?(s.push(192|i>>6),s.push(128|63&i)):i<65536?(s.push(224|i>>12),s.push(128|i>>6&63),s.push(128|63&i)):(s.push(240|i>>18&7),s.push(128|i>>12&63),s.push(128|i>>6&63),s.push(128|63&i));return s}(t);this.short(e.length),this.accommodate(e.length),this.arrayView.set(e,this.offset),this.offset+=e.length}list(t){this.byte(l[t.type]),this.int(t.value.length),t.value;for(let e=0;e<t.value.length;e++)this[t.type](t.value[e])}compound(t){for(const e in t)this.byte(l[t[e].type]),this.string(e),this[t[e].type](t[e].value);this.byte(l.end)}}function d(t,e){const i=new u(t,e);if(i.byte()!==l.compound)throw new Error(\"Top tag should be a compound\");return{name:i.string(),value:i.compound()}}function f(e,i){return d(t.inflate(e),i)}function g(t,e){return 2===(i=new Uint8Array(t.slice(0,2))).length&&31===i[0]&&139===i[1]?{compressed:!0,result:f(t,e)}:{compressed:!1,result:d(t,e)};var i}function p(t){const e=[];for(let i=0;i<32;i+=1)for(let s=0;s<32;s+=1){const n=4*((31&i)+32*(31&s));if(0===t[n+3])continue;const r=(t[n]<<16)+(t[n+1]<<8)+t[n+2],o=(t[n+4096]<<24)+(t[n+4097]<<16)+(t[n+4098]<<8)+t[n+4099],a=4096*r,l=(t[a]<<24)+(t[a+1]<<16)+(t[a+2]<<8)+t[a+3],h=t[a+4],u=t.slice(a+5,a+4+l);e.push({x:i,z:s,timestamp:o,compression:h,data:u})}return e}function m(t,e,i){const s=w(t,e,i);switch(s.compression){case 1:case 2:s.nbt=f(s.data);break;case 3:s.nbt=d(s.data);break;default:throw new Error(`Invalid compression mode ${s.compression}`)}return s}function v(t,e){const i=new c(e);return i.byte(l.compound),i.string(t.name),i.compound(t.value),i.getData()}function b(e,i,s){const n=v(e,i);return t[s?\"deflate\":\"gzip\"](n)}function S(t,e,i){return e?b(t,i):v(t,i)}function E(t){let e=0;for(const i of t)e+=Math.ceil(i.data.length/4096);const i=new Uint8Array(8192+4096*e),s=new DataView(i.buffer);let n=2;for(const e of t){const t=4*((31&e.x)+32*(31&e.z)),r=Math.ceil(e.data.length/4096);s.setInt8(t,n>>16),s.setInt16(t+1,65535&n),s.setInt8(t+3,r),s.setInt32(t+4096,e.timestamp);const o=4096*n;s.setInt32(o,e.data.length+1),s.setInt8(o+4,e.compression),i.set(e.data,o+5),n+=r}return i}function I(t,e,i,s){const n=w(t,e,i);switch(n.compression){case 1:n.data=b(s);break;case 2:n.data=b(s,!1,!0);break;case 3:n.data=v(s);break;default:throw new Error(`Invalid compression mode ${n.compression}`)}return n}function w(t,e,i){const s=t.find((t=>t.x===e&&t.z===i));if(void 0===s)throw new Error(`Cannot find chunk [${e}, ${i}]`);return s}function A(t,e,i){if(!t[e])throw new Error(`Missing ${e} tag`);if(t[e].type!==i)throw new Error(`Expected ${e} to be of type ${i}, but found ${t[e].type}`);return t[e].value}function N(t,e,i,s){const n=A(t,e,\"list\");if(n.type!==i)throw new Error(`Expected ${e} to be a list of ${i}s, but found ${n.type}s`);if(s&&n.value.length!==s)throw new Error(`Expected ${e} to be a list of length ${s}, but found length ${n.value.length}`);return n.value}function F(t,e){try{return t()}catch(t){return e}}var _,y,P,R,B;!function(t){function e(t){return\"object\"==typeof t&&null!==t?t:void 0}t.readNumber=function(t){return\"number\"==typeof t?t:void 0},t.readInt=function(t){return\"number\"==typeof t?Math.floor(t):void 0},t.readString=function(t){return\"string\"==typeof t?t:void 0},t.readBoolean=function(t){return\"boolean\"==typeof t?t:void 0},t.readObject=e,t.readArray=function(t,e){if(Array.isArray(t))return t.map((t=>e(t)))},t.readMap=function(t,i){var s;const n=null!==(s=e(t))&&void 0!==s?s:{};return Object.fromEntries(Object.entries(n).map((([t,e])=>[t,i(e)])))},t.compose=function(t,e,i){const s=e(t);return s?i(s):void 0}}(_||(_={}));class x{constructor(t,e={}){this.name=t,this.properties=e}getName(){return this.name}getProperties(){return this.properties}getProperty(t){return this.properties[t]}isFluid(){return\"minecraft:water\"===this.name||\"minecraft:lava\"===this.name}equals(t){return this.name===t.name&&Object.keys(this.properties).every((e=>t.properties[e]===this.properties[e]))}toString(){return 0===Object.keys(this.properties).length?this.name:`${this.name}[${Object.entries(this.properties).map((([t,e])=>t+\"=\"+e)).join(\",\")}]`}static fromNbt(t){const e=A(t.value,\"Name\",\"string\"),i=F((()=>A(t.value,\"Properties\",\"compound\")),{}),s=Object.keys(i).reduce(((t,e)=>Object.assign(Object.assign({},t),{[e]:A(i,e,\"string\")})),{});return new x(e,s)}static fromJson(t){var e,i;const s=null!==(e=_.readObject(t))&&void 0!==e?e:{},n=null!==(i=_.readString(s.Name))&&void 0!==i?i:\"minecraft:stone\",r=_.readMap(s.Properties,(t=>{var e;return null!==(e=_.readString(t))&&void 0!==e?e:\"\"}));return new x(n,r)}}x.AIR=new x(\"minecraft:air\");class T{constructor(t){this.minY=t,this.storage=Array(T.SIZE),this.palette=[x.AIR]}get minBlockY(){return this.minY<<4}index(t,e,i){return(t<<8)+(e<<4)+i}getBlockState(t,e,i){var s;const n=this.storage[this.index(t,e,i)];return null!==(s=this.palette[n])&&void 0!==s?s:x.AIR}setBlockState(t,e,i,s){let n=this.palette.findIndex((t=>t.equals(s)));-1===n&&(n=this.palette.length,this.palette.push(s)),this.storage[this.index(t,e,i)]=n}}T.WIDTH=16,T.SIZE=T.WIDTH*T.WIDTH*T.WIDTH;class C{constructor(t,e,i){this.minY=t,this.height=e,this.pos=i,this.sections=Array(this.sectionsCount).fill(null)}get maxY(){return this.minY+this.height}get minSection(){return this.minY>>4}get maxSection(){return 1+(this.maxY-1>>4)}get sectionsCount(){return this.maxSection-this.minSection}getSectionIndex(t){return(t>>4)-this.minSection}getBlockState(t){var e;const[i,s,n]=t,r=this.sections[this.getSectionIndex(s)];return null!==(e=null==r?void 0:r.getBlockState(15&i,15&s,15&n))&&void 0!==e?e:x.AIR}setBlockState(t,e){const[i,s,n]=t,r=this.getSectionIndex(s);let o=this.sections[r];if(null===o){if(e.equals(x.AIR))return;o=this.getOrCreateSection(r)}o.setBlockState(15&i,15&s,15&n,e)}getOrCreateSection(t){return null==this.sections[t]&&(this.sections[t]=new T(this.minSection+t)),this.sections[t]}}!function(t){function e(t,e){return BigInt(4294967295&t)|BigInt(4294967295&e)<<BigInt(32)}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.toLong=function(t){return e(t[0],t[1])},t.asLong=e,t.minBlockX=function(t){return t[0]<<4},t.minBlockZ=function(t){return t[1]<<4},t.maxBlockX=function(t){return 15+(t[0]<<4)},t.maxBlockZ=function(t){return 15+(t[1]<<4)}}(y||(y={}));class k{constructor(t,e=[],i=[]){this.size=t,this.palette=e,this.blocks=i,this.blocksMap=[],i.forEach((e=>{if(!this.isInside(e.pos))throw new Error(`Found block at ${e.pos} which is outside the structure bounds ${this.size}`);this.blocksMap[e.pos[0]*t[1]*t[2]+e.pos[1]*t[2]+e.pos[2]]=e}))}getSize(){return this.size}addBlock(t,e,i,s){if(!this.isInside(t))throw new Error(`Cannot add block at ${t} outside the structure bounds ${this.size}`);const n=new x(e,i);let r=this.palette.findIndex((t=>t.equals(n)));return-1===r&&(r=this.palette.length,this.palette.push(n)),this.blocks.push({pos:t,state:r,nbt:s}),this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]]={pos:t,state:r,nbt:s},this}getBlocks(){return this.blocks.map((t=>({pos:t.pos,state:this.palette[t.state],nbt:t.nbt})))}getBlock(t){if(!this.isInside(t))return null;const e=this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]];if(!e)return null;return{pos:e.pos,state:this.palette[e.state],nbt:e.nbt}}isInside(t){return t[0]>=0&&t[0]<this.size[0]&&t[1]>=0&&t[1]<this.size[1]&&t[2]>=0&&t[2]<this.size[2]}static fromNbt(t){const e=N(t.value,\"size\",\"int\",3),i=N(t.value,\"palette\",\"compound\").map((t=>x.fromNbt({name:\"\",value:t}))),s=N(t.value,\"blocks\",\"compound\").map((t=>({pos:N(t,\"pos\",\"int\",3),state:A(t,\"state\",\"int\"),nbt:F((()=>A(t,\"nbt\",\"compound\")),void 0)})));return new k(e,i,s)}}function D(t){let e=null;return()=>(null==e&&(e=t()),e)}function M(t,e,i){const s=t.get(e);if(s)return s;const n=i(e);return t.set(e,n),n}function O(t){return t*t}function L(t,e,i){return Math.max(e,Math.min(i,t))}function U(t,e,i){return e+t*(i-e)}function Y(t,e,i,s,n,r){return U(e,U(t,i,s),U(t,n,r))}function G(t,e,i,s,n,r,o,a,l,h,u){return U(i,Y(t,e,s,n,r,o),Y(t,e,a,l,h,u))}function H(t,e,i){return i<0?t:i>1?e:U(i,t,e)}function V(t,e,i){return(t-e)/(i-e)}function z(t){return t*t*t*(t*(6*t-15)+10)}function j(t,e,i,s,n){return U(V(t,e,i),s,n)}function J(t,e,i,s,n){return H(s,n,V(t,e,i))}function X(t,e,i){let s=e-t;for(;s>0;){const e=Math.floor(s/2),n=t+e;i(n)?s=e:(t=n+1,s-=e+1)}return t}function Z(t,e,i){let s=BigInt(3129871*t)^BigInt(i)*BigInt(116129781)^BigInt(e);return s=s*s*BigInt(42317861)+s*BigInt(11),s>>BigInt(16)}function W(t,e,i,s,n,r,o,a){return BigInt(t)<<BigInt(56)|BigInt(e)<<BigInt(48)|BigInt(i)<<BigInt(40)|BigInt(s)<<BigInt(32)|BigInt(n)<<BigInt(24)|BigInt(r)<<BigInt(16)|BigInt(o)<<BigInt(8)|BigInt(a)}class q{constructor(t){this.seed=BigInt(0),this.setSeed(t)}fork(){return new q(this.nextLong())}forkPositional(){return new $(this.seed)}setSeed(t){this.seed=t^q.MULTIPLIER&q.MODULUS_MASK}advance(){this.seed=this.seed*q.MULTIPLIER+q.INCREMENT&q.MODULUS_MASK}consume(t){for(let e=0;e<t;e+=1)this.advance()}next(t){this.advance();const e=Number(this.seed>>BigInt(q.MODULUS_BITS-t));return e>2147483647?e-4294967296:e}nextInt(t){if(void 0===t)return this.next(32);if(0==(t&t-1))return Number(BigInt(t)*BigInt(this.next(31))>>BigInt(31));let e,i;for(;(e=this.next(31))-(i=e%t)+(t-1)<0;);return i}nextLong(){return(BigInt(this.next(32))<<BigInt(32))+BigInt(this.next(32))}nextFloat(){return this.next(24)*q.FLOAT_MULTIPLIER}nextDouble(){const t=this.next(30);return this.advance(),t*q.DOUBLE_MULTIPLIER}}q.MODULUS_BITS=48,q.MODULUS_MASK=BigInt(\"281474976710655\"),q.MULTIPLIER=BigInt(\"25214903917\"),q.INCREMENT=BigInt(\"11\"),q.FLOAT_MULTIPLIER=1/Math.pow(2,24),q.DOUBLE_MULTIPLIER=1/Math.pow(2,30);class ${constructor(t){this.seed=t}at(t,e,i){const s=Z(t,e,i);return new q(s^this.seed)}fromHashOf(t){const i=e(t,{asBytes:!0}),s=W(i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7]);return new q(s^this.seed)}}class K{constructor(t){this.seed=[BigInt(0),BigInt(0)],this.seed=t}static create(t){return new K(K.upgradeSeedTo128bit(t))}static mixStafford13(t){return((t=((t=(t^t>>BigInt(30))*BigInt(\"-4658895280553007687\")&BigInt(\"0xFFFFFFFFFFFFFFFF\"))^t>>BigInt(27))*BigInt(\"-7723592293110705685\")&BigInt(\"0xFFFFFFFFFFFFFFFF\"))^t>>BigInt(31))&BigInt(\"0xFFFFFFFFFFFFFFFF\")}static upgradeSeedTo128bit(t){t<0&&(t+=BigInt(\"0x10000000000000000\"));const e=t^K.SILVER_RATIO_64,i=e+K.GOLDEN_RATIO_64&BigInt(\"0xFFFFFFFFFFFFFFFF\");return[K.mixStafford13(e),K.mixStafford13(i)]}static rotateLeft(t,e){return t<<e&BigInt(\"0xFFFFFFFFFFFFFFFF\")|t>>BigInt(64)-e}setSeed(t){this.seed=K.upgradeSeedTo128bit(t)}fork(){return new K([this.next(),this.next()])}forkPositional(){return new Q(this.next(),this.next())}next(){const t=this.seed[0];let e=this.seed[1];const i=K.rotateLeft(t+e&BigInt(\"0xFFFFFFFFFFFFFFFF\"),BigInt(17))+t&BigInt(\"0xFFFFFFFFFFFFFFFF\");return e^=t,this.seed=[K.rotateLeft(t,BigInt(49))^e^e<<BigInt(21)&BigInt(\"0xFFFFFFFFFFFFFFFF\"),K.rotateLeft(e,BigInt(28))],i}nextLong(){let t=this.next();return t>BigInt(\"0x8000000000000000\")&&(t-=BigInt(\"0x10000000000000000\")),t}consume(t){let e=this.seed[0],i=this.seed[1];for(let s=0;s<t;s+=1)i^=e,e=K.rotateLeft(e,BigInt(49))^i^i<<BigInt(21),i=K.rotateLeft(i,BigInt(28));this.seed=[e,i]}nextBits(t){return this.next()>>BigInt(64-t)}nextInt(t){let e=this.next()&BigInt(4294967295);if(t){const i=BigInt(t);let s=e*i,n=s&BigInt(4294967295);if(n<i){const t=((~i&BigInt(4294967295))+BigInt(1))%i;for(;n<t;)e=this.next()&BigInt(4294967295),s=e*i,n=s&BigInt(4294967295)}const r=s>>BigInt(32);return Number(r)}{let t=Number(e);return t>=2147483648&&(t-=4294967296),t}}nextFloat(){return Number(this.nextBits(24))*K.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*K.DOUBLE_MULTIPLIER}parityConfigString(){return\"seedLo: \"+this.seed[0]+\", seedHi: \"+this.seed[1]}}K.SILVER_RATIO_64=BigInt(\"7640891576956012809\"),K.GOLDEN_RATIO_64=BigInt(\"-7046029254386353131\"),K.FLOAT_MULTIPLIER=1/Math.pow(2,24),K.DOUBLE_MULTIPLIER=11102230246251565e-32;class Q{constructor(t,e){this.seedLo=t,this.seedHi=e}at(t,e,i){const s=Z(t,e,i)^this.seedLo;return new K([s,this.seedHi])}fromHashOf(t){const i=e(t,{asBytes:!0}),s=W(i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7]),n=W(i[8],i[9],i[10],i[11],i[12],i[13],i[14],i[15]);return new K([s^this.seedLo,n^this.seedHi])}}class tt{constructor(t){this.xo=256*t.nextDouble(),this.yo=256*t.nextDouble(),this.zo=256*t.nextDouble(),this.p=Array(256);for(let t=0;t<256;t+=1)this.p[t]=t;for(let e=0;e<256;e+=1){const i=t.nextInt(256-e),s=this.p[e];this.p[e]=this.p[e+i],this.p[e+i]=s}}sample2D(t,e){let i,s,n;const r=(t+e)*tt.F2,o=Math.floor(t+r),a=t-(o-(i=(o+(s=Math.floor(e+r)))*tt.G2));let l,h;a>(n=e-(s-i))?(l=1,h=0):(l=0,h=1);const u=a-l+tt.G2,c=n-h+tt.G2,d=a-1+2*tt.G2,f=n-1+2*tt.G2,g=255&o,p=255&s,m=this.P(g+this.P(p))%12,v=this.P(g+l+this.P(p+h))%12,b=this.P(g+1+this.P(p+1))%12;return 70*(this.getCornerNoise3D(m,a,n,0,.5)+this.getCornerNoise3D(v,u,c,0,.5)+this.getCornerNoise3D(b,d,f,0,.5))}sample(t,e,i){const s=.3333333333333333*(t+e+i),n=Math.floor(t+s),r=Math.floor(e+s),o=Math.floor(i+s),a=.16666666666666666*(n+r+o),l=t-(n-a),h=e-(r-a),u=i-(o-a);let c,d,f,g,p,m;l>=h?h>=u?(c=1,d=0,f=0,g=1,p=1,m=0):l>=u?(c=1,d=0,f=0,g=1,p=0,m=1):(c=0,d=0,f=1,g=1,p=0,m=1):h<u?(c=0,d=0,f=1,g=0,p=1,m=1):l<u?(c=0,d=1,f=0,g=0,p=1,m=1):(c=0,d=1,f=0,g=1,p=1,m=0);const v=l-c+.16666666666666666,b=h-d+.16666666666666666,S=u-f+.16666666666666666,E=l-g+.3333333333333333,I=h-p+.3333333333333333,w=u-m+.3333333333333333,A=l-.5,N=h-.5,F=u-.5,_=255&n,y=255&r,P=255&o,R=this.P(_+this.P(y+this.P(P)))%12,B=this.P(_+c+this.P(y+d+this.P(P+f)))%12,x=this.P(_+g+this.P(y+p+this.P(P+m)))%12,T=this.P(_+1+this.P(y+1+this.P(P+1)))%12;return 32*(this.getCornerNoise3D(R,l,h,u,.6)+this.getCornerNoise3D(B,v,b,S,.6)+this.getCornerNoise3D(x,E,I,w,.6)+this.getCornerNoise3D(T,A,N,F,.6))}P(t){return this.p[255&t]}getCornerNoise3D(t,e,i,s,n){let r,o=n-e*e-i*i-s*s;return o<0?r=0:(o*=o,r=o*o*tt.gradDot(t,e,i,s)),r}static gradDot(t,e,i,s){const n=tt.GRADIENT[15&t];return n[0]*e+n[1]*i+n[2]*s}}tt.GRADIENT=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1],[1,1,0],[0,-1,1],[-1,1,0],[0,-1,-1]],tt.F2=.5*(Math.sqrt(3)-1),tt.G2=(3-Math.sqrt(3))/6;class et{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>127?t-256:t;for(let e=0;e<256;e+=1){const i=t.nextInt(256-e),s=this.p[e];this.p[e]=this.p[e+i],this.p[e+i]=s}}sample(t,e,i,s=0,n=0){const r=t+this.xo,o=e+this.yo,a=i+this.zo,l=Math.floor(r),h=Math.floor(o),u=Math.floor(a),c=r-l,d=o-h,f=a-u;let g=0;if(0!==s){const t=n>=0&&n<d?n:d;g=Math.floor(t/s+1e-7)*s}return this.sampleAndLerp(l,h,u,c,d-g,f,d)}sampleAndLerp(t,e,i,s,n,r,o){const a=this.P(t),l=this.P(t+1),h=this.P(a+e),u=this.P(a+e+1),c=this.P(l+e),d=this.P(l+e+1),f=tt.gradDot(this.P(h+i),s,n,r),g=tt.gradDot(this.P(c+i),s-1,n,r),p=tt.gradDot(this.P(u+i),s,n-1,r),m=tt.gradDot(this.P(d+i),s-1,n-1,r),v=tt.gradDot(this.P(h+i+1),s,n,r-1),b=tt.gradDot(this.P(c+i+1),s-1,n,r-1),S=tt.gradDot(this.P(u+i+1),s,n-1,r-1),E=tt.gradDot(this.P(d+i+1),s-1,n-1,r-1);return G(z(s),z(o),z(r),f,g,p,m,v,b,S,E)}P(t){return 255&this.p[255&t]}}class it{constructor(t,e,i){if(t instanceof K){const s=t.forkPositional();this.noiseLevels=Array(i.length);for(let t=0;t<i.length;t++)if(0!==i[t]){const i=e+t;this.noiseLevels[t]=new et(s.fromHashOf(\"octave_\"+i))}}else{if(1-e<i.length)throw new Error(\"Positive octaves are not allowed when using LegacyRandom\");this.noiseLevels=Array(i.length);for(let s=-e;s>=0;s-=1)s<i.length&&0!==i[s]?this.noiseLevels[s]=new et(t):t.consume(262)}this.amplitudes=i,this.lowestFreqInputFactor=Math.pow(2,e),this.lowestFreqValueFactor=Math.pow(2,i.length-1)/(Math.pow(2,i.length)-1)}sample(t,e,i,s=0,n=0,r=!1){let o=0,a=this.lowestFreqInputFactor,l=this.lowestFreqValueFactor;for(let h=0;h<this.noiseLevels.length;h+=1){const u=this.noiseLevels[h];u&&(o+=this.amplitudes[h]*l*u.sample(it.wrap(t*a),r?-u.yo:it.wrap(e*a),it.wrap(i*a),s*a,n*a)),a*=2,l/=2}return o}getOctaveNoise(t){return this.noiseLevels[this.noiseLevels.length-1-t]}static wrap(t){return t-33554432*Math.floor(t/33554432+.5)}}class st{constructor(t,e,i,s){this.cellWidth=i,this.cellHeight=s,this.minLimitNoise=new it(t,-15,[1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0]),this.maxLimitNoise=new it(t,-15,[1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0]),this.mainNoise=new it(t,-7,[1,1,1,1,1,0,0,0]),this.xzScale=684.412*e.xzScale,this.yScale=684.412*e.yScale,this.xzMainScale=this.xzScale/e.xzFactor,this.yMainScale=this.yScale/e.yFactor}sample(t,e,i){let s;t=Math.floor(t/this.cellWidth),e=Math.floor(e/this.cellHeight),i=Math.floor(i/this.cellWidth);let n=0,r=1;for(let o=0;o<8;o+=1){if(s=this.mainNoise.getOctaveNoise(o),s){const o=this.xzMainScale*r,a=this.yMainScale*r,l=it.wrap(t*o),h=it.wrap(e*a),u=it.wrap(i*o);n+=s.sample(l,h,u,a,e*a)/r}r/=2}n=(n/10+1)/2,r=1;let o=0,a=0;for(let l=0;l<16;l+=1){const h=this.xzScale*r,u=this.yScale*r,c=it.wrap(t*h),d=it.wrap(e*u),f=it.wrap(i*h);n<1&&(s=this.minLimitNoise.getOctaveNoise(l))&&(o+=s.sample(c,d,f,u,e*u)/r),n>0&&(s=this.maxLimitNoise.getOctaveNoise(l))&&(a+=s.sample(c,d,f,u,e*u)/r),r/=2}return H(o/512,a/512,n)/128}}!function(t){t.fromJson=function(t){var e,i,s,n,r;const o=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{xzScale:null!==(i=_.readNumber(o.xz_scale))&&void 0!==i?i:1,yScale:null!==(s=_.readNumber(o.y_scale))&&void 0!==s?s:1,xzFactor:null!==(n=_.readNumber(o.xz_factor))&&void 0!==n?n:80,yFactor:null!==(r=_.readNumber(o.y_factor))&&void 0!==r?r:80}}}(P||(P={}));class nt{constructor(t,{firstOctave:e,amplitudes:i}){this.first=new it(t,e,i),this.second=new it(t,e,i);let s=1/0,n=-1/0;for(let t=0;t<i.length;t+=1)0!==i[t]&&(s=Math.min(s,t),n=Math.max(n,t));const r=.1*(1+1/(n-s+1));this.valueFactor=1/6/r}sample(t,e,i){const s=t*nt.INPUT_FACTOR,n=e*nt.INPUT_FACTOR,r=i*nt.INPUT_FACTOR;return(this.first.sample(t,e,i)+this.second.sample(s,n,r))*this.valueFactor}}nt.INPUT_FACTOR=1.0181268882175227,function(t){t.create=function(t,e){return{firstOctave:t,amplitudes:e}},t.fromJson=function(t){var e,i,s;const n=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{firstOctave:null!==(i=_.readInt(n.firstOctave))&&void 0!==i?i:0,amplitudes:null!==(s=_.readArray(n.amplitudes,(t=>{var e;return null!==(e=_.readNumber(t))&&void 0!==e?e:0})))&&void 0!==s?s:[]}}}(R||(R={}));class rt{constructor(t,e){const i=e[e.length-1],s=-e[0]+i+1,n=new Set(e),r=new tt(t);this.noiseLevels=Array(s),i>=0&&i<s&&n.has(0)&&(this.noiseLevels[i]=r);for(let e=i+1;e<s;e+=1)e>=0&&n.has(i-e)?this.noiseLevels[e]=new tt(t):t.consume(262);if(i>0)throw new Error(\"Positive octaves are not allowed\");this.highestFreqInputFactor=Math.pow(2,i),this.highestFreqValueFactor=1/(Math.pow(2,s)-1)}sample(t,e,i){let s=0,n=this.highestFreqInputFactor,r=this.highestFreqValueFactor;for(let o=0;o<this.noiseLevels.length;o+=1){const a=this.noiseLevels[o];a&&(s+=r*a.sample2D(t*n+(i?a.xo:0),e*n+(i?a.yo:0))),n/=2,r*=2}return s}}!function(t){t.fromJson=function(e,i){var s,n,r,o;if(\"number\"==typeof e)return new ot(e);const a=null!==(s=_.readObject(e))&&void 0!==s?s:{},l=new at(i(a.coordinate)),h=null!==(n=_.readArray(a.points,(t=>{var e;return null!==(e=_.readObject(t))&&void 0!==e?e:{}})))&&void 0!==n?n:[];if(0===h.length)return new ot(0);for(const e of h){const s=null!==(r=_.readNumber(e.location))&&void 0!==r?r:0,n=t.fromJson(e.value,i),a=null!==(o=_.readNumber(e.derivative))&&void 0!==o?o:0;l.addPoint(s,n,a)}return l}}(B||(B={}));class ot{constructor(t){this.value=t}apply(){return this.value}toJson(){return this.value}}class at{constructor(t,e=[],i=[],s=[]){this.coordinate=t,this.locations=e,this.values=i,this.derivatives=s}apply(t){const e=this.coordinate.apply(t),i=X(0,this.locations.length,(t=>e<this.locations[t]))-1,s=this.locations.length-1;if(i<0)return this.values[0].apply(t)+this.derivatives[0]*(e-this.locations[0]);if(i===s)return this.values[s].apply(t)+this.derivatives[s]*(e-this.locations[s]);const n=this.locations[i],r=this.locations[i+1],o=this.derivatives[i],a=this.derivatives[i+1],l=(e-n)/(r-n),h=this.values[i].apply(t),u=this.values[i+1].apply(t),c=o*(r-n)-(u-h),d=-a*(r-n)+(u-h);return U(l,h,u)+l*(1-l)*U(l,c,d)}addPoint(t,e,i=0){return this.locations.push(t),this.values.push(\"number\"==typeof e?new ot(e):e),this.derivatives.push(i),this}toJson(){return{coordinate:this.coordinate.toJson(),points:this.locations.map(((t,e)=>({location:t,value:this.values[e].toJson(),derivative:this.derivatives[e]})))}}}const lt=t=>[(t>>16&255)/256,(t>>8&255)/256,(255&t)/256],ht=[124/256,189/256,107/256],ut=lt(6396257),ct=lt(8431445),dt=lt(4764952),ft=lt(4159204),gt=lt(8431445),pt=lt(2129968),mt=t=>[t/8,1-t/32,64*t],vt={large_fern:()=>ht,tall_grass:()=>ht,grass_block:()=>ht,fern:()=>ht,grass:()=>ht,potted_fern:()=>ht,spruce_leaves:()=>ut,birch_leaves:()=>ct,oak_leaves:()=>dt,jungle_leaves:()=>dt,acacia_leaves:()=>dt,dark_oak_leaves:()=>dt,vine:()=>dt,water:()=>ft,bubble_column:()=>ft,cauldron:()=>ft,redstone_wire:t=>{var e;return(t=>{const e=t/15;return[.6*e+(e>0?.4:.3),L(e*e*.7-.5,0,1),L(e*e*.6-.7,0,1)]})(parseInt(null!==(e=t.power)&&void 0!==e?e:\"0\"))},sugar_cane:()=>ht,attached_melon_stem:()=>gt,attached_pumpkin_stem:()=>gt,melon_stem:t=>{var e;return mt(parseInt(null!==(e=t.age)&&void 0!==e?e:\"0\"))},pumpkin_stem:t=>{var e;return mt(parseInt(null!==(e=t.age)&&void 0!==e?e:\"0\"))},lily_pad:()=>pt};var bt;function St(...t){let e=0;for(const i of t)e+=i.length;const i=new Float32Array(e);let s=0;for(const e of t)i.set(e,s),s+=e.length;return i}function Et(t,e){const s=i.create();for(let n=0;n<t.length;n+=3)s[0]=t[n],s[1]=t[n+1],s[2]=t[n+2],i.transformMat4(s,s,e),t[n]=s[0],t[n+1]=s[1],t[n+2]=s[2]}!function(t){t.rotate=function(t,e,i){let{up:s,down:n,north:r,east:o,south:a,west:l}=t;switch(i){case 90:[r,o,a,l]=[o,a,l,r];break;case 180:[r,o,a,l]=[a,l,r,o];break;case 270:[r,o,a,l]=[l,r,o,a]}switch(e){case 90:[s,r,n,a]=[r,n,a,s];break;case 180:[s,r,n,a]=[n,a,s,r];break;case 270:[s,r,n,a]=[a,s,r,n]}return{up:s,down:n,north:r,east:o,south:a,west:l}}}(bt||(bt={}));class It{constructor(t,e,i){this.id=t,this.variants=e,this.multipart=i,this.variants=e}getModelVariants(t){if(this.variants){const e=Object.keys(this.variants).filter((e=>this.matchesVariant(e,t)));if(0===e.length)return[];const i=this.variants[e[0]];return[Array.isArray(i)?i[0]:i]}if(this.multipart){return this.multipart.filter((e=>!e.when||this.matchesCase(e.when,t))).map((t=>Array.isArray(t.apply)?t.apply[0]:t.apply))}return[]}getBuffers(t,e,i,r,o,a){var l,h,u,c;const d=this.getModelVariants(e),f=[],g=[],p=[],m=[];for(const v of d){const d=bt.rotate(a,null!==(l=v.x)&&void 0!==l?l:0,null!==(h=v.y)&&void 0!==h?h:0),b=r.getBlockModel(v.model).getBuffers(t,e,i,o,d);if(v.x||v.y){const t=s.create();s.identity(t),s.translate(t,t,[8,8,8]),s.rotateY(t,t,-n.toRadian(null!==(u=v.y)&&void 0!==u?u:0)),s.rotateX(t,t,-n.toRadian(null!==(c=v.x)&&void 0!==c?c:0)),s.translate(t,t,[-8,-8,-8]),Et(b.position,t)}f.push(b.position),g.push(...b.texCoord),p.push(...b.tintColor),m.push(...b.index),o+=b.texCoord.length/2}const v=s.create();s.identity(v),s.scale(v,v,[.0625,.0625,.0625]);const b=St(...f);return Et(b,v),{position:b,texCoord:g,tintColor:p,index:m}}matchesVariant(t,e){return t.split(\",\").every((t=>{const[i,s]=t.split(\"=\");return e[i]===s}))}matchesCase(t,e){if(Array.isArray(t.OR))return t.OR.some((t=>this.matchesCase(t,e)));const i=t;return Object.keys(i).every((t=>i[t].split(\"|\").includes(e[t])))}static fromJson(t,e){return new It(t,e.variants,e.multipart)}}const wt={0:[0,3,2,3,2,1,0,1],90:[2,3,2,1,0,1,0,3],180:[2,1,0,1,0,3,2,3],270:[0,1,0,3,2,3,2,1]},At={x:[1,0,0],y:[0,1,0],z:[0,0,1]},Nt=1.41421356237,Ft={x:[1,Nt,Nt],y:[Nt,1,Nt],z:[Nt,Nt,1]};class _t{constructor(t,e,i,s){this.id=t,this.parent=e,this.textures=i,this.elements=s,this.flattened=!1}getBuffers(t,e,i,s,n){var r;const o=[],a=[],l=[],h=[];for(const u of null!==(r=this.elements)&&void 0!==r?r:[]){const r=this.getElementBuffers(t,e,u,s,i,n);o.push(r.position),a.push(...r.texCoord),l.push(...r.tintColor),h.push(...r.index),s+=r.texCoord.length/2}return{position:St(...o),texCoord:a,tintColor:l,index:h}}getElementBuffers(t,e,r,o,a,l){var h,u,c,d,f,g,p,m,v,b,S,E;const I=r.from[0],w=r.from[1],A=r.from[2],N=r.to[0],F=r.to[1],_=r.to[2],y=[],P=[],R=[],B=[],x=(i,s,n)=>{var r,l,h,u,c,d,f,g,p,m,v,b;const[S,E,I,w]=a.getTextureUV(this.getTexture(i.texture)),A=(I-S)/16,N=(w-E)/16,F=A/16,_=N/16;s[0]=(null!==(l=null===(r=i.uv)||void 0===r?void 0:r[0])&&void 0!==l?l:s[0])*A+F,s[1]=(null!==(u=null===(h=i.uv)||void 0===h?void 0:h[1])&&void 0!==u?u:s[1])*N+_,s[2]=(null!==(d=null===(c=i.uv)||void 0===c?void 0:c[2])&&void 0!==d?d:s[2])*A-F,s[3]=(null!==(g=null===(f=i.uv)||void 0===f?void 0:f[3])&&void 0!==g?g:s[3])*N-_;const x=wt[null!==(p=i.rotation)&&void 0!==p?p:0];P.push(S+s[x[0]],E+s[x[1]],S+s[x[2]],E+s[x[3]],S+s[x[4]],E+s[x[5]],S+s[x[6]],E+s[x[7]]);const T=(null!==(m=i.tintindex)&&void 0!==m?m:-1)>=0&&null!==(b=null===(v=vt[t.slice(10)])||void 0===v?void 0:v.call(vt,e))&&void 0!==b?b:[1,1,1];R.push(...T,...T,...T,...T),y.push(...n),B.push(o,o+1,o+2,o,o+2,o+3),o+=4};!(null===(u=null===(h=r.faces)||void 0===h?void 0:h.up)||void 0===u?void 0:u.texture)||r.faces.up.cullface&&l[r.faces.up.cullface]||x(r.faces.up,[I,16-_,N,16-A],[I,F,_,N,F,_,N,F,A,I,F,A]),!(null===(d=null===(c=r.faces)||void 0===c?void 0:c.down)||void 0===d?void 0:d.texture)||r.faces.down.cullface&&l[r.faces.down.cullface]||x(r.faces.down,[16-_,16-N,16-A,16-I],[I,w,A,N,w,A,N,w,_,I,w,_]),!(null===(g=null===(f=r.faces)||void 0===f?void 0:f.south)||void 0===g?void 0:g.texture)||r.faces.south.cullface&&l[r.faces.south.cullface]||x(r.faces.south,[I,16-F,N,16-w],[I,w,_,N,w,_,N,F,_,I,F,_]),!(null===(m=null===(p=r.faces)||void 0===p?void 0:p.north)||void 0===m?void 0:m.texture)||r.faces.north.cullface&&l[r.faces.north.cullface]||x(r.faces.north,[16-N,16-F,16-I,16-w],[N,w,A,I,w,A,I,F,A,N,F,A]),!(null===(b=null===(v=r.faces)||void 0===v?void 0:v.east)||void 0===b?void 0:b.texture)||r.faces.east.cullface&&l[r.faces.east.cullface]||x(r.faces.east,[16-_,16-F,16-A,16-w],[N,w,_,N,w,A,N,F,A,N,F,_]),!(null===(E=null===(S=r.faces)||void 0===S?void 0:S.west)||void 0===E?void 0:E.texture)||r.faces.west.cullface&&l[r.faces.west.cullface]||x(r.faces.west,[A,16-F,_,16-w],[I,w,A,I,w,_,I,F,_,I,F,A]);const T=s.create();if(s.identity(T),r.rotation){const t=i.fromValues(...r.rotation.origin);s.translate(T,T,t),s.rotate(T,T,n.toRadian(r.rotation.angle),At[r.rotation.axis]),r.rotation.rescale&&s.scale(T,T,Ft[r.rotation.axis]),i.negate(t,t),s.translate(T,T,t)}const C=new Float32Array(y);return Et(C,T),{position:C,texCoord:P,tintColor:R,index:B}}getTexture(t){for(var e,i;t.startsWith(\"#\");)t=null!==(i=null===(e=this.textures)||void 0===e?void 0:e[t.slice(1)])&&void 0!==i?i:\"\";return t.startsWith(\"minecraft:\")||(t=\"minecraft:\"+t),t}flatten(t){var e;if(!this.flattened&&this.parent){const i=t.getBlockModel(this.parent);if(!i)return console.warn(`parent ${this.parent} does not exist!`),void(this.flattened=!0);i.flatten(t),this.elements||(this.elements=i.elements),this.textures||(this.textures={}),Object.keys(null!==(e=i.textures)&&void 0!==e?e:{}).forEach((t=>{this.textures[t]||(this.textures[t]=i.textures[t])})),this.flattened=!0}}static fromJson(t,e){let i=e.parent;return i&&!i.startsWith(\"minecraft:\")&&(i=\"minecraft:\"+i),new _t(t,i,e.textures,e.elements)}}class yt{constructor(t,e,i){this.gl=t,this.program=this.initShaderProgram(e,i)}getProgram(){return this.program}initShaderProgram(t,e){const i=this.loadShader(this.gl.VERTEX_SHADER,t),s=this.loadShader(this.gl.FRAGMENT_SHADER,e),n=this.gl.createProgram();if(this.gl.attachShader(n,i),this.gl.attachShader(n,s),this.gl.linkProgram(n),!this.gl.getProgramParameter(n,this.gl.LINK_STATUS))throw new Error(`Unable to link shader program: ${this.gl.getProgramInfoLog(n)}`);return n}loadShader(t,e){const i=this.gl.createShader(t);if(this.gl.shaderSource(i,e),this.gl.compileShader(i),!this.gl.getShaderParameter(i,this.gl.COMPILE_STATUS)){const e=new Error(`Compiling ${t===this.gl.VERTEX_SHADER?\"vertex\":\"fragment\"} shader: ${this.gl.getShaderInfoLog(i)}`);throw this.gl.deleteShader(i),e}return i}}function Pt(t,e,i,s,n){const r=new It(\"\",{\"\":{model:\"\"}},void 0),o={getBlockModel:()=>n};return n.flatten(o),r.getBuffers(t,{},e,o,i,s)}function Rt(t,e,i,s,n,o){const a=n.up?16:[14.2,12.5,10.5,9,7,5.3,3.7,1.9,16,16,16,16,16,16,16,16][i];return Pt(`minecraft:${t}`,s,e,n,new _t(\"\",\"\",{still:`minecraft:block/${t}_still`,flow:`minecraft:block/${t}_flow`},[{from:[0,0,0],to:[16,a,16],faces:{up:{texture:\"#still\",tintindex:o,cullface:r.UP},down:{texture:\"#still\",tintindex:o,cullface:r.DOWN},north:{texture:\"#flow\",tintindex:o,cullface:r.NORTH},east:{texture:\"#flow\",tintindex:o,cullface:r.EAST},south:{texture:\"#flow\",tintindex:o,cullface:r.SOUTH},west:{texture:\"#flow\",tintindex:o,cullface:r.WEST}}}]))}const Bt={\"minecraft:water\":(t,e,i,s)=>Rt(\"water\",t,parseInt(e.level),i,s,0),\"minecraft:lava\":(t,e,i,s)=>Rt(\"lava\",t,parseInt(e.level),i,s),\"minecraft:chest\":(t,e,i)=>function(t,e,i,s){return Pt(\"minecraft:chest\",s,t,{},new _t(\"\",\"\",{0:\"minecraft:block/chest\"},[{from:[1,0,1],to:[15,14,15],faces:{up:{texture:\"#0\"},down:{texture:\"#0\"},north:{texture:\"#0\"},east:{texture:\"#0\"},south:{texture:\"#0\"},west:{texture:\"#0\"}}}]))}(t,e.facing,e.type,i)},xt=new Set(Object.keys(Bt));class Tt{constructor(t,e,i,s){var n,r;this.gl=t,this.structure=e,this.resources=i,this.chunks=[],(null==s?void 0:s.facesPerBuffer)&&console.warn(\"webgl render warning: facesPerBuffer option has been removed in favor of chunkSize\"),this.chunkSize=null!==(n=null==s?void 0:s.chunkSize)&&void 0!==n?n:16,this.useInvisibleBlockBuffer=null===(r=null==s?void 0:s.useInvisibleBlockBuffer)||void 0===r||r,this.shaderProgram=new yt(t,\"\\n attribute vec4 vertPos;\\n attribute vec2 texCoord;\\n attribute vec3 tintColor;\\n attribute vec3 normal;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vTexCoord = texCoord;\\n vTintColor = tintColor;\\n vLighting = normal.y * 0.2 + abs(normal.z) * 0.1 + 0.8;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n uniform sampler2D sampler;\\n\\n void main(void) {\\n vec4 texColor = texture2D(sampler, vTexCoord);\\n if(texColor.a < 0.01) discard;\\n gl_FragColor = vec4(texColor.xyz * vTintColor * vLighting, texColor.a);\\n }\\n\").getProgram(),this.gridShaderProgram=new yt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 vertColor;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = vertColor;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.colorShaderProgram=new yt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 blockPos;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = blockPos / 256.0;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.outlineBuffers=this.getOutlineBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers(),this.atlasTexture=this.getBlockTexture(),this.projMatrix=this.getPerspective(),this.activeShader=this.shaderProgram,this.initialize()}setStructure(t){this.structure=t,this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers()}initialize(){this.gl.enable(this.gl.DEPTH_TEST),this.gl.depthFunc(this.gl.LEQUAL),this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA),this.gl.enable(this.gl.CULL_FACE),this.gl.cullFace(this.gl.BACK)}getBlockTexture(){const t=this.gl.createTexture();return this.gl.bindTexture(this.gl.TEXTURE_2D,t),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,this.resources.getTextureAtlas()),this.gl.generateMipmap(this.gl.TEXTURE_2D),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.NEAREST),t}getPerspective(){const t=70*Math.PI/180,e=this.gl.canvas.clientWidth/this.gl.canvas.clientHeight,i=s.create();return s.perspective(i,t,e,.1,500),i}getChunk(t){const e=2*Math.abs(t[0])+(t[0]<0?1:0),i=2*Math.abs(t[1])+(t[1]<0?1:0),s=2*Math.abs(t[2])+(t[2]<0?1:0);return this.chunks[e]||(this.chunks[e]=[]),this.chunks[e][i]||(this.chunks[e][i]=[]),this.chunks[e][i][s]||(this.chunks[e][i][s]={positions:[],textureCoordinates:[],tintColors:[],blockPositions:[],normals:[],indices:[],indexOffset:0}),this.chunks[e][i][s]}updateStructureBuffers(t){var e;const n=(t,e,n)=>{const r=s.create();s.translate(r,r,e),Et(t.position,r),n.positions.push(t.position),n.textureCoordinates.push(...t.texCoord),n.tintColors.push(...t.tintColor);for(let e=0;e<t.position.length;e+=12){const s=i.fromValues(t.position[e],t.position[e+1],t.position[e+2]),r=i.fromValues(t.position[e+3],t.position[e+4],t.position[e+5]),o=i.fromValues(t.position[e+6],t.position[e+7],t.position[e+8]);i.subtract(r,r,s),i.subtract(o,o,s),i.cross(r,r,o),i.normalize(r,r),n.normals.push(...r,...r,...r,...r)}for(let i=0;i<t.texCoord.length/2;i+=1)n.blockPositions.push(...e);n.indices.push(...t.index),n.indexOffset+=t.texCoord.length/2},o=t=>{t.positions=[],t.textureCoordinates=[],t.tintColors=[],t.blockPositions=[],t.normals=[],t.indices=[],t.indexOffset=0},a=t=>{t.buffer?(this.updateBuffer(t.buffer.position,this.gl.ARRAY_BUFFER,St(...t.positions)),this.updateBuffer(t.buffer.texCoord,this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),this.updateBuffer(t.buffer.tintColor,this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),this.updateBuffer(t.buffer.normal,this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),this.updateBuffer(t.buffer.blockPos,this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),this.updateBuffer(t.buffer.index,this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),t.buffer.length=t.indices.length):t.buffer={position:this.createBuffer(this.gl.ARRAY_BUFFER,St(...t.positions)),texCoord:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),tintColor:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),blockPos:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),normal:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),index:this.createBuffer(this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),length:t.indices.length}};let l;t?t.forEach((t=>{const e=this.getChunk(t);o(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{o(t)}))))));for(const s of this.structure.getBlocks()){const o=s.state.getName(),a=s.state.getProperties(),h=null!==(e=this.resources.getDefaultBlockProperties(o))&&void 0!==e?e:{};Object.entries(h).forEach((([t,e])=>{a[t]||(a[t]=e)}));const u=[Math.floor(s.pos[0]/this.chunkSize),Math.floor(s.pos[1]/this.chunkSize),Math.floor(s.pos[2]/this.chunkSize)];if(t&&!t.some((t=>i.equals(t,u))))continue;const c=this.getChunk(u);try{const t=this.resources.getBlockDefinition(o),e={up:this.needsCull(s,r.UP),down:this.needsCull(s,r.DOWN),west:this.needsCull(s,r.WEST),east:this.needsCull(s,r.EAST),north:this.needsCull(s,r.NORTH),south:this.needsCull(s,r.SOUTH)};t&&(l=t.getBuffers(o,a,this.resources,this.resources,c.indexOffset,e),n(l,s.pos,c)),xt.has(o)&&(l=Bt[o](c.indexOffset,a,this.resources,e),n(l,s.pos,c))}catch(t){console.error(`Error rendering block ${o}`,t)}}t?t.forEach((t=>{const e=this.getChunk(t);a(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{a(t)}))))))}needsCull(t,e){var i,s;const n=null===(i=this.structure.getBlock(a.towards(t.pos,e)))||void 0===i?void 0:i.state;return!!n&&((null===(s=this.resources.getBlockFlags(n.getName()))||void 0===s?void 0:s.opaque)?!(e===r.UP&&t.state.isFluid()):t.state.isFluid()&&n.isFluid())}getGridBuffers(){const[t,e,i]=this.structure.getSize(),s=[],n=[];s.push(0,0,0,t,0,0),n.push(1,0,0,1,0,0),s.push(0,0,0,0,0,i),n.push(0,0,1,0,0,1),s.push(0,0,0,0,e,0),s.push(t,0,0,t,e,0),s.push(0,0,i,0,e,i),s.push(t,0,i,t,e,i),s.push(0,e,0,0,e,i),s.push(t,e,0,t,e,i),s.push(0,e,0,t,e,0),s.push(0,e,i,t,e,i);for(let e=1;e<=t;e+=1)s.push(e,0,0,e,0,i);for(let e=1;e<=i;e+=1)s.push(0,0,e,t,0,e);for(let e=0;e<8+t+i;e+=1)n.push(.8,.8,.8,.8,.8,.8);return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(s)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(n)),length:s.length/3}}getOutlineBuffers(){const t=[],e=[];return this.addCube(t,e,[1,1,1],[0,0,0],[1,1,1]),{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(e)),length:t.length/3}}getInvisibleBlockBuffers(){if(!this.useInvisibleBlockBuffer)return;const t=this.structure.getSize(),e=[],i=[];for(let s=0;s<t[0];s+=1)for(let n=0;n<t[1];n+=1)for(let r=0;r<t[2];r+=1){const t=this.structure.getBlock([s,n,r]);void 0!==t&&(null===t?this.addCube(e,i,[1,.25,.25],[s+.4375,n+.4375,r+.4375],[s+.5625,n+.5625,r+.5625]):\"minecraft:air\"===t.state.getName()?this.addCube(e,i,[.5,.5,1],[s+.375,n+.375,r+.375],[s+.625,n+.625,r+.625]):\"minecraft:cave_air\"===t.state.getName()&&this.addCube(e,i,[.5,1,.5],[s+.375,n+.375,r+.375],[s+.625,n+.625,r+.625]))}return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(e)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(i)),length:e.length/3}}addCube(t,e,i,s,n){t.push(s[0],s[1],s[2],s[0],s[1],n[2]),t.push(n[0],s[1],s[2],n[0],s[1],n[2]),t.push(s[0],s[1],s[2],n[0],s[1],s[2]),t.push(s[0],s[1],n[2],n[0],s[1],n[2]),t.push(s[0],s[1],s[2],s[0],n[1],s[2]),t.push(n[0],s[1],s[2],n[0],n[1],s[2]),t.push(s[0],s[1],n[2],s[0],n[1],n[2]),t.push(n[0],s[1],n[2],n[0],n[1],n[2]),t.push(s[0],n[1],s[2],s[0],n[1],n[2]),t.push(n[0],n[1],s[2],n[0],n[1],n[2]),t.push(s[0],n[1],s[2],n[0],n[1],s[2]),t.push(s[0],n[1],n[2],n[0],n[1],n[2]);for(let t=0;t<24;t+=1)e.push(...i)}createBuffer(t,e){const i=this.gl.createBuffer();return this.gl.bindBuffer(t,i),this.gl.bufferData(t,e,this.gl.DYNAMIC_DRAW),i}updateBuffer(t,e,i){this.gl.bindBuffer(e,t),this.gl.bufferData(e,i,this.gl.STATIC_DRAW)}drawGrid(t){this.setShader(this.gridShaderProgram),this.setVertexAttr(\"vertPos\",3,this.gridBuffers.position),this.setVertexAttr(\"vertColor\",3,this.gridBuffers.color),this.setUniform(\"mView\",t),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.gridBuffers.length)}drawInvisibleBlocks(t){this.useInvisibleBlockBuffer&&(this.setShader(this.gridShaderProgram),this.setVertexAttr(\"vertPos\",3,this.invisibleBlockBuffers.position),this.setVertexAttr(\"vertColor\",3,this.invisibleBlockBuffers.color),this.setUniform(\"mView\",t),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.invisibleBlockBuffers.length))}drawStructure(t){this.setShader(this.shaderProgram),this.gl.activeTexture(this.gl.TEXTURE0),this.gl.bindTexture(this.gl.TEXTURE_2D,this.atlasTexture),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(\"texCoord\",2,t.buffer.texCoord),this.setVertexAttr(\"tintColor\",3,t.buffer.tintColor),this.setVertexAttr(\"normal\",3,t.buffer.normal),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawColoredStructure(t){this.setShader(this.colorShaderProgram),this.setUniform(\"mView\",t),this.setUniform(\"mProj\",this.projMatrix),this.chunks.forEach((t=>{t.forEach((t=>{t.forEach((t=>{t.buffer&&(this.setVertexAttr(\"vertPos\",3,t.buffer.position),this.setVertexAttr(\"blockPos\",3,t.buffer.blockPos),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawOutline(t,e){this.setShader(this.gridShaderProgram),this.setVertexAttr(\"vertPos\",3,this.outlineBuffers.position),this.setVertexAttr(\"vertColor\",3,this.outlineBuffers.color);const i=s.create();s.copy(i,t),s.translate(i,i,e),this.setUniform(\"mView\",i),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.outlineBuffers.length)}setViewport(t,e,i,s){this.gl.viewport(t,e,i,s),this.projMatrix=this.getPerspective()}setShader(t){this.gl.useProgram(t),this.activeShader=t}setVertexAttr(t,e,i){const s=this.gl.getAttribLocation(this.activeShader,t);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,i),this.gl.vertexAttribPointer(s,e,this.gl.FLOAT,!1,0,0),this.gl.enableVertexAttribArray(s)}setUniform(t,e){const i=this.gl.getUniformLocation(this.activeShader,t);this.gl.uniformMatrix4fv(i,!1,e)}}\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */function Ct(t,e,i,s){return new(i||(i=Promise))((function(n,r){function o(t){try{l(s.next(t))}catch(t){r(t)}}function a(t){try{l(s.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?n(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(o,a)}l((s=s.apply(t,e||[])).next())}))}class kt{constructor(t,e){this.img=t,this.idMap=e,this.part=16/t.width}getTextureAtlas(){return this.img}getTextureUV(t){var e;return null!==(e=this.idMap[t])&&void 0!==e?e:[0,0,this.part,this.part]}static fromBlobs(t){return Ct(this,void 0,void 0,(function*(){const e=Math.sqrt(Object.keys(t).length+1),i=Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))),s=16*i,n=1/i,r=document.createElement(\"canvas\");r.width=s,r.height=s;const o=r.getContext(\"2d\");this.drawInvalidTexture(o);const a={};let l=1;return yield Promise.all(Object.keys(t).map((e=>Ct(this,void 0,void 0,(function*(){const s=l%i,r=Math.floor(l/i);l+=1,a[e]=[n*s,n*r,n*s+n,n*r+n];const h=yield createImageBitmap(t[e]);o.drawImage(h,0,0,16,16,16*s,16*r,16,16)}))))),new kt(o.getImageData(0,0,s,s),a)}))}static empty(){const t=document.createElement(\"canvas\");t.width=16,t.height=16;const e=t.getContext(\"2d\");return kt.drawInvalidTexture(e),new kt(e.getImageData(0,0,16,16),{})}static drawInvalidTexture(t){t.fillStyle=\"black\",t.fillRect(0,0,16,16),t.fillStyle=\"magenta\",t.fillRect(0,0,8,8),t.fillRect(8,8,8,8)}}var Dt,Mt,Ot,Lt,Ut,Yt,Gt,Ht,Vt,zt,jt,Jt,Xt;!function(t){function e(t,e){return\"number\"==typeof t?new i(t,null!=e?e:t):t}t.target=function(t,e,i,s,r,o){return new n(t,e,i,s,r,o)},t.parameters=function(t,i,n,r,o,a,l){return new s(e(t),e(i),e(n),e(r),e(o),e(a),l)},t.param=e;class i{constructor(t,e){this.min=t,this.max=e}distance(t){const e=(\"number\"==typeof t?t:t.min)-this.max,i=this.min-(\"number\"==typeof t?t:t.max);return e>0?e:Math.max(i,0)}union(t){return new i(Math.min(this.min,t.min),Math.max(this.max,t.max))}static fromJson(t){var e;if(\"number\"==typeof t)return new i(t,t);const[s,n]=null!==(e=_.readArray(t,(t=>_.readNumber(t))))&&void 0!==e?e:[];return new i(null!=s?s:0,null!=n?n:0)}}t.Param=i;class s{constructor(t,e,i,s,n,r,o){this.temperature=t,this.humidity=e,this.continentalness=i,this.erosion=s,this.depth=n,this.weirdness=r,this.offset=o}fittness(t){return O(this.temperature.distance(t.temperature))+O(this.humidity.distance(t.humidity))+O(this.continentalness.distance(t.continentalness))+O(this.erosion.distance(t.erosion))+O(this.depth.distance(t.depth))+O(this.weirdness.distance(t.weirdness))+O(this.offset-t.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new i(this.offset,this.offset)]}static fromJson(t){var e,n;const r=null!==(e=_.readObject(t))&&void 0!==e?e:{};return new s(i.fromJson(r.temperature),i.fromJson(r.humidity),i.fromJson(r.continentalness),i.fromJson(r.erosion),i.fromJson(r.depth),i.fromJson(r.weirdness),null!==(n=_.readInt(r.offset))&&void 0!==n?n:0)}}t.ParamPoint=s;class n{constructor(t,e,i,s,n,r){this.temperature=t,this.humidity=e,this.continentalness=i,this.erosion=s,this.depth=n,this.weirdness=r}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}t.TargetPoint=n;t.Parameters=class{constructor(t){this.things=t,this.index=new r(t)}find(t){return this.index.search(t,((t,e)=>t.distance(e)))}};class r{constructor(t){this.root=r.build(t.map((([t,e])=>new l(t,e))))}static build(t){if(1===t.length)return t[0];if(t.length<=r.CHILDREN_PER_NODE){const e=t.map((t=>{let e=0;for(let i=0;i<7;i+=1){const s=t.space[i];e+=Math.abs((s.min+s.max)/2)}return{key:e,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t));return new a(e)}let e=1/0,i=-1,s=[];for(let n=0;n<7;++n){t=r.sort(t,n,!1),s=r.bucketize(t);let o=0;for(const t of s)o+=r.area(t.space);e>o&&(e=o,i=n)}return t=r.sort(t,i,!1),s=r.bucketize(t),s=r.sort(s,i,!0),new a(s.map((t=>r.build(t.children))))}static sort(t,e,i){return t.map((t=>{const s=t.space[e],n=(s.min+s.max)/2;return{key:i?Math.abs(n):n,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t))}static bucketize(t){const e=[];let i=[];const s=Math.pow(10,Math.floor(Math.log(t.length-.01)/Math.log(10)));for(const n of t)i.push(n),i.length<s||(e.push(new a(i)),i=[]);return 0!==i.length&&e.push(new a(i)),e}static area(t){let e=0;for(const i of t)e+=Math.abs(i.max-i.min);return e}search(t,e){return this.root.search(t.toArray(),e).thing()}}r.CHILDREN_PER_NODE=10,t.RTree=r;class o{constructor(t){this.space=t}distance(t){let e=0;for(let i=0;i<7;i+=1)e+=O(this.space[i].distance(t[i]));return e}}t.RNode=o;class a extends o{constructor(t){super(a.buildSpace(t)),this.children=t}static buildSpace(t){let e=[...Array(7)].map((()=>new i(1/0,-1/0)));for(const i of t)e=[...Array(7)].map(((t,s)=>e[s].union(i.space[s])));return e}search(t,e){let i=1/0,s=null;for(const n of this.children){const r=e(n,t);if(i<=r)continue;const o=n.search(t,e),a=n==o?r:e(o,t);i<=a||(i=a,s=o)}return s}}t.RSubTree=a;class l extends o{constructor(t,e){super(t.space()),this.thing=e}search(){return this}}t.RLeaf=l}(Dt||(Dt={}));class Zt{constructor(t){this.biome=t}getBiome(){return this.biome}static fromJson(t){var e,i;const s=null!==(e=_.readObject(t))&&void 0!==e?e:{},n=null!==(i=_.readString(s.biome))&&void 0!==i?i:\"minecraft:the_void\";return new Zt(n)}}class Wt{constructor(t){this.parameters=t}getBiome(t,e,i,s){const n=s(t,e,i);return this.parameters.find(n)}static fromJson(t){var e,i;const s=null!==(e=_.readObject(t))&&void 0!==e?e:{},n=(null!==(i=_.readArray(s.biomes,(t=>{var e;return(t=>{var e;return{biome:null!==(e=_.readString(t.biome))&&void 0!==e?e:\"minecraft:the_void\",parameters:Dt.ParamPoint.fromJson(t.parameters)}})(null!==(e=_.readObject(t))&&void 0!==e?e:{})})))&&void 0!==i?i:[]).map((t=>[t.parameters,()=>t.biome]));return new Wt(new Dt.Parameters(n))}}class qt{constructor(t,e,i){this.offsetSampler=t,this.factorSampler=e,this.jaggednessSampler=i}static extractor(t){return{apply:e=>e[t],toJson:()=>t}}static fromJson(t){var e;const i=null!==(e=_.readObject(t))&&void 0!==e?e:{};return new qt(B.fromJson(i.offset,this.EXTRACTOR),B.fromJson(i.factor,this.EXTRACTOR),B.fromJson(i.jaggedness,this.EXTRACTOR))}toJson(){return{offset:this.offsetSampler.toJson(),factor:this.factorSampler.toJson(),jaggedness:this.jaggednessSampler.toJson()}}offset(t){return this.offsetSampler.apply(t)+qt.GLOBAL_OFFSET}factor(t){return this.factorSampler.apply(t)}jaggedness(t){return this.jaggednessSampler.apply(t)}static point(t,e,i){return{continents:t,erosion:e,weirdness:i,ridges:this.peaksAndValleys(i)}}static peaksAndValleys(t){return 3*-(Math.abs(Math.abs(t)-.6666667)-.33333334)}static overworld(){const t=this.buildErosionOffsetSpline(-.05,0,0,.1,0,-.03,!1,!1),e=this.buildErosionOffsetSpline(-.1,.03,.1,.1,.01,-.03,!1,!1),i=this.buildErosionOffsetSpline(-.1,.03,.1,.7,.01,-.03,!0,!0),s=this.buildErosionOffsetSpline(.3,.03,.1,1,.01,.01,!0,!0),n=new at(this.CONTINENTS).addPoint(-1.1,.044).addPoint(-1.02,-.2222).addPoint(-.51,-.2222).addPoint(-.44,-.12).addPoint(-.18,-.12).addPoint(-.16,t).addPoint(-.15,t).addPoint(-.1,e).addPoint(.25,i).addPoint(1,s),r=new at(this.CONTINENTS).addPoint(-.19,3.95).addPoint(-.15,this.getErosionFactor(6.25,!0)).addPoint(-.1,this.getErosionFactor(5.47,!0)).addPoint(.03,this.getErosionFactor(5.08,!0)).addPoint(.06,this.getErosionFactor(4.69,!1)),o=new at(this.CONTINENTS).addPoint(.11,0).addPoint(.03,this.buildErosionJaggednessSpline(1,.5,0,0)).addPoint(.65,this.buildErosionJaggednessSpline(1,1,1,0));return new qt(n,r,o)}static getErosionFactor(t,e){const i=new at(this.WEIRDNESS).addPoint(-.2,6.3).addPoint(.2,t),s=new at(this.EROSION).addPoint(-.6,i).addPoint(-.5,new at(this.WEIRDNESS).addPoint(-.05,6.3).addPoint(.05,2.67)).addPoint(-.35,i).addPoint(-.25,i).addPoint(-.1,new at(this.WEIRDNESS).addPoint(-.05,2.67).addPoint(.05,6.3)).addPoint(.03,i);if(e){const e=new at(this.WEIRDNESS).addPoint(0,t).addPoint(.1,.625),i=new at(this.RIDGES).addPoint(-.9,t).addPoint(-.69,e);s.addPoint(.35,t).addPoint(.45,i).addPoint(.55,i).addPoint(.62,t)}else{const e=new at(this.RIDGES).addPoint(-.7,i).addPoint(-.15,1.37),n=new at(this.RIDGES).addPoint(.45,i).addPoint(.7,1.56);s.addPoint(.05,n).addPoint(.4,n).addPoint(.45,e).addPoint(.55,e).addPoint(.58,t)}return s}static buildErosionOffsetSpline(t,e,i,s,n,r,o,a){const l=this.buildMountainRidgeSplineWithPoints(U(s,.6,1.5),a),h=this.buildMountainRidgeSplineWithPoints(U(s,.6,1),a),u=this.buildMountainRidgeSplineWithPoints(s,a),c=this.ridgeSpline(t-.15,.5*s,U(.5,.5,.5)*s,.5*s,.6*s,.5),d=this.ridgeSpline(t,n*s,e*s,.5*s,.6*s,.5),f=this.ridgeSpline(t,n,n,e,i,.5),g=this.ridgeSpline(t,n,n,e,i,.5),p=new at(this.RIDGES).addPoint(-1,t).addPoint(-.4,f).addPoint(0,i+.07),m=this.ridgeSpline(-.02,r,r,e,i,0),v=new at(this.EROSION).addPoint(-.85,l).addPoint(-.7,h).addPoint(-.4,u).addPoint(-.35,c).addPoint(-.1,d).addPoint(.2,f);return o&&v.addPoint(.4,g).addPoint(.45,p).addPoint(.55,p).addPoint(.58,g),v.addPoint(.7,m),v}static buildMountainRidgeSplineWithPoints(t,e){const i=new at(this.RIDGES),s=this.mountainContinentalness(-1,t,-.7),n=this.mountainContinentalness(1,t,-.7),r=this.calculateMountainRidgeZeroContinentalnessPoint(t);if(-.65<r&&r<1){const e=this.mountainContinentalness(-.65,t,-.7),o=this.mountainContinentalness(-.75,t,-.7),a=this.calculateSlope(s,o,-1,-.75);i.addPoint(-1,s,a),i.addPoint(-.75,o),i.addPoint(-.65,e);const l=this.mountainContinentalness(r,t,-.7),h=this.calculateSlope(l,n,r,1);i.addPoint(r-.01,l),i.addPoint(r,l,h),i.addPoint(1,n,h)}else{const t=this.calculateSlope(s,n,-1,1);e?(i.addPoint(-1,Math.max(.2,s)),i.addPoint(0,U(.5,s,n),t)):i.addPoint(-1,s,t),i.addPoint(1,n,t)}return i}static mountainContinentalness(t,e,i){const s=.46082947*(t+1.17)*(1-.5*(1-e))-.5*(1-e);return t<i?Math.max(s,-.2222):Math.max(s,0)}static calculateMountainRidgeZeroContinentalnessPoint(t){return.5*(1-t)/(.46082947*(1-.5*(1-t)))-1.17}static calculateSlope(t,e,i,s){return(e-t)/(s-i)}static ridgeSpline(t,e,i,s,n,r){const o=Math.max(.5*(e-t),r),a=5*(i-e);return new at(this.RIDGES).addPoint(-1,t,o).addPoint(-.4,e,Math.min(o,a)).addPoint(0,i,a).addPoint(.4,s,2*(s-i)).addPoint(1,n,.7*(n-s))}static buildErosionJaggednessSpline(t,e,i,s){const n=this.buildRidgeJaggednessSpline(t,i),r=this.buildRidgeJaggednessSpline(e,s);return new at(this.EROSION).addPoint(-1,n).addPoint(-.78,r).addPoint(-.5775,r).addPoint(-.375,0)}static buildRidgeJaggednessSpline(t,e){const i=qt.peaksAndValleys(.4),s=(i+qt.peaksAndValleys(.56666666))/2;return new at(this.RIDGES).addPoint(i,0).addPoint(s,e>0?this.buildWeirdnessJaggednessSpline(e):0).addPoint(1,t>0?this.buildWeirdnessJaggednessSpline(t):0)}static buildWeirdnessJaggednessSpline(t){return new at(qt.WEIRDNESS).addPoint(-.01,.63*t).addPoint(.01,.3*t)}}qt.GLOBAL_OFFSET=-.50375,qt.EXTRACTOR=t=>{var e;const i=null!==(e=_.readString(t))&&void 0!==e?e:\"continents\";return qt.extractor(i)},qt.CONTINENTS=qt.extractor(\"continents\"),qt.EROSION=qt.extractor(\"erosion\"),qt.WEIRDNESS=qt.extractor(\"weirdness\"),qt.RIDGES=qt.extractor(\"ridges\"),function(t){t.fromList=function(t){return(e,i,s,n)=>{for(const r of t){const t=r(e,i,s,n);if(t)return t}return null}}}(Mt||(Mt={})),function(t){function e(t){return t.ySize<<2}t.fromJson=function(t){var e,i,s,n,r,o,a,l;const h=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{minY:null!==(i=_.readInt(h.min_y))&&void 0!==i?i:0,height:null!==(s=_.readInt(h.height))&&void 0!==s?s:256,xzSize:null!==(n=_.readInt(h.size_horizontal))&&void 0!==n?n:1,ySize:null!==(r=_.readInt(h.size_vertical))&&void 0!==r?r:1,sampling:P.fromJson(h.sampling),topSlide:Lt.fromJson(h.top_slide),bottomSlide:Lt.fromJson(h.bottom_slide),terrainShaper:qt.fromJson(h.terrain_shaper),islandNoiseOverride:null!==(o=_.readBoolean(h.island_noise_override))&&void 0!==o&&o,isAmplified:null!==(a=_.readBoolean(h.amplified))&&void 0!==a&&a,hasLargeBiomes:null!==(l=_.readBoolean(h.large_biomes))&&void 0!==l&&l}},t.cellHeight=e,t.cellWidth=function(t){return t.xzSize<<2},t.cellCountY=function(t){return t.height/e(t)},t.minCellY=function(t){return Math.floor(t.minY/e(t))}}(Ot||(Ot={})),function(t){t.fromJson=function(t){var e,i,s,n;const r=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{target:null!==(i=_.readNumber(r.target))&&void 0!==i?i:0,size:null!==(s=_.readInt(r.size))&&void 0!==s?s:0,offset:null!==(n=_.readInt(r.offset))&&void 0!==n?n:0}},t.apply=function(t,e,i){if(t.size<=0)return e;const s=(i-t.offset)/t.size;return H(t.target,e,s)}}(Lt||(Lt={}));class $t{constructor(t,e){this.chunk=t,this.filler=e,this.noise000=0,this.noise001=0,this.noise100=0,this.noise101=0,this.noise010=0,this.noise011=0,this.noise110=0,this.noise111=0,this.valueXZ00=0,this.valueXZ10=0,this.valueXZ01=0,this.valueXZ11=0,this.valueZ0=0,this.valueZ1=0,this.value=0,this.slice0=$t.allocateSlice(t.cellCountY,t.cellCountXZ),this.slice1=$t.allocateSlice(t.cellCountY,t.cellCountXZ)}static allocateSlice(t,e){const i=Array(e+1);for(let s=0;s<e+1;s+=1)i[s]=Array(t+1);return i}initializeForFirstCellX(){this.fillSlice(this.slice0,this.chunk.firstCellX)}advanceCellX(t){this.fillSlice(this.slice1,this.chunk.firstCellX+t+1)}fillSlice(t,e){const i=Ot.cellWidth(this.chunk.settings.noise),s=Ot.cellHeight(this.chunk.settings.noise),n=e*i;for(let e=0;e<this.chunk.cellCountXZ+1;e+=1){const r=(this.chunk.firstCellZ+e)*i;for(let i=0;i<this.chunk.cellCountY+1;i+=1){const o=(this.chunk.cellCountNoiseMinY+i)*s;t[e][i]=this.filler(n,o,r)}}}selectCellYZ(t,e){this.noise000=this.slice0[e][t],this.noise001=this.slice0[e+1][t],this.noise100=this.slice1[e][t],this.noise101=this.slice1[e+1][t],this.noise010=this.slice0[e][t+1],this.noise011=this.slice0[e+1][t+1],this.noise110=this.slice1[e][t+1],this.noise111=this.slice1[e+1][t+1]}updateForY(t){this.valueXZ00=U(t,this.noise000,this.noise010),this.valueXZ10=U(t,this.noise100,this.noise110),this.valueXZ01=U(t,this.noise001,this.noise011),this.valueXZ11=U(t,this.noise101,this.noise111)}updateForX(t){this.valueZ0=U(t,this.valueXZ00,this.valueXZ10),this.valueZ1=U(t,this.valueXZ01,this.valueXZ11)}updateForZ(t){this.value=U(t,this.valueZ0,this.valueZ1)}sample(){return this.value}swapSlices(){[this.slice0,this.slice1]=[this.slice1,this.slice0]}}class Kt{constructor(t,e,i,s,n,r,o,a){this.cellCountXZ=t,this.cellCountY=e,this.cellCountNoiseMinY=i,this.sampler=s,this.settings=a;const l=Ot.cellWidth(a.noise);this.firstCellX=Math.floor(n/l),this.firstCellZ=Math.floor(r/l),this.firstNoiseX=n>>2,this.firstNoiseZ=r>>2,this.interpolators=[];const h=t*l>>2;this.noiseData=Array(h+1);for(let t=0;t<=h;t+=1){const e=this.firstNoiseX+t;this.noiseData[t]=Array(h+1);for(let i=0;i<=h;i+=1){const n=this.firstNoiseZ+i;this.noiseData[t][i]=s.noiseData(e,n)}}this.preliminarySurfaceLevel=new Map,this.baseNoise=s.makeBaseNoiseFiller(this,o,a.noodleCavesEnabled)}getNoiseData(t,e){return this.noiseData[t-this.firstNoiseX][e-this.firstNoiseZ]}getPreliminarySurfaceLevel(t,e){return M(this.preliminarySurfaceLevel,y.asLong(t,e),(()=>{const i=t-this.firstNoiseX,s=e-this.firstNoiseZ,n=this.noiseData.length,r=i>=0&&s>=0&&i<n&&s<n?this.noiseData[i][s].terrainInfo:this.sampler.noiseData(t,e).terrainInfo;return this.sampler.getPreliminarySurfaceLevel(t<<2,e<<2,r)}))}createNoiseInterpolator(t){const e=new $t(this,t);return this.interpolators.push(e),e.sample.bind(e)}initializeForFirstCellX(){this.interpolators.forEach((t=>t.initializeForFirstCellX()))}advanceCellX(t){this.interpolators.forEach((e=>e.advanceCellX(t)))}selectCellYZ(t,e){this.interpolators.forEach((i=>i.selectCellYZ(t,e)))}updateForY(t){this.interpolators.forEach((e=>e.updateForY(t)))}updateForX(t){this.interpolators.forEach((e=>e.updateForX(t)))}updateForZ(t){this.interpolators.forEach((e=>e.updateForZ(t)))}swapSlices(){this.interpolators.forEach((t=>t.swapSlices()))}updateNoiseAndGenerateBaseState(t,e,i){return this.baseNoise(t,e,i)}}!function(t){t.create=function(t,e,i){return{offset:t,factor:e,jaggedness:i}}}(Ut||(Ut={})),function(t){const e=new Map;function i(t,i,s){const n=Object.assign({name:`minecraft:${t}`},R.create(i,s));return e.set(t,n),n}t.TEMPERATURE=i(\"temperature\",-10,[1.5,0,1,0,0,0]),t.VEGETATION=i(\"vegetation\",-8,[1,1,0,0,0,0]),t.CONTINENTALNESS=i(\"continentalness\",-9,[1,1,2,2,2,1,1,1,1]),t.EROSION=i(\"erosion\",-9,[1,1,0,1,1]),t.TEMPERATURE_LARGE=i(\"temperature_large\",-12,[1.5,0,1,0,0,0]),t.VEGETATION_LARGE=i(\"vegetation_large\",-10,[1,1,0,0,0,0]),t.CONTINENTALNESS_LARGE=i(\"continentalness_large\",-11,[1,1,2,2,2,1,1,1,1]),t.EROSION_LARGE=i(\"erosion_large\",-11,[1,1,0,1,1]),t.RIDGE=i(\"ridge\",-7,[1,2,1,0,0,0]),t.SHIFT=i(\"offset\",-3,[1,1,1,0]),t.PILLAR=i(\"pillar\",-7,[1,1]),t.PILLAR_RARENESS=i(\"pillar_rareness\",-8,[1]),t.PILLAR_THICKNESS=i(\"pillar_thickness\",-8,[1]),t.SPAGHETTI_2D=i(\"spaghetti_2d\",-8,[1]),t.SPAGHETTI_2D_ELEVATION=i(\"spaghetti_2d_elevation\",-8,[1]),t.SPAGHETTI_2D_MODULATOR=i(\"spaghetti_2d_modulator\",-8,[1]),t.SPAGHETTI_2D_THICKNESS=i(\"spaghetti_2d_thickness\",-8,[1]),t.SPAGHETTI_3D_1=i(\"spaghetti_3d_1\",-8,[1]),t.SPAGHETTI_3D_2=i(\"spaghetti_3d_2\",-8,[1]),t.SPAGHETTI_3D_RARITY=i(\"spaghetti_3d_rarity\",-8,[1]),t.SPAGHETTI_3D_THICKNESS=i(\"spaghetti_3d_thickness\",-8,[1]),t.SPAGHETTI_ROUGHNESS=i(\"spaghetti_roughness\",-8,[1]),t.SPAGHETTI_ROUGHNESS_MODULATOR=i(\"spaghetti_roughness_modulator\",-8,[1]),t.CAVE_ENTRANCE=i(\"cave_entrance\",-7,[.4,.5,1]),t.CAVE_LAYER=i(\"cave_layer\",-8,[1]),t.CAVE_CHEESE=i(\"cave_cheese\",-8,[.5,1,2,1,2,1,0,2,0]),t.NOODLE=i(\"noodle\",-8,[1]),t.NOODLE_THICKNESS=i(\"noodle_thickness\",-8,[1]),t.NOODLE_RIDGE_A=i(\"noodle_ridge_a\",-7,[1]),t.NOODLE_RIDGE_B=i(\"noodle_ridge_b\",-7,[1]),t.JAGGED=i(\"jagged\",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),t.SURFACE=i(\"surface\",-6,[1,1,1]),t.SURFACE_SECONDARY=i(\"surface_secondary\",-6,[1,1,0,1]),t.instantiate=function(t,e){return new nt(t.fromHashOf(e.name),e)}}(Yt||(Yt={}));class Qt{constructor(t,e,i,s=!1){this.settings=t,this.isNoiseCavesEnabled=e;const n=t.hasLargeBiomes,r=(s?new q(i):K.create(i)).forkPositional();s?(this.blendedNoise=new st(new q(i),t.sampling,Ot.cellWidth(t),Ot.cellHeight(t)),this.temperatureNoise=new nt(new q(i),R.create(-7,[1,1])),this.humidityNoise=new nt(new q(i+BigInt(1)),R.create(-7,[1,1])),this.offsetNoise=new nt(new q(i+BigInt(5)),R.create(0,[0]))):(this.blendedNoise=new st(r.fromHashOf(\"minecraft:terrain\"),t.sampling,Ot.cellWidth(t),Ot.cellHeight(t)),this.temperatureNoise=Yt.instantiate(r,n?Yt.TEMPERATURE_LARGE:Yt.TEMPERATURE),this.humidityNoise=Yt.instantiate(r,n?Yt.VEGETATION_LARGE:Yt.VEGETATION),this.offsetNoise=Yt.instantiate(r,Yt.SHIFT)),this.continentalnessNoise=Yt.instantiate(r,n?Yt.CONTINENTALNESS_LARGE:Yt.CONTINENTALNESS),this.erosionNoise=Yt.instantiate(r,n?Yt.EROSION_LARGE:Yt.EROSION),this.weirdnessNoise=Yt.instantiate(r,Yt.RIDGE),this.pillarNoise=Yt.instantiate(r,Yt.PILLAR),this.pillarRarenessModulator=Yt.instantiate(r,Yt.PILLAR_RARENESS),this.pillarThicknessModulator=Yt.instantiate(r,Yt.PILLAR_THICKNESS),this.spaghetti2DNoise=Yt.instantiate(r,Yt.SPAGHETTI_2D),this.spaghetti2DElevationModulator=Yt.instantiate(r,Yt.SPAGHETTI_2D_ELEVATION),this.spaghetti2DRarityModulator=Yt.instantiate(r,Yt.SPAGHETTI_2D_MODULATOR),this.spaghetti2DThicknessModulator=Yt.instantiate(r,Yt.SPAGHETTI_2D_THICKNESS),this.spaghetti3DNoise1=Yt.instantiate(r,Yt.SPAGHETTI_3D_1),this.spaghetti3DNoise2=Yt.instantiate(r,Yt.SPAGHETTI_3D_2),this.spaghetti3DRarityModulator=Yt.instantiate(r,Yt.SPAGHETTI_3D_RARITY),this.spaghetti3DThicknessModulator=Yt.instantiate(r,Yt.SPAGHETTI_3D_THICKNESS),this.spaghettiRoughnessNoise=Yt.instantiate(r,Yt.SPAGHETTI_ROUGHNESS),this.spaghettiRoughnessModulator=Yt.instantiate(r,Yt.SPAGHETTI_ROUGHNESS_MODULATOR),this.bigEntranceNoise=Yt.instantiate(r,Yt.CAVE_ENTRANCE),this.layerNoise=Yt.instantiate(r,Yt.CAVE_LAYER),this.cheeseNoise=Yt.instantiate(r,Yt.CAVE_CHEESE);const o=t.minY+4,a=o+t.height;this.noodleToggleNoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE),o,a,-1,1),this.noodleThicknessNoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE_THICKNESS),o,a,0,1),this.noodleRidgeANoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE_RIDGE_A),o,a,0,8/3),this.noodleRidgeBNoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE_RIDGE_B),o,a,0,8/3),this.jaggedNoise=Yt.instantiate(r,Yt.JAGGED),this.shaper=t.terrainShaper,this.baseNoise=t=>t.createNoiseInterpolator(((e,i,s)=>this.calculateBlendedBaseNoise(e,i,s,t.getNoiseData(e>>2,s>>2).terrainInfo)))}yLimitedInterpolatable(t,e,i,s,n){const r=(r,o,a)=>o>i||o<e?s:t.sample(r*n,o*n,a*n);return t=>t.createNoiseInterpolator(r)}noiseData(t,e){const i=t+this.getOffset(t,0,e),s=e+this.getOffset(e,t,0),n=this.getContinentalness(i,s),r=this.getErosion(i,s),o=this.getWeirdness(i,s),a=this.terrainInfo(n,r,o);return Gt.create(i,s,n,r,o,a)}sample(t,e,i){return this.target(t,e,i,this.noiseData(t,i))}target(t,e,i,s){const n=s.shiftedX,r=e+this.getOffset(e,i,t),o=s.shiftedZ,a=this.getTemperature(n,r,o),l=this.getHumidity(n,r,o),h=this.computeDimensionDensity(e<<2,s.terrainInfo);return Dt.target(a,l,s.continentalness,s.erosion,h,s.weirdness)}terrainInfo(t,e,i){const s=qt.point(t,e,i),n=this.shaper.offset(s),r=this.shaper.factor(s),o=this.shaper.jaggedness(s);return Ut.create(n,r,o)}getOffset(t,e,i){return 4*this.offsetNoise.sample(t,e,i)}getTemperature(t,e,i){return this.temperatureNoise.sample(t,e,i)}getHumidity(t,e,i){return this.humidityNoise.sample(t,e,i)}getContinentalness(t,e){return this.continentalnessNoise.sample(t,0,e)}getErosion(t,e){return this.erosionNoise.sample(t,0,e)}getWeirdness(t,e){return this.weirdnessNoise.sample(t,0,e)}makeBaseNoiseFiller(t,e,i){const s=this.baseNoise(t),n=i?this.noodleToggleNoise(t):()=>-1,r=i?this.noodleThicknessNoise(t):()=>0,o=i?this.noodleRidgeANoise(t):()=>0,a=i?this.noodleRidgeBNoise(t):()=>0;return(t,i,l)=>{let h=s();if(h=L(.64*h,-1,1),h=h/2-h*h*h/24,n()>=0){const t=J(r(),-1,1,.05,.1),e=Math.abs(1.5*o())-t,i=Math.abs(1.5*a())-t;h=Math.min(h,Math.max(e,i))}return h+=e(t,i,l),h>0?null:x.AIR}}calculateBlendedBaseNoise(t,e,i,s){const n=this.blendedNoise.sample(t,e,i);return this.calculateBaseNoise(t,e,i,s,n,!this.isNoiseCavesEnabled,!0)}calculateBaseNoise(t,e,i,s,n,r,o){if(!this.settings.islandNoiseOverride){const r=o?this.sampleJaggedNoise(s.jaggedness,t,i):0,a=this.computeDimensionDensity(e,s),l=s.factor*(r+a);n+=l>0?4*l:l}let a=-64,l=64;if(!r&&n>=-64){const s=n-1.5625,r=this.getBigEntrances(t,e,i),o=this.getSpaghettiRoughness(t,e,i),h=this.getSpaghetti3D(t,e,i),u=Math.min(r,h+o);if(s<0)l=u;else{const r=this.getLayerizedCaverns(t,e,i);if(r>64)n=64;else{n=this.getCheese(t,e,i)+r+H(.5,0,1.28*s)}const h=this.getSpaghetti2D(t,e,i);a=this.getPillars(t,e,i),l=Math.min(u,h+o)}}return n=L(n,a,l),n=L(n=this.applySlide(n,e/Ot.cellHeight(this.settings)),-64,64)}sampleJaggedNoise(t,e,i){if(0===t)return 0;const s=this.jaggedNoise.sample(1500*e,0,1500*i);return s>0?t*s:t/2*s}computeDimensionDensity(t,e){return 1-t/128+e.offset}getBigEntrances(t,e,i){return this.bigEntranceNoise.sample(.75*t,.5*e,.75*i)+.37+H(.3,0,(e+10)/40)}getSpaghettiRoughness(t,e,i){const s=this.spaghettiRoughnessNoise.sample(t,e,i),n=j(this.spaghettiRoughnessModulator.sample(t,e,i),-1,1,0,1);return(.4-Math.abs(s))*n}getSpaghetti2D(t,e,i){const s=this.quantizeSpaghettiRarity2D(this.spaghetti2DRarityModulator.sample(2*t,e,2*i)),n=j(this.spaghetti2DThicknessModulator.sample(2*t,e,2*i),-1,1,.6,1.3),r=this.sampleWithRarity(this.spaghetti2DNoise,t,e,i,s),o=Math.abs(s*r)-.083*n,a=Ot.minCellY(this.settings),l=j(this.spaghetti2DElevationModulator.sample(t,0,i),-1,1,a,8),h=Math.abs(l-e/8)-1*n;return L(Math.max(h,o),-1,1)}getSpaghetti3D(t,e,i){const s=this.quantizeSpaghettiRarity3D(this.spaghetti3DRarityModulator.sample(2*t,e,2*i)),n=j(this.spaghetti3DThicknessModulator.sample(t,e,i),-1,1,.065,.088),r=this.sampleWithRarity(this.spaghetti3DNoise1,t,e,i,s),o=Math.abs(s*r)-n,a=this.sampleWithRarity(this.spaghetti3DNoise2,t,e,i,s),l=Math.abs(s*a)-n;return L(Math.max(o,l),-1,1)}quantizeSpaghettiRarity2D(t){return t<-.75?.5:t<-.5?.75:t<.5?1:t<.75?2:3}quantizeSpaghettiRarity3D(t){return t<-.5?.75:t<0?1:t<.5?1.5:2}sampleWithRarity(t,e,i,s,n){return t.sample(e/n,i/n,s/n)}getLayerizedCaverns(t,e,i){return 4*O(this.layerNoise.sample(t,8*e,i))}getCheese(t,e,i){return L(this.cheeseNoise.sample(t,e/1.5,i)+.27,-1,1)}getPillars(t,e,i){const s=j(this.pillarRarenessModulator.sample(t,e,i),-1,1,0,2),n=j(this.pillarThicknessModulator.sample(t,e,i),-1,1,0,1.1),r=this.pillarNoise.sample(25*t,.3*e,25*i),o=Math.pow(n,3)*(2*r-s);return o<=.03?Number.MIN_SAFE_INTEGER:o}applySlide(t,e){const i=e-Ot.minCellY(this.settings);return t=Lt.apply(this.settings.topSlide,t,Ot.cellCountY(this.settings)-i),t=Lt.apply(this.settings.bottomSlide,t,i)}getPreliminarySurfaceLevel(t,e,i){const s=Ot.minCellY(this.settings)+Ot.cellCountY(this.settings),n=Ot.minCellY(this.settings),r=Ot.cellHeight(this.settings);for(let o=s;o>=n;o-=1){const s=o*r;if(this.calculateBaseNoise(t,s,e,i,-.703125,!0,!1)>=.390625)return s}return Number.MAX_SAFE_INTEGER}}!function(t){t.create=function(t,e,i,s,n,r){return{shiftedX:t,shiftedZ:e,continentalness:i,weirdness:s,erosion:n,terrainInfo:r}}}(Gt||(Gt={})),function(t){t.fromJson=function(t){var e,i,s,n;const r=null!==(e=_.readObject(t))&&void 0!==e?e:{};return void 0!==r.absolute?(o=null!==(i=_.readNumber(r.absolute))&&void 0!==i?i:0,()=>o):void 0!==r.above_bottom?function(t){return e=>e.minY+t}(null!==(s=_.readNumber(r.above_bottom))&&void 0!==s?s:0):void 0!==r.below_top?function(t){return e=>e.maxY-t}(null!==(n=_.readNumber(r.below_top))&&void 0!==n?n:0):()=>0;var o}}(Ht||(Ht={})),function(t){t.create=function(t,e){return{minY:t,height:e,maxY:t+e-1}}}(Vt||(Vt={}));class te{constructor(t,e,i){this.rule=t,this.defaultBlock=e,this.random=K.create(i).forkPositional(),this.surfaceNoise=Yt.instantiate(this.random,Yt.SURFACE),this.surfaceSecondaryNoise=Yt.instantiate(this.random,Yt.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(t,e,i,s){const n=y.minBlockX(t.pos),r=y.minBlockZ(t.pos),o=new ee(this,t,e,i,s),l=this.rule(o);for(let e=0;e<16;e+=1){const i=n+e;for(let e=0;e<1;e+=1){const s=r+e;o.updateXZ(i,s);let n=0,h=Number.MIN_SAFE_INTEGER,u=Number.MAX_SAFE_INTEGER;for(let e=t.maxY;e>=t.minY;e-=1){const r=a.create(i,e,s),c=t.getBlockState(r);if(c.equals(x.AIR)){n=0,h=Number.MIN_SAFE_INTEGER;continue}if(c.isFluid()){h===Number.MIN_SAFE_INTEGER&&(h=e+1);continue}if(u>=e){u=Number.MIN_SAFE_INTEGER;for(let n=e-1;n>=t.minY;n-=1){const e=t.getBlockState(a.create(i,n,s));if(e.equals(x.AIR)||e.isFluid()){u=n+1;break}}}n+=1;const d=e-u+1;if(!c.equals(this.defaultBlock))continue;o.updateY(n,d,h,e);const f=l(i,e,s);f&&t.setBlockState(r,f)}}}}getSurfaceDepth(t,e){return 2.75*this.surfaceNoise.sample(t,0,e)+3+.25*this.random.at(t,0,e).nextDouble()}getSurfaceSecondary(t,e){return this.surfaceSecondaryNoise.sample(t,0,e)}getRandom(t){return M(this.positionalRandoms,t,(()=>this.random.fromHashOf(t)))}}class ee{constructor(t,e,i,s,n){this.system=t,this.chunk=e,this.noiseChunk=i,this.context=s,this.getBiome=n,this.blockX=0,this.blockY=0,this.blockZ=0,this.stoneDepthAbove=0,this.stoneDepthBelow=0,this.surfaceDepth=0,this.waterHeight=0,this.biome=()=>\"\",this.surfaceSecondary=()=>0,this.minSurfaceLevel=()=>0}updateXZ(t,e){this.blockX=t,this.blockZ=e,this.surfaceDepth=this.system.getSurfaceDepth(t,e),this.surfaceSecondary=D((()=>this.system.getSurfaceSecondary(t,e))),this.minSurfaceLevel=D((()=>this.calculateMinSurfaceLevel(t,e)))}updateY(t,e,i,s){this.blockY=s,this.stoneDepthAbove=t,this.stoneDepthBelow=e,this.waterHeight=i,this.biome=D((()=>this.getBiome(a.create(this.blockX,this.blockY,this.blockZ))))}calculateMinSurfaceLevel(t,e){const i=t>>4,s=e>>4,n=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,s<<4),r=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,s<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,s+1<<4),a=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,s+1<<4);return Math.floor(Y((15&t)/16,(15&e)/16,n,r,o,a))+this.surfaceDepth-8}}!function(t){function e(t){return()=>()=>t}function i(t){return e=>{const i=t.map((t=>t(e)));return(t,e,s)=>{for(const n of i){const i=n(t,e,s);if(i)return i}}}}function s(t,e){return i=>(s,n,r)=>{if(t(i))return e(i)(s,n,r)}}t.NOOP=()=>()=>{},t.fromJson=function(n){var r,o,a;const l=null!==(r=_.readObject(n))&&void 0!==r?r:{};switch(null===(o=_.readString(l.type))||void 0===o?void 0:o.replace(/^minecraft:/,\"\")){case\"block\":return e(x.fromJson(l.result_state));case\"sequence\":return i(null!==(a=_.readArray(l.sequence,t.fromJson))&&void 0!==a?a:[]);case\"condition\":return s(jt.fromJson(l.if_true),t.fromJson(l.then_run))}return t.NOOP},t.block=e,t.sequence=i,t.condition=s}(zt||(zt={})),function(t){function e(){return t=>t.blockY>=t.minSurfaceLevel()}function i(t){const e=new Set(t);return t=>e.has(t.biome())}function s(t){return e=>!t(e)}function n(t,e,i,s){return n=>{const r=s?n.stoneDepthBelow:n.stoneDepthAbove,o=e?n.surfaceDepth:0,a=0===i?0:j(n.surfaceSecondary(),-1,1,0,i);return r<=1+t+o+a}}function r(t,e,i){return s=>{const n=e(s.context),r=i(s.context);if(s.blockY<=n)return!0;if(s.blockY>=r)return!1;const o=s.system.getRandom(t),a=j(s.blockY,n,r,1,0);return o.nextFloat()<a}}function o(t,e,i){return s=>{if(s.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const n=i?s.stoneDepthAbove:0;return s.blockY+n>=s.waterHeight+t+s.surfaceDepth*e}}function a(t,e,i){return s=>{const n=i?s.stoneDepthAbove:0;return s.blockY+n>=t(s.context)+s.surfaceDepth*e}}t.FALSE=()=>!1,t.TRUE=()=>!0,t.fromJson=function(e){var l,h,u,c,d,f,g,p,m,v,b,S;const E=null!==(l=_.readObject(e))&&void 0!==l?l:{};switch(null===(h=_.readString(E.type))||void 0===h?void 0:h.replace(/^minecraft:/,\"\")){case\"above_preliminary_surface\":return t=>t.blockY>=t.minSurfaceLevel();case\"biome\":return i(null!==(u=_.readArray(E.biome_is,(t=>{var e;return null!==(e=_.readString(t))&&void 0!==e?e:\"\"})))&&void 0!==u?u:[]);case\"not\":return s(t.fromJson(E.invert));case\"stone_depth\":return n(null!==(c=_.readInt(E.offset))&&void 0!==c?c:0,null!==(d=_.readBoolean(E.add_surface_depth))&&void 0!==d&&d,null!==(f=_.readInt(E.secondary_depth_range))&&void 0!==f?f:0,\"ceiling\"===_.readString(E.surface_type));case\"vertical_gradient\":return r(null!==(g=_.readString(E.random_name))&&void 0!==g?g:\"\",Ht.fromJson(E.true_at_and_below),Ht.fromJson(E.false_at_and_above));case\"water\":return o(null!==(p=_.readInt(E.offset))&&void 0!==p?p:0,null!==(m=_.readInt(E.surface_depth_multiplier))&&void 0!==m?m:0,null!==(v=_.readBoolean(E.add_surface_depth))&&void 0!==v&&v);case\"y_above\":return a(Ht.fromJson(E.anchor),null!==(b=_.readInt(E.surface_depth_multiplier))&&void 0!==b?b:0,null!==(S=_.readBoolean(E.add_surface_depth))&&void 0!==S&&S)}return t.FALSE},t.abovePreliminarySurface=e,t.biome=i,t.not=s,t.stoneDepth=n,t.verticalGradient=r,t.water=o,t.yAbove=a}(jt||(jt={}));class ie{constructor(t,e,i){this.biomeSource=e,this.settings=i,this.sampler=new Qt(i.noise,i.noiseCavesEnabled,t,i.legacyRandomSource),this.noiseChunkCache=new Map,this.materialRule=Mt.fromList([(t,e,i,s)=>t.updateNoiseAndGenerateBaseState(e,i,s)]),this.surfaceSystem=new te(i.surfaceRule,i.defaultBlock,t)}fill(t){var e;const i=Math.max(t.minY,this.settings.noise.minY),s=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),n=Ot.cellWidth(this.settings.noise),r=Ot.cellHeight(this.settings.noise),o=Math.floor(16/n),a=Math.floor(i/r),l=Math.floor((s-i)/r),h=y.minBlockX(t.pos),u=y.minBlockZ(t.pos),c=this.getNoiseChunk(t);c.initializeForFirstCellX();for(let i=0;i<o;i+=1){c.advanceCellX(i);for(let s=0;s<o;s+=1){let o=t.getOrCreateSection(t.sectionsCount-1);for(let d=l-1;d>=0;d-=1){c.selectCellYZ(d,s);for(let l=r-1;l>=0;l-=1){const f=(a+d)*r+l,g=15&f,p=t.getSectionIndex(f);t.getSectionIndex(o.minBlockY)!==p&&(o=t.getOrCreateSection(p));const m=l/r;c.updateForY(m);for(let t=0;t<n;t+=1){const r=h+i*n+t,a=15&r,l=t/n;c.updateForX(l);for(let t=0;t<n;t+=1){const i=u+s*n+t,l=15&i,h=t/n;c.updateForZ(h);let d=null!==(e=this.materialRule(c,r,f,i))&&void 0!==e?e:this.settings.defaultBlock;if(d.equals(x.AIR)){if(!(f<this.settings.seaLevel))continue;d=this.settings.defaultFluid}o.setBlockState(a,g,l,d)}}}}}c.swapSlices()}}buildSurface(t,e=\"minecraft:plains\"){const i=this.getNoiseChunk(t),s=Vt.create(this.settings.noise.minY,this.settings.noise.height);this.surfaceSystem.buildSurface(t,i,s,(()=>e))}getNoiseChunk(t){return M(this.noiseChunkCache,y.toLong(t.pos),(()=>{const e=Math.max(t.minY,this.settings.noise.minY),i=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),s=Ot.cellWidth(this.settings.noise),n=Ot.cellHeight(this.settings.noise),r=Math.floor(16/s),o=Math.floor(e/n),a=Math.floor((i-e)/n),l=y.minBlockX(t.pos),h=y.minBlockZ(t.pos);return new Kt(r,a,o,this.sampler,l,h,(()=>0),this.settings)}))}}!function(t){t.fromJson=function(t){var e,i,s,n,r,o,a,l,h,u,c;const d=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{structures:Xt.fromJson(d.structures),surfaceRule:zt.fromJson(d.surface_rule),noise:Ot.fromJson(d.noise),defaultBlock:x.fromJson(d.default_block),defaultFluid:x.fromJson(d.default_fluid),bedrockRoofPosition:null!==(i=_.readInt(d.bedrock_roof_position))&&void 0!==i?i:0,bedrockFloorPosition:null!==(s=_.readInt(d.bedrock_floor_position))&&void 0!==s?s:0,seaLevel:null!==(n=_.readInt(d.sea_level))&&void 0!==n?n:0,disableMobGeneration:null!==(r=_.readBoolean(d.disable_mob_generation))&&void 0!==r&&r,aquifersEnabled:null!==(o=_.readBoolean(d.aquifers_enabled))&&void 0!==o&&o,noiseCavesEnabled:null!==(a=_.readBoolean(d.noise_caves_enabled))&&void 0!==a&&a,deepslateEnabled:null!==(l=_.readBoolean(d.deepslate_enabled))&&void 0!==l&&l,oreVeinsEnabled:null!==(h=_.readBoolean(d.ore_veins_enabled))&&void 0!==h&&h,noodleCavesEnabled:null!==(u=_.readBoolean(d.noodle_caves_enabled))&&void 0!==u&&u,legacyRandomSource:null!==(c=_.readBoolean(d.legacy_random_source))&&void 0!==c&&c}}}(Jt||(Jt={})),function(t){t.fromJson=function(t){var e;const i=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{stronghold:_.compose(i.stronghold,_.readObject,(t=>{var e,i,s;return{distance:null!==(e=_.readInt(t.distance))&&void 0!==e?e:0,spread:null!==(i=_.readInt(t.spread))&&void 0!==i?i:0,count:null!==(s=_.readInt(t.count))&&void 0!==s?s:0}})),structures:_.readMap(i.structures,(t=>{var e;return(t=>{var e,i,s;return{spacing:null!==(e=_.readInt(t.spacing))&&void 0!==e?e:0,separation:null!==(i=_.readInt(t.separation))&&void 0!==i?i:0,salt:null!==(s=_.readInt(t.salt))&&void 0!==s?s:0}})(null!==(e=_.readObject(t))&&void 0!==e?e:{})}))}}}(Xt||(Xt={}));export{st as BlendedNoise,vt as BlockColors,It as BlockDefinition,_t as BlockModel,a as BlockPos,x as BlockState,C as Chunk,y as ChunkPos,T as ChunkSection,Dt as Climate,ot as ConstantProvider,r as Direction,Zt as FixedBiome,Gt as FlatNoiseData,et as ImprovedNoise,_ as Json,$ as LegacyPositionalRandom,q as LegacyRandom,Mt as MaterialRule,Wt as MultiNoise,u as NbtReader,c as NbtWriter,Kt as NoiseChunk,ie as NoiseChunkGenerator,Jt as NoiseGeneratorSettings,$t as NoiseInterpolator,R as NoiseParameters,Qt as NoiseSampler,P as NoiseSamplingSettings,Ot as NoiseSettings,Lt as NoiseSlideSettings,Yt as Noises,nt as NormalNoise,B as NumberProvider,it as PerlinNoise,rt as PerlinSimplexNoise,tt as SimplexNoise,at as Spline,k as Structure,Tt as StructureRenderer,Xt as StructureSettings,jt as SurfaceCondition,ee as SurfaceContext,zt as SurfaceRule,te as SurfaceSystem,Ut as TerrainInfo,qt as TerrainShaper,kt as TextureAtlas,Ht as VerticalAnchor,Vt as WorldgenContext,Q as XoroshiroPositionalRandom,K as XoroshiroRandom,X as binarySearch,L as clamp,H as clampedLerp,J as clampedMap,M as computeIfAbsent,N as getListTag,F as getOptional,Z as getSeed,A as getTag,V as inverseLerp,D as lazy,U as lerp,Y as lerp2,G as lerp3,W as longfromBytes,j as map,g as read,m as readChunk,f as readCompressed,p as readRegion,d as readUncompressed,z as smoothstep,O as square,h as tagNames,l as tagTypes,S as write,I as writeChunk,b as writeCompressed,E as writeRegion,v as writeUncompressed};\n//# sourceMappingURL=deepslate.esm.js.map\n","import { LegacyRandom, PerlinNoise } from 'deepslate'\nimport { clampedLerp, lerp2 } from '../../Utils'\n\nexport class NoiseChunkGenerator {\n\tprivate readonly minLimitPerlinNoise: PerlinNoise\n\tprivate readonly maxLimitPerlinNoise: PerlinNoise\n\tprivate readonly mainPerlinNoise: PerlinNoise\n\tprivate readonly depthNoise: PerlinNoise\n\n\tprivate settings: any = {}\n\tprivate chunkWidth: number = 4\n\tprivate chunkHeight: number = 4\n\tprivate chunkCountY: number = 32\n\tprivate biomeDepth: number = 0.1\n\tprivate biomeScale: number = 0.2\n\n\tprivate noiseColumnCache: (number[] | null)[] = []\n\tprivate xOffset: number = 0\n\n\tconstructor(seed: bigint) {\n\t\tconst random = new LegacyRandom(seed)\n\t\tthis.minLimitPerlinNoise = new PerlinNoise(random, -15, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])\n\t\tthis.maxLimitPerlinNoise = new PerlinNoise(random, -15, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])\n\t\tthis.mainPerlinNoise = new PerlinNoise(random, -7, [1, 1, 1, 1, 1, 1, 1, 1])\n\t\tthis.depthNoise = new PerlinNoise(random, -15, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])\n\t}\n\n\tpublic reset(settings: any, depth: number, scale: number, xOffset: number, width: number) {\n\t\tthis.settings = settings\n\t\tthis.chunkWidth = settings.size_horizontal * 4\n\t\tthis.chunkHeight = settings.size_vertical * 4\n\t\tthis.chunkCountY = Math.floor(settings.height / this.chunkHeight)\n\n\t\tif (settings.amplified && depth > 0) {\n\t\t\tdepth = 1 + depth * 2\n\t\t\tscale = 1 + scale * 4\n\t\t}\n\t\tthis.biomeDepth = 0.265625 * (depth * 0.5 - 0.125)\n\t\tthis.biomeScale = 96.0 / (scale * 0.9 + 0.1)\n\n\t\tthis.noiseColumnCache = Array(width).fill(null)\n\t\tthis.xOffset = xOffset\n\t}\n \n\tpublic iterateNoiseColumn(x: number): number[] {\n\t\tconst data = Array(this.chunkCountY * this.chunkHeight)\n\t\tconst cx = Math.floor(x / this.chunkWidth)\n\t\tconst ox = Math.floor(x % this.chunkWidth) / this.chunkWidth\n\t\tconst noise1 = this.fillNoiseColumn(cx)\n\t\tconst noise2 = this.fillNoiseColumn(cx + 1)\n\n\t\tfor (let y = this.chunkCountY - 1; y >= 0; y -= 1) {\n\t\t\tfor (let yy = this.chunkHeight; yy >= 0; yy -= 1) {\n\t\t\t\tconst oy = yy / this.chunkHeight\n\t\t\t\tconst i = y * this.chunkHeight + yy\n\t\t\t\tdata[i] = lerp2(oy, ox, noise1[y], noise1[y+1], noise2[y], noise2[y+1])\n\t\t\t}\n\t\t}\n\t\treturn data\n\t}\n\n\tprivate fillNoiseColumn(x: number): number[] {\n\t\tconst cachedColumn = this.noiseColumnCache[x - this.xOffset]\n\t\tif (cachedColumn) return cachedColumn\n\n\t\tconst data = Array(this.chunkCountY + 1)\n\n\t\tconst xzScale = 684.412 * this.settings.sampling.xz_scale\n\t\tconst yScale = 684.412 * this.settings.sampling.y_scale\n\t\tconst xzFactor = xzScale / this.settings.sampling.xz_factor\n\t\tconst yFactor = yScale / this.settings.sampling.y_factor\n\t\tconst randomDensity = this.settings.random_density_offset ? this.getRandomDensity(x) : 0\n\n\t\tfor (let y = 0; y <= this.chunkCountY; y += 1) {\n\t\t\tlet noise = this.sampleAndClampNoise(x, y, this.mainPerlinNoise.getOctaveNoise(0)!.zo, xzScale, yScale, xzFactor, yFactor)\n\t\t\tconst yOffset = 1 - y * 2 / this.chunkCountY + randomDensity\n\t\t\tconst density = yOffset * this.settings.density_factor + this.settings.density_offset\n\t\t\tconst falloff = (density + this.biomeDepth) * this.biomeScale\n\t\t\tnoise += falloff * (falloff > 0 ? 4 : 1)\n\n\t\t\tif (this.settings.top_slide.size > 0) {\n\t\t\t\tnoise = clampedLerp(\n\t\t\t\t\tthis.settings.top_slide.target,\n\t\t\t\t\tnoise,\n\t\t\t\t\t(this.chunkCountY - y - (this.settings.top_slide.offset)) / (this.settings.top_slide.size)\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tif (this.settings.bottom_slide.size > 0) {\n\t\t\t\tnoise = clampedLerp(\n\t\t\t\t\tthis.settings.bottom_slide.target,\n\t\t\t\t\tnoise,\n\t\t\t\t\t(y - (this.settings.bottom_slide.offset)) / (this.settings.bottom_slide.size)\n\t\t\t\t)\n\t\t\t}\n\t\t\tdata[y] = noise\n\t\t}\n\n\t\tthis.noiseColumnCache[x - this.xOffset] = data\n\t\treturn data\n\t}\n\n\tprivate getRandomDensity(x: number): number {\n\t\tconst noise = this.depthNoise.sample(x * 200, 10, this.depthNoise.getOctaveNoise(0)!.zo, 1, 0, true)\n\t\tconst a = (noise < 0) ? -noise * 0.3 : noise\n\t\tconst b = a * 24.575625 - 2\n\t\treturn (b < 0) ? b * 0.009486607142857142 : Math.min(b, 1) * 0.006640625\n\t}\n\n\tprivate sampleAndClampNoise(x: number, y: number, z: number, xzScale: number, yScale: number, xzFactor: number, yFactor: number): number {\n\t\tlet a = 0\n\t\tlet b = 0\n\t\tlet c = 0\n\t\tlet d = 1\n\n\t\tfor (let i = 0; i < 16; i += 1) {\n\t\t\tconst x2 = PerlinNoise.wrap(x * xzScale * d)\n\t\t\tconst y2 = PerlinNoise.wrap(y * yScale * d)\n\t\t\tconst z2 = PerlinNoise.wrap(z * xzScale * d)\n\t\t\tconst e = yScale * d\n\n\t\t\tconst minLimitNoise = this.minLimitPerlinNoise.getOctaveNoise(i)\n\t\t\tif (minLimitNoise) {\n\t\t\t\ta += minLimitNoise.sample(x2, y2, z2, e, y * e) / d\n\t\t\t}\n\n\t\t\tconst maxLimitNoise = this.maxLimitPerlinNoise.getOctaveNoise(i)\n\t\t\tif (maxLimitNoise) {\n\t\t\t\tb += maxLimitNoise.sample(x2, y2, z2, e, y * e) / d\n\t\t\t}\n\n\t\t\tif (i < 8) {\n\t\t\t\tconst mainNoise = this.mainPerlinNoise.getOctaveNoise(i)\n\t\t\t\tif (mainNoise) {\n\t\t\t\t\tc += mainNoise.sample(\n\t\t\t\t\t\tPerlinNoise.wrap(x * xzFactor * d),\n\t\t\t\t\t\tPerlinNoise.wrap(y * yFactor * d),\n\t\t\t\t\t\tPerlinNoise.wrap(z * xzFactor * d),\n\t\t\t\t\t\tyFactor * d,\n\t\t\t\t\t\ty * yFactor * d \n\t\t\t\t\t) / d\n\t\t\t\t}\n\t\t\t}\n\n\t\t\td /= 2\n\t\t}\n\n\t\treturn clampedLerp(a / 512, b / 512, (c / 10 + 1) / 2)\n\t}\n}\n","import { DataModel } from '@mcschema/core'\nimport type { BlockState } from 'deepslate'\nimport { BlockPos, Chunk, ChunkPos, clampedMap, DensityFunction, FixedBiome, Identifier, NoiseChunkGenerator, NoiseGeneratorSettings, NoiseParameters, NoiseRouter, NoiseSettings, Registry, WorldgenRegistries, XoroshiroRandom } from 'deepslate'\nimport * as deepslate18 from 'deepslate-1.18'\nimport type { VersionId } from '../services'\nimport { checkVersion, fetchAllPresets } from '../services'\nimport { deepClone, deepEqual } from '../Utils'\nimport { NoiseChunkGenerator as OldNoiseChunkGenerator } from './noise/NoiseChunkGenerator'\n\nexport type NoiseSettingsOptions = {\n\tbiome?: string,\n\tbiomeScale?: number,\n\tbiomeDepth?: number,\n\toffset: number,\n\twidth: number,\n\tseed: bigint,\n\tversion: VersionId,\n}\n\nconst Z = 0\n\nconst colors: Record<string, [number, number, number]> = {\n\t'minecraft:air': [150, 160, 170],\n\t'minecraft:water': [20, 80, 170],\n\t'minecraft:lava': [200, 100, 0],\n\t'minecraft:stone': [55, 55, 55],\n\t'minecraft:deepslate': [34, 34, 36],\n\t'minecraft:bedrock': [10, 10, 10],\n\t'minecraft:grass_block': [47, 120, 23],\n\t'minecraft:dirt': [64, 40, 8],\n\t'minecraft:gravel': [70, 70, 70],\n\t'minecraft:sand': [196, 180, 77],\n\t'minecraft:sandstone': [148, 135, 52],\n\t'minecraft:netherrack': [100, 40, 40],\n\t'minecraft:crimson_nylium': [144, 22, 22],\n\t'minecraft:warped_nylium': [28, 115, 113],\n\t'minecraft:basalt': [73, 74, 85],\n\t'minecraft:end_stone': [200, 200, 140],\n}\n\nlet cacheState: any\nlet generatorCache: NoiseChunkGenerator\nlet chunkCache: Chunk[] = []\nconst registryCache = new Map<VersionId, Registry<Registry<any>>>()\n\nexport async function noiseSettings(state: any, img: ImageData, options: NoiseSettingsOptions) {\n\tif (checkVersion(options.version, '1.18')) {\n\t\tif (checkVersion(options.version, '1.18.2')) {\n\t\t\tawait initRegistries(options.version)\n\t\t}\n\n\t\tconst { settings, generator } = getCached(state, options)\n\n\t\tconst slice = new LevelSlice(-options.offset, options.width, settings.noise.minY, settings.noise.height)\n\t\tslice.generate(generator, options.biome)\n\n\t\tconst data = img.data\n\t\tfor (let x = 0; x < options.width; x += 1) {\n\t\t\tfor (let y = 0; y < settings.noise.height; y += 1) {\n\t\t\t\tconst i = x * 4 + (settings.noise.height-y-1) * 4 * img.width\n\t\t\t\tconst state = slice.getBlockState([x - options.offset, y + settings.noise.minY, Z])\n\t\t\t\tconst color = colors[state.getName().toString()] ?? [0, 0, 0]\n\t\t\t\tdata[i] = color[0]\n\t\t\t\tdata[i + 1] = color[1]\n\t\t\t\tdata[i + 2] = color[2]\n\t\t\t\tdata[i + 3] = 255\n\t\t\t}\n\t\t}\n\t\treturn\n\t}\n\n\tconst generator = new OldNoiseChunkGenerator(options.seed)\n\tgenerator.reset(state.noise, options.biomeDepth ?? 0, options.biomeScale ?? 0, options.offset, options.width)\n\tconst data = img.data\n\tconst row = img.width * 4\n\tfor (let x = 0; x < options.width; x += 1) {\n\t\tconst noise = generator.iterateNoiseColumn(x - options.offset).reverse()\n\t\tfor (let y = 0; y < state.noise.height; y += 1) {\n\t\t\tconst i = y * row + x * 4\n\t\t\tconst color = getColor(noise, y)\n\t\t\tdata[i] = color\n\t\t\tdata[i + 1] = color\n\t\t\tdata[i + 2] = color\n\t\t\tdata[i + 3] = 255\n\t\t}\n\t}\n}\n\nexport function getNoiseBlock(x: number, y: number) {\n\tconst chunk = chunkCache.find(c => ChunkPos.minBlockX(c.pos) <= x && ChunkPos.maxBlockX(c.pos) >= x)\n\tif (!chunk) {\n\t\treturn undefined\n\t}\n\treturn chunk.getBlockState(BlockPos.create(x, y, Z))\n}\n\nexport async function densityFunction(state: any, img: ImageData, options: NoiseSettingsOptions) {\n\tconst { fn, settings } = await createDensityFunction(state, options)\n\n\tconst arr = Array(options.width * settings.height)\n\tlet min = Infinity\n\tlet max = -Infinity\n\tfor (let x = 0; x < options.width; x += 1) {\n\t\tfor (let y = 0; y < settings.height; y += 1) {\n\t\t\tconst i = x + (settings.height-y-1) * options.width\n\t\t\tconst density = fn.compute(DensityFunction.context(x - options.offset, y, 0))\n\t\t\tmin = Math.min(min, density)\n\t\t\tmax = Math.max(max, density)\n\t\t\tarr[i] = density\n\t\t}\n\t}\n\n\tconst data = img.data\n\tfor (let i = 0; i < options.width * settings.height; i += 1) {\n\t\tconst color = Math.floor(clampedMap(arr[i], min, max, 0, 256))\n\t\tdata[4 * i] = color\n\t\tdata[4 * i + 1] = color\n\t\tdata[4 * i + 2] = color\n\t\tdata[4 * i + 3] = 255\n\t}\n}\n\nasync function createDensityFunction(state: any, options: NoiseSettingsOptions) {\n\tawait initRegistries(options.version)\n\n\tconst random = XoroshiroRandom.create(options.seed).forkPositional()\n\tconst settings = NoiseSettings.fromJson({\n\t\tmin_y: -64,\n\t\theight: 384,\n\t\tsize_horizontal: 1,\n\t\tsize_vertical: 2,\n\t\tsampling: { xz_scale: 1, y_scale: 1, xz_factor: 80, y_factor: 160 },\n\t\tbottom_slide: { target: 0.1171875, size: 3, offset: 0 },\n\t\ttop_slide: { target: -0.078125, size: 2, offset: 8 },\n\t\tterrain_shaper: { offset: 0.044, factor: 4, jaggedness: 0 },\n\t})\n\tconst originalFn = DensityFunction.fromJson(state)\n\tconst fn = originalFn.mapAll(new NoiseRouter.Visitor(random, settings))\n\n\treturn {\n\t\tfn,\n\t\tsettings,\n\t}\n}\n\nconst Registries: [string, { fromJson(obj: unknown): any}][] = [\n\t['worldgen/noise', NoiseParameters],\n\t['worldgen/density_function', DensityFunction],\n]\n\nasync function initRegistries(version: VersionId) {\n\tconst rootRegistries = registryCache.get(version) ?? new Registry(new Identifier('misode', 'temp'))\n\tif (!registryCache.has(version)) {\n\t\tawait Promise.all(Registries.map(([id, c]) => fetchRegistry(version, rootRegistries, id, c)))\n\t\tregistryCache.set(version, rootRegistries)\n\t}\n\tWorldgenRegistries.DENSITY_FUNCTION.clear().assign(rootRegistries.getOrThrow(Identifier.create('worldgen/density_function')))\n\tWorldgenRegistries.NOISE.clear().assign(rootRegistries.getOrThrow(Identifier.create('worldgen/noise')))\n}\n\nasync function fetchRegistry<T extends { fromJson(obj: unknown): T }>(version: VersionId, root: Registry<Registry<unknown>>, id: string, clazz: T) {\n\tconst entries = await fetchAllPresets(version, id)\n\tconst registry = new Registry<typeof clazz>(Identifier.create(id))\n\tfor (const [key, value] of entries.entries()) {\n\t\tregistry.register(Identifier.parse(key), clazz.fromJson(value))\n\t}\n\troot.register(registry.key, registry)\n}\n\nfunction getCached(state: unknown, options: NoiseSettingsOptions) {\n\tconst settings = NoiseGeneratorSettings.fromJson(DataModel.unwrapLists(state))\n\n\tconst newState = [state, `${options.seed}`, options.biome]\n\tif (!deepEqual(newState, cacheState)) {\n\t\tcacheState = deepClone(newState)\n\t\tchunkCache = []\n\t\tif (checkVersion(options.version, '1.18.2')) {\n\t\t\tconst biomeSource = new FixedBiome(Identifier.create('unknown'))\n\t\t\tgeneratorCache = new NoiseChunkGenerator(options.seed, biomeSource, settings)\n\t\t} else {\n\t\t\tconst biomeSource = new deepslate18.FixedBiome('unknown')\n\t\t\tgeneratorCache = new deepslate18.NoiseChunkGenerator(options.seed, biomeSource, settings as any) as any\n\t\t}\n\t}\n\treturn {\n\t\tsettings,\n\t\tgenerator: generatorCache,\n\t}\n}\n\nfunction getColor(noise: number[], y: number): number {\n\tif (noise[y] > 0) {\n\t\treturn 0\n\t}\n\tif (noise[y+1] > 0) {\n\t\treturn 150\n\t}\n\treturn 255\n}\n\nclass LevelSlice {\n\tprivate readonly chunks: Chunk[]\n\tprivate readonly done: boolean[]\n\n\tconstructor(\n\t\tprivate readonly minX: number,\n\t\twidth: number,\n\t\tminY: number,\n\t\theight: number,\n\t) {\n\t\tthis.done = []\n\t\tthis.chunks = [...Array(Math.ceil(width / 16) + 1)]\n\t\t\t.map((_, i) => {\n\t\t\t\tconst x = (minX >> 4) + i\n\t\t\t\tconst cached = chunkCache.find(c => c.pos[0] === x)\n\t\t\t\tif (cached) {\n\t\t\t\t\tthis.done[i] = true\n\t\t\t\t\treturn cached\n\t\t\t\t}\n\t\t\t\treturn new Chunk(minY, height, ChunkPos.create(x, Z >> 4))\n\t\t\t})\n\t}\n\n\tpublic generate(generator: NoiseChunkGenerator, forcedBiome?: string) {\n\t\tthis.chunks.forEach((chunk, i) => {\n\t\t\tif (!this.done[i]) {\n\t\t\t\tgenerator.fill(chunk, true)\n\t\t\t\tgenerator.buildSurface(chunk, forcedBiome)\n\t\t\t\tthis.done[i] = true\n\t\t\t\tchunkCache.push(chunk)\n\t\t\t}\n\t\t})\n\t}\n\n\tpublic getBlockState(pos: BlockPos): BlockState {\n\t\tconst chunkIndex = (pos[0] >> 4) - (this.minX >> 4)\n\t\treturn this.chunks[chunkIndex].getBlockState(pos)\n\t}\n}\n","import { DataModel } from '@mcschema/core'\nimport { LegacyRandom, NoiseParameters, NormalNoise } from 'deepslate'\nimport type { VersionId } from '../services'\n\nexport type NoiseOptions = {\n\toffset: [number, number],\n\tscale: number,\n\tseed: bigint,\n\tversion: VersionId,\n}\n\nexport function normalNoise(state: any, img: ImageData, options: NoiseOptions) {\n\tconst random = new LegacyRandom(options.seed)\n\tconst params = NoiseParameters.fromJson(DataModel.unwrapLists(state))\n\tconst noise = new NormalNoise(random, params)\n\n\tconst ox = -options.offset[0] - 100\n\tconst oz = -options.offset[1] - 100\n\tconst data = img.data\n\tfor (let x = 0; x < 256; x += 1) {\n\t\tfor (let y = 0; y < 256; y += 1) {\n\t\t\tconst i = x * 4 + y * 4 * 256\n\t\t\tconst xx = (x + ox) * options.scale\n\t\t\tconst yy = (y + oz) * options.scale\n\t\t\tconst color = (noise.sample(xx, yy, 0) + 1) * 128\n\t\t\tdata[i] = color\n\t\t\tdata[i + 1] = color\n\t\t\tdata[i + 2] = color\n\t\t\tdata[i + 3] = 255\n\t\t}\n\t}\n}\n","import { Path } from '@mcschema/core'\nimport type { NoiseParameters } from 'deepslate'\nimport { useEffect, useMemo, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { biomeMap, getBiome } from '../../previews'\nimport { newSeed, randomSeed } from '../../Utils'\n\nconst LAYERS = ['biomes', 'temperature', 'humidity', 'continentalness', 'erosion', 'weirdness'] as const\n\nexport const BiomeSourcePreview = ({ model, data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [configuredSeed] = useState(randomSeed())\n\tconst [scale, setScale] = useState(2)\n\tconst [focused, setFocused] = useState<{[k: string]: number | string} | undefined>(undefined)\n\tconst [layers, setLayers] = useState(new Set<typeof LAYERS[number]>(['biomes']))\n\tconst offset = useRef<[number, number]>([0, 0])\n\tconst res = useRef(1)\n\tconst refineTimeout = useRef<number>(undefined)\n\n\tconst seed = BigInt(model.get(new Path(['generator', 'seed'])) ?? configuredSeed)\n\tconst octaves = useMemo(() => {\n\t\tif (!shown) return undefined\n\t\treturn getOctaves(model.get(new Path(['generator', 'settings'])))\n\t}, [shown])\n\tconst state = shown ? calculateState(data, octaves!) : ''\n\tconst type: string = data.type?.replace(/^minecraft:/, '')\n\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [200 / res.current, 200 / res.current]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { octaves: octaves!, biomeColors: {}, layers, offset: offset.current, scale, seed, res: res.current, version }\n\t\t\tawait biomeMap(data, img, options)\n\t\t\tif (res.current === 4) {\n\t\t\t\tclearTimeout(refineTimeout.current)\n\t\t\t\trefineTimeout.current = setTimeout(() => {\n\t\t\t\t\tres.current = 1\n\t\t\t\t\tredraw()\n\t\t\t\t}, 150) as any\n\t\t\t}\n\t\t},\n\t\tasync onDrag(dx, dy) {\n\t\t\toffset.current[0] = offset.current[0] + dx * 200\n\t\t\toffset.current[1] = offset.current[1] + dy * 200\n\t\t\tclearTimeout(refineTimeout.current)\n\t\t\tres.current = type === 'multi_noise' ? 4 : 1\n\t\t\tredraw()\n\t\t},\n\t\tasync onHover(x, y) {\n\t\t\tconst options = { octaves: octaves!, biomeColors: {}, layers, offset: offset.current, scale, seed: configuredSeed, 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, configuredSeed, layers])\n\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tres.current = type === 'multi_noise' ? 4 : 1\n\t\t\tredraw()\n\t\t}\n\t}, [state, scale, configuredSeed, layers, shown])\n\n\tconst changeScale = (newScale: number) => {\n\t\toffset.current[0] = offset.current[0] * scale / newScale\n\t\toffset.current[1] = offset.current[1] * scale / newScale\n\t\tsetScale(newScale)\n\t}\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t{focused && <Btn label={focused.biome as string} class=\"no-pointer\" />}\n\t\t\t{type === 'multi_noise' &&\n\t\t\t\t<BtnMenu icon=\"stack\" tooltip={locale('configure_layers')}>\n\t\t\t\t\t{LAYERS.map(name => {\n\t\t\t\t\t\tconst enabled = layers.has(name)\n\t\t\t\t\t\treturn <Btn label={locale(`layer.${name}`)} \n\t\t\t\t\t\t\tactive={enabled}\n\t\t\t\t\t\t\ttooltip={enabled ? locale('enabled') : locale('disabled')}\n\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\tsetLayers(new Set([name]))\n\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t}} />\n\t\t\t\t\t})}\n\t\t\t\t</BtnMenu>}\n\t\t\t{(type === 'multi_noise' || type === 'checkerboard') && <>\n\t\t\t\t<Btn icon=\"dash\" tooltip={locale('zoom_out')}\n\t\t\t\t\tonClick={() => changeScale(scale * 1.5)} />\n\t\t\t\t<Btn icon=\"plus\" tooltip={locale('zoom_in')}\n\t\t\t\t\tonClick={() => changeScale(scale / 1.5)} />\n\t\t\t</>}\n\t\t\t{type === 'multi_noise' &&\n\t\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\t\tonClick={() => newSeed(model)} />}\n\t\t</div>\n\t\t{focused?.temperature !== undefined && <div class=\"controls secondary-controls\">\n\t\t\t<Btn class=\"no-pointer\" label={Object.entries(focused)\n\t\t\t\t.filter(([k]) => k !== 'biome')\n\t\t\t\t.map(([k, v]) => `${k[0].toUpperCase()}: ${(v as number).toFixed(2)}`).join(' ')}/>\n\t\t</div>}\n\t\t<canvas ref={canvas} width=\"200\" height=\"200\"></canvas>\n\t</>\n}\n\nfunction calculateState(data: any, octaves: Record<string, NoiseParameters>) {\n\treturn JSON.stringify([data, octaves])\n}\n\nexport function getOctaves(obj: any): Record<string, NoiseParameters> {\n\tif (typeof obj !== 'string') {\n\t\tobj = obj.legacy_random_source ? 'minecraft:nether' : 'minecraft:overworld'\n\t}\n\tswitch (obj.replace(/^minecraft:/, '')) {\n\t\tcase 'overworld':\n\t\tcase 'amplified':\n\t\t\treturn {\n\t\t\t\ttemperature: { firstOctave: -9, amplitudes: [1.5, 0, 1, 0, 0, 0] },\n\t\t\t\thumidity: { firstOctave: -7, amplitudes: [1, 1, 0, 0, 0, 0] },\n\t\t\t\tcontinentalness: { firstOctave: -9, amplitudes: [1, 1, 2, 2, 2, 1, 1, 1, 1] },\n\t\t\t\terosion: { firstOctave: -9, amplitudes: [1, 1, 0, 1, 1] },\n\t\t\t\tweirdness: { firstOctave: -7, amplitudes: [1, 2, 1, 0, 0, 0] },\n\t\t\t\tshift: { firstOctave: -3, amplitudes: [1, 1, 1, 0] },\n\t\t\t}\n\t\tcase 'end':\n\t\tcase 'floating_islands':\n\t\t\treturn {\n\t\t\t\ttemperature: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\thumidity: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\tcontinentalness: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\terosion: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\tweirdness: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\tshift: { firstOctave: 0, amplitudes: [0] },\n\t\t\t}\n\t\tdefault:\n\t\t\treturn {\n\t\t\t\ttemperature: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\thumidity: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\tcontinentalness: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\terosion: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\tweirdness: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\tshift: { firstOctave: 0, amplitudes: [0] },\n\t\t\t}\n\t}\n}\n","import { useEffect, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { decorator } from '../../previews'\nimport { randomSeed } from '../../Utils'\n\nexport const DecoratorPreview = ({ data, version, shown }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [scale, setScale] = useState(4)\n\tconst [seed, setSeed] = useState(randomSeed())\n\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [scale * 16, scale * 16]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tdecorator(data, img, { seed, version, size: [scale * 16, 128, scale * 16] })\n\t\t},\n\t})\n\n\tconst state = JSON.stringify(data)\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tredraw()\n\t\t}\n\t}, [state, scale, seed, shown])\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t<Btn icon=\"dash\" tooltip={locale('zoom_out')}\n\t\t\t\tonClick={() => setScale(Math.min(16, scale + 1))} />\n\t\t\t<Btn icon=\"plus\" tooltip={locale('zoom_in')}\n\t\t\t\tonClick={() => setScale(Math.max(1, scale - 1))} />\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width=\"64\" height=\"64\"></canvas>\n\t</>\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { densityFunction } from '../../previews'\nimport { randomSeed } from '../../Utils'\n\nexport const DensityFunctionPreview = ({ data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [autoScroll, setAutoScroll] = useState(false)\n\tconst [focused, setFocused] = useState<string | undefined>(undefined)\n\tconst offset = useRef(0)\n\tconst scrollInterval = useRef<number | undefined>(undefined)\n\tconst state = JSON.stringify([data])\n\n\tconst size = data?.noise?.height ?? 256\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [size, size]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { offset: offset.current, width: img.width, seed, version }\n\t\t\tawait densityFunction(data, img, options)\n\t\t},\n\t\tasync onDrag(dx) {\n\t\t\toffset.current += dx * size\n\t\t\tredraw()\n\t\t},\n\t\tasync onHover(x, y) {\n\t\t\tconst worldX = Math.floor(x * size - offset.current)\n\t\t\tconst worldY = size - Math.max(1, Math.ceil(y * size)) + (data?.noise?.min_y ?? 0)\n\t\t\tsetFocused(`X=${worldX} Y=${worldY}`)\n\t\t},\n\t\tonLeave() {\n\t\t\tsetFocused(undefined)\n\t\t},\n\t}, [state, seed])\n\n\tuseEffect(() => {\n\t\tif (scrollInterval.current) {\n\t\t\tclearInterval(scrollInterval.current)\n\t\t}\n\t\tif (shown) {\n\t\t\tredraw()\n\t\t\tif (autoScroll) {\n\t\t\t\tscrollInterval.current = setInterval(() => {\n\t\t\t\t\toffset.current -= 8\n\t\t\t\t\tredraw()\n\t\t\t\t}, 100) as any\n\t\t\t}\n\t\t}\n\t}, [state, seed, shown, autoScroll])\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t{focused && <Btn label={focused} class=\"no-pointer\" />}\n\t\t\t<BtnMenu icon=\"gear\" tooltip={locale('terrain_settings')}>\n\t\t\t\t<Btn icon={autoScroll ? 'square_fill' : 'square'} label={locale('preview.auto_scroll')} onClick={() => setAutoScroll(!autoScroll)} />\n\t\t\t</BtnMenu>\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width={size} height={size}></canvas>\n\t</>\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { normalNoise } from '../../previews'\nimport { randomSeed } from '../../Utils'\n\nexport const NoisePreview = ({ data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [scale, setScale] = useState(2)\n\tconst offset = useRef<[number, number]>([0, 0])\n\tconst state = JSON.stringify([data])\n\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [256, 256]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { offset: offset.current, scale, seed, version }\n\t\t\tnormalNoise(data, img, options)\n\t\t},\n\t\tasync onDrag(dx, dy) {\n\t\t\toffset.current[0] = offset.current[0] + dx * 256\n\t\t\toffset.current[1] = offset.current[1] + dy * 256\n\t\t\tredraw()\n\t\t},\n\t}, [state, scale, seed])\n\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tredraw()\n\t\t}\n\t}, [state, scale, seed, shown])\n\n\tconst changeScale = (newScale: number) => {\n\t\toffset.current[0] = offset.current[0] * scale / newScale\n\t\toffset.current[1] = offset.current[1] * scale / newScale\n\t\tsetScale(newScale)\n\t}\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t<Btn icon=\"dash\" tooltip={locale('zoom_out')}\n\t\t\t\tonClick={() => changeScale(scale * 1.5)} />\n\t\t\t<Btn icon=\"plus\" tooltip={locale('zoom_in')}\n\t\t\t\tonClick={() => changeScale(scale / 1.5)} />\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width=\"256\" height=\"256\"></canvas>\n\t</>\n}\n","import { useEffect, useMemo, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn, BtnInput, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { getNoiseBlock, noiseSettings } from '../../previews'\nimport { CachedCollections, checkVersion } from '../../services'\nimport { randomSeed } from '../../Utils'\n\nexport const NoiseSettingsPreview = ({ data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [biome, setBiome] = useState('minecraft:plains')\n\tconst [biomeScale, setBiomeScale] = useState(0.2)\n\tconst [biomeDepth, setBiomeDepth] = useState(0.1)\n\tconst [autoScroll, setAutoScroll] = useState(false)\n\tconst [focused, setFocused] = useState<string | undefined>(undefined)\n\tconst offset = useRef(0)\n\tconst scrollInterval = useRef<number | undefined>(undefined)\n\tconst state = JSON.stringify([data, biomeScale, biomeDepth])\n\n\tconst size = data?.noise?.height ?? 256\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [size, size]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { biome, biomeDepth, biomeScale, offset: offset.current, width: img.width, seed, version }\n\t\t\tawait noiseSettings(data, img, options)\n\t\t},\n\t\tasync onDrag(dx) {\n\t\t\toffset.current += dx * size\n\t\t\tredraw()\n\t\t},\n\t\tasync onHover(x, y) {\n\t\t\tconst worldX = Math.floor(x * size - offset.current)\n\t\t\tconst worldY = size - Math.max(1, Math.ceil(y * size)) + (data?.noise?.min_y ?? 0)\n\t\t\tconst block = getNoiseBlock(worldX, worldY)\n\t\t\tsetFocused(block ? `Y=${worldY} (${block.getName().path})` : `Y=${worldY}`)\n\t\t},\n\t\tonLeave() {\n\t\t\tsetFocused(undefined)\n\t\t},\n\t}, [state, seed])\n\n\tuseEffect(() => {\n\t\tif (scrollInterval.current) {\n\t\t\tclearInterval(scrollInterval.current)\n\t\t}\n\t\tif (shown) {\n\t\t\t(async () => {\n\t\t\t\ttry {\n\t\t\t\t\tawait redraw()\n\t\t\t\t\tif (autoScroll) {\n\t\t\t\t\t\tscrollInterval.current = setInterval(() => {\n\t\t\t\t\t\t\toffset.current -= 8\n\t\t\t\t\t\t\tredraw()\n\t\t\t\t\t\t}, 100) as any\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\tthrow e\n\t\t\t\t}\n\t\t\t})()\n\t\t}\n\t}, [state, seed, shown, biome, biomeScale, biomeDepth, autoScroll])\n\n\tconst allBiomes = useMemo(() => CachedCollections?.get('worldgen/biome') ?? [], [version])\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t{focused && <Btn label={focused} class=\"no-pointer\" />}\n\t\t\t<BtnMenu icon=\"gear\" tooltip={locale('terrain_settings')}>\n\t\t\t\t{checkVersion(version, undefined, '1.17') ? <>\n\t\t\t\t\t<BtnInput label={locale('preview.scale')} value={`${biomeScale}`} onChange={v => setBiomeScale(Number(v))} />\n\t\t\t\t\t<BtnInput label={locale('preview.depth')} value={`${biomeDepth}`} onChange={v => setBiomeDepth(Number(v))} />\n\t\t\t\t</> :\n\t\t\t\t\t<BtnInput label={locale('preview.biome')} value={biome} onChange={setBiome} dataList={allBiomes} larger />\n\t\t\t\t}\n\t\t\t\t<Btn icon={autoScroll ? 'square_fill' : 'square'} label={locale('preview.auto_scroll')} onClick={() => setAutoScroll(!autoScroll)} />\n\t\t\t</BtnMenu>\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width={size} height={size}></canvas>\n\t</>\n}\n","import type { DataModel } from '@mcschema/core'\nimport { Path } from '@mcschema/core'\nimport { useState } from 'preact/hooks'\nimport { useModel } from '../../hooks'\nimport type { VersionId } from '../../services'\nimport { checkVersion } from '../../services'\nimport { BiomeSourcePreview, DecoratorPreview, DensityFunctionPreview, NoisePreview, NoiseSettingsPreview } from '../previews'\n\nexport const HasPreview = ['dimension', 'worldgen/density_function', 'worldgen/noise', 'worldgen/noise_settings', 'worldgen/configured_feature', 'worldgen/placed_feature']\n\ntype PreviewPanelProps = {\n\tmodel: DataModel | null,\n\tversion: VersionId,\n\tid: string,\n\tshown: boolean,\n\tonError: (message: string) => unknown,\n}\nexport function PreviewPanel({ model, version, id, shown }: PreviewPanelProps) {\n\tconst [, setCount] = useState(0)\n\n\tuseModel(model, () => {\n\t\tsetCount(count => count + 1)\n\t})\n\n\tif (!model) return <></>\n\n\tif (id === 'dimension' && model.get(new Path(['generator', 'type']))?.endsWith('noise')) {\n\t\tconst data = model.get(new Path(['generator', 'biome_source']))\n\t\tif (data) return <BiomeSourcePreview {...{ model, version, shown, data }} />\n\t}\n\n\tif (id === 'worldgen/density_function') {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <DensityFunctionPreview {...{ model, version, shown, data }} />\n\t}\n\n\tif (id === 'worldgen/noise') {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <NoisePreview {...{ model, version, shown, data }} />\n\t}\n\n\tif (id === 'worldgen/noise_settings') {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <NoiseSettingsPreview {...{ model, version, shown, data }} />\n\t}\n\n\tif ((id === 'worldgen/placed_feature' || (id === 'worldgen/configured_feature' && checkVersion(version, '1.16', '1.17')))) {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <DecoratorPreview {...{ model, version, shown, data }} />\n\t}\n\n\treturn <></>\n}\n","(function webpackUniversalModuleDefinition(root, factory) {\n/* istanbul ignore next */\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n/* istanbul ignore next */\n\telse if(typeof exports === 'object')\n\t\texports[\"esprima\"] = factory();\n\telse\n\t\troot[\"esprima\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/* istanbul ignore if */\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t/*\n\t Copyright JS Foundation and other contributors, https://js.foundation/\n\n\t Redistribution and use in source and binary forms, with or without\n\t modification, are permitted provided that the following conditions are met:\n\n\t * Redistributions of source code must retain the above copyright\n\t notice, this list of conditions and the following disclaimer.\n\t * Redistributions in binary form must reproduce the above copyright\n\t notice, this list of conditions and the following disclaimer in the\n\t documentation and/or other materials provided with the distribution.\n\n\t THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n\t AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n\t IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n\t ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n\t DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n\t (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n\t LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n\t ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n\t THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t*/\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar comment_handler_1 = __webpack_require__(1);\n\tvar jsx_parser_1 = __webpack_require__(3);\n\tvar parser_1 = __webpack_require__(8);\n\tvar tokenizer_1 = __webpack_require__(15);\n\tfunction parse(code, options, delegate) {\n\t var commentHandler = null;\n\t var proxyDelegate = function (node, metadata) {\n\t if (delegate) {\n\t delegate(node, metadata);\n\t }\n\t if (commentHandler) {\n\t commentHandler.visit(node, metadata);\n\t }\n\t };\n\t var parserDelegate = (typeof delegate === 'function') ? proxyDelegate : null;\n\t var collectComment = false;\n\t if (options) {\n\t collectComment = (typeof options.comment === 'boolean' && options.comment);\n\t var attachComment = (typeof options.attachComment === 'boolean' && options.attachComment);\n\t if (collectComment || attachComment) {\n\t commentHandler = new comment_handler_1.CommentHandler();\n\t commentHandler.attach = attachComment;\n\t options.comment = true;\n\t parserDelegate = proxyDelegate;\n\t }\n\t }\n\t var isModule = false;\n\t if (options && typeof options.sourceType === 'string') {\n\t isModule = (options.sourceType === 'module');\n\t }\n\t var parser;\n\t if (options && typeof options.jsx === 'boolean' && options.jsx) {\n\t parser = new jsx_parser_1.JSXParser(code, options, parserDelegate);\n\t }\n\t else {\n\t parser = new parser_1.Parser(code, options, parserDelegate);\n\t }\n\t var program = isModule ? parser.parseModule() : parser.parseScript();\n\t var ast = program;\n\t if (collectComment && commentHandler) {\n\t ast.comments = commentHandler.comments;\n\t }\n\t if (parser.config.tokens) {\n\t ast.tokens = parser.tokens;\n\t }\n\t if (parser.config.tolerant) {\n\t ast.errors = parser.errorHandler.errors;\n\t }\n\t return ast;\n\t}\n\texports.parse = parse;\n\tfunction parseModule(code, options, delegate) {\n\t var parsingOptions = options || {};\n\t parsingOptions.sourceType = 'module';\n\t return parse(code, parsingOptions, delegate);\n\t}\n\texports.parseModule = parseModule;\n\tfunction parseScript(code, options, delegate) {\n\t var parsingOptions = options || {};\n\t parsingOptions.sourceType = 'script';\n\t return parse(code, parsingOptions, delegate);\n\t}\n\texports.parseScript = parseScript;\n\tfunction tokenize(code, options, delegate) {\n\t var tokenizer = new tokenizer_1.Tokenizer(code, options);\n\t var tokens;\n\t tokens = [];\n\t try {\n\t while (true) {\n\t var token = tokenizer.getNextToken();\n\t if (!token) {\n\t break;\n\t }\n\t if (delegate) {\n\t token = delegate(token);\n\t }\n\t tokens.push(token);\n\t }\n\t }\n\t catch (e) {\n\t tokenizer.errorHandler.tolerate(e);\n\t }\n\t if (tokenizer.errorHandler.tolerant) {\n\t tokens.errors = tokenizer.errors();\n\t }\n\t return tokens;\n\t}\n\texports.tokenize = tokenize;\n\tvar syntax_1 = __webpack_require__(2);\n\texports.Syntax = syntax_1.Syntax;\n\t// Sync with *.json manifests.\n\texports.version = '4.0.1';\n\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar syntax_1 = __webpack_require__(2);\n\tvar CommentHandler = (function () {\n\t function CommentHandler() {\n\t this.attach = false;\n\t this.comments = [];\n\t this.stack = [];\n\t this.leading = [];\n\t this.trailing = [];\n\t }\n\t CommentHandler.prototype.insertInnerComments = function (node, metadata) {\n\t // innnerComments for properties empty block\n\t // `function a() {/** comments **\\/}`\n\t if (node.type === syntax_1.Syntax.BlockStatement && node.body.length === 0) {\n\t var innerComments = [];\n\t for (var i = this.leading.length - 1; i >= 0; --i) {\n\t var entry = this.leading[i];\n\t if (metadata.end.offset >= entry.start) {\n\t innerComments.unshift(entry.comment);\n\t this.leading.splice(i, 1);\n\t this.trailing.splice(i, 1);\n\t }\n\t }\n\t if (innerComments.length) {\n\t node.innerComments = innerComments;\n\t }\n\t }\n\t };\n\t CommentHandler.prototype.findTrailingComments = function (metadata) {\n\t var trailingComments = [];\n\t if (this.trailing.length > 0) {\n\t for (var i = this.trailing.length - 1; i >= 0; --i) {\n\t var entry_1 = this.trailing[i];\n\t if (entry_1.start >= metadata.end.offset) {\n\t trailingComments.unshift(entry_1.comment);\n\t }\n\t }\n\t this.trailing.length = 0;\n\t return trailingComments;\n\t }\n\t var entry = this.stack[this.stack.length - 1];\n\t if (entry && entry.node.trailingComments) {\n\t var firstComment = entry.node.trailingComments[0];\n\t if (firstComment && firstComment.range[0] >= metadata.end.offset) {\n\t trailingComments = entry.node.trailingComments;\n\t delete entry.node.trailingComments;\n\t }\n\t }\n\t return trailingComments;\n\t };\n\t CommentHandler.prototype.findLeadingComments = function (metadata) {\n\t var leadingComments = [];\n\t var target;\n\t while (this.stack.length > 0) {\n\t var entry = this.stack[this.stack.length - 1];\n\t if (entry && entry.start >= metadata.start.offset) {\n\t target = entry.node;\n\t this.stack.pop();\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t if (target) {\n\t var count = target.leadingComments ? target.leadingComments.length : 0;\n\t for (var i = count - 1; i >= 0; --i) {\n\t var comment = target.leadingComments[i];\n\t if (comment.range[1] <= metadata.start.offset) {\n\t leadingComments.unshift(comment);\n\t target.leadingComments.splice(i, 1);\n\t }\n\t }\n\t if (target.leadingComments && target.leadingComments.length === 0) {\n\t delete target.leadingComments;\n\t }\n\t return leadingComments;\n\t }\n\t for (var i = this.leading.length - 1; i >= 0; --i) {\n\t var entry = this.leading[i];\n\t if (entry.start <= metadata.start.offset) {\n\t leadingComments.unshift(entry.comment);\n\t this.leading.splice(i, 1);\n\t }\n\t }\n\t return leadingComments;\n\t };\n\t CommentHandler.prototype.visitNode = function (node, metadata) {\n\t if (node.type === syntax_1.Syntax.Program && node.body.length > 0) {\n\t return;\n\t }\n\t this.insertInnerComments(node, metadata);\n\t var trailingComments = this.findTrailingComments(metadata);\n\t var leadingComments = this.findLeadingComments(metadata);\n\t if (leadingComments.length > 0) {\n\t node.leadingComments = leadingComments;\n\t }\n\t if (trailingComments.length > 0) {\n\t node.trailingComments = trailingComments;\n\t }\n\t this.stack.push({\n\t node: node,\n\t start: metadata.start.offset\n\t });\n\t };\n\t CommentHandler.prototype.visitComment = function (node, metadata) {\n\t var type = (node.type[0] === 'L') ? 'Line' : 'Block';\n\t var comment = {\n\t type: type,\n\t value: node.value\n\t };\n\t if (node.range) {\n\t comment.range = node.range;\n\t }\n\t if (node.loc) {\n\t comment.loc = node.loc;\n\t }\n\t this.comments.push(comment);\n\t if (this.attach) {\n\t var entry = {\n\t comment: {\n\t type: type,\n\t value: node.value,\n\t range: [metadata.start.offset, metadata.end.offset]\n\t },\n\t start: metadata.start.offset\n\t };\n\t if (node.loc) {\n\t entry.comment.loc = node.loc;\n\t }\n\t node.type = type;\n\t this.leading.push(entry);\n\t this.trailing.push(entry);\n\t }\n\t };\n\t CommentHandler.prototype.visit = function (node, metadata) {\n\t if (node.type === 'LineComment') {\n\t this.visitComment(node, metadata);\n\t }\n\t else if (node.type === 'BlockComment') {\n\t this.visitComment(node, metadata);\n\t }\n\t else if (this.attach) {\n\t this.visitNode(node, metadata);\n\t }\n\t };\n\t return CommentHandler;\n\t}());\n\texports.CommentHandler = CommentHandler;\n\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.Syntax = {\n\t AssignmentExpression: 'AssignmentExpression',\n\t AssignmentPattern: 'AssignmentPattern',\n\t ArrayExpression: 'ArrayExpression',\n\t ArrayPattern: 'ArrayPattern',\n\t ArrowFunctionExpression: 'ArrowFunctionExpression',\n\t AwaitExpression: 'AwaitExpression',\n\t BlockStatement: 'BlockStatement',\n\t BinaryExpression: 'BinaryExpression',\n\t BreakStatement: 'BreakStatement',\n\t CallExpression: 'CallExpression',\n\t CatchClause: 'CatchClause',\n\t ClassBody: 'ClassBody',\n\t ClassDeclaration: 'ClassDeclaration',\n\t ClassExpression: 'ClassExpression',\n\t ConditionalExpression: 'ConditionalExpression',\n\t ContinueStatement: 'ContinueStatement',\n\t DoWhileStatement: 'DoWhileStatement',\n\t DebuggerStatement: 'DebuggerStatement',\n\t EmptyStatement: 'EmptyStatement',\n\t ExportAllDeclaration: 'ExportAllDeclaration',\n\t ExportDefaultDeclaration: 'ExportDefaultDeclaration',\n\t ExportNamedDeclaration: 'ExportNamedDeclaration',\n\t ExportSpecifier: 'ExportSpecifier',\n\t ExpressionStatement: 'ExpressionStatement',\n\t ForStatement: 'ForStatement',\n\t ForOfStatement: 'ForOfStatement',\n\t ForInStatement: 'ForInStatement',\n\t FunctionDeclaration: 'FunctionDeclaration',\n\t FunctionExpression: 'FunctionExpression',\n\t Identifier: 'Identifier',\n\t IfStatement: 'IfStatement',\n\t ImportDeclaration: 'ImportDeclaration',\n\t ImportDefaultSpecifier: 'ImportDefaultSpecifier',\n\t ImportNamespaceSpecifier: 'ImportNamespaceSpecifier',\n\t ImportSpecifier: 'ImportSpecifier',\n\t Literal: 'Literal',\n\t LabeledStatement: 'LabeledStatement',\n\t LogicalExpression: 'LogicalExpression',\n\t MemberExpression: 'MemberExpression',\n\t MetaProperty: 'MetaProperty',\n\t MethodDefinition: 'MethodDefinition',\n\t NewExpression: 'NewExpression',\n\t ObjectExpression: 'ObjectExpression',\n\t ObjectPattern: 'ObjectPattern',\n\t Program: 'Program',\n\t Property: 'Property',\n\t RestElement: 'RestElement',\n\t ReturnStatement: 'ReturnStatement',\n\t SequenceExpression: 'SequenceExpression',\n\t SpreadElement: 'SpreadElement',\n\t Super: 'Super',\n\t SwitchCase: 'SwitchCase',\n\t SwitchStatement: 'SwitchStatement',\n\t TaggedTemplateExpression: 'TaggedTemplateExpression',\n\t TemplateElement: 'TemplateElement',\n\t TemplateLiteral: 'TemplateLiteral',\n\t ThisExpression: 'ThisExpression',\n\t ThrowStatement: 'ThrowStatement',\n\t TryStatement: 'TryStatement',\n\t UnaryExpression: 'UnaryExpression',\n\t UpdateExpression: 'UpdateExpression',\n\t VariableDeclaration: 'VariableDeclaration',\n\t VariableDeclarator: 'VariableDeclarator',\n\t WhileStatement: 'WhileStatement',\n\t WithStatement: 'WithStatement',\n\t YieldExpression: 'YieldExpression'\n\t};\n\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n/* istanbul ignore next */\n\tvar __extends = (this && this.__extends) || (function () {\n\t var extendStatics = Object.setPrototypeOf ||\n\t ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n\t function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n\t return function (d, b) {\n\t extendStatics(d, b);\n\t function __() { this.constructor = d; }\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n\t };\n\t})();\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar character_1 = __webpack_require__(4);\n\tvar JSXNode = __webpack_require__(5);\n\tvar jsx_syntax_1 = __webpack_require__(6);\n\tvar Node = __webpack_require__(7);\n\tvar parser_1 = __webpack_require__(8);\n\tvar token_1 = __webpack_require__(13);\n\tvar xhtml_entities_1 = __webpack_require__(14);\n\ttoken_1.TokenName[100 /* Identifier */] = 'JSXIdentifier';\n\ttoken_1.TokenName[101 /* Text */] = 'JSXText';\n\t// Fully qualified element name, e.g. <svg:path> returns \"svg:path\"\n\tfunction getQualifiedElementName(elementName) {\n\t var qualifiedName;\n\t switch (elementName.type) {\n\t case jsx_syntax_1.JSXSyntax.JSXIdentifier:\n\t var id = elementName;\n\t qualifiedName = id.name;\n\t break;\n\t case jsx_syntax_1.JSXSyntax.JSXNamespacedName:\n\t var ns = elementName;\n\t qualifiedName = getQualifiedElementName(ns.namespace) + ':' +\n\t getQualifiedElementName(ns.name);\n\t break;\n\t case jsx_syntax_1.JSXSyntax.JSXMemberExpression:\n\t var expr = elementName;\n\t qualifiedName = getQualifiedElementName(expr.object) + '.' +\n\t getQualifiedElementName(expr.property);\n\t break;\n\t /* istanbul ignore next */\n\t default:\n\t break;\n\t }\n\t return qualifiedName;\n\t}\n\tvar JSXParser = (function (_super) {\n\t __extends(JSXParser, _super);\n\t function JSXParser(code, options, delegate) {\n\t return _super.call(this, code, options, delegate) || this;\n\t }\n\t JSXParser.prototype.parsePrimaryExpression = function () {\n\t return this.match('<') ? this.parseJSXRoot() : _super.prototype.parsePrimaryExpression.call(this);\n\t };\n\t JSXParser.prototype.startJSX = function () {\n\t // Unwind the scanner before the lookahead token.\n\t this.scanner.index = this.startMarker.index;\n\t this.scanner.lineNumber = this.startMarker.line;\n\t this.scanner.lineStart = this.startMarker.index - this.startMarker.column;\n\t };\n\t JSXParser.prototype.finishJSX = function () {\n\t // Prime the next lookahead.\n\t this.nextToken();\n\t };\n\t JSXParser.prototype.reenterJSX = function () {\n\t this.startJSX();\n\t this.expectJSX('}');\n\t // Pop the closing '}' added from the lookahead.\n\t if (this.config.tokens) {\n\t this.tokens.pop();\n\t }\n\t };\n\t JSXParser.prototype.createJSXNode = function () {\n\t this.collectComments();\n\t return {\n\t index: this.scanner.index,\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t };\n\t JSXParser.prototype.createJSXChildNode = function () {\n\t return {\n\t index: this.scanner.index,\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t };\n\t JSXParser.prototype.scanXHTMLEntity = function (quote) {\n\t var result = '&';\n\t var valid = true;\n\t var terminated = false;\n\t var numeric = false;\n\t var hex = false;\n\t while (!this.scanner.eof() && valid && !terminated) {\n\t var ch = this.scanner.source[this.scanner.index];\n\t if (ch === quote) {\n\t break;\n\t }\n\t terminated = (ch === ';');\n\t result += ch;\n\t ++this.scanner.index;\n\t if (!terminated) {\n\t switch (result.length) {\n\t case 2:\n\t // e.g. '{'\n\t numeric = (ch === '#');\n\t break;\n\t case 3:\n\t if (numeric) {\n\t // e.g. 'A'\n\t hex = (ch === 'x');\n\t valid = hex || character_1.Character.isDecimalDigit(ch.charCodeAt(0));\n\t numeric = numeric && !hex;\n\t }\n\t break;\n\t default:\n\t valid = valid && !(numeric && !character_1.Character.isDecimalDigit(ch.charCodeAt(0)));\n\t valid = valid && !(hex && !character_1.Character.isHexDigit(ch.charCodeAt(0)));\n\t break;\n\t }\n\t }\n\t }\n\t if (valid && terminated && result.length > 2) {\n\t // e.g. 'A' becomes just '#x41'\n\t var str = result.substr(1, result.length - 2);\n\t if (numeric && str.length > 1) {\n\t result = String.fromCharCode(parseInt(str.substr(1), 10));\n\t }\n\t else if (hex && str.length > 2) {\n\t result = String.fromCharCode(parseInt('0' + str.substr(1), 16));\n\t }\n\t else if (!numeric && !hex && xhtml_entities_1.XHTMLEntities[str]) {\n\t result = xhtml_entities_1.XHTMLEntities[str];\n\t }\n\t }\n\t return result;\n\t };\n\t // Scan the next JSX token. This replaces Scanner#lex when in JSX mode.\n\t JSXParser.prototype.lexJSX = function () {\n\t var cp = this.scanner.source.charCodeAt(this.scanner.index);\n\t // < > / : = { }\n\t if (cp === 60 || cp === 62 || cp === 47 || cp === 58 || cp === 61 || cp === 123 || cp === 125) {\n\t var value = this.scanner.source[this.scanner.index++];\n\t return {\n\t type: 7 /* Punctuator */,\n\t value: value,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: this.scanner.index - 1,\n\t end: this.scanner.index\n\t };\n\t }\n\t // \" '\n\t if (cp === 34 || cp === 39) {\n\t var start = this.scanner.index;\n\t var quote = this.scanner.source[this.scanner.index++];\n\t var str = '';\n\t while (!this.scanner.eof()) {\n\t var ch = this.scanner.source[this.scanner.index++];\n\t if (ch === quote) {\n\t break;\n\t }\n\t else if (ch === '&') {\n\t str += this.scanXHTMLEntity(quote);\n\t }\n\t else {\n\t str += ch;\n\t }\n\t }\n\t return {\n\t type: 8 /* StringLiteral */,\n\t value: str,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t }\n\t // ... or .\n\t if (cp === 46) {\n\t var n1 = this.scanner.source.charCodeAt(this.scanner.index + 1);\n\t var n2 = this.scanner.source.charCodeAt(this.scanner.index + 2);\n\t var value = (n1 === 46 && n2 === 46) ? '...' : '.';\n\t var start = this.scanner.index;\n\t this.scanner.index += value.length;\n\t return {\n\t type: 7 /* Punctuator */,\n\t value: value,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t }\n\t // `\n\t if (cp === 96) {\n\t // Only placeholder, since it will be rescanned as a real assignment expression.\n\t return {\n\t type: 10 /* Template */,\n\t value: '',\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: this.scanner.index,\n\t end: this.scanner.index\n\t };\n\t }\n\t // Identifer can not contain backslash (char code 92).\n\t if (character_1.Character.isIdentifierStart(cp) && (cp !== 92)) {\n\t var start = this.scanner.index;\n\t ++this.scanner.index;\n\t while (!this.scanner.eof()) {\n\t var ch = this.scanner.source.charCodeAt(this.scanner.index);\n\t if (character_1.Character.isIdentifierPart(ch) && (ch !== 92)) {\n\t ++this.scanner.index;\n\t }\n\t else if (ch === 45) {\n\t // Hyphen (char code 45) can be part of an identifier.\n\t ++this.scanner.index;\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t var id = this.scanner.source.slice(start, this.scanner.index);\n\t return {\n\t type: 100 /* Identifier */,\n\t value: id,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t }\n\t return this.scanner.lex();\n\t };\n\t JSXParser.prototype.nextJSXToken = function () {\n\t this.collectComments();\n\t this.startMarker.index = this.scanner.index;\n\t this.startMarker.line = this.scanner.lineNumber;\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\n\t var token = this.lexJSX();\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t if (this.config.tokens) {\n\t this.tokens.push(this.convertToken(token));\n\t }\n\t return token;\n\t };\n\t JSXParser.prototype.nextJSXText = function () {\n\t this.startMarker.index = this.scanner.index;\n\t this.startMarker.line = this.scanner.lineNumber;\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\n\t var start = this.scanner.index;\n\t var text = '';\n\t while (!this.scanner.eof()) {\n\t var ch = this.scanner.source[this.scanner.index];\n\t if (ch === '{' || ch === '<') {\n\t break;\n\t }\n\t ++this.scanner.index;\n\t text += ch;\n\t if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t ++this.scanner.lineNumber;\n\t if (ch === '\\r' && this.scanner.source[this.scanner.index] === '\\n') {\n\t ++this.scanner.index;\n\t }\n\t this.scanner.lineStart = this.scanner.index;\n\t }\n\t }\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t var token = {\n\t type: 101 /* Text */,\n\t value: text,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t if ((text.length > 0) && this.config.tokens) {\n\t this.tokens.push(this.convertToken(token));\n\t }\n\t return token;\n\t };\n\t JSXParser.prototype.peekJSXToken = function () {\n\t var state = this.scanner.saveState();\n\t this.scanner.scanComments();\n\t var next = this.lexJSX();\n\t this.scanner.restoreState(state);\n\t return next;\n\t };\n\t // Expect the next JSX token to match the specified punctuator.\n\t // If not, an exception will be thrown.\n\t JSXParser.prototype.expectJSX = function (value) {\n\t var token = this.nextJSXToken();\n\t if (token.type !== 7 /* Punctuator */ || token.value !== value) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t };\n\t // Return true if the next JSX token matches the specified punctuator.\n\t JSXParser.prototype.matchJSX = function (value) {\n\t var next = this.peekJSXToken();\n\t return next.type === 7 /* Punctuator */ && next.value === value;\n\t };\n\t JSXParser.prototype.parseJSXIdentifier = function () {\n\t var node = this.createJSXNode();\n\t var token = this.nextJSXToken();\n\t if (token.type !== 100 /* Identifier */) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t return this.finalize(node, new JSXNode.JSXIdentifier(token.value));\n\t };\n\t JSXParser.prototype.parseJSXElementName = function () {\n\t var node = this.createJSXNode();\n\t var elementName = this.parseJSXIdentifier();\n\t if (this.matchJSX(':')) {\n\t var namespace = elementName;\n\t this.expectJSX(':');\n\t var name_1 = this.parseJSXIdentifier();\n\t elementName = this.finalize(node, new JSXNode.JSXNamespacedName(namespace, name_1));\n\t }\n\t else if (this.matchJSX('.')) {\n\t while (this.matchJSX('.')) {\n\t var object = elementName;\n\t this.expectJSX('.');\n\t var property = this.parseJSXIdentifier();\n\t elementName = this.finalize(node, new JSXNode.JSXMemberExpression(object, property));\n\t }\n\t }\n\t return elementName;\n\t };\n\t JSXParser.prototype.parseJSXAttributeName = function () {\n\t var node = this.createJSXNode();\n\t var attributeName;\n\t var identifier = this.parseJSXIdentifier();\n\t if (this.matchJSX(':')) {\n\t var namespace = identifier;\n\t this.expectJSX(':');\n\t var name_2 = this.parseJSXIdentifier();\n\t attributeName = this.finalize(node, new JSXNode.JSXNamespacedName(namespace, name_2));\n\t }\n\t else {\n\t attributeName = identifier;\n\t }\n\t return attributeName;\n\t };\n\t JSXParser.prototype.parseJSXStringLiteralAttribute = function () {\n\t var node = this.createJSXNode();\n\t var token = this.nextJSXToken();\n\t if (token.type !== 8 /* StringLiteral */) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t var raw = this.getTokenRaw(token);\n\t return this.finalize(node, new Node.Literal(token.value, raw));\n\t };\n\t JSXParser.prototype.parseJSXExpressionAttribute = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('{');\n\t this.finishJSX();\n\t if (this.match('}')) {\n\t this.tolerateError('JSX attributes must only be assigned a non-empty expression');\n\t }\n\t var expression = this.parseAssignmentExpression();\n\t this.reenterJSX();\n\t return this.finalize(node, new JSXNode.JSXExpressionContainer(expression));\n\t };\n\t JSXParser.prototype.parseJSXAttributeValue = function () {\n\t return this.matchJSX('{') ? this.parseJSXExpressionAttribute() :\n\t this.matchJSX('<') ? this.parseJSXElement() : this.parseJSXStringLiteralAttribute();\n\t };\n\t JSXParser.prototype.parseJSXNameValueAttribute = function () {\n\t var node = this.createJSXNode();\n\t var name = this.parseJSXAttributeName();\n\t var value = null;\n\t if (this.matchJSX('=')) {\n\t this.expectJSX('=');\n\t value = this.parseJSXAttributeValue();\n\t }\n\t return this.finalize(node, new JSXNode.JSXAttribute(name, value));\n\t };\n\t JSXParser.prototype.parseJSXSpreadAttribute = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('{');\n\t this.expectJSX('...');\n\t this.finishJSX();\n\t var argument = this.parseAssignmentExpression();\n\t this.reenterJSX();\n\t return this.finalize(node, new JSXNode.JSXSpreadAttribute(argument));\n\t };\n\t JSXParser.prototype.parseJSXAttributes = function () {\n\t var attributes = [];\n\t while (!this.matchJSX('/') && !this.matchJSX('>')) {\n\t var attribute = this.matchJSX('{') ? this.parseJSXSpreadAttribute() :\n\t this.parseJSXNameValueAttribute();\n\t attributes.push(attribute);\n\t }\n\t return attributes;\n\t };\n\t JSXParser.prototype.parseJSXOpeningElement = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('<');\n\t var name = this.parseJSXElementName();\n\t var attributes = this.parseJSXAttributes();\n\t var selfClosing = this.matchJSX('/');\n\t if (selfClosing) {\n\t this.expectJSX('/');\n\t }\n\t this.expectJSX('>');\n\t return this.finalize(node, new JSXNode.JSXOpeningElement(name, selfClosing, attributes));\n\t };\n\t JSXParser.prototype.parseJSXBoundaryElement = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('<');\n\t if (this.matchJSX('/')) {\n\t this.expectJSX('/');\n\t var name_3 = this.parseJSXElementName();\n\t this.expectJSX('>');\n\t return this.finalize(node, new JSXNode.JSXClosingElement(name_3));\n\t }\n\t var name = this.parseJSXElementName();\n\t var attributes = this.parseJSXAttributes();\n\t var selfClosing = this.matchJSX('/');\n\t if (selfClosing) {\n\t this.expectJSX('/');\n\t }\n\t this.expectJSX('>');\n\t return this.finalize(node, new JSXNode.JSXOpeningElement(name, selfClosing, attributes));\n\t };\n\t JSXParser.prototype.parseJSXEmptyExpression = function () {\n\t var node = this.createJSXChildNode();\n\t this.collectComments();\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t return this.finalize(node, new JSXNode.JSXEmptyExpression());\n\t };\n\t JSXParser.prototype.parseJSXExpressionContainer = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('{');\n\t var expression;\n\t if (this.matchJSX('}')) {\n\t expression = this.parseJSXEmptyExpression();\n\t this.expectJSX('}');\n\t }\n\t else {\n\t this.finishJSX();\n\t expression = this.parseAssignmentExpression();\n\t this.reenterJSX();\n\t }\n\t return this.finalize(node, new JSXNode.JSXExpressionContainer(expression));\n\t };\n\t JSXParser.prototype.parseJSXChildren = function () {\n\t var children = [];\n\t while (!this.scanner.eof()) {\n\t var node = this.createJSXChildNode();\n\t var token = this.nextJSXText();\n\t if (token.start < token.end) {\n\t var raw = this.getTokenRaw(token);\n\t var child = this.finalize(node, new JSXNode.JSXText(token.value, raw));\n\t children.push(child);\n\t }\n\t if (this.scanner.source[this.scanner.index] === '{') {\n\t var container = this.parseJSXExpressionContainer();\n\t children.push(container);\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t return children;\n\t };\n\t JSXParser.prototype.parseComplexJSXElement = function (el) {\n\t var stack = [];\n\t while (!this.scanner.eof()) {\n\t el.children = el.children.concat(this.parseJSXChildren());\n\t var node = this.createJSXChildNode();\n\t var element = this.parseJSXBoundaryElement();\n\t if (element.type === jsx_syntax_1.JSXSyntax.JSXOpeningElement) {\n\t var opening = element;\n\t if (opening.selfClosing) {\n\t var child = this.finalize(node, new JSXNode.JSXElement(opening, [], null));\n\t el.children.push(child);\n\t }\n\t else {\n\t stack.push(el);\n\t el = { node: node, opening: opening, closing: null, children: [] };\n\t }\n\t }\n\t if (element.type === jsx_syntax_1.JSXSyntax.JSXClosingElement) {\n\t el.closing = element;\n\t var open_1 = getQualifiedElementName(el.opening.name);\n\t var close_1 = getQualifiedElementName(el.closing.name);\n\t if (open_1 !== close_1) {\n\t this.tolerateError('Expected corresponding JSX closing tag for %0', open_1);\n\t }\n\t if (stack.length > 0) {\n\t var child = this.finalize(el.node, new JSXNode.JSXElement(el.opening, el.children, el.closing));\n\t el = stack[stack.length - 1];\n\t el.children.push(child);\n\t stack.pop();\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t }\n\t return el;\n\t };\n\t JSXParser.prototype.parseJSXElement = function () {\n\t var node = this.createJSXNode();\n\t var opening = this.parseJSXOpeningElement();\n\t var children = [];\n\t var closing = null;\n\t if (!opening.selfClosing) {\n\t var el = this.parseComplexJSXElement({ node: node, opening: opening, closing: closing, children: children });\n\t children = el.children;\n\t closing = el.closing;\n\t }\n\t return this.finalize(node, new JSXNode.JSXElement(opening, children, closing));\n\t };\n\t JSXParser.prototype.parseJSXRoot = function () {\n\t // Pop the opening '<' added from the lookahead.\n\t if (this.config.tokens) {\n\t this.tokens.pop();\n\t }\n\t this.startJSX();\n\t var element = this.parseJSXElement();\n\t this.finishJSX();\n\t return element;\n\t };\n\t JSXParser.prototype.isStartOfExpression = function () {\n\t return _super.prototype.isStartOfExpression.call(this) || this.match('<');\n\t };\n\t return JSXParser;\n\t}(parser_1.Parser));\n\texports.JSXParser = JSXParser;\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\t// See also tools/generate-unicode-regex.js.\n\tvar Regex = {\n\t // Unicode v8.0.0 NonAsciiIdentifierStart:\n\t NonAsciiIdentifierStart: /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309B-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF19]|\\uD806[\\uDCA0-\\uDCDF\\uDCFF\\uDEC0-\\uDEF8]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]/,\n\t // Unicode v8.0.0 NonAsciiIdentifierPart:\n\t NonAsciiIdentifierPart: /[\\xAA\\xB5\\xB7\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B4\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1369-\\u1371\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDDFD\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF7A\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE38-\\uDE3A\\uDE3F\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE6\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC00-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDCBA\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD00-\\uDD34\\uDD36-\\uDD3F\\uDD50-\\uDD73\\uDD76\\uDD80-\\uDDC4\\uDDCA-\\uDDCC\\uDDD0-\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE37\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3C-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF50\\uDF57\\uDF5D-\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC80-\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDB5\\uDDB8-\\uDDC0\\uDDD8-\\uDDDD\\uDE00-\\uDE40\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEB7\\uDEC0-\\uDEC9\\uDF00-\\uDF19\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDCA0-\\uDCE9\\uDCFF\\uDEC0-\\uDEF8]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDEF0-\\uDEF4\\uDF00-\\uDF36\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50-\\uDF7E\\uDF8F-\\uDF9F]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD83A[\\uDC00-\\uDCC4\\uDCD0-\\uDCD6]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]|\\uDB40[\\uDD00-\\uDDEF]/\n\t};\n\texports.Character = {\n\t /* tslint:disable:no-bitwise */\n\t fromCodePoint: function (cp) {\n\t return (cp < 0x10000) ? String.fromCharCode(cp) :\n\t String.fromCharCode(0xD800 + ((cp - 0x10000) >> 10)) +\n\t String.fromCharCode(0xDC00 + ((cp - 0x10000) & 1023));\n\t },\n\t // https://tc39.github.io/ecma262/#sec-white-space\n\t isWhiteSpace: function (cp) {\n\t return (cp === 0x20) || (cp === 0x09) || (cp === 0x0B) || (cp === 0x0C) || (cp === 0xA0) ||\n\t (cp >= 0x1680 && [0x1680, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x202F, 0x205F, 0x3000, 0xFEFF].indexOf(cp) >= 0);\n\t },\n\t // https://tc39.github.io/ecma262/#sec-line-terminators\n\t isLineTerminator: function (cp) {\n\t return (cp === 0x0A) || (cp === 0x0D) || (cp === 0x2028) || (cp === 0x2029);\n\t },\n\t // https://tc39.github.io/ecma262/#sec-names-and-keywords\n\t isIdentifierStart: function (cp) {\n\t return (cp === 0x24) || (cp === 0x5F) ||\n\t (cp >= 0x41 && cp <= 0x5A) ||\n\t (cp >= 0x61 && cp <= 0x7A) ||\n\t (cp === 0x5C) ||\n\t ((cp >= 0x80) && Regex.NonAsciiIdentifierStart.test(exports.Character.fromCodePoint(cp)));\n\t },\n\t isIdentifierPart: function (cp) {\n\t return (cp === 0x24) || (cp === 0x5F) ||\n\t (cp >= 0x41 && cp <= 0x5A) ||\n\t (cp >= 0x61 && cp <= 0x7A) ||\n\t (cp >= 0x30 && cp <= 0x39) ||\n\t (cp === 0x5C) ||\n\t ((cp >= 0x80) && Regex.NonAsciiIdentifierPart.test(exports.Character.fromCodePoint(cp)));\n\t },\n\t // https://tc39.github.io/ecma262/#sec-literals-numeric-literals\n\t isDecimalDigit: function (cp) {\n\t return (cp >= 0x30 && cp <= 0x39); // 0..9\n\t },\n\t isHexDigit: function (cp) {\n\t return (cp >= 0x30 && cp <= 0x39) ||\n\t (cp >= 0x41 && cp <= 0x46) ||\n\t (cp >= 0x61 && cp <= 0x66); // a..f\n\t },\n\t isOctalDigit: function (cp) {\n\t return (cp >= 0x30 && cp <= 0x37); // 0..7\n\t }\n\t};\n\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar jsx_syntax_1 = __webpack_require__(6);\n\t/* tslint:disable:max-classes-per-file */\n\tvar JSXClosingElement = (function () {\n\t function JSXClosingElement(name) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXClosingElement;\n\t this.name = name;\n\t }\n\t return JSXClosingElement;\n\t}());\n\texports.JSXClosingElement = JSXClosingElement;\n\tvar JSXElement = (function () {\n\t function JSXElement(openingElement, children, closingElement) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXElement;\n\t this.openingElement = openingElement;\n\t this.children = children;\n\t this.closingElement = closingElement;\n\t }\n\t return JSXElement;\n\t}());\n\texports.JSXElement = JSXElement;\n\tvar JSXEmptyExpression = (function () {\n\t function JSXEmptyExpression() {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXEmptyExpression;\n\t }\n\t return JSXEmptyExpression;\n\t}());\n\texports.JSXEmptyExpression = JSXEmptyExpression;\n\tvar JSXExpressionContainer = (function () {\n\t function JSXExpressionContainer(expression) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXExpressionContainer;\n\t this.expression = expression;\n\t }\n\t return JSXExpressionContainer;\n\t}());\n\texports.JSXExpressionContainer = JSXExpressionContainer;\n\tvar JSXIdentifier = (function () {\n\t function JSXIdentifier(name) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXIdentifier;\n\t this.name = name;\n\t }\n\t return JSXIdentifier;\n\t}());\n\texports.JSXIdentifier = JSXIdentifier;\n\tvar JSXMemberExpression = (function () {\n\t function JSXMemberExpression(object, property) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXMemberExpression;\n\t this.object = object;\n\t this.property = property;\n\t }\n\t return JSXMemberExpression;\n\t}());\n\texports.JSXMemberExpression = JSXMemberExpression;\n\tvar JSXAttribute = (function () {\n\t function JSXAttribute(name, value) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXAttribute;\n\t this.name = name;\n\t this.value = value;\n\t }\n\t return JSXAttribute;\n\t}());\n\texports.JSXAttribute = JSXAttribute;\n\tvar JSXNamespacedName = (function () {\n\t function JSXNamespacedName(namespace, name) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXNamespacedName;\n\t this.namespace = namespace;\n\t this.name = name;\n\t }\n\t return JSXNamespacedName;\n\t}());\n\texports.JSXNamespacedName = JSXNamespacedName;\n\tvar JSXOpeningElement = (function () {\n\t function JSXOpeningElement(name, selfClosing, attributes) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXOpeningElement;\n\t this.name = name;\n\t this.selfClosing = selfClosing;\n\t this.attributes = attributes;\n\t }\n\t return JSXOpeningElement;\n\t}());\n\texports.JSXOpeningElement = JSXOpeningElement;\n\tvar JSXSpreadAttribute = (function () {\n\t function JSXSpreadAttribute(argument) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXSpreadAttribute;\n\t this.argument = argument;\n\t }\n\t return JSXSpreadAttribute;\n\t}());\n\texports.JSXSpreadAttribute = JSXSpreadAttribute;\n\tvar JSXText = (function () {\n\t function JSXText(value, raw) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXText;\n\t this.value = value;\n\t this.raw = raw;\n\t }\n\t return JSXText;\n\t}());\n\texports.JSXText = JSXText;\n\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.JSXSyntax = {\n\t JSXAttribute: 'JSXAttribute',\n\t JSXClosingElement: 'JSXClosingElement',\n\t JSXElement: 'JSXElement',\n\t JSXEmptyExpression: 'JSXEmptyExpression',\n\t JSXExpressionContainer: 'JSXExpressionContainer',\n\t JSXIdentifier: 'JSXIdentifier',\n\t JSXMemberExpression: 'JSXMemberExpression',\n\t JSXNamespacedName: 'JSXNamespacedName',\n\t JSXOpeningElement: 'JSXOpeningElement',\n\t JSXSpreadAttribute: 'JSXSpreadAttribute',\n\t JSXText: 'JSXText'\n\t};\n\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar syntax_1 = __webpack_require__(2);\n\t/* tslint:disable:max-classes-per-file */\n\tvar ArrayExpression = (function () {\n\t function ArrayExpression(elements) {\n\t this.type = syntax_1.Syntax.ArrayExpression;\n\t this.elements = elements;\n\t }\n\t return ArrayExpression;\n\t}());\n\texports.ArrayExpression = ArrayExpression;\n\tvar ArrayPattern = (function () {\n\t function ArrayPattern(elements) {\n\t this.type = syntax_1.Syntax.ArrayPattern;\n\t this.elements = elements;\n\t }\n\t return ArrayPattern;\n\t}());\n\texports.ArrayPattern = ArrayPattern;\n\tvar ArrowFunctionExpression = (function () {\n\t function ArrowFunctionExpression(params, body, expression) {\n\t this.type = syntax_1.Syntax.ArrowFunctionExpression;\n\t this.id = null;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = expression;\n\t this.async = false;\n\t }\n\t return ArrowFunctionExpression;\n\t}());\n\texports.ArrowFunctionExpression = ArrowFunctionExpression;\n\tvar AssignmentExpression = (function () {\n\t function AssignmentExpression(operator, left, right) {\n\t this.type = syntax_1.Syntax.AssignmentExpression;\n\t this.operator = operator;\n\t this.left = left;\n\t this.right = right;\n\t }\n\t return AssignmentExpression;\n\t}());\n\texports.AssignmentExpression = AssignmentExpression;\n\tvar AssignmentPattern = (function () {\n\t function AssignmentPattern(left, right) {\n\t this.type = syntax_1.Syntax.AssignmentPattern;\n\t this.left = left;\n\t this.right = right;\n\t }\n\t return AssignmentPattern;\n\t}());\n\texports.AssignmentPattern = AssignmentPattern;\n\tvar AsyncArrowFunctionExpression = (function () {\n\t function AsyncArrowFunctionExpression(params, body, expression) {\n\t this.type = syntax_1.Syntax.ArrowFunctionExpression;\n\t this.id = null;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = expression;\n\t this.async = true;\n\t }\n\t return AsyncArrowFunctionExpression;\n\t}());\n\texports.AsyncArrowFunctionExpression = AsyncArrowFunctionExpression;\n\tvar AsyncFunctionDeclaration = (function () {\n\t function AsyncFunctionDeclaration(id, params, body) {\n\t this.type = syntax_1.Syntax.FunctionDeclaration;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = false;\n\t this.async = true;\n\t }\n\t return AsyncFunctionDeclaration;\n\t}());\n\texports.AsyncFunctionDeclaration = AsyncFunctionDeclaration;\n\tvar AsyncFunctionExpression = (function () {\n\t function AsyncFunctionExpression(id, params, body) {\n\t this.type = syntax_1.Syntax.FunctionExpression;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = false;\n\t this.async = true;\n\t }\n\t return AsyncFunctionExpression;\n\t}());\n\texports.AsyncFunctionExpression = AsyncFunctionExpression;\n\tvar AwaitExpression = (function () {\n\t function AwaitExpression(argument) {\n\t this.type = syntax_1.Syntax.AwaitExpression;\n\t this.argument = argument;\n\t }\n\t return AwaitExpression;\n\t}());\n\texports.AwaitExpression = AwaitExpression;\n\tvar BinaryExpression = (function () {\n\t function BinaryExpression(operator, left, right) {\n\t var logical = (operator === '||' || operator === '&&');\n\t this.type = logical ? syntax_1.Syntax.LogicalExpression : syntax_1.Syntax.BinaryExpression;\n\t this.operator = operator;\n\t this.left = left;\n\t this.right = right;\n\t }\n\t return BinaryExpression;\n\t}());\n\texports.BinaryExpression = BinaryExpression;\n\tvar BlockStatement = (function () {\n\t function BlockStatement(body) {\n\t this.type = syntax_1.Syntax.BlockStatement;\n\t this.body = body;\n\t }\n\t return BlockStatement;\n\t}());\n\texports.BlockStatement = BlockStatement;\n\tvar BreakStatement = (function () {\n\t function BreakStatement(label) {\n\t this.type = syntax_1.Syntax.BreakStatement;\n\t this.label = label;\n\t }\n\t return BreakStatement;\n\t}());\n\texports.BreakStatement = BreakStatement;\n\tvar CallExpression = (function () {\n\t function CallExpression(callee, args) {\n\t this.type = syntax_1.Syntax.CallExpression;\n\t this.callee = callee;\n\t this.arguments = args;\n\t }\n\t return CallExpression;\n\t}());\n\texports.CallExpression = CallExpression;\n\tvar CatchClause = (function () {\n\t function CatchClause(param, body) {\n\t this.type = syntax_1.Syntax.CatchClause;\n\t this.param = param;\n\t this.body = body;\n\t }\n\t return CatchClause;\n\t}());\n\texports.CatchClause = CatchClause;\n\tvar ClassBody = (function () {\n\t function ClassBody(body) {\n\t this.type = syntax_1.Syntax.ClassBody;\n\t this.body = body;\n\t }\n\t return ClassBody;\n\t}());\n\texports.ClassBody = ClassBody;\n\tvar ClassDeclaration = (function () {\n\t function ClassDeclaration(id, superClass, body) {\n\t this.type = syntax_1.Syntax.ClassDeclaration;\n\t this.id = id;\n\t this.superClass = superClass;\n\t this.body = body;\n\t }\n\t return ClassDeclaration;\n\t}());\n\texports.ClassDeclaration = ClassDeclaration;\n\tvar ClassExpression = (function () {\n\t function ClassExpression(id, superClass, body) {\n\t this.type = syntax_1.Syntax.ClassExpression;\n\t this.id = id;\n\t this.superClass = superClass;\n\t this.body = body;\n\t }\n\t return ClassExpression;\n\t}());\n\texports.ClassExpression = ClassExpression;\n\tvar ComputedMemberExpression = (function () {\n\t function ComputedMemberExpression(object, property) {\n\t this.type = syntax_1.Syntax.MemberExpression;\n\t this.computed = true;\n\t this.object = object;\n\t this.property = property;\n\t }\n\t return ComputedMemberExpression;\n\t}());\n\texports.ComputedMemberExpression = ComputedMemberExpression;\n\tvar ConditionalExpression = (function () {\n\t function ConditionalExpression(test, consequent, alternate) {\n\t this.type = syntax_1.Syntax.ConditionalExpression;\n\t this.test = test;\n\t this.consequent = consequent;\n\t this.alternate = alternate;\n\t }\n\t return ConditionalExpression;\n\t}());\n\texports.ConditionalExpression = ConditionalExpression;\n\tvar ContinueStatement = (function () {\n\t function ContinueStatement(label) {\n\t this.type = syntax_1.Syntax.ContinueStatement;\n\t this.label = label;\n\t }\n\t return ContinueStatement;\n\t}());\n\texports.ContinueStatement = ContinueStatement;\n\tvar DebuggerStatement = (function () {\n\t function DebuggerStatement() {\n\t this.type = syntax_1.Syntax.DebuggerStatement;\n\t }\n\t return DebuggerStatement;\n\t}());\n\texports.DebuggerStatement = DebuggerStatement;\n\tvar Directive = (function () {\n\t function Directive(expression, directive) {\n\t this.type = syntax_1.Syntax.ExpressionStatement;\n\t this.expression = expression;\n\t this.directive = directive;\n\t }\n\t return Directive;\n\t}());\n\texports.Directive = Directive;\n\tvar DoWhileStatement = (function () {\n\t function DoWhileStatement(body, test) {\n\t this.type = syntax_1.Syntax.DoWhileStatement;\n\t this.body = body;\n\t this.test = test;\n\t }\n\t return DoWhileStatement;\n\t}());\n\texports.DoWhileStatement = DoWhileStatement;\n\tvar EmptyStatement = (function () {\n\t function EmptyStatement() {\n\t this.type = syntax_1.Syntax.EmptyStatement;\n\t }\n\t return EmptyStatement;\n\t}());\n\texports.EmptyStatement = EmptyStatement;\n\tvar ExportAllDeclaration = (function () {\n\t function ExportAllDeclaration(source) {\n\t this.type = syntax_1.Syntax.ExportAllDeclaration;\n\t this.source = source;\n\t }\n\t return ExportAllDeclaration;\n\t}());\n\texports.ExportAllDeclaration = ExportAllDeclaration;\n\tvar ExportDefaultDeclaration = (function () {\n\t function ExportDefaultDeclaration(declaration) {\n\t this.type = syntax_1.Syntax.ExportDefaultDeclaration;\n\t this.declaration = declaration;\n\t }\n\t return ExportDefaultDeclaration;\n\t}());\n\texports.ExportDefaultDeclaration = ExportDefaultDeclaration;\n\tvar ExportNamedDeclaration = (function () {\n\t function ExportNamedDeclaration(declaration, specifiers, source) {\n\t this.type = syntax_1.Syntax.ExportNamedDeclaration;\n\t this.declaration = declaration;\n\t this.specifiers = specifiers;\n\t this.source = source;\n\t }\n\t return ExportNamedDeclaration;\n\t}());\n\texports.ExportNamedDeclaration = ExportNamedDeclaration;\n\tvar ExportSpecifier = (function () {\n\t function ExportSpecifier(local, exported) {\n\t this.type = syntax_1.Syntax.ExportSpecifier;\n\t this.exported = exported;\n\t this.local = local;\n\t }\n\t return ExportSpecifier;\n\t}());\n\texports.ExportSpecifier = ExportSpecifier;\n\tvar ExpressionStatement = (function () {\n\t function ExpressionStatement(expression) {\n\t this.type = syntax_1.Syntax.ExpressionStatement;\n\t this.expression = expression;\n\t }\n\t return ExpressionStatement;\n\t}());\n\texports.ExpressionStatement = ExpressionStatement;\n\tvar ForInStatement = (function () {\n\t function ForInStatement(left, right, body) {\n\t this.type = syntax_1.Syntax.ForInStatement;\n\t this.left = left;\n\t this.right = right;\n\t this.body = body;\n\t this.each = false;\n\t }\n\t return ForInStatement;\n\t}());\n\texports.ForInStatement = ForInStatement;\n\tvar ForOfStatement = (function () {\n\t function ForOfStatement(left, right, body) {\n\t this.type = syntax_1.Syntax.ForOfStatement;\n\t this.left = left;\n\t this.right = right;\n\t this.body = body;\n\t }\n\t return ForOfStatement;\n\t}());\n\texports.ForOfStatement = ForOfStatement;\n\tvar ForStatement = (function () {\n\t function ForStatement(init, test, update, body) {\n\t this.type = syntax_1.Syntax.ForStatement;\n\t this.init = init;\n\t this.test = test;\n\t this.update = update;\n\t this.body = body;\n\t }\n\t return ForStatement;\n\t}());\n\texports.ForStatement = ForStatement;\n\tvar FunctionDeclaration = (function () {\n\t function FunctionDeclaration(id, params, body, generator) {\n\t this.type = syntax_1.Syntax.FunctionDeclaration;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = generator;\n\t this.expression = false;\n\t this.async = false;\n\t }\n\t return FunctionDeclaration;\n\t}());\n\texports.FunctionDeclaration = FunctionDeclaration;\n\tvar FunctionExpression = (function () {\n\t function FunctionExpression(id, params, body, generator) {\n\t this.type = syntax_1.Syntax.FunctionExpression;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = generator;\n\t this.expression = false;\n\t this.async = false;\n\t }\n\t return FunctionExpression;\n\t}());\n\texports.FunctionExpression = FunctionExpression;\n\tvar Identifier = (function () {\n\t function Identifier(name) {\n\t this.type = syntax_1.Syntax.Identifier;\n\t this.name = name;\n\t }\n\t return Identifier;\n\t}());\n\texports.Identifier = Identifier;\n\tvar IfStatement = (function () {\n\t function IfStatement(test, consequent, alternate) {\n\t this.type = syntax_1.Syntax.IfStatement;\n\t this.test = test;\n\t this.consequent = consequent;\n\t this.alternate = alternate;\n\t }\n\t return IfStatement;\n\t}());\n\texports.IfStatement = IfStatement;\n\tvar ImportDeclaration = (function () {\n\t function ImportDeclaration(specifiers, source) {\n\t this.type = syntax_1.Syntax.ImportDeclaration;\n\t this.specifiers = specifiers;\n\t this.source = source;\n\t }\n\t return ImportDeclaration;\n\t}());\n\texports.ImportDeclaration = ImportDeclaration;\n\tvar ImportDefaultSpecifier = (function () {\n\t function ImportDefaultSpecifier(local) {\n\t this.type = syntax_1.Syntax.ImportDefaultSpecifier;\n\t this.local = local;\n\t }\n\t return ImportDefaultSpecifier;\n\t}());\n\texports.ImportDefaultSpecifier = ImportDefaultSpecifier;\n\tvar ImportNamespaceSpecifier = (function () {\n\t function ImportNamespaceSpecifier(local) {\n\t this.type = syntax_1.Syntax.ImportNamespaceSpecifier;\n\t this.local = local;\n\t }\n\t return ImportNamespaceSpecifier;\n\t}());\n\texports.ImportNamespaceSpecifier = ImportNamespaceSpecifier;\n\tvar ImportSpecifier = (function () {\n\t function ImportSpecifier(local, imported) {\n\t this.type = syntax_1.Syntax.ImportSpecifier;\n\t this.local = local;\n\t this.imported = imported;\n\t }\n\t return ImportSpecifier;\n\t}());\n\texports.ImportSpecifier = ImportSpecifier;\n\tvar LabeledStatement = (function () {\n\t function LabeledStatement(label, body) {\n\t this.type = syntax_1.Syntax.LabeledStatement;\n\t this.label = label;\n\t this.body = body;\n\t }\n\t return LabeledStatement;\n\t}());\n\texports.LabeledStatement = LabeledStatement;\n\tvar Literal = (function () {\n\t function Literal(value, raw) {\n\t this.type = syntax_1.Syntax.Literal;\n\t this.value = value;\n\t this.raw = raw;\n\t }\n\t return Literal;\n\t}());\n\texports.Literal = Literal;\n\tvar MetaProperty = (function () {\n\t function MetaProperty(meta, property) {\n\t this.type = syntax_1.Syntax.MetaProperty;\n\t this.meta = meta;\n\t this.property = property;\n\t }\n\t return MetaProperty;\n\t}());\n\texports.MetaProperty = MetaProperty;\n\tvar MethodDefinition = (function () {\n\t function MethodDefinition(key, computed, value, kind, isStatic) {\n\t this.type = syntax_1.Syntax.MethodDefinition;\n\t this.key = key;\n\t this.computed = computed;\n\t this.value = value;\n\t this.kind = kind;\n\t this.static = isStatic;\n\t }\n\t return MethodDefinition;\n\t}());\n\texports.MethodDefinition = MethodDefinition;\n\tvar Module = (function () {\n\t function Module(body) {\n\t this.type = syntax_1.Syntax.Program;\n\t this.body = body;\n\t this.sourceType = 'module';\n\t }\n\t return Module;\n\t}());\n\texports.Module = Module;\n\tvar NewExpression = (function () {\n\t function NewExpression(callee, args) {\n\t this.type = syntax_1.Syntax.NewExpression;\n\t this.callee = callee;\n\t this.arguments = args;\n\t }\n\t return NewExpression;\n\t}());\n\texports.NewExpression = NewExpression;\n\tvar ObjectExpression = (function () {\n\t function ObjectExpression(properties) {\n\t this.type = syntax_1.Syntax.ObjectExpression;\n\t this.properties = properties;\n\t }\n\t return ObjectExpression;\n\t}());\n\texports.ObjectExpression = ObjectExpression;\n\tvar ObjectPattern = (function () {\n\t function ObjectPattern(properties) {\n\t this.type = syntax_1.Syntax.ObjectPattern;\n\t this.properties = properties;\n\t }\n\t return ObjectPattern;\n\t}());\n\texports.ObjectPattern = ObjectPattern;\n\tvar Property = (function () {\n\t function Property(kind, key, computed, value, method, shorthand) {\n\t this.type = syntax_1.Syntax.Property;\n\t this.key = key;\n\t this.computed = computed;\n\t this.value = value;\n\t this.kind = kind;\n\t this.method = method;\n\t this.shorthand = shorthand;\n\t }\n\t return Property;\n\t}());\n\texports.Property = Property;\n\tvar RegexLiteral = (function () {\n\t function RegexLiteral(value, raw, pattern, flags) {\n\t this.type = syntax_1.Syntax.Literal;\n\t this.value = value;\n\t this.raw = raw;\n\t this.regex = { pattern: pattern, flags: flags };\n\t }\n\t return RegexLiteral;\n\t}());\n\texports.RegexLiteral = RegexLiteral;\n\tvar RestElement = (function () {\n\t function RestElement(argument) {\n\t this.type = syntax_1.Syntax.RestElement;\n\t this.argument = argument;\n\t }\n\t return RestElement;\n\t}());\n\texports.RestElement = RestElement;\n\tvar ReturnStatement = (function () {\n\t function ReturnStatement(argument) {\n\t this.type = syntax_1.Syntax.ReturnStatement;\n\t this.argument = argument;\n\t }\n\t return ReturnStatement;\n\t}());\n\texports.ReturnStatement = ReturnStatement;\n\tvar Script = (function () {\n\t function Script(body) {\n\t this.type = syntax_1.Syntax.Program;\n\t this.body = body;\n\t this.sourceType = 'script';\n\t }\n\t return Script;\n\t}());\n\texports.Script = Script;\n\tvar SequenceExpression = (function () {\n\t function SequenceExpression(expressions) {\n\t this.type = syntax_1.Syntax.SequenceExpression;\n\t this.expressions = expressions;\n\t }\n\t return SequenceExpression;\n\t}());\n\texports.SequenceExpression = SequenceExpression;\n\tvar SpreadElement = (function () {\n\t function SpreadElement(argument) {\n\t this.type = syntax_1.Syntax.SpreadElement;\n\t this.argument = argument;\n\t }\n\t return SpreadElement;\n\t}());\n\texports.SpreadElement = SpreadElement;\n\tvar StaticMemberExpression = (function () {\n\t function StaticMemberExpression(object, property) {\n\t this.type = syntax_1.Syntax.MemberExpression;\n\t this.computed = false;\n\t this.object = object;\n\t this.property = property;\n\t }\n\t return StaticMemberExpression;\n\t}());\n\texports.StaticMemberExpression = StaticMemberExpression;\n\tvar Super = (function () {\n\t function Super() {\n\t this.type = syntax_1.Syntax.Super;\n\t }\n\t return Super;\n\t}());\n\texports.Super = Super;\n\tvar SwitchCase = (function () {\n\t function SwitchCase(test, consequent) {\n\t this.type = syntax_1.Syntax.SwitchCase;\n\t this.test = test;\n\t this.consequent = consequent;\n\t }\n\t return SwitchCase;\n\t}());\n\texports.SwitchCase = SwitchCase;\n\tvar SwitchStatement = (function () {\n\t function SwitchStatement(discriminant, cases) {\n\t this.type = syntax_1.Syntax.SwitchStatement;\n\t this.discriminant = discriminant;\n\t this.cases = cases;\n\t }\n\t return SwitchStatement;\n\t}());\n\texports.SwitchStatement = SwitchStatement;\n\tvar TaggedTemplateExpression = (function () {\n\t function TaggedTemplateExpression(tag, quasi) {\n\t this.type = syntax_1.Syntax.TaggedTemplateExpression;\n\t this.tag = tag;\n\t this.quasi = quasi;\n\t }\n\t return TaggedTemplateExpression;\n\t}());\n\texports.TaggedTemplateExpression = TaggedTemplateExpression;\n\tvar TemplateElement = (function () {\n\t function TemplateElement(value, tail) {\n\t this.type = syntax_1.Syntax.TemplateElement;\n\t this.value = value;\n\t this.tail = tail;\n\t }\n\t return TemplateElement;\n\t}());\n\texports.TemplateElement = TemplateElement;\n\tvar TemplateLiteral = (function () {\n\t function TemplateLiteral(quasis, expressions) {\n\t this.type = syntax_1.Syntax.TemplateLiteral;\n\t this.quasis = quasis;\n\t this.expressions = expressions;\n\t }\n\t return TemplateLiteral;\n\t}());\n\texports.TemplateLiteral = TemplateLiteral;\n\tvar ThisExpression = (function () {\n\t function ThisExpression() {\n\t this.type = syntax_1.Syntax.ThisExpression;\n\t }\n\t return ThisExpression;\n\t}());\n\texports.ThisExpression = ThisExpression;\n\tvar ThrowStatement = (function () {\n\t function ThrowStatement(argument) {\n\t this.type = syntax_1.Syntax.ThrowStatement;\n\t this.argument = argument;\n\t }\n\t return ThrowStatement;\n\t}());\n\texports.ThrowStatement = ThrowStatement;\n\tvar TryStatement = (function () {\n\t function TryStatement(block, handler, finalizer) {\n\t this.type = syntax_1.Syntax.TryStatement;\n\t this.block = block;\n\t this.handler = handler;\n\t this.finalizer = finalizer;\n\t }\n\t return TryStatement;\n\t}());\n\texports.TryStatement = TryStatement;\n\tvar UnaryExpression = (function () {\n\t function UnaryExpression(operator, argument) {\n\t this.type = syntax_1.Syntax.UnaryExpression;\n\t this.operator = operator;\n\t this.argument = argument;\n\t this.prefix = true;\n\t }\n\t return UnaryExpression;\n\t}());\n\texports.UnaryExpression = UnaryExpression;\n\tvar UpdateExpression = (function () {\n\t function UpdateExpression(operator, argument, prefix) {\n\t this.type = syntax_1.Syntax.UpdateExpression;\n\t this.operator = operator;\n\t this.argument = argument;\n\t this.prefix = prefix;\n\t }\n\t return UpdateExpression;\n\t}());\n\texports.UpdateExpression = UpdateExpression;\n\tvar VariableDeclaration = (function () {\n\t function VariableDeclaration(declarations, kind) {\n\t this.type = syntax_1.Syntax.VariableDeclaration;\n\t this.declarations = declarations;\n\t this.kind = kind;\n\t }\n\t return VariableDeclaration;\n\t}());\n\texports.VariableDeclaration = VariableDeclaration;\n\tvar VariableDeclarator = (function () {\n\t function VariableDeclarator(id, init) {\n\t this.type = syntax_1.Syntax.VariableDeclarator;\n\t this.id = id;\n\t this.init = init;\n\t }\n\t return VariableDeclarator;\n\t}());\n\texports.VariableDeclarator = VariableDeclarator;\n\tvar WhileStatement = (function () {\n\t function WhileStatement(test, body) {\n\t this.type = syntax_1.Syntax.WhileStatement;\n\t this.test = test;\n\t this.body = body;\n\t }\n\t return WhileStatement;\n\t}());\n\texports.WhileStatement = WhileStatement;\n\tvar WithStatement = (function () {\n\t function WithStatement(object, body) {\n\t this.type = syntax_1.Syntax.WithStatement;\n\t this.object = object;\n\t this.body = body;\n\t }\n\t return WithStatement;\n\t}());\n\texports.WithStatement = WithStatement;\n\tvar YieldExpression = (function () {\n\t function YieldExpression(argument, delegate) {\n\t this.type = syntax_1.Syntax.YieldExpression;\n\t this.argument = argument;\n\t this.delegate = delegate;\n\t }\n\t return YieldExpression;\n\t}());\n\texports.YieldExpression = YieldExpression;\n\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar assert_1 = __webpack_require__(9);\n\tvar error_handler_1 = __webpack_require__(10);\n\tvar messages_1 = __webpack_require__(11);\n\tvar Node = __webpack_require__(7);\n\tvar scanner_1 = __webpack_require__(12);\n\tvar syntax_1 = __webpack_require__(2);\n\tvar token_1 = __webpack_require__(13);\n\tvar ArrowParameterPlaceHolder = 'ArrowParameterPlaceHolder';\n\tvar Parser = (function () {\n\t function Parser(code, options, delegate) {\n\t if (options === void 0) { options = {}; }\n\t this.config = {\n\t range: (typeof options.range === 'boolean') && options.range,\n\t loc: (typeof options.loc === 'boolean') && options.loc,\n\t source: null,\n\t tokens: (typeof options.tokens === 'boolean') && options.tokens,\n\t comment: (typeof options.comment === 'boolean') && options.comment,\n\t tolerant: (typeof options.tolerant === 'boolean') && options.tolerant\n\t };\n\t if (this.config.loc && options.source && options.source !== null) {\n\t this.config.source = String(options.source);\n\t }\n\t this.delegate = delegate;\n\t this.errorHandler = new error_handler_1.ErrorHandler();\n\t this.errorHandler.tolerant = this.config.tolerant;\n\t this.scanner = new scanner_1.Scanner(code, this.errorHandler);\n\t this.scanner.trackComment = this.config.comment;\n\t this.operatorPrecedence = {\n\t ')': 0,\n\t ';': 0,\n\t ',': 0,\n\t '=': 0,\n\t ']': 0,\n\t '||': 1,\n\t '&&': 2,\n\t '|': 3,\n\t '^': 4,\n\t '&': 5,\n\t '==': 6,\n\t '!=': 6,\n\t '===': 6,\n\t '!==': 6,\n\t '<': 7,\n\t '>': 7,\n\t '<=': 7,\n\t '>=': 7,\n\t '<<': 8,\n\t '>>': 8,\n\t '>>>': 8,\n\t '+': 9,\n\t '-': 9,\n\t '*': 11,\n\t '/': 11,\n\t '%': 11\n\t };\n\t this.lookahead = {\n\t type: 2 /* EOF */,\n\t value: '',\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: 0,\n\t start: 0,\n\t end: 0\n\t };\n\t this.hasLineTerminator = false;\n\t this.context = {\n\t isModule: false,\n\t await: false,\n\t allowIn: true,\n\t allowStrictDirective: true,\n\t allowYield: true,\n\t firstCoverInitializedNameError: null,\n\t isAssignmentTarget: false,\n\t isBindingElement: false,\n\t inFunctionBody: false,\n\t inIteration: false,\n\t inSwitch: false,\n\t labelSet: {},\n\t strict: false\n\t };\n\t this.tokens = [];\n\t this.startMarker = {\n\t index: 0,\n\t line: this.scanner.lineNumber,\n\t column: 0\n\t };\n\t this.lastMarker = {\n\t index: 0,\n\t line: this.scanner.lineNumber,\n\t column: 0\n\t };\n\t this.nextToken();\n\t this.lastMarker = {\n\t index: this.scanner.index,\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t }\n\t Parser.prototype.throwError = function (messageFormat) {\n\t var values = [];\n\t for (var _i = 1; _i < arguments.length; _i++) {\n\t values[_i - 1] = arguments[_i];\n\t }\n\t var args = Array.prototype.slice.call(arguments, 1);\n\t var msg = messageFormat.replace(/%(\\d)/g, function (whole, idx) {\n\t assert_1.assert(idx < args.length, 'Message reference must be in range');\n\t return args[idx];\n\t });\n\t var index = this.lastMarker.index;\n\t var line = this.lastMarker.line;\n\t var column = this.lastMarker.column + 1;\n\t throw this.errorHandler.createError(index, line, column, msg);\n\t };\n\t Parser.prototype.tolerateError = function (messageFormat) {\n\t var values = [];\n\t for (var _i = 1; _i < arguments.length; _i++) {\n\t values[_i - 1] = arguments[_i];\n\t }\n\t var args = Array.prototype.slice.call(arguments, 1);\n\t var msg = messageFormat.replace(/%(\\d)/g, function (whole, idx) {\n\t assert_1.assert(idx < args.length, 'Message reference must be in range');\n\t return args[idx];\n\t });\n\t var index = this.lastMarker.index;\n\t var line = this.scanner.lineNumber;\n\t var column = this.lastMarker.column + 1;\n\t this.errorHandler.tolerateError(index, line, column, msg);\n\t };\n\t // Throw an exception because of the token.\n\t Parser.prototype.unexpectedTokenError = function (token, message) {\n\t var msg = message || messages_1.Messages.UnexpectedToken;\n\t var value;\n\t if (token) {\n\t if (!message) {\n\t msg = (token.type === 2 /* EOF */) ? messages_1.Messages.UnexpectedEOS :\n\t (token.type === 3 /* Identifier */) ? messages_1.Messages.UnexpectedIdentifier :\n\t (token.type === 6 /* NumericLiteral */) ? messages_1.Messages.UnexpectedNumber :\n\t (token.type === 8 /* StringLiteral */) ? messages_1.Messages.UnexpectedString :\n\t (token.type === 10 /* Template */) ? messages_1.Messages.UnexpectedTemplate :\n\t messages_1.Messages.UnexpectedToken;\n\t if (token.type === 4 /* Keyword */) {\n\t if (this.scanner.isFutureReservedWord(token.value)) {\n\t msg = messages_1.Messages.UnexpectedReserved;\n\t }\n\t else if (this.context.strict && this.scanner.isStrictModeReservedWord(token.value)) {\n\t msg = messages_1.Messages.StrictReservedWord;\n\t }\n\t }\n\t }\n\t value = token.value;\n\t }\n\t else {\n\t value = 'ILLEGAL';\n\t }\n\t msg = msg.replace('%0', value);\n\t if (token && typeof token.lineNumber === 'number') {\n\t var index = token.start;\n\t var line = token.lineNumber;\n\t var lastMarkerLineStart = this.lastMarker.index - this.lastMarker.column;\n\t var column = token.start - lastMarkerLineStart + 1;\n\t return this.errorHandler.createError(index, line, column, msg);\n\t }\n\t else {\n\t var index = this.lastMarker.index;\n\t var line = this.lastMarker.line;\n\t var column = this.lastMarker.column + 1;\n\t return this.errorHandler.createError(index, line, column, msg);\n\t }\n\t };\n\t Parser.prototype.throwUnexpectedToken = function (token, message) {\n\t throw this.unexpectedTokenError(token, message);\n\t };\n\t Parser.prototype.tolerateUnexpectedToken = function (token, message) {\n\t this.errorHandler.tolerate(this.unexpectedTokenError(token, message));\n\t };\n\t Parser.prototype.collectComments = function () {\n\t if (!this.config.comment) {\n\t this.scanner.scanComments();\n\t }\n\t else {\n\t var comments = this.scanner.scanComments();\n\t if (comments.length > 0 && this.delegate) {\n\t for (var i = 0; i < comments.length; ++i) {\n\t var e = comments[i];\n\t var node = void 0;\n\t node = {\n\t type: e.multiLine ? 'BlockComment' : 'LineComment',\n\t value: this.scanner.source.slice(e.slice[0], e.slice[1])\n\t };\n\t if (this.config.range) {\n\t node.range = e.range;\n\t }\n\t if (this.config.loc) {\n\t node.loc = e.loc;\n\t }\n\t var metadata = {\n\t start: {\n\t line: e.loc.start.line,\n\t column: e.loc.start.column,\n\t offset: e.range[0]\n\t },\n\t end: {\n\t line: e.loc.end.line,\n\t column: e.loc.end.column,\n\t offset: e.range[1]\n\t }\n\t };\n\t this.delegate(node, metadata);\n\t }\n\t }\n\t }\n\t };\n\t // From internal representation to an external structure\n\t Parser.prototype.getTokenRaw = function (token) {\n\t return this.scanner.source.slice(token.start, token.end);\n\t };\n\t Parser.prototype.convertToken = function (token) {\n\t var t = {\n\t type: token_1.TokenName[token.type],\n\t value: this.getTokenRaw(token)\n\t };\n\t if (this.config.range) {\n\t t.range = [token.start, token.end];\n\t }\n\t if (this.config.loc) {\n\t t.loc = {\n\t start: {\n\t line: this.startMarker.line,\n\t column: this.startMarker.column\n\t },\n\t end: {\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t }\n\t };\n\t }\n\t if (token.type === 9 /* RegularExpression */) {\n\t var pattern = token.pattern;\n\t var flags = token.flags;\n\t t.regex = { pattern: pattern, flags: flags };\n\t }\n\t return t;\n\t };\n\t Parser.prototype.nextToken = function () {\n\t var token = this.lookahead;\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t this.collectComments();\n\t if (this.scanner.index !== this.startMarker.index) {\n\t this.startMarker.index = this.scanner.index;\n\t this.startMarker.line = this.scanner.lineNumber;\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\n\t }\n\t var next = this.scanner.lex();\n\t this.hasLineTerminator = (token.lineNumber !== next.lineNumber);\n\t if (next && this.context.strict && next.type === 3 /* Identifier */) {\n\t if (this.scanner.isStrictModeReservedWord(next.value)) {\n\t next.type = 4 /* Keyword */;\n\t }\n\t }\n\t this.lookahead = next;\n\t if (this.config.tokens && next.type !== 2 /* EOF */) {\n\t this.tokens.push(this.convertToken(next));\n\t }\n\t return token;\n\t };\n\t Parser.prototype.nextRegexToken = function () {\n\t this.collectComments();\n\t var token = this.scanner.scanRegExp();\n\t if (this.config.tokens) {\n\t // Pop the previous token, '/' or '/='\n\t // This is added from the lookahead token.\n\t this.tokens.pop();\n\t this.tokens.push(this.convertToken(token));\n\t }\n\t // Prime the next lookahead.\n\t this.lookahead = token;\n\t this.nextToken();\n\t return token;\n\t };\n\t Parser.prototype.createNode = function () {\n\t return {\n\t index: this.startMarker.index,\n\t line: this.startMarker.line,\n\t column: this.startMarker.column\n\t };\n\t };\n\t Parser.prototype.startNode = function (token, lastLineStart) {\n\t if (lastLineStart === void 0) { lastLineStart = 0; }\n\t var column = token.start - token.lineStart;\n\t var line = token.lineNumber;\n\t if (column < 0) {\n\t column += lastLineStart;\n\t line--;\n\t }\n\t return {\n\t index: token.start,\n\t line: line,\n\t column: column\n\t };\n\t };\n\t Parser.prototype.finalize = function (marker, node) {\n\t if (this.config.range) {\n\t node.range = [marker.index, this.lastMarker.index];\n\t }\n\t if (this.config.loc) {\n\t node.loc = {\n\t start: {\n\t line: marker.line,\n\t column: marker.column,\n\t },\n\t end: {\n\t line: this.lastMarker.line,\n\t column: this.lastMarker.column\n\t }\n\t };\n\t if (this.config.source) {\n\t node.loc.source = this.config.source;\n\t }\n\t }\n\t if (this.delegate) {\n\t var metadata = {\n\t start: {\n\t line: marker.line,\n\t column: marker.column,\n\t offset: marker.index\n\t },\n\t end: {\n\t line: this.lastMarker.line,\n\t column: this.lastMarker.column,\n\t offset: this.lastMarker.index\n\t }\n\t };\n\t this.delegate(node, metadata);\n\t }\n\t return node;\n\t };\n\t // Expect the next token to match the specified punctuator.\n\t // If not, an exception will be thrown.\n\t Parser.prototype.expect = function (value) {\n\t var token = this.nextToken();\n\t if (token.type !== 7 /* Punctuator */ || token.value !== value) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t };\n\t // Quietly expect a comma when in tolerant mode, otherwise delegates to expect().\n\t Parser.prototype.expectCommaSeparator = function () {\n\t if (this.config.tolerant) {\n\t var token = this.lookahead;\n\t if (token.type === 7 /* Punctuator */ && token.value === ',') {\n\t this.nextToken();\n\t }\n\t else if (token.type === 7 /* Punctuator */ && token.value === ';') {\n\t this.nextToken();\n\t this.tolerateUnexpectedToken(token);\n\t }\n\t else {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.UnexpectedToken);\n\t }\n\t }\n\t else {\n\t this.expect(',');\n\t }\n\t };\n\t // Expect the next token to match the specified keyword.\n\t // If not, an exception will be thrown.\n\t Parser.prototype.expectKeyword = function (keyword) {\n\t var token = this.nextToken();\n\t if (token.type !== 4 /* Keyword */ || token.value !== keyword) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t };\n\t // Return true if the next token matches the specified punctuator.\n\t Parser.prototype.match = function (value) {\n\t return this.lookahead.type === 7 /* Punctuator */ && this.lookahead.value === value;\n\t };\n\t // Return true if the next token matches the specified keyword\n\t Parser.prototype.matchKeyword = function (keyword) {\n\t return this.lookahead.type === 4 /* Keyword */ && this.lookahead.value === keyword;\n\t };\n\t // Return true if the next token matches the specified contextual keyword\n\t // (where an identifier is sometimes a keyword depending on the context)\n\t Parser.prototype.matchContextualKeyword = function (keyword) {\n\t return this.lookahead.type === 3 /* Identifier */ && this.lookahead.value === keyword;\n\t };\n\t // Return true if the next token is an assignment operator\n\t Parser.prototype.matchAssign = function () {\n\t if (this.lookahead.type !== 7 /* Punctuator */) {\n\t return false;\n\t }\n\t var op = this.lookahead.value;\n\t return op === '=' ||\n\t op === '*=' ||\n\t op === '**=' ||\n\t op === '/=' ||\n\t op === '%=' ||\n\t op === '+=' ||\n\t op === '-=' ||\n\t op === '<<=' ||\n\t op === '>>=' ||\n\t op === '>>>=' ||\n\t op === '&=' ||\n\t op === '^=' ||\n\t op === '|=';\n\t };\n\t // Cover grammar support.\n\t //\n\t // When an assignment expression position starts with an left parenthesis, the determination of the type\n\t // of the syntax is to be deferred arbitrarily long until the end of the parentheses pair (plus a lookahead)\n\t // or the first comma. This situation also defers the determination of all the expressions nested in the pair.\n\t //\n\t // There are three productions that can be parsed in a parentheses pair that needs to be determined\n\t // after the outermost pair is closed. They are:\n\t //\n\t // 1. AssignmentExpression\n\t // 2. BindingElements\n\t // 3. AssignmentTargets\n\t //\n\t // In order to avoid exponential backtracking, we use two flags to denote if the production can be\n\t // binding element or assignment target.\n\t //\n\t // The three productions have the relationship:\n\t //\n\t // BindingElements ⊆ AssignmentTargets ⊆ AssignmentExpression\n\t //\n\t // with a single exception that CoverInitializedName when used directly in an Expression, generates\n\t // an early error. Therefore, we need the third state, firstCoverInitializedNameError, to track the\n\t // first usage of CoverInitializedName and report it when we reached the end of the parentheses pair.\n\t //\n\t // isolateCoverGrammar function runs the given parser function with a new cover grammar context, and it does not\n\t // effect the current flags. This means the production the parser parses is only used as an expression. Therefore\n\t // the CoverInitializedName check is conducted.\n\t //\n\t // inheritCoverGrammar function runs the given parse function with a new cover grammar context, and it propagates\n\t // the flags outside of the parser. This means the production the parser parses is used as a part of a potential\n\t // pattern. The CoverInitializedName check is deferred.\n\t Parser.prototype.isolateCoverGrammar = function (parseFunction) {\n\t var previousIsBindingElement = this.context.isBindingElement;\n\t var previousIsAssignmentTarget = this.context.isAssignmentTarget;\n\t var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError;\n\t this.context.isBindingElement = true;\n\t this.context.isAssignmentTarget = true;\n\t this.context.firstCoverInitializedNameError = null;\n\t var result = parseFunction.call(this);\n\t if (this.context.firstCoverInitializedNameError !== null) {\n\t this.throwUnexpectedToken(this.context.firstCoverInitializedNameError);\n\t }\n\t this.context.isBindingElement = previousIsBindingElement;\n\t this.context.isAssignmentTarget = previousIsAssignmentTarget;\n\t this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError;\n\t return result;\n\t };\n\t Parser.prototype.inheritCoverGrammar = function (parseFunction) {\n\t var previousIsBindingElement = this.context.isBindingElement;\n\t var previousIsAssignmentTarget = this.context.isAssignmentTarget;\n\t var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError;\n\t this.context.isBindingElement = true;\n\t this.context.isAssignmentTarget = true;\n\t this.context.firstCoverInitializedNameError = null;\n\t var result = parseFunction.call(this);\n\t this.context.isBindingElement = this.context.isBindingElement && previousIsBindingElement;\n\t this.context.isAssignmentTarget = this.context.isAssignmentTarget && previousIsAssignmentTarget;\n\t this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError || this.context.firstCoverInitializedNameError;\n\t return result;\n\t };\n\t Parser.prototype.consumeSemicolon = function () {\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t else if (!this.hasLineTerminator) {\n\t if (this.lookahead.type !== 2 /* EOF */ && !this.match('}')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t this.lastMarker.index = this.startMarker.index;\n\t this.lastMarker.line = this.startMarker.line;\n\t this.lastMarker.column = this.startMarker.column;\n\t }\n\t };\n\t // https://tc39.github.io/ecma262/#sec-primary-expression\n\t Parser.prototype.parsePrimaryExpression = function () {\n\t var node = this.createNode();\n\t var expr;\n\t var token, raw;\n\t switch (this.lookahead.type) {\n\t case 3 /* Identifier */:\n\t if ((this.context.isModule || this.context.await) && this.lookahead.value === 'await') {\n\t this.tolerateUnexpectedToken(this.lookahead);\n\t }\n\t expr = this.matchAsyncFunction() ? this.parseFunctionExpression() : this.finalize(node, new Node.Identifier(this.nextToken().value));\n\t break;\n\t case 6 /* NumericLiteral */:\n\t case 8 /* StringLiteral */:\n\t if (this.context.strict && this.lookahead.octal) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.StrictOctalLiteral);\n\t }\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t token = this.nextToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.Literal(token.value, raw));\n\t break;\n\t case 1 /* BooleanLiteral */:\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t token = this.nextToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.Literal(token.value === 'true', raw));\n\t break;\n\t case 5 /* NullLiteral */:\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t token = this.nextToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.Literal(null, raw));\n\t break;\n\t case 10 /* Template */:\n\t expr = this.parseTemplateLiteral();\n\t break;\n\t case 7 /* Punctuator */:\n\t switch (this.lookahead.value) {\n\t case '(':\n\t this.context.isBindingElement = false;\n\t expr = this.inheritCoverGrammar(this.parseGroupExpression);\n\t break;\n\t case '[':\n\t expr = this.inheritCoverGrammar(this.parseArrayInitializer);\n\t break;\n\t case '{':\n\t expr = this.inheritCoverGrammar(this.parseObjectInitializer);\n\t break;\n\t case '/':\n\t case '/=':\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t this.scanner.index = this.startMarker.index;\n\t token = this.nextRegexToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.RegexLiteral(token.regex, raw, token.pattern, token.flags));\n\t break;\n\t default:\n\t expr = this.throwUnexpectedToken(this.nextToken());\n\t }\n\t break;\n\t case 4 /* Keyword */:\n\t if (!this.context.strict && this.context.allowYield && this.matchKeyword('yield')) {\n\t expr = this.parseIdentifierName();\n\t }\n\t else if (!this.context.strict && this.matchKeyword('let')) {\n\t expr = this.finalize(node, new Node.Identifier(this.nextToken().value));\n\t }\n\t else {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t if (this.matchKeyword('function')) {\n\t expr = this.parseFunctionExpression();\n\t }\n\t else if (this.matchKeyword('this')) {\n\t this.nextToken();\n\t expr = this.finalize(node, new Node.ThisExpression());\n\t }\n\t else if (this.matchKeyword('class')) {\n\t expr = this.parseClassExpression();\n\t }\n\t else {\n\t expr = this.throwUnexpectedToken(this.nextToken());\n\t }\n\t }\n\t break;\n\t default:\n\t expr = this.throwUnexpectedToken(this.nextToken());\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-array-initializer\n\t Parser.prototype.parseSpreadElement = function () {\n\t var node = this.createNode();\n\t this.expect('...');\n\t var arg = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t return this.finalize(node, new Node.SpreadElement(arg));\n\t };\n\t Parser.prototype.parseArrayInitializer = function () {\n\t var node = this.createNode();\n\t var elements = [];\n\t this.expect('[');\n\t while (!this.match(']')) {\n\t if (this.match(',')) {\n\t this.nextToken();\n\t elements.push(null);\n\t }\n\t else if (this.match('...')) {\n\t var element = this.parseSpreadElement();\n\t if (!this.match(']')) {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t this.expect(',');\n\t }\n\t elements.push(element);\n\t }\n\t else {\n\t elements.push(this.inheritCoverGrammar(this.parseAssignmentExpression));\n\t if (!this.match(']')) {\n\t this.expect(',');\n\t }\n\t }\n\t }\n\t this.expect(']');\n\t return this.finalize(node, new Node.ArrayExpression(elements));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-object-initializer\n\t Parser.prototype.parsePropertyMethod = function (params) {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = params.simple;\n\t var body = this.isolateCoverGrammar(this.parseFunctionSourceElements);\n\t if (this.context.strict && params.firstRestricted) {\n\t this.tolerateUnexpectedToken(params.firstRestricted, params.message);\n\t }\n\t if (this.context.strict && params.stricted) {\n\t this.tolerateUnexpectedToken(params.stricted, params.message);\n\t }\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t return body;\n\t };\n\t Parser.prototype.parsePropertyMethodFunction = function () {\n\t var isGenerator = false;\n\t var node = this.createNode();\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = true;\n\t var params = this.parseFormalParameters();\n\t var method = this.parsePropertyMethod(params);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator));\n\t };\n\t Parser.prototype.parsePropertyMethodAsyncFunction = function () {\n\t var node = this.createNode();\n\t var previousAllowYield = this.context.allowYield;\n\t var previousAwait = this.context.await;\n\t this.context.allowYield = false;\n\t this.context.await = true;\n\t var params = this.parseFormalParameters();\n\t var method = this.parsePropertyMethod(params);\n\t this.context.allowYield = previousAllowYield;\n\t this.context.await = previousAwait;\n\t return this.finalize(node, new Node.AsyncFunctionExpression(null, params.params, method));\n\t };\n\t Parser.prototype.parseObjectPropertyKey = function () {\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t var key;\n\t switch (token.type) {\n\t case 8 /* StringLiteral */:\n\t case 6 /* NumericLiteral */:\n\t if (this.context.strict && token.octal) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictOctalLiteral);\n\t }\n\t var raw = this.getTokenRaw(token);\n\t key = this.finalize(node, new Node.Literal(token.value, raw));\n\t break;\n\t case 3 /* Identifier */:\n\t case 1 /* BooleanLiteral */:\n\t case 5 /* NullLiteral */:\n\t case 4 /* Keyword */:\n\t key = this.finalize(node, new Node.Identifier(token.value));\n\t break;\n\t case 7 /* Punctuator */:\n\t if (token.value === '[') {\n\t key = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t this.expect(']');\n\t }\n\t else {\n\t key = this.throwUnexpectedToken(token);\n\t }\n\t break;\n\t default:\n\t key = this.throwUnexpectedToken(token);\n\t }\n\t return key;\n\t };\n\t Parser.prototype.isPropertyKey = function (key, value) {\n\t return (key.type === syntax_1.Syntax.Identifier && key.name === value) ||\n\t (key.type === syntax_1.Syntax.Literal && key.value === value);\n\t };\n\t Parser.prototype.parseObjectProperty = function (hasProto) {\n\t var node = this.createNode();\n\t var token = this.lookahead;\n\t var kind;\n\t var key = null;\n\t var value = null;\n\t var computed = false;\n\t var method = false;\n\t var shorthand = false;\n\t var isAsync = false;\n\t if (token.type === 3 /* Identifier */) {\n\t var id = token.value;\n\t this.nextToken();\n\t computed = this.match('[');\n\t isAsync = !this.hasLineTerminator && (id === 'async') &&\n\t !this.match(':') && !this.match('(') && !this.match('*') && !this.match(',');\n\t key = isAsync ? this.parseObjectPropertyKey() : this.finalize(node, new Node.Identifier(id));\n\t }\n\t else if (this.match('*')) {\n\t this.nextToken();\n\t }\n\t else {\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t }\n\t var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead);\n\t if (token.type === 3 /* Identifier */ && !isAsync && token.value === 'get' && lookaheadPropertyKey) {\n\t kind = 'get';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t this.context.allowYield = false;\n\t value = this.parseGetterMethod();\n\t }\n\t else if (token.type === 3 /* Identifier */ && !isAsync && token.value === 'set' && lookaheadPropertyKey) {\n\t kind = 'set';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseSetterMethod();\n\t }\n\t else if (token.type === 7 /* Punctuator */ && token.value === '*' && lookaheadPropertyKey) {\n\t kind = 'init';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseGeneratorMethod();\n\t method = true;\n\t }\n\t else {\n\t if (!key) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t kind = 'init';\n\t if (this.match(':') && !isAsync) {\n\t if (!computed && this.isPropertyKey(key, '__proto__')) {\n\t if (hasProto.value) {\n\t this.tolerateError(messages_1.Messages.DuplicateProtoProperty);\n\t }\n\t hasProto.value = true;\n\t }\n\t this.nextToken();\n\t value = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t else if (this.match('(')) {\n\t value = isAsync ? this.parsePropertyMethodAsyncFunction() : this.parsePropertyMethodFunction();\n\t method = true;\n\t }\n\t else if (token.type === 3 /* Identifier */) {\n\t var id = this.finalize(node, new Node.Identifier(token.value));\n\t if (this.match('=')) {\n\t this.context.firstCoverInitializedNameError = this.lookahead;\n\t this.nextToken();\n\t shorthand = true;\n\t var init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t value = this.finalize(node, new Node.AssignmentPattern(id, init));\n\t }\n\t else {\n\t shorthand = true;\n\t value = id;\n\t }\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.nextToken());\n\t }\n\t }\n\t return this.finalize(node, new Node.Property(kind, key, computed, value, method, shorthand));\n\t };\n\t Parser.prototype.parseObjectInitializer = function () {\n\t var node = this.createNode();\n\t this.expect('{');\n\t var properties = [];\n\t var hasProto = { value: false };\n\t while (!this.match('}')) {\n\t properties.push(this.parseObjectProperty(hasProto));\n\t if (!this.match('}')) {\n\t this.expectCommaSeparator();\n\t }\n\t }\n\t this.expect('}');\n\t return this.finalize(node, new Node.ObjectExpression(properties));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-template-literals\n\t Parser.prototype.parseTemplateHead = function () {\n\t assert_1.assert(this.lookahead.head, 'Template literal must start with a template head');\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t var raw = token.value;\n\t var cooked = token.cooked;\n\t return this.finalize(node, new Node.TemplateElement({ raw: raw, cooked: cooked }, token.tail));\n\t };\n\t Parser.prototype.parseTemplateElement = function () {\n\t if (this.lookahead.type !== 10 /* Template */) {\n\t this.throwUnexpectedToken();\n\t }\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t var raw = token.value;\n\t var cooked = token.cooked;\n\t return this.finalize(node, new Node.TemplateElement({ raw: raw, cooked: cooked }, token.tail));\n\t };\n\t Parser.prototype.parseTemplateLiteral = function () {\n\t var node = this.createNode();\n\t var expressions = [];\n\t var quasis = [];\n\t var quasi = this.parseTemplateHead();\n\t quasis.push(quasi);\n\t while (!quasi.tail) {\n\t expressions.push(this.parseExpression());\n\t quasi = this.parseTemplateElement();\n\t quasis.push(quasi);\n\t }\n\t return this.finalize(node, new Node.TemplateLiteral(quasis, expressions));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-grouping-operator\n\t Parser.prototype.reinterpretExpressionAsPattern = function (expr) {\n\t switch (expr.type) {\n\t case syntax_1.Syntax.Identifier:\n\t case syntax_1.Syntax.MemberExpression:\n\t case syntax_1.Syntax.RestElement:\n\t case syntax_1.Syntax.AssignmentPattern:\n\t break;\n\t case syntax_1.Syntax.SpreadElement:\n\t expr.type = syntax_1.Syntax.RestElement;\n\t this.reinterpretExpressionAsPattern(expr.argument);\n\t break;\n\t case syntax_1.Syntax.ArrayExpression:\n\t expr.type = syntax_1.Syntax.ArrayPattern;\n\t for (var i = 0; i < expr.elements.length; i++) {\n\t if (expr.elements[i] !== null) {\n\t this.reinterpretExpressionAsPattern(expr.elements[i]);\n\t }\n\t }\n\t break;\n\t case syntax_1.Syntax.ObjectExpression:\n\t expr.type = syntax_1.Syntax.ObjectPattern;\n\t for (var i = 0; i < expr.properties.length; i++) {\n\t this.reinterpretExpressionAsPattern(expr.properties[i].value);\n\t }\n\t break;\n\t case syntax_1.Syntax.AssignmentExpression:\n\t expr.type = syntax_1.Syntax.AssignmentPattern;\n\t delete expr.operator;\n\t this.reinterpretExpressionAsPattern(expr.left);\n\t break;\n\t default:\n\t // Allow other node type for tolerant parsing.\n\t break;\n\t }\n\t };\n\t Parser.prototype.parseGroupExpression = function () {\n\t var expr;\n\t this.expect('(');\n\t if (this.match(')')) {\n\t this.nextToken();\n\t if (!this.match('=>')) {\n\t this.expect('=>');\n\t }\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [],\n\t async: false\n\t };\n\t }\n\t else {\n\t var startToken = this.lookahead;\n\t var params = [];\n\t if (this.match('...')) {\n\t expr = this.parseRestElement(params);\n\t this.expect(')');\n\t if (!this.match('=>')) {\n\t this.expect('=>');\n\t }\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [expr],\n\t async: false\n\t };\n\t }\n\t else {\n\t var arrow = false;\n\t this.context.isBindingElement = true;\n\t expr = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t if (this.match(',')) {\n\t var expressions = [];\n\t this.context.isAssignmentTarget = false;\n\t expressions.push(expr);\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t if (!this.match(',')) {\n\t break;\n\t }\n\t this.nextToken();\n\t if (this.match(')')) {\n\t this.nextToken();\n\t for (var i = 0; i < expressions.length; i++) {\n\t this.reinterpretExpressionAsPattern(expressions[i]);\n\t }\n\t arrow = true;\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: expressions,\n\t async: false\n\t };\n\t }\n\t else if (this.match('...')) {\n\t if (!this.context.isBindingElement) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t expressions.push(this.parseRestElement(params));\n\t this.expect(')');\n\t if (!this.match('=>')) {\n\t this.expect('=>');\n\t }\n\t this.context.isBindingElement = false;\n\t for (var i = 0; i < expressions.length; i++) {\n\t this.reinterpretExpressionAsPattern(expressions[i]);\n\t }\n\t arrow = true;\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: expressions,\n\t async: false\n\t };\n\t }\n\t else {\n\t expressions.push(this.inheritCoverGrammar(this.parseAssignmentExpression));\n\t }\n\t if (arrow) {\n\t break;\n\t }\n\t }\n\t if (!arrow) {\n\t expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions));\n\t }\n\t }\n\t if (!arrow) {\n\t this.expect(')');\n\t if (this.match('=>')) {\n\t if (expr.type === syntax_1.Syntax.Identifier && expr.name === 'yield') {\n\t arrow = true;\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [expr],\n\t async: false\n\t };\n\t }\n\t if (!arrow) {\n\t if (!this.context.isBindingElement) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t if (expr.type === syntax_1.Syntax.SequenceExpression) {\n\t for (var i = 0; i < expr.expressions.length; i++) {\n\t this.reinterpretExpressionAsPattern(expr.expressions[i]);\n\t }\n\t }\n\t else {\n\t this.reinterpretExpressionAsPattern(expr);\n\t }\n\t var parameters = (expr.type === syntax_1.Syntax.SequenceExpression ? expr.expressions : [expr]);\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: parameters,\n\t async: false\n\t };\n\t }\n\t }\n\t this.context.isBindingElement = false;\n\t }\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-left-hand-side-expressions\n\t Parser.prototype.parseArguments = function () {\n\t this.expect('(');\n\t var args = [];\n\t if (!this.match(')')) {\n\t while (true) {\n\t var expr = this.match('...') ? this.parseSpreadElement() :\n\t this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t args.push(expr);\n\t if (this.match(')')) {\n\t break;\n\t }\n\t this.expectCommaSeparator();\n\t if (this.match(')')) {\n\t break;\n\t }\n\t }\n\t }\n\t this.expect(')');\n\t return args;\n\t };\n\t Parser.prototype.isIdentifierName = function (token) {\n\t return token.type === 3 /* Identifier */ ||\n\t token.type === 4 /* Keyword */ ||\n\t token.type === 1 /* BooleanLiteral */ ||\n\t token.type === 5 /* NullLiteral */;\n\t };\n\t Parser.prototype.parseIdentifierName = function () {\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t if (!this.isIdentifierName(token)) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t return this.finalize(node, new Node.Identifier(token.value));\n\t };\n\t Parser.prototype.parseNewExpression = function () {\n\t var node = this.createNode();\n\t var id = this.parseIdentifierName();\n\t assert_1.assert(id.name === 'new', 'New expression must start with `new`');\n\t var expr;\n\t if (this.match('.')) {\n\t this.nextToken();\n\t if (this.lookahead.type === 3 /* Identifier */ && this.context.inFunctionBody && this.lookahead.value === 'target') {\n\t var property = this.parseIdentifierName();\n\t expr = new Node.MetaProperty(id, property);\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t else {\n\t var callee = this.isolateCoverGrammar(this.parseLeftHandSideExpression);\n\t var args = this.match('(') ? this.parseArguments() : [];\n\t expr = new Node.NewExpression(callee, args);\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t return this.finalize(node, expr);\n\t };\n\t Parser.prototype.parseAsyncArgument = function () {\n\t var arg = this.parseAssignmentExpression();\n\t this.context.firstCoverInitializedNameError = null;\n\t return arg;\n\t };\n\t Parser.prototype.parseAsyncArguments = function () {\n\t this.expect('(');\n\t var args = [];\n\t if (!this.match(')')) {\n\t while (true) {\n\t var expr = this.match('...') ? this.parseSpreadElement() :\n\t this.isolateCoverGrammar(this.parseAsyncArgument);\n\t args.push(expr);\n\t if (this.match(')')) {\n\t break;\n\t }\n\t this.expectCommaSeparator();\n\t if (this.match(')')) {\n\t break;\n\t }\n\t }\n\t }\n\t this.expect(')');\n\t return args;\n\t };\n\t Parser.prototype.parseLeftHandSideExpressionAllowCall = function () {\n\t var startToken = this.lookahead;\n\t var maybeAsync = this.matchContextualKeyword('async');\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = true;\n\t var expr;\n\t if (this.matchKeyword('super') && this.context.inFunctionBody) {\n\t expr = this.createNode();\n\t this.nextToken();\n\t expr = this.finalize(expr, new Node.Super());\n\t if (!this.match('(') && !this.match('.') && !this.match('[')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t else {\n\t expr = this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression);\n\t }\n\t while (true) {\n\t if (this.match('.')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('.');\n\t var property = this.parseIdentifierName();\n\t expr = this.finalize(this.startNode(startToken), new Node.StaticMemberExpression(expr, property));\n\t }\n\t else if (this.match('(')) {\n\t var asyncArrow = maybeAsync && (startToken.lineNumber === this.lookahead.lineNumber);\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = false;\n\t var args = asyncArrow ? this.parseAsyncArguments() : this.parseArguments();\n\t expr = this.finalize(this.startNode(startToken), new Node.CallExpression(expr, args));\n\t if (asyncArrow && this.match('=>')) {\n\t for (var i = 0; i < args.length; ++i) {\n\t this.reinterpretExpressionAsPattern(args[i]);\n\t }\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: args,\n\t async: true\n\t };\n\t }\n\t }\n\t else if (this.match('[')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('[');\n\t var property = this.isolateCoverGrammar(this.parseExpression);\n\t this.expect(']');\n\t expr = this.finalize(this.startNode(startToken), new Node.ComputedMemberExpression(expr, property));\n\t }\n\t else if (this.lookahead.type === 10 /* Template */ && this.lookahead.head) {\n\t var quasi = this.parseTemplateLiteral();\n\t expr = this.finalize(this.startNode(startToken), new Node.TaggedTemplateExpression(expr, quasi));\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t this.context.allowIn = previousAllowIn;\n\t return expr;\n\t };\n\t Parser.prototype.parseSuper = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('super');\n\t if (!this.match('[') && !this.match('.')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t return this.finalize(node, new Node.Super());\n\t };\n\t Parser.prototype.parseLeftHandSideExpression = function () {\n\t assert_1.assert(this.context.allowIn, 'callee of new expression always allow in keyword.');\n\t var node = this.startNode(this.lookahead);\n\t var expr = (this.matchKeyword('super') && this.context.inFunctionBody) ? this.parseSuper() :\n\t this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression);\n\t while (true) {\n\t if (this.match('[')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('[');\n\t var property = this.isolateCoverGrammar(this.parseExpression);\n\t this.expect(']');\n\t expr = this.finalize(node, new Node.ComputedMemberExpression(expr, property));\n\t }\n\t else if (this.match('.')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('.');\n\t var property = this.parseIdentifierName();\n\t expr = this.finalize(node, new Node.StaticMemberExpression(expr, property));\n\t }\n\t else if (this.lookahead.type === 10 /* Template */ && this.lookahead.head) {\n\t var quasi = this.parseTemplateLiteral();\n\t expr = this.finalize(node, new Node.TaggedTemplateExpression(expr, quasi));\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-update-expressions\n\t Parser.prototype.parseUpdateExpression = function () {\n\t var expr;\n\t var startToken = this.lookahead;\n\t if (this.match('++') || this.match('--')) {\n\t var node = this.startNode(startToken);\n\t var token = this.nextToken();\n\t expr = this.inheritCoverGrammar(this.parseUnaryExpression);\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) {\n\t this.tolerateError(messages_1.Messages.StrictLHSPrefix);\n\t }\n\t if (!this.context.isAssignmentTarget) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\n\t }\n\t var prefix = true;\n\t expr = this.finalize(node, new Node.UpdateExpression(token.value, expr, prefix));\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t else {\n\t expr = this.inheritCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\n\t if (!this.hasLineTerminator && this.lookahead.type === 7 /* Punctuator */) {\n\t if (this.match('++') || this.match('--')) {\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) {\n\t this.tolerateError(messages_1.Messages.StrictLHSPostfix);\n\t }\n\t if (!this.context.isAssignmentTarget) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\n\t }\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var operator = this.nextToken().value;\n\t var prefix = false;\n\t expr = this.finalize(this.startNode(startToken), new Node.UpdateExpression(operator, expr, prefix));\n\t }\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-unary-operators\n\t Parser.prototype.parseAwaitExpression = function () {\n\t var node = this.createNode();\n\t this.nextToken();\n\t var argument = this.parseUnaryExpression();\n\t return this.finalize(node, new Node.AwaitExpression(argument));\n\t };\n\t Parser.prototype.parseUnaryExpression = function () {\n\t var expr;\n\t if (this.match('+') || this.match('-') || this.match('~') || this.match('!') ||\n\t this.matchKeyword('delete') || this.matchKeyword('void') || this.matchKeyword('typeof')) {\n\t var node = this.startNode(this.lookahead);\n\t var token = this.nextToken();\n\t expr = this.inheritCoverGrammar(this.parseUnaryExpression);\n\t expr = this.finalize(node, new Node.UnaryExpression(token.value, expr));\n\t if (this.context.strict && expr.operator === 'delete' && expr.argument.type === syntax_1.Syntax.Identifier) {\n\t this.tolerateError(messages_1.Messages.StrictDelete);\n\t }\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t else if (this.context.await && this.matchContextualKeyword('await')) {\n\t expr = this.parseAwaitExpression();\n\t }\n\t else {\n\t expr = this.parseUpdateExpression();\n\t }\n\t return expr;\n\t };\n\t Parser.prototype.parseExponentiationExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.inheritCoverGrammar(this.parseUnaryExpression);\n\t if (expr.type !== syntax_1.Syntax.UnaryExpression && this.match('**')) {\n\t this.nextToken();\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var left = expr;\n\t var right = this.isolateCoverGrammar(this.parseExponentiationExpression);\n\t expr = this.finalize(this.startNode(startToken), new Node.BinaryExpression('**', left, right));\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-exp-operator\n\t // https://tc39.github.io/ecma262/#sec-multiplicative-operators\n\t // https://tc39.github.io/ecma262/#sec-additive-operators\n\t // https://tc39.github.io/ecma262/#sec-bitwise-shift-operators\n\t // https://tc39.github.io/ecma262/#sec-relational-operators\n\t // https://tc39.github.io/ecma262/#sec-equality-operators\n\t // https://tc39.github.io/ecma262/#sec-binary-bitwise-operators\n\t // https://tc39.github.io/ecma262/#sec-binary-logical-operators\n\t Parser.prototype.binaryPrecedence = function (token) {\n\t var op = token.value;\n\t var precedence;\n\t if (token.type === 7 /* Punctuator */) {\n\t precedence = this.operatorPrecedence[op] || 0;\n\t }\n\t else if (token.type === 4 /* Keyword */) {\n\t precedence = (op === 'instanceof' || (this.context.allowIn && op === 'in')) ? 7 : 0;\n\t }\n\t else {\n\t precedence = 0;\n\t }\n\t return precedence;\n\t };\n\t Parser.prototype.parseBinaryExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.inheritCoverGrammar(this.parseExponentiationExpression);\n\t var token = this.lookahead;\n\t var prec = this.binaryPrecedence(token);\n\t if (prec > 0) {\n\t this.nextToken();\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var markers = [startToken, this.lookahead];\n\t var left = expr;\n\t var right = this.isolateCoverGrammar(this.parseExponentiationExpression);\n\t var stack = [left, token.value, right];\n\t var precedences = [prec];\n\t while (true) {\n\t prec = this.binaryPrecedence(this.lookahead);\n\t if (prec <= 0) {\n\t break;\n\t }\n\t // Reduce: make a binary expression from the three topmost entries.\n\t while ((stack.length > 2) && (prec <= precedences[precedences.length - 1])) {\n\t right = stack.pop();\n\t var operator = stack.pop();\n\t precedences.pop();\n\t left = stack.pop();\n\t markers.pop();\n\t var node = this.startNode(markers[markers.length - 1]);\n\t stack.push(this.finalize(node, new Node.BinaryExpression(operator, left, right)));\n\t }\n\t // Shift.\n\t stack.push(this.nextToken().value);\n\t precedences.push(prec);\n\t markers.push(this.lookahead);\n\t stack.push(this.isolateCoverGrammar(this.parseExponentiationExpression));\n\t }\n\t // Final reduce to clean-up the stack.\n\t var i = stack.length - 1;\n\t expr = stack[i];\n\t var lastMarker = markers.pop();\n\t while (i > 1) {\n\t var marker = markers.pop();\n\t var lastLineStart = lastMarker && lastMarker.lineStart;\n\t var node = this.startNode(marker, lastLineStart);\n\t var operator = stack[i - 1];\n\t expr = this.finalize(node, new Node.BinaryExpression(operator, stack[i - 2], expr));\n\t i -= 2;\n\t lastMarker = marker;\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-conditional-operator\n\t Parser.prototype.parseConditionalExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.inheritCoverGrammar(this.parseBinaryExpression);\n\t if (this.match('?')) {\n\t this.nextToken();\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = true;\n\t var consequent = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t this.context.allowIn = previousAllowIn;\n\t this.expect(':');\n\t var alternate = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t expr = this.finalize(this.startNode(startToken), new Node.ConditionalExpression(expr, consequent, alternate));\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-assignment-operators\n\t Parser.prototype.checkPatternParam = function (options, param) {\n\t switch (param.type) {\n\t case syntax_1.Syntax.Identifier:\n\t this.validateParam(options, param, param.name);\n\t break;\n\t case syntax_1.Syntax.RestElement:\n\t this.checkPatternParam(options, param.argument);\n\t break;\n\t case syntax_1.Syntax.AssignmentPattern:\n\t this.checkPatternParam(options, param.left);\n\t break;\n\t case syntax_1.Syntax.ArrayPattern:\n\t for (var i = 0; i < param.elements.length; i++) {\n\t if (param.elements[i] !== null) {\n\t this.checkPatternParam(options, param.elements[i]);\n\t }\n\t }\n\t break;\n\t case syntax_1.Syntax.ObjectPattern:\n\t for (var i = 0; i < param.properties.length; i++) {\n\t this.checkPatternParam(options, param.properties[i].value);\n\t }\n\t break;\n\t default:\n\t break;\n\t }\n\t options.simple = options.simple && (param instanceof Node.Identifier);\n\t };\n\t Parser.prototype.reinterpretAsCoverFormalsList = function (expr) {\n\t var params = [expr];\n\t var options;\n\t var asyncArrow = false;\n\t switch (expr.type) {\n\t case syntax_1.Syntax.Identifier:\n\t break;\n\t case ArrowParameterPlaceHolder:\n\t params = expr.params;\n\t asyncArrow = expr.async;\n\t break;\n\t default:\n\t return null;\n\t }\n\t options = {\n\t simple: true,\n\t paramSet: {}\n\t };\n\t for (var i = 0; i < params.length; ++i) {\n\t var param = params[i];\n\t if (param.type === syntax_1.Syntax.AssignmentPattern) {\n\t if (param.right.type === syntax_1.Syntax.YieldExpression) {\n\t if (param.right.argument) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t param.right.type = syntax_1.Syntax.Identifier;\n\t param.right.name = 'yield';\n\t delete param.right.argument;\n\t delete param.right.delegate;\n\t }\n\t }\n\t else if (asyncArrow && param.type === syntax_1.Syntax.Identifier && param.name === 'await') {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t this.checkPatternParam(options, param);\n\t params[i] = param;\n\t }\n\t if (this.context.strict || !this.context.allowYield) {\n\t for (var i = 0; i < params.length; ++i) {\n\t var param = params[i];\n\t if (param.type === syntax_1.Syntax.YieldExpression) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t }\n\t if (options.message === messages_1.Messages.StrictParamDupe) {\n\t var token = this.context.strict ? options.stricted : options.firstRestricted;\n\t this.throwUnexpectedToken(token, options.message);\n\t }\n\t return {\n\t simple: options.simple,\n\t params: params,\n\t stricted: options.stricted,\n\t firstRestricted: options.firstRestricted,\n\t message: options.message\n\t };\n\t };\n\t Parser.prototype.parseAssignmentExpression = function () {\n\t var expr;\n\t if (!this.context.allowYield && this.matchKeyword('yield')) {\n\t expr = this.parseYieldExpression();\n\t }\n\t else {\n\t var startToken = this.lookahead;\n\t var token = startToken;\n\t expr = this.parseConditionalExpression();\n\t if (token.type === 3 /* Identifier */ && (token.lineNumber === this.lookahead.lineNumber) && token.value === 'async') {\n\t if (this.lookahead.type === 3 /* Identifier */ || this.matchKeyword('yield')) {\n\t var arg = this.parsePrimaryExpression();\n\t this.reinterpretExpressionAsPattern(arg);\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [arg],\n\t async: true\n\t };\n\t }\n\t }\n\t if (expr.type === ArrowParameterPlaceHolder || this.match('=>')) {\n\t // https://tc39.github.io/ecma262/#sec-arrow-function-definitions\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var isAsync = expr.async;\n\t var list = this.reinterpretAsCoverFormalsList(expr);\n\t if (list) {\n\t if (this.hasLineTerminator) {\n\t this.tolerateUnexpectedToken(this.lookahead);\n\t }\n\t this.context.firstCoverInitializedNameError = null;\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = list.simple;\n\t var previousAllowYield = this.context.allowYield;\n\t var previousAwait = this.context.await;\n\t this.context.allowYield = true;\n\t this.context.await = isAsync;\n\t var node = this.startNode(startToken);\n\t this.expect('=>');\n\t var body = void 0;\n\t if (this.match('{')) {\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = true;\n\t body = this.parseFunctionSourceElements();\n\t this.context.allowIn = previousAllowIn;\n\t }\n\t else {\n\t body = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t var expression = body.type !== syntax_1.Syntax.BlockStatement;\n\t if (this.context.strict && list.firstRestricted) {\n\t this.throwUnexpectedToken(list.firstRestricted, list.message);\n\t }\n\t if (this.context.strict && list.stricted) {\n\t this.tolerateUnexpectedToken(list.stricted, list.message);\n\t }\n\t expr = isAsync ? this.finalize(node, new Node.AsyncArrowFunctionExpression(list.params, body, expression)) :\n\t this.finalize(node, new Node.ArrowFunctionExpression(list.params, body, expression));\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t this.context.allowYield = previousAllowYield;\n\t this.context.await = previousAwait;\n\t }\n\t }\n\t else {\n\t if (this.matchAssign()) {\n\t if (!this.context.isAssignmentTarget) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\n\t }\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier) {\n\t var id = expr;\n\t if (this.scanner.isRestrictedWord(id.name)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictLHSAssignment);\n\t }\n\t if (this.scanner.isStrictModeReservedWord(id.name)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\n\t }\n\t }\n\t if (!this.match('=')) {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t else {\n\t this.reinterpretExpressionAsPattern(expr);\n\t }\n\t token = this.nextToken();\n\t var operator = token.value;\n\t var right = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t expr = this.finalize(this.startNode(startToken), new Node.AssignmentExpression(operator, expr, right));\n\t this.context.firstCoverInitializedNameError = null;\n\t }\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-comma-operator\n\t Parser.prototype.parseExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t if (this.match(',')) {\n\t var expressions = [];\n\t expressions.push(expr);\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t if (!this.match(',')) {\n\t break;\n\t }\n\t this.nextToken();\n\t expressions.push(this.isolateCoverGrammar(this.parseAssignmentExpression));\n\t }\n\t expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions));\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-block\n\t Parser.prototype.parseStatementListItem = function () {\n\t var statement;\n\t this.context.isAssignmentTarget = true;\n\t this.context.isBindingElement = true;\n\t if (this.lookahead.type === 4 /* Keyword */) {\n\t switch (this.lookahead.value) {\n\t case 'export':\n\t if (!this.context.isModule) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalExportDeclaration);\n\t }\n\t statement = this.parseExportDeclaration();\n\t break;\n\t case 'import':\n\t if (!this.context.isModule) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalImportDeclaration);\n\t }\n\t statement = this.parseImportDeclaration();\n\t break;\n\t case 'const':\n\t statement = this.parseLexicalDeclaration({ inFor: false });\n\t break;\n\t case 'function':\n\t statement = this.parseFunctionDeclaration();\n\t break;\n\t case 'class':\n\t statement = this.parseClassDeclaration();\n\t break;\n\t case 'let':\n\t statement = this.isLexicalDeclaration() ? this.parseLexicalDeclaration({ inFor: false }) : this.parseStatement();\n\t break;\n\t default:\n\t statement = this.parseStatement();\n\t break;\n\t }\n\t }\n\t else {\n\t statement = this.parseStatement();\n\t }\n\t return statement;\n\t };\n\t Parser.prototype.parseBlock = function () {\n\t var node = this.createNode();\n\t this.expect('{');\n\t var block = [];\n\t while (true) {\n\t if (this.match('}')) {\n\t break;\n\t }\n\t block.push(this.parseStatementListItem());\n\t }\n\t this.expect('}');\n\t return this.finalize(node, new Node.BlockStatement(block));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-let-and-const-declarations\n\t Parser.prototype.parseLexicalBinding = function (kind, options) {\n\t var node = this.createNode();\n\t var params = [];\n\t var id = this.parsePattern(params, kind);\n\t if (this.context.strict && id.type === syntax_1.Syntax.Identifier) {\n\t if (this.scanner.isRestrictedWord(id.name)) {\n\t this.tolerateError(messages_1.Messages.StrictVarName);\n\t }\n\t }\n\t var init = null;\n\t if (kind === 'const') {\n\t if (!this.matchKeyword('in') && !this.matchContextualKeyword('of')) {\n\t if (this.match('=')) {\n\t this.nextToken();\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t else {\n\t this.throwError(messages_1.Messages.DeclarationMissingInitializer, 'const');\n\t }\n\t }\n\t }\n\t else if ((!options.inFor && id.type !== syntax_1.Syntax.Identifier) || this.match('=')) {\n\t this.expect('=');\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t return this.finalize(node, new Node.VariableDeclarator(id, init));\n\t };\n\t Parser.prototype.parseBindingList = function (kind, options) {\n\t var list = [this.parseLexicalBinding(kind, options)];\n\t while (this.match(',')) {\n\t this.nextToken();\n\t list.push(this.parseLexicalBinding(kind, options));\n\t }\n\t return list;\n\t };\n\t Parser.prototype.isLexicalDeclaration = function () {\n\t var state = this.scanner.saveState();\n\t this.scanner.scanComments();\n\t var next = this.scanner.lex();\n\t this.scanner.restoreState(state);\n\t return (next.type === 3 /* Identifier */) ||\n\t (next.type === 7 /* Punctuator */ && next.value === '[') ||\n\t (next.type === 7 /* Punctuator */ && next.value === '{') ||\n\t (next.type === 4 /* Keyword */ && next.value === 'let') ||\n\t (next.type === 4 /* Keyword */ && next.value === 'yield');\n\t };\n\t Parser.prototype.parseLexicalDeclaration = function (options) {\n\t var node = this.createNode();\n\t var kind = this.nextToken().value;\n\t assert_1.assert(kind === 'let' || kind === 'const', 'Lexical declaration must be either let or const');\n\t var declarations = this.parseBindingList(kind, options);\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.VariableDeclaration(declarations, kind));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-destructuring-binding-patterns\n\t Parser.prototype.parseBindingRestElement = function (params, kind) {\n\t var node = this.createNode();\n\t this.expect('...');\n\t var arg = this.parsePattern(params, kind);\n\t return this.finalize(node, new Node.RestElement(arg));\n\t };\n\t Parser.prototype.parseArrayPattern = function (params, kind) {\n\t var node = this.createNode();\n\t this.expect('[');\n\t var elements = [];\n\t while (!this.match(']')) {\n\t if (this.match(',')) {\n\t this.nextToken();\n\t elements.push(null);\n\t }\n\t else {\n\t if (this.match('...')) {\n\t elements.push(this.parseBindingRestElement(params, kind));\n\t break;\n\t }\n\t else {\n\t elements.push(this.parsePatternWithDefault(params, kind));\n\t }\n\t if (!this.match(']')) {\n\t this.expect(',');\n\t }\n\t }\n\t }\n\t this.expect(']');\n\t return this.finalize(node, new Node.ArrayPattern(elements));\n\t };\n\t Parser.prototype.parsePropertyPattern = function (params, kind) {\n\t var node = this.createNode();\n\t var computed = false;\n\t var shorthand = false;\n\t var method = false;\n\t var key;\n\t var value;\n\t if (this.lookahead.type === 3 /* Identifier */) {\n\t var keyToken = this.lookahead;\n\t key = this.parseVariableIdentifier();\n\t var init = this.finalize(node, new Node.Identifier(keyToken.value));\n\t if (this.match('=')) {\n\t params.push(keyToken);\n\t shorthand = true;\n\t this.nextToken();\n\t var expr = this.parseAssignmentExpression();\n\t value = this.finalize(this.startNode(keyToken), new Node.AssignmentPattern(init, expr));\n\t }\n\t else if (!this.match(':')) {\n\t params.push(keyToken);\n\t shorthand = true;\n\t value = init;\n\t }\n\t else {\n\t this.expect(':');\n\t value = this.parsePatternWithDefault(params, kind);\n\t }\n\t }\n\t else {\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t this.expect(':');\n\t value = this.parsePatternWithDefault(params, kind);\n\t }\n\t return this.finalize(node, new Node.Property('init', key, computed, value, method, shorthand));\n\t };\n\t Parser.prototype.parseObjectPattern = function (params, kind) {\n\t var node = this.createNode();\n\t var properties = [];\n\t this.expect('{');\n\t while (!this.match('}')) {\n\t properties.push(this.parsePropertyPattern(params, kind));\n\t if (!this.match('}')) {\n\t this.expect(',');\n\t }\n\t }\n\t this.expect('}');\n\t return this.finalize(node, new Node.ObjectPattern(properties));\n\t };\n\t Parser.prototype.parsePattern = function (params, kind) {\n\t var pattern;\n\t if (this.match('[')) {\n\t pattern = this.parseArrayPattern(params, kind);\n\t }\n\t else if (this.match('{')) {\n\t pattern = this.parseObjectPattern(params, kind);\n\t }\n\t else {\n\t if (this.matchKeyword('let') && (kind === 'const' || kind === 'let')) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.LetInLexicalBinding);\n\t }\n\t params.push(this.lookahead);\n\t pattern = this.parseVariableIdentifier(kind);\n\t }\n\t return pattern;\n\t };\n\t Parser.prototype.parsePatternWithDefault = function (params, kind) {\n\t var startToken = this.lookahead;\n\t var pattern = this.parsePattern(params, kind);\n\t if (this.match('=')) {\n\t this.nextToken();\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = true;\n\t var right = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t this.context.allowYield = previousAllowYield;\n\t pattern = this.finalize(this.startNode(startToken), new Node.AssignmentPattern(pattern, right));\n\t }\n\t return pattern;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-variable-statement\n\t Parser.prototype.parseVariableIdentifier = function (kind) {\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t if (token.type === 4 /* Keyword */ && token.value === 'yield') {\n\t if (this.context.strict) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\n\t }\n\t else if (!this.context.allowYield) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t }\n\t else if (token.type !== 3 /* Identifier */) {\n\t if (this.context.strict && token.type === 4 /* Keyword */ && this.scanner.isStrictModeReservedWord(token.value)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\n\t }\n\t else {\n\t if (this.context.strict || token.value !== 'let' || kind !== 'var') {\n\t this.throwUnexpectedToken(token);\n\t }\n\t }\n\t }\n\t else if ((this.context.isModule || this.context.await) && token.type === 3 /* Identifier */ && token.value === 'await') {\n\t this.tolerateUnexpectedToken(token);\n\t }\n\t return this.finalize(node, new Node.Identifier(token.value));\n\t };\n\t Parser.prototype.parseVariableDeclaration = function (options) {\n\t var node = this.createNode();\n\t var params = [];\n\t var id = this.parsePattern(params, 'var');\n\t if (this.context.strict && id.type === syntax_1.Syntax.Identifier) {\n\t if (this.scanner.isRestrictedWord(id.name)) {\n\t this.tolerateError(messages_1.Messages.StrictVarName);\n\t }\n\t }\n\t var init = null;\n\t if (this.match('=')) {\n\t this.nextToken();\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t else if (id.type !== syntax_1.Syntax.Identifier && !options.inFor) {\n\t this.expect('=');\n\t }\n\t return this.finalize(node, new Node.VariableDeclarator(id, init));\n\t };\n\t Parser.prototype.parseVariableDeclarationList = function (options) {\n\t var opt = { inFor: options.inFor };\n\t var list = [];\n\t list.push(this.parseVariableDeclaration(opt));\n\t while (this.match(',')) {\n\t this.nextToken();\n\t list.push(this.parseVariableDeclaration(opt));\n\t }\n\t return list;\n\t };\n\t Parser.prototype.parseVariableStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('var');\n\t var declarations = this.parseVariableDeclarationList({ inFor: false });\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.VariableDeclaration(declarations, 'var'));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-empty-statement\n\t Parser.prototype.parseEmptyStatement = function () {\n\t var node = this.createNode();\n\t this.expect(';');\n\t return this.finalize(node, new Node.EmptyStatement());\n\t };\n\t // https://tc39.github.io/ecma262/#sec-expression-statement\n\t Parser.prototype.parseExpressionStatement = function () {\n\t var node = this.createNode();\n\t var expr = this.parseExpression();\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ExpressionStatement(expr));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-if-statement\n\t Parser.prototype.parseIfClause = function () {\n\t if (this.context.strict && this.matchKeyword('function')) {\n\t this.tolerateError(messages_1.Messages.StrictFunction);\n\t }\n\t return this.parseStatement();\n\t };\n\t Parser.prototype.parseIfStatement = function () {\n\t var node = this.createNode();\n\t var consequent;\n\t var alternate = null;\n\t this.expectKeyword('if');\n\t this.expect('(');\n\t var test = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t consequent = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t consequent = this.parseIfClause();\n\t if (this.matchKeyword('else')) {\n\t this.nextToken();\n\t alternate = this.parseIfClause();\n\t }\n\t }\n\t return this.finalize(node, new Node.IfStatement(test, consequent, alternate));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-do-while-statement\n\t Parser.prototype.parseDoWhileStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('do');\n\t var previousInIteration = this.context.inIteration;\n\t this.context.inIteration = true;\n\t var body = this.parseStatement();\n\t this.context.inIteration = previousInIteration;\n\t this.expectKeyword('while');\n\t this.expect('(');\n\t var test = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t }\n\t else {\n\t this.expect(')');\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t }\n\t return this.finalize(node, new Node.DoWhileStatement(body, test));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-while-statement\n\t Parser.prototype.parseWhileStatement = function () {\n\t var node = this.createNode();\n\t var body;\n\t this.expectKeyword('while');\n\t this.expect('(');\n\t var test = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t var previousInIteration = this.context.inIteration;\n\t this.context.inIteration = true;\n\t body = this.parseStatement();\n\t this.context.inIteration = previousInIteration;\n\t }\n\t return this.finalize(node, new Node.WhileStatement(test, body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-for-statement\n\t // https://tc39.github.io/ecma262/#sec-for-in-and-for-of-statements\n\t Parser.prototype.parseForStatement = function () {\n\t var init = null;\n\t var test = null;\n\t var update = null;\n\t var forIn = true;\n\t var left, right;\n\t var node = this.createNode();\n\t this.expectKeyword('for');\n\t this.expect('(');\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t else {\n\t if (this.matchKeyword('var')) {\n\t init = this.createNode();\n\t this.nextToken();\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = false;\n\t var declarations = this.parseVariableDeclarationList({ inFor: true });\n\t this.context.allowIn = previousAllowIn;\n\t if (declarations.length === 1 && this.matchKeyword('in')) {\n\t var decl = declarations[0];\n\t if (decl.init && (decl.id.type === syntax_1.Syntax.ArrayPattern || decl.id.type === syntax_1.Syntax.ObjectPattern || this.context.strict)) {\n\t this.tolerateError(messages_1.Messages.ForInOfLoopInitializer, 'for-in');\n\t }\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseAssignmentExpression();\n\t init = null;\n\t forIn = false;\n\t }\n\t else {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\n\t this.expect(';');\n\t }\n\t }\n\t else if (this.matchKeyword('const') || this.matchKeyword('let')) {\n\t init = this.createNode();\n\t var kind = this.nextToken().value;\n\t if (!this.context.strict && this.lookahead.value === 'in') {\n\t init = this.finalize(init, new Node.Identifier(kind));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else {\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = false;\n\t var declarations = this.parseBindingList(kind, { inFor: true });\n\t this.context.allowIn = previousAllowIn;\n\t if (declarations.length === 1 && declarations[0].init === null && this.matchKeyword('in')) {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseAssignmentExpression();\n\t init = null;\n\t forIn = false;\n\t }\n\t else {\n\t this.consumeSemicolon();\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\n\t }\n\t }\n\t }\n\t else {\n\t var initStartToken = this.lookahead;\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = false;\n\t init = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t this.context.allowIn = previousAllowIn;\n\t if (this.matchKeyword('in')) {\n\t if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInForIn);\n\t }\n\t this.nextToken();\n\t this.reinterpretExpressionAsPattern(init);\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else if (this.matchContextualKeyword('of')) {\n\t if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInForLoop);\n\t }\n\t this.nextToken();\n\t this.reinterpretExpressionAsPattern(init);\n\t left = init;\n\t right = this.parseAssignmentExpression();\n\t init = null;\n\t forIn = false;\n\t }\n\t else {\n\t if (this.match(',')) {\n\t var initSeq = [init];\n\t while (this.match(',')) {\n\t this.nextToken();\n\t initSeq.push(this.isolateCoverGrammar(this.parseAssignmentExpression));\n\t }\n\t init = this.finalize(this.startNode(initStartToken), new Node.SequenceExpression(initSeq));\n\t }\n\t this.expect(';');\n\t }\n\t }\n\t }\n\t if (typeof left === 'undefined') {\n\t if (!this.match(';')) {\n\t test = this.parseExpression();\n\t }\n\t this.expect(';');\n\t if (!this.match(')')) {\n\t update = this.parseExpression();\n\t }\n\t }\n\t var body;\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t var previousInIteration = this.context.inIteration;\n\t this.context.inIteration = true;\n\t body = this.isolateCoverGrammar(this.parseStatement);\n\t this.context.inIteration = previousInIteration;\n\t }\n\t return (typeof left === 'undefined') ?\n\t this.finalize(node, new Node.ForStatement(init, test, update, body)) :\n\t forIn ? this.finalize(node, new Node.ForInStatement(left, right, body)) :\n\t this.finalize(node, new Node.ForOfStatement(left, right, body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-continue-statement\n\t Parser.prototype.parseContinueStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('continue');\n\t var label = null;\n\t if (this.lookahead.type === 3 /* Identifier */ && !this.hasLineTerminator) {\n\t var id = this.parseVariableIdentifier();\n\t label = id;\n\t var key = '$' + id.name;\n\t if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\n\t this.throwError(messages_1.Messages.UnknownLabel, id.name);\n\t }\n\t }\n\t this.consumeSemicolon();\n\t if (label === null && !this.context.inIteration) {\n\t this.throwError(messages_1.Messages.IllegalContinue);\n\t }\n\t return this.finalize(node, new Node.ContinueStatement(label));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-break-statement\n\t Parser.prototype.parseBreakStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('break');\n\t var label = null;\n\t if (this.lookahead.type === 3 /* Identifier */ && !this.hasLineTerminator) {\n\t var id = this.parseVariableIdentifier();\n\t var key = '$' + id.name;\n\t if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\n\t this.throwError(messages_1.Messages.UnknownLabel, id.name);\n\t }\n\t label = id;\n\t }\n\t this.consumeSemicolon();\n\t if (label === null && !this.context.inIteration && !this.context.inSwitch) {\n\t this.throwError(messages_1.Messages.IllegalBreak);\n\t }\n\t return this.finalize(node, new Node.BreakStatement(label));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-return-statement\n\t Parser.prototype.parseReturnStatement = function () {\n\t if (!this.context.inFunctionBody) {\n\t this.tolerateError(messages_1.Messages.IllegalReturn);\n\t }\n\t var node = this.createNode();\n\t this.expectKeyword('return');\n\t var hasArgument = (!this.match(';') && !this.match('}') &&\n\t !this.hasLineTerminator && this.lookahead.type !== 2 /* EOF */) ||\n\t this.lookahead.type === 8 /* StringLiteral */ ||\n\t this.lookahead.type === 10 /* Template */;\n\t var argument = hasArgument ? this.parseExpression() : null;\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ReturnStatement(argument));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-with-statement\n\t Parser.prototype.parseWithStatement = function () {\n\t if (this.context.strict) {\n\t this.tolerateError(messages_1.Messages.StrictModeWith);\n\t }\n\t var node = this.createNode();\n\t var body;\n\t this.expectKeyword('with');\n\t this.expect('(');\n\t var object = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t body = this.parseStatement();\n\t }\n\t return this.finalize(node, new Node.WithStatement(object, body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-switch-statement\n\t Parser.prototype.parseSwitchCase = function () {\n\t var node = this.createNode();\n\t var test;\n\t if (this.matchKeyword('default')) {\n\t this.nextToken();\n\t test = null;\n\t }\n\t else {\n\t this.expectKeyword('case');\n\t test = this.parseExpression();\n\t }\n\t this.expect(':');\n\t var consequent = [];\n\t while (true) {\n\t if (this.match('}') || this.matchKeyword('default') || this.matchKeyword('case')) {\n\t break;\n\t }\n\t consequent.push(this.parseStatementListItem());\n\t }\n\t return this.finalize(node, new Node.SwitchCase(test, consequent));\n\t };\n\t Parser.prototype.parseSwitchStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('switch');\n\t this.expect('(');\n\t var discriminant = this.parseExpression();\n\t this.expect(')');\n\t var previousInSwitch = this.context.inSwitch;\n\t this.context.inSwitch = true;\n\t var cases = [];\n\t var defaultFound = false;\n\t this.expect('{');\n\t while (true) {\n\t if (this.match('}')) {\n\t break;\n\t }\n\t var clause = this.parseSwitchCase();\n\t if (clause.test === null) {\n\t if (defaultFound) {\n\t this.throwError(messages_1.Messages.MultipleDefaultsInSwitch);\n\t }\n\t defaultFound = true;\n\t }\n\t cases.push(clause);\n\t }\n\t this.expect('}');\n\t this.context.inSwitch = previousInSwitch;\n\t return this.finalize(node, new Node.SwitchStatement(discriminant, cases));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-labelled-statements\n\t Parser.prototype.parseLabelledStatement = function () {\n\t var node = this.createNode();\n\t var expr = this.parseExpression();\n\t var statement;\n\t if ((expr.type === syntax_1.Syntax.Identifier) && this.match(':')) {\n\t this.nextToken();\n\t var id = expr;\n\t var key = '$' + id.name;\n\t if (Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\n\t this.throwError(messages_1.Messages.Redeclaration, 'Label', id.name);\n\t }\n\t this.context.labelSet[key] = true;\n\t var body = void 0;\n\t if (this.matchKeyword('class')) {\n\t this.tolerateUnexpectedToken(this.lookahead);\n\t body = this.parseClassDeclaration();\n\t }\n\t else if (this.matchKeyword('function')) {\n\t var token = this.lookahead;\n\t var declaration = this.parseFunctionDeclaration();\n\t if (this.context.strict) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunction);\n\t }\n\t else if (declaration.generator) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.GeneratorInLegacyContext);\n\t }\n\t body = declaration;\n\t }\n\t else {\n\t body = this.parseStatement();\n\t }\n\t delete this.context.labelSet[key];\n\t statement = new Node.LabeledStatement(id, body);\n\t }\n\t else {\n\t this.consumeSemicolon();\n\t statement = new Node.ExpressionStatement(expr);\n\t }\n\t return this.finalize(node, statement);\n\t };\n\t // https://tc39.github.io/ecma262/#sec-throw-statement\n\t Parser.prototype.parseThrowStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('throw');\n\t if (this.hasLineTerminator) {\n\t this.throwError(messages_1.Messages.NewlineAfterThrow);\n\t }\n\t var argument = this.parseExpression();\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ThrowStatement(argument));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-try-statement\n\t Parser.prototype.parseCatchClause = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('catch');\n\t this.expect('(');\n\t if (this.match(')')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t var params = [];\n\t var param = this.parsePattern(params);\n\t var paramMap = {};\n\t for (var i = 0; i < params.length; i++) {\n\t var key = '$' + params[i].value;\n\t if (Object.prototype.hasOwnProperty.call(paramMap, key)) {\n\t this.tolerateError(messages_1.Messages.DuplicateBinding, params[i].value);\n\t }\n\t paramMap[key] = true;\n\t }\n\t if (this.context.strict && param.type === syntax_1.Syntax.Identifier) {\n\t if (this.scanner.isRestrictedWord(param.name)) {\n\t this.tolerateError(messages_1.Messages.StrictCatchVariable);\n\t }\n\t }\n\t this.expect(')');\n\t var body = this.parseBlock();\n\t return this.finalize(node, new Node.CatchClause(param, body));\n\t };\n\t Parser.prototype.parseFinallyClause = function () {\n\t this.expectKeyword('finally');\n\t return this.parseBlock();\n\t };\n\t Parser.prototype.parseTryStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('try');\n\t var block = this.parseBlock();\n\t var handler = this.matchKeyword('catch') ? this.parseCatchClause() : null;\n\t var finalizer = this.matchKeyword('finally') ? this.parseFinallyClause() : null;\n\t if (!handler && !finalizer) {\n\t this.throwError(messages_1.Messages.NoCatchOrFinally);\n\t }\n\t return this.finalize(node, new Node.TryStatement(block, handler, finalizer));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-debugger-statement\n\t Parser.prototype.parseDebuggerStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('debugger');\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.DebuggerStatement());\n\t };\n\t // https://tc39.github.io/ecma262/#sec-ecmascript-language-statements-and-declarations\n\t Parser.prototype.parseStatement = function () {\n\t var statement;\n\t switch (this.lookahead.type) {\n\t case 1 /* BooleanLiteral */:\n\t case 5 /* NullLiteral */:\n\t case 6 /* NumericLiteral */:\n\t case 8 /* StringLiteral */:\n\t case 10 /* Template */:\n\t case 9 /* RegularExpression */:\n\t statement = this.parseExpressionStatement();\n\t break;\n\t case 7 /* Punctuator */:\n\t var value = this.lookahead.value;\n\t if (value === '{') {\n\t statement = this.parseBlock();\n\t }\n\t else if (value === '(') {\n\t statement = this.parseExpressionStatement();\n\t }\n\t else if (value === ';') {\n\t statement = this.parseEmptyStatement();\n\t }\n\t else {\n\t statement = this.parseExpressionStatement();\n\t }\n\t break;\n\t case 3 /* Identifier */:\n\t statement = this.matchAsyncFunction() ? this.parseFunctionDeclaration() : this.parseLabelledStatement();\n\t break;\n\t case 4 /* Keyword */:\n\t switch (this.lookahead.value) {\n\t case 'break':\n\t statement = this.parseBreakStatement();\n\t break;\n\t case 'continue':\n\t statement = this.parseContinueStatement();\n\t break;\n\t case 'debugger':\n\t statement = this.parseDebuggerStatement();\n\t break;\n\t case 'do':\n\t statement = this.parseDoWhileStatement();\n\t break;\n\t case 'for':\n\t statement = this.parseForStatement();\n\t break;\n\t case 'function':\n\t statement = this.parseFunctionDeclaration();\n\t break;\n\t case 'if':\n\t statement = this.parseIfStatement();\n\t break;\n\t case 'return':\n\t statement = this.parseReturnStatement();\n\t break;\n\t case 'switch':\n\t statement = this.parseSwitchStatement();\n\t break;\n\t case 'throw':\n\t statement = this.parseThrowStatement();\n\t break;\n\t case 'try':\n\t statement = this.parseTryStatement();\n\t break;\n\t case 'var':\n\t statement = this.parseVariableStatement();\n\t break;\n\t case 'while':\n\t statement = this.parseWhileStatement();\n\t break;\n\t case 'with':\n\t statement = this.parseWithStatement();\n\t break;\n\t default:\n\t statement = this.parseExpressionStatement();\n\t break;\n\t }\n\t break;\n\t default:\n\t statement = this.throwUnexpectedToken(this.lookahead);\n\t }\n\t return statement;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-function-definitions\n\t Parser.prototype.parseFunctionSourceElements = function () {\n\t var node = this.createNode();\n\t this.expect('{');\n\t var body = this.parseDirectivePrologues();\n\t var previousLabelSet = this.context.labelSet;\n\t var previousInIteration = this.context.inIteration;\n\t var previousInSwitch = this.context.inSwitch;\n\t var previousInFunctionBody = this.context.inFunctionBody;\n\t this.context.labelSet = {};\n\t this.context.inIteration = false;\n\t this.context.inSwitch = false;\n\t this.context.inFunctionBody = true;\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t if (this.match('}')) {\n\t break;\n\t }\n\t body.push(this.parseStatementListItem());\n\t }\n\t this.expect('}');\n\t this.context.labelSet = previousLabelSet;\n\t this.context.inIteration = previousInIteration;\n\t this.context.inSwitch = previousInSwitch;\n\t this.context.inFunctionBody = previousInFunctionBody;\n\t return this.finalize(node, new Node.BlockStatement(body));\n\t };\n\t Parser.prototype.validateParam = function (options, param, name) {\n\t var key = '$' + name;\n\t if (this.context.strict) {\n\t if (this.scanner.isRestrictedWord(name)) {\n\t options.stricted = param;\n\t options.message = messages_1.Messages.StrictParamName;\n\t }\n\t if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) {\n\t options.stricted = param;\n\t options.message = messages_1.Messages.StrictParamDupe;\n\t }\n\t }\n\t else if (!options.firstRestricted) {\n\t if (this.scanner.isRestrictedWord(name)) {\n\t options.firstRestricted = param;\n\t options.message = messages_1.Messages.StrictParamName;\n\t }\n\t else if (this.scanner.isStrictModeReservedWord(name)) {\n\t options.firstRestricted = param;\n\t options.message = messages_1.Messages.StrictReservedWord;\n\t }\n\t else if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) {\n\t options.stricted = param;\n\t options.message = messages_1.Messages.StrictParamDupe;\n\t }\n\t }\n\t /* istanbul ignore next */\n\t if (typeof Object.defineProperty === 'function') {\n\t Object.defineProperty(options.paramSet, key, { value: true, enumerable: true, writable: true, configurable: true });\n\t }\n\t else {\n\t options.paramSet[key] = true;\n\t }\n\t };\n\t Parser.prototype.parseRestElement = function (params) {\n\t var node = this.createNode();\n\t this.expect('...');\n\t var arg = this.parsePattern(params);\n\t if (this.match('=')) {\n\t this.throwError(messages_1.Messages.DefaultRestParameter);\n\t }\n\t if (!this.match(')')) {\n\t this.throwError(messages_1.Messages.ParameterAfterRestParameter);\n\t }\n\t return this.finalize(node, new Node.RestElement(arg));\n\t };\n\t Parser.prototype.parseFormalParameter = function (options) {\n\t var params = [];\n\t var param = this.match('...') ? this.parseRestElement(params) : this.parsePatternWithDefault(params);\n\t for (var i = 0; i < params.length; i++) {\n\t this.validateParam(options, params[i], params[i].value);\n\t }\n\t options.simple = options.simple && (param instanceof Node.Identifier);\n\t options.params.push(param);\n\t };\n\t Parser.prototype.parseFormalParameters = function (firstRestricted) {\n\t var options;\n\t options = {\n\t simple: true,\n\t params: [],\n\t firstRestricted: firstRestricted\n\t };\n\t this.expect('(');\n\t if (!this.match(')')) {\n\t options.paramSet = {};\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t this.parseFormalParameter(options);\n\t if (this.match(')')) {\n\t break;\n\t }\n\t this.expect(',');\n\t if (this.match(')')) {\n\t break;\n\t }\n\t }\n\t }\n\t this.expect(')');\n\t return {\n\t simple: options.simple,\n\t params: options.params,\n\t stricted: options.stricted,\n\t firstRestricted: options.firstRestricted,\n\t message: options.message\n\t };\n\t };\n\t Parser.prototype.matchAsyncFunction = function () {\n\t var match = this.matchContextualKeyword('async');\n\t if (match) {\n\t var state = this.scanner.saveState();\n\t this.scanner.scanComments();\n\t var next = this.scanner.lex();\n\t this.scanner.restoreState(state);\n\t match = (state.lineNumber === next.lineNumber) && (next.type === 4 /* Keyword */) && (next.value === 'function');\n\t }\n\t return match;\n\t };\n\t Parser.prototype.parseFunctionDeclaration = function (identifierIsOptional) {\n\t var node = this.createNode();\n\t var isAsync = this.matchContextualKeyword('async');\n\t if (isAsync) {\n\t this.nextToken();\n\t }\n\t this.expectKeyword('function');\n\t var isGenerator = isAsync ? false : this.match('*');\n\t if (isGenerator) {\n\t this.nextToken();\n\t }\n\t var message;\n\t var id = null;\n\t var firstRestricted = null;\n\t if (!identifierIsOptional || !this.match('(')) {\n\t var token = this.lookahead;\n\t id = this.parseVariableIdentifier();\n\t if (this.context.strict) {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName);\n\t }\n\t }\n\t else {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictFunctionName;\n\t }\n\t else if (this.scanner.isStrictModeReservedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictReservedWord;\n\t }\n\t }\n\t }\n\t var previousAllowAwait = this.context.await;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.await = isAsync;\n\t this.context.allowYield = !isGenerator;\n\t var formalParameters = this.parseFormalParameters(firstRestricted);\n\t var params = formalParameters.params;\n\t var stricted = formalParameters.stricted;\n\t firstRestricted = formalParameters.firstRestricted;\n\t if (formalParameters.message) {\n\t message = formalParameters.message;\n\t }\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = formalParameters.simple;\n\t var body = this.parseFunctionSourceElements();\n\t if (this.context.strict && firstRestricted) {\n\t this.throwUnexpectedToken(firstRestricted, message);\n\t }\n\t if (this.context.strict && stricted) {\n\t this.tolerateUnexpectedToken(stricted, message);\n\t }\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t this.context.await = previousAllowAwait;\n\t this.context.allowYield = previousAllowYield;\n\t return isAsync ? this.finalize(node, new Node.AsyncFunctionDeclaration(id, params, body)) :\n\t this.finalize(node, new Node.FunctionDeclaration(id, params, body, isGenerator));\n\t };\n\t Parser.prototype.parseFunctionExpression = function () {\n\t var node = this.createNode();\n\t var isAsync = this.matchContextualKeyword('async');\n\t if (isAsync) {\n\t this.nextToken();\n\t }\n\t this.expectKeyword('function');\n\t var isGenerator = isAsync ? false : this.match('*');\n\t if (isGenerator) {\n\t this.nextToken();\n\t }\n\t var message;\n\t var id = null;\n\t var firstRestricted;\n\t var previousAllowAwait = this.context.await;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.await = isAsync;\n\t this.context.allowYield = !isGenerator;\n\t if (!this.match('(')) {\n\t var token = this.lookahead;\n\t id = (!this.context.strict && !isGenerator && this.matchKeyword('yield')) ? this.parseIdentifierName() : this.parseVariableIdentifier();\n\t if (this.context.strict) {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName);\n\t }\n\t }\n\t else {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictFunctionName;\n\t }\n\t else if (this.scanner.isStrictModeReservedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictReservedWord;\n\t }\n\t }\n\t }\n\t var formalParameters = this.parseFormalParameters(firstRestricted);\n\t var params = formalParameters.params;\n\t var stricted = formalParameters.stricted;\n\t firstRestricted = formalParameters.firstRestricted;\n\t if (formalParameters.message) {\n\t message = formalParameters.message;\n\t }\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = formalParameters.simple;\n\t var body = this.parseFunctionSourceElements();\n\t if (this.context.strict && firstRestricted) {\n\t this.throwUnexpectedToken(firstRestricted, message);\n\t }\n\t if (this.context.strict && stricted) {\n\t this.tolerateUnexpectedToken(stricted, message);\n\t }\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t this.context.await = previousAllowAwait;\n\t this.context.allowYield = previousAllowYield;\n\t return isAsync ? this.finalize(node, new Node.AsyncFunctionExpression(id, params, body)) :\n\t this.finalize(node, new Node.FunctionExpression(id, params, body, isGenerator));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-directive-prologues-and-the-use-strict-directive\n\t Parser.prototype.parseDirective = function () {\n\t var token = this.lookahead;\n\t var node = this.createNode();\n\t var expr = this.parseExpression();\n\t var directive = (expr.type === syntax_1.Syntax.Literal) ? this.getTokenRaw(token).slice(1, -1) : null;\n\t this.consumeSemicolon();\n\t return this.finalize(node, directive ? new Node.Directive(expr, directive) : new Node.ExpressionStatement(expr));\n\t };\n\t Parser.prototype.parseDirectivePrologues = function () {\n\t var firstRestricted = null;\n\t var body = [];\n\t while (true) {\n\t var token = this.lookahead;\n\t if (token.type !== 8 /* StringLiteral */) {\n\t break;\n\t }\n\t var statement = this.parseDirective();\n\t body.push(statement);\n\t var directive = statement.directive;\n\t if (typeof directive !== 'string') {\n\t break;\n\t }\n\t if (directive === 'use strict') {\n\t this.context.strict = true;\n\t if (firstRestricted) {\n\t this.tolerateUnexpectedToken(firstRestricted, messages_1.Messages.StrictOctalLiteral);\n\t }\n\t if (!this.context.allowStrictDirective) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.IllegalLanguageModeDirective);\n\t }\n\t }\n\t else {\n\t if (!firstRestricted && token.octal) {\n\t firstRestricted = token;\n\t }\n\t }\n\t }\n\t return body;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-method-definitions\n\t Parser.prototype.qualifiedPropertyName = function (token) {\n\t switch (token.type) {\n\t case 3 /* Identifier */:\n\t case 8 /* StringLiteral */:\n\t case 1 /* BooleanLiteral */:\n\t case 5 /* NullLiteral */:\n\t case 6 /* NumericLiteral */:\n\t case 4 /* Keyword */:\n\t return true;\n\t case 7 /* Punctuator */:\n\t return token.value === '[';\n\t default:\n\t break;\n\t }\n\t return false;\n\t };\n\t Parser.prototype.parseGetterMethod = function () {\n\t var node = this.createNode();\n\t var isGenerator = false;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = !isGenerator;\n\t var formalParameters = this.parseFormalParameters();\n\t if (formalParameters.params.length > 0) {\n\t this.tolerateError(messages_1.Messages.BadGetterArity);\n\t }\n\t var method = this.parsePropertyMethod(formalParameters);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, formalParameters.params, method, isGenerator));\n\t };\n\t Parser.prototype.parseSetterMethod = function () {\n\t var node = this.createNode();\n\t var isGenerator = false;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = !isGenerator;\n\t var formalParameters = this.parseFormalParameters();\n\t if (formalParameters.params.length !== 1) {\n\t this.tolerateError(messages_1.Messages.BadSetterArity);\n\t }\n\t else if (formalParameters.params[0] instanceof Node.RestElement) {\n\t this.tolerateError(messages_1.Messages.BadSetterRestParameter);\n\t }\n\t var method = this.parsePropertyMethod(formalParameters);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, formalParameters.params, method, isGenerator));\n\t };\n\t Parser.prototype.parseGeneratorMethod = function () {\n\t var node = this.createNode();\n\t var isGenerator = true;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = true;\n\t var params = this.parseFormalParameters();\n\t this.context.allowYield = false;\n\t var method = this.parsePropertyMethod(params);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-generator-function-definitions\n\t Parser.prototype.isStartOfExpression = function () {\n\t var start = true;\n\t var value = this.lookahead.value;\n\t switch (this.lookahead.type) {\n\t case 7 /* Punctuator */:\n\t start = (value === '[') || (value === '(') || (value === '{') ||\n\t (value === '+') || (value === '-') ||\n\t (value === '!') || (value === '~') ||\n\t (value === '++') || (value === '--') ||\n\t (value === '/') || (value === '/='); // regular expression literal\n\t break;\n\t case 4 /* Keyword */:\n\t start = (value === 'class') || (value === 'delete') ||\n\t (value === 'function') || (value === 'let') || (value === 'new') ||\n\t (value === 'super') || (value === 'this') || (value === 'typeof') ||\n\t (value === 'void') || (value === 'yield');\n\t break;\n\t default:\n\t break;\n\t }\n\t return start;\n\t };\n\t Parser.prototype.parseYieldExpression = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('yield');\n\t var argument = null;\n\t var delegate = false;\n\t if (!this.hasLineTerminator) {\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = false;\n\t delegate = this.match('*');\n\t if (delegate) {\n\t this.nextToken();\n\t argument = this.parseAssignmentExpression();\n\t }\n\t else if (this.isStartOfExpression()) {\n\t argument = this.parseAssignmentExpression();\n\t }\n\t this.context.allowYield = previousAllowYield;\n\t }\n\t return this.finalize(node, new Node.YieldExpression(argument, delegate));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-class-definitions\n\t Parser.prototype.parseClassElement = function (hasConstructor) {\n\t var token = this.lookahead;\n\t var node = this.createNode();\n\t var kind = '';\n\t var key = null;\n\t var value = null;\n\t var computed = false;\n\t var method = false;\n\t var isStatic = false;\n\t var isAsync = false;\n\t if (this.match('*')) {\n\t this.nextToken();\n\t }\n\t else {\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t var id = key;\n\t if (id.name === 'static' && (this.qualifiedPropertyName(this.lookahead) || this.match('*'))) {\n\t token = this.lookahead;\n\t isStatic = true;\n\t computed = this.match('[');\n\t if (this.match('*')) {\n\t this.nextToken();\n\t }\n\t else {\n\t key = this.parseObjectPropertyKey();\n\t }\n\t }\n\t if ((token.type === 3 /* Identifier */) && !this.hasLineTerminator && (token.value === 'async')) {\n\t var punctuator = this.lookahead.value;\n\t if (punctuator !== ':' && punctuator !== '(' && punctuator !== '*') {\n\t isAsync = true;\n\t token = this.lookahead;\n\t key = this.parseObjectPropertyKey();\n\t if (token.type === 3 /* Identifier */ && token.value === 'constructor') {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.ConstructorIsAsync);\n\t }\n\t }\n\t }\n\t }\n\t var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead);\n\t if (token.type === 3 /* Identifier */) {\n\t if (token.value === 'get' && lookaheadPropertyKey) {\n\t kind = 'get';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t this.context.allowYield = false;\n\t value = this.parseGetterMethod();\n\t }\n\t else if (token.value === 'set' && lookaheadPropertyKey) {\n\t kind = 'set';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseSetterMethod();\n\t }\n\t }\n\t else if (token.type === 7 /* Punctuator */ && token.value === '*' && lookaheadPropertyKey) {\n\t kind = 'init';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseGeneratorMethod();\n\t method = true;\n\t }\n\t if (!kind && key && this.match('(')) {\n\t kind = 'init';\n\t value = isAsync ? this.parsePropertyMethodAsyncFunction() : this.parsePropertyMethodFunction();\n\t method = true;\n\t }\n\t if (!kind) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t if (kind === 'init') {\n\t kind = 'method';\n\t }\n\t if (!computed) {\n\t if (isStatic && this.isPropertyKey(key, 'prototype')) {\n\t this.throwUnexpectedToken(token, messages_1.Messages.StaticPrototype);\n\t }\n\t if (!isStatic && this.isPropertyKey(key, 'constructor')) {\n\t if (kind !== 'method' || !method || (value && value.generator)) {\n\t this.throwUnexpectedToken(token, messages_1.Messages.ConstructorSpecialMethod);\n\t }\n\t if (hasConstructor.value) {\n\t this.throwUnexpectedToken(token, messages_1.Messages.DuplicateConstructor);\n\t }\n\t else {\n\t hasConstructor.value = true;\n\t }\n\t kind = 'constructor';\n\t }\n\t }\n\t return this.finalize(node, new Node.MethodDefinition(key, computed, value, kind, isStatic));\n\t };\n\t Parser.prototype.parseClassElementList = function () {\n\t var body = [];\n\t var hasConstructor = { value: false };\n\t this.expect('{');\n\t while (!this.match('}')) {\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t else {\n\t body.push(this.parseClassElement(hasConstructor));\n\t }\n\t }\n\t this.expect('}');\n\t return body;\n\t };\n\t Parser.prototype.parseClassBody = function () {\n\t var node = this.createNode();\n\t var elementList = this.parseClassElementList();\n\t return this.finalize(node, new Node.ClassBody(elementList));\n\t };\n\t Parser.prototype.parseClassDeclaration = function (identifierIsOptional) {\n\t var node = this.createNode();\n\t var previousStrict = this.context.strict;\n\t this.context.strict = true;\n\t this.expectKeyword('class');\n\t var id = (identifierIsOptional && (this.lookahead.type !== 3 /* Identifier */)) ? null : this.parseVariableIdentifier();\n\t var superClass = null;\n\t if (this.matchKeyword('extends')) {\n\t this.nextToken();\n\t superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\n\t }\n\t var classBody = this.parseClassBody();\n\t this.context.strict = previousStrict;\n\t return this.finalize(node, new Node.ClassDeclaration(id, superClass, classBody));\n\t };\n\t Parser.prototype.parseClassExpression = function () {\n\t var node = this.createNode();\n\t var previousStrict = this.context.strict;\n\t this.context.strict = true;\n\t this.expectKeyword('class');\n\t var id = (this.lookahead.type === 3 /* Identifier */) ? this.parseVariableIdentifier() : null;\n\t var superClass = null;\n\t if (this.matchKeyword('extends')) {\n\t this.nextToken();\n\t superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\n\t }\n\t var classBody = this.parseClassBody();\n\t this.context.strict = previousStrict;\n\t return this.finalize(node, new Node.ClassExpression(id, superClass, classBody));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-scripts\n\t // https://tc39.github.io/ecma262/#sec-modules\n\t Parser.prototype.parseModule = function () {\n\t this.context.strict = true;\n\t this.context.isModule = true;\n\t this.scanner.isModule = true;\n\t var node = this.createNode();\n\t var body = this.parseDirectivePrologues();\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t body.push(this.parseStatementListItem());\n\t }\n\t return this.finalize(node, new Node.Module(body));\n\t };\n\t Parser.prototype.parseScript = function () {\n\t var node = this.createNode();\n\t var body = this.parseDirectivePrologues();\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t body.push(this.parseStatementListItem());\n\t }\n\t return this.finalize(node, new Node.Script(body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-imports\n\t Parser.prototype.parseModuleSpecifier = function () {\n\t var node = this.createNode();\n\t if (this.lookahead.type !== 8 /* StringLiteral */) {\n\t this.throwError(messages_1.Messages.InvalidModuleSpecifier);\n\t }\n\t var token = this.nextToken();\n\t var raw = this.getTokenRaw(token);\n\t return this.finalize(node, new Node.Literal(token.value, raw));\n\t };\n\t // import {<foo as bar>} ...;\n\t Parser.prototype.parseImportSpecifier = function () {\n\t var node = this.createNode();\n\t var imported;\n\t var local;\n\t if (this.lookahead.type === 3 /* Identifier */) {\n\t imported = this.parseVariableIdentifier();\n\t local = imported;\n\t if (this.matchContextualKeyword('as')) {\n\t this.nextToken();\n\t local = this.parseVariableIdentifier();\n\t }\n\t }\n\t else {\n\t imported = this.parseIdentifierName();\n\t local = imported;\n\t if (this.matchContextualKeyword('as')) {\n\t this.nextToken();\n\t local = this.parseVariableIdentifier();\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.nextToken());\n\t }\n\t }\n\t return this.finalize(node, new Node.ImportSpecifier(local, imported));\n\t };\n\t // {foo, bar as bas}\n\t Parser.prototype.parseNamedImports = function () {\n\t this.expect('{');\n\t var specifiers = [];\n\t while (!this.match('}')) {\n\t specifiers.push(this.parseImportSpecifier());\n\t if (!this.match('}')) {\n\t this.expect(',');\n\t }\n\t }\n\t this.expect('}');\n\t return specifiers;\n\t };\n\t // import <foo> ...;\n\t Parser.prototype.parseImportDefaultSpecifier = function () {\n\t var node = this.createNode();\n\t var local = this.parseIdentifierName();\n\t return this.finalize(node, new Node.ImportDefaultSpecifier(local));\n\t };\n\t // import <* as foo> ...;\n\t Parser.prototype.parseImportNamespaceSpecifier = function () {\n\t var node = this.createNode();\n\t this.expect('*');\n\t if (!this.matchContextualKeyword('as')) {\n\t this.throwError(messages_1.Messages.NoAsAfterImportNamespace);\n\t }\n\t this.nextToken();\n\t var local = this.parseIdentifierName();\n\t return this.finalize(node, new Node.ImportNamespaceSpecifier(local));\n\t };\n\t Parser.prototype.parseImportDeclaration = function () {\n\t if (this.context.inFunctionBody) {\n\t this.throwError(messages_1.Messages.IllegalImportDeclaration);\n\t }\n\t var node = this.createNode();\n\t this.expectKeyword('import');\n\t var src;\n\t var specifiers = [];\n\t if (this.lookahead.type === 8 /* StringLiteral */) {\n\t // import 'foo';\n\t src = this.parseModuleSpecifier();\n\t }\n\t else {\n\t if (this.match('{')) {\n\t // import {bar}\n\t specifiers = specifiers.concat(this.parseNamedImports());\n\t }\n\t else if (this.match('*')) {\n\t // import * as foo\n\t specifiers.push(this.parseImportNamespaceSpecifier());\n\t }\n\t else if (this.isIdentifierName(this.lookahead) && !this.matchKeyword('default')) {\n\t // import foo\n\t specifiers.push(this.parseImportDefaultSpecifier());\n\t if (this.match(',')) {\n\t this.nextToken();\n\t if (this.match('*')) {\n\t // import foo, * as foo\n\t specifiers.push(this.parseImportNamespaceSpecifier());\n\t }\n\t else if (this.match('{')) {\n\t // import foo, {bar}\n\t specifiers = specifiers.concat(this.parseNamedImports());\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.nextToken());\n\t }\n\t if (!this.matchContextualKeyword('from')) {\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\n\t this.throwError(message, this.lookahead.value);\n\t }\n\t this.nextToken();\n\t src = this.parseModuleSpecifier();\n\t }\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ImportDeclaration(specifiers, src));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-exports\n\t Parser.prototype.parseExportSpecifier = function () {\n\t var node = this.createNode();\n\t var local = this.parseIdentifierName();\n\t var exported = local;\n\t if (this.matchContextualKeyword('as')) {\n\t this.nextToken();\n\t exported = this.parseIdentifierName();\n\t }\n\t return this.finalize(node, new Node.ExportSpecifier(local, exported));\n\t };\n\t Parser.prototype.parseExportDeclaration = function () {\n\t if (this.context.inFunctionBody) {\n\t this.throwError(messages_1.Messages.IllegalExportDeclaration);\n\t }\n\t var node = this.createNode();\n\t this.expectKeyword('export');\n\t var exportDeclaration;\n\t if (this.matchKeyword('default')) {\n\t // export default ...\n\t this.nextToken();\n\t if (this.matchKeyword('function')) {\n\t // export default function foo () {}\n\t // export default function () {}\n\t var declaration = this.parseFunctionDeclaration(true);\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t else if (this.matchKeyword('class')) {\n\t // export default class foo {}\n\t var declaration = this.parseClassDeclaration(true);\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t else if (this.matchContextualKeyword('async')) {\n\t // export default async function f () {}\n\t // export default async function () {}\n\t // export default async x => x\n\t var declaration = this.matchAsyncFunction() ? this.parseFunctionDeclaration(true) : this.parseAssignmentExpression();\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t else {\n\t if (this.matchContextualKeyword('from')) {\n\t this.throwError(messages_1.Messages.UnexpectedToken, this.lookahead.value);\n\t }\n\t // export default {};\n\t // export default [];\n\t // export default (1 + 2);\n\t var declaration = this.match('{') ? this.parseObjectInitializer() :\n\t this.match('[') ? this.parseArrayInitializer() : this.parseAssignmentExpression();\n\t this.consumeSemicolon();\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t }\n\t else if (this.match('*')) {\n\t // export * from 'foo';\n\t this.nextToken();\n\t if (!this.matchContextualKeyword('from')) {\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\n\t this.throwError(message, this.lookahead.value);\n\t }\n\t this.nextToken();\n\t var src = this.parseModuleSpecifier();\n\t this.consumeSemicolon();\n\t exportDeclaration = this.finalize(node, new Node.ExportAllDeclaration(src));\n\t }\n\t else if (this.lookahead.type === 4 /* Keyword */) {\n\t // export var f = 1;\n\t var declaration = void 0;\n\t switch (this.lookahead.value) {\n\t case 'let':\n\t case 'const':\n\t declaration = this.parseLexicalDeclaration({ inFor: false });\n\t break;\n\t case 'var':\n\t case 'class':\n\t case 'function':\n\t declaration = this.parseStatementListItem();\n\t break;\n\t default:\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(declaration, [], null));\n\t }\n\t else if (this.matchAsyncFunction()) {\n\t var declaration = this.parseFunctionDeclaration();\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(declaration, [], null));\n\t }\n\t else {\n\t var specifiers = [];\n\t var source = null;\n\t var isExportFromIdentifier = false;\n\t this.expect('{');\n\t while (!this.match('}')) {\n\t isExportFromIdentifier = isExportFromIdentifier || this.matchKeyword('default');\n\t specifiers.push(this.parseExportSpecifier());\n\t if (!this.match('}')) {\n\t this.expect(',');\n\t }\n\t }\n\t this.expect('}');\n\t if (this.matchContextualKeyword('from')) {\n\t // export {default} from 'foo';\n\t // export {foo} from 'foo';\n\t this.nextToken();\n\t source = this.parseModuleSpecifier();\n\t this.consumeSemicolon();\n\t }\n\t else if (isExportFromIdentifier) {\n\t // export {default}; // missing fromClause\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\n\t this.throwError(message, this.lookahead.value);\n\t }\n\t else {\n\t // export {foo};\n\t this.consumeSemicolon();\n\t }\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(null, specifiers, source));\n\t }\n\t return exportDeclaration;\n\t };\n\t return Parser;\n\t}());\n\texports.Parser = Parser;\n\n\n/***/ },\n/* 9 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t// Ensure the condition is true, otherwise throw an error.\n\t// This is only to have a better contract semantic, i.e. another safety net\n\t// to catch a logic error. The condition shall be fulfilled in normal case.\n\t// Do NOT use this to enforce a certain condition on any user input.\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tfunction assert(condition, message) {\n\t /* istanbul ignore if */\n\t if (!condition) {\n\t throw new Error('ASSERT: ' + message);\n\t }\n\t}\n\texports.assert = assert;\n\n\n/***/ },\n/* 10 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t/* tslint:disable:max-classes-per-file */\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar ErrorHandler = (function () {\n\t function ErrorHandler() {\n\t this.errors = [];\n\t this.tolerant = false;\n\t }\n\t ErrorHandler.prototype.recordError = function (error) {\n\t this.errors.push(error);\n\t };\n\t ErrorHandler.prototype.tolerate = function (error) {\n\t if (this.tolerant) {\n\t this.recordError(error);\n\t }\n\t else {\n\t throw error;\n\t }\n\t };\n\t ErrorHandler.prototype.constructError = function (msg, column) {\n\t var error = new Error(msg);\n\t try {\n\t throw error;\n\t }\n\t catch (base) {\n\t /* istanbul ignore else */\n\t if (Object.create && Object.defineProperty) {\n\t error = Object.create(base);\n\t Object.defineProperty(error, 'column', { value: column });\n\t }\n\t }\n\t /* istanbul ignore next */\n\t return error;\n\t };\n\t ErrorHandler.prototype.createError = function (index, line, col, description) {\n\t var msg = 'Line ' + line + ': ' + description;\n\t var error = this.constructError(msg, col);\n\t error.index = index;\n\t error.lineNumber = line;\n\t error.description = description;\n\t return error;\n\t };\n\t ErrorHandler.prototype.throwError = function (index, line, col, description) {\n\t throw this.createError(index, line, col, description);\n\t };\n\t ErrorHandler.prototype.tolerateError = function (index, line, col, description) {\n\t var error = this.createError(index, line, col, description);\n\t if (this.tolerant) {\n\t this.recordError(error);\n\t }\n\t else {\n\t throw error;\n\t }\n\t };\n\t return ErrorHandler;\n\t}());\n\texports.ErrorHandler = ErrorHandler;\n\n\n/***/ },\n/* 11 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\t// Error messages should be identical to V8.\n\texports.Messages = {\n\t BadGetterArity: 'Getter must not have any formal parameters',\n\t BadSetterArity: 'Setter must have exactly one formal parameter',\n\t BadSetterRestParameter: 'Setter function argument must not be a rest parameter',\n\t ConstructorIsAsync: 'Class constructor may not be an async method',\n\t ConstructorSpecialMethod: 'Class constructor may not be an accessor',\n\t DeclarationMissingInitializer: 'Missing initializer in %0 declaration',\n\t DefaultRestParameter: 'Unexpected token =',\n\t DuplicateBinding: 'Duplicate binding %0',\n\t DuplicateConstructor: 'A class may only have one constructor',\n\t DuplicateProtoProperty: 'Duplicate __proto__ fields are not allowed in object literals',\n\t ForInOfLoopInitializer: '%0 loop variable declaration may not have an initializer',\n\t GeneratorInLegacyContext: 'Generator declarations are not allowed in legacy contexts',\n\t IllegalBreak: 'Illegal break statement',\n\t IllegalContinue: 'Illegal continue statement',\n\t IllegalExportDeclaration: 'Unexpected token',\n\t IllegalImportDeclaration: 'Unexpected token',\n\t IllegalLanguageModeDirective: 'Illegal \\'use strict\\' directive in function with non-simple parameter list',\n\t IllegalReturn: 'Illegal return statement',\n\t InvalidEscapedReservedWord: 'Keyword must not contain escaped characters',\n\t InvalidHexEscapeSequence: 'Invalid hexadecimal escape sequence',\n\t InvalidLHSInAssignment: 'Invalid left-hand side in assignment',\n\t InvalidLHSInForIn: 'Invalid left-hand side in for-in',\n\t InvalidLHSInForLoop: 'Invalid left-hand side in for-loop',\n\t InvalidModuleSpecifier: 'Unexpected token',\n\t InvalidRegExp: 'Invalid regular expression',\n\t LetInLexicalBinding: 'let is disallowed as a lexically bound name',\n\t MissingFromClause: 'Unexpected token',\n\t MultipleDefaultsInSwitch: 'More than one default clause in switch statement',\n\t NewlineAfterThrow: 'Illegal newline after throw',\n\t NoAsAfterImportNamespace: 'Unexpected token',\n\t NoCatchOrFinally: 'Missing catch or finally after try',\n\t ParameterAfterRestParameter: 'Rest parameter must be last formal parameter',\n\t Redeclaration: '%0 \\'%1\\' has already been declared',\n\t StaticPrototype: 'Classes may not have static property named prototype',\n\t StrictCatchVariable: 'Catch variable may not be eval or arguments in strict mode',\n\t StrictDelete: 'Delete of an unqualified identifier in strict mode.',\n\t StrictFunction: 'In strict mode code, functions can only be declared at top level or inside a block',\n\t StrictFunctionName: 'Function name may not be eval or arguments in strict mode',\n\t StrictLHSAssignment: 'Assignment to eval or arguments is not allowed in strict mode',\n\t StrictLHSPostfix: 'Postfix increment/decrement may not have eval or arguments operand in strict mode',\n\t StrictLHSPrefix: 'Prefix increment/decrement may not have eval or arguments operand in strict mode',\n\t StrictModeWith: 'Strict mode code may not include a with statement',\n\t StrictOctalLiteral: 'Octal literals are not allowed in strict mode.',\n\t StrictParamDupe: 'Strict mode function may not have duplicate parameter names',\n\t StrictParamName: 'Parameter name eval or arguments is not allowed in strict mode',\n\t StrictReservedWord: 'Use of future reserved word in strict mode',\n\t StrictVarName: 'Variable name may not be eval or arguments in strict mode',\n\t TemplateOctalLiteral: 'Octal literals are not allowed in template strings.',\n\t UnexpectedEOS: 'Unexpected end of input',\n\t UnexpectedIdentifier: 'Unexpected identifier',\n\t UnexpectedNumber: 'Unexpected number',\n\t UnexpectedReserved: 'Unexpected reserved word',\n\t UnexpectedString: 'Unexpected string',\n\t UnexpectedTemplate: 'Unexpected quasi %0',\n\t UnexpectedToken: 'Unexpected token %0',\n\t UnexpectedTokenIllegal: 'Unexpected token ILLEGAL',\n\t UnknownLabel: 'Undefined label \\'%0\\'',\n\t UnterminatedRegExp: 'Invalid regular expression: missing /'\n\t};\n\n\n/***/ },\n/* 12 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar assert_1 = __webpack_require__(9);\n\tvar character_1 = __webpack_require__(4);\n\tvar messages_1 = __webpack_require__(11);\n\tfunction hexValue(ch) {\n\t return '0123456789abcdef'.indexOf(ch.toLowerCase());\n\t}\n\tfunction octalValue(ch) {\n\t return '01234567'.indexOf(ch);\n\t}\n\tvar Scanner = (function () {\n\t function Scanner(code, handler) {\n\t this.source = code;\n\t this.errorHandler = handler;\n\t this.trackComment = false;\n\t this.isModule = false;\n\t this.length = code.length;\n\t this.index = 0;\n\t this.lineNumber = (code.length > 0) ? 1 : 0;\n\t this.lineStart = 0;\n\t this.curlyStack = [];\n\t }\n\t Scanner.prototype.saveState = function () {\n\t return {\n\t index: this.index,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart\n\t };\n\t };\n\t Scanner.prototype.restoreState = function (state) {\n\t this.index = state.index;\n\t this.lineNumber = state.lineNumber;\n\t this.lineStart = state.lineStart;\n\t };\n\t Scanner.prototype.eof = function () {\n\t return this.index >= this.length;\n\t };\n\t Scanner.prototype.throwUnexpectedToken = function (message) {\n\t if (message === void 0) { message = messages_1.Messages.UnexpectedTokenIllegal; }\n\t return this.errorHandler.throwError(this.index, this.lineNumber, this.index - this.lineStart + 1, message);\n\t };\n\t Scanner.prototype.tolerateUnexpectedToken = function (message) {\n\t if (message === void 0) { message = messages_1.Messages.UnexpectedTokenIllegal; }\n\t this.errorHandler.tolerateError(this.index, this.lineNumber, this.index - this.lineStart + 1, message);\n\t };\n\t // https://tc39.github.io/ecma262/#sec-comments\n\t Scanner.prototype.skipSingleLineComment = function (offset) {\n\t var comments = [];\n\t var start, loc;\n\t if (this.trackComment) {\n\t comments = [];\n\t start = this.index - offset;\n\t loc = {\n\t start: {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart - offset\n\t },\n\t end: {}\n\t };\n\t }\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t ++this.index;\n\t if (character_1.Character.isLineTerminator(ch)) {\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart - 1\n\t };\n\t var entry = {\n\t multiLine: false,\n\t slice: [start + offset, this.index - 1],\n\t range: [start, this.index - 1],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t if (ch === 13 && this.source.charCodeAt(this.index) === 10) {\n\t ++this.index;\n\t }\n\t ++this.lineNumber;\n\t this.lineStart = this.index;\n\t return comments;\n\t }\n\t }\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart\n\t };\n\t var entry = {\n\t multiLine: false,\n\t slice: [start + offset, this.index],\n\t range: [start, this.index],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t return comments;\n\t };\n\t Scanner.prototype.skipMultiLineComment = function () {\n\t var comments = [];\n\t var start, loc;\n\t if (this.trackComment) {\n\t comments = [];\n\t start = this.index - 2;\n\t loc = {\n\t start: {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart - 2\n\t },\n\t end: {}\n\t };\n\t }\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t if (character_1.Character.isLineTerminator(ch)) {\n\t if (ch === 0x0D && this.source.charCodeAt(this.index + 1) === 0x0A) {\n\t ++this.index;\n\t }\n\t ++this.lineNumber;\n\t ++this.index;\n\t this.lineStart = this.index;\n\t }\n\t else if (ch === 0x2A) {\n\t // Block comment ends with '*/'.\n\t if (this.source.charCodeAt(this.index + 1) === 0x2F) {\n\t this.index += 2;\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart\n\t };\n\t var entry = {\n\t multiLine: true,\n\t slice: [start + 2, this.index - 2],\n\t range: [start, this.index],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t return comments;\n\t }\n\t ++this.index;\n\t }\n\t else {\n\t ++this.index;\n\t }\n\t }\n\t // Ran off the end of the file - the whole thing is a comment\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart\n\t };\n\t var entry = {\n\t multiLine: true,\n\t slice: [start + 2, this.index],\n\t range: [start, this.index],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t this.tolerateUnexpectedToken();\n\t return comments;\n\t };\n\t Scanner.prototype.scanComments = function () {\n\t var comments;\n\t if (this.trackComment) {\n\t comments = [];\n\t }\n\t var start = (this.index === 0);\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t if (character_1.Character.isWhiteSpace(ch)) {\n\t ++this.index;\n\t }\n\t else if (character_1.Character.isLineTerminator(ch)) {\n\t ++this.index;\n\t if (ch === 0x0D && this.source.charCodeAt(this.index) === 0x0A) {\n\t ++this.index;\n\t }\n\t ++this.lineNumber;\n\t this.lineStart = this.index;\n\t start = true;\n\t }\n\t else if (ch === 0x2F) {\n\t ch = this.source.charCodeAt(this.index + 1);\n\t if (ch === 0x2F) {\n\t this.index += 2;\n\t var comment = this.skipSingleLineComment(2);\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t start = true;\n\t }\n\t else if (ch === 0x2A) {\n\t this.index += 2;\n\t var comment = this.skipMultiLineComment();\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t else if (start && ch === 0x2D) {\n\t // U+003E is '>'\n\t if ((this.source.charCodeAt(this.index + 1) === 0x2D) && (this.source.charCodeAt(this.index + 2) === 0x3E)) {\n\t // '-->' is a single-line comment\n\t this.index += 3;\n\t var comment = this.skipSingleLineComment(3);\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t else if (ch === 0x3C && !this.isModule) {\n\t if (this.source.slice(this.index + 1, this.index + 4) === '!--') {\n\t this.index += 4; // `<!--`\n\t var comment = this.skipSingleLineComment(4);\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t return comments;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-future-reserved-words\n\t Scanner.prototype.isFutureReservedWord = function (id) {\n\t switch (id) {\n\t case 'enum':\n\t case 'export':\n\t case 'import':\n\t case 'super':\n\t return true;\n\t default:\n\t return false;\n\t }\n\t };\n\t Scanner.prototype.isStrictModeReservedWord = function (id) {\n\t switch (id) {\n\t case 'implements':\n\t case 'interface':\n\t case 'package':\n\t case 'private':\n\t case 'protected':\n\t case 'public':\n\t case 'static':\n\t case 'yield':\n\t case 'let':\n\t return true;\n\t default:\n\t return false;\n\t }\n\t };\n\t Scanner.prototype.isRestrictedWord = function (id) {\n\t return id === 'eval' || id === 'arguments';\n\t };\n\t // https://tc39.github.io/ecma262/#sec-keywords\n\t Scanner.prototype.isKeyword = function (id) {\n\t switch (id.length) {\n\t case 2:\n\t return (id === 'if') || (id === 'in') || (id === 'do');\n\t case 3:\n\t return (id === 'var') || (id === 'for') || (id === 'new') ||\n\t (id === 'try') || (id === 'let');\n\t case 4:\n\t return (id === 'this') || (id === 'else') || (id === 'case') ||\n\t (id === 'void') || (id === 'with') || (id === 'enum');\n\t case 5:\n\t return (id === 'while') || (id === 'break') || (id === 'catch') ||\n\t (id === 'throw') || (id === 'const') || (id === 'yield') ||\n\t (id === 'class') || (id === 'super');\n\t case 6:\n\t return (id === 'return') || (id === 'typeof') || (id === 'delete') ||\n\t (id === 'switch') || (id === 'export') || (id === 'import');\n\t case 7:\n\t return (id === 'default') || (id === 'finally') || (id === 'extends');\n\t case 8:\n\t return (id === 'function') || (id === 'continue') || (id === 'debugger');\n\t case 10:\n\t return (id === 'instanceof');\n\t default:\n\t return false;\n\t }\n\t };\n\t Scanner.prototype.codePointAt = function (i) {\n\t var cp = this.source.charCodeAt(i);\n\t if (cp >= 0xD800 && cp <= 0xDBFF) {\n\t var second = this.source.charCodeAt(i + 1);\n\t if (second >= 0xDC00 && second <= 0xDFFF) {\n\t var first = cp;\n\t cp = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n\t }\n\t }\n\t return cp;\n\t };\n\t Scanner.prototype.scanHexEscape = function (prefix) {\n\t var len = (prefix === 'u') ? 4 : 2;\n\t var code = 0;\n\t for (var i = 0; i < len; ++i) {\n\t if (!this.eof() && character_1.Character.isHexDigit(this.source.charCodeAt(this.index))) {\n\t code = code * 16 + hexValue(this.source[this.index++]);\n\t }\n\t else {\n\t return null;\n\t }\n\t }\n\t return String.fromCharCode(code);\n\t };\n\t Scanner.prototype.scanUnicodeCodePointEscape = function () {\n\t var ch = this.source[this.index];\n\t var code = 0;\n\t // At least, one hex digit is required.\n\t if (ch === '}') {\n\t this.throwUnexpectedToken();\n\t }\n\t while (!this.eof()) {\n\t ch = this.source[this.index++];\n\t if (!character_1.Character.isHexDigit(ch.charCodeAt(0))) {\n\t break;\n\t }\n\t code = code * 16 + hexValue(ch);\n\t }\n\t if (code > 0x10FFFF || ch !== '}') {\n\t this.throwUnexpectedToken();\n\t }\n\t return character_1.Character.fromCodePoint(code);\n\t };\n\t Scanner.prototype.getIdentifier = function () {\n\t var start = this.index++;\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t if (ch === 0x5C) {\n\t // Blackslash (U+005C) marks Unicode escape sequence.\n\t this.index = start;\n\t return this.getComplexIdentifier();\n\t }\n\t else if (ch >= 0xD800 && ch < 0xDFFF) {\n\t // Need to handle surrogate pairs.\n\t this.index = start;\n\t return this.getComplexIdentifier();\n\t }\n\t if (character_1.Character.isIdentifierPart(ch)) {\n\t ++this.index;\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t return this.source.slice(start, this.index);\n\t };\n\t Scanner.prototype.getComplexIdentifier = function () {\n\t var cp = this.codePointAt(this.index);\n\t var id = character_1.Character.fromCodePoint(cp);\n\t this.index += id.length;\n\t // '\\u' (U+005C, U+0075) denotes an escaped character.\n\t var ch;\n\t if (cp === 0x5C) {\n\t if (this.source.charCodeAt(this.index) !== 0x75) {\n\t this.throwUnexpectedToken();\n\t }\n\t ++this.index;\n\t if (this.source[this.index] === '{') {\n\t ++this.index;\n\t ch = this.scanUnicodeCodePointEscape();\n\t }\n\t else {\n\t ch = this.scanHexEscape('u');\n\t if (ch === null || ch === '\\\\' || !character_1.Character.isIdentifierStart(ch.charCodeAt(0))) {\n\t this.throwUnexpectedToken();\n\t }\n\t }\n\t id = ch;\n\t }\n\t while (!this.eof()) {\n\t cp = this.codePointAt(this.index);\n\t if (!character_1.Character.isIdentifierPart(cp)) {\n\t break;\n\t }\n\t ch = character_1.Character.fromCodePoint(cp);\n\t id += ch;\n\t this.index += ch.length;\n\t // '\\u' (U+005C, U+0075) denotes an escaped character.\n\t if (cp === 0x5C) {\n\t id = id.substr(0, id.length - 1);\n\t if (this.source.charCodeAt(this.index) !== 0x75) {\n\t this.throwUnexpectedToken();\n\t }\n\t ++this.index;\n\t if (this.source[this.index] === '{') {\n\t ++this.index;\n\t ch = this.scanUnicodeCodePointEscape();\n\t }\n\t else {\n\t ch = this.scanHexEscape('u');\n\t if (ch === null || ch === '\\\\' || !character_1.Character.isIdentifierPart(ch.charCodeAt(0))) {\n\t this.throwUnexpectedToken();\n\t }\n\t }\n\t id += ch;\n\t }\n\t }\n\t return id;\n\t };\n\t Scanner.prototype.octalToDecimal = function (ch) {\n\t // \\0 is not octal escape sequence\n\t var octal = (ch !== '0');\n\t var code = octalValue(ch);\n\t if (!this.eof() && character_1.Character.isOctalDigit(this.source.charCodeAt(this.index))) {\n\t octal = true;\n\t code = code * 8 + octalValue(this.source[this.index++]);\n\t // 3 digits are only allowed when string starts\n\t // with 0, 1, 2, 3\n\t if ('0123'.indexOf(ch) >= 0 && !this.eof() && character_1.Character.isOctalDigit(this.source.charCodeAt(this.index))) {\n\t code = code * 8 + octalValue(this.source[this.index++]);\n\t }\n\t }\n\t return {\n\t code: code,\n\t octal: octal\n\t };\n\t };\n\t // https://tc39.github.io/ecma262/#sec-names-and-keywords\n\t Scanner.prototype.scanIdentifier = function () {\n\t var type;\n\t var start = this.index;\n\t // Backslash (U+005C) starts an escaped character.\n\t var id = (this.source.charCodeAt(start) === 0x5C) ? this.getComplexIdentifier() : this.getIdentifier();\n\t // There is no keyword or literal with only one character.\n\t // Thus, it must be an identifier.\n\t if (id.length === 1) {\n\t type = 3 /* Identifier */;\n\t }\n\t else if (this.isKeyword(id)) {\n\t type = 4 /* Keyword */;\n\t }\n\t else if (id === 'null') {\n\t type = 5 /* NullLiteral */;\n\t }\n\t else if (id === 'true' || id === 'false') {\n\t type = 1 /* BooleanLiteral */;\n\t }\n\t else {\n\t type = 3 /* Identifier */;\n\t }\n\t if (type !== 3 /* Identifier */ && (start + id.length !== this.index)) {\n\t var restore = this.index;\n\t this.index = start;\n\t this.tolerateUnexpectedToken(messages_1.Messages.InvalidEscapedReservedWord);\n\t this.index = restore;\n\t }\n\t return {\n\t type: type,\n\t value: id,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t // https://tc39.github.io/ecma262/#sec-punctuators\n\t Scanner.prototype.scanPunctuator = function () {\n\t var start = this.index;\n\t // Check for most common single-character punctuators.\n\t var str = this.source[this.index];\n\t switch (str) {\n\t case '(':\n\t case '{':\n\t if (str === '{') {\n\t this.curlyStack.push('{');\n\t }\n\t ++this.index;\n\t break;\n\t case '.':\n\t ++this.index;\n\t if (this.source[this.index] === '.' && this.source[this.index + 1] === '.') {\n\t // Spread operator: ...\n\t this.index += 2;\n\t str = '...';\n\t }\n\t break;\n\t case '}':\n\t ++this.index;\n\t this.curlyStack.pop();\n\t break;\n\t case ')':\n\t case ';':\n\t case ',':\n\t case '[':\n\t case ']':\n\t case ':':\n\t case '?':\n\t case '~':\n\t ++this.index;\n\t break;\n\t default:\n\t // 4-character punctuator.\n\t str = this.source.substr(this.index, 4);\n\t if (str === '>>>=') {\n\t this.index += 4;\n\t }\n\t else {\n\t // 3-character punctuators.\n\t str = str.substr(0, 3);\n\t if (str === '===' || str === '!==' || str === '>>>' ||\n\t str === '<<=' || str === '>>=' || str === '**=') {\n\t this.index += 3;\n\t }\n\t else {\n\t // 2-character punctuators.\n\t str = str.substr(0, 2);\n\t if (str === '&&' || str === '||' || str === '==' || str === '!=' ||\n\t str === '+=' || str === '-=' || str === '*=' || str === '/=' ||\n\t str === '++' || str === '--' || str === '<<' || str === '>>' ||\n\t str === '&=' || str === '|=' || str === '^=' || str === '%=' ||\n\t str === '<=' || str === '>=' || str === '=>' || str === '**') {\n\t this.index += 2;\n\t }\n\t else {\n\t // 1-character punctuators.\n\t str = this.source[this.index];\n\t if ('<>=!+-*%&|^/'.indexOf(str) >= 0) {\n\t ++this.index;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t if (this.index === start) {\n\t this.throwUnexpectedToken();\n\t }\n\t return {\n\t type: 7 /* Punctuator */,\n\t value: str,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t // https://tc39.github.io/ecma262/#sec-literals-numeric-literals\n\t Scanner.prototype.scanHexLiteral = function (start) {\n\t var num = '';\n\t while (!this.eof()) {\n\t if (!character_1.Character.isHexDigit(this.source.charCodeAt(this.index))) {\n\t break;\n\t }\n\t num += this.source[this.index++];\n\t }\n\t if (num.length === 0) {\n\t this.throwUnexpectedToken();\n\t }\n\t if (character_1.Character.isIdentifierStart(this.source.charCodeAt(this.index))) {\n\t this.throwUnexpectedToken();\n\t }\n\t return {\n\t type: 6 /* NumericLiteral */,\n\t value: parseInt('0x' + num, 16),\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t Scanner.prototype.scanBinaryLiteral = function (start) {\n\t var num = '';\n\t var ch;\n\t while (!this.eof()) {\n\t ch = this.source[this.index];\n\t if (ch !== '0' && ch !== '1') {\n\t break;\n\t }\n\t num += this.source[this.index++];\n\t }\n\t if (num.length === 0) {\n\t // only 0b or 0B\n\t this.throwUnexpectedToken();\n\t }\n\t if (!this.eof()) {\n\t ch = this.source.charCodeAt(this.index);\n\t /* istanbul ignore else */\n\t if (character_1.Character.isIdentifierStart(ch) || character_1.Character.isDecimalDigit(ch)) {\n\t this.throwUnexpectedToken();\n\t }\n\t }\n\t return {\n\t type: 6 /* NumericLiteral */,\n\t value: parseInt(num, 2),\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t Scanner.prototype.scanOctalLiteral = function (prefix, start) {\n\t var num = '';\n\t var octal = false;\n\t if (character_1.Character.isOctalDigit(prefix.charCodeAt(0))) {\n\t octal = true;\n\t num = '0' + this.source[this.index++];\n\t }\n\t else {\n\t ++this.index;\n\t }\n\t while (!this.eof()) {\n\t if (!character_1.Character.isOctalDigit(this.source.charCodeAt(this.index))) {\n\t break;\n\t }\n\t num += this.source[this.index++];\n\t }\n\t if (!octal && num.length === 0) {\n\t // only 0o or 0O\n\t this.throwUnexpectedToken();\n\t }\n\t if (character_1.Character.isIdentifierStart(this.source.charCodeAt(this.index)) || character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {\n\t this.throwUnexpectedToken();\n\t }\n\t return {\n\t type: 6 /* NumericLiteral */,\n\t value: parseInt(num, 8),\n\t octal: octal,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t Scanner.prototype.isImplicitOctalLiteral = function () {\n\t // Implicit octal, unless there is a non-octal digit.\n\t // (Annex B.1.1 on Numeric Literals)\n\t for (var i = this.index + 1; i < this.length; ++i) {\n\t var ch = this.source[i];\n\t if (ch === '8' || ch === '9') {\n\t return false;\n\t }\n\t if (!character_1.Character.isOctalDigit(ch.charCodeAt(0))) {\n\t return true;\n\t }\n\t }\n\t return true;\n\t };\n\t Scanner.prototype.scanNumericLiteral = function () {\n\t var start = this.index;\n\t var ch = this.source[start];\n\t assert_1.assert(character_1.Character.isDecimalDigit(ch.charCodeAt(0)) || (ch === '.'), 'Numeric literal must start with a decimal digit or a decimal point');\n\t var num = '';\n\t if (ch !== '.') {\n\t num = this.source[this.index++];\n\t ch = this.source[this.index];\n\t // Hex number starts with '0x'.\n\t // Octal number starts with '0'.\n\t // Octal number in ES6 starts with '0o'.\n\t // Binary number in ES6 starts with '0b'.\n\t if (num === '0') {\n\t if (ch === 'x' || ch === 'X') {\n\t ++this.index;\n\t return this.scanHexLiteral(start);\n\t }\n\t if (ch === 'b' || ch === 'B') {\n\t ++this.index;\n\t return this.scanBinaryLiteral(start);\n\t }\n\t if (ch === 'o' || ch === 'O') {\n\t return this.scanOctalLiteral(ch, start);\n\t }\n\t if (ch && character_1.Character.isOctalDigit(ch.charCodeAt(0))) {\n\t if (this.isImplicitOctalLiteral()) {\n\t return this.scanOctalLiteral(ch, start);\n\t }\n\t }\n\t }\n\t while (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {\n\t num += this.source[this.index++];\n\t }\n\t ch = this.source[this.index];\n\t }\n\t if (ch === '.') {\n\t num += this.source[this.index++];\n\t while (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {\n\t num += this.source[this.index++];\n\t }\n\t ch = this.source[this.index];\n\t }\n\t if (ch === 'e' || ch === 'E') {\n\t num += this.source[this.index++];\n\t ch = this.source[this.index];\n\t if (ch === '+' || ch === '-') {\n\t num += this.source[this.index++];\n\t }\n\t if (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {\n\t while (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {\n\t num += this.source[this.index++];\n\t }\n\t }\n\t else {\n\t this.throwUnexpectedToken();\n\t }\n\t }\n\t if (character_1.Character.isIdentifierStart(this.source.charCodeAt(this.index))) {\n\t this.throwUnexpectedToken();\n\t }\n\t return {\n\t type: 6 /* NumericLiteral */,\n\t value: parseFloat(num),\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t // https://tc39.github.io/ecma262/#sec-literals-string-literals\n\t Scanner.prototype.scanStringLiteral = function () {\n\t var start = this.index;\n\t var quote = this.source[start];\n\t assert_1.assert((quote === '\\'' || quote === '\"'), 'String literal must starts with a quote');\n\t ++this.index;\n\t var octal = false;\n\t var str = '';\n\t while (!this.eof()) {\n\t var ch = this.source[this.index++];\n\t if (ch === quote) {\n\t quote = '';\n\t break;\n\t }\n\t else if (ch === '\\\\') {\n\t ch = this.source[this.index++];\n\t if (!ch || !character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t switch (ch) {\n\t case 'u':\n\t if (this.source[this.index] === '{') {\n\t ++this.index;\n\t str += this.scanUnicodeCodePointEscape();\n\t }\n\t else {\n\t var unescaped_1 = this.scanHexEscape(ch);\n\t if (unescaped_1 === null) {\n\t this.throwUnexpectedToken();\n\t }\n\t str += unescaped_1;\n\t }\n\t break;\n\t case 'x':\n\t var unescaped = this.scanHexEscape(ch);\n\t if (unescaped === null) {\n\t this.throwUnexpectedToken(messages_1.Messages.InvalidHexEscapeSequence);\n\t }\n\t str += unescaped;\n\t break;\n\t case 'n':\n\t str += '\\n';\n\t break;\n\t case 'r':\n\t str += '\\r';\n\t break;\n\t case 't':\n\t str += '\\t';\n\t break;\n\t case 'b':\n\t str += '\\b';\n\t break;\n\t case 'f':\n\t str += '\\f';\n\t break;\n\t case 'v':\n\t str += '\\x0B';\n\t break;\n\t case '8':\n\t case '9':\n\t str += ch;\n\t this.tolerateUnexpectedToken();\n\t break;\n\t default:\n\t if (ch && character_1.Character.isOctalDigit(ch.charCodeAt(0))) {\n\t var octToDec = this.octalToDecimal(ch);\n\t octal = octToDec.octal || octal;\n\t str += String.fromCharCode(octToDec.code);\n\t }\n\t else {\n\t str += ch;\n\t }\n\t break;\n\t }\n\t }\n\t else {\n\t ++this.lineNumber;\n\t if (ch === '\\r' && this.source[this.index] === '\\n') {\n\t ++this.index;\n\t }\n\t this.lineStart = this.index;\n\t }\n\t }\n\t else if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t break;\n\t }\n\t else {\n\t str += ch;\n\t }\n\t }\n\t if (quote !== '') {\n\t this.index = start;\n\t this.throwUnexpectedToken();\n\t }\n\t return {\n\t type: 8 /* StringLiteral */,\n\t value: str,\n\t octal: octal,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t // https://tc39.github.io/ecma262/#sec-template-literal-lexical-components\n\t Scanner.prototype.scanTemplate = function () {\n\t var cooked = '';\n\t var terminated = false;\n\t var start = this.index;\n\t var head = (this.source[start] === '`');\n\t var tail = false;\n\t var rawOffset = 2;\n\t ++this.index;\n\t while (!this.eof()) {\n\t var ch = this.source[this.index++];\n\t if (ch === '`') {\n\t rawOffset = 1;\n\t tail = true;\n\t terminated = true;\n\t break;\n\t }\n\t else if (ch === '$') {\n\t if (this.source[this.index] === '{') {\n\t this.curlyStack.push('${');\n\t ++this.index;\n\t terminated = true;\n\t break;\n\t }\n\t cooked += ch;\n\t }\n\t else if (ch === '\\\\') {\n\t ch = this.source[this.index++];\n\t if (!character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t switch (ch) {\n\t case 'n':\n\t cooked += '\\n';\n\t break;\n\t case 'r':\n\t cooked += '\\r';\n\t break;\n\t case 't':\n\t cooked += '\\t';\n\t break;\n\t case 'u':\n\t if (this.source[this.index] === '{') {\n\t ++this.index;\n\t cooked += this.scanUnicodeCodePointEscape();\n\t }\n\t else {\n\t var restore = this.index;\n\t var unescaped_2 = this.scanHexEscape(ch);\n\t if (unescaped_2 !== null) {\n\t cooked += unescaped_2;\n\t }\n\t else {\n\t this.index = restore;\n\t cooked += ch;\n\t }\n\t }\n\t break;\n\t case 'x':\n\t var unescaped = this.scanHexEscape(ch);\n\t if (unescaped === null) {\n\t this.throwUnexpectedToken(messages_1.Messages.InvalidHexEscapeSequence);\n\t }\n\t cooked += unescaped;\n\t break;\n\t case 'b':\n\t cooked += '\\b';\n\t break;\n\t case 'f':\n\t cooked += '\\f';\n\t break;\n\t case 'v':\n\t cooked += '\\v';\n\t break;\n\t default:\n\t if (ch === '0') {\n\t if (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {\n\t // Illegal: \\01 \\02 and so on\n\t this.throwUnexpectedToken(messages_1.Messages.TemplateOctalLiteral);\n\t }\n\t cooked += '\\0';\n\t }\n\t else if (character_1.Character.isOctalDigit(ch.charCodeAt(0))) {\n\t // Illegal: \\1 \\2\n\t this.throwUnexpectedToken(messages_1.Messages.TemplateOctalLiteral);\n\t }\n\t else {\n\t cooked += ch;\n\t }\n\t break;\n\t }\n\t }\n\t else {\n\t ++this.lineNumber;\n\t if (ch === '\\r' && this.source[this.index] === '\\n') {\n\t ++this.index;\n\t }\n\t this.lineStart = this.index;\n\t }\n\t }\n\t else if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t ++this.lineNumber;\n\t if (ch === '\\r' && this.source[this.index] === '\\n') {\n\t ++this.index;\n\t }\n\t this.lineStart = this.index;\n\t cooked += '\\n';\n\t }\n\t else {\n\t cooked += ch;\n\t }\n\t }\n\t if (!terminated) {\n\t this.throwUnexpectedToken();\n\t }\n\t if (!head) {\n\t this.curlyStack.pop();\n\t }\n\t return {\n\t type: 10 /* Template */,\n\t value: this.source.slice(start + 1, this.index - rawOffset),\n\t cooked: cooked,\n\t head: head,\n\t tail: tail,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t // https://tc39.github.io/ecma262/#sec-literals-regular-expression-literals\n\t Scanner.prototype.testRegExp = function (pattern, flags) {\n\t // The BMP character to use as a replacement for astral symbols when\n\t // translating an ES6 \"u\"-flagged pattern to an ES5-compatible\n\t // approximation.\n\t // Note: replacing with '\\uFFFF' enables false positives in unlikely\n\t // scenarios. For example, `[\\u{1044f}-\\u{10440}]` is an invalid\n\t // pattern that would not be detected by this substitution.\n\t var astralSubstitute = '\\uFFFF';\n\t var tmp = pattern;\n\t var self = this;\n\t if (flags.indexOf('u') >= 0) {\n\t tmp = tmp\n\t .replace(/\\\\u\\{([0-9a-fA-F]+)\\}|\\\\u([a-fA-F0-9]{4})/g, function ($0, $1, $2) {\n\t var codePoint = parseInt($1 || $2, 16);\n\t if (codePoint > 0x10FFFF) {\n\t self.throwUnexpectedToken(messages_1.Messages.InvalidRegExp);\n\t }\n\t if (codePoint <= 0xFFFF) {\n\t return String.fromCharCode(codePoint);\n\t }\n\t return astralSubstitute;\n\t })\n\t .replace(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g, astralSubstitute);\n\t }\n\t // First, detect invalid regular expressions.\n\t try {\n\t RegExp(tmp);\n\t }\n\t catch (e) {\n\t this.throwUnexpectedToken(messages_1.Messages.InvalidRegExp);\n\t }\n\t // Return a regular expression object for this pattern-flag pair, or\n\t // `null` in case the current environment doesn't support the flags it\n\t // uses.\n\t try {\n\t return new RegExp(pattern, flags);\n\t }\n\t catch (exception) {\n\t /* istanbul ignore next */\n\t return null;\n\t }\n\t };\n\t Scanner.prototype.scanRegExpBody = function () {\n\t var ch = this.source[this.index];\n\t assert_1.assert(ch === '/', 'Regular expression literal must start with a slash');\n\t var str = this.source[this.index++];\n\t var classMarker = false;\n\t var terminated = false;\n\t while (!this.eof()) {\n\t ch = this.source[this.index++];\n\t str += ch;\n\t if (ch === '\\\\') {\n\t ch = this.source[this.index++];\n\t // https://tc39.github.io/ecma262/#sec-literals-regular-expression-literals\n\t if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t this.throwUnexpectedToken(messages_1.Messages.UnterminatedRegExp);\n\t }\n\t str += ch;\n\t }\n\t else if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t this.throwUnexpectedToken(messages_1.Messages.UnterminatedRegExp);\n\t }\n\t else if (classMarker) {\n\t if (ch === ']') {\n\t classMarker = false;\n\t }\n\t }\n\t else {\n\t if (ch === '/') {\n\t terminated = true;\n\t break;\n\t }\n\t else if (ch === '[') {\n\t classMarker = true;\n\t }\n\t }\n\t }\n\t if (!terminated) {\n\t this.throwUnexpectedToken(messages_1.Messages.UnterminatedRegExp);\n\t }\n\t // Exclude leading and trailing slash.\n\t return str.substr(1, str.length - 2);\n\t };\n\t Scanner.prototype.scanRegExpFlags = function () {\n\t var str = '';\n\t var flags = '';\n\t while (!this.eof()) {\n\t var ch = this.source[this.index];\n\t if (!character_1.Character.isIdentifierPart(ch.charCodeAt(0))) {\n\t break;\n\t }\n\t ++this.index;\n\t if (ch === '\\\\' && !this.eof()) {\n\t ch = this.source[this.index];\n\t if (ch === 'u') {\n\t ++this.index;\n\t var restore = this.index;\n\t var char = this.scanHexEscape('u');\n\t if (char !== null) {\n\t flags += char;\n\t for (str += '\\\\u'; restore < this.index; ++restore) {\n\t str += this.source[restore];\n\t }\n\t }\n\t else {\n\t this.index = restore;\n\t flags += 'u';\n\t str += '\\\\u';\n\t }\n\t this.tolerateUnexpectedToken();\n\t }\n\t else {\n\t str += '\\\\';\n\t this.tolerateUnexpectedToken();\n\t }\n\t }\n\t else {\n\t flags += ch;\n\t str += ch;\n\t }\n\t }\n\t return flags;\n\t };\n\t Scanner.prototype.scanRegExp = function () {\n\t var start = this.index;\n\t var pattern = this.scanRegExpBody();\n\t var flags = this.scanRegExpFlags();\n\t var value = this.testRegExp(pattern, flags);\n\t return {\n\t type: 9 /* RegularExpression */,\n\t value: '',\n\t pattern: pattern,\n\t flags: flags,\n\t regex: value,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t Scanner.prototype.lex = function () {\n\t if (this.eof()) {\n\t return {\n\t type: 2 /* EOF */,\n\t value: '',\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: this.index,\n\t end: this.index\n\t };\n\t }\n\t var cp = this.source.charCodeAt(this.index);\n\t if (character_1.Character.isIdentifierStart(cp)) {\n\t return this.scanIdentifier();\n\t }\n\t // Very common: ( and ) and ;\n\t if (cp === 0x28 || cp === 0x29 || cp === 0x3B) {\n\t return this.scanPunctuator();\n\t }\n\t // String literal starts with single quote (U+0027) or double quote (U+0022).\n\t if (cp === 0x27 || cp === 0x22) {\n\t return this.scanStringLiteral();\n\t }\n\t // Dot (.) U+002E can also start a floating-point number, hence the need\n\t // to check the next character.\n\t if (cp === 0x2E) {\n\t if (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index + 1))) {\n\t return this.scanNumericLiteral();\n\t }\n\t return this.scanPunctuator();\n\t }\n\t if (character_1.Character.isDecimalDigit(cp)) {\n\t return this.scanNumericLiteral();\n\t }\n\t // Template literals start with ` (U+0060) for template head\n\t // or } (U+007D) for template middle or template tail.\n\t if (cp === 0x60 || (cp === 0x7D && this.curlyStack[this.curlyStack.length - 1] === '${')) {\n\t return this.scanTemplate();\n\t }\n\t // Possible identifier start in a surrogate pair.\n\t if (cp >= 0xD800 && cp < 0xDFFF) {\n\t if (character_1.Character.isIdentifierStart(this.codePointAt(this.index))) {\n\t return this.scanIdentifier();\n\t }\n\t }\n\t return this.scanPunctuator();\n\t };\n\t return Scanner;\n\t}());\n\texports.Scanner = Scanner;\n\n\n/***/ },\n/* 13 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.TokenName = {};\n\texports.TokenName[1 /* BooleanLiteral */] = 'Boolean';\n\texports.TokenName[2 /* EOF */] = '<end>';\n\texports.TokenName[3 /* Identifier */] = 'Identifier';\n\texports.TokenName[4 /* Keyword */] = 'Keyword';\n\texports.TokenName[5 /* NullLiteral */] = 'Null';\n\texports.TokenName[6 /* NumericLiteral */] = 'Numeric';\n\texports.TokenName[7 /* Punctuator */] = 'Punctuator';\n\texports.TokenName[8 /* StringLiteral */] = 'String';\n\texports.TokenName[9 /* RegularExpression */] = 'RegularExpression';\n\texports.TokenName[10 /* Template */] = 'Template';\n\n\n/***/ },\n/* 14 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t// Generated by generate-xhtml-entities.js. DO NOT MODIFY!\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.XHTMLEntities = {\n\t quot: '\\u0022',\n\t amp: '\\u0026',\n\t apos: '\\u0027',\n\t gt: '\\u003E',\n\t nbsp: '\\u00A0',\n\t iexcl: '\\u00A1',\n\t cent: '\\u00A2',\n\t pound: '\\u00A3',\n\t curren: '\\u00A4',\n\t yen: '\\u00A5',\n\t brvbar: '\\u00A6',\n\t sect: '\\u00A7',\n\t uml: '\\u00A8',\n\t copy: '\\u00A9',\n\t ordf: '\\u00AA',\n\t laquo: '\\u00AB',\n\t not: '\\u00AC',\n\t shy: '\\u00AD',\n\t reg: '\\u00AE',\n\t macr: '\\u00AF',\n\t deg: '\\u00B0',\n\t plusmn: '\\u00B1',\n\t sup2: '\\u00B2',\n\t sup3: '\\u00B3',\n\t acute: '\\u00B4',\n\t micro: '\\u00B5',\n\t para: '\\u00B6',\n\t middot: '\\u00B7',\n\t cedil: '\\u00B8',\n\t sup1: '\\u00B9',\n\t ordm: '\\u00BA',\n\t raquo: '\\u00BB',\n\t frac14: '\\u00BC',\n\t frac12: '\\u00BD',\n\t frac34: '\\u00BE',\n\t iquest: '\\u00BF',\n\t Agrave: '\\u00C0',\n\t Aacute: '\\u00C1',\n\t Acirc: '\\u00C2',\n\t Atilde: '\\u00C3',\n\t Auml: '\\u00C4',\n\t Aring: '\\u00C5',\n\t AElig: '\\u00C6',\n\t Ccedil: '\\u00C7',\n\t Egrave: '\\u00C8',\n\t Eacute: '\\u00C9',\n\t Ecirc: '\\u00CA',\n\t Euml: '\\u00CB',\n\t Igrave: '\\u00CC',\n\t Iacute: '\\u00CD',\n\t Icirc: '\\u00CE',\n\t Iuml: '\\u00CF',\n\t ETH: '\\u00D0',\n\t Ntilde: '\\u00D1',\n\t Ograve: '\\u00D2',\n\t Oacute: '\\u00D3',\n\t Ocirc: '\\u00D4',\n\t Otilde: '\\u00D5',\n\t Ouml: '\\u00D6',\n\t times: '\\u00D7',\n\t Oslash: '\\u00D8',\n\t Ugrave: '\\u00D9',\n\t Uacute: '\\u00DA',\n\t Ucirc: '\\u00DB',\n\t Uuml: '\\u00DC',\n\t Yacute: '\\u00DD',\n\t THORN: '\\u00DE',\n\t szlig: '\\u00DF',\n\t agrave: '\\u00E0',\n\t aacute: '\\u00E1',\n\t acirc: '\\u00E2',\n\t atilde: '\\u00E3',\n\t auml: '\\u00E4',\n\t aring: '\\u00E5',\n\t aelig: '\\u00E6',\n\t ccedil: '\\u00E7',\n\t egrave: '\\u00E8',\n\t eacute: '\\u00E9',\n\t ecirc: '\\u00EA',\n\t euml: '\\u00EB',\n\t igrave: '\\u00EC',\n\t iacute: '\\u00ED',\n\t icirc: '\\u00EE',\n\t iuml: '\\u00EF',\n\t eth: '\\u00F0',\n\t ntilde: '\\u00F1',\n\t ograve: '\\u00F2',\n\t oacute: '\\u00F3',\n\t ocirc: '\\u00F4',\n\t otilde: '\\u00F5',\n\t ouml: '\\u00F6',\n\t divide: '\\u00F7',\n\t oslash: '\\u00F8',\n\t ugrave: '\\u00F9',\n\t uacute: '\\u00FA',\n\t ucirc: '\\u00FB',\n\t uuml: '\\u00FC',\n\t yacute: '\\u00FD',\n\t thorn: '\\u00FE',\n\t yuml: '\\u00FF',\n\t OElig: '\\u0152',\n\t oelig: '\\u0153',\n\t Scaron: '\\u0160',\n\t scaron: '\\u0161',\n\t Yuml: '\\u0178',\n\t fnof: '\\u0192',\n\t circ: '\\u02C6',\n\t tilde: '\\u02DC',\n\t Alpha: '\\u0391',\n\t Beta: '\\u0392',\n\t Gamma: '\\u0393',\n\t Delta: '\\u0394',\n\t Epsilon: '\\u0395',\n\t Zeta: '\\u0396',\n\t Eta: '\\u0397',\n\t Theta: '\\u0398',\n\t Iota: '\\u0399',\n\t Kappa: '\\u039A',\n\t Lambda: '\\u039B',\n\t Mu: '\\u039C',\n\t Nu: '\\u039D',\n\t Xi: '\\u039E',\n\t Omicron: '\\u039F',\n\t Pi: '\\u03A0',\n\t Rho: '\\u03A1',\n\t Sigma: '\\u03A3',\n\t Tau: '\\u03A4',\n\t Upsilon: '\\u03A5',\n\t Phi: '\\u03A6',\n\t Chi: '\\u03A7',\n\t Psi: '\\u03A8',\n\t Omega: '\\u03A9',\n\t alpha: '\\u03B1',\n\t beta: '\\u03B2',\n\t gamma: '\\u03B3',\n\t delta: '\\u03B4',\n\t epsilon: '\\u03B5',\n\t zeta: '\\u03B6',\n\t eta: '\\u03B7',\n\t theta: '\\u03B8',\n\t iota: '\\u03B9',\n\t kappa: '\\u03BA',\n\t lambda: '\\u03BB',\n\t mu: '\\u03BC',\n\t nu: '\\u03BD',\n\t xi: '\\u03BE',\n\t omicron: '\\u03BF',\n\t pi: '\\u03C0',\n\t rho: '\\u03C1',\n\t sigmaf: '\\u03C2',\n\t sigma: '\\u03C3',\n\t tau: '\\u03C4',\n\t upsilon: '\\u03C5',\n\t phi: '\\u03C6',\n\t chi: '\\u03C7',\n\t psi: '\\u03C8',\n\t omega: '\\u03C9',\n\t thetasym: '\\u03D1',\n\t upsih: '\\u03D2',\n\t piv: '\\u03D6',\n\t ensp: '\\u2002',\n\t emsp: '\\u2003',\n\t thinsp: '\\u2009',\n\t zwnj: '\\u200C',\n\t zwj: '\\u200D',\n\t lrm: '\\u200E',\n\t rlm: '\\u200F',\n\t ndash: '\\u2013',\n\t mdash: '\\u2014',\n\t lsquo: '\\u2018',\n\t rsquo: '\\u2019',\n\t sbquo: '\\u201A',\n\t ldquo: '\\u201C',\n\t rdquo: '\\u201D',\n\t bdquo: '\\u201E',\n\t dagger: '\\u2020',\n\t Dagger: '\\u2021',\n\t bull: '\\u2022',\n\t hellip: '\\u2026',\n\t permil: '\\u2030',\n\t prime: '\\u2032',\n\t Prime: '\\u2033',\n\t lsaquo: '\\u2039',\n\t rsaquo: '\\u203A',\n\t oline: '\\u203E',\n\t frasl: '\\u2044',\n\t euro: '\\u20AC',\n\t image: '\\u2111',\n\t weierp: '\\u2118',\n\t real: '\\u211C',\n\t trade: '\\u2122',\n\t alefsym: '\\u2135',\n\t larr: '\\u2190',\n\t uarr: '\\u2191',\n\t rarr: '\\u2192',\n\t darr: '\\u2193',\n\t harr: '\\u2194',\n\t crarr: '\\u21B5',\n\t lArr: '\\u21D0',\n\t uArr: '\\u21D1',\n\t rArr: '\\u21D2',\n\t dArr: '\\u21D3',\n\t hArr: '\\u21D4',\n\t forall: '\\u2200',\n\t part: '\\u2202',\n\t exist: '\\u2203',\n\t empty: '\\u2205',\n\t nabla: '\\u2207',\n\t isin: '\\u2208',\n\t notin: '\\u2209',\n\t ni: '\\u220B',\n\t prod: '\\u220F',\n\t sum: '\\u2211',\n\t minus: '\\u2212',\n\t lowast: '\\u2217',\n\t radic: '\\u221A',\n\t prop: '\\u221D',\n\t infin: '\\u221E',\n\t ang: '\\u2220',\n\t and: '\\u2227',\n\t or: '\\u2228',\n\t cap: '\\u2229',\n\t cup: '\\u222A',\n\t int: '\\u222B',\n\t there4: '\\u2234',\n\t sim: '\\u223C',\n\t cong: '\\u2245',\n\t asymp: '\\u2248',\n\t ne: '\\u2260',\n\t equiv: '\\u2261',\n\t le: '\\u2264',\n\t ge: '\\u2265',\n\t sub: '\\u2282',\n\t sup: '\\u2283',\n\t nsub: '\\u2284',\n\t sube: '\\u2286',\n\t supe: '\\u2287',\n\t oplus: '\\u2295',\n\t otimes: '\\u2297',\n\t perp: '\\u22A5',\n\t sdot: '\\u22C5',\n\t lceil: '\\u2308',\n\t rceil: '\\u2309',\n\t lfloor: '\\u230A',\n\t rfloor: '\\u230B',\n\t loz: '\\u25CA',\n\t spades: '\\u2660',\n\t clubs: '\\u2663',\n\t hearts: '\\u2665',\n\t diams: '\\u2666',\n\t lang: '\\u27E8',\n\t rang: '\\u27E9'\n\t};\n\n\n/***/ },\n/* 15 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar error_handler_1 = __webpack_require__(10);\n\tvar scanner_1 = __webpack_require__(12);\n\tvar token_1 = __webpack_require__(13);\n\tvar Reader = (function () {\n\t function Reader() {\n\t this.values = [];\n\t this.curly = this.paren = -1;\n\t }\n\t // A function following one of those tokens is an expression.\n\t Reader.prototype.beforeFunctionExpression = function (t) {\n\t return ['(', '{', '[', 'in', 'typeof', 'instanceof', 'new',\n\t 'return', 'case', 'delete', 'throw', 'void',\n\t // assignment operators\n\t '=', '+=', '-=', '*=', '**=', '/=', '%=', '<<=', '>>=', '>>>=',\n\t '&=', '|=', '^=', ',',\n\t // binary/unary operators\n\t '+', '-', '*', '**', '/', '%', '++', '--', '<<', '>>', '>>>', '&',\n\t '|', '^', '!', '~', '&&', '||', '?', ':', '===', '==', '>=',\n\t '<=', '<', '>', '!=', '!=='].indexOf(t) >= 0;\n\t };\n\t // Determine if forward slash (/) is an operator or part of a regular expression\n\t // https://github.com/mozilla/sweet.js/wiki/design\n\t Reader.prototype.isRegexStart = function () {\n\t var previous = this.values[this.values.length - 1];\n\t var regex = (previous !== null);\n\t switch (previous) {\n\t case 'this':\n\t case ']':\n\t regex = false;\n\t break;\n\t case ')':\n\t var keyword = this.values[this.paren - 1];\n\t regex = (keyword === 'if' || keyword === 'while' || keyword === 'for' || keyword === 'with');\n\t break;\n\t case '}':\n\t // Dividing a function by anything makes little sense,\n\t // but we have to check for that.\n\t regex = false;\n\t if (this.values[this.curly - 3] === 'function') {\n\t // Anonymous function, e.g. function(){} /42\n\t var check = this.values[this.curly - 4];\n\t regex = check ? !this.beforeFunctionExpression(check) : false;\n\t }\n\t else if (this.values[this.curly - 4] === 'function') {\n\t // Named function, e.g. function f(){} /42/\n\t var check = this.values[this.curly - 5];\n\t regex = check ? !this.beforeFunctionExpression(check) : true;\n\t }\n\t break;\n\t default:\n\t break;\n\t }\n\t return regex;\n\t };\n\t Reader.prototype.push = function (token) {\n\t if (token.type === 7 /* Punctuator */ || token.type === 4 /* Keyword */) {\n\t if (token.value === '{') {\n\t this.curly = this.values.length;\n\t }\n\t else if (token.value === '(') {\n\t this.paren = this.values.length;\n\t }\n\t this.values.push(token.value);\n\t }\n\t else {\n\t this.values.push(null);\n\t }\n\t };\n\t return Reader;\n\t}());\n\tvar Tokenizer = (function () {\n\t function Tokenizer(code, config) {\n\t this.errorHandler = new error_handler_1.ErrorHandler();\n\t this.errorHandler.tolerant = config ? (typeof config.tolerant === 'boolean' && config.tolerant) : false;\n\t this.scanner = new scanner_1.Scanner(code, this.errorHandler);\n\t this.scanner.trackComment = config ? (typeof config.comment === 'boolean' && config.comment) : false;\n\t this.trackRange = config ? (typeof config.range === 'boolean' && config.range) : false;\n\t this.trackLoc = config ? (typeof config.loc === 'boolean' && config.loc) : false;\n\t this.buffer = [];\n\t this.reader = new Reader();\n\t }\n\t Tokenizer.prototype.errors = function () {\n\t return this.errorHandler.errors;\n\t };\n\t Tokenizer.prototype.getNextToken = function () {\n\t if (this.buffer.length === 0) {\n\t var comments = this.scanner.scanComments();\n\t if (this.scanner.trackComment) {\n\t for (var i = 0; i < comments.length; ++i) {\n\t var e = comments[i];\n\t var value = this.scanner.source.slice(e.slice[0], e.slice[1]);\n\t var comment = {\n\t type: e.multiLine ? 'BlockComment' : 'LineComment',\n\t value: value\n\t };\n\t if (this.trackRange) {\n\t comment.range = e.range;\n\t }\n\t if (this.trackLoc) {\n\t comment.loc = e.loc;\n\t }\n\t this.buffer.push(comment);\n\t }\n\t }\n\t if (!this.scanner.eof()) {\n\t var loc = void 0;\n\t if (this.trackLoc) {\n\t loc = {\n\t start: {\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t },\n\t end: {}\n\t };\n\t }\n\t var startRegex = (this.scanner.source[this.scanner.index] === '/') && this.reader.isRegexStart();\n\t var token = startRegex ? this.scanner.scanRegExp() : this.scanner.lex();\n\t this.reader.push(token);\n\t var entry = {\n\t type: token_1.TokenName[token.type],\n\t value: this.scanner.source.slice(token.start, token.end)\n\t };\n\t if (this.trackRange) {\n\t entry.range = [token.start, token.end];\n\t }\n\t if (this.trackLoc) {\n\t loc.end = {\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t entry.loc = loc;\n\t }\n\t if (token.type === 9 /* RegularExpression */) {\n\t var pattern = token.pattern;\n\t var flags = token.flags;\n\t entry.regex = { pattern: pattern, flags: flags };\n\t }\n\t this.buffer.push(entry);\n\t }\n\t }\n\t return this.buffer.shift();\n\t };\n\t return Tokenizer;\n\t}());\n\texports.Tokenizer = Tokenizer;\n\n\n/***/ }\n/******/ ])\n});\n;","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return '<Buffer ' + str + '>'\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('buffer').Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","/**\n * Default minimum size of a run.\n */\nconst DEFAULT_MIN_MERGE = 32\n\n/**\n * Minimum ordered subsequece required to do galloping.\n */\nconst DEFAULT_MIN_GALLOPING = 7\n\n/**\n * Default tmp storage length. Can increase depending on the size of the\n * smallest run to merge.\n */\nconst DEFAULT_TMP_STORAGE_LENGTH = 256\n\n/**\n * Pre-computed powers of 10 for efficient lexicographic comparison of\n * small integers.\n */\nconst POWERS_OF_TEN = [1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9]\n\nlet results\n\n/**\n * Estimate the logarithm base 10 of a small integer.\n *\n * @param {number} x - The integer to estimate the logarithm of.\n * @return {number} - The estimated logarithm of the integer.\n */\nconst log10 = x => x < 1e5\n ? x < 1e2\n ? x < 1e1\n ? 0\n : 1\n : x < 1e4\n ? x < 1e3\n ? 2\n : 3\n : 4\n : x < 1e7\n ? x < 1e6\n ? 5\n : 6\n : x < 1e9\n ? x < 1e8\n ? 7\n : 8\n : 9\n\n/**\n * Default alphabetical comparison of items.\n *\n * @param {string|object|number} a - First element to compare.\n * @param {string|object|number} b - Second element to compare.\n * @return {number} - A positive number if a.toString() > b.toString(), a\n * negative number if .toString() < b.toString(), 0 otherwise.\n */\nfunction alphabeticalCompare (a, b) {\n if (a === b) {\n return 0\n }\n\n if (~ ~ a === a && ~ ~ b === b) {\n if (a === 0 || b === 0) {\n return a < b ? - 1 : 1\n }\n\n if (a < 0 || b < 0) {\n if (b >= 0) {\n return - 1\n }\n\n if (a >= 0) {\n return 1\n }\n\n a = - a\n b = - b\n }\n\n const al = log10(a)\n const bl = log10(b)\n\n let t = 0\n\n if (al < bl) {\n a *= POWERS_OF_TEN[bl - al - 1]\n b /= 10\n t = - 1\n } else if (al > bl) {\n b *= POWERS_OF_TEN[al - bl - 1]\n a /= 10\n t = 1\n }\n\n if (a === b) {\n return t\n }\n\n return a < b ? - 1 : 1\n }\n\n const aStr = String(a)\n const bStr = String(b)\n\n if (aStr === bStr) {\n return 0\n }\n\n return aStr < bStr ? - 1 : 1\n}\n\n/**\n * Compute minimum run length for TimSort\n *\n * @param {number} n - The size of the array to sort.\n */\nfunction minRunLength (n) {\n let r = 0\n\n while (n >= DEFAULT_MIN_MERGE) {\n r |= (n & 1)\n n >>= 1\n }\n\n return n + r\n}\n\n/**\n * Counts the length of a monotonically ascending or strictly monotonically\n * descending sequence (run) starting at array[lo] in the range [lo, hi). If\n * the run is descending it is made ascending.\n *\n * @param {array} array - The array to reverse.\n * @param {number} lo - First element in the range (inclusive).\n * @param {number} hi - Last element in the range.\n * @param {function} compare - Item comparison function.\n * @return {number} - The length of the run.\n */\nfunction makeAscendingRun (array, lo, hi, compare) {\n let runHi = lo + 1\n\n if (runHi === hi) {\n return 1\n }\n\n // Descending\n if (compare(array[runHi ++], array[lo]) < 0) {\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) < 0) {\n runHi ++\n }\n\n reverseRun(array, lo, runHi)\n reverseRun(results, lo, runHi)\n // Ascending\n } else {\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) >= 0) {\n runHi ++\n }\n }\n\n return runHi - lo\n}\n\n/**\n * Reverse an array in the range [lo, hi).\n *\n * @param {array} array - The array to reverse.\n * @param {number} lo - First element in the range (inclusive).\n * @param {number} hi - Last element in the range.\n */\nfunction reverseRun (array, lo, hi) {\n hi --\n\n while (lo < hi) {\n const t = array[lo]\n array[lo ++] = array[hi]\n array[hi --] = t\n }\n}\n\n/**\n * Perform the binary sort of the array in the range [lo, hi) where start is\n * the first element possibly out of order.\n *\n * @param {array} array - The array to sort.\n * @param {number} lo - First element in the range (inclusive).\n * @param {number} hi - Last element in the range.\n * @param {number} start - First element possibly out of order.\n * @param {function} compare - Item comparison function.\n */\nfunction binaryInsertionSort (array, lo, hi, start, compare) {\n if (start === lo) {\n start ++\n }\n\n for (; start < hi; start ++) {\n const pivot = array[start]\n const pivotIndex = results[start]\n\n // Ranges of the array where pivot belongs\n let left = lo\n let right = start\n\n /*\n * pivot >= array[i] for i in [lo, left)\n * pivot < array[i] for i in in [right, start)\n */\n while (left < right) {\n const mid = (left + right) >>> 1\n\n if (compare(pivot, array[mid]) < 0) {\n right = mid\n } else {\n left = mid + 1\n }\n }\n\n /*\n * Move elements right to make room for the pivot. If there are elements\n * equal to pivot, left points to the first slot after them: this is also\n * a reason for which TimSort is stable\n */\n let n = start - left\n // Switch is just an optimization for small arrays\n switch (n) {\n case 3:\n array[left + 3] = array[left + 2]\n results[left + 3] = results[left + 2]\n /* falls through */\n case 2:\n array[left + 2] = array[left + 1]\n results[left + 2] = results[left + 1]\n /* falls through */\n case 1:\n array[left + 1] = array[left]\n results[left + 1] = results[left]\n break\n default:\n while (n > 0) {\n array[left + n] = array[left + n - 1]\n results[left + n] = results[left + n - 1]\n n --\n }\n }\n\n array[left] = pivot\n results[left] = pivotIndex\n }\n}\n\n/**\n * Find the position at which to insert a value in a sorted range. If the range\n * contains elements equal to the value the leftmost element index is returned\n * (for stability).\n *\n * @param {number} value - Value to insert.\n * @param {array} array - The array in which to insert value.\n * @param {number} start - First element in the range.\n * @param {number} length - Length of the range.\n * @param {number} hint - The index at which to begin the search.\n * @param {function} compare - Item comparison function.\n * @return {number} - The index where to insert value.\n */\nfunction gallopLeft (value, array, start, length, hint, compare) {\n let lastOffset = 0\n let maxOffset = 0\n let offset = 1\n\n if (compare(value, array[start + hint]) > 0) {\n maxOffset = length - hint\n\n while (\n offset < maxOffset\n && compare(value, array[start + hint + offset]) > 0\n ) {\n lastOffset = offset\n offset = (offset << 1) + 1\n\n if (offset <= 0) {\n offset = maxOffset\n }\n }\n\n if (offset > maxOffset) {\n offset = maxOffset\n }\n\n // Make offsets relative to start\n lastOffset += hint\n offset += hint\n\n // value <= array[start + hint]\n } else {\n maxOffset = hint + 1\n while (\n offset < maxOffset\n && compare(value, array[start + hint - offset]) <= 0\n ) {\n lastOffset = offset\n offset = (offset << 1) + 1\n\n if (offset <= 0) {\n offset = maxOffset\n }\n }\n if (offset > maxOffset) {\n offset = maxOffset\n }\n\n // Make offsets relative to start\n const tmp = lastOffset\n lastOffset = hint - offset\n offset = hint - tmp\n }\n\n /*\n * Now array[start+lastOffset] < value <= array[start+offset], so value\n * belongs somewhere in the range (start + lastOffset, start + offset]. Do a\n * binary search, with invariant array[start + lastOffset - 1] < value <=\n * array[start + offset].\n */\n lastOffset ++\n while (lastOffset < offset) {\n const m = lastOffset + ((offset - lastOffset) >>> 1)\n\n if (compare(value, array[start + m]) > 0) {\n lastOffset = m + 1\n } else {\n offset = m\n }\n }\n return offset\n}\n\n/**\n * Find the position at which to insert a value in a sorted range. If the range\n * contains elements equal to the value the rightmost element index is returned\n * (for stability).\n *\n * @param {number} value - Value to insert.\n * @param {array} array - The array in which to insert value.\n * @param {number} start - First element in the range.\n * @param {number} length - Length of the range.\n * @param {number} hint - The index at which to begin the search.\n * @param {function} compare - Item comparison function.\n * @return {number} - The index where to insert value.\n */\nfunction gallopRight (value, array, start, length, hint, compare) {\n let lastOffset = 0\n let maxOffset = 0\n let offset = 1\n\n if (compare(value, array[start + hint]) < 0) {\n maxOffset = hint + 1\n\n while (\n offset < maxOffset\n && compare(value, array[start + hint - offset]) < 0\n ) {\n lastOffset = offset\n offset = (offset << 1) + 1\n\n if (offset <= 0) {\n offset = maxOffset\n }\n }\n\n if (offset > maxOffset) {\n offset = maxOffset\n }\n\n // Make offsets relative to start\n const tmp = lastOffset\n lastOffset = hint - offset\n offset = hint - tmp\n\n // value >= array[start + hint]\n } else {\n maxOffset = length - hint\n\n while (\n offset < maxOffset\n && compare(value, array[start + hint + offset]) >= 0\n ) {\n lastOffset = offset\n offset = (offset << 1) + 1\n\n if (offset <= 0) {\n offset = maxOffset\n }\n }\n\n if (offset > maxOffset) {\n offset = maxOffset\n }\n\n // Make offsets relative to start\n lastOffset += hint\n offset += hint\n }\n\n /*\n * Now array[start+lastOffset] < value <= array[start+offset], so value\n * belongs somewhere in the range (start + lastOffset, start + offset]. Do a\n * binary search, with invariant array[start + lastOffset - 1] < value <=\n * array[start + offset].\n */\n lastOffset ++\n\n while (lastOffset < offset) {\n const m = lastOffset + ((offset - lastOffset) >>> 1)\n\n if (compare(value, array[start + m]) < 0) {\n offset = m\n } else {\n lastOffset = m + 1\n }\n }\n\n return offset\n}\n\nclass TimSort {\n constructor (array, compare) {\n this.array = array\n this.compare = compare\n\n const {length} = array\n\n this.length = length\n this.minGallop = DEFAULT_MIN_GALLOPING\n\n this.tmpStorageLength = length < 2 * DEFAULT_TMP_STORAGE_LENGTH\n ? length >>> 1\n : DEFAULT_TMP_STORAGE_LENGTH\n\n this.tmp = new Array(this.tmpStorageLength)\n this.tmpIndex = new Array(this.tmpStorageLength)\n\n this.stackLength = length < 120\n ? 5\n : length < 1542\n ? 10\n : length < 119151\n ? 19\n : 40\n\n this.runStart = new Array(this.stackLength)\n this.runLength = new Array(this.stackLength)\n\n this.stackSize = 0\n }\n\n /**\n * Push a new run on TimSort's stack.\n *\n * @param {number} runStart - Start index of the run in the original array.\n * @param {number} runLength - Length of the run;\n */\n pushRun (runStart, runLength) {\n this.runStart[this.stackSize] = runStart\n this.runLength[this.stackSize] = runLength\n this.stackSize += 1\n }\n\n /**\n * Merge runs on TimSort's stack so that the following holds for all i:\n * 1) runLength[i - 3] > runLength[i - 2] + runLength[i - 1]\n * 2) runLength[i - 2] > runLength[i - 1]\n */\n mergeRuns () {\n while (this.stackSize > 1) {\n let n = this.stackSize - 2\n\n if (\n (\n n >= 1\n && this.runLength[n - 1] <= this.runLength[n] + this.runLength[n + 1]\n )\n || (\n n >= 2\n && this.runLength[n - 2] <= this.runLength[n] + this.runLength[n - 1]\n )\n ) {\n if (this.runLength[n - 1] < this.runLength[n + 1]) {\n n --\n }\n } else if (this.runLength[n] > this.runLength[n + 1]) {\n break\n }\n this.mergeAt(n)\n }\n }\n\n /**\n * Merge all runs on TimSort's stack until only one remains.\n */\n forceMergeRuns () {\n while (this.stackSize > 1) {\n let n = this.stackSize - 2\n\n if (n > 0 && this.runLength[n - 1] < this.runLength[n + 1]) {\n n --\n }\n\n this.mergeAt(n)\n }\n }\n\n /**\n * Merge the runs on the stack at positions i and i+1. Must be always be called\n * with i=stackSize-2 or i=stackSize-3 (that is, we merge on top of the stack).\n *\n * @param {number} i - Index of the run to merge in TimSort's stack.\n */\n mergeAt (i) {\n const {compare} = this\n const {array} = this\n\n let start1 = this.runStart[i]\n let length1 = this.runLength[i]\n const start2 = this.runStart[i + 1]\n let length2 = this.runLength[i + 1]\n\n this.runLength[i] = length1 + length2\n\n if (i === this.stackSize - 3) {\n this.runStart[i + 1] = this.runStart[i + 2]\n this.runLength[i + 1] = this.runLength[i + 2]\n }\n\n this.stackSize --\n\n /*\n * Find where the first element in the second run goes in run1. Previous\n * elements in run1 are already in place\n */\n const k = gallopRight(array[start2], array, start1, length1, 0, compare)\n start1 += k\n length1 -= k\n\n if (length1 === 0) {\n return\n }\n\n /*\n * Find where the last element in the first run goes in run2. Next elements\n * in run2 are already in place\n */\n length2 = gallopLeft(\n array[start1 + length1 - 1],\n array,\n start2,\n length2,\n length2 - 1,\n compare\n )\n\n if (length2 === 0) {\n return\n }\n\n /*\n * Merge remaining runs. A tmp array with length = min(length1, length2) is\n * used\n */\n if (length1 <= length2) {\n this.mergeLow(start1, length1, start2, length2)\n } else {\n this.mergeHigh(start1, length1, start2, length2)\n }\n }\n\n /**\n * Merge two adjacent runs in a stable way. The runs must be such that the\n * first element of run1 is bigger than the first element in run2 and the\n * last element of run1 is greater than all the elements in run2.\n * The method should be called when run1.length <= run2.length as it uses\n * TimSort temporary array to store run1. Use mergeHigh if run1.length >\n * run2.length.\n *\n * @param {number} start1 - First element in run1.\n * @param {number} length1 - Length of run1.\n * @param {number} start2 - First element in run2.\n * @param {number} length2 - Length of run2.\n */\n mergeLow (start1, length1, start2, length2) {\n const {compare} = this\n const {array} = this\n const {tmp} = this\n const {tmpIndex} = this\n let i = 0\n\n for (i = 0; i < length1; i ++) {\n tmp[i] = array[start1 + i]\n tmpIndex[i] = results[start1 + i]\n }\n\n let cursor1 = 0\n let cursor2 = start2\n let dest = start1\n\n array[dest] = array[cursor2]\n results[dest] = results[cursor2]\n\n dest ++\n cursor2 ++\n\n if (-- length2 === 0) {\n for (i = 0; i < length1; i ++) {\n array[dest + i] = tmp[cursor1 + i]\n results[dest + i] = tmpIndex[cursor1 + i]\n }\n return\n }\n\n if (length1 === 1) {\n for (i = 0; i < length2; i ++) {\n array[dest + i] = array[cursor2 + i]\n results[dest + i] = results[cursor2 + i]\n }\n array[dest + length2] = tmp[cursor1]\n results[dest + length2] = tmpIndex[cursor1]\n return\n }\n\n let {minGallop} = this\n\n while (true) {\n let count1 = 0\n let count2 = 0\n let exit = false\n\n do {\n if (compare(array[cursor2], tmp[cursor1]) < 0) {\n array[dest] = array[cursor2]\n results[dest] = results[cursor2]\n dest ++\n cursor2 ++\n count2 ++\n count1 = 0\n\n if (-- length2 === 0) {\n exit = true\n break\n }\n } else {\n array[dest] = tmp[cursor1]\n results[dest] = tmpIndex[cursor1]\n dest ++\n cursor1 ++\n count1 ++\n count2 = 0\n if (-- length1 === 1) {\n exit = true\n break\n }\n }\n } while ((count1 | count2) < minGallop)\n\n if (exit) {\n break\n }\n\n do {\n count1 = gallopRight(array[cursor2], tmp, cursor1, length1, 0, compare)\n\n if (count1 !== 0) {\n for (i = 0; i < count1; i ++) {\n array[dest + i] = tmp[cursor1 + i]\n results[dest + i] = tmpIndex[cursor1 + i]\n }\n\n dest += count1\n cursor1 += count1\n length1 -= count1\n if (length1 <= 1) {\n exit = true\n break\n }\n }\n\n array[dest] = array[cursor2]\n results[dest] = results[cursor2]\n\n dest ++\n cursor2 ++\n\n if (-- length2 === 0) {\n exit = true\n break\n }\n\n count2 = gallopLeft(tmp[cursor1], array, cursor2, length2, 0, compare)\n\n if (count2 !== 0) {\n for (i = 0; i < count2; i ++) {\n array[dest + i] = array[cursor2 + i]\n results[dest + i] = results[cursor2 + i]\n }\n\n dest += count2\n cursor2 += count2\n length2 -= count2\n\n if (length2 === 0) {\n exit = true\n break\n }\n }\n array[dest] = tmp[cursor1]\n results[dest] = tmpIndex[cursor1]\n dest ++\n cursor1 ++\n\n if (-- length1 === 1) {\n exit = true\n break\n }\n\n minGallop --\n } while (\n count1 >= DEFAULT_MIN_GALLOPING\n || count2 >= DEFAULT_MIN_GALLOPING\n )\n\n if (exit) {\n break\n }\n\n if (minGallop < 0) {\n minGallop = 0\n }\n\n minGallop += 2\n }\n\n this.minGallop = minGallop\n\n if (minGallop < 1) {\n this.minGallop = 1\n }\n\n if (length1 === 1) {\n for (i = 0; i < length2; i ++) {\n array[dest + i] = array[cursor2 + i]\n results[dest + i] = results[cursor2 + i]\n }\n array[dest + length2] = tmp[cursor1]\n results[dest + length2] = tmpIndex[cursor1]\n } else if (length1 === 0) {\n throw new Error('mergeLow preconditions were not respected')\n } else {\n for (i = 0; i < length1; i ++) {\n array[dest + i] = tmp[cursor1 + i]\n results[dest + i] = tmpIndex[cursor1 + i]\n }\n }\n }\n\n /**\n * Merge two adjacent runs in a stable way. The runs must be such that the\n * first element of run1 is bigger than the first element in run2 and the\n * last element of run1 is greater than all the elements in run2.\n * The method should be called when run1.length > run2.length as it uses\n * TimSort temporary array to store run2. Use mergeLow if run1.length <=\n * run2.length.\n *\n * @param {number} start1 - First element in run1.\n * @param {number} length1 - Length of run1.\n * @param {number} start2 - First element in run2.\n * @param {number} length2 - Length of run2.\n */\n mergeHigh (start1, length1, start2, length2) {\n const {compare} = this\n const {array} = this\n const {tmp} = this\n const {tmpIndex} = this\n let i = 0\n\n for (i = 0; i < length2; i ++) {\n tmp[i] = array[start2 + i]\n tmpIndex[i] = results[start2 + i]\n }\n\n let cursor1 = start1 + length1 - 1\n let cursor2 = length2 - 1\n let dest = start2 + length2 - 1\n let customCursor = 0\n let customDest = 0\n\n array[dest] = array[cursor1]\n results[dest] = results[cursor1]\n\n dest --\n cursor1 --\n\n if (-- length1 === 0) {\n customCursor = dest - (length2 - 1)\n\n for (i = 0; i < length2; i ++) {\n array[customCursor + i] = tmp[i]\n results[customCursor + i] = tmpIndex[i]\n }\n\n return\n }\n\n if (length2 === 1) {\n dest -= length1\n cursor1 -= length1\n customDest = dest + 1\n customCursor = cursor1 + 1\n\n for (i = length1 - 1; i >= 0; i --) {\n array[customDest + i] = array[customCursor + i]\n results[customDest + i] = results[customCursor + i]\n }\n\n array[dest] = tmp[cursor2]\n results[dest] = tmpIndex[cursor2]\n return\n }\n\n let {minGallop} = this\n\n while (true) {\n let count1 = 0\n let count2 = 0\n let exit = false\n\n do {\n if (compare(tmp[cursor2], array[cursor1]) < 0) {\n array[dest] = array[cursor1]\n results[dest] = results[cursor1]\n dest --\n cursor1 --\n count1 ++\n count2 = 0\n if (-- length1 === 0) {\n exit = true\n break\n }\n } else {\n array[dest] = tmp[cursor2]\n results[dest] = tmpIndex[cursor2]\n dest --\n cursor2 --\n count2 ++\n count1 = 0\n if (-- length2 === 1) {\n exit = true\n break\n }\n }\n } while ((count1 | count2) < minGallop)\n\n if (exit) {\n break\n }\n\n do {\n count1 = length1 - gallopRight(\n tmp[cursor2],\n array,\n start1,\n length1,\n length1 - 1,\n compare\n )\n\n if (count1 !== 0) {\n dest -= count1\n cursor1 -= count1\n length1 -= count1\n customDest = dest + 1\n customCursor = cursor1 + 1\n\n for (i = count1 - 1; i >= 0; i --) {\n array[customDest + i] = array[customCursor + i]\n results[customDest + i] = results[customCursor + i]\n }\n\n if (length1 === 0) {\n exit = true\n break\n }\n }\n\n array[dest] = tmp[cursor2]\n results[dest] = tmpIndex[cursor2]\n dest --\n cursor2 --\n\n if (-- length2 === 1) {\n exit = true\n break\n }\n\n count2 = length2 - gallopLeft(\n array[cursor1],\n tmp,\n 0,\n length2,\n length2 - 1,\n compare\n )\n\n if (count2 !== 0) {\n dest -= count2\n cursor2 -= count2\n length2 -= count2\n customDest = dest + 1\n customCursor = cursor2 + 1\n\n for (i = 0; i < count2; i ++) {\n array[customDest + i] = tmp[customCursor + i]\n results[customDest + i] = tmpIndex[customCursor + i]\n }\n\n if (length2 <= 1) {\n exit = true\n break\n }\n }\n\n array[dest] = array[cursor1]\n results[dest] = results[cursor1]\n dest --\n cursor1 --\n\n if (-- length1 === 0) {\n exit = true\n break\n }\n\n minGallop --\n } while (\n count1 >= DEFAULT_MIN_GALLOPING\n || count2 >= DEFAULT_MIN_GALLOPING\n )\n\n if (exit) {\n break\n }\n\n if (minGallop < 0) {\n minGallop = 0\n }\n\n minGallop += 2\n }\n\n this.minGallop = minGallop\n\n if (minGallop < 1) {\n this.minGallop = 1\n }\n\n if (length2 === 1) {\n dest -= length1\n cursor1 -= length1\n customDest = dest + 1\n customCursor = cursor1 + 1\n\n for (i = length1 - 1; i >= 0; i --) {\n array[customDest + i] = array[customCursor + i]\n results[customDest + i] = results[customCursor + i]\n }\n\n array[dest] = tmp[cursor2]\n results[dest] = tmpIndex[cursor2]\n } else if (length2 === 0) {\n throw new Error('mergeHigh preconditions were not respected')\n } else {\n customCursor = dest - (length2 - 1)\n for (i = 0; i < length2; i ++) {\n array[customCursor + i] = tmp[i]\n results[customCursor + i] = tmpIndex[i]\n }\n }\n }\n}\n\n/**\n * Sort an array in the range [lo, hi) using TimSort.\n *\n * @param {array} array - The array to sort.\n * @param {function=} compare - Item comparison function. Default is\n * alphabetical\n * @param {number} lo - First element in the range (inclusive).\n * @param {number} hi - Last element in the range.\n * comparator.\n */\nfunction sort (array, compare, lo, hi) {\n if (!Array.isArray(array)) {\n throw new TypeError(\n `The \"array\" argument must be an array. Received ${array}`\n )\n }\n\n results = []\n\n const {length} = array\n\n let i = 0\n\n while (i < length) {\n results[i] = i ++\n }\n\n /*\n * Handle the case where a comparison function is not provided. We do\n * lexicographic sorting\n */\n if (!compare) {\n compare = alphabeticalCompare\n } else if (typeof compare !== 'function') {\n hi = lo\n lo = compare\n compare = alphabeticalCompare\n }\n\n if (!lo) {\n lo = 0\n }\n if (!hi) {\n hi = length\n }\n\n let remaining = hi - lo\n\n // The array is already sorted\n if (remaining < 2) {\n return results\n }\n\n let runLength = 0\n // On small arrays binary sort can be used directly\n if (remaining < DEFAULT_MIN_MERGE) {\n runLength = makeAscendingRun(array, lo, hi, compare)\n binaryInsertionSort(array, lo, hi, lo + runLength, compare)\n return results\n }\n\n const ts = new TimSort(array, compare)\n\n const minRun = minRunLength(remaining)\n\n do {\n runLength = makeAscendingRun(array, lo, hi, compare)\n if (runLength < minRun) {\n let force = remaining\n if (force > minRun) {\n force = minRun\n }\n\n binaryInsertionSort(array, lo, lo + force, lo + runLength, compare)\n runLength = force\n }\n // Push new run and merge if necessary\n ts.pushRun(lo, runLength)\n ts.mergeRuns()\n\n // Go find next run\n remaining -= runLength\n lo += runLength\n } while (remaining !== 0)\n\n // Force merging of remaining runs\n ts.forceMergeRuns()\n\n return results\n}\n\nmodule.exports = {\n sort\n}\n","'use strict';\nconst hasOwnProp = Object.prototype.hasOwnProperty;\n\nmodule.exports = (object, property) => hasOwnProp.call(object, property);\n","const hasOwnProperty = require('has-own-prop')\nconst {isObject, isArray} = require('core-util-is')\n\n\nconst PREFIX_BEFORE = 'before'\nconst PREFIX_AFTER_PROP = 'after-prop'\nconst PREFIX_AFTER_COLON = 'after-colon'\nconst PREFIX_AFTER_VALUE = 'after-value'\nconst PREFIX_AFTER = 'after'\n\nconst PREFIX_BEFORE_ALL = 'before-all'\nconst PREFIX_AFTER_ALL = 'after-all'\n\nconst BRACKET_OPEN = '['\nconst BRACKET_CLOSE = ']'\nconst CURLY_BRACKET_OPEN = '{'\nconst CURLY_BRACKET_CLOSE = '}'\nconst COMMA = ','\nconst EMPTY = ''\nconst MINUS = '-'\n\nconst SYMBOL_PREFIXES = [\n PREFIX_BEFORE,\n PREFIX_AFTER_PROP,\n PREFIX_AFTER_COLON,\n PREFIX_AFTER_VALUE,\n PREFIX_AFTER\n]\n\nconst NON_PROP_SYMBOL_KEYS = [\n PREFIX_BEFORE,\n PREFIX_BEFORE_ALL,\n PREFIX_AFTER_ALL\n].map(Symbol.for)\n\nconst COLON = ':'\nconst UNDEFINED = undefined\n\n\nconst symbol = (prefix, key) => Symbol.for(prefix + COLON + key)\n\nconst define = (target, key, value) => Object.defineProperty(target, key, {\n value,\n writable: true,\n configurable: true\n})\n\nconst copy_comments_by_kind = (\n target, source, target_key, source_key, prefix, remove_source\n) => {\n const source_prop = symbol(prefix, source_key)\n if (!hasOwnProperty(source, source_prop)) {\n return\n }\n\n const target_prop = target_key === source_key\n ? source_prop\n : symbol(prefix, target_key)\n\n define(target, target_prop, source[source_prop])\n\n if (remove_source) {\n delete source[source_prop]\n }\n}\n\nconst copy_comments = (\n target, source, target_key, source_key, remove_source\n) => {\n SYMBOL_PREFIXES.forEach(prefix => {\n copy_comments_by_kind(\n target, source, target_key, source_key, prefix, remove_source\n )\n })\n}\n\nconst swap_comments = (array, from, to) => {\n if (from === to) {\n return\n }\n\n SYMBOL_PREFIXES.forEach(prefix => {\n const target_prop = symbol(prefix, to)\n if (!hasOwnProperty(array, target_prop)) {\n copy_comments_by_kind(array, array, to, from, prefix, true)\n return\n }\n\n const comments = array[target_prop]\n delete array[target_prop]\n\n copy_comments_by_kind(array, array, to, from, prefix, true)\n define(array, symbol(prefix, from), comments)\n })\n}\n\nconst assign_non_prop_comments = (target, source) => {\n NON_PROP_SYMBOL_KEYS.forEach(key => {\n const comments = source[key]\n\n if (comments) {\n define(target, key, comments)\n }\n })\n}\n\n// Assign keys and comments\nconst assign = (target, source, keys) => {\n keys.forEach(key => {\n if (!hasOwnProperty(source, key)) {\n return\n }\n\n target[key] = source[key]\n copy_comments(target, source, key, key)\n })\n\n return target\n}\n\n\nmodule.exports = {\n SYMBOL_PREFIXES,\n\n PREFIX_BEFORE,\n PREFIX_AFTER_PROP,\n PREFIX_AFTER_COLON,\n PREFIX_AFTER_VALUE,\n PREFIX_AFTER,\n\n PREFIX_BEFORE_ALL,\n PREFIX_AFTER_ALL,\n\n BRACKET_OPEN,\n BRACKET_CLOSE,\n CURLY_BRACKET_OPEN,\n CURLY_BRACKET_CLOSE,\n\n COLON,\n COMMA,\n MINUS,\n EMPTY,\n\n UNDEFINED,\n\n symbol,\n define,\n copy_comments,\n swap_comments,\n assign_non_prop_comments,\n\n assign (target, source, keys) {\n if (!isObject(target)) {\n throw new TypeError('Cannot convert undefined or null to object')\n }\n\n if (!isObject(source)) {\n return target\n }\n\n if (keys === UNDEFINED) {\n keys = Object.keys(source)\n // We assign non-property comments\n // if argument `keys` is not specified\n assign_non_prop_comments(target, source)\n } else if (!isArray(keys)) {\n throw new TypeError('keys must be array or undefined')\n } else if (keys.length === 0) {\n // Or argument `keys` is an empty array\n assign_non_prop_comments(target, source)\n }\n\n return assign(target, source, keys)\n }\n}\n","const {isArray} = require('core-util-is')\nconst {sort} = require('array-timsort')\n\nconst {\n SYMBOL_PREFIXES,\n\n UNDEFINED,\n\n symbol,\n copy_comments,\n swap_comments\n} = require('./common')\n\n\nconst reverse_comments = array => {\n const {length} = array\n let i = 0\n const max = length / 2\n\n for (; i < max; i ++) {\n swap_comments(array, i, length - i - 1)\n }\n}\n\nconst move_comment = (target, source, i, offset, remove) => {\n copy_comments(target, source, i + offset, i, remove)\n}\n\nconst move_comments = (\n // `Array` target array\n target,\n // `Array` source array\n source,\n // `number` start index\n start,\n // `number` number of indexes to move\n count,\n // `number` offset to move\n offset,\n // `boolean` whether should remove the comments from source\n remove\n) => {\n if (offset > 0) {\n let i = count\n // | count | offset |\n // source: -------------\n // target: -------------\n // | remove |\n // => remove === offset\n\n // From [count - 1, 0]\n while (i -- > 0) {\n move_comment(target, source, start + i, offset, remove)\n }\n return\n }\n\n let i = 0\n // | remove | count |\n // -------------\n // -------------\n // | offset |\n\n // From [0, count - 1]\n while (i < count) {\n const ii = i ++\n move_comment(target, source, start + ii, offset, remove)\n }\n}\n\nconst remove_comments = (array, key) => {\n SYMBOL_PREFIXES.forEach(prefix => {\n const prop = symbol(prefix, key)\n delete array[prop]\n })\n}\n\nconst get_mapped = (map, key) => {\n let mapped = key\n\n while (mapped in map) {\n mapped = map[mapped]\n }\n\n return mapped\n}\n\n\nclass CommentArray extends Array {\n // - deleteCount + items.length\n\n // We should avoid `splice(begin, deleteCount, ...items)`,\n // because `splice(0, undefined)` is not equivalent to `splice(0)`,\n // as well as:\n // - slice\n splice (...args) {\n const {length} = this\n const ret = super.splice(...args)\n\n // #16\n // If no element removed, we might still need to move comments,\n // because splice could add new items\n\n // if (!ret.length) {\n // return ret\n // }\n\n // JavaScript syntax is silly\n // eslint-disable-next-line prefer-const\n let [begin, deleteCount, ...items] = args\n\n if (begin < 0) {\n begin += length\n }\n\n if (arguments.length === 1) {\n deleteCount = length - begin\n } else {\n deleteCount = Math.min(length - begin, deleteCount)\n }\n\n const {\n length: item_length\n } = items\n\n // itemsToDelete: -\n // itemsToAdd: +\n // | dc | count |\n // =======-------------============\n // =======++++++============\n // | il |\n const offset = item_length - deleteCount\n const start = begin + deleteCount\n const count = length - start\n\n move_comments(this, this, start, count, offset, true)\n\n return ret\n }\n\n slice (...args) {\n const {length} = this\n const array = super.slice(...args)\n if (!array.length) {\n return new CommentArray()\n }\n\n let [begin, before] = args\n\n // Ref:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice\n if (before === UNDEFINED) {\n before = length\n } else if (before < 0) {\n before += length\n }\n\n if (begin < 0) {\n begin += length\n } else if (begin === UNDEFINED) {\n begin = 0\n }\n\n move_comments(array, this, begin, before - begin, - begin)\n\n return array\n }\n\n unshift (...items) {\n const {length} = this\n const ret = super.unshift(...items)\n const {\n length: items_length\n } = items\n\n if (items_length > 0) {\n move_comments(this, this, 0, length, items_length, true)\n }\n\n return ret\n }\n\n shift () {\n const ret = super.shift()\n const {length} = this\n\n remove_comments(this, 0)\n move_comments(this, this, 1, length, - 1, true)\n\n return ret\n }\n\n reverse () {\n super.reverse()\n\n reverse_comments(this)\n\n return this\n }\n\n pop () {\n const ret = super.pop()\n\n // Removes comments\n remove_comments(this, this.length)\n\n return ret\n }\n\n concat (...items) {\n let {length} = this\n const ret = super.concat(...items)\n\n if (!items.length) {\n return ret\n }\n\n move_comments(ret, this, 0, this.length, 0)\n\n items.forEach(item => {\n const prev = length\n length += isArray(item)\n ? item.length\n : 1\n\n if (!(item instanceof CommentArray)) {\n return\n }\n\n move_comments(ret, item, 0, item.length, prev)\n })\n\n return ret\n }\n\n sort (...args) {\n const result = sort(\n this,\n // Make sure there is no more than one argument\n ...args.slice(0, 1)\n )\n\n // For example,\n // if we sort ['b', 'd', 'c', 'a'],\n // then `result` will be [3, 0, 2, 1], and the array is ['a', 'b', 'c', 'd']\n\n // First, we swap index 0 (b) and index 3 (a), then the array comments are\n // ['a.comments', 'd.comments', 'c.comments', 'b.comments']\n // index 0 is finalized\n // index 3 is actually mapped to original index 0, we present as 0 -> 3\n\n // Then swap index 1 (d) and index 0 (-> 3, b)\n // 1 (index) -> 0 (new index) -> 3 (real_index)\n // ['d.comments', 'b.comments', 'c.comments', 'd.comments']\n // index 1 is finalized\n // index 3 is contains the item of original index 1\n // - we present as 1 -> 3\n // - it is ok that we don't remove mapping 0 -> 3\n\n // Then index 2 should be skipped\n\n // Then swap index 3 (d) and index 1 (-> 3, b), skipped\n\n const map = Object.create(null)\n\n result.forEach((source_index, index) => {\n if (source_index === index) {\n return\n }\n\n const real_source_index = get_mapped(map, source_index)\n\n if (real_source_index === index) {\n return\n }\n\n // The item of index `index` gets the final value\n // delete map[index]\n map[index] = real_source_index\n\n swap_comments(this, index, real_source_index)\n })\n\n return this\n }\n}\n\n\nmodule.exports = {\n CommentArray\n}\n","// JSON formatting\n\nconst esprima = require('esprima')\n\nconst {\n CommentArray,\n} = require('./array')\n\nconst {\n PREFIX_BEFORE,\n PREFIX_AFTER_PROP,\n PREFIX_AFTER_COLON,\n PREFIX_AFTER_VALUE,\n PREFIX_AFTER,\n\n PREFIX_BEFORE_ALL,\n PREFIX_AFTER_ALL,\n\n BRACKET_OPEN,\n BRACKET_CLOSE,\n CURLY_BRACKET_OPEN,\n CURLY_BRACKET_CLOSE,\n\n COLON,\n COMMA,\n MINUS,\n EMPTY,\n\n UNDEFINED,\n\n define,\n assign_non_prop_comments\n} = require('./common')\n\nconst tokenize = code => esprima.tokenize(code, {\n comment: true,\n loc: true\n})\n\nconst previous_hosts = []\nlet comments_host = null\nlet unassigned_comments = null\n\nconst previous_props = []\nlet last_prop\n\nlet remove_comments = false\nlet inline = false\nlet tokens = null\nlet last = null\nlet current = null\nlet index\nlet reviver = null\n\nconst clean = () => {\n previous_props.length =\n previous_hosts.length = 0\n\n last = null\n last_prop = UNDEFINED\n}\n\nconst free = () => {\n clean()\n\n tokens.length = 0\n\n unassigned_comments =\n comments_host =\n tokens =\n last =\n current =\n reviver = null\n}\n\nconst symbolFor = prefix => Symbol.for(\n last_prop !== UNDEFINED\n ? prefix + COLON + last_prop\n : prefix\n)\n\nconst transform = (k, v) => reviver\n ? reviver(k, v)\n : v\n\nconst unexpected = () => {\n const error = new SyntaxError(`Unexpected token ${current.value.slice(0, 1)}`)\n Object.assign(error, current.loc.start)\n\n throw error\n}\n\nconst unexpected_end = () => {\n const error = new SyntaxError('Unexpected end of JSON input')\n Object.assign(error, last\n ? last.loc.end\n // Empty string\n : {\n line: 1,\n column: 0\n })\n\n throw error\n}\n\n// Move the reader to the next\nconst next = () => {\n const new_token = tokens[++ index]\n inline = current\n && new_token\n && current.loc.end.line === new_token.loc.start.line\n || false\n\n last = current\n current = new_token\n}\n\nconst type = () => {\n if (!current) {\n unexpected_end()\n }\n\n return current.type === 'Punctuator'\n ? current.value\n : current.type\n}\n\nconst is = t => type() === t\n\nconst expect = a => {\n if (!is(a)) {\n unexpected()\n }\n}\n\nconst set_comments_host = new_host => {\n previous_hosts.push(comments_host)\n comments_host = new_host\n}\n\nconst restore_comments_host = () => {\n comments_host = previous_hosts.pop()\n}\n\nconst assign_after_comments = () => {\n if (!unassigned_comments) {\n return\n }\n\n const after_comments = []\n\n for (const comment of unassigned_comments) {\n // If the comment is inline, then it is an after-comma comment\n if (comment.inline) {\n after_comments.push(comment)\n // Otherwise, all comments are before:<next-prop> comment\n } else {\n break\n }\n }\n\n const {length} = after_comments\n if (!length) {\n return\n }\n\n if (length === unassigned_comments.length) {\n // If unassigned_comments are all consumed\n unassigned_comments = null\n } else {\n unassigned_comments.splice(0, length)\n }\n\n define(comments_host, symbolFor(PREFIX_AFTER), after_comments)\n}\n\nconst assign_comments = prefix => {\n if (!unassigned_comments) {\n return\n }\n\n define(comments_host, symbolFor(prefix), unassigned_comments)\n\n unassigned_comments = null\n}\n\nconst parse_comments = prefix => {\n const comments = []\n\n while (\n current\n && (\n is('LineComment')\n || is('BlockComment')\n )\n ) {\n const comment = {\n ...current,\n inline\n }\n\n // delete comment.loc\n comments.push(comment)\n\n next()\n }\n\n if (remove_comments) {\n return\n }\n\n if (!comments.length) {\n return\n }\n\n if (prefix) {\n define(comments_host, symbolFor(prefix), comments)\n return\n }\n\n unassigned_comments = comments\n}\n\nconst set_prop = (prop, push) => {\n if (push) {\n previous_props.push(last_prop)\n }\n\n last_prop = prop\n}\n\nconst restore_prop = () => {\n last_prop = previous_props.pop()\n}\n\nconst parse_object = () => {\n const obj = {}\n set_comments_host(obj)\n set_prop(UNDEFINED, true)\n\n let started = false\n let name\n\n parse_comments()\n\n while (!is(CURLY_BRACKET_CLOSE)) {\n if (started) {\n assign_comments(PREFIX_AFTER_VALUE)\n\n // key-value pair delimiter\n expect(COMMA)\n next()\n parse_comments()\n\n assign_after_comments()\n\n // If there is a trailing comma, we might reach the end\n // ```\n // {\n // \"a\": 1,\n // }\n // ```\n if (is(CURLY_BRACKET_CLOSE)) {\n break\n }\n }\n\n started = true\n expect('String')\n name = JSON.parse(current.value)\n\n set_prop(name)\n assign_comments(PREFIX_BEFORE)\n\n next()\n parse_comments(PREFIX_AFTER_PROP)\n\n expect(COLON)\n\n next()\n parse_comments(PREFIX_AFTER_COLON)\n\n obj[name] = transform(name, walk())\n parse_comments()\n }\n\n if (started) {\n // If there are properties,\n // then the unassigned comments are after comments\n assign_comments(PREFIX_AFTER)\n }\n\n // bypass }\n next()\n last_prop = undefined\n\n if (!started) {\n // Otherwise, they are before comments\n assign_comments(PREFIX_BEFORE)\n }\n\n restore_comments_host()\n restore_prop()\n\n return obj\n}\n\nconst parse_array = () => {\n const array = new CommentArray()\n set_comments_host(array)\n set_prop(UNDEFINED, true)\n\n let started = false\n let i = 0\n\n parse_comments()\n\n while (!is(BRACKET_CLOSE)) {\n if (started) {\n assign_comments(PREFIX_AFTER_VALUE)\n expect(COMMA)\n next()\n parse_comments()\n\n assign_after_comments()\n\n if (is(BRACKET_CLOSE)) {\n break\n }\n }\n\n started = true\n\n set_prop(i)\n assign_comments(PREFIX_BEFORE)\n\n array[i] = transform(i, walk())\n i ++\n\n parse_comments()\n }\n\n if (started) {\n assign_comments(PREFIX_AFTER)\n }\n\n next()\n last_prop = undefined\n\n if (!started) {\n assign_comments(PREFIX_BEFORE)\n }\n\n restore_comments_host()\n restore_prop()\n\n return array\n}\n\nfunction walk () {\n let tt = type()\n\n if (tt === CURLY_BRACKET_OPEN) {\n next()\n return parse_object()\n }\n\n if (tt === BRACKET_OPEN) {\n next()\n return parse_array()\n }\n\n let negative = EMPTY\n\n // -1\n if (tt === MINUS) {\n next()\n tt = type()\n negative = MINUS\n }\n\n let v\n\n switch (tt) {\n case 'String':\n case 'Boolean':\n case 'Null':\n case 'Numeric':\n v = current.value\n next()\n return JSON.parse(negative + v)\n default:\n }\n}\n\nconst isObject = subject => Object(subject) === subject\n\nconst parse = (code, rev, no_comments) => {\n // Clean variables in closure\n clean()\n\n tokens = tokenize(code)\n reviver = rev\n remove_comments = no_comments\n\n if (!tokens.length) {\n unexpected_end()\n }\n\n index = - 1\n next()\n\n set_comments_host({})\n\n parse_comments(PREFIX_BEFORE_ALL)\n\n let result = walk()\n\n parse_comments(PREFIX_AFTER_ALL)\n\n if (current) {\n unexpected()\n }\n\n if (!no_comments && result !== null) {\n if (!isObject(result)) {\n // 1 -> new Number(1)\n // true -> new Boolean(1)\n // \"foo\" -> new String(\"foo\")\n\n // eslint-disable-next-line no-new-object\n result = new Object(result)\n }\n\n assign_non_prop_comments(result, comments_host)\n }\n\n restore_comments_host()\n\n // reviver\n result = transform('', result)\n\n free()\n\n return result\n}\n\nmodule.exports = {\n parse,\n tokenize\n}\n","/*!\n * repeat-string <https://github.com/jonschlinkert/repeat-string>\n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n'use strict';\n\n/**\n * Results cache\n */\n\nvar res = '';\nvar cache;\n\n/**\n * Expose `repeat`\n */\n\nmodule.exports = repeat;\n\n/**\n * Repeat the given `string` the specified `number`\n * of times.\n *\n * **Example:**\n *\n * ```js\n * var repeat = require('repeat-string');\n * repeat('A', 5);\n * //=> AAAAA\n * ```\n *\n * @param {String} `string` The string to repeat\n * @param {Number} `number` The number of times to repeat the string\n * @return {String} Repeated string\n * @api public\n */\n\nfunction repeat(str, num) {\n if (typeof str !== 'string') {\n throw new TypeError('expected a string');\n }\n\n // cover common, quick use cases\n if (num === 1) return str;\n if (num === 2) return str + str;\n\n var max = str.length * num;\n if (cache !== str || typeof cache === 'undefined') {\n cache = str;\n res = '';\n } else if (res.length >= max) {\n return res.substr(0, max);\n }\n\n while (max > res.length && num > 1) {\n if (num & 1) {\n res += str;\n }\n\n num >>= 1;\n str += str;\n }\n\n res += str;\n res = res.substr(0, max);\n return res;\n}\n","const {\n isArray, isObject, isFunction, isNumber, isString\n} = require('core-util-is')\nconst repeat = require('repeat-string')\n\nconst {\n PREFIX_BEFORE_ALL,\n PREFIX_BEFORE,\n PREFIX_AFTER_PROP,\n PREFIX_AFTER_COLON,\n PREFIX_AFTER_VALUE,\n PREFIX_AFTER,\n PREFIX_AFTER_ALL,\n\n BRACKET_OPEN,\n BRACKET_CLOSE,\n CURLY_BRACKET_OPEN,\n CURLY_BRACKET_CLOSE,\n COLON,\n COMMA,\n EMPTY,\n\n UNDEFINED\n} = require('./common')\n\n// eslint-disable-next-line no-control-regex, no-misleading-character-class\nconst ESCAPABLE = /[\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g\n\n// String constants\nconst SPACE = ' '\nconst LF = '\\n'\nconst STR_NULL = 'null'\n\n// Symbol tags\nconst BEFORE = prop => `${PREFIX_BEFORE}:${prop}`\nconst AFTER_PROP = prop => `${PREFIX_AFTER_PROP}:${prop}`\nconst AFTER_COLON = prop => `${PREFIX_AFTER_COLON}:${prop}`\nconst AFTER_VALUE = prop => `${PREFIX_AFTER_VALUE}:${prop}`\nconst AFTER = prop => `${PREFIX_AFTER}:${prop}`\n\n// table of character substitutions\nconst meta = {\n '\\b': '\\\\b',\n '\\t': '\\\\t',\n '\\n': '\\\\n',\n '\\f': '\\\\f',\n '\\r': '\\\\r',\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\'\n}\n\nconst escape = string => {\n ESCAPABLE.lastIndex = 0\n\n if (!ESCAPABLE.test(string)) {\n return string\n }\n\n return string.replace(ESCAPABLE, a => {\n const c = meta[a]\n return typeof c === 'string'\n ? c\n : a\n })\n}\n\n// Escape no control characters, no quote characters,\n// and no backslash characters,\n// then we can safely slap some quotes around it.\nconst quote = string => `\"${escape(string)}\"`\nconst comment_stringify = (value, line) => line\n ? `//${value}`\n : `/*${value}*/`\n\n// display_block `boolean` whether the\n// WHOLE block of comments is always a block group\nconst process_comments = (host, symbol_tag, deeper_gap, display_block) => {\n const comments = host[Symbol.for(symbol_tag)]\n if (!comments || !comments.length) {\n return EMPTY\n }\n\n let is_line_comment = false\n\n const str = comments.reduce((prev, {\n inline,\n type,\n value\n }) => {\n const delimiter = inline\n ? SPACE\n : LF + deeper_gap\n\n is_line_comment = type === 'LineComment'\n\n return prev + delimiter + comment_stringify(value, is_line_comment)\n }, EMPTY)\n\n\n return display_block\n // line comment should always end with a LF\n || is_line_comment\n ? str + LF + deeper_gap\n : str\n}\n\nlet replacer = null\nlet indent = EMPTY\n\nconst clean = () => {\n replacer = null\n indent = EMPTY\n}\n\nconst join = (one, two, gap) =>\n one\n ? two\n // Symbol.for('before') and Symbol.for('before:prop')\n // might both exist if user mannually add comments to the object\n // and make a mistake.\n // SO, we are not to only trimRight but trim for both sides\n ? one + two.trim() + LF + gap\n : one.trimRight() + LF + gap\n : two\n ? two.trimRight() + LF + gap\n : EMPTY\n\nconst join_content = (inside, value, gap) => {\n const comment = process_comments(value, PREFIX_BEFORE, gap + indent, true)\n\n return join(comment, inside, gap)\n}\n\n// | deeper_gap |\n// | gap | indent |\n// [\n// \"foo\",\n// \"bar\"\n// ]\nconst array_stringify = (value, gap) => {\n const deeper_gap = gap + indent\n\n const {length} = value\n\n // From the item to before close\n let inside = EMPTY\n let after_comma = EMPTY\n\n // Never use Array.prototype.forEach,\n // that we should iterate all items\n for (let i = 0; i < length; i ++) {\n if (i !== 0) {\n inside += COMMA\n }\n\n const before = join(\n after_comma,\n process_comments(value, BEFORE(i), deeper_gap),\n deeper_gap\n )\n\n inside += before || (LF + deeper_gap)\n\n // JSON.stringify([undefined]) => [null]\n inside += stringify(i, value, deeper_gap) || STR_NULL\n\n inside += process_comments(value, AFTER_VALUE(i), deeper_gap)\n\n after_comma = process_comments(value, AFTER(i), deeper_gap)\n }\n\n inside += join(\n after_comma,\n process_comments(value, PREFIX_AFTER, deeper_gap),\n deeper_gap\n )\n\n return BRACKET_OPEN\n + join_content(inside, value, gap)\n + BRACKET_CLOSE\n}\n\n// | deeper_gap |\n// | gap | indent |\n// {\n// \"foo\": 1,\n// \"bar\": 2\n// }\nconst object_stringify = (value, gap) => {\n // Due to a specification blunder in ECMAScript, typeof null is 'object',\n // so watch out for that case.\n if (!value) {\n return 'null'\n }\n\n const deeper_gap = gap + indent\n\n // From the first element to before close\n let inside = EMPTY\n let after_comma = EMPTY\n let first = true\n\n const keys = isArray(replacer)\n ? replacer\n : Object.keys(value)\n\n const iteratee = key => {\n // Stringified value\n const sv = stringify(key, value, deeper_gap)\n\n // If a value is undefined, then the key-value pair should be ignored\n if (sv === UNDEFINED) {\n return\n }\n\n // The treat ment\n if (!first) {\n inside += COMMA\n }\n\n first = false\n\n const before = join(\n after_comma,\n process_comments(value, BEFORE(key), deeper_gap),\n deeper_gap\n )\n\n inside += before || (LF + deeper_gap)\n\n inside += quote(key)\n + process_comments(value, AFTER_PROP(key), deeper_gap)\n + COLON\n + process_comments(value, AFTER_COLON(key), deeper_gap)\n + SPACE\n + sv\n + process_comments(value, AFTER_VALUE(key), deeper_gap)\n\n after_comma = process_comments(value, AFTER(key), deeper_gap)\n }\n\n keys.forEach(iteratee)\n\n // if (after_comma) {\n // inside += COMMA\n // }\n\n inside += join(\n after_comma,\n process_comments(value, PREFIX_AFTER, deeper_gap),\n deeper_gap\n )\n\n return CURLY_BRACKET_OPEN\n + join_content(inside, value, gap)\n + CURLY_BRACKET_CLOSE\n}\n\n// @param {string} key\n// @param {Object} holder\n// @param {function()|Array} replacer\n// @param {string} indent\n// @param {string} gap\nfunction stringify (key, holder, gap) {\n let value = holder[key]\n\n // If the value has a toJSON method, call it to obtain a replacement value.\n if (isObject(value) && isFunction(value.toJSON)) {\n value = value.toJSON(key)\n }\n\n // If we were called with a replacer function, then call the replacer to\n // obtain a replacement value.\n if (isFunction(replacer)) {\n value = replacer.call(holder, key, value)\n }\n\n switch (typeof value) {\n case 'string':\n return quote(value)\n\n case 'number':\n // JSON numbers must be finite. Encode non-finite numbers as null.\n return Number.isFinite(value) ? String(value) : STR_NULL\n\n case 'boolean':\n case 'null':\n\n // If the value is a boolean or null, convert it to a string. Note:\n // typeof null does not produce 'null'. The case is included here in\n // the remote chance that this gets fixed someday.\n return String(value)\n\n // If the type is 'object', we might be dealing with an object or an array or\n // null.\n case 'object':\n return isArray(value)\n ? array_stringify(value, gap)\n : object_stringify(value, gap)\n\n // undefined\n default:\n // JSON.stringify(undefined) === undefined\n // JSON.stringify('foo', () => undefined) === undefined\n }\n}\n\nconst get_indent = space => isString(space)\n // If the space parameter is a string, it will be used as the indent string.\n ? space\n : isNumber(space)\n ? repeat(SPACE, space)\n : EMPTY\n\nconst {toString} = Object.prototype\nconst PRIMITIVE_OBJECT_TYPES = [\n '[object Number]',\n '[object String]',\n '[object Boolean]'\n]\n\nconst is_primitive_object = subject => {\n if (typeof subject !== 'object') {\n return false\n }\n\n const str = toString.call(subject)\n return PRIMITIVE_OBJECT_TYPES.includes(str)\n}\n\n// @param {function()|Array} replacer\n// @param {string|number} space\nmodule.exports = (value, replacer_, space) => {\n // The stringify method takes a value and an optional replacer, and an optional\n // space parameter, and returns a JSON text. The replacer can be a function\n // that can replace values, or an array of strings that will select the keys.\n // A default replacer method can be provided. Use of the space parameter can\n // produce text that is more easily readable.\n\n // If the space parameter is a number, make an indent string containing that\n // many spaces.\n const indent_ = get_indent(space)\n\n if (!indent_) {\n return JSON.stringify(value, replacer_)\n }\n\n // vanilla `JSON.parse` allow invalid replacer\n if (!isFunction(replacer_) && !isArray(replacer_)) {\n replacer_ = null\n }\n\n replacer = replacer_\n indent = indent_\n\n const str = is_primitive_object(value)\n ? JSON.stringify(value)\n : stringify('', {'': value}, EMPTY)\n\n clean()\n\n return isObject(value)\n ? process_comments(value, PREFIX_BEFORE_ALL, EMPTY).trimLeft()\n + str\n + process_comments(value, PREFIX_AFTER_ALL, EMPTY).trimRight()\n : str\n}\n","const {parse, tokenize} = require('./parse')\nconst stringify = require('./stringify')\nconst {CommentArray} = require('./array')\nconst {assign} = require('./common')\n\nmodule.exports = {\n parse,\n stringify,\n tokenize,\n\n CommentArray,\n assign\n}\n","import type { DataModel, Hook } from '@mcschema/core'\nimport { ModelPath, relativePath } from '@mcschema/core'\nimport type { BlockStateRegistry } from '../services'\n\nexport function getOutput(model: DataModel, blockStates: BlockStateRegistry): any {\n\treturn model.schema.hook(transformOutput, new ModelPath(model), model.data, { blockStates })\n}\n\nexport type OutputProps = {\n\tblockStates: BlockStateRegistry,\n}\nexport const transformOutput: Hook<[any, OutputProps], any> = {\n\tbase({}, _, value) {\n\t\treturn value\n\t},\n\n\tchoice({ switchNode }, path, value, props) {\n\t\treturn switchNode.hook(this, path, value, props)\n\t},\n\n\tlist({ children }, path, value, props) {\n\t\tif (!Array.isArray(value)) return value\n\t\tconst res = value.map((obj, index) =>\n\t\t\tchildren.hook(this, path.push(index), obj.node, props)\n\t\t)\n\t\tfor (const a of Object.getOwnPropertySymbols(value)) {\n\t\t\tres[a as any] = value[a as any]\n\t\t}\n\t\treturn res\n\t},\n\n\tmap({ children, config }, path, value, props) {\n\t\tif (value === undefined) return undefined\n\t\tconst blockState = config.validation?.validator === 'block_state_map'? props.blockStates?.[relativePath(path, config.validation.params.id).get()] : null\n\t\tconst res: any = {}\n\t\tObject.keys(value).forEach(f => {\n\t\t\tif (blockState) {\n\t\t\t\tif (!Object.keys(blockState.properties ?? {}).includes(f)) return\n\t\t\t}\n\t\t\tres[f] = children.hook(this, path.push(f), value[f], props)\n\t\t})\n\t\tfor (const a of Object.getOwnPropertySymbols(value)) {\n\t\t\tres[a as any] = value[a]\n\t\t}\n\t\treturn res\n\t},\n\n\tobject({ getActiveFields }, path, value, props) {\n\t\tif (value === undefined || value === null || typeof value !== 'object') {\n\t\t\treturn value\n\t\t}\n\t\tconst res: any = {}\n\t\tconst activeFields = getActiveFields(path)\n\t\tObject.keys(activeFields)\n\t\t\t.filter(k => activeFields[k].enabled(path))\n\t\t\t.forEach(f => {\n\t\t\t\tconst out = activeFields[f].hook(this, path.push(f), value[f], props)\n\t\t\t\tif (out !== undefined && out !== null) {\n\t\t\t\t\tres[f] = out\n\t\t\t\t}\n\t\t\t})\n\t\tfor (const a of Object.getOwnPropertySymbols(value)) {\n\t\t\tres[a as any] = value[a]\n\t\t}\n\t\treturn res\n\t},\n}\n","import { DataModel } from '@mcschema/core'\nimport json from 'comment-json'\nimport yaml from 'js-yaml'\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks'\nimport { Btn, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useModel } from '../../hooks'\nimport { getOutput } from '../../schema/transformOutput'\nimport type { BlockStateRegistry } from '../../services'\nimport { Store } from '../../Store'\nimport { message } from '../../Utils'\n\nconst INDENT: Record<string, number | string | undefined> = {\n\t'2_spaces': 2,\n\t'4_spaces': 4,\n\ttabs: '\\t',\n\tminified: undefined,\n}\n\nconst FORMATS: Record<string, {\n\tparse: (v: string) => any,\n\tstringify: (v: any, indentation: string | number | undefined) => string,\n}> = {\n\tjson: {\n\t\tparse: json.parse,\n\t\tstringify: (v, i) => json.stringify(v, null, i) + '\\n',\n\t},\n\tyaml: {\n\t\tparse: yaml.load,\n\t\tstringify: (v, i) => yaml.dump(v, {\n\t\t\tflowLevel: i === undefined ? 0 : -1,\n\t\t\tindent: typeof i === 'string' ? 4 : i,\n\t\t}),\n\t},\n}\n\ninterface Editor {\n\tgetValue(): string\n\tsetValue(value: string): void\n\tconfigure(indent: string, format: string): void\n\tselect(): void\n}\n\ntype SourcePanelProps = {\n\tname: string,\n\tmodel: DataModel | null,\n\tblockStates: BlockStateRegistry | null,\n\tdoCopy?: number,\n\tdoDownload?: number,\n\tdoImport?: number,\n\tcopySuccess: () => unknown,\n\tonError: (message: string | Error) => unknown,\n}\nexport function SourcePanel({ name, model, blockStates, doCopy, doDownload, doImport, copySuccess, onError }: SourcePanelProps) {\n\tconst { locale } = useLocale()\n\tconst [indent, setIndent] = useState(Store.getIndent())\n\tconst [format, setFormat] = useState(Store.getFormat())\n\tconst [highlighting, setHighlighting] = useState(Store.getHighlighting())\n\tconst [braceLoaded, setBraceLoaded] = useState(false)\n\tconst download = useRef<HTMLAnchorElement>(null)\n\tconst retransform = useRef<Function>()\n\tconst onImport = useRef<(e: any) => any>()\n\n\tconst textarea = useRef<HTMLTextAreaElement>()\n\tconst editor = useRef<Editor>()\n\n\tconst getSerializedOutput = useCallback((model: DataModel, blockStates: BlockStateRegistry) => {\n\t\tconst data = getOutput(model, blockStates)\n\t\treturn FORMATS[format].stringify(data, INDENT[indent])\n\t}, [indent, format])\n\n\tuseEffect(() => {\n\t\tretransform.current = () => {\n\t\t\tif (!model || !blockStates) return\n\t\t\ttry {\n\t\t\t\tconst output = getSerializedOutput(model, blockStates)\n\t\t\t\teditor.current.setValue(output)\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof Error) {\n\t\t\t\t\te.message = `Error getting JSON output: ${e.message}`\n\t\t\t\t\tonError(e)\n\t\t\t\t} else {\n\t\t\t\t\tonError(`Error getting JSON output: ${message(e)}`)\n\t\t\t\t}\n\t\t\t\tconsole.error(e)\n\t\t\t\teditor.current.setValue('')\n\t\t\t}\n\t\t}\n\n\t\tonImport.current = () => {\n\t\t\tconst value = editor.current.getValue()\n\t\t\tif (value.length === 0) return\n\t\t\ttry {\n\t\t\t\tconst data = FORMATS[format].parse(value)\n\t\t\t\tmodel?.reset(DataModel.wrapLists(data), false)\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof Error) {\n\t\t\t\t\te.message = `Error importing: ${e.message}`\n\t\t\t\t\tonError(e)\n\t\t\t\t} else {\n\t\t\t\t\tonError(`Error importing: ${message(e)}`)\n\t\t\t\t}\n\t\t\t\tconsole.error(e)\n\t\t\t}\n\t\t}\n\t}, [model, blockStates, indent, format, highlighting])\n\n\tuseEffect(() => {\n\t\tif (highlighting) {\n\t\t\tsetBraceLoaded(false)\n\t\t\teditor.current = {\n\t\t\t\tgetValue() { return ''},\n\t\t\t\tsetValue() {},\n\t\t\t\tconfigure() {},\n\t\t\t\tselect() {},\n\t\t\t}\n\t\t\timport('brace').then(async (brace) => {\n\t\t\t\tawait Promise.all([\n\t\t\t\t\timport('brace/mode/json'),\n\t\t\t\t\timport('brace/mode/yaml'),\n\t\t\t\t])\n\t\t\t\tconst braceEditor = brace.edit('editor')\n\t\t\t\tbraceEditor.setOptions({\n\t\t\t\t\tfontSize: 14,\n\t\t\t\t\tshowFoldWidgets: false,\n\t\t\t\t\thighlightSelectedWord: false,\n\t\t\t\t})\n\t\t\t\tbraceEditor.$blockScrolling = Infinity\n\t\t\t\tbraceEditor.on('blur', e => onImport.current(e))\n\t\t\t\tbraceEditor.getSession().setMode('ace/mode/json')\n\n\t\t\t\teditor.current = {\n\t\t\t\t\tgetValue() {\n\t\t\t\t\t\treturn braceEditor.getSession().getValue()\n\t\t\t\t\t},\n\t\t\t\t\tsetValue(value) {\n\t\t\t\t\t\tbraceEditor.getSession().setValue(value)\n\t\t\t\t\t},\n\t\t\t\t\tconfigure(indent, format) {\n\t\t\t\t\t\tbraceEditor.setOption('useSoftTabs', indent !== 'tabs')\n\t\t\t\t\t\tbraceEditor.setOption('tabSize', indent === 'tabs' ? 4 : INDENT[indent])\n\t\t\t\t\t\tbraceEditor.getSession().setMode(`ace/mode/${format}`)\n\t\t\t\t\t},\n\t\t\t\t\tselect() {\n\t\t\t\t\t\tbraceEditor.selectAll()\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t\tsetBraceLoaded(true)\n\t\t\t})\n\t\t} else {\n\t\t\teditor.current = {\n\t\t\t\tgetValue() {\n\t\t\t\t\treturn textarea.current.value\n\t\t\t\t},\n\t\t\t\tsetValue(value: string) {\n\t\t\t\t\ttextarea.current.value = value\n\t\t\t\t},\n\t\t\t\tconfigure() {},\n\t\t\t\tselect() {},\n\t\t\t}\n\t\t}\n\t}, [highlighting])\n\n\tuseModel(model, () => {\n\t\tretransform.current()\n\t})\n\tuseEffect(() => {\n\t\tif (model) retransform.current()\n\t}, [model])\n\n\tuseEffect(() => {\n\t\tif (!highlighting || braceLoaded) {\n\t\t\teditor.current.configure(indent, format)\n\t\t\tretransform.current()\n\t\t}\n\t}, [indent, format, highlighting, braceLoaded])\n\n\tuseEffect(() => {\n\t\tif (doCopy && model && blockStates) {\n\t\t\tnavigator.clipboard.writeText(getSerializedOutput(model, blockStates)).then(() => {\n\t\t\t\tcopySuccess()\n\t\t\t})\n\t\t}\n\t}, [doCopy])\n\n\tuseEffect(() => {\n\t\tif (doDownload && model && blockStates && download.current) {\n\t\t\tconst content = encodeURIComponent(getSerializedOutput(model, blockStates))\n\t\t\tdownload.current.setAttribute('href', `data:text/json;charset=utf-8,${content}`)\n\t\t\tdownload.current.setAttribute('download', `${name}.${format}`)\n\t\t\tdownload.current.click()\n\t\t}\n\t}, [doDownload])\n\n\tuseEffect(() => {\n\t\tif (doImport && editor.current) {\n\t\t\teditor.current.setValue('')\n\t\t\teditor.current.select()\n\t\t}\n\t}, [doImport])\n\n\tconst changeIndent = (value: string) => {\n\t\tStore.setIndent(value)\n\t\tsetIndent(value)\n\t}\n\n\tconst changeFormat = (value: string) => {\n\t\tStore.setFormat(value)\n\t\tsetFormat(value)\n\t}\n\n\tconst changeHighlighting = (value: boolean) => {\n\t\tStore.setHighlighting(value)\n\t\tsetHighlighting(value)\n\t}\n\n\treturn <> \n\t\t<div class=\"controls source-controls\">\n\t\t\t<BtnMenu icon=\"gear\" tooltip={locale('output_settings')} data-cy=\"source-controls\">\n\t\t\t\t{Object.entries(INDENT).map(([key]) =>\n\t\t\t\t\t<Btn label={locale(`indentation.${key}`)} active={indent === key}\n\t\t\t\t\t\tonClick={() => changeIndent(key)}/>\n\t\t\t\t)}\n\t\t\t\t<hr />\n\t\t\t\t{Object.keys(FORMATS).map(key =>\n\t\t\t\t\t<Btn label={locale(`format.${key}`)} active={format === key}\n\t\t\t\t\t\tonClick={() => changeFormat(key)} />)}\n\t\t\t\t<hr />\n\t\t\t\t<Btn icon={highlighting ? 'square_fill' : 'square'} label={locale('highlighting')}\n\t\t\t\t\tonClick={() => changeHighlighting(!highlighting)} />\n\t\t\t</BtnMenu>\n\t\t</div>\n\t\t{highlighting\n\t\t\t? <pre id=\"editor\" class=\"source\"></pre>\n\t\t\t: <textarea ref={textarea} class=\"source\" spellcheck={false} autocorrect=\"off\" onBlur={onImport.current}></textarea>}\n\t\t<a ref={download} style=\"display: none;\"></a>\n\t</>\n}\n","import{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]<e[0])break;n.u=e=e[2]}};function T(n){return this.getChildContext=function(){return n.context},n.children}function j(n){var t=this,e=n.i;t.componentWillUnmount=function(){d(null,t.l),t.l=null,t.i=null},t.i&&t.i!==e&&t.componentWillUnmount(),n.__v?(t.l||(t.i=e,t.l={nodeType:1,parentNode:e,childNodes:[],appendChild:function(n){this.childNodes.push(n),t.i.appendChild(n)},insertBefore:function(n,e){this.childNodes.push(n),t.i.appendChild(n)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>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","import type { INode, Path } from '@mcschema/core'\nimport { DataModel } from '@mcschema/core'\n\nexport class ModelWrapper extends DataModel {\n\tconstructor(\n\t\tschema: INode<any>,\n\t\tprivate readonly mapper: (path: Path) => Path,\n\t\tprivate readonly getter: (path: Path) => any,\n\t\tprivate readonly setter: (path: Path, value: any, silent?: boolean) => any,\n\t) {\n\t\tsuper(schema)\n\t}\n\n\tmap(path: Path) {\n\t\treturn this.mapper(path)\n\t}\n\n\tget(path: Path) {\n\t\treturn this.getter(path)\n\t}\n\n\tset(path: Path, value: any, silent?: boolean) {\n\t\treturn this.setter(path, value, silent)\n\t}\n}\n","import type { BooleanHookParams, EnumOption, Hook, INode, NodeChildren, NumberHookParams, StringHookParams, ValidationOption } from '@mcschema/core'\nimport { DataModel, ListNode, MapNode, ModelPath, ObjectNode, Path, relativePath, StringNode } from '@mcschema/core'\nimport type { ComponentChildren, JSX } from 'preact'\nimport { memo } from 'preact/compat'\nimport { useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Btn, Octicon } from '../components'\nimport { localize } from '../contexts'\nimport { useFocus } from '../hooks'\nimport type { BlockStateRegistry, VersionId } from '../services'\nimport { CachedDecorator, CachedFeature } from '../services'\nimport { deepClone, deepEqual, hexId, isObject, newSeed } from '../Utils'\nimport { ModelWrapper } from './ModelWrapper'\n\nconst selectRegistries = ['loot_table.type', 'loot_entry.type', 'function.function', 'condition.condition', 'criterion.trigger', 'recipe.type', 'dimension.generator.type', 'dimension.generator.biome_source.type', 'dimension.generator.biome_source.preset', 'carver.type', 'feature.type', 'decorator.type', 'feature.tree.minimum_size.type', 'block_state_provider.type', 'trunk_placer.type', 'foliage_placer.type', 'tree_decorator.type', 'int_provider.type', 'float_provider.type', 'height_provider.type', 'structure_feature.type', 'surface_builder.type', 'processor.processor_type', 'rule_test.predicate_type', 'pos_rule_test.predicate_type', 'template_element.element_type', 'block_placer.type', 'block_predicate.type', 'material_rule.type', 'material_condition.type', 'structure_placement.type', 'density_function.type', 'root_placer.type', 'entity.type_specific.cat.variant', 'entity.type_specific.frog.variant']\nconst hiddenFields = ['number_provider.type', 'score_provider.type', 'nbt_provider.type', 'int_provider.type', 'float_provider.type', 'height_provider.type']\nconst flattenedFields = ['feature.config', 'decorator.config', 'int_provider.value', 'float_provider.value', 'block_state_provider.simple_state_provider.state', 'block_state_provider.rotated_block_provider.state', 'block_state_provider.weighted_state_provider.entries.entry.data', 'rule_test.block_state', 'structure_feature.config', 'surface_builder.config', 'template_pool.elements.entry.element', 'decorator.block_survives_filter.state', 'material_rule.block.result_state']\nconst inlineFields = ['loot_entry.type', 'function.function', 'condition.condition', 'criterion.trigger', 'dimension.generator.type', 'dimension.generator.biome_source.type', 'feature.type', 'decorator.type', 'block_state_provider.type', 'feature.tree.minimum_size.type', 'trunk_placer.type', 'foliage_placer.type', 'tree_decorator.type', 'block_placer.type', 'rule_test.predicate_type', 'processor.processor_type', 'template_element.element_type', 'nbt_operation.op', 'number_provider.value', 'score_provider.name', 'score_provider.target', 'nbt_provider.source', 'nbt_provider.target', 'generator_biome.biome', 'block_predicate.type', 'material_rule.type', 'material_condition.type', 'density_function.type', 'root_placer.type', 'entity.type_specific.type']\nconst nbtFields = ['function.set_nbt.tag', 'advancement.display.icon.nbt', 'text_component_object.nbt', 'entity.nbt', 'block.nbt', 'item.nbt']\nconst fixedLists = ['generator_biome.parameters.temperature', 'generator_biome.parameters.humidity', 'generator_biome.parameters.continentalness', 'generator_biome.parameters.erosion', 'generator_biome.parameters.depth', 'generator_biome.parameters.weirdness', 'feature.end_spike.crystal_beam_target', 'feature.end_gateway.exit', 'decorator.block_filter.offset', 'block_predicate.matching_blocks.offset', 'block_predicate.matching_fluids.offset', 'model_element.from', 'model_element.to', 'model_element.rotation.origin', 'model_element.faces.uv', 'item_transform.rotation', 'item_transform.translation', 'item_transform.scale', 'generator_structure.random_spread.locate_offset']\nconst collapsedFields = ['noise_settings.surface_rule', 'noise_settings.noise.terrain_shaper']\nconst collapsableFields = ['density_function.argument', 'density_function.argument1', 'density_function.argument2', 'density_function.input', 'density_function.when_in_range', 'density_function.when_out_of_range']\n\nconst findGenerator = (id: string) => {\n\treturn config.generators.find(g => g.id === id.replace(/^\\$/, ''))\n}\n\n/**\n * Secondary model used to remember the keys of a map\n */\nconst keysModel = new DataModel(MapNode(\n\tStringNode(),\n\tStringNode()\n), { historyMax: 0 })\n\ntype JSXTriple = [JSX.Element | null, JSX.Element | null, JSX.Element | null]\ntype RenderHook = Hook<[any, string, VersionId, BlockStateRegistry, Record<string, any>], JSXTriple>\n\ntype NodeProps<T> = T & {\n\tnode: INode<any>,\n\tpath: ModelPath,\n\tvalue: any,\n\tlang: string,\n\tversion: VersionId,\n\tstates: BlockStateRegistry,\n\tctx: Record<string, any>,\n}\n\nexport function FullNode({ model, lang, version, blockStates }: { model: DataModel, lang: string, version: VersionId, blockStates: BlockStateRegistry }) {\n\tconst path = new ModelPath(model)\n\tconst [prefix, suffix, body] = model.schema.hook(renderHtml, path, deepClone(model.data), lang, version, blockStates, {})\n\treturn suffix?.props?.children.some((c: any) => c) ? <div class={`node ${model.schema.type(path)}-node`} data-category={model.schema.category(path)}>\n\t\t<div class=\"node-header\">{prefix}{suffix}</div>\n\t\t<div class=\"node-body\">{body}</div>\n\t</div> : body\n}\n\nconst renderHtml: RenderHook = {\n\tbase() {\n\t\treturn [null, null, null]\n\t},\n\n\tboolean(params, path, value, lang, version, states, ctx) {\n\t\treturn [null, <BooleanSuffix {...{...params, path, value, lang, version, states, ctx}} />, null]\n\t},\n\n\tchoice({ choices, config, switchNode }, path, value, lang, version, states, ctx) {\n\t\tconst choice = switchNode.activeCase(path, true) as typeof choices[number]\n\t\tconst contextPath = (config?.context) ? new ModelPath(path.getModel(), new Path(path.getArray(), [config.context])) : path\n\t\tconst [prefix, suffix, body] = choice.node.hook(this, contextPath, value, lang, version, states, ctx)\n\t\tif (choices.length === 1) {\n\t\t\treturn [prefix, suffix, body]\n\t\t}\n\t\tconst choiceContextPath = config?.choiceContext ? new Path([], [config.choiceContext]) : config?.context ? new Path([], [config.context]) : path\n\t\tconst set = (type: string) => {\n\t\t\tconst c = choices.find(c => c.type === type) ?? choice\n\t\t\tconst def = c.node.default()\n\t\t\tconst newValue = c.change\n\t\t\t\t? c.change(DataModel.unwrapLists(value))\n\t\t\t\t: config.choiceContext === 'feature' && def?.type === 'minecraft:decorated' ? def.config.feature : def\n\t\t\tpath.model.set(path, DataModel.wrapLists(newValue))\n\t\t}\n\t\tconst inject = <select value={choice.type} onChange={(e) => set((e.target as HTMLSelectElement).value)}>\n\t\t\t{choices.map(c => <option value={c.type}>\n\t\t\t\t{pathLocale(lang, choiceContextPath.contextPush(c.type))}\n\t\t\t</option>)}\n\t\t</select>\n\t\treturn [prefix, <>{inject}{suffix}</>, body]\n\t},\n\n\tlist({ children, config }, path, value, lang, version, states, ctx) {\n\t\tconst { expand, collapse, isToggled } = useToggles()\n\t\tconst [maxShown, setMaxShown] = useState(50)\n\n\t\tconst context = path.getContext().join('.')\n\t\tif (fixedLists.includes(context)) {\n\t\t\tconst prefix = <>\n\t\t\t\t{[...Array(config.maxLength!)].map((_, i) =>\n\t\t\t\t\t<ErrorPopup lang={lang} path={path.modelPush(i)} />)}\n\t\t\t\t<div class=\"fixed-list\"></div>\n\t\t\t</>\n\t\t\tconst suffix = <>{[...Array(config.maxLength)].map((_, i) => {\n\t\t\t\tconst child = children.hook(this, path.modelPush(i), value?.[i]?.node, lang, version, states, ctx)\n\t\t\t\treturn child[1]\n\t\t\t})}</>\n\t\t\treturn [prefix, suffix, null]\n\t\t}\n\n\t\tconst onAdd = () => {\n\t\t\tif (!Array.isArray(value)) value = []\n\t\t\tconst node = DataModel.wrapLists(children.default())\n\t\t\tpath.model.set(path, [{ node, id: hexId() }, ...value])\n\t\t}\n\t\tconst onAddBottom = () => {\n\t\t\tif (!Array.isArray(value)) value = []\n\t\t\tconst node = DataModel.wrapLists(children.default())\n\t\t\tpath.model.set(path, [...value, { node, id: hexId() }])\n\t\t}\n\t\tconst suffix = <button class=\"add tooltipped tip-se\" aria-label={localize(lang, 'add_top')} onClick={onAdd}>{Octicon.plus_circle}</button>\n\t\tconst body = <>\n\t\t\t{(value && Array.isArray(value)) && value.map(({ node: cValue, id: cId }, index) => {\n\t\t\t\tif (index === maxShown) {\n\t\t\t\t\treturn <div class=\"node node-header\">\n\t\t\t\t\t\t<label>{localize(lang, 'entries_hidden', `${value.length - maxShown}`)}</label>\n\t\t\t\t\t\t<button onClick={() => setMaxShown(Math.min(maxShown + 50, value.length))}>{localize(lang, 'entries_hidden.more', '50')}</button>\n\t\t\t\t\t\t<button onClick={() => setMaxShown(value.length)}>{localize(lang, 'entries_hidden.all')}</button>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\tif (index > maxShown) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\n\t\t\t\tconst cPath = path.push(index).contextPush('entry')\n\t\t\t\tconst canToggle = children.type(cPath) === 'object'\n\t\t\t\tconst toggle = isToggled(cId)\n\t\t\t\tif (canToggle && (toggle === false || (toggle === undefined && value.length > 20))) {\n\t\t\t\t\treturn <div class=\"node node-header\" data-category={children.category(cPath)}>\n\t\t\t\t\t\t<ErrorPopup lang={lang} path={cPath} nested />\n\t\t\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'expand')}\\n${localize(lang, 'expand_all', 'Ctrl')}`} onClick={expand(cId)}>{Octicon.chevron_right}</button>\n\t\t\t\t\t\t<label>{pathLocale(lang, cPath, `${index}`)}</label>\n\t\t\t\t\t\t<Collapsed key={cId} path={cPath} value={cValue} schema={children} />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\n\t\t\t\tconst onRemove = () => cPath.set(undefined)\n\t\t\t\tconst onMoveUp = () => {\n\t\t\t\t\tconst v = [...path.get()];\n\t\t\t\t\t[v[index - 1], v[index]] = [v[index], v[index - 1]]\n\t\t\t\t\tpath.model.set(path, v)\n\t\t\t\t}\n\t\t\t\tconst onMoveDown = () => {\n\t\t\t\t\tconst v = [...path.get()];\n\t\t\t\t\t[v[index + 1], v[index]] = [v[index], v[index + 1]]\n\t\t\t\t\tpath.model.set(path, v)\n\t\t\t\t}\n\t\t\t\tconst actions: MenuAction[] = [\n\t\t\t\t\t{\n\t\t\t\t\t\ticon: 'duplicate',\n\t\t\t\t\t\tlabel: 'duplicate',\n\t\t\t\t\t\tonSelect: () => {\n\t\t\t\t\t\t\tconst v = [...path.get()]\n\t\t\t\t\t\t\tv.splice(index, 0, { id: hexId(), node: deepClone(cValue) })\n\t\t\t\t\t\t\tpath.model.set(path, v)\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t]\n\t\t\t\treturn <MemoedTreeNode key={cId} path={cPath} schema={children} value={cValue} {...{lang, version, states, actions}} ctx={{...ctx, index: (index === 0 ? 1 : 0) + (index === value.length - 1 ? 2 : 0)}}>\n\t\t\t\t\t{canToggle && <button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'collapse')}\\n${localize(lang, 'collapse_all', 'Ctrl')}`} onClick={collapse(cId)}>{Octicon.chevron_down}</button>}\n\t\t\t\t\t<button class=\"remove tooltipped tip-se\" aria-label={localize(lang, 'remove')} onClick={onRemove}>{Octicon.trashcan}</button>\n\t\t\t\t\t{value.length > 1 && <div class=\"node-move\">\n\t\t\t\t\t\t<button class=\"move tooltipped tip-se\" aria-label={localize(lang, 'move_up')} onClick={onMoveUp} disabled={index === 0}>{Octicon.chevron_up}</button>\n\t\t\t\t\t\t<button class=\"move tooltipped tip-se\" aria-label={localize(lang, 'move_down')} onClick={onMoveDown} disabled={index === value.length - 1}>{Octicon.chevron_down}</button>\n\t\t\t\t\t</div>}\n\t\t\t\t</MemoedTreeNode>\n\t\t\t})}\n\t\t\t{(value && value.length > 0 && value.length <= maxShown) && <div class=\"node node-header\">\n\t\t\t\t<button class=\"add tooltipped tip-se\" aria-label={localize(lang, 'add_bottom')} onClick={onAddBottom}>{Octicon.plus_circle}</button>\n\t\t\t</div>}\n\t\t</>\n\t\treturn [null, suffix, body]\n\t},\n\n\tmap({ children, keys, config }, path, value, lang, version, states, ctx) {\n\t\tconst { expand, collapse, isToggled } = useToggles()\n\n\t\tconst keyPath = new ModelPath(keysModel, new Path([hashString(path.toString())]))\n\t\tconst onAdd = () => {\n\t\t\tconst key = keyPath.get()\n\t\t\tpath.model.set(path.push(key), DataModel.wrapLists(children.default()))\n\t\t}\n\t\tconst blockState = config.validation?.validator === 'block_state_map' ? states?.[relativePath(path, config.validation.params.id).get()] : null\n\t\tconst keysSchema = blockState?.properties\n\t\t\t? StringNode(null!, { enum: Object.keys(blockState.properties ?? {}) })\n\t\t\t: keys\n\t\tif (blockState && path.last() === 'Properties') {\n\t\t\tif (typeof value !== 'object') value = {}\n\t\t\tconst properties = Object.entries(blockState.properties ?? {})\n\t\t\t\t.map(([key, values]) => [key, StringNode(null!, { enum: values })])\n\t\t\tObject.entries(blockState.properties ?? {}).forEach(([key, values]) => {\n\t\t\t\tif (typeof value[key] !== 'string') {\n\t\t\t\t\tpath.model.errors.add(path.push(key), 'error.expected_string')\n\t\t\t\t} else if (!values.includes(value[key])) {\n\t\t\t\t\tpath.model.errors.add(path.push(key), 'error.invalid_enum_option', value[key])\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn ObjectNode(Object.fromEntries(properties)).hook(this, path, value, lang, version, states, ctx)\n\t\t}\n\t\tconst suffix = <>\n\t\t\t{keysSchema.hook(this, keyPath, keyPath.get() ?? '', lang, version, states, ctx)[1]}\n\t\t\t<button class=\"add tooltipped tip-se\" aria-label={localize(lang, 'add')} onClick={onAdd}>{Octicon.plus_circle}</button>\n\t\t</>\n\t\tconst body = <>\n\t\t\t{typeof value === 'object' && Object.entries(value).map(([key, cValue]) => {\n\n\t\t\t\tconst cPath = path.modelPush(key)\n\t\t\t\tconst canToggle = children.type(cPath) === 'object'\n\t\t\t\tconst toggle = isToggled(key)\n\t\t\t\tif (canToggle && (toggle === false || (toggle === undefined && value.length > 20))) {\n\t\t\t\t\treturn <div class=\"node node-header\" data-category={children.category(cPath)}>\n\t\t\t\t\t\t<ErrorPopup lang={lang} path={cPath} nested />\n\t\t\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'expand')}\\n${localize(lang, 'expand_all', 'Ctrl')}`} onClick={expand(key)}>{Octicon.chevron_right}</button>\n\t\t\t\t\t\t<label>{key}</label>\n\t\t\t\t\t\t<Collapsed key={key} path={cPath} value={cValue} schema={children} />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\tconst cSchema = blockState\n\t\t\t\t\t? StringNode(null!, { enum: blockState.properties?.[key] ?? [] })\n\t\t\t\t\t: children\n\t\t\t\tif (blockState?.properties?.[key] && typeof cValue === 'string'\n\t\t\t\t\t&& !blockState.properties?.[key].includes(cValue)) {\n\t\t\t\t\tpath.model.errors.add(cPath, 'error.invalid_enum_option', cValue)\n\t\t\t\t}\n\t\t\t\tconst onRemove = () => cPath.set(undefined)\n\t\t\t\treturn <MemoedTreeNode key={key} schema={cSchema} path={cPath} value={cValue} {...{lang, version, states, ctx}} label={key}>\n\t\t\t\t\t{canToggle && <button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'collapse')}\\n${localize(lang, 'collapse_all', 'Ctrl')}`} onClick={collapse(key)}>{Octicon.chevron_down}</button>}\n\t\t\t\t\t<button class=\"remove tooltipped tip-se\" aria-label={localize(lang, 'remove')} onClick={onRemove}>{Octicon.trashcan}</button>\n\t\t\t\t</MemoedTreeNode>\n\t\t\t})}\n\t\t</>\n\t\treturn [null, suffix, body]\n\t},\n\n\tnumber(params, path, value, lang, version, states, ctx) {\n\t\treturn [null, <NumberSuffix {...{...params, path, value, lang, version, states, ctx}} />, null]\n\t},\n\n\tobject({ node, config, getActiveFields, getChildModelPath }, path, value, lang, version, states, ctx) {\n\t\tconst { expand, collapse, isToggled } = useToggles()\n\n\t\tif (path.getArray().length == 0 && isDecorated(config.context, value)) {\n\t\t\tconst { wrapper, fields } = createDecoratorsWrapper(getActiveFields(path), path, value)\n\t\t\tvalue = wrapper.data\n\t\t\tgetActiveFields = () => fields\n\t\t\tgetChildModelPath = (path, key) => new ModelPath(wrapper, new Path(path.getArray(), ['feature'])).push(key)\n\t\t}\n\n\t\tlet prefix: JSX.Element | null = null\n\t\tlet suffix: JSX.Element | null = null\n\t\tif (node.optional()) {\n\t\t\tif (value === undefined) {\n\t\t\t\tconst onExpand = () => path.set(DataModel.wrapLists(node.default()))\n\t\t\t\tsuffix = <button class=\"collapse closed tooltipped tip-se\" aria-label={localize(lang, 'expand')} onClick={onExpand}>{Octicon.plus_circle}</button>\n\t\t\t} else {\n\t\t\t\tconst onCollapse = () => path.set(undefined)\n\t\t\t\tsuffix = <button class=\"collapse open tooltipped tip-se\" aria-label={localize(lang, 'remove')} onClick={onCollapse}>{Octicon.trashcan}</button>\n\t\t\t}\n\t\t}\n\t\tconst context = path.getContext().join('.')\n\t\tif (collapsableFields.includes(context) || collapsedFields.includes(context)) {\n\t\t\tconst toggled = isToggled('')\n\t\t\tconst expanded = collapsedFields.includes(context) ? toggled : !toggled\n\t\t\tprefix = <>\n\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={localize(lang, expanded ? 'collapse' : 'expand')} onClick={toggled ? collapse('') : expand('')}>{expanded ? Octicon.chevron_down : Octicon.chevron_right}</button>\n\t\t\t</>\n\t\t\tif (!expanded) {\n\t\t\t\treturn [prefix, suffix, null]\n\t\t\t}\n\t\t}\n\n\t\tconst newCtx = (typeof value === 'object' && value !== null && node.default()?.pools)\n\t\t\t? { ...ctx, loot: value?.type } : ctx\n\t\tconst body = <>\n\t\t\t{(typeof value === 'object' && value !== null && !(node.optional() && value === undefined)) &&\n\t\t\t\tObject.entries(getActiveFields(path))\n\t\t\t\t\t.filter(([_, child]) => child.enabled(path))\n\t\t\t\t\t.map(([key, child]) => {\n\t\t\t\t\t\tconst cPath = getChildModelPath(path, key)\n\t\t\t\t\t\tconst context = cPath.getContext().join('.')\n\t\t\t\t\t\tif (hiddenFields.includes(context)) return null\n\t\t\t\t\t\tconst [cPrefix, cSuffix, cBody] = child.hook(this, cPath, value[key], lang, version, states, newCtx)\n\t\t\t\t\t\tconst isFlattened = child.type(cPath) === 'object' && flattenedFields.includes(context)\n\t\t\t\t\t\tconst isInlined = inlineFields.includes(context)\n\t\t\t\t\t\tif (isFlattened || isInlined) {\n\t\t\t\t\t\t\tprefix = <>{prefix}<ErrorPopup lang={lang} path={cPath} /><HelpPopup lang={lang} path={cPath} />{cPrefix}</>\n\t\t\t\t\t\t\tsuffix = <>{suffix}{cSuffix}</>\n\t\t\t\t\t\t\treturn isFlattened ? cBody : null\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn <MemoedTreeNode key={key} schema={child} path={cPath} value={value[key]} {...{lang, version, states, ctx: newCtx}} />\n\t\t\t\t\t})\n\t\t\t}\n\t\t</>\n\t\treturn [prefix, suffix, body]\n\t},\n\n\tstring(params, path, value, lang, version, states, ctx) {\n\t\treturn [null, <StringSuffix {...{...params, path, value, lang, version, states, ctx}} />, null]\n\t},\n}\n\nfunction Collapsed({ path, value }: { path: ModelPath, value: any, schema: INode<any> }) {\n\tconst context = path.getContext().join('.')\n\tswitch (context) {\n\t\tcase 'loot_table.pools.entry':\n\t\t\treturn <label>{value?.entries?.length ?? 0} entries</label>\n\t\tcase 'function.set_contents.entries.entry':\n\t\tcase 'loot_pool.entries.entry':\n\t\t\treturn <label>{value?.name?.replace(/^minecraft:/, '') ?? value?.type?.replace(/^minecraft:/, '')}</label>\n\t}\n\tfor (const child of Object.values(value ?? {})) {\n\t\tif (typeof child === 'string') {\n\t\t\treturn <label>{child.replace(/^minecraft:/, '')}</label>\n\t\t}\n\t}\n\treturn null\n}\n\nfunction useToggles() {\n\tconst [toggleState, setToggleState] = useState(new Map<string, boolean>())\n\tconst [toggleAll, setToggleAll] = useState<boolean | undefined>(undefined)\n\n\tconst expand = (key: string) => (evt: MouseEvent) => {\n\t\tif (evt.ctrlKey) {\n\t\t\tsetToggleState(new Map())\n\t\t\tsetToggleAll(true)\n\t\t} else {\n\t\t\tsetToggleState(state => new Map(state.set(key, true)))\n\t\t}\n\t}\n\tconst collapse = (key: string) => (evt: MouseEvent) => {\n\t\tif (evt.ctrlKey) {\n\t\t\tsetToggleState(new Map())\n\t\t\tsetToggleAll(false)\n\t\t} else {\n\t\t\tsetToggleState(state => new Map(state.set(key, false)))\n\t\t}\n\t}\n\t\n\tconst isToggled = (key: string) => {\n\t\tif (!(toggleState instanceof Map)) return false\n\t\treturn toggleState.get(key) ?? toggleAll\n\t}\n\n\treturn { expand, collapse, isToggled }\n}\n\nfunction BooleanSuffix({ path, node, value, lang }: NodeProps<BooleanHookParams>) {\n\tconst set = (target: boolean) => {\n\t\tpath.model.set(path, node.optional() && value === target ? undefined : target)\n\t}\n\treturn <>\n\t\t<button class={value === false ? 'selected' : ''} onClick={() => set(false)}>{localize(lang, 'false')}</button>\n\t\t<button class={value === true ? 'selected' : ''} onClick={() => set(true)}>{localize(lang, 'true')}</button>\n\t</>\n}\n\nfunction NumberSuffix({ path, config, integer, value, lang }: NodeProps<NumberHookParams>) {\n\tconst onChange = (evt: Event) => {\n\t\tconst value = (evt.target as HTMLInputElement).value\n\t\tconst parsed = integer ? parseInt(value) : parseFloat(value)\n\t\tpath.model.set(path, parsed)\n\t}\n\tconst onColor = (evt: Event) => {\n\t\tconst value = (evt.target as HTMLInputElement).value\n\t\tconst parsed = parseInt(value.slice(1), 16)\n\t\tpath.model.set(path, parsed)\n\t}\n\treturn <>\n\t\t<input type=\"text\" value={value ?? ''} onBlur={onChange} onKeyDown={evt => {if (evt.key === 'Enter') onChange(evt)}} />\n\t\t{config?.color && <input type=\"color\" value={'#' + (value?.toString(16).padStart(6, '0') ?? '000000')} onChange={onColor} />}\n\t\t{['dimension.generator.seed', 'dimension.generator.biome_source.seed', 'world_settings.seed', 'structure_placement.salt'].includes(path.getContext().join('.')) && <button onClick={() => newSeed(path.model)} class=\"tooltipped tip-se\" aria-label={localize(lang, 'generate_new_seed')}>{Octicon.sync}</button>}\n\t</>\n}\n\nfunction StringSuffix({ path, getValues, config, node, value, lang, version, states }: NodeProps<StringHookParams>) {\n\tconst onChange = (evt: Event) => {\n\t\tevt.stopPropagation()\n\t\tconst newValue = (evt.target as HTMLSelectElement).value\n\t\tif (newValue === value) return\n\t\tpath.model.set(path, newValue.length === 0 ? undefined : newValue)\n\t}\n\tconst values = getValues()\n\tconst context = path.getContext().join('.')\n\tconst id = !isEnum(config) && config?.validator === 'resource' && typeof config.params.pool === 'string' ? config.params.pool : undefined\n\n\tif (nbtFields.includes(context)) {\n\t\treturn <textarea value={value ?? ''} onBlur={onChange}></textarea>\n\t} else if ((isEnum(config) && !config.additional) || selectRegistries.includes(context)) {\n\t\tlet context = new Path([])\n\t\tif (isEnum(config) && typeof config.enum === 'string') {\n\t\t\tcontext = context.contextPush(config.enum)\n\t\t} else if (id) {\n\t\t\tcontext = context.contextPush(id)\n\t\t} else if (isEnum(config)) {\n\t\t\tcontext = path\n\t\t}\n\t\treturn <select value={value ?? ''} onChange={onChange}>\n\t\t\t{node.optional() && <option value=\"\">{localize(lang, 'unset')}</option>}\n\t\t\t{values.map(v => <option value={v}>\n\t\t\t\t{pathLocale(lang, context.contextPush(v.replace(/^minecraft:/, '')))}\n\t\t\t</option>)}\n\t\t</select>\n\t} else if (!isEnum(config) && config?.validator === 'block_state_key') {\n\t\tconst blockState = states?.[relativePath(path, config.params.id).get()]\n\t\tconst values = Object.keys(blockState?.properties ?? {})\n\t\treturn <select value={value ?? ''} onChange={onChange}>\n\t\t\t{values.map(v => <option>{v}</option>)}\n\t\t</select>\n\t} else {\n\t\tconst datalistId = hexId()\n\t\tconst gen = id ? findGenerator(id) : undefined\n\t\treturn <>\n\t\t\t<input value={value ?? ''} onBlur={onChange} onKeyDown={evt => {if (evt.key === 'Enter') onChange(evt)}}\n\t\t\t\tlist={values.length > 0 ? datalistId : ''} />\n\t\t\t{values.length > 0 && <datalist id={datalistId}>\n\t\t\t\t{values.map(v => <option value={v} />)}\n\t\t\t</datalist>}\n\t\t\t{gen && values.includes(value) && value.startsWith('minecraft:') &&\n\t\t\t\t<a href={`/${gen.url}/?version=${version}&preset=${value.replace(/^minecraft:/, '')}`} class=\"tooltipped tip-se\" aria-label={localize(lang, 'follow_reference')}>{Octicon.link_external}</a>}\n\t\t</>\n\t}\n}\n\ntype MenuAction = {\n\tlabel: string,\n\tdescription?: string,\n\ticon: keyof typeof Octicon,\n\tonSelect: () => unknown,\n}\n\ntype TreeNodeProps = {\n\tschema: INode<any>,\n\tpath: ModelPath,\n\tvalue: any,\n\tlang: string,\n\tversion: VersionId,\n\tstates: BlockStateRegistry,\n\tctx: Record<string, any>,\n\tcompare?: any,\n\tlabel?: string,\n\tactions?: MenuAction[],\n\tchildren?: ComponentChildren,\n}\nfunction TreeNode({ label, schema, path, value, lang, version, states, ctx, actions, children }: TreeNodeProps) {\n\tconst type = schema.type(path)\n\tconst category = schema.category(path)\n\tconst context = path.getContext().join('.')\n\n\tconst [active, setActive] = useFocus()\n\tconst onContextMenu = (evt: MouseEvent) => {\n\t\tevt.preventDefault()\n\t\tsetActive()\n\t}\n\n\tconst newCtx: Record<string, any> = { ...ctx, depth: (ctx.depth ?? 0) + 1 }\n\tdelete newCtx.index\n\tconst [prefix, suffix, body] = schema.hook(renderHtml, path, value, lang, version, states, newCtx)\n\treturn <div class={`node ${type}-node`} data-category={category}>\n\t\t<div class=\"node-header\" onContextMenu={onContextMenu}>\n\t\t\t<ErrorPopup lang={lang} path={path} />\n\t\t\t<HelpPopup lang={lang} path={path} />\n\t\t\t{children}\n\t\t\t{prefix}\n\t\t\t<label>\n\t\t\t\t{label ?? pathLocale(lang, path, `${path.last()}`)}\n\t\t\t\t{active && <div class=\"node-menu\">\n\t\t\t\t\t{actions?.map(a => <div key={a.label} class=\"menu-item\">\n\t\t\t\t\t\t<Btn icon={a.icon} tooltip={localize(lang, a.label)} tooltipLoc=\"se\" onClick={() => a.onSelect()}/>\n\t\t\t\t\t\t<span>{a.description ?? localize(lang, a.label)}</span>\n\t\t\t\t\t</div>)}\n\t\t\t\t\t<div class=\"menu-item\">\n\t\t\t\t\t\t<Btn icon=\"clippy\" tooltip={localize(lang, 'copy_context')} tooltipLoc=\"se\" onClick={() => navigator.clipboard.writeText(context)} />\n\t\t\t\t\t\t<span>{context}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>}\n\t\t\t</label>\n\t\t\t{suffix}\n\t\t</div>\n\t\t{body && <div class=\"node-body\">{body}</div>}\n\t</div>\n}\n\nconst MemoedTreeNode = memo(TreeNode, (prev, next) => {\n\treturn prev.schema === next.schema\n\t\t&& prev.lang === next.lang\n\t\t&& prev.path.equals(next.path)\n\t\t&& deepEqual(prev.ctx, next.ctx)\n\t\t&& deepEqual(prev.value, next.value)\n})\n\nfunction isEnum(value?: ValidationOption | EnumOption): value is EnumOption {\n\treturn !!(value as any)?.enum\n}\n\nfunction hashString(str: string) {\n\tvar hash = 0, i, chr\n\tfor (i = 0; i < str.length; i++) {\n\t\tchr = str.charCodeAt(i)\n\t\thash = ((hash << 5) - hash) + chr\n\t\thash |= 0\n\t}\n\treturn hash\n}\n\nfunction pathLocale(lang: string, path: Path, ...params: string[]) {\n\tconst ctx = path.getContext()\n\tfor (let i = 0; i < ctx.length; i += 1) {\n\t\tconst key = ctx.slice(i).join('.')\n\t\tconst result = localize(lang, key, ...params)\n\t\tif (key !== result) {\n\t\t\treturn result\n\t\t}\n\t}\n\treturn ctx[ctx.length - 1]\n}\n\nfunction ErrorPopup({ lang, path, nested }: { lang: string, path: ModelPath, nested?: boolean }) {\n\tif (path.model instanceof ModelWrapper) {\n\t\tpath = path.model.map(path).withModel(path.model)\n\t}\n\tconst e = nested\n\t\t?\tpath.model.errors.getAll().filter(e => e.path.startsWith(path))\n\t\t: path.model.errors.get(path, true)\n\tif (e.length === 0) return null\n\tconst message = localize(lang, e[0].error, ...(e[0].params ?? []))\n\treturn popupIcon('node-error', 'issue_opened', message)\n}\n\nfunction HelpPopup({ lang, path }: { lang: string, path: Path }) {\n\tconst key = path.contextPush('help').getContext().join('.')\n\tconst message = localize(lang, key)\n\tif (message === key) return null\n\treturn popupIcon('node-help', 'info', message)\n}\n\nconst popupIcon = (type: string, icon: keyof typeof Octicon, popup: string) => {\n\tconst [active, setActive] = useFocus()\n\n\treturn <div class={`node-icon ${type}${active ? ' show' : ''}`} onClick={setActive}>\n\t\t{Octicon[icon]}\n\t\t<span class=\"icon-popup\">{popup}</span>\n\t</div>\n}\n\nfunction isDecorated(context: string | undefined, value: any) {\n\treturn context === 'feature'\n\t\t&& value?.type?.replace(/^minecraft:/, '') === 'decorated'\n\t\t&& isObject(value?.config)\n}\n\nfunction createDecoratorsWrapper(originalFields: NodeChildren, path: ModelPath, value: any) {\n\tconst decorators: any[] = []\n\tconst feature = iterateNestedDecorators(value, decorators)\n\tconst fields = {\n\t\ttype: originalFields.type,\n\t\tconfig: ObjectNode({\n\t\t\tdecorators: ListNode(CachedDecorator),\n\t\t\tfeature: CachedFeature,\n\t\t}, { context: 'feature.decorated' }),\n\t}\n\tconst schema = ObjectNode(fields, { context: 'feature' })\n\tconst featurePath = new Path(['config', 'feature'])\n\tconst decoratorsPath = new Path(['config', 'decorators'])\n\tconst model = path.getModel()\n\tconst wrapper: ModelWrapper = new ModelWrapper(schema, path => {\n\t\tif (path.startsWith(featurePath)) {\n\t\t\treturn new Path([...[...Array(decorators.length - 1)].flatMap(() => ['config', 'feature']), ...path.modelArr])\n\t\t} else if (path.startsWith(decoratorsPath)) {\n\t\t\tif (path.modelArr.length === 2) {\n\t\t\t\treturn new Path([])\n\t\t\t}\n\t\t\tconst index = path.modelArr[2]\n\t\t\tif (typeof index === 'number') {\n\t\t\t\treturn new Path([...[...Array(index)].flatMap(() => ['config', 'feature']), 'config', 'decorator', ...path.modelArr.slice(3)])\n\t\t\t}\n\t\t}\n\t\treturn path\n\t}, path => {\n\t\tif (path.equals(decoratorsPath)) {\n\t\t\tconst newDecorators: any[] = []\n\t\t\titerateNestedDecorators(model.data, newDecorators)\n\t\t\treturn newDecorators\n\t\t}\n\t\treturn model.get(wrapper.map(path))\n\t}, (path, value, silent) => {\n\t\tif (path.startsWith(featurePath)) {\n\t\t\tconst newDecorators: any[] = []\n\t\t\titerateNestedDecorators(model.data, newDecorators)\n\t\t\tconst newPath =new Path([...[...Array(newDecorators.length - 1)].flatMap(() => ['config', 'feature']), ...path.modelArr])\n\t\t\treturn model.set(newPath, value, silent)\n\t\t} else if (path.startsWith(decoratorsPath)) {\n\t\t\tconst index = path.modelArr[2]\n\t\t\tif (path.modelArr.length === 2) {\n\t\t\t\tconst feature = wrapper.get(featurePath)\n\t\t\t\treturn model.set(new Path(), produceNestedDecorators(feature, value), silent)\n\t\t\t} else if (typeof index === 'number') {\n\t\t\t\tif (path.modelArr.length === 3 && value === undefined) {\n\t\t\t\t\tconst feature = wrapper.get(featurePath)\n\t\t\t\t\tconst newDecorators: any[] = []\n\t\t\t\t\titerateNestedDecorators(model.data, newDecorators)\n\t\t\t\t\tnewDecorators.splice(index, 1)\n\t\t\t\t\tconst newValue = produceNestedDecorators(feature, newDecorators)\n\t\t\t\t\treturn model.set(new Path(), newValue, silent)\n\t\t\t\t} else {\n\t\t\t\t\tconst newPath = new Path([...[...Array(index)].flatMap(() => ['config', 'feature']), 'config', 'decorator', ...path.modelArr.slice(3)])\n\t\t\t\t\treturn model.set(newPath, value, silent)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tmodel.set(path, value, silent)\n\t})\n\twrapper.data = {\n\t\ttype: model.data.type,\n\t\tconfig: {\n\t\t\tdecorators,\n\t\t\tfeature,\n\t\t},\n\t}\n\twrapper.errors = model.errors\n\treturn { fields, wrapper }\n}\n\nfunction iterateNestedDecorators(value: any, decorators: any[]): any {\n\tif (value?.type?.replace(/^minecraft:/, '') !== 'decorated') {\n\t\treturn value\n\t}\n\tif (!isObject(value?.config)) {\n\t\treturn value\n\t}\n\tdecorators.push({ id: decorators.length, node: value.config.decorator })\n\treturn iterateNestedDecorators(value.config.feature ?? '', decorators)\n}\n\nfunction produceNestedDecorators(feature: any, decorators: any[]): any {\n\tif (decorators.length === 0) return feature\n\treturn {\n\t\ttype: 'minecraft:decorated',\n\t\tconfig: {\n\t\t\tdecorator: decorators.shift().node,\n\t\t\tfeature: produceNestedDecorators(feature, decorators),\n\t\t},\n\t}\n}\n","import type { DataModel } from '@mcschema/core'\nimport { useErrorBoundary, useState } from 'preact/hooks'\nimport { useLocale } from '../../contexts'\nimport { useModel } from '../../hooks'\nimport { FullNode } from '../../schema/renderHtml'\nimport type { BlockStateRegistry, VersionId } from '../../services'\n\ntype TreePanelProps = {\n\tversion: VersionId,\n\tmodel: DataModel | null,\n\tblockStates: BlockStateRegistry | null,\n\tonError: (message: string) => unknown,\n}\nexport function Tree({ version, model, blockStates, onError }: TreePanelProps) {\n\tconst { lang } = useLocale()\n\tif (!model || !blockStates || lang === 'none') return <></>\n\n\tconst [error] = useErrorBoundary(e => {\n\t\tonError(`Error rendering the tree: ${e.message}`)\n\t\tconsole.error(e)\n\t})\n\tif (error) return <></>\n\n\tconst [, setState] = useState(0)\n\tuseModel(model, () => {\n\t\tsetState(state => state + 1)\n\t})\n\n\treturn <div class=\"tree\" data-cy=\"tree\">\n\t\t<FullNode {...{model, lang, version, blockStates}}/>\n\t</div>\n}\n","var e=Object.defineProperty,t=Object.defineProperties,s=Object.getOwnPropertyDescriptors,r=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable,i=(t,s,r)=>s in t?e(t,s,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[s]=r,c=(e,t)=>{for(var s in t||(t={}))n.call(t,s)&&i(e,s,t[s]);if(r)for(var s of r(t))o.call(t,s)&&i(e,s,t[s]);return e};import a,{useState as l,useEffect as u,useRef as m}from\"react\";const g=\"Please consider reporting this error at https://github.com/laymonage/giscus/issues/new.\";function d(e){return`[giscus] An error occurred. Error message: \"${e}\".`}function p(e){const t=document.querySelector(`meta[property='og:${e}'],meta[name='${e}']`);return t?t.content:\"\"}function f(){const e=document.getElementById(\"giscus-css\")||document.createElement(\"style\");e.id=\"giscus-css\",e.textContent=\"\\n .giscus, .giscus-frame {\\n width: 100%;\\n }\\n .giscus-frame {\\n border: none;\\n color-scheme: normal;\\n }\\n \",document.head.prepend(e)}function h(e){const[r,n]=l(\"\"),o=function({repo:e,repoId:t,category:s=\"\",categoryId:r=\"\",mapping:n,term:o=\"\",theme:i=\"light\",reactionsEnabled:c=\"1\",emitMetadata:a=\"0\",inputPosition:l=\"bottom\",lang:u=\"en\",session:m,origin:g}){const d=new URL(location.href);d.searchParams.delete(\"giscus\");const f=d.toString(),h={origin:g=g||f,session:m,theme:i,reactionsEnabled:c,emitMetadata:a,inputPosition:l,repo:e,repoId:t,category:s,categoryId:r,description:p(\"description\")};switch(n){case\"url\":h.term=f;break;case\"title\":h.term=document.title;break;case\"og:title\":h.term=p(\"title\");break;case\"specific\":h.term=o;break;case\"number\":h.number=o;break;case\"pathname\":default:h.term=location.pathname.length<2?\"index\":location.pathname.substring(1).replace(/\\.\\w+$/,\"\")}return`https://giscus.app/${u}/widget?${new URLSearchParams(h)}`}((i=c({},e),t(i,s({session:r}))));var i;const h=m(null);return u((()=>{const e=location.href,t=new URL(e),s=localStorage.getItem(\"giscus-session\"),r=t.searchParams.get(\"giscus\")||\"\";if(r)return localStorage.setItem(\"giscus-session\",JSON.stringify(r)),n(r),t.searchParams.delete(\"giscus\"),void history.replaceState(void 0,document.title,t.toString());if(s)try{n(JSON.parse(s||\"\")||\"\")}catch(o){n(\"\"),localStorage.removeItem(\"giscus-session\"),console.warn(`${d(null==o?void 0:o.message)} Session has been cleared.`)}}),[]),u(f,[]),u((()=>{const e=function(e,t=null){return function(s){if(\"https://giscus.app\"!==s.origin)return;const{data:r}=s;if(\"object\"!=typeof r||!r.giscus)return;if(t&&r.giscus.resizeHeight&&(t.style.height=`${r.giscus.resizeHeight}px`),!r.giscus.error)return;const n=r.giscus.error;if(n.includes(\"Bad credentials\")||n.includes(\"Invalid state value\")){if(null!==localStorage.getItem(\"giscus-session\"))return localStorage.removeItem(\"giscus-session\"),e(),void console.warn(`${d(n)} Session has been cleared.`);console.error(`${d(n)} No session is stored initially. ${g}`)}n.includes(\"Discussion not found\")?console.warn(`[giscus] ${n}. A new discussion will be created if a comment/reaction is submitted.`):console.error(`${d(n)} ${g}`)}}((()=>n(\"\")),h.current);return window.addEventListener(\"message\",e),()=>window.removeEventListener(\"message\",e)}),[]),a.createElement(\"div\",{className:\"giscus\"},a.createElement(\"iframe\",{className:\"giscus-frame\",title:\"Comments\",scrolling:\"no\",src:o,ref:h}))}function b(e){const[t,s]=l(!1);return u((()=>s(!0)),[]),t?a.createElement(h,c({},e)):null}export{b as Giscus};\n","import { Giscus as GiscusReact } from '@giscus/react'\nimport { useTheme } from '../contexts'\n\ninterface Props {\n\tterm?: string,\n}\nexport function Giscus({ term }: Props) {\n\tconst { actualTheme } = useTheme()\n\tconst themeSuffix = actualTheme === 'light' ? '-burn' : ''\n\tconst themeUrl = (import.meta as any).env.DEV\n\t\t? `http://localhost:3000/src/styles/giscus${themeSuffix}.css`\n\t\t: `${location.protocol}//${location.host}/assets/giscus${themeSuffix}.css`\n\n\treturn <GiscusReact\n\t\trepo=\"misode/misode.github.io\"\n\t\trepoId=\"MDEwOlJlcG9zaXRvcnkxOTIyNTQyMzA=\"\n\t\tcategory=\"Site\"\n\t\tcategoryId=\"DIC_kwDOC3WRFs4COB8r\"\n\t\tmapping={term ? 'specific' : 'pathname'}\n\t\tterm={term}\n\t\treactionsEnabled=\"1\"\n\t\temitMetadata=\"0\"\n\t\tinputPosition=\"top\"\n\t\ttheme={themeUrl}\n\t\tlang=\"en\" />\n}\n","/**\n * marked - a markdown parser\n * Copyright (c) 2011-2022, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\nfunction getDefaults() {\n return {\n baseUrl: null,\n breaks: false,\n extensions: null,\n gfm: true,\n headerIds: true,\n headerPrefix: '',\n highlight: null,\n langPrefix: 'language-',\n mangle: true,\n pedantic: false,\n renderer: null,\n sanitize: false,\n sanitizer: null,\n silent: false,\n smartLists: false,\n smartypants: false,\n tokenizer: null,\n walkTokens: null,\n xhtml: false\n };\n}\n\nlet defaults = getDefaults();\n\nfunction changeDefaults(newDefaults) {\n defaults = newDefaults;\n}\n\n/**\n * Helpers\n */\nconst escapeTest = /[&<>\"']/;\nconst escapeReplace = /[&<>\"']/g;\nconst escapeTestNoEncode = /[<>\"']|&(?!#?\\w+;)/;\nconst escapeReplaceNoEncode = /[<>\"']|&(?!#?\\w+;)/g;\nconst escapeReplacements = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\nconst getEscapeReplacement = (ch) => escapeReplacements[ch];\nfunction escape(html, encode) {\n if (encode) {\n if (escapeTest.test(html)) {\n return html.replace(escapeReplace, getEscapeReplacement);\n }\n } else {\n if (escapeTestNoEncode.test(html)) {\n return html.replace(escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n\n return html;\n}\n\nconst unescapeTest = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig;\n\nfunction unescape(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(unescapeTest, (_, n) => {\n n = n.toLowerCase();\n if (n === 'colon') return ':';\n if (n.charAt(0) === '#') {\n return n.charAt(1) === 'x'\n ? String.fromCharCode(parseInt(n.substring(2), 16))\n : String.fromCharCode(+n.substring(1));\n }\n return '';\n });\n}\n\nconst caret = /(^|[^\\[])\\^/g;\nfunction edit(regex, opt) {\n regex = regex.source || regex;\n opt = opt || '';\n const obj = {\n replace: (name, val) => {\n val = val.source || val;\n val = val.replace(caret, '$1');\n regex = regex.replace(name, val);\n return obj;\n },\n getRegex: () => {\n return new RegExp(regex, opt);\n }\n };\n return obj;\n}\n\nconst nonWordAndColonTest = /[^\\w:]/g;\nconst originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;\nfunction cleanUrl(sanitize, base, href) {\n if (sanitize) {\n let prot;\n try {\n prot = decodeURIComponent(unescape(href))\n .replace(nonWordAndColonTest, '')\n .toLowerCase();\n } catch (e) {\n return null;\n }\n if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) {\n return null;\n }\n }\n if (base && !originIndependentUrl.test(href)) {\n href = resolveUrl(base, href);\n }\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n } catch (e) {\n return null;\n }\n return href;\n}\n\nconst baseUrls = {};\nconst justDomain = /^[^:]+:\\/*[^/]*$/;\nconst protocol = /^([^:]+:)[\\s\\S]*$/;\nconst domain = /^([^:]+:\\/*[^/]*)[\\s\\S]*$/;\n\nfunction resolveUrl(base, href) {\n if (!baseUrls[' ' + base]) {\n // we can ignore everything in base after the last slash of its path component,\n // but we might need to add _that_\n // https://tools.ietf.org/html/rfc3986#section-3\n if (justDomain.test(base)) {\n baseUrls[' ' + base] = base + '/';\n } else {\n baseUrls[' ' + base] = rtrim(base, '/', true);\n }\n }\n base = baseUrls[' ' + base];\n const relativeBase = base.indexOf(':') === -1;\n\n if (href.substring(0, 2) === '//') {\n if (relativeBase) {\n return href;\n }\n return base.replace(protocol, '$1') + href;\n } else if (href.charAt(0) === '/') {\n if (relativeBase) {\n return href;\n }\n return base.replace(domain, '$1') + href;\n } else {\n return base + href;\n }\n}\n\nconst noopTest = { exec: function noopTest() {} };\n\nfunction merge(obj) {\n let i = 1,\n target,\n key;\n\n for (; i < arguments.length; i++) {\n target = arguments[i];\n for (key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n obj[key] = target[key];\n }\n }\n }\n\n return obj;\n}\n\nfunction splitCells(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n const row = tableRow.replace(/\\|/g, (match, offset, str) => {\n let escaped = false,\n curr = offset;\n while (--curr >= 0 && str[curr] === '\\\\') escaped = !escaped;\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n } else {\n // add space before unescaped |\n return ' |';\n }\n }),\n cells = row.split(/ \\|/);\n let i = 0;\n\n // First/last cell in a row cannot be empty if it has no leading/trailing pipe\n if (!cells[0].trim()) { cells.shift(); }\n if (!cells[cells.length - 1].trim()) { cells.pop(); }\n\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) cells.push('');\n }\n\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n }\n return cells;\n}\n\n// Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n// /c*$/ is vulnerable to REDOS.\n// invert: Remove suffix of non-c chars instead. Default falsey.\nfunction rtrim(str, c, invert) {\n const l = str.length;\n if (l === 0) {\n return '';\n }\n\n // Length of suffix matching the invert condition.\n let suffLen = 0;\n\n // Step left until we fail to match the invert condition.\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n } else if (currChar !== c && invert) {\n suffLen++;\n } else {\n break;\n }\n }\n\n return str.substr(0, l - suffLen);\n}\n\nfunction findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n const l = str.length;\n let level = 0,\n i = 0;\n for (; i < l; i++) {\n if (str[i] === '\\\\') {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n return -1;\n}\n\nfunction checkSanitizeDeprecation(opt) {\n if (opt && opt.sanitize && !opt.silent) {\n console.warn('marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options');\n }\n}\n\n// copied from https://stackoverflow.com/a/5450113/806777\nfunction repeatString(pattern, count) {\n if (count < 1) {\n return '';\n }\n let result = '';\n while (count > 1) {\n if (count & 1) {\n result += pattern;\n }\n count >>= 1;\n pattern += pattern;\n }\n return result + pattern;\n}\n\nfunction outputLink(cap, link, raw, lexer) {\n const href = link.href;\n const title = link.title ? escape(link.title) : null;\n const text = cap[1].replace(/\\\\([\\[\\]])/g, '$1');\n\n if (cap[0].charAt(0) !== '!') {\n lexer.state.inLink = true;\n const token = {\n type: 'link',\n raw,\n href,\n title,\n text,\n tokens: lexer.inlineTokens(text, [])\n };\n lexer.state.inLink = false;\n return token;\n } else {\n return {\n type: 'image',\n raw,\n href,\n title,\n text: escape(text)\n };\n }\n}\n\nfunction indentCodeCompensation(raw, text) {\n const matchIndentToCode = raw.match(/^(\\s+)(?:```)/);\n\n if (matchIndentToCode === null) {\n return text;\n }\n\n const indentToCode = matchIndentToCode[1];\n\n return text\n .split('\\n')\n .map(node => {\n const matchIndentInNode = node.match(/^\\s+/);\n if (matchIndentInNode === null) {\n return node;\n }\n\n const [indentInNode] = matchIndentInNode;\n\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n\n return node;\n })\n .join('\\n');\n}\n\n/**\n * Tokenizer\n */\nclass Tokenizer {\n constructor(options) {\n this.options = options || defaults;\n }\n\n space(src) {\n const cap = this.rules.block.newline.exec(src);\n if (cap && cap[0].length > 0) {\n return {\n type: 'space',\n raw: cap[0]\n };\n }\n }\n\n code(src) {\n const cap = this.rules.block.code.exec(src);\n if (cap) {\n const text = cap[0].replace(/^ {1,4}/gm, '');\n return {\n type: 'code',\n raw: cap[0],\n codeBlockStyle: 'indented',\n text: !this.options.pedantic\n ? rtrim(text, '\\n')\n : text\n };\n }\n }\n\n fences(src) {\n const cap = this.rules.block.fences.exec(src);\n if (cap) {\n const raw = cap[0];\n const text = indentCodeCompensation(raw, cap[3] || '');\n\n return {\n type: 'code',\n raw,\n lang: cap[2] ? cap[2].trim() : cap[2],\n text\n };\n }\n }\n\n heading(src) {\n const cap = this.rules.block.heading.exec(src);\n if (cap) {\n let text = cap[2].trim();\n\n // remove trailing #s\n if (/#$/.test(text)) {\n const trimmed = rtrim(text, '#');\n if (this.options.pedantic) {\n text = trimmed.trim();\n } else if (!trimmed || / $/.test(trimmed)) {\n // CommonMark requires space before trailing #s\n text = trimmed.trim();\n }\n }\n\n const token = {\n type: 'heading',\n raw: cap[0],\n depth: cap[1].length,\n text: text,\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n\n hr(src) {\n const cap = this.rules.block.hr.exec(src);\n if (cap) {\n return {\n type: 'hr',\n raw: cap[0]\n };\n }\n }\n\n blockquote(src) {\n const cap = this.rules.block.blockquote.exec(src);\n if (cap) {\n const text = cap[0].replace(/^ *> ?/gm, '');\n\n return {\n type: 'blockquote',\n raw: cap[0],\n tokens: this.lexer.blockTokens(text, []),\n text\n };\n }\n }\n\n list(src) {\n let cap = this.rules.block.list.exec(src);\n if (cap) {\n let raw, istask, ischecked, indent, i, blankLine, endsWithBlankLine,\n line, nextLine, rawLine, itemContents, endEarly;\n\n let bull = cap[1].trim();\n const isordered = bull.length > 1;\n\n const list = {\n type: 'list',\n raw: '',\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : '',\n loose: false,\n items: []\n };\n\n bull = isordered ? `\\\\d{1,9}\\\\${bull.slice(-1)}` : `\\\\${bull}`;\n\n if (this.options.pedantic) {\n bull = isordered ? bull : '[*+-]';\n }\n\n // Get next list item\n const itemRegex = new RegExp(`^( {0,3}${bull})((?: [^\\\\n]*)?(?:\\\\n|$))`);\n\n // Check if current bullet point can start a new List Item\n while (src) {\n endEarly = false;\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n\n if (this.rules.block.hr.test(src)) { // End list if bullet was actually HR (possibly move into itemRegex?)\n break;\n }\n\n raw = cap[0];\n src = src.substring(raw.length);\n\n line = cap[2].split('\\n', 1)[0];\n nextLine = src.split('\\n', 1)[0];\n\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimLeft();\n } else {\n indent = cap[2].search(/[^ ]/); // Find first non-space char\n indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n\n blankLine = false;\n\n if (!line && /^ *$/.test(nextLine)) { // Items begin with at most one blank line\n raw += nextLine + '\\n';\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n\n if (!endEarly) {\n const nextBulletRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\\\d{1,9}[.)])`);\n\n // Check if following lines should be included in List Item\n while (src) {\n rawLine = src.split('\\n', 1)[0];\n line = rawLine;\n\n // Re-align to follow commonmark nesting rules\n if (this.options.pedantic) {\n line = line.replace(/^ {1,4}(?=( {4})*[^ ])/g, ' ');\n }\n\n // End list item if found start of new bullet\n if (nextBulletRegex.test(line)) {\n break;\n }\n\n if (line.search(/[^ ]/) >= indent || !line.trim()) { // Dedent if possible\n itemContents += '\\n' + line.slice(indent);\n } else if (!blankLine) { // Until blank line, item doesn't need indentation\n itemContents += '\\n' + line;\n } else { // Otherwise, improper indentation ends this item\n break;\n }\n\n if (!blankLine && !line.trim()) { // Check if current line is blank\n blankLine = true;\n }\n\n raw += rawLine + '\\n';\n src = src.substring(rawLine.length + 1);\n }\n }\n\n if (!list.loose) {\n // If the previous item ended with a blank line, the list is loose\n if (endsWithBlankLine) {\n list.loose = true;\n } else if (/\\n *\\n *$/.test(raw)) {\n endsWithBlankLine = true;\n }\n }\n\n // Check for task list items\n if (this.options.gfm) {\n istask = /^\\[[ xX]\\] /.exec(itemContents);\n if (istask) {\n ischecked = istask[0] !== '[ ] ';\n itemContents = itemContents.replace(/^\\[[ xX]\\] +/, '');\n }\n }\n\n list.items.push({\n type: 'list_item',\n raw: raw,\n task: !!istask,\n checked: ischecked,\n loose: false,\n text: itemContents\n });\n\n list.raw += raw;\n }\n\n // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic\n list.items[list.items.length - 1].raw = raw.trimRight();\n list.items[list.items.length - 1].text = itemContents.trimRight();\n list.raw = list.raw.trimRight();\n\n const l = list.items.length;\n\n // Item child tokens handled here at end because we needed to have the final item to trim it first\n for (i = 0; i < l; i++) {\n this.lexer.state.top = false;\n list.items[i].tokens = this.lexer.blockTokens(list.items[i].text, []);\n const spacers = list.items[i].tokens.filter(t => t.type === 'space');\n const hasMultipleLineBreaks = spacers.every(t => {\n const chars = t.raw.split('');\n let lineBreaks = 0;\n for (const char of chars) {\n if (char === '\\n') {\n lineBreaks += 1;\n }\n if (lineBreaks > 1) {\n return true;\n }\n }\n\n return false;\n });\n\n if (!list.loose && spacers.length && hasMultipleLineBreaks) {\n // Having a single line break doesn't mean a list is loose. A single line break is terminating the last list item\n list.loose = true;\n list.items[i].loose = true;\n }\n }\n\n return list;\n }\n }\n\n html(src) {\n const cap = this.rules.block.html.exec(src);\n if (cap) {\n const token = {\n type: 'html',\n raw: cap[0],\n pre: !this.options.sanitizer\n && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'),\n text: cap[0]\n };\n if (this.options.sanitize) {\n token.type = 'paragraph';\n token.text = this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0]);\n token.tokens = [];\n this.lexer.inline(token.text, token.tokens);\n }\n return token;\n }\n }\n\n def(src) {\n const cap = this.rules.block.def.exec(src);\n if (cap) {\n if (cap[3]) cap[3] = cap[3].substring(1, cap[3].length - 1);\n const tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n return {\n type: 'def',\n tag,\n raw: cap[0],\n href: cap[2],\n title: cap[3]\n };\n }\n }\n\n table(src) {\n const cap = this.rules.block.table.exec(src);\n if (cap) {\n const item = {\n type: 'table',\n header: splitCells(cap[1]).map(c => { return { text: c }; }),\n align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n rows: cap[3] ? cap[3].replace(/\\n[ \\t]*$/, '').split('\\n') : []\n };\n\n if (item.header.length === item.align.length) {\n item.raw = cap[0];\n\n let l = item.align.length;\n let i, j, k, row;\n for (i = 0; i < l; i++) {\n if (/^ *-+: *$/.test(item.align[i])) {\n item.align[i] = 'right';\n } else if (/^ *:-+: *$/.test(item.align[i])) {\n item.align[i] = 'center';\n } else if (/^ *:-+ *$/.test(item.align[i])) {\n item.align[i] = 'left';\n } else {\n item.align[i] = null;\n }\n }\n\n l = item.rows.length;\n for (i = 0; i < l; i++) {\n item.rows[i] = splitCells(item.rows[i], item.header.length).map(c => { return { text: c }; });\n }\n\n // parse child tokens inside headers and cells\n\n // header child tokens\n l = item.header.length;\n for (j = 0; j < l; j++) {\n item.header[j].tokens = [];\n this.lexer.inlineTokens(item.header[j].text, item.header[j].tokens);\n }\n\n // cell child tokens\n l = item.rows.length;\n for (j = 0; j < l; j++) {\n row = item.rows[j];\n for (k = 0; k < row.length; k++) {\n row[k].tokens = [];\n this.lexer.inlineTokens(row[k].text, row[k].tokens);\n }\n }\n\n return item;\n }\n }\n }\n\n lheading(src) {\n const cap = this.rules.block.lheading.exec(src);\n if (cap) {\n const token = {\n type: 'heading',\n raw: cap[0],\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text: cap[1],\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n\n paragraph(src) {\n const cap = this.rules.block.paragraph.exec(src);\n if (cap) {\n const token = {\n type: 'paragraph',\n raw: cap[0],\n text: cap[1].charAt(cap[1].length - 1) === '\\n'\n ? cap[1].slice(0, -1)\n : cap[1],\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n\n text(src) {\n const cap = this.rules.block.text.exec(src);\n if (cap) {\n const token = {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n\n escape(src) {\n const cap = this.rules.inline.escape.exec(src);\n if (cap) {\n return {\n type: 'escape',\n raw: cap[0],\n text: escape(cap[1])\n };\n }\n }\n\n tag(src) {\n const cap = this.rules.inline.tag.exec(src);\n if (cap) {\n if (!this.lexer.state.inLink && /^<a /i.test(cap[0])) {\n this.lexer.state.inLink = true;\n } else if (this.lexer.state.inLink && /^<\\/a>/i.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n if (!this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n } else if (this.lexer.state.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n\n return {\n type: this.options.sanitize\n ? 'text'\n : 'html',\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n text: this.options.sanitize\n ? (this.options.sanitizer\n ? this.options.sanitizer(cap[0])\n : escape(cap[0]))\n : cap[0]\n };\n }\n }\n\n link(src) {\n const cap = this.rules.inline.link.exec(src);\n if (cap) {\n const trimmedUrl = cap[2].trim();\n if (!this.options.pedantic && /^</.test(trimmedUrl)) {\n // commonmark requires matching angle brackets\n if (!(/>$/.test(trimmedUrl))) {\n return;\n }\n\n // ending angle bracket cannot be escaped\n const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\\\');\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n } else {\n // find closing parenthesis\n const lastParenIndex = findClosingBracket(cap[2], '()');\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf('!') === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n }\n let href = cap[2];\n let title = '';\n if (this.options.pedantic) {\n // split pedantic href and title\n const link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n\n if (link) {\n href = link[1];\n title = link[3];\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n\n href = href.trim();\n if (/^</.test(href)) {\n if (this.options.pedantic && !(/>$/.test(trimmedUrl))) {\n // pedantic allows starting angle bracket without ending angle bracket\n href = href.slice(1);\n } else {\n href = href.slice(1, -1);\n }\n }\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline._escapes, '$1') : href,\n title: title ? title.replace(this.rules.inline._escapes, '$1') : title\n }, cap[0], this.lexer);\n }\n }\n\n reflink(src, links) {\n let cap;\n if ((cap = this.rules.inline.reflink.exec(src))\n || (cap = this.rules.inline.nolink.exec(src))) {\n let link = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n link = links[link.toLowerCase()];\n if (!link || !link.href) {\n const text = cap[0].charAt(0);\n return {\n type: 'text',\n raw: text,\n text\n };\n }\n return outputLink(cap, link, cap[0], this.lexer);\n }\n }\n\n emStrong(src, maskedSrc, prevChar = '') {\n let match = this.rules.inline.emStrong.lDelim.exec(src);\n if (!match) return;\n\n // _ can't be between two alphanumerics. \\p{L}\\p{N} includes non-english alphabet/numbers as well\n if (match[3] && prevChar.match(/[\\p{L}\\p{N}]/u)) return;\n\n const nextChar = match[1] || match[2] || '';\n\n if (!nextChar || (nextChar && (prevChar === '' || this.rules.inline.punctuation.exec(prevChar)))) {\n const lLength = match[0].length - 1;\n let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0;\n\n const endReg = match[0][0] === '*' ? this.rules.inline.emStrong.rDelimAst : this.rules.inline.emStrong.rDelimUnd;\n endReg.lastIndex = 0;\n\n // Clip maskedSrc to same section of string as src (move to lexer?)\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n\n while ((match = endReg.exec(maskedSrc)) != null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n\n if (!rDelim) continue; // skip single * in __abc*abc__\n\n rLength = rDelim.length;\n\n if (match[3] || match[4]) { // found another Left Delim\n delimTotal += rLength;\n continue;\n } else if (match[5] || match[6]) { // either Left or Right Delim\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue; // CommonMark Emphasis Rules 9-10\n }\n }\n\n delimTotal -= rLength;\n\n if (delimTotal > 0) continue; // Haven't found enough closing delimiters\n\n // Remove extra characters. *a*** -> *a*\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n\n // Create `em` if smallest delimiter has odd char count. *a***\n if (Math.min(lLength, rLength) % 2) {\n const text = src.slice(1, lLength + match.index + rLength);\n return {\n type: 'em',\n raw: src.slice(0, lLength + match.index + rLength + 1),\n text,\n tokens: this.lexer.inlineTokens(text, [])\n };\n }\n\n // Create 'strong' if smallest delimiter has even char count. **a***\n const text = src.slice(2, lLength + match.index + rLength - 1);\n return {\n type: 'strong',\n raw: src.slice(0, lLength + match.index + rLength + 1),\n text,\n tokens: this.lexer.inlineTokens(text, [])\n };\n }\n }\n }\n\n codespan(src) {\n const cap = this.rules.inline.code.exec(src);\n if (cap) {\n let text = cap[2].replace(/\\n/g, ' ');\n const hasNonSpaceChars = /[^ ]/.test(text);\n const hasSpaceCharsOnBothEnds = /^ /.test(text) && / $/.test(text);\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n text = escape(text, true);\n return {\n type: 'codespan',\n raw: cap[0],\n text\n };\n }\n }\n\n br(src) {\n const cap = this.rules.inline.br.exec(src);\n if (cap) {\n return {\n type: 'br',\n raw: cap[0]\n };\n }\n }\n\n del(src) {\n const cap = this.rules.inline.del.exec(src);\n if (cap) {\n return {\n type: 'del',\n raw: cap[0],\n text: cap[2],\n tokens: this.lexer.inlineTokens(cap[2], [])\n };\n }\n }\n\n autolink(src, mangle) {\n const cap = this.rules.inline.autolink.exec(src);\n if (cap) {\n let text, href;\n if (cap[2] === '@') {\n text = escape(this.options.mangle ? mangle(cap[1]) : cap[1]);\n href = 'mailto:' + text;\n } else {\n text = escape(cap[1]);\n href = text;\n }\n\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text\n }\n ]\n };\n }\n }\n\n url(src, mangle) {\n let cap;\n if (cap = this.rules.inline.url.exec(src)) {\n let text, href;\n if (cap[2] === '@') {\n text = escape(this.options.mangle ? mangle(cap[0]) : cap[0]);\n href = 'mailto:' + text;\n } else {\n // do extended autolink path validation\n let prevCapZero;\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])[0];\n } while (prevCapZero !== cap[0]);\n text = escape(cap[0]);\n if (cap[1] === 'www.') {\n href = 'http://' + text;\n } else {\n href = text;\n }\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text\n }\n ]\n };\n }\n }\n\n inlineText(src, smartypants) {\n const cap = this.rules.inline.text.exec(src);\n if (cap) {\n let text;\n if (this.lexer.state.inRawBlock) {\n text = this.options.sanitize ? (this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0])) : cap[0];\n } else {\n text = escape(this.options.smartypants ? smartypants(cap[0]) : cap[0]);\n }\n return {\n type: 'text',\n raw: cap[0],\n text\n };\n }\n }\n}\n\n/**\n * Block-Level Grammar\n */\nconst block = {\n newline: /^(?: *(?:\\n|$))+/,\n code: /^( {4}[^\\n]+(?:\\n(?: *(?:\\n|$))*)?)+/,\n fences: /^ {0,3}(`{3,}(?=[^`\\n]*\\n)|~{3,})([^\\n]*)\\n(?:|([\\s\\S]*?)\\n)(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/,\n hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)/,\n heading: /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,\n blockquote: /^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/,\n list: /^( {0,3}bull)( [^\\n]+?)?(?:\\n|$)/,\n html: '^ {0,3}(?:' // optional indentation\n + '<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n + '|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)' // (4)\n + '|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)' // (5)\n + '|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (6)\n + '|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) open tag\n + '|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) closing tag\n + ')',\n def: /^ {0,3}\\[(label)\\]: *(?:\\n *)?<?([^\\s>]+)>?(?:(?: +(?:\\n *)?| *\\n *)(title))? *(?:\\n+|$)/,\n table: noopTest,\n lheading: /^([^\\n]+)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n // regex template, placeholders will be replaced according to different paragraph\n // interruption rules of commonmark and the original markdown spec:\n _paragraph: /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/,\n text: /^[^\\n]+/\n};\n\nblock._label = /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/;\nblock._title = /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/;\nblock.def = edit(block.def)\n .replace('label', block._label)\n .replace('title', block._title)\n .getRegex();\n\nblock.bullet = /(?:[*+-]|\\d{1,9}[.)])/;\nblock.listItemStart = edit(/^( *)(bull) */)\n .replace('bull', block.bullet)\n .getRegex();\n\nblock.list = edit(block.list)\n .replace(/bull/g, block.bullet)\n .replace('hr', '\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))')\n .replace('def', '\\\\n+(?=' + block.def.source + ')')\n .getRegex();\n\nblock._tag = 'address|article|aside|base|basefont|blockquote|body|caption'\n + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption'\n + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe'\n + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option'\n + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr'\n + '|track|ul';\nblock._comment = /<!--(?!-?>)[\\s\\S]*?(?:-->|$)/;\nblock.html = edit(block.html, 'i')\n .replace('comment', block._comment)\n .replace('tag', block._tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\n\nblock.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.blockquote = edit(block.blockquote)\n .replace('paragraph', block.paragraph)\n .getRegex();\n\n/**\n * Normal Block Grammar\n */\n\nblock.normal = merge({}, block);\n\n/**\n * GFM Block Grammar\n */\n\nblock.gfm = merge({}, block.normal, {\n table: '^ *([^\\\\n ].*\\\\|.*)\\\\n' // Header\n + ' {0,3}(?:\\\\| *)?(:?-+:? *(?:\\\\| *:?-+:? *)*)(?:\\\\| *)?' // Align\n + '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)' // Cells\n});\n\nblock.gfm.table = edit(block.gfm.table)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('blockquote', ' {0,3}>')\n .replace('code', ' {4}[^\\\\n]')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.gfm.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('table', block.gfm.table) // interrupt paragraphs with table\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\n\nblock.pedantic = merge({}, block.normal, {\n html: edit(\n '^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|<tag(?:\"[^\"]*\"|\\'[^\\']*\\'|\\\\s[^\\'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', block._comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest, // fences not supported\n paragraph: edit(block.normal._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', block.lheading)\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .getRegex()\n});\n\n/**\n * Inline-Level Grammar\n */\nconst inline = {\n escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n url: noopTest,\n tag: '^comment'\n + '|^</[a-zA-Z][\\\\w:-]*\\\\s*>' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. <?php ?>\n + '|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>' // declaration, e.g. <!DOCTYPE html>\n + '|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>', // CDATA section\n link: /^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,\n reflink: /^!?\\[(label)\\]\\[(ref)\\]/,\n nolink: /^!?\\[(ref)\\](?:\\[\\])?/,\n reflinkSearch: 'reflink|nolink(?!\\\\()',\n emStrong: {\n lDelim: /^(?:\\*+(?:([punct_])|[^\\s*]))|^_+(?:([punct*])|([^\\s_]))/,\n // (1) and (2) can only be a Right Delimiter. (3) and (4) can only be Left. (5) and (6) can be either Left or Right.\n // () Skip orphan delim inside strong (1) #*** (2) a***#, a*** (3) #***a, ***a (4) ***# (5) #***# (6) a***a\n rDelimAst: /^[^_*]*?\\_\\_[^_*]*?\\*[^_*]*?(?=\\_\\_)|[punct_](\\*+)(?=[\\s]|$)|[^punct*_\\s](\\*+)(?=[punct_\\s]|$)|[punct_\\s](\\*+)(?=[^punct*_\\s])|[\\s](\\*+)(?=[punct_])|[punct_](\\*+)(?=[punct_])|[^punct*_\\s](\\*+)(?=[^punct*_\\s])/,\n rDelimUnd: /^[^_*]*?\\*\\*[^_*]*?\\_[^_*]*?(?=\\*\\*)|[punct*](\\_+)(?=[\\s]|$)|[^punct*_\\s](\\_+)(?=[punct*\\s]|$)|[punct*\\s](\\_+)(?=[^punct*_\\s])|[\\s](\\_+)(?=[punct*])|[punct*](\\_+)(?=[punct*])/ // ^- Not allowed for _\n },\n code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n del: noopTest,\n text: /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/,\n punctuation: /^([\\spunctuation])/\n};\n\n// list of punctuation marks from CommonMark spec\n// without * and _ to handle the different emphasis markers * and _\ninline._punctuation = '!\"#$%&\\'()+\\\\-.,/:;<=>?@\\\\[\\\\]`^{|}~';\ninline.punctuation = edit(inline.punctuation).replace(/punctuation/g, inline._punctuation).getRegex();\n\n// sequences em should skip over [title](link), `code`, <html>\ninline.blockSkip = /\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>/g;\ninline.escapedEmSt = /\\\\\\*|\\\\_/g;\n\ninline._comment = edit(block._comment).replace('(?:-->|$)', '-->').getRegex();\n\ninline.emStrong.lDelim = edit(inline.emStrong.lDelim)\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline.emStrong.rDelimAst = edit(inline.emStrong.rDelimAst, 'g')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline.emStrong.rDelimUnd = edit(inline.emStrong.rDelimUnd, 'g')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g;\n\ninline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\ninline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;\ninline.autolink = edit(inline.autolink)\n .replace('scheme', inline._scheme)\n .replace('email', inline._email)\n .getRegex();\n\ninline._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\n\ninline.tag = edit(inline.tag)\n .replace('comment', inline._comment)\n .replace('attribute', inline._attribute)\n .getRegex();\n\ninline._label = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\ninline._href = /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/;\ninline._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\n\ninline.link = edit(inline.link)\n .replace('label', inline._label)\n .replace('href', inline._href)\n .replace('title', inline._title)\n .getRegex();\n\ninline.reflink = edit(inline.reflink)\n .replace('label', inline._label)\n .replace('ref', block._label)\n .getRegex();\n\ninline.nolink = edit(inline.nolink)\n .replace('ref', block._label)\n .getRegex();\n\ninline.reflinkSearch = edit(inline.reflinkSearch, 'g')\n .replace('reflink', inline.reflink)\n .replace('nolink', inline.nolink)\n .getRegex();\n\n/**\n * Normal Inline Grammar\n */\n\ninline.normal = merge({}, inline);\n\n/**\n * Pedantic Inline Grammar\n */\n\ninline.pedantic = merge({}, inline.normal, {\n strong: {\n start: /^__|\\*\\*/,\n middle: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n endAst: /\\*\\*(?!\\*)/g,\n endUnd: /__(?!_)/g\n },\n em: {\n start: /^_|\\*/,\n middle: /^()\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)|^_(?=\\S)([\\s\\S]*?\\S)_(?!_)/,\n endAst: /\\*(?!\\*)/g,\n endUnd: /_(?!_)/g\n },\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', inline._label)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', inline._label)\n .getRegex()\n});\n\n/**\n * GFM Inline Grammar\n */\n\ninline.gfm = merge({}, inline.normal, {\n escape: edit(inline.escape).replace('])', '~|])').getRegex(),\n _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n _backpedal: /(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|https?:\\/\\/|ftp:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/\n});\n\ninline.gfm.url = edit(inline.gfm.url, 'i')\n .replace('email', inline.gfm._extended_email)\n .getRegex();\n/**\n * GFM + Line Breaks Inline Grammar\n */\n\ninline.breaks = merge({}, inline.gfm, {\n br: edit(inline.br).replace('{2,}', '*').getRegex(),\n text: edit(inline.gfm.text)\n .replace('\\\\b_', '\\\\b_| {2,}\\\\n')\n .replace(/\\{2,\\}/g, '*')\n .getRegex()\n});\n\n/**\n * smartypants text replacement\n */\nfunction smartypants(text) {\n return text\n // em-dashes\n .replace(/---/g, '\\u2014')\n // en-dashes\n .replace(/--/g, '\\u2013')\n // opening singles\n .replace(/(^|[-\\u2014/(\\[{\"\\s])'/g, '$1\\u2018')\n // closing singles & apostrophes\n .replace(/'/g, '\\u2019')\n // opening doubles\n .replace(/(^|[-\\u2014/(\\[{\\u2018\\s])\"/g, '$1\\u201c')\n // closing doubles\n .replace(/\"/g, '\\u201d')\n // ellipses\n .replace(/\\.{3}/g, '\\u2026');\n}\n\n/**\n * mangle email addresses\n */\nfunction mangle(text) {\n let out = '',\n i,\n ch;\n\n const l = text.length;\n for (i = 0; i < l; i++) {\n ch = text.charCodeAt(i);\n if (Math.random() > 0.5) {\n ch = 'x' + ch.toString(16);\n }\n out += '&#' + ch + ';';\n }\n\n return out;\n}\n\n/**\n * Block Lexer\n */\nclass Lexer {\n constructor(options) {\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || defaults;\n this.options.tokenizer = this.options.tokenizer || new Tokenizer();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true\n };\n\n const rules = {\n block: block.normal,\n inline: inline.normal\n };\n\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n } else if (this.options.gfm) {\n rules.block = block.gfm;\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n } else {\n rules.inline = inline.gfm;\n }\n }\n this.tokenizer.rules = rules;\n }\n\n /**\n * Expose Rules\n */\n static get rules() {\n return {\n block,\n inline\n };\n }\n\n /**\n * Static Lex Method\n */\n static lex(src, options) {\n const lexer = new Lexer(options);\n return lexer.lex(src);\n }\n\n /**\n * Static Lex Inline Method\n */\n static lexInline(src, options) {\n const lexer = new Lexer(options);\n return lexer.inlineTokens(src);\n }\n\n /**\n * Preprocessing\n */\n lex(src) {\n src = src\n .replace(/\\r\\n|\\r/g, '\\n')\n .replace(/\\t/g, ' ');\n\n this.blockTokens(src, this.tokens);\n\n let next;\n while (next = this.inlineQueue.shift()) {\n this.inlineTokens(next.src, next.tokens);\n }\n\n return this.tokens;\n }\n\n /**\n * Lexing\n */\n blockTokens(src, tokens = []) {\n if (this.options.pedantic) {\n src = src.replace(/^ +$/gm, '');\n }\n let token, lastToken, cutSrc, lastParagraphClipped;\n\n while (src) {\n if (this.options.extensions\n && this.options.extensions.block\n && this.options.extensions.block.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // newline\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n if (token.raw.length === 1 && tokens.length > 0) {\n // if there's a single \\n as a spacer, it's terminating the last line,\n // so move it there so that we don't get unecessary paragraph tags\n tokens[tokens.length - 1].raw += '\\n';\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // code\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n // An indented code block cannot interrupt a paragraph.\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // fences\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // heading\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // hr\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // blockquote\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // list\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // html\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // def\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n continue;\n }\n\n // table (gfm)\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // lheading\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach(function(getStartIndex) {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) { startIndex = Math.min(startIndex, tempStart); }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n lastToken = tokens[tokens.length - 1];\n if (lastParagraphClipped && lastToken.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n lastParagraphClipped = (cutSrc.length !== src.length);\n src = src.substring(token.raw.length);\n continue;\n }\n\n // text\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n this.state.top = true;\n return tokens;\n }\n\n inline(src, tokens) {\n this.inlineQueue.push({ src, tokens });\n }\n\n /**\n * Lexing/Compiling\n */\n inlineTokens(src, tokens = []) {\n let token, lastToken, cutSrc;\n\n // String with links masked to avoid interference with em and strong\n let maskedSrc = src;\n let match;\n let keepPrevChar, prevChar;\n\n // Mask out reflinks\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n // Mask out other blocks\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n\n // Mask out escaped em & strong delimiters\n while ((match = this.tokenizer.rules.inline.escapedEmSt.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);\n }\n\n while (src) {\n if (!keepPrevChar) {\n prevChar = '';\n }\n keepPrevChar = false;\n\n // extensions\n if (this.options.extensions\n && this.options.extensions.inline\n && this.options.extensions.inline.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // escape\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // tag\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // link\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // reflink, nolink\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // em & strong\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // code\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // br\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // del (gfm)\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // autolink\n if (token = this.tokenizer.autolink(src, mangle)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // url (gfm)\n if (!this.state.inLink && (token = this.tokenizer.url(src, mangle))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach(function(getStartIndex) {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) { startIndex = Math.min(startIndex, tempStart); }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc, smartypants)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== '_') { // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n return tokens;\n }\n}\n\n/**\n * Renderer\n */\nclass Renderer {\n constructor(options) {\n this.options = options || defaults;\n }\n\n code(code, infostring, escaped) {\n const lang = (infostring || '').match(/\\S*/)[0];\n if (this.options.highlight) {\n const out = this.options.highlight(code, lang);\n if (out != null && out !== code) {\n escaped = true;\n code = out;\n }\n }\n\n code = code.replace(/\\n$/, '') + '\\n';\n\n if (!lang) {\n return '<pre><code>'\n + (escaped ? code : escape(code, true))\n + '</code></pre>\\n';\n }\n\n return '<pre><code class=\"'\n + this.options.langPrefix\n + escape(lang, true)\n + '\">'\n + (escaped ? code : escape(code, true))\n + '</code></pre>\\n';\n }\n\n blockquote(quote) {\n return '<blockquote>\\n' + quote + '</blockquote>\\n';\n }\n\n html(html) {\n return html;\n }\n\n heading(text, level, raw, slugger) {\n if (this.options.headerIds) {\n return '<h'\n + level\n + ' id=\"'\n + this.options.headerPrefix\n + slugger.slug(raw)\n + '\">'\n + text\n + '</h'\n + level\n + '>\\n';\n }\n // ignore IDs\n return '<h' + level + '>' + text + '</h' + level + '>\\n';\n }\n\n hr() {\n return this.options.xhtml ? '<hr/>\\n' : '<hr>\\n';\n }\n\n list(body, ordered, start) {\n const type = ordered ? 'ol' : 'ul',\n startatt = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startatt + '>\\n' + body + '</' + type + '>\\n';\n }\n\n listitem(text) {\n return '<li>' + text + '</li>\\n';\n }\n\n checkbox(checked) {\n return '<input '\n + (checked ? 'checked=\"\" ' : '')\n + 'disabled=\"\" type=\"checkbox\"'\n + (this.options.xhtml ? ' /' : '')\n + '> ';\n }\n\n paragraph(text) {\n return '<p>' + text + '</p>\\n';\n }\n\n table(header, body) {\n if (body) body = '<tbody>' + body + '</tbody>';\n\n return '<table>\\n'\n + '<thead>\\n'\n + header\n + '</thead>\\n'\n + body\n + '</table>\\n';\n }\n\n tablerow(content) {\n return '<tr>\\n' + content + '</tr>\\n';\n }\n\n tablecell(content, flags) {\n const type = flags.header ? 'th' : 'td';\n const tag = flags.align\n ? '<' + type + ' align=\"' + flags.align + '\">'\n : '<' + type + '>';\n return tag + content + '</' + type + '>\\n';\n }\n\n // span level renderer\n strong(text) {\n return '<strong>' + text + '</strong>';\n }\n\n em(text) {\n return '<em>' + text + '</em>';\n }\n\n codespan(text) {\n return '<code>' + text + '</code>';\n }\n\n br() {\n return this.options.xhtml ? '<br/>' : '<br>';\n }\n\n del(text) {\n return '<del>' + text + '</del>';\n }\n\n link(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n let out = '<a href=\"' + escape(href) + '\"';\n if (title) {\n out += ' title=\"' + title + '\"';\n }\n out += '>' + text + '</a>';\n return out;\n }\n\n image(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n\n let out = '<img src=\"' + href + '\" alt=\"' + text + '\"';\n if (title) {\n out += ' title=\"' + title + '\"';\n }\n out += this.options.xhtml ? '/>' : '>';\n return out;\n }\n\n text(text) {\n return text;\n }\n}\n\n/**\n * TextRenderer\n * returns only the textual part of the token\n */\nclass TextRenderer {\n // no need for block level renderers\n strong(text) {\n return text;\n }\n\n em(text) {\n return text;\n }\n\n codespan(text) {\n return text;\n }\n\n del(text) {\n return text;\n }\n\n html(text) {\n return text;\n }\n\n text(text) {\n return text;\n }\n\n link(href, title, text) {\n return '' + text;\n }\n\n image(href, title, text) {\n return '' + text;\n }\n\n br() {\n return '';\n }\n}\n\n/**\n * Slugger generates header id\n */\nclass Slugger {\n constructor() {\n this.seen = {};\n }\n\n serialize(value) {\n return value\n .toLowerCase()\n .trim()\n // remove html tags\n .replace(/<[!\\/a-z].*?>/ig, '')\n // remove unwanted chars\n .replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g, '')\n .replace(/\\s/g, '-');\n }\n\n /**\n * Finds the next safe (unique) slug to use\n */\n getNextSafeSlug(originalSlug, isDryRun) {\n let slug = originalSlug;\n let occurenceAccumulator = 0;\n if (this.seen.hasOwnProperty(slug)) {\n occurenceAccumulator = this.seen[originalSlug];\n do {\n occurenceAccumulator++;\n slug = originalSlug + '-' + occurenceAccumulator;\n } while (this.seen.hasOwnProperty(slug));\n }\n if (!isDryRun) {\n this.seen[originalSlug] = occurenceAccumulator;\n this.seen[slug] = 0;\n }\n return slug;\n }\n\n /**\n * Convert string to unique id\n * @param {object} options\n * @param {boolean} options.dryrun Generates the next unique slug without updating the internal accumulator.\n */\n slug(value, options = {}) {\n const slug = this.serialize(value);\n return this.getNextSafeSlug(slug, options.dryrun);\n }\n}\n\n/**\n * Parsing & Compiling\n */\nclass Parser {\n constructor(options) {\n this.options = options || defaults;\n this.options.renderer = this.options.renderer || new Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.textRenderer = new TextRenderer();\n this.slugger = new Slugger();\n }\n\n /**\n * Static Parse Method\n */\n static parse(tokens, options) {\n const parser = new Parser(options);\n return parser.parse(tokens);\n }\n\n /**\n * Static Parse Inline Method\n */\n static parseInline(tokens, options) {\n const parser = new Parser(options);\n return parser.parseInline(tokens);\n }\n\n /**\n * Parse Loop\n */\n parse(tokens, top = true) {\n let out = '',\n i,\n j,\n k,\n l2,\n l3,\n row,\n cell,\n header,\n body,\n token,\n ordered,\n start,\n loose,\n itemBody,\n item,\n checked,\n task,\n checkbox,\n ret;\n\n const l = tokens.length;\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'paragraph', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'space': {\n continue;\n }\n case 'hr': {\n out += this.renderer.hr();\n continue;\n }\n case 'heading': {\n out += this.renderer.heading(\n this.parseInline(token.tokens),\n token.depth,\n unescape(this.parseInline(token.tokens, this.textRenderer)),\n this.slugger);\n continue;\n }\n case 'code': {\n out += this.renderer.code(token.text,\n token.lang,\n token.escaped);\n continue;\n }\n case 'table': {\n header = '';\n\n // header\n cell = '';\n l2 = token.header.length;\n for (j = 0; j < l2; j++) {\n cell += this.renderer.tablecell(\n this.parseInline(token.header[j].tokens),\n { header: true, align: token.align[j] }\n );\n }\n header += this.renderer.tablerow(cell);\n\n body = '';\n l2 = token.rows.length;\n for (j = 0; j < l2; j++) {\n row = token.rows[j];\n\n cell = '';\n l3 = row.length;\n for (k = 0; k < l3; k++) {\n cell += this.renderer.tablecell(\n this.parseInline(row[k].tokens),\n { header: false, align: token.align[k] }\n );\n }\n\n body += this.renderer.tablerow(cell);\n }\n out += this.renderer.table(header, body);\n continue;\n }\n case 'blockquote': {\n body = this.parse(token.tokens);\n out += this.renderer.blockquote(body);\n continue;\n }\n case 'list': {\n ordered = token.ordered;\n start = token.start;\n loose = token.loose;\n l2 = token.items.length;\n\n body = '';\n for (j = 0; j < l2; j++) {\n item = token.items[j];\n checked = item.checked;\n task = item.task;\n\n itemBody = '';\n if (item.task) {\n checkbox = this.renderer.checkbox(checked);\n if (loose) {\n if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n } else {\n item.tokens.unshift({\n type: 'text',\n text: checkbox\n });\n }\n } else {\n itemBody += checkbox;\n }\n }\n\n itemBody += this.parse(item.tokens, loose);\n body += this.renderer.listitem(itemBody, task, checked);\n }\n\n out += this.renderer.list(body, ordered, start);\n continue;\n }\n case 'html': {\n // TODO parse inline content if parameter markdown=1\n out += this.renderer.html(token.text);\n continue;\n }\n case 'paragraph': {\n out += this.renderer.paragraph(this.parseInline(token.tokens));\n continue;\n }\n case 'text': {\n body = token.tokens ? this.parseInline(token.tokens) : token.text;\n while (i + 1 < l && tokens[i + 1].type === 'text') {\n token = tokens[++i];\n body += '\\n' + (token.tokens ? this.parseInline(token.tokens) : token.text);\n }\n out += top ? this.renderer.paragraph(body) : body;\n continue;\n }\n\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n\n return out;\n }\n\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens, renderer) {\n renderer = renderer || this.renderer;\n let out = '',\n i,\n token,\n ret;\n\n const l = tokens.length;\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'escape': {\n out += renderer.text(token.text);\n break;\n }\n case 'html': {\n out += renderer.html(token.text);\n break;\n }\n case 'link': {\n out += renderer.link(token.href, token.title, this.parseInline(token.tokens, renderer));\n break;\n }\n case 'image': {\n out += renderer.image(token.href, token.title, token.text);\n break;\n }\n case 'strong': {\n out += renderer.strong(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'em': {\n out += renderer.em(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'codespan': {\n out += renderer.codespan(token.text);\n break;\n }\n case 'br': {\n out += renderer.br();\n break;\n }\n case 'del': {\n out += renderer.del(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'text': {\n out += renderer.text(token.text);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n}\n\n/**\n * Marked\n */\nfunction marked(src, opt, callback) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n if (typeof opt === 'function') {\n callback = opt;\n opt = null;\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n if (callback) {\n const highlight = opt.highlight;\n let tokens;\n\n try {\n tokens = Lexer.lex(src, opt);\n } catch (e) {\n return callback(e);\n }\n\n const done = function(err) {\n let out;\n\n if (!err) {\n try {\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n out = Parser.parse(tokens, opt);\n } catch (e) {\n err = e;\n }\n }\n\n opt.highlight = highlight;\n\n return err\n ? callback(err)\n : callback(null, out);\n };\n\n if (!highlight || highlight.length < 3) {\n return done();\n }\n\n delete opt.highlight;\n\n if (!tokens.length) return done();\n\n let pending = 0;\n marked.walkTokens(tokens, function(token) {\n if (token.type === 'code') {\n pending++;\n setTimeout(() => {\n highlight(token.text, token.lang, function(err, code) {\n if (err) {\n return done(err);\n }\n if (code != null && code !== token.text) {\n token.text = code;\n token.escaped = true;\n }\n\n pending--;\n if (pending === 0) {\n done();\n }\n });\n }, 0);\n }\n });\n\n if (pending === 0) {\n done();\n }\n\n return;\n }\n\n try {\n const tokens = Lexer.lex(src, opt);\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n return Parser.parse(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (opt.silent) {\n return '<p>An error occurred:</p><pre>'\n + escape(e.message + '', true)\n + '</pre>';\n }\n throw e;\n }\n}\n\n/**\n * Options\n */\n\nmarked.options =\nmarked.setOptions = function(opt) {\n merge(marked.defaults, opt);\n changeDefaults(marked.defaults);\n return marked;\n};\n\nmarked.getDefaults = getDefaults;\n\nmarked.defaults = defaults;\n\n/**\n * Use Extension\n */\n\nmarked.use = function(...args) {\n const opts = merge({}, ...args);\n const extensions = marked.defaults.extensions || { renderers: {}, childTokens: {} };\n let hasExtensions;\n\n args.forEach((pack) => {\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n hasExtensions = true;\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n if (ext.renderer) { // Renderer extensions\n const prevRenderer = extensions.renderers ? extensions.renderers[ext.name] : null;\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function(...args) {\n let ret = ext.renderer.apply(this, args);\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n return ret;\n };\n } else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if (ext.tokenizer) { // Tokenizer Extensions\n if (!ext.level || (ext.level !== 'block' && ext.level !== 'inline')) {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n if (extensions[ext.level]) {\n extensions[ext.level].unshift(ext.tokenizer);\n } else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) { // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n } else {\n extensions.startBlock = [ext.start];\n }\n } else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n } else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if (ext.childTokens) { // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n }\n\n // ==-- Parse \"overwrite\" extensions --== //\n if (pack.renderer) {\n const renderer = marked.defaults.renderer || new Renderer();\n for (const prop in pack.renderer) {\n const prevRenderer = renderer[prop];\n // Replace renderer with func to run extension, but fall back if false\n renderer[prop] = (...args) => {\n let ret = pack.renderer[prop].apply(renderer, args);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n return ret;\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = marked.defaults.tokenizer || new Tokenizer();\n for (const prop in pack.tokenizer) {\n const prevTokenizer = tokenizer[prop];\n // Replace tokenizer with func to run extension, but fall back if false\n tokenizer[prop] = (...args) => {\n let ret = pack.tokenizer[prop].apply(tokenizer, args);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n\n // ==-- Parse WalkTokens extensions --== //\n if (pack.walkTokens) {\n const walkTokens = marked.defaults.walkTokens;\n opts.walkTokens = function(token) {\n pack.walkTokens.call(this, token);\n if (walkTokens) {\n walkTokens.call(this, token);\n }\n };\n }\n\n if (hasExtensions) {\n opts.extensions = extensions;\n }\n\n marked.setOptions(opts);\n });\n};\n\n/**\n * Run callback for every token\n */\n\nmarked.walkTokens = function(tokens, callback) {\n for (const token of tokens) {\n callback.call(marked, token);\n switch (token.type) {\n case 'table': {\n for (const cell of token.header) {\n marked.walkTokens(cell.tokens, callback);\n }\n for (const row of token.rows) {\n for (const cell of row) {\n marked.walkTokens(cell.tokens, callback);\n }\n }\n break;\n }\n case 'list': {\n marked.walkTokens(token.items, callback);\n break;\n }\n default: {\n if (marked.defaults.extensions && marked.defaults.extensions.childTokens && marked.defaults.extensions.childTokens[token.type]) { // Walk any extensions\n marked.defaults.extensions.childTokens[token.type].forEach(function(childTokens) {\n marked.walkTokens(token[childTokens], callback);\n });\n } else if (token.tokens) {\n marked.walkTokens(token.tokens, callback);\n }\n }\n }\n }\n};\n\n/**\n * Parse Inline\n */\nmarked.parseInline = function(src, opt) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked.parseInline(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked.parseInline(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n try {\n const tokens = Lexer.lexInline(src, opt);\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n return Parser.parseInline(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (opt.silent) {\n return '<p>An error occurred:</p><pre>'\n + escape(e.message + '', true)\n + '</pre>';\n }\n throw e;\n }\n};\n\n/**\n * Expose\n */\nmarked.Parser = Parser;\nmarked.parser = Parser.parse;\nmarked.Renderer = Renderer;\nmarked.TextRenderer = TextRenderer;\nmarked.Lexer = Lexer;\nmarked.lexer = Lexer.lex;\nmarked.Tokenizer = Tokenizer;\nmarked.Slugger = Slugger;\nmarked.parse = marked;\n\nconst options = marked.options;\nconst setOptions = marked.setOptions;\nconst use = marked.use;\nconst walkTokens = marked.walkTokens;\nconst parseInline = marked.parseInline;\nconst parse = marked;\nconst parser = Parser.parse;\nconst lexer = Lexer.lex;\n\nexport { Lexer, Parser, Renderer, Slugger, TextRenderer, Tokenizer, defaults, getDefaults, lexer, marked, options, parse, parseInline, parser, setOptions, use, walkTokens };\n","import { marked } from 'marked'\nimport { ChangelogTag } from '.'\nimport type { Change, ChangelogVersion } from '../../services'\n\ntype Props = {\n\tchange: Change,\n\tactiveTags?: string[],\n\ttoggleTag?: (tag: string) => unknown,\n}\nexport function ChangelogEntry({ change, activeTags, toggleTag }: Props) {\n\treturn <div class=\"changelog-entry\">\n\t\t<div class=\"changelog-version\">\n\t\t\t<ArticleLink {...change.version}/>\n\t\t\t<ArticleLink {...change.group}/>\n\t\t</div>\n\t\t<div class=\"changelog-tags\">\n\t\t\t{change.tags.map(tag => <ChangelogTag label={tag} onClick={toggleTag ? () => toggleTag(tag) : undefined} active={activeTags?.includes(tag)} />)}\n\t\t</div>\n\t\t<div class=\"changelog-content\" dangerouslySetInnerHTML={{ __html: marked(change.content) }} />\n\t</div>\n}\n\nfunction ArticleLink({ id, article }: ChangelogVersion) {\n\treturn article === null\n\t\t? <span>{id}</span>\n\t\t: <a href={`https://www.minecraft.net/en-us/article/${article}`} target=\"_blank\">{id}</a>\n}\n","import { Octicon } from '..'\nimport { hashString } from '../../Utils'\n\ntype TagProps = {\n\tlabel: string,\n\tactive?: boolean,\n\tonClick?: (e: MouseEvent) => unknown,\n}\nexport function ChangelogTag({ label, active, onClick }: TagProps) {\n\tconst color = label === 'breaking' ? 5 : hashString(label) % 360\n\treturn <div class={`changelog-tag${active ? ' active' : ''}${onClick ? ' clickable' : ''}`} style={`--tint: ${color}`} onClick={onClick}>\n\t\t{label === 'breaking' && Octicon.alert}\n\t\t{label}\n\t</div>\n}\n","import { useMemo, useState } from 'preact/hooks'\nimport { Btn, TextInput } from '..'\nimport { useLocale } from '../../contexts'\nimport type { Change } from '../../services'\nimport { ChangelogEntry } from './ChangelogEntry'\nimport { ChangelogTag } from './ChangelogTag'\n\ninterface Props {\n\tchanges: Change[] | undefined,\n\tdefaultOrder: 'asc' | 'desc',\n}\nexport function ChangelogList({ changes, defaultOrder }: Props) {\n\tconst { locale } = useLocale()\n\t\n\tconst [search, setSearch] = useState('')\n\tconst [tags, setTags] = useState<string[]>([])\n\tconst toggleTag = (tag: string) => {\n\t\tif (!tags.includes(tag)) {\n\t\t\tsetTags([...tags, tag])\n\t\t} else {\n\t\t\tsetTags(tags.filter(t => t !== tag))\n\t\t}\n\t}\n\n\tconst filteredChangelogs = useMemo(() => {\n\t\tconst query = search.split(' ').map(q => q.trim().toLowerCase()).filter(q => q.length > 0)\n\t\tif (query.length === 0 && tags.length === 0) return changes\n\t\treturn changes?.filter(change => {\n\t\t\tif (!tags.every(tag => change.tags.includes(tag))) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tconst content = change.tags.join(' ') + ' ' + change.content.toLowerCase()\n\t\t\treturn query.every(q => {\n\t\t\t\tif (q.startsWith('!')) {\n\t\t\t\t\treturn q.length === 1 || !content.includes(q.slice(1))\n\t\t\t\t}\n\t\t\t\treturn content.includes(q)\n\t\t\t})\n\t\t})\n\t}, [changes, search, tags])\n\n\tconst [sort, setSort] = useState(defaultOrder === 'desc')\n\n\tconst sortedChangelogs = useMemo(() => {\n\t\treturn filteredChangelogs?.sort((a, b) => sort ? b.order - a.order : a.order - b.order)\n\t}, [filteredChangelogs, sort])\n\n\treturn <>\n\t\t<div class=\"changelog-query\">\n\t\t\t<TextInput class=\"btn btn-input changelog-search\" list=\"sound-list\" placeholder={locale('changelog.search')}\n\t\t\t\tvalue={search} onChange={setSearch} />\n\t\t\t<Btn icon={sort ? 'sort_desc' : 'sort_asc'} label={sort ? 'Newest first' : 'Oldest first'} onClick={() => setSort(!sort)} />\n\t\t</div>\n\t\t{tags.length > 0 && <div class=\"changelog-tags\">\n\t\t\t{tags.map(tag => <ChangelogTag label={tag} onClick={() => setTags(tags.filter(t => t !== tag))} />)}\n\t\t</div>}\n\t\t<div class=\"changelog-list\">\n\t\t\t{sortedChangelogs === undefined\n\t\t\t\t? <span class=\"note\">{locale('loading')}</span>\n\t\t\t\t: sortedChangelogs.length === 0\n\t\t\t\t\t? <span class=\"note\">{locale('changelog.no_results')}</span>\n\t\t\t\t\t:\tsortedChangelogs.map(change =>\n\t\t\t\t\t\t<ChangelogEntry change={change} activeTags={tags} toggleTag={toggleTag} />)}\n\t\t</div>\n\t</>\n}\n","import { useEffect, useMemo, useState } from 'preact/hooks'\nimport { VersionMetaData } from '.'\nimport { useLocale } from '../../contexts'\nimport type { Change, VersionMeta } from '../../services'\nimport { getChangelogs } from '../../services'\nimport { Giscus } from '../Giscus'\nimport { ChangelogList } from './ChangelogList'\n\ntype Tab = 'changelog' | 'discussion' \n\ninterface Props {\n\tversion: VersionMeta\n}\nexport function VersionDetail({ version }: Props) {\n\tconst { locale } = useLocale()\n\n\tconst [tab, setTab] = useState<Tab>('changelog')\n\n\tconst [changelogs, setChangelogs] = useState<Change[] | undefined>(undefined)\n\tuseEffect(() => {\n\t\tgetChangelogs()\n\t\t\t.then(changelogs => setChangelogs(\n\t\t\t\tchangelogs.map(c => ({ ...c, tags: c.tags.filter(t => t !== c.group.id) }))\n\t\t\t))\n\t\t\t.catch(e => console.error(e))\n\t}, [])\n\n\tconst filteredChangelogs = useMemo(() =>\n\t\tchangelogs?.filter(c => c.version.id === version.id || c.group.id === version.id),\n\t[version.id, changelogs])\n\n\treturn <>\n\t\t<div class=\"version-detail\">\n\t\t\t<h2>{version.name}</h2>\n\t\t\t<div class=\"version-info\">\n\t\t\t\t<VersionMetaData label={locale('versions.released')} value={releaseDate(version)} />\n\t\t\t\t<VersionMetaData label={locale('versions.release_target')} value={version.release_target} link={version.id !== version.release_target ? `/versions/?id=${version.release_target}` : undefined} />\n\t\t\t\t<VersionMetaData label={locale('versions.data_version')} value={version.data_version} />\n\t\t\t\t<VersionMetaData label={locale('versions.protocol_version')} value={version.protocol_version} />\n\t\t\t\t<VersionMetaData label={locale('versions.data_pack_format')} value={version.data_pack_version} />\n\t\t\t\t<VersionMetaData label={locale('versions.resource_pack_format')} value={version.resource_pack_version} />\n\t\t\t</div>\n\t\t\t<div class=\"version-tabs\">\n\t\t\t\t<span class={tab === 'changelog' ? 'selected' : ''} onClick={() => setTab('changelog')}>{locale('versions.technical_changes')}</span>\n\t\t\t\t<span class={tab === 'discussion' ? 'selected' : ''} onClick={() => setTab('discussion')}>{locale('versions.discussion')}</span>\n\t\t\t</div>\n\t\t\t<div class=\"version-tab\">\n\t\t\t\t{tab === 'changelog' && <ChangelogList changes={filteredChangelogs} defaultOrder=\"asc\" />}\n\t\t\t\t{tab === 'discussion' && <Giscus term={`version/${version.id}`} />}\n\t\t\t</div>\n\t\t</div>\n\t</>\n}\n\nexport function releaseDate(version: VersionMeta) {\n\treturn new Date(version.release_time).toLocaleDateString(undefined, { day: 'numeric', month: 'short', year: 'numeric' })\n}\n","import { releaseDate, VersionMetaData } from '.'\nimport { useLocale } from '../../contexts'\nimport type { VersionMeta } from '../../services'\n\ninterface Props {\n\tversion: VersionMeta,\n\tlink?: string,\n}\nexport function VersionEntry({ version, link }: Props) {\n\tconst { locale } = useLocale()\n\n\treturn <a class=\"version-entry\" href={link}>\n\t\t<span class=\"version-id\">{version.id}</span>\n\t\t<VersionMetaData label={locale('versions.released')} value={releaseDate(version)} compact />\n\t\t<VersionMetaData label={locale('versions.data_version')} value={version.data_version} optional />\n\t\t<VersionMetaData label={locale('versions.pack_format')} value={version.data_pack_version} optional />\n\t</a>\n}\n","import { useMemo, useState } from 'preact/hooks'\nimport { Checkbox, TextInput } from '..'\nimport { useLocale } from '../../contexts'\nimport type { VersionMeta } from '../../services'\nimport { VersionEntry } from './VersionEntry'\n\ninterface Props {\n\tversions: VersionMeta[]\n\tlink?: (id: string) => string\n}\nexport function VersionList({ versions, link }: Props) {\n\tconst { locale } = useLocale()\n\t\n\tconst [snapshots, setSnapshots] = useState(true)\n\tconst [search, setSearch] = useState('')\n\n\tconst filteredVersions = useMemo(() => versions.filter(v => {\n\t\tif (v.type === 'snapshot' && !snapshots) return false\n\t\treturn v.id.includes(search)\n\t}), [versions, snapshots, search])\n\n\n\treturn <>\n\t\t<div class=\"versions-controls\">\n\t\t\t<TextInput class=\"btn btn-input version-search\" placeholder={locale('versions.search')}\n\t\t\t\tvalue={search} onChange={setSearch} />\n\t\t\t<Checkbox label=\"Include snapshots\" value={snapshots} onChange={setSnapshots} />\n\t\t</div>\n\t\t<div class=\"version-list\">\n\t\t\t{filteredVersions.map(v => <VersionEntry version={v} link={link?.(v.id)} />)}\n\t\t\t{filteredVersions.length === 0 && <span>\n\t\t\t\t{locale('versions.no_results')}\n\t\t\t</span>}\n\t\t</div>\n\t</>\n}\n","import { Octicon } from '..'\n\ninterface Props {\n\tlabel: string,\n\tvalue: string | number,\n\tlink?: string,\n\tcompact?: boolean,\n\toptional?: boolean,\n}\nexport function VersionMetaData({ label, value, link, compact, optional }: Props) {\n\treturn <div class={`version-metadata${optional ? ' version-metadata-hide' : ''}`}>\n\t\t<span class={compact ? 'version-metadata-hide' : undefined}>{label}: </span>\n\t\t<span class=\"version-metadata-value\">{value}</span>\n\t\t{link && <a href={link} class=\"version-metadata-link\">{Octicon.link_external}</a>}\n\t</div>\n}\n","import { ChangelogTag } from './versions'\n\ninterface Props {\n\ttitle: string,\n\tlink: string,\n\tversions: string[],\n\ttags: string[],\n\tactiveTags?: string[],\n\ttoggleTag?: (tag: string) => unknown,\n}\nexport function GuideCard({ title, link, versions, tags, activeTags, toggleTag }: Props) {\n\tconst onToggleTag = (tag: string) => (e: MouseEvent) => {\n\t\tif (toggleTag) toggleTag(tag)\n\t\te.preventDefault()\n\t\te.stopImmediatePropagation()\n\t}\n\n\treturn <a class=\"guide-card\" href={link} >\n\t\t<span class=\"guide-versions\">{versions.join(' • ')}</span>\n\t\t<h3>{title}</h3>\n\t\t<div class=\"guide-tags\">\n\t\t\t{tags.sort().map(tag => <ChangelogTag label={tag} onClick={onToggleTag(tag)} active={activeTags?.includes(tag)} />)}\n\t\t</div>\n\t</a>\n}\n","import { getCurrentUrl, Link, route } from 'preact-router'\nimport { Btn, BtnMenu, Icons, Octicon } from '.'\nimport config from '../../config.json'\nimport { useLocale, useTheme, useTitle, useVersion } from '../contexts'\nimport { checkVersion } from '../services'\nimport { cleanUrl, getGenerator } from '../Utils'\n\nconst Themes: Record<string, keyof typeof Octicon> = {\n\tsystem: 'device_desktop',\n\tdark: 'moon',\n\tlight: 'sun',\n}\n\nexport function Header() {\n\tconst { lang, locale, changeLanguage } = useLocale()\n\tconst { theme, changeTheme } = useTheme()\n\tconst { version } = useVersion()\n\tconst { title } = useTitle()\n\tconst gen = getGenerator(getCurrentUrl())\n\n\treturn <header>\n\t\t<div class=\"title\">\n\t\t\t<Link class=\"home-link\" href=\"/\" aria-label={locale('home')} data-cy=\"home-link\">{Icons.home}</Link>\n\t\t\t<h1>{title}</h1>\n\t\t\t{gen && <BtnMenu icon=\"chevron_down\" tooltip={locale('switch_generator')} data-cy=\"generator-switcher\">\n\t\t\t\t{config.generators\n\t\t\t\t\t.filter(g => g.category === gen?.category && checkVersion(version, g.minVersion))\n\t\t\t\t\t.map(g =>\n\t\t\t\t\t\t<Btn label={locale(g.id)} active={g.id === gen.id} onClick={() => route(cleanUrl(g.url))} />\n\t\t\t\t\t)}\n\t\t\t</BtnMenu>}\n\t\t</div>\n\t\t<nav>\n\t\t\t<ul>\n\t\t\t\t<li data-cy=\"language-switcher\">\n\t\t\t\t\t<BtnMenu icon=\"globe\" tooltip={locale('language')}>\n\t\t\t\t\t\t{config.languages.map(({ code, name }) =>\n\t\t\t\t\t\t\t<Btn label={name} active={code === lang}\n\t\t\t\t\t\t\t\tonClick={() => changeLanguage(code)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t</li>\n\t\t\t\t<li data-cy=\"theme-switcher\">\n\t\t\t\t\t<BtnMenu icon={Themes[theme]} tooltip={locale('theme')}>\n\t\t\t\t\t\t{Object.entries(Themes).map(([th, icon]) =>\n\t\t\t\t\t\t\t<Btn icon={icon} label={locale(`theme.${th}`)} active={th === theme}\n\t\t\t\t\t\t\t\tonClick={() => changeTheme(th)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t</li>\n\t\t\t\t<li class=\"dimmed\">\n\t\t\t\t\t<a href=\"https://github.com/misode/misode.github.io\" target=\"_blank\" rel=\"noreferrer\" class=\"tooltipped tip-sw\" aria-label={locale('github')}>\n\t\t\t\t\t\t{Octicon.mark_github}\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</nav>\n\t</header>\n}\n","export const Icons = {\n\thome: <svg width=\"32\" height=\"28\" viewBox=\"0 0 32 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"26\" height=\"6\" rx=\"3\" fill=\"#7CB45C\"/><rect x=\"8\" width=\"18\" height=\"6\" rx=\"3\" fill=\"#4BA041\"/><rect y=\"11\" width=\"32\" height=\"6\" rx=\"3\" fill=\"#AAA8A8\"/><rect x=\"11\" y=\"11\" width=\"21\" height=\"6\" rx=\"3\" fill=\"#91908F\"/><rect x=\"11\" y=\"22\" width=\"21\" height=\"6\" rx=\"3\" fill=\"#70B5C3\"/><rect x=\"17\" y=\"22\" width=\"15\" height=\"6\" rx=\"3\" fill=\"#4D989B\"/></svg>,\n\treport: <svg width=\"30\" height=\"36\" viewBox=\"0 0 30 36\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 16C0 13.7909 1.79086 12 4 12V12C6.20914 12 8 13.7909 8 16V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V16Z\" fill=\"#6ACC5D\"/><path d=\"M11 4C11 1.79086 12.7909 0 15 0V0C17.2091 0 19 1.79086 19 4V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V4Z\" fill=\"#FF4C4C\"/><path d=\"M22 10C22 7.79086 23.7909 6 26 6V6C28.2091 6 30 7.79086 30 10V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V10Z\" fill=\"#E5B442\"/><path d=\"M0 23C0 20.7909 1.79086 19 4 19V19C6.20914 19 8 20.7909 8 23V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V23Z\" fill=\"#2BAD1D\"/><path d=\"M11 15C11 12.7909 12.7909 11 15 11V11C17.2091 11 19 12.7909 19 15V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V15Z\" fill=\"#C10B0B\"/><path d=\"M22 19C22 16.7909 23.7909 15 26 15V15C28.2091 15 30 16.7909 30 19V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V19Z\" fill=\"#CC8E00\"/></svg>,\n\tsounds: <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"10\" cy=\"10\" r=\"10\" fill=\"#451475\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3.5 10C3.5 8.27609 4.18482 6.62279 5.40381 5.40381C6.62279 4.18482 8.27609 3.5 10 3.5C11.7239 3.5 13.3772 4.18482 14.5962 5.40381C15.8152 6.62279 16.5 8.27609 16.5 10C16.5 11.7239 15.8152 13.3772 14.5962 14.5962C13.3772 15.8152 11.7239 16.5 10 16.5C8.27609 16.5 6.62279 15.8152 5.40381 14.5962C4.18482 13.3772 3.5 11.7239 3.5 10V10ZM10 2C7.87827 2 5.84344 2.84285 4.34315 4.34315C2.84285 5.84344 2 7.87827 2 10C2 12.1217 2.84285 14.1566 4.34315 15.6569C5.84344 17.1571 7.87827 18 10 18C12.1217 18 14.1566 17.1571 15.6569 15.6569C17.1571 14.1566 18 12.1217 18 10C18 7.87827 17.1571 5.84344 15.6569 4.34315C14.1566 2.84285 12.1217 2 10 2V2ZM8.379 7.227C8.34101 7.20412 8.29762 7.19175 8.25327 7.19117C8.20892 7.19059 8.16522 7.20181 8.12664 7.2237C8.08807 7.24558 8.05601 7.27733 8.03375 7.3157C8.0115 7.35406 7.99985 7.39765 8 7.442V12.559C8.00003 12.6033 8.0118 12.6467 8.03413 12.685C8.05646 12.7232 8.08854 12.7548 8.12708 12.7765C8.16563 12.7983 8.20926 12.8095 8.25352 12.8088C8.29778 12.8082 8.34108 12.7958 8.379 12.773L12.643 10.214C12.6798 10.1917 12.7103 10.1604 12.7315 10.1229C12.7526 10.0854 12.7638 10.043 12.7638 10C12.7638 9.95695 12.7526 9.91463 12.7315 9.87714C12.7103 9.83965 12.6798 9.80825 12.643 9.786L8.379 7.227Z\" fill=\"#C5A5E6\"/></svg>,\n}\n","import type { Howl, HowlOptions } from 'howler'\nimport { useEffect, useRef, useState } from 'preact/hooks'\nimport { Btn, NumberInput, RangeInput, TextInput } from '..'\nimport { useLocale, useVersion } from '../../contexts'\nimport type { SoundEvents } from '../../services'\nimport { getSoundUrl } from '../../services'\n\nexport interface SoundConfig {\n\tid: string,\n\tsound: string,\n\tdelay: number,\n\tpitch: number,\n\tvolume: number,\n}\ntype SoundConfigProps = SoundConfig & {\n\thowler: (options: HowlOptions) => Howl,\n\tsounds: SoundEvents,\n\tonEdit: (changes: Partial<SoundConfig>) => unknown,\n\tonDelete: () => unknown,\n\tdelayedPlay?: number,\n}\nexport function SoundConfig({ howler, sounds, sound, delay, pitch, volume, onEdit, onDelete, delayedPlay }: SoundConfigProps) {\n\tconst { locale } = useLocale()\n\tconst { version } = useVersion()\n\tconst [loading, setLoading] = useState(true)\n\tconst [playing, setPlaying] = useState(false)\n\tconst [invalid, setInvalid] = useState(false)\n\tconst howls = useRef<Howl[]>([])\n\tconst command = `playsound minecraft:${sound} master @s ~ ~ ~ ${volume} ${pitch}`\n\n\tuseEffect(() => {\n\t\tconst soundEvent = sounds[sound]\n\t\tsetInvalid((soundEvent?.sounds?.length ?? 0) === 0)\n\t\thowls.current.forEach(h => h.stop())\n\t\thowls.current = (soundEvent?.sounds ?? []).map(entry => {\n\t\t\tconst soundPath = typeof entry === 'string' ? entry : entry.name\n\t\t\tconst url = getSoundUrl(version, soundPath)\n\t\t\tconst howl = howler({\n\t\t\t\tsrc: [url],\n\t\t\t\tformat: ['ogg'],\n\t\t\t\tvolume,\n\t\t\t\trate: pitch,\n\t\t\t})\n\t\t\thowl.on('end', () => {\n\t\t\t\tsetPlaying(false)\n\t\t\t})\n\t\t\tconst completed = () => {\n\t\t\t\tif (loading && howls.current.every(h => h.state() === 'loaded')) {\n\t\t\t\t\tsetLoading(false)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (howl.state() === 'loaded') {\n\t\t\t\tsetTimeout(() => completed())\n\t\t\t} else {\n\t\t\t\thowl.on('load', () => {\n\t\t\t\t\tcompleted()\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn howl\n\t\t})\n\t\tsetLoading(true)\n\t}, [sound, sounds])\n\n\tuseEffect(() => {\n\t\thowls.current.forEach(h => h.rate(pitch))\n\t}, [pitch])\n\n\tuseEffect(() => {\n\t\thowls.current.forEach(h => h.volume(volume))\n\t}, [volume])\n\n\tconst play = () => {\n\t\tif (loading || invalid) return\n\t\tstop()\n\t\tconst howl = Math.floor(Math.random() * howls.current.length)\n\t\thowls.current[howl].play()\n\t\tsetPlaying(true)\n\t}\n\tconst stop = () => {\n\t\thowls.current.forEach(h => h.stop())\n\t}\n\tuseEffect(() => {\n\t\tif (delayedPlay) setTimeout(() => play(), delay * 50)\n\t}, [delayedPlay])\n\n\tuseEffect(() => {\n\t\treturn () => stop()\n\t}, [])\n\n\tconst [copyActive, setCopyActive] = useState(false)\n\tconst copyTimeout = useRef<number | undefined>(undefined)\n\tconst copy = () => {\n\t\tnavigator.clipboard.writeText(command)\n\t\tsetCopyActive(true)\n\t\tif (copyTimeout.current !== undefined) clearTimeout(copyTimeout.current)\n\t\tcopyTimeout.current = setTimeout(() => {\n\t\t\tsetCopyActive(false)\n\t\t}, 2000) as any\n\t}\n\n\treturn <div class={`sound-config${loading ? ' loading' : playing ? ' playing' : ''}${invalid ? ' invalid' : ''}`}>\n\t\t<Btn class=\"play\" icon={invalid ? 'alert' : loading ? 'sync' : 'play'} label={locale('sounds.play')} onClick={play} tooltip={invalid ? locale('sounds.unknown_sound') : loading ? locale('sounds.loading_sound') : locale('sounds.play_sound')} tooltipLoc=\"se\" />\n\t\t<TextInput class=\"btn btn-input sound\" list=\"sound-list\" spellcheck={false}\n\t\t\tvalue={sound} onChange={sound => onEdit({ sound })} />\n\t\t<label class=\"delay-label\">{locale('sounds.delay')}: </label>\n\t\t<NumberInput class=\"btn btn-input delay\" min={0}\n\t\t\tvalue={delay} onChange={delay => onEdit({ delay })} />\n\t\t<label class=\"pitch-label\">{locale('sounds.pitch')}: </label>\n\t\t<RangeInput class=\"pitch tooltipped tip-s\" min={0.5} max={2} step={0.01}\n\t\t\taria-label={pitch.toFixed(2)} style={`--x: ${(pitch - 0.5) * (100 / 1.5)}%`}\n\t\t\tvalue={pitch} onChange={pitch => onEdit({ pitch })} />\n\t\t<label class=\"volume-label\">{locale('sounds.volume')}: </label>\n\t\t<RangeInput class=\"volume tooltipped tip-s\" min={0} max={1} step={0.01}\n\t\t\taria-label={volume.toFixed(2)} style={`--x: ${volume * 100}%`}\n\t\t\tvalue={volume} onChange={volume => onEdit({ volume })} />\n\t\t<Btn class={`copy${copyActive ? ' active' : ''}`} icon={copyActive ? 'check' : 'terminal'} label={locale('copy')} tooltip={copyActive ? locale('copied') : locale('sounds.copy_command')}\n\t\t\tonClick={copy} />\n\t\t<Btn class=\"remove\" icon=\"trashcan\" tooltip={locale('sounds.remove_sound')}\n\t\t\tonClick={() => {onDelete(); stop()}} />\n\t</div>\n}\n","import type { ComponentChildren } from 'preact'\nimport { Icons } from './Icons'\n\ntype ToolCardProps = {\n\ttitle: string,\n\tdesc?: string,\n\tlink?: string,\n\ticon?: keyof typeof Icons,\n\tchildren?: ComponentChildren,\n}\nexport function ToolCard({ title, desc, link, icon, children }: ToolCardProps) {\n\tconst content = <>\n\t\t<div class=\"tool-head\">\n\t\t\t{icon && Icons[icon]}\n\t\t\t<div>\n\t\t\t\t<h3>{title}</h3>\n\t\t\t\t<p>{desc}</p>\n\t\t\t</div>\n\t\t</div>\n\t\t{children && <div class=\"tool-body\">\n\t\t\t{children}\n\t\t</div>}\n\t</>\n\treturn link\n\t\t? <a class=\"tool-card\" href={link}>{content}</a>\n\t\t: <div class=\"tool-card\">{content}</div>\n}\n","import { useMemo, useState } from 'preact/hooks'\nimport { Octicon } from '.'\n\nconst SEPARATOR = '/'\n\ninterface Props {\n\tentries: string[],\n\tonSelect: (entry: string) => unknown,\n\tindent?: number,\n}\nexport function TreeView({ entries, onSelect, indent }: Props) {\n\tconst roots = useMemo(() => {\n\t\tconst groups: Record<string, string[]> = {}\n\t\tfor (const entry of entries) {\n\t\t\tconst i = entry.indexOf(SEPARATOR)\n\t\t\tif (i >= 0) {\n\t\t\t\tconst root = entry.slice(0, i)\n\t\t\t\t;(groups[root] ??= []).push(entry.slice(i + 1))\n\t\t\t}\n\t\t}\n\t\treturn Object.entries(groups)\n\t}, entries)\n\n\tconst leaves = useMemo(() => {\n\t\treturn entries.filter(e => !e.includes(SEPARATOR))\n\t}, entries)\n\n\tconst [hidden, setHidden] = useState(new Set<string>())\n\tconst toggle = (root: string) => {\n\t\tif (hidden.has(root)) {\n\t\t\thidden.delete(root)\n\t\t} else {\n\t\t\thidden.add(root)\n\t\t}\n\t\tsetHidden(new Set(hidden))\n\t}\n\n\treturn <div class=\"tree-view\" style={`--indent: ${indent ?? 0};`}>\n\t\t{roots.map(([r, entries]) => <div>\n\t\t\t<TreeViewEntry icon={hidden.has(r) ? 'chevron_right' : 'chevron_down'} key={r} label={r} onClick={() => toggle(r)}/>\n\t\t\t{!hidden.has(r) &&\n\t\t\t\t<TreeView entries={entries} onSelect={e => onSelect(`${r}/${e}`)} indent={(indent ?? 0) + 1} />}\n\t\t</div>)}\n\t\t{leaves.map(e => <TreeViewEntry icon=\"file\" key={e} label={e} onClick={() => onSelect(e)} />)}\n\t</div>\n}\n\ninterface TreeViewEntryProps {\n\ticon: keyof typeof Octicon,\n\tlabel: string,\n\tonClick?: () => unknown,\n}\nfunction TreeViewEntry({ icon, label, onClick }: TreeViewEntryProps) {\n\treturn <div class=\"entry\" onClick={onClick} >\n\t\t{Octicon[icon]}\n\t\t{label}\n\t</div>\n}\n","import config from '../../config.json'\nimport { ToolCard } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport { cleanUrl } from '../Utils'\n\ninterface Props {\n\tcategory: string,\n\tpath?: string,\n}\nexport function Category({ category }: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.generator_category', locale(category)))\n\treturn <main>\n\t\t<div class=\"category\">\n\t\t\t{config.generators.filter(g => g.category === category).map(g => \n\t\t\t\t<ToolCard title={locale(g.id)} link={cleanUrl(g.url)} />\n\t\t\t)}\n\t\t</div>\n\t</main>\n}\n","import { useEffect, useState } from 'preact/hooks'\nimport { Ad, ChangelogList, ErrorPanel } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport type { Change } from '../services'\nimport { getChangelogs } from '../services'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Changelog({}: Props) {\n\tconst { locale } = useLocale()\n\tconst [error, setError] = useState<Error | null>(null)\n\tuseTitle(locale('title.changelog'))\n\n\tconst [changelogs, setChangelogs] = useState<Change[]>([])\n\tuseEffect(() => {\n\t\tgetChangelogs()\n\t\t\t.then(changelogs => setChangelogs(changelogs))\n\t\t\t.catch(e => { console.error(e); setError(e) })\n\t}, [])\n\n\n\treturn <main>\n\t\t<Ad type=\"text\" id=\"changelog\" />\n\t\t{error && <ErrorPanel error={error} onDismiss={() => setError(null)} />}\n\t\t<div class=\"changelog\">\n\t\t\t<ChangelogList changes={changelogs} defaultOrder=\"desc\" />\n\t\t</div>\n\t</main>\n}\n","import { DataModel, Path } from '@mcschema/core'\nimport { getCurrentUrl, route } from 'preact-router'\nimport { useEffect, useErrorBoundary, useMemo, useRef, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Analytics } from '../Analytics'\nimport { Ad, Btn, BtnMenu, ErrorPanel, HasPreview, Octicon, PreviewPanel, SearchList, SourcePanel, TextInput, Tree } from '../components'\nimport { useLocale, useProject, useTitle, useVersion } from '../contexts'\nimport { useActiveTimeout, useModel, useSearchParam } from '../hooks'\nimport { getOutput } from '../schema/transformOutput'\nimport type { BlockStateRegistry, VersionId } from '../services'\nimport { checkVersion, fetchPreset, getBlockStates, getCollections, getModel, getSnippet, shareSnippet, SHARE_KEY } from '../services'\nimport { Store } from '../Store'\nimport { cleanUrl, deepEqual, getGenerator } from '../Utils'\n\ninterface Props {\n\tdefault?: true,\n}\nexport function Generator({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion, changeTargetVersion } = useVersion()\n\tconst { project, file, updateFile, openFile, closeFile } = useProject()\n\tconst [error, setError] = useState<Error | string | null>(null)\n\tconst [errorBoundary, errorRetry] = useErrorBoundary()\n\tif (errorBoundary) {\n\t\terrorBoundary.message = `Something went wrong rendering the generator: ${errorBoundary.message}`\n\t\treturn <main><ErrorPanel error={errorBoundary} onDismiss={errorRetry} /></main>\n\t}\n\n\tconst gen = getGenerator(getCurrentUrl())\n\tif (!gen) {\n\t\treturn <main><ErrorPanel error={`Cannot find generator \"${getCurrentUrl()}\"`} /></main>\n\t}\n\n\tconst allowedVersions = useMemo(() => {\n\t\treturn config.versions\n\t\t\t.filter(v => checkVersion(v.id, gen.minVersion, gen.maxVersion))\n\t\t\t.map(v => v.id as VersionId)\n\t\t\t.reverse()\n\t}, [gen.minVersion, gen.maxVersion])\n\n\tuseTitle(locale('title.generator', locale(gen.id)), allowedVersions)\n\n\tif (!checkVersion(version, gen.minVersion)) {\n\t\tsetError(`The minimum version for this generator is ${gen.minVersion}`)\n\t}\n\tif (!checkVersion(version, undefined, gen.maxVersion)) {\n\t\tsetError(`This generator is not available in versions above ${gen.maxVersion}`)\n\t}\n\n\tconst [currentPreset, setCurrentPreset] = useSearchParam('preset')\n\tconst [sharedSnippetId, setSharedSnippetId] = useSearchParam(SHARE_KEY)\n\tconst ignoreChange = useRef(false)\n\tuseEffect(() => {\n\t\tif (model && currentPreset) {\n\t\t\tloadPreset(currentPreset).then(preset => {\n\t\t\t\tignoreChange.current = true\n\t\t\t\tmodel.reset(DataModel.wrapLists(preset), false)\n\t\t\t\tsetSharedSnippetId(undefined)\n\t\t\t})\n\t\t} else if (model && sharedSnippetId) {\n\t\t\tgetSnippet(sharedSnippetId).then(s => loadSnippet(model, s))\n\t\t}\n\t}, [currentPreset, sharedSnippetId])\n\n\tconst loadSnippet = (model: DataModel, snippet: any) => {\n\t\tif (snippet.version && snippet.version !== version) {\n\t\t\tchangeVersion(snippet.version, false)\n\t\t}\n\t\tif (snippet.type && snippet.type !== gen.id) {\n\t\t\tconst snippetGen = config.generators.find(g => g.id === snippet.type)\n\t\t\tif (snippetGen) {\n\t\t\t\troute(`${cleanUrl(snippetGen.url)}?${SHARE_KEY}=${snippet.id}`)\n\t\t\t}\n\t\t}\n\t\tif (snippet.show_preview && !previewShown) {\n\t\t\tsetPreviewShown(true)\n\t\t\tsetSourceShown(false)\n\t\t}\n\t\tmodel.reset(DataModel.wrapLists(snippet.data), false)\n\t}\n\n\tconst backup = useMemo(() => Store.getBackup(gen.id), [gen.id])\n\n\tconst loadBackup = () => {\n\t\tif (backup !== undefined) {\n\t\t\tmodel?.reset(DataModel.wrapLists(backup), false)\n\t\t}\n\t}\n\n\tconst [model, setModel] = useState<DataModel | null>(null)\n\tconst [blockStates, setBlockStates] = useState<BlockStateRegistry | null>(null)\n\tuseEffect(() => {\n\t\tsetError(null)\n\t\tsetModel(null)\n\t\tgetBlockStates(version)\n\t\t\t.then(b => setBlockStates(b))\n\t\tgetModel(version, gen.id)\n\t\t\t.then(async m => {\n\t\t\t\tAnalytics.setGenerator(gen.id)\n\t\t\t\tif (currentPreset) {\n\t\t\t\t\tconst preset = await loadPreset(currentPreset)\n\t\t\t\t\tm.reset(DataModel.wrapLists(preset), false)\n\t\t\t\t} else if (sharedSnippetId) {\n\t\t\t\t\tconst snippet = await getSnippet(sharedSnippetId)\n\t\t\t\t\tloadSnippet(m, snippet)\n\t\t\t\t}\n\t\t\t\tsetModel(m)\n\t\t\t})\n\t\t\t.catch(e => { console.error(e); setError(e) })\n\t}, [version, gen.id])\n\n\tconst [dirty, setDirty] = useState(false)\n\tuseModel(model, () => {\n\t\tif (!ignoreChange.current) {\n\t\t\tsetCurrentPreset(undefined, true)\n\t\t\tsetSharedSnippetId(undefined, true)\n\t\t}\n\t\tignoreChange.current = false\n\t\tStore.setBackup(gen.id, DataModel.unwrapLists(model?.data))\n\t\tsetError(null)\n\t\tsetDirty(true)\n\t}, [gen.id, setCurrentPreset, setSharedSnippetId])\n\n\tconst [fileRename, setFileRename] = useState('')\n\tconst [fileSaved, doSave] = useActiveTimeout()\n\tconst [fileError, doFileError] = useActiveTimeout()\n\n\tconst doFileRename = () => {\n\t\tif (fileRename !== file?.id && fileRename && model && blockStates) {\n\t\t\tconst data = getOutput(model, blockStates)\n\t\t\tconst success = updateFile(gen.id, file?.id, { id: fileRename, data })\n\t\t\tif (success) {\n\t\t\t\tdoSave()\n\t\t\t} else {\n\t\t\t\tdoFileError()\n\t\t\t\tif (file) {\n\t\t\t\t\tsetFileRename(file?.id)\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (file) {\n\t\t\tsetFileRename(file?.id)\n\t\t}\n\t}\n\n\tconst deleteFile = () => {\n\t\tif (file) {\n\t\t\tupdateFile(gen.id, file.id, {})\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tif (file) {\n\t\t\tsetFileRename(file.id)\n\t\t}\n\t}, [file])\n\n\tuseEffect(() => {\n\t\tif (model) {\n\t\t\tsetFileRename(file?.id ?? '')\n\t\t\tif (file && gen.id === file.type) {\n\t\t\t\tmodel.reset(DataModel.wrapLists(file.data))\n\t\t\t}\n\t\t\tsetDirty(false)\n\t\t}\n\t}, [file, model])\n\n\tconst reset = () => {\n\t\tAnalytics.generatorEvent('reset')\n\t\tmodel?.reset(DataModel.wrapLists(model.schema.default()), true)\n\t}\n\tconst undo = (e: MouseEvent) => {\n\t\te.stopPropagation()\n\t\tAnalytics.generatorEvent('undo', 'Menu')\n\t\tmodel?.undo()\n\t}\n\tconst redo = (e: MouseEvent) => {\n\t\te.stopPropagation()\n\t\tAnalytics.generatorEvent('redo', 'Menu')\n\t\tmodel?.redo()\n\t}\n\n\tconst onKeyUp = (e: KeyboardEvent) => {\n\t\tif (e.ctrlKey && e.key === 'z') {\n\t\t\tAnalytics.generatorEvent('undo', 'Hotkey')\n\t\t\tmodel?.undo()\n\t\t} else if (e.ctrlKey && e.key === 'y') {\n\t\t\tAnalytics.generatorEvent('redo', 'Hotkey')\n\t\t\tmodel?.redo()\n\t\t}\n\t}\n\tconst onKeyDown = (e: KeyboardEvent) => {\n\t\tif (e.ctrlKey && e.key === 's') {\n\t\t\te.preventDefault()\n\t\t\tif (model && blockStates && file) {\n\t\t\t\tAnalytics.generatorEvent('save', 'Hotkey')\n\t\t\t\tconst data = getOutput(model, blockStates)\n\t\t\t\tupdateFile(gen.id, file?.id, { id: file?.id, data })\n\t\t\t\tsetDirty(false)\n\t\t\t\tdoSave()\n\t\t\t}\n\t\t}\n\t}\n\tuseEffect(() => {\n\t\tdocument.addEventListener('keyup', onKeyUp)\n\t\tdocument.addEventListener('keydown', onKeyDown)\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('keyup', onKeyUp)\n\t\t\tdocument.removeEventListener('keydown', onKeyDown)\n\t\t}\n\t}, [model, blockStates, file])\n\n\tconst [presets, setPresets] = useState<string[]>([])\n\tuseEffect(() => {\n\t\tgetCollections(version).then(collections => {\n\t\t\tsetPresets(collections.get(gen.id).map(p => p.slice(10)))\n\t\t})\n\t\t\t.catch(e => { console.error(e); setError(e) })\n\t}, [version, gen.id])\n\n\tconst selectPreset = (id: string) => {\n\t\tAnalytics.generatorEvent('load-preset', id)\n\t\tsetSharedSnippetId(undefined, true)\n\t\tchangeTargetVersion(version, true)\n\t\tsetCurrentPreset(id)\n\t}\n\n\tconst loadPreset = async (id: string) => {\n\t\ttry {\n\t\t\tconst preset = await fetchPreset(version, gen.path ?? gen.id, id)\n\t\t\tconst seed = model?.get(new Path(['generator', 'seed']))\n\t\t\tif (preset?.generator?.seed !== undefined && seed !== undefined) {\n\t\t\t\tpreset.generator.seed = seed\n\t\t\t\tif (preset.generator.biome_source?.seed !== undefined) {\n\t\t\t\t\tpreset.generator.biome_source.seed = seed\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn preset\n\t\t} catch (e) {\n\t\t\tsetError(`Cannot load preset ${id} in ${version}`)\n\t\t\tsetCurrentPreset(undefined, true)\n\t\t}\n\t}\n\n\tconst selectVersion = (version: VersionId) => {\n\t\tsetSharedSnippetId(undefined, true)\n\t\tchangeVersion(version)\n\t}\n\n\tconst [shareUrl, setShareUrl] = useState<string | undefined>(undefined)\n\tconst [shareShown, setShareShown] = useState(false)\n\tconst [shareCopyActive, shareCopySuccess] = useActiveTimeout({ cooldown: 3000 })\n\tconst share = () => {\n\t\tif (shareShown) {\n\t\t\tsetShareShown(false)\n\t\t\treturn\n\t\t}\n\t\tif (currentPreset) {\n\t\t\tsetShareUrl(`${location.origin}/${gen.url}/?version=${version}&preset=${currentPreset}`)\n\t\t\tsetShareShown(true)\n\t\t\tcopySharedId()\n\t\t} else if (model && blockStates) {\n\t\t\tconst output = getOutput(model, blockStates)\n\t\t\tif (deepEqual(output, model.schema.default())) {\n\t\t\t\tsetShareUrl(`${location.origin}/${gen.url}/?version=${version}`)\n\t\t\t\tsetShareShown(true)\n\t\t\t} else {\n\t\t\t\tshareSnippet(gen.id, version, output, previewShown)\n\t\t\t\t\t.then(url => {\n\t\t\t\t\t\tsetShareUrl(url)\n\t\t\t\t\t\tsetShareShown(true)\n\t\t\t\t\t})\n\t\t\t\t\t.catch(e => {\n\t\t\t\t\t\tif (e instanceof Error) {\n\t\t\t\t\t\t\tsetError(e)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\tconst copySharedId = () => {\n\t\tnavigator.clipboard.writeText(shareUrl ?? '')\n\t\tshareCopySuccess()\n\t}\n\tuseEffect(() => {\n\t\tif (!shareCopyActive) {\n\t\t\tsetShareUrl(undefined)\n\t\t\tsetShareShown(false)\n\t\t}\n\t}, [shareCopyActive])\n\n\tconst [sourceShown, setSourceShown] = useState(window.innerWidth > 820)\n\tconst [doCopy, setCopy] = useState(0)\n\tconst [doDownload, setDownload] = useState(0)\n\tconst [doImport, setImport] = useState(0)\n\n\tconst copySource = () => {\n\t\tAnalytics.generatorEvent('copy')\n\t\tsetCopy(doCopy + 1)\n\t}\n\tconst downloadSource = () => {\n\t\tAnalytics.generatorEvent('download')\n\t\tsetDownload(doDownload + 1)\n\t}\n\tconst importSource = () => {\n\t\tAnalytics.generatorEvent('import')\n\t\tsetSourceShown(true)\n\t\tsetImport(doImport + 1)\n\t}\n\tconst toggleSource = () => {\n\t\tAnalytics.generatorEvent('toggle-output', !sourceShown ? 'visible' : 'hidden')\n\t\tsetSourceShown(!sourceShown)\n\t\tsetCopy(0)\n\t\tsetDownload(0)\n\t\tsetImport(0)\n\t}\n\n\tconst [copyActive, copySuccess] = useActiveTimeout()\n\n\tconst [previewShown, setPreviewShown] = useState(false)\n\tconst hasPreview = HasPreview.includes(gen.id) && !(gen.id === 'worldgen/configured_feature' && checkVersion(version, '1.18'))\n\tif (previewShown && !hasPreview) setPreviewShown(false)\n\tlet actionsShown = 2\n\tif (hasPreview) actionsShown += 1\n\tif (sourceShown) actionsShown += 2\n\n\tconst togglePreview = () => {\n\t\tAnalytics.generatorEvent('toggle-preview', !previewShown ? 'visible' : 'hidden')\n\t\tsetPreviewShown(!previewShown)\n\t\tif (!previewShown && sourceShown) {\n\t\t\tsetSourceShown(false)\n\t\t}\n\t}\n\n\treturn <>\n\t\t<main class={previewShown ? 'has-preview' : ''}>\n\t\t\t<Ad id=\"data-pack-generator\" type=\"text\" />\n\t\t\t<div class=\"controls\">\n\t\t\t\t<div class={`project-controls ${file && 'has-file'}`}>\n\t\t\t\t\t<div class=\"btn-row\">\n\t\t\t\t\t\t<BtnMenu icon=\"repo\" label={project.name} relative={false}>\n\t\t\t\t\t\t\t<Btn icon=\"arrow_left\" label={locale('project.go_to')} onClick={() => route('/project')} />\n\t\t\t\t\t\t\t{file && <Btn icon=\"file\" label={locale('project.new_file')} onClick={closeFile} />}\n\t\t\t\t\t\t\t{backup !== undefined && <Btn icon=\"history\" label={locale('restore_backup')} onClick={loadBackup} />}\n\t\t\t\t\t\t\t<SearchList searchPlaceholder={locale(project.name === 'Drafts' ? 'project.search_drafts' : 'project.search')} noResults={locale('project.no_files')} values={project.files.filter(f => f.type === gen.id).map(f => f.id)} onSelect={(id) => openFile(gen.id, id)} />\n\t\t\t\t\t\t</BtnMenu>\n\t\t\t\t\t\t<TextInput class=\"btn btn-input\" placeholder={locale('project.unsaved_file')} value={fileRename} onChange={setFileRename} onEnter={doFileRename} onBlur={doFileRename} />\n\t\t\t\t\t\t{file && <Btn icon=\"trashcan\" tooltip={locale('project.delete_file')} onClick={deleteFile} />}\n\t\t\t\t\t</div>\n\t\t\t\t\t{dirty ? <div class=\"status-icon\">{Octicon.dot_fill}</div>\n\t\t\t\t\t\t: fileSaved ? <div class=\"status-icon active\">{Octicon.check}</div>\n\t\t\t\t\t\t\t: fileError && <div class=\"status-icon danger\">{Octicon.x}</div> }\n\t\t\t\t</div>\n\t\t\t\t<div class=\"generator-controls\">\n\t\t\t\t\t<Btn icon=\"upload\" label={locale('import')} onClick={importSource} />\n\t\t\t\t\t<BtnMenu icon=\"archive\" label={locale('presets')} relative={false}>\n\t\t\t\t\t\t<SearchList searchPlaceholder={locale('search')} noResults={locale('no_presets')} values={presets} onSelect={selectPreset}/>\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t\t<BtnMenu icon=\"tag\" label={version} tooltip={locale('switch_version')} data-cy=\"version-switcher\">\n\t\t\t\t\t\t{allowedVersions.map(v =>\n\t\t\t\t\t\t\t<Btn label={v} active={v === version} onClick={() => selectVersion(v)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t\t<BtnMenu icon=\"kebab_horizontal\" tooltip={locale('more')}>\n\t\t\t\t\t\t<Btn icon=\"history\" label={locale('reset')} onClick={reset} />\n\t\t\t\t\t\t<Btn icon=\"arrow_left\" label={locale('undo')} onClick={undo} />\n\t\t\t\t\t\t<Btn icon=\"arrow_right\" label={locale('redo')} onClick={redo} />\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t{error && <ErrorPanel error={error} onDismiss={() => setError(null)} />}\n\t\t\t<Tree {...{model, version, blockStates}} onError={setError} />\n\t\t</main>\n\t\t<div class=\"popup-actions\" style={`--offset: -${8 + actionsShown * 50}px;`}>\n\t\t\t<div class={`popup-action action-preview${hasPreview ? ' shown' : ''} tooltipped tip-nw`} aria-label={locale(previewShown ? 'hide_preview' : 'show_preview')} onClick={togglePreview}>\n\t\t\t\t{previewShown ? Octicon.x_circle : Octicon.play}\n\t\t\t</div>\n\t\t\t<div class={'popup-action action-share shown tooltipped tip-nw'} aria-label={locale('share')} onClick={share}>\n\t\t\t\t{Octicon.link}\n\t\t\t</div>\n\t\t\t<div class={`popup-action action-download${sourceShown ? ' shown' : ''} tooltipped tip-nw`} aria-label={locale('download')} onClick={downloadSource}>\n\t\t\t\t{Octicon.download}\n\t\t\t</div>\n\t\t\t<div class={`popup-action action-copy${sourceShown ? ' shown' : ''}${copyActive ? ' active' : ''} tooltipped tip-nw`} aria-label={locale(copyActive ? 'copied' : 'copy')} onClick={copySource}>\n\t\t\t\t{copyActive ? Octicon.check : Octicon.clippy}\n\t\t\t</div>\n\t\t\t<div class={'popup-action action-code shown tooltipped tip-nw'} aria-label={locale(sourceShown ? 'hide_output' : 'show_output')} onClick={toggleSource}>\n\t\t\t\t{sourceShown ? Octicon.chevron_right : Octicon.code}\n\t\t\t</div>\n\t\t</div>\n\t\t<div class={`popup-preview${previewShown ? ' shown' : ''}`}>\n\t\t\t<PreviewPanel {...{model, version, id: gen.id}} shown={previewShown} onError={setError} />\n\t\t</div>\n\t\t<div class={`popup-source${sourceShown ? ' shown' : ''}`}>\n\t\t\t<SourcePanel {...{model, blockStates, doCopy, doDownload, doImport}} name={gen.schema ?? 'data'} copySuccess={copySuccess} onError={setError} />\n\t\t</div>\n\t\t<div class={`popup-share${shareShown ? ' shown' : ''}`}>\n\t\t\t<TextInput value={shareUrl} readonly />\n\t\t\t<Btn icon={shareCopyActive ? 'check' : 'clippy'} onClick={copySharedId} tooltip={locale(shareCopyActive ? 'copied' : 'copy_share')} tooltipLoc=\"nw\" active={shareCopyActive} showTooltip={shareCopyActive} />\n\t\t</div>\n\t</>\n}\n","var deepFreezeEs6 = {exports: {}};\n\nfunction deepFreeze(obj) {\n if (obj instanceof Map) {\n obj.clear = obj.delete = obj.set = function () {\n throw new Error('map is read-only');\n };\n } else if (obj instanceof Set) {\n obj.add = obj.clear = obj.delete = function () {\n throw new Error('set is read-only');\n };\n }\n\n // Freeze self\n Object.freeze(obj);\n\n Object.getOwnPropertyNames(obj).forEach(function (name) {\n var prop = obj[name];\n\n // Freeze prop if it is an object\n if (typeof prop == 'object' && !Object.isFrozen(prop)) {\n deepFreeze(prop);\n }\n });\n\n return obj;\n}\n\ndeepFreezeEs6.exports = deepFreeze;\ndeepFreezeEs6.exports.default = deepFreeze;\n\nvar deepFreeze$1 = deepFreezeEs6.exports;\n\n/** @typedef {import('highlight.js').CallbackResponse} CallbackResponse */\n/** @typedef {import('highlight.js').CompiledMode} CompiledMode */\n/** @implements CallbackResponse */\n\nclass Response {\n /**\n * @param {CompiledMode} mode\n */\n constructor(mode) {\n // eslint-disable-next-line no-undefined\n if (mode.data === undefined) mode.data = {};\n\n this.data = mode.data;\n this.isMatchIgnored = false;\n }\n\n ignoreMatch() {\n this.isMatchIgnored = true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction escapeHTML(value) {\n return value\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n\n/**\n * performs a shallow merge of multiple objects into one\n *\n * @template T\n * @param {T} original\n * @param {Record<string,any>[]} objects\n * @returns {T} a single new object\n */\nfunction inherit$1(original, ...objects) {\n /** @type Record<string,any> */\n const result = Object.create(null);\n\n for (const key in original) {\n result[key] = original[key];\n }\n objects.forEach(function(obj) {\n for (const key in obj) {\n result[key] = obj[key];\n }\n });\n return /** @type {T} */ (result);\n}\n\n/**\n * @typedef {object} Renderer\n * @property {(text: string) => void} addText\n * @property {(node: Node) => void} openNode\n * @property {(node: Node) => void} closeNode\n * @property {() => string} value\n */\n\n/** @typedef {{kind?: string, sublanguage?: boolean}} Node */\n/** @typedef {{walk: (r: Renderer) => void}} Tree */\n/** */\n\nconst SPAN_CLOSE = '</span>';\n\n/**\n * Determines if a node needs to be wrapped in <span>\n *\n * @param {Node} node */\nconst emitsWrappingTags = (node) => {\n return !!node.kind;\n};\n\n/**\n *\n * @param {string} name\n * @param {{prefix:string}} options\n */\nconst expandScopeName = (name, { prefix }) => {\n if (name.includes(\".\")) {\n const pieces = name.split(\".\");\n return [\n `${prefix}${pieces.shift()}`,\n ...(pieces.map((x, i) => `${x}${\"_\".repeat(i + 1)}`))\n ].join(\" \");\n }\n return `${prefix}${name}`;\n};\n\n/** @type {Renderer} */\nclass HTMLRenderer {\n /**\n * Creates a new HTMLRenderer\n *\n * @param {Tree} parseTree - the parse tree (must support `walk` API)\n * @param {{classPrefix: string}} options\n */\n constructor(parseTree, options) {\n this.buffer = \"\";\n this.classPrefix = options.classPrefix;\n parseTree.walk(this);\n }\n\n /**\n * Adds texts to the output stream\n *\n * @param {string} text */\n addText(text) {\n this.buffer += escapeHTML(text);\n }\n\n /**\n * Adds a node open to the output stream (if needed)\n *\n * @param {Node} node */\n openNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n let scope = node.kind;\n if (node.sublanguage) {\n scope = `language-${scope}`;\n } else {\n scope = expandScopeName(scope, { prefix: this.classPrefix });\n }\n this.span(scope);\n }\n\n /**\n * Adds a node close to the output stream (if needed)\n *\n * @param {Node} node */\n closeNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n this.buffer += SPAN_CLOSE;\n }\n\n /**\n * returns the accumulated buffer\n */\n value() {\n return this.buffer;\n }\n\n // helpers\n\n /**\n * Builds a span element\n *\n * @param {string} className */\n span(className) {\n this.buffer += `<span class=\"${className}\">`;\n }\n}\n\n/** @typedef {{kind?: string, sublanguage?: boolean, children: Node[]} | string} Node */\n/** @typedef {{kind?: string, sublanguage?: boolean, children: Node[]} } DataNode */\n/** @typedef {import('highlight.js').Emitter} Emitter */\n/** */\n\nclass TokenTree {\n constructor() {\n /** @type DataNode */\n this.rootNode = { children: [] };\n this.stack = [this.rootNode];\n }\n\n get top() {\n return this.stack[this.stack.length - 1];\n }\n\n get root() { return this.rootNode; }\n\n /** @param {Node} node */\n add(node) {\n this.top.children.push(node);\n }\n\n /** @param {string} kind */\n openNode(kind) {\n /** @type Node */\n const node = { kind, children: [] };\n this.add(node);\n this.stack.push(node);\n }\n\n closeNode() {\n if (this.stack.length > 1) {\n return this.stack.pop();\n }\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n\n closeAllNodes() {\n while (this.closeNode());\n }\n\n toJSON() {\n return JSON.stringify(this.rootNode, null, 4);\n }\n\n /**\n * @typedef { import(\"./html_renderer\").Renderer } Renderer\n * @param {Renderer} builder\n */\n walk(builder) {\n // this does not\n return this.constructor._walk(builder, this.rootNode);\n // this works\n // return TokenTree._walk(builder, this.rootNode);\n }\n\n /**\n * @param {Renderer} builder\n * @param {Node} node\n */\n static _walk(builder, node) {\n if (typeof node === \"string\") {\n builder.addText(node);\n } else if (node.children) {\n builder.openNode(node);\n node.children.forEach((child) => this._walk(builder, child));\n builder.closeNode(node);\n }\n return builder;\n }\n\n /**\n * @param {Node} node\n */\n static _collapse(node) {\n if (typeof node === \"string\") return;\n if (!node.children) return;\n\n if (node.children.every(el => typeof el === \"string\")) {\n // node.text = node.children.join(\"\");\n // delete node.children;\n node.children = [node.children.join(\"\")];\n } else {\n node.children.forEach((child) => {\n TokenTree._collapse(child);\n });\n }\n }\n}\n\n/**\n Currently this is all private API, but this is the minimal API necessary\n that an Emitter must implement to fully support the parser.\n\n Minimal interface:\n\n - addKeyword(text, kind)\n - addText(text)\n - addSublanguage(emitter, subLanguageName)\n - finalize()\n - openNode(kind)\n - closeNode()\n - closeAllNodes()\n - toHTML()\n\n*/\n\n/**\n * @implements {Emitter}\n */\nclass TokenTreeEmitter extends TokenTree {\n /**\n * @param {*} options\n */\n constructor(options) {\n super();\n this.options = options;\n }\n\n /**\n * @param {string} text\n * @param {string} kind\n */\n addKeyword(text, kind) {\n if (text === \"\") { return; }\n\n this.openNode(kind);\n this.addText(text);\n this.closeNode();\n }\n\n /**\n * @param {string} text\n */\n addText(text) {\n if (text === \"\") { return; }\n\n this.add(text);\n }\n\n /**\n * @param {Emitter & {root: DataNode}} emitter\n * @param {string} name\n */\n addSublanguage(emitter, name) {\n /** @type DataNode */\n const node = emitter.root;\n node.kind = name;\n node.sublanguage = true;\n this.add(node);\n }\n\n toHTML() {\n const renderer = new HTMLRenderer(this, this.options);\n return renderer.value();\n }\n\n finalize() {\n return true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction anyNumberOfTimes(re) {\n return concat('(?:', re, ')*');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n return concat('(?:', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * @param { Array<string | RegExp | Object> } args\n * @returns {object}\n */\nfunction stripOptionsFromArgs(args) {\n const opts = args[args.length - 1];\n\n if (typeof opts === 'object' && opts.constructor === Object) {\n args.splice(args.length - 1, 1);\n return opts;\n } else {\n return {};\n }\n}\n\n/** @typedef { {capture?: boolean} } RegexEitherOptions */\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args\n * @returns {string}\n */\nfunction either(...args) {\n /** @type { object & {capture?: boolean} } */\n const opts = stripOptionsFromArgs(args);\n const joined = '('\n + (opts.capture ? \"\" : \"?:\")\n + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/**\n * @param {RegExp | string} re\n * @returns {number}\n */\nfunction countMatchGroups(re) {\n return (new RegExp(re.toString() + '|')).exec('').length - 1;\n}\n\n/**\n * Does lexeme start with a regular expression match at the beginning\n * @param {RegExp} re\n * @param {string} lexeme\n */\nfunction startsWith(re, lexeme) {\n const match = re && re.exec(lexeme);\n return match && match.index === 0;\n}\n\n// BACKREF_RE matches an open parenthesis or backreference. To avoid\n// an incorrect parse, it additionally matches the following:\n// - [...] elements, where the meaning of parentheses and escapes change\n// - other escape sequences, so we do not misparse escape sequences as\n// interesting elements\n// - non-matching or lookahead parentheses, which do not capture. These\n// follow the '(' with a '?'.\nconst BACKREF_RE = /\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./;\n\n// **INTERNAL** Not intended for outside usage\n// join logically computes regexps.join(separator), but fixes the\n// backreferences so they continue to match.\n// it also places each individual regular expression into it's own\n// match group, keeping track of the sequencing of those match groups\n// is currently an exercise for the caller. :-)\n/**\n * @param {(string | RegExp)[]} regexps\n * @param {{joinWith: string}} opts\n * @returns {string}\n */\nfunction _rewriteBackreferences(regexps, { joinWith }) {\n let numCaptures = 0;\n\n return regexps.map((regex) => {\n numCaptures += 1;\n const offset = numCaptures;\n let re = source(regex);\n let out = '';\n\n while (re.length > 0) {\n const match = BACKREF_RE.exec(re);\n if (!match) {\n out += re;\n break;\n }\n out += re.substring(0, match.index);\n re = re.substring(match.index + match[0].length);\n if (match[0][0] === '\\\\' && match[1]) {\n // Adjust the backreference.\n out += '\\\\' + String(Number(match[1]) + offset);\n } else {\n out += match[0];\n if (match[0] === '(') {\n numCaptures++;\n }\n }\n }\n return out;\n }).map(re => `(${re})`).join(joinWith);\n}\n\n/** @typedef {import('highlight.js').Mode} Mode */\n/** @typedef {import('highlight.js').ModeCallback} ModeCallback */\n\n// Common regexps\nconst MATCH_NOTHING_RE = /\\b\\B/;\nconst IDENT_RE = '[a-zA-Z]\\\\w*';\nconst UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\\\w*';\nconst NUMBER_RE = '\\\\b\\\\d+(\\\\.\\\\d+)?';\nconst C_NUMBER_RE = '(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)'; // 0x..., 0..., decimal, float\nconst BINARY_NUMBER_RE = '\\\\b(0b[01]+)'; // 0b...\nconst RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~';\n\n/**\n* @param { Partial<Mode> & {binary?: string | RegExp} } opts\n*/\nconst SHEBANG = (opts = {}) => {\n const beginShebang = /^#![ ]*\\//;\n if (opts.binary) {\n opts.begin = concat(\n beginShebang,\n /.*\\b/,\n opts.binary,\n /\\b.*/);\n }\n return inherit$1({\n scope: 'meta',\n begin: beginShebang,\n end: /$/,\n relevance: 0,\n /** @type {ModeCallback} */\n \"on:begin\": (m, resp) => {\n if (m.index !== 0) resp.ignoreMatch();\n }\n }, opts);\n};\n\n// Common modes\nconst BACKSLASH_ESCAPE = {\n begin: '\\\\\\\\[\\\\s\\\\S]', relevance: 0\n};\nconst APOS_STRING_MODE = {\n scope: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst QUOTE_STRING_MODE = {\n scope: 'string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst PHRASAL_WORDS_MODE = {\n begin: /\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/\n};\n/**\n * Creates a comment mode\n *\n * @param {string | RegExp} begin\n * @param {string | RegExp} end\n * @param {Mode | {}} [modeOptions]\n * @returns {Partial<Mode>}\n */\nconst COMMENT = function(begin, end, modeOptions = {}) {\n const mode = inherit$1(\n {\n scope: 'comment',\n begin,\n end,\n contains: []\n },\n modeOptions\n );\n mode.contains.push({\n scope: 'doctag',\n // hack to avoid the space from being included. the space is necessary to\n // match here to prevent the plain text rule below from gobbling up doctags\n begin: '[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',\n end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,\n excludeBegin: true,\n relevance: 0\n });\n const ENGLISH_WORD = either(\n // list of common 1 and 2 letter words in English\n \"I\",\n \"a\",\n \"is\",\n \"so\",\n \"us\",\n \"to\",\n \"at\",\n \"if\",\n \"in\",\n \"it\",\n \"on\",\n // note: this is not an exhaustive list of contractions, just popular ones\n /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, // contractions - can't we'd they're let's, etc\n /[A-Za-z]+[-][a-z]+/, // `no-way`, etc.\n /[A-Za-z][a-z]{2,}/ // allow capitalized words at beginning of sentences\n );\n // looking like plain text, more likely to be a comment\n mode.contains.push(\n {\n // TODO: how to include \", (, ) without breaking grammars that use these for\n // comment delimiters?\n // begin: /[ ]+([()\"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()\":]?([.][ ]|[ ]|\\))){3}/\n // ---\n\n // this tries to find sequences of 3 english words in a row (without any\n // \"programming\" type syntax) this gives us a strong signal that we've\n // TRULY found a comment - vs perhaps scanning with the wrong language.\n // It's possible to find something that LOOKS like the start of the\n // comment - but then if there is no readable text - good chance it is a\n // false match and not a comment.\n //\n // for a visual example please see:\n // https://github.com/highlightjs/highlight.js/issues/2827\n\n begin: concat(\n /[ ]+/, // necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */\n '(',\n ENGLISH_WORD,\n /[.]?[:]?([.][ ]|[ ])/,\n '){3}') // look for 3 words in a row\n }\n );\n return mode;\n};\nconst C_LINE_COMMENT_MODE = COMMENT('//', '$');\nconst C_BLOCK_COMMENT_MODE = COMMENT('/\\\\*', '\\\\*/');\nconst HASH_COMMENT_MODE = COMMENT('#', '$');\nconst NUMBER_MODE = {\n scope: 'number',\n begin: NUMBER_RE,\n relevance: 0\n};\nconst C_NUMBER_MODE = {\n scope: 'number',\n begin: C_NUMBER_RE,\n relevance: 0\n};\nconst BINARY_NUMBER_MODE = {\n scope: 'number',\n begin: BINARY_NUMBER_RE,\n relevance: 0\n};\nconst REGEXP_MODE = {\n // this outer rule makes sure we actually have a WHOLE regex and not simply\n // an expression such as:\n //\n // 3 / something\n //\n // (which will then blow up when regex's `illegal` sees the newline)\n begin: /(?=\\/[^/\\n]*\\/)/,\n contains: [{\n scope: 'regexp',\n begin: /\\//,\n end: /\\/[gimuy]*/,\n illegal: /\\n/,\n contains: [\n BACKSLASH_ESCAPE,\n {\n begin: /\\[/,\n end: /\\]/,\n relevance: 0,\n contains: [BACKSLASH_ESCAPE]\n }\n ]\n }]\n};\nconst TITLE_MODE = {\n scope: 'title',\n begin: IDENT_RE,\n relevance: 0\n};\nconst UNDERSCORE_TITLE_MODE = {\n scope: 'title',\n begin: UNDERSCORE_IDENT_RE,\n relevance: 0\n};\nconst METHOD_GUARD = {\n // excludes method names from keyword processing\n begin: '\\\\.\\\\s*' + UNDERSCORE_IDENT_RE,\n relevance: 0\n};\n\n/**\n * Adds end same as begin mechanics to a mode\n *\n * Your mode must include at least a single () match group as that first match\n * group is what is used for comparison\n * @param {Partial<Mode>} mode\n */\nconst END_SAME_AS_BEGIN = function(mode) {\n return Object.assign(mode,\n {\n /** @type {ModeCallback} */\n 'on:begin': (m, resp) => { resp.data._beginMatch = m[1]; },\n /** @type {ModeCallback} */\n 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); }\n });\n};\n\nvar MODES = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MATCH_NOTHING_RE: MATCH_NOTHING_RE,\n IDENT_RE: IDENT_RE,\n UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE,\n NUMBER_RE: NUMBER_RE,\n C_NUMBER_RE: C_NUMBER_RE,\n BINARY_NUMBER_RE: BINARY_NUMBER_RE,\n RE_STARTERS_RE: RE_STARTERS_RE,\n SHEBANG: SHEBANG,\n BACKSLASH_ESCAPE: BACKSLASH_ESCAPE,\n APOS_STRING_MODE: APOS_STRING_MODE,\n QUOTE_STRING_MODE: QUOTE_STRING_MODE,\n PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE,\n COMMENT: COMMENT,\n C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE,\n C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE,\n HASH_COMMENT_MODE: HASH_COMMENT_MODE,\n NUMBER_MODE: NUMBER_MODE,\n C_NUMBER_MODE: C_NUMBER_MODE,\n BINARY_NUMBER_MODE: BINARY_NUMBER_MODE,\n REGEXP_MODE: REGEXP_MODE,\n TITLE_MODE: TITLE_MODE,\n UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE,\n METHOD_GUARD: METHOD_GUARD,\n END_SAME_AS_BEGIN: END_SAME_AS_BEGIN\n});\n\n/**\n@typedef {import('highlight.js').CallbackResponse} CallbackResponse\n@typedef {import('highlight.js').CompilerExt} CompilerExt\n*/\n\n// Grammar extensions / plugins\n// See: https://github.com/highlightjs/highlight.js/issues/2833\n\n// Grammar extensions allow \"syntactic sugar\" to be added to the grammar modes\n// without requiring any underlying changes to the compiler internals.\n\n// `compileMatch` being the perfect small example of now allowing a grammar\n// author to write `match` when they desire to match a single expression rather\n// than being forced to use `begin`. The extension then just moves `match` into\n// `begin` when it runs. Ie, no features have been added, but we've just made\n// the experience of writing (and reading grammars) a little bit nicer.\n\n// ------\n\n// TODO: We need negative look-behind support to do this properly\n/**\n * Skip a match if it has a preceding dot\n *\n * This is used for `beginKeywords` to prevent matching expressions such as\n * `bob.keyword.do()`. The mode compiler automatically wires this up as a\n * special _internal_ 'on:begin' callback for modes with `beginKeywords`\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\nfunction skipIfHasPrecedingDot(match, response) {\n const before = match.input[match.index - 1];\n if (before === \".\") {\n response.ignoreMatch();\n }\n}\n\n/**\n *\n * @type {CompilerExt}\n */\nfunction scopeClassName(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.className !== undefined) {\n mode.scope = mode.className;\n delete mode.className;\n }\n}\n\n/**\n * `beginKeywords` syntactic sugar\n * @type {CompilerExt}\n */\nfunction beginKeywords(mode, parent) {\n if (!parent) return;\n if (!mode.beginKeywords) return;\n\n // for languages with keywords that include non-word characters checking for\n // a word boundary is not sufficient, so instead we check for a word boundary\n // or whitespace - this does no harm in any case since our keyword engine\n // doesn't allow spaces in keywords anyways and we still check for the boundary\n // first\n mode.begin = '\\\\b(' + mode.beginKeywords.split(' ').join('|') + ')(?!\\\\.)(?=\\\\b|\\\\s)';\n mode.__beforeBegin = skipIfHasPrecedingDot;\n mode.keywords = mode.keywords || mode.beginKeywords;\n delete mode.beginKeywords;\n\n // prevents double relevance, the keywords themselves provide\n // relevance, the mode doesn't need to double it\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 0;\n}\n\n/**\n * Allow `illegal` to contain an array of illegal values\n * @type {CompilerExt}\n */\nfunction compileIllegal(mode, _parent) {\n if (!Array.isArray(mode.illegal)) return;\n\n mode.illegal = either(...mode.illegal);\n}\n\n/**\n * `match` to match a single expression for readability\n * @type {CompilerExt}\n */\nfunction compileMatch(mode, _parent) {\n if (!mode.match) return;\n if (mode.begin || mode.end) throw new Error(\"begin & end are not supported with match\");\n\n mode.begin = mode.match;\n delete mode.match;\n}\n\n/**\n * provides the default 1 relevance to all modes\n * @type {CompilerExt}\n */\nfunction compileRelevance(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 1;\n}\n\n// allow beforeMatch to act as a \"qualifier\" for the match\n// the full match begin must be [beforeMatch][begin]\nconst beforeMatchExt = (mode, parent) => {\n if (!mode.beforeMatch) return;\n // starts conflicts with endsParent which we need to make sure the child\n // rule is not matched multiple times\n if (mode.starts) throw new Error(\"beforeMatch cannot be used with starts\");\n\n const originalMode = Object.assign({}, mode);\n Object.keys(mode).forEach((key) => { delete mode[key]; });\n\n mode.keywords = originalMode.keywords;\n mode.begin = concat(originalMode.beforeMatch, lookahead(originalMode.begin));\n mode.starts = {\n relevance: 0,\n contains: [\n Object.assign(originalMode, { endsParent: true })\n ]\n };\n mode.relevance = 0;\n\n delete originalMode.beforeMatch;\n};\n\n// keywords that should have no default relevance value\nconst COMMON_KEYWORDS = [\n 'of',\n 'and',\n 'for',\n 'in',\n 'not',\n 'or',\n 'if',\n 'then',\n 'parent', // common variable name\n 'list', // common variable name\n 'value' // common variable name\n];\n\nconst DEFAULT_KEYWORD_SCOPE = \"keyword\";\n\n/**\n * Given raw keywords from a language definition, compile them.\n *\n * @param {string | Record<string,string|string[]> | Array<string>} rawKeywords\n * @param {boolean} caseInsensitive\n */\nfunction compileKeywords(rawKeywords, caseInsensitive, scopeName = DEFAULT_KEYWORD_SCOPE) {\n /** @type KeywordDict */\n const compiledKeywords = Object.create(null);\n\n // input can be a string of keywords, an array of keywords, or a object with\n // named keys representing scopeName (which can then point to a string or array)\n if (typeof rawKeywords === 'string') {\n compileList(scopeName, rawKeywords.split(\" \"));\n } else if (Array.isArray(rawKeywords)) {\n compileList(scopeName, rawKeywords);\n } else {\n Object.keys(rawKeywords).forEach(function(scopeName) {\n // collapse all our objects back into the parent object\n Object.assign(\n compiledKeywords,\n compileKeywords(rawKeywords[scopeName], caseInsensitive, scopeName)\n );\n });\n }\n return compiledKeywords;\n\n // ---\n\n /**\n * Compiles an individual list of keywords\n *\n * Ex: \"for if when while|5\"\n *\n * @param {string} scopeName\n * @param {Array<string>} keywordList\n */\n function compileList(scopeName, keywordList) {\n if (caseInsensitive) {\n keywordList = keywordList.map(x => x.toLowerCase());\n }\n keywordList.forEach(function(keyword) {\n const pair = keyword.split('|');\n compiledKeywords[pair[0]] = [scopeName, scoreForKeyword(pair[0], pair[1])];\n });\n }\n}\n\n/**\n * Returns the proper score for a given keyword\n *\n * Also takes into account comment keywords, which will be scored 0 UNLESS\n * another score has been manually assigned.\n * @param {string} keyword\n * @param {string} [providedScore]\n */\nfunction scoreForKeyword(keyword, providedScore) {\n // manual scores always win over common keywords\n // so you can force a score of 1 if you really insist\n if (providedScore) {\n return Number(providedScore);\n }\n\n return commonKeyword(keyword) ? 0 : 1;\n}\n\n/**\n * Determines if a given keyword is common or not\n *\n * @param {string} keyword */\nfunction commonKeyword(keyword) {\n return COMMON_KEYWORDS.includes(keyword.toLowerCase());\n}\n\n/*\n\nFor the reasoning behind this please see:\nhttps://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419\n\n*/\n\n/**\n * @type {Record<string, boolean>}\n */\nconst seenDeprecations = {};\n\n/**\n * @param {string} message\n */\nconst error = (message) => {\n console.error(message);\n};\n\n/**\n * @param {string} message\n * @param {any} args\n */\nconst warn = (message, ...args) => {\n console.log(`WARN: ${message}`, ...args);\n};\n\n/**\n * @param {string} version\n * @param {string} message\n */\nconst deprecated = (version, message) => {\n if (seenDeprecations[`${version}/${message}`]) return;\n\n console.log(`Deprecated as of ${version}. ${message}`);\n seenDeprecations[`${version}/${message}`] = true;\n};\n\n/* eslint-disable no-throw-literal */\n\n/**\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n*/\n\nconst MultiClassError = new Error();\n\n/**\n * Renumbers labeled scope names to account for additional inner match\n * groups that otherwise would break everything.\n *\n * Lets say we 3 match scopes:\n *\n * { 1 => ..., 2 => ..., 3 => ... }\n *\n * So what we need is a clean match like this:\n *\n * (a)(b)(c) => [ \"a\", \"b\", \"c\" ]\n *\n * But this falls apart with inner match groups:\n *\n * (a)(((b)))(c) => [\"a\", \"b\", \"b\", \"b\", \"c\" ]\n *\n * Our scopes are now \"out of alignment\" and we're repeating `b` 3 times.\n * What needs to happen is the numbers are remapped:\n *\n * { 1 => ..., 2 => ..., 5 => ... }\n *\n * We also need to know that the ONLY groups that should be output\n * are 1, 2, and 5. This function handles this behavior.\n *\n * @param {CompiledMode} mode\n * @param {Array<RegExp | string>} regexes\n * @param {{key: \"beginScope\"|\"endScope\"}} opts\n */\nfunction remapScopeNames(mode, regexes, { key }) {\n let offset = 0;\n const scopeNames = mode[key];\n /** @type Record<number,boolean> */\n const emit = {};\n /** @type Record<number,string> */\n const positions = {};\n\n for (let i = 1; i <= regexes.length; i++) {\n positions[i + offset] = scopeNames[i];\n emit[i + offset] = true;\n offset += countMatchGroups(regexes[i - 1]);\n }\n // we use _emit to keep track of which match groups are \"top-level\" to avoid double\n // output from inside match groups\n mode[key] = positions;\n mode[key]._emit = emit;\n mode[key]._multi = true;\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction beginMultiClass(mode) {\n if (!Array.isArray(mode.begin)) return;\n\n if (mode.skip || mode.excludeBegin || mode.returnBegin) {\n error(\"skip, excludeBegin, returnBegin not compatible with beginScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.beginScope !== \"object\" || mode.beginScope === null) {\n error(\"beginScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.begin, { key: \"beginScope\" });\n mode.begin = _rewriteBackreferences(mode.begin, { joinWith: \"\" });\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction endMultiClass(mode) {\n if (!Array.isArray(mode.end)) return;\n\n if (mode.skip || mode.excludeEnd || mode.returnEnd) {\n error(\"skip, excludeEnd, returnEnd not compatible with endScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.endScope !== \"object\" || mode.endScope === null) {\n error(\"endScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.end, { key: \"endScope\" });\n mode.end = _rewriteBackreferences(mode.end, { joinWith: \"\" });\n}\n\n/**\n * this exists only to allow `scope: {}` to be used beside `match:`\n * Otherwise `beginScope` would necessary and that would look weird\n\n {\n match: [ /def/, /\\w+/ ]\n scope: { 1: \"keyword\" , 2: \"title\" }\n }\n\n * @param {CompiledMode} mode\n */\nfunction scopeSugar(mode) {\n if (mode.scope && typeof mode.scope === \"object\" && mode.scope !== null) {\n mode.beginScope = mode.scope;\n delete mode.scope;\n }\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction MultiClass(mode) {\n scopeSugar(mode);\n\n if (typeof mode.beginScope === \"string\") {\n mode.beginScope = { _wrap: mode.beginScope };\n }\n if (typeof mode.endScope === \"string\") {\n mode.endScope = { _wrap: mode.endScope };\n }\n\n beginMultiClass(mode);\n endMultiClass(mode);\n}\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').CompiledLanguage} CompiledLanguage\n*/\n\n// compilation\n\n/**\n * Compiles a language definition result\n *\n * Given the raw result of a language definition (Language), compiles this so\n * that it is ready for highlighting code.\n * @param {Language} language\n * @returns {CompiledLanguage}\n */\nfunction compileLanguage(language) {\n /**\n * Builds a regex with the case sensitivity of the current language\n *\n * @param {RegExp | string} value\n * @param {boolean} [global]\n */\n function langRe(value, global) {\n return new RegExp(\n source(value),\n 'm'\n + (language.case_insensitive ? 'i' : '')\n + (language.unicodeRegex ? 'u' : '')\n + (global ? 'g' : '')\n );\n }\n\n /**\n Stores multiple regular expressions and allows you to quickly search for\n them all in a string simultaneously - returning the first match. It does\n this by creating a huge (a|b|c) regex - each individual item wrapped with ()\n and joined by `|` - using match groups to track position. When a match is\n found checking which position in the array has content allows us to figure\n out which of the original regexes / match groups triggered the match.\n\n The match object itself (the result of `Regex.exec`) is returned but also\n enhanced by merging in any meta-data that was registered with the regex.\n This is how we keep track of which mode matched, and what type of rule\n (`illegal`, `begin`, end, etc).\n */\n class MultiRegex {\n constructor() {\n this.matchIndexes = {};\n // @ts-ignore\n this.regexes = [];\n this.matchAt = 1;\n this.position = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n opts.position = this.position++;\n // @ts-ignore\n this.matchIndexes[this.matchAt] = opts;\n this.regexes.push([opts, re]);\n this.matchAt += countMatchGroups(re) + 1;\n }\n\n compile() {\n if (this.regexes.length === 0) {\n // avoids the need to check length every time exec is called\n // @ts-ignore\n this.exec = () => null;\n }\n const terminators = this.regexes.map(el => el[1]);\n this.matcherRe = langRe(_rewriteBackreferences(terminators, { joinWith: '|' }), true);\n this.lastIndex = 0;\n }\n\n /** @param {string} s */\n exec(s) {\n this.matcherRe.lastIndex = this.lastIndex;\n const match = this.matcherRe.exec(s);\n if (!match) { return null; }\n\n // eslint-disable-next-line no-undefined\n const i = match.findIndex((el, i) => i > 0 && el !== undefined);\n // @ts-ignore\n const matchData = this.matchIndexes[i];\n // trim off any earlier non-relevant match groups (ie, the other regex\n // match groups that make up the multi-matcher)\n match.splice(0, i);\n\n return Object.assign(match, matchData);\n }\n }\n\n /*\n Created to solve the key deficiently with MultiRegex - there is no way to\n test for multiple matches at a single location. Why would we need to do\n that? In the future a more dynamic engine will allow certain matches to be\n ignored. An example: if we matched say the 3rd regex in a large group but\n decided to ignore it - we'd need to started testing again at the 4th\n regex... but MultiRegex itself gives us no real way to do that.\n\n So what this class creates MultiRegexs on the fly for whatever search\n position they are needed.\n\n NOTE: These additional MultiRegex objects are created dynamically. For most\n grammars most of the time we will never actually need anything more than the\n first MultiRegex - so this shouldn't have too much overhead.\n\n Say this is our search group, and we match regex3, but wish to ignore it.\n\n regex1 | regex2 | regex3 | regex4 | regex5 ' ie, startAt = 0\n\n What we need is a new MultiRegex that only includes the remaining\n possibilities:\n\n regex4 | regex5 ' ie, startAt = 3\n\n This class wraps all that complexity up in a simple API... `startAt` decides\n where in the array of expressions to start doing the matching. It\n auto-increments, so if a match is found at position 2, then startAt will be\n set to 3. If the end is reached startAt will return to 0.\n\n MOST of the time the parser will be setting startAt manually to 0.\n */\n class ResumableMultiRegex {\n constructor() {\n // @ts-ignore\n this.rules = [];\n // @ts-ignore\n this.multiRegexes = [];\n this.count = 0;\n\n this.lastIndex = 0;\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n getMatcher(index) {\n if (this.multiRegexes[index]) return this.multiRegexes[index];\n\n const matcher = new MultiRegex();\n this.rules.slice(index).forEach(([re, opts]) => matcher.addRule(re, opts));\n matcher.compile();\n this.multiRegexes[index] = matcher;\n return matcher;\n }\n\n resumingScanAtSamePosition() {\n return this.regexIndex !== 0;\n }\n\n considerAll() {\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n this.rules.push([re, opts]);\n if (opts.type === \"begin\") this.count++;\n }\n\n /** @param {string} s */\n exec(s) {\n const m = this.getMatcher(this.regexIndex);\n m.lastIndex = this.lastIndex;\n let result = m.exec(s);\n\n // The following is because we have no easy way to say \"resume scanning at the\n // existing position but also skip the current rule ONLY\". What happens is\n // all prior rules are also skipped which can result in matching the wrong\n // thing. Example of matching \"booger\":\n\n // our matcher is [string, \"booger\", number]\n //\n // ....booger....\n\n // if \"booger\" is ignored then we'd really need a regex to scan from the\n // SAME position for only: [string, number] but ignoring \"booger\" (if it\n // was the first match), a simple resume would scan ahead who knows how\n // far looking only for \"number\", ignoring potential string matches (or\n // future \"booger\" matches that might be valid.)\n\n // So what we do: We execute two matchers, one resuming at the same\n // position, but the second full matcher starting at the position after:\n\n // /--- resume first regex match here (for [number])\n // |/---- full match here for [string, \"booger\", number]\n // vv\n // ....booger....\n\n // Which ever results in a match first is then used. So this 3-4 step\n // process essentially allows us to say \"match at this position, excluding\n // a prior rule that was ignored\".\n //\n // 1. Match \"booger\" first, ignore. Also proves that [string] does non match.\n // 2. Resume matching for [number]\n // 3. Match at index + 1 for [string, \"booger\", number]\n // 4. If #2 and #3 result in matches, which came first?\n if (this.resumingScanAtSamePosition()) {\n if (result && result.index === this.lastIndex) ; else { // use the second matcher result\n const m2 = this.getMatcher(0);\n m2.lastIndex = this.lastIndex + 1;\n result = m2.exec(s);\n }\n }\n\n if (result) {\n this.regexIndex += result.position + 1;\n if (this.regexIndex === this.count) {\n // wrap-around to considering all matches again\n this.considerAll();\n }\n }\n\n return result;\n }\n }\n\n /**\n * Given a mode, builds a huge ResumableMultiRegex that can be used to walk\n * the content and find matches.\n *\n * @param {CompiledMode} mode\n * @returns {ResumableMultiRegex}\n */\n function buildModeRegex(mode) {\n const mm = new ResumableMultiRegex();\n\n mode.contains.forEach(term => mm.addRule(term.begin, { rule: term, type: \"begin\" }));\n\n if (mode.terminatorEnd) {\n mm.addRule(mode.terminatorEnd, { type: \"end\" });\n }\n if (mode.illegal) {\n mm.addRule(mode.illegal, { type: \"illegal\" });\n }\n\n return mm;\n }\n\n /** skip vs abort vs ignore\n *\n * @skip - The mode is still entered and exited normally (and contains rules apply),\n * but all content is held and added to the parent buffer rather than being\n * output when the mode ends. Mostly used with `sublanguage` to build up\n * a single large buffer than can be parsed by sublanguage.\n *\n * - The mode begin ands ends normally.\n * - Content matched is added to the parent mode buffer.\n * - The parser cursor is moved forward normally.\n *\n * @abort - A hack placeholder until we have ignore. Aborts the mode (as if it\n * never matched) but DOES NOT continue to match subsequent `contains`\n * modes. Abort is bad/suboptimal because it can result in modes\n * farther down not getting applied because an earlier rule eats the\n * content but then aborts.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is added to the mode buffer.\n * - The parser cursor is moved forward accordingly.\n *\n * @ignore - Ignores the mode (as if it never matched) and continues to match any\n * subsequent `contains` modes. Ignore isn't technically possible with\n * the current parser implementation.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is ignored.\n * - The parser cursor is not moved forward.\n */\n\n /**\n * Compiles an individual mode\n *\n * This can raise an error if the mode contains certain detectable known logic\n * issues.\n * @param {Mode} mode\n * @param {CompiledMode | null} [parent]\n * @returns {CompiledMode | never}\n */\n function compileMode(mode, parent) {\n const cmode = /** @type CompiledMode */ (mode);\n if (mode.isCompiled) return cmode;\n\n [\n scopeClassName,\n // do this early so compiler extensions generally don't have to worry about\n // the distinction between match/begin\n compileMatch,\n MultiClass,\n beforeMatchExt\n ].forEach(ext => ext(mode, parent));\n\n language.compilerExtensions.forEach(ext => ext(mode, parent));\n\n // __beforeBegin is considered private API, internal use only\n mode.__beforeBegin = null;\n\n [\n beginKeywords,\n // do this later so compiler extensions that come earlier have access to the\n // raw array if they wanted to perhaps manipulate it, etc.\n compileIllegal,\n // default to 1 relevance if not specified\n compileRelevance\n ].forEach(ext => ext(mode, parent));\n\n mode.isCompiled = true;\n\n let keywordPattern = null;\n if (typeof mode.keywords === \"object\" && mode.keywords.$pattern) {\n // we need a copy because keywords might be compiled multiple times\n // so we can't go deleting $pattern from the original on the first\n // pass\n mode.keywords = Object.assign({}, mode.keywords);\n keywordPattern = mode.keywords.$pattern;\n delete mode.keywords.$pattern;\n }\n keywordPattern = keywordPattern || /\\w+/;\n\n if (mode.keywords) {\n mode.keywords = compileKeywords(mode.keywords, language.case_insensitive);\n }\n\n cmode.keywordPatternRe = langRe(keywordPattern, true);\n\n if (parent) {\n if (!mode.begin) mode.begin = /\\B|\\b/;\n cmode.beginRe = langRe(cmode.begin);\n if (!mode.end && !mode.endsWithParent) mode.end = /\\B|\\b/;\n if (mode.end) cmode.endRe = langRe(cmode.end);\n cmode.terminatorEnd = source(cmode.end) || '';\n if (mode.endsWithParent && parent.terminatorEnd) {\n cmode.terminatorEnd += (mode.end ? '|' : '') + parent.terminatorEnd;\n }\n }\n if (mode.illegal) cmode.illegalRe = langRe(/** @type {RegExp | string} */ (mode.illegal));\n if (!mode.contains) mode.contains = [];\n\n mode.contains = [].concat(...mode.contains.map(function(c) {\n return expandOrCloneMode(c === 'self' ? mode : c);\n }));\n mode.contains.forEach(function(c) { compileMode(/** @type Mode */ (c), cmode); });\n\n if (mode.starts) {\n compileMode(mode.starts, parent);\n }\n\n cmode.matcher = buildModeRegex(cmode);\n return cmode;\n }\n\n if (!language.compilerExtensions) language.compilerExtensions = [];\n\n // self is not valid at the top-level\n if (language.contains && language.contains.includes('self')) {\n throw new Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\");\n }\n\n // we need a null object, which inherit will guarantee\n language.classNameAliases = inherit$1(language.classNameAliases || {});\n\n return compileMode(/** @type Mode */ (language));\n}\n\n/**\n * Determines if a mode has a dependency on it's parent or not\n *\n * If a mode does have a parent dependency then often we need to clone it if\n * it's used in multiple places so that each copy points to the correct parent,\n * where-as modes without a parent can often safely be re-used at the bottom of\n * a mode chain.\n *\n * @param {Mode | null} mode\n * @returns {boolean} - is there a dependency on the parent?\n * */\nfunction dependencyOnParent(mode) {\n if (!mode) return false;\n\n return mode.endsWithParent || dependencyOnParent(mode.starts);\n}\n\n/**\n * Expands a mode or clones it if necessary\n *\n * This is necessary for modes with parental dependenceis (see notes on\n * `dependencyOnParent`) and for nodes that have `variants` - which must then be\n * exploded into their own individual modes at compile time.\n *\n * @param {Mode} mode\n * @returns {Mode | Mode[]}\n * */\nfunction expandOrCloneMode(mode) {\n if (mode.variants && !mode.cachedVariants) {\n mode.cachedVariants = mode.variants.map(function(variant) {\n return inherit$1(mode, { variants: null }, variant);\n });\n }\n\n // EXPAND\n // if we have variants then essentially \"replace\" the mode with the variants\n // this happens in compileMode, where this function is called from\n if (mode.cachedVariants) {\n return mode.cachedVariants;\n }\n\n // CLONE\n // if we have dependencies on parents then we need a unique\n // instance of ourselves, so we can be reused with many\n // different parents without issue\n if (dependencyOnParent(mode)) {\n return inherit$1(mode, { starts: mode.starts ? inherit$1(mode.starts) : null });\n }\n\n if (Object.isFrozen(mode)) {\n return inherit$1(mode);\n }\n\n // no special dependency issues, just return ourselves\n return mode;\n}\n\nvar version = \"11.5.1\";\n\nclass HTMLInjectionError extends Error {\n constructor(reason, html) {\n super(reason);\n this.name = \"HTMLInjectionError\";\n this.html = html;\n }\n}\n\n/*\nSyntax highlighting with language autodetection.\nhttps://highlightjs.org/\n*/\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').CompiledScope} CompiledScope\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSApi} HLJSApi\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').PluginEvent} PluginEvent\n@typedef {import('highlight.js').HLJSOptions} HLJSOptions\n@typedef {import('highlight.js').LanguageFn} LanguageFn\n@typedef {import('highlight.js').HighlightedHTMLElement} HighlightedHTMLElement\n@typedef {import('highlight.js').BeforeHighlightContext} BeforeHighlightContext\n@typedef {import('highlight.js/private').MatchType} MatchType\n@typedef {import('highlight.js/private').KeywordData} KeywordData\n@typedef {import('highlight.js/private').EnhancedMatch} EnhancedMatch\n@typedef {import('highlight.js/private').AnnotatedError} AnnotatedError\n@typedef {import('highlight.js').AutoHighlightResult} AutoHighlightResult\n@typedef {import('highlight.js').HighlightOptions} HighlightOptions\n@typedef {import('highlight.js').HighlightResult} HighlightResult\n*/\n\n\nconst escape = escapeHTML;\nconst inherit = inherit$1;\nconst NO_MATCH = Symbol(\"nomatch\");\nconst MAX_KEYWORD_HITS = 7;\n\n/**\n * @param {any} hljs - object that is extended (legacy)\n * @returns {HLJSApi}\n */\nconst HLJS = function(hljs) {\n // Global internal variables used within the highlight.js library.\n /** @type {Record<string, Language>} */\n const languages = Object.create(null);\n /** @type {Record<string, string>} */\n const aliases = Object.create(null);\n /** @type {HLJSPlugin[]} */\n const plugins = [];\n\n // safe/production mode - swallows more errors, tries to keep running\n // even if a single syntax or parse hits a fatal error\n let SAFE_MODE = true;\n const LANGUAGE_NOT_FOUND = \"Could not find the language '{}', did you forget to load/include a language module?\";\n /** @type {Language} */\n const PLAINTEXT_LANGUAGE = { disableAutodetect: true, name: 'Plain text', contains: [] };\n\n // Global options used when within external APIs. This is modified when\n // calling the `hljs.configure` function.\n /** @type HLJSOptions */\n let options = {\n ignoreUnescapedHTML: false,\n throwUnescapedHTML: false,\n noHighlightRe: /^(no-?highlight)$/i,\n languageDetectRe: /\\blang(?:uage)?-([\\w-]+)\\b/i,\n classPrefix: 'hljs-',\n cssSelector: 'pre code',\n languages: null,\n // beta configuration options, subject to change, welcome to discuss\n // https://github.com/highlightjs/highlight.js/issues/1086\n __emitter: TokenTreeEmitter\n };\n\n /* Utility functions */\n\n /**\n * Tests a language name to see if highlighting should be skipped\n * @param {string} languageName\n */\n function shouldNotHighlight(languageName) {\n return options.noHighlightRe.test(languageName);\n }\n\n /**\n * @param {HighlightedHTMLElement} block - the HTML element to determine language for\n */\n function blockLanguage(block) {\n let classes = block.className + ' ';\n\n classes += block.parentNode ? block.parentNode.className : '';\n\n // language-* takes precedence over non-prefixed class names.\n const match = options.languageDetectRe.exec(classes);\n if (match) {\n const language = getLanguage(match[1]);\n if (!language) {\n warn(LANGUAGE_NOT_FOUND.replace(\"{}\", match[1]));\n warn(\"Falling back to no-highlight mode for this block.\", block);\n }\n return language ? match[1] : 'no-highlight';\n }\n\n return classes\n .split(/\\s+/)\n .find((_class) => shouldNotHighlight(_class) || getLanguage(_class));\n }\n\n /**\n * Core highlighting function.\n *\n * OLD API\n * highlight(lang, code, ignoreIllegals, continuation)\n *\n * NEW API\n * highlight(code, {lang, ignoreIllegals})\n *\n * @param {string} codeOrLanguageName - the language to use for highlighting\n * @param {string | HighlightOptions} optionsOrCode - the code to highlight\n * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n *\n * @returns {HighlightResult} Result - an object that represents the result\n * @property {string} language - the language name\n * @property {number} relevance - the relevance score\n * @property {string} value - the highlighted HTML code\n * @property {string} code - the original raw code\n * @property {CompiledMode} top - top of the current mode stack\n * @property {boolean} illegal - indicates whether any illegal matches were found\n */\n function highlight(codeOrLanguageName, optionsOrCode, ignoreIllegals) {\n let code = \"\";\n let languageName = \"\";\n if (typeof optionsOrCode === \"object\") {\n code = codeOrLanguageName;\n ignoreIllegals = optionsOrCode.ignoreIllegals;\n languageName = optionsOrCode.language;\n } else {\n // old API\n deprecated(\"10.7.0\", \"highlight(lang, code, ...args) has been deprecated.\");\n deprecated(\"10.7.0\", \"Please use highlight(code, options) instead.\\nhttps://github.com/highlightjs/highlight.js/issues/2277\");\n languageName = codeOrLanguageName;\n code = optionsOrCode;\n }\n\n // https://github.com/highlightjs/highlight.js/issues/3149\n // eslint-disable-next-line no-undefined\n if (ignoreIllegals === undefined) { ignoreIllegals = true; }\n\n /** @type {BeforeHighlightContext} */\n const context = {\n code,\n language: languageName\n };\n // the plugin can change the desired language or the code to be highlighted\n // just be changing the object it was passed\n fire(\"before:highlight\", context);\n\n // a before plugin can usurp the result completely by providing it's own\n // in which case we don't even need to call highlight\n const result = context.result\n ? context.result\n : _highlight(context.language, context.code, ignoreIllegals);\n\n result.code = context.code;\n // the plugin can change anything in result to suite it\n fire(\"after:highlight\", result);\n\n return result;\n }\n\n /**\n * private highlight that's used internally and does not fire callbacks\n *\n * @param {string} languageName - the language to use for highlighting\n * @param {string} codeToHighlight - the code to highlight\n * @param {boolean?} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n * @param {CompiledMode?} [continuation] - current continuation mode, if any\n * @returns {HighlightResult} - result of the highlight operation\n */\n function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) {\n const keywordHits = Object.create(null);\n\n /**\n * Return keyword data if a match is a keyword\n * @param {CompiledMode} mode - current mode\n * @param {string} matchText - the textual match\n * @returns {KeywordData | false}\n */\n function keywordData(mode, matchText) {\n return mode.keywords[matchText];\n }\n\n function processKeywords() {\n if (!top.keywords) {\n emitter.addText(modeBuffer);\n return;\n }\n\n let lastIndex = 0;\n top.keywordPatternRe.lastIndex = 0;\n let match = top.keywordPatternRe.exec(modeBuffer);\n let buf = \"\";\n\n while (match) {\n buf += modeBuffer.substring(lastIndex, match.index);\n const word = language.case_insensitive ? match[0].toLowerCase() : match[0];\n const data = keywordData(top, word);\n if (data) {\n const [kind, keywordRelevance] = data;\n emitter.addText(buf);\n buf = \"\";\n\n keywordHits[word] = (keywordHits[word] || 0) + 1;\n if (keywordHits[word] <= MAX_KEYWORD_HITS) relevance += keywordRelevance;\n if (kind.startsWith(\"_\")) {\n // _ implied for relevance only, do not highlight\n // by applying a class name\n buf += match[0];\n } else {\n const cssClass = language.classNameAliases[kind] || kind;\n emitter.addKeyword(match[0], cssClass);\n }\n } else {\n buf += match[0];\n }\n lastIndex = top.keywordPatternRe.lastIndex;\n match = top.keywordPatternRe.exec(modeBuffer);\n }\n buf += modeBuffer.substr(lastIndex);\n emitter.addText(buf);\n }\n\n function processSubLanguage() {\n if (modeBuffer === \"\") return;\n /** @type HighlightResult */\n let result = null;\n\n if (typeof top.subLanguage === 'string') {\n if (!languages[top.subLanguage]) {\n emitter.addText(modeBuffer);\n return;\n }\n result = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]);\n continuations[top.subLanguage] = /** @type {CompiledMode} */ (result._top);\n } else {\n result = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null);\n }\n\n // Counting embedded language score towards the host language may be disabled\n // with zeroing the containing mode relevance. Use case in point is Markdown that\n // allows XML everywhere and makes every XML snippet to have a much larger Markdown\n // score.\n if (top.relevance > 0) {\n relevance += result.relevance;\n }\n emitter.addSublanguage(result._emitter, result.language);\n }\n\n function processBuffer() {\n if (top.subLanguage != null) {\n processSubLanguage();\n } else {\n processKeywords();\n }\n modeBuffer = '';\n }\n\n /**\n * @param {CompiledScope} scope\n * @param {RegExpMatchArray} match\n */\n function emitMultiClass(scope, match) {\n let i = 1;\n const max = match.length - 1;\n while (i <= max) {\n if (!scope._emit[i]) { i++; continue; }\n const klass = language.classNameAliases[scope[i]] || scope[i];\n const text = match[i];\n if (klass) {\n emitter.addKeyword(text, klass);\n } else {\n modeBuffer = text;\n processKeywords();\n modeBuffer = \"\";\n }\n i++;\n }\n }\n\n /**\n * @param {CompiledMode} mode - new mode to start\n * @param {RegExpMatchArray} match\n */\n function startNewMode(mode, match) {\n if (mode.scope && typeof mode.scope === \"string\") {\n emitter.openNode(language.classNameAliases[mode.scope] || mode.scope);\n }\n if (mode.beginScope) {\n // beginScope just wraps the begin match itself in a scope\n if (mode.beginScope._wrap) {\n emitter.addKeyword(modeBuffer, language.classNameAliases[mode.beginScope._wrap] || mode.beginScope._wrap);\n modeBuffer = \"\";\n } else if (mode.beginScope._multi) {\n // at this point modeBuffer should just be the match\n emitMultiClass(mode.beginScope, match);\n modeBuffer = \"\";\n }\n }\n\n top = Object.create(mode, { parent: { value: top } });\n return top;\n }\n\n /**\n * @param {CompiledMode } mode - the mode to potentially end\n * @param {RegExpMatchArray} match - the latest match\n * @param {string} matchPlusRemainder - match plus remainder of content\n * @returns {CompiledMode | void} - the next mode, or if void continue on in current mode\n */\n function endOfMode(mode, match, matchPlusRemainder) {\n let matched = startsWith(mode.endRe, matchPlusRemainder);\n\n if (matched) {\n if (mode[\"on:end\"]) {\n const resp = new Response(mode);\n mode[\"on:end\"](match, resp);\n if (resp.isMatchIgnored) matched = false;\n }\n\n if (matched) {\n while (mode.endsParent && mode.parent) {\n mode = mode.parent;\n }\n return mode;\n }\n }\n // even if on:end fires an `ignore` it's still possible\n // that we might trigger the end node because of a parent mode\n if (mode.endsWithParent) {\n return endOfMode(mode.parent, match, matchPlusRemainder);\n }\n }\n\n /**\n * Handle matching but then ignoring a sequence of text\n *\n * @param {string} lexeme - string containing full match text\n */\n function doIgnore(lexeme) {\n if (top.matcher.regexIndex === 0) {\n // no more regexes to potentially match here, so we move the cursor forward one\n // space\n modeBuffer += lexeme[0];\n return 1;\n } else {\n // no need to move the cursor, we still have additional regexes to try and\n // match at this very spot\n resumeScanAtSamePosition = true;\n return 0;\n }\n }\n\n /**\n * Handle the start of a new potential mode match\n *\n * @param {EnhancedMatch} match - the current match\n * @returns {number} how far to advance the parse cursor\n */\n function doBeginMatch(match) {\n const lexeme = match[0];\n const newMode = match.rule;\n\n const resp = new Response(newMode);\n // first internal before callbacks, then the public ones\n const beforeCallbacks = [newMode.__beforeBegin, newMode[\"on:begin\"]];\n for (const cb of beforeCallbacks) {\n if (!cb) continue;\n cb(match, resp);\n if (resp.isMatchIgnored) return doIgnore(lexeme);\n }\n\n if (newMode.skip) {\n modeBuffer += lexeme;\n } else {\n if (newMode.excludeBegin) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (!newMode.returnBegin && !newMode.excludeBegin) {\n modeBuffer = lexeme;\n }\n }\n startNewMode(newMode, match);\n return newMode.returnBegin ? 0 : lexeme.length;\n }\n\n /**\n * Handle the potential end of mode\n *\n * @param {RegExpMatchArray} match - the current match\n */\n function doEndMatch(match) {\n const lexeme = match[0];\n const matchPlusRemainder = codeToHighlight.substr(match.index);\n\n const endMode = endOfMode(top, match, matchPlusRemainder);\n if (!endMode) { return NO_MATCH; }\n\n const origin = top;\n if (top.endScope && top.endScope._wrap) {\n processBuffer();\n emitter.addKeyword(lexeme, top.endScope._wrap);\n } else if (top.endScope && top.endScope._multi) {\n processBuffer();\n emitMultiClass(top.endScope, match);\n } else if (origin.skip) {\n modeBuffer += lexeme;\n } else {\n if (!(origin.returnEnd || origin.excludeEnd)) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (origin.excludeEnd) {\n modeBuffer = lexeme;\n }\n }\n do {\n if (top.scope) {\n emitter.closeNode();\n }\n if (!top.skip && !top.subLanguage) {\n relevance += top.relevance;\n }\n top = top.parent;\n } while (top !== endMode.parent);\n if (endMode.starts) {\n startNewMode(endMode.starts, match);\n }\n return origin.returnEnd ? 0 : lexeme.length;\n }\n\n function processContinuations() {\n const list = [];\n for (let current = top; current !== language; current = current.parent) {\n if (current.scope) {\n list.unshift(current.scope);\n }\n }\n list.forEach(item => emitter.openNode(item));\n }\n\n /** @type {{type?: MatchType, index?: number, rule?: Mode}}} */\n let lastMatch = {};\n\n /**\n * Process an individual match\n *\n * @param {string} textBeforeMatch - text preceding the match (since the last match)\n * @param {EnhancedMatch} [match] - the match itself\n */\n function processLexeme(textBeforeMatch, match) {\n const lexeme = match && match[0];\n\n // add non-matched text to the current mode buffer\n modeBuffer += textBeforeMatch;\n\n if (lexeme == null) {\n processBuffer();\n return 0;\n }\n\n // we've found a 0 width match and we're stuck, so we need to advance\n // this happens when we have badly behaved rules that have optional matchers to the degree that\n // sometimes they can end up matching nothing at all\n // Ref: https://github.com/highlightjs/highlight.js/issues/2140\n if (lastMatch.type === \"begin\" && match.type === \"end\" && lastMatch.index === match.index && lexeme === \"\") {\n // spit the \"skipped\" character that our regex choked on back into the output sequence\n modeBuffer += codeToHighlight.slice(match.index, match.index + 1);\n if (!SAFE_MODE) {\n /** @type {AnnotatedError} */\n const err = new Error(`0 width match regex (${languageName})`);\n err.languageName = languageName;\n err.badRule = lastMatch.rule;\n throw err;\n }\n return 1;\n }\n lastMatch = match;\n\n if (match.type === \"begin\") {\n return doBeginMatch(match);\n } else if (match.type === \"illegal\" && !ignoreIllegals) {\n // illegal match, we do not continue processing\n /** @type {AnnotatedError} */\n const err = new Error('Illegal lexeme \"' + lexeme + '\" for mode \"' + (top.scope || '<unnamed>') + '\"');\n err.mode = top;\n throw err;\n } else if (match.type === \"end\") {\n const processed = doEndMatch(match);\n if (processed !== NO_MATCH) {\n return processed;\n }\n }\n\n // edge case for when illegal matches $ (end of line) which is technically\n // a 0 width match but not a begin/end match so it's not caught by the\n // first handler (when ignoreIllegals is true)\n if (match.type === \"illegal\" && lexeme === \"\") {\n // advance so we aren't stuck in an infinite loop\n return 1;\n }\n\n // infinite loops are BAD, this is a last ditch catch all. if we have a\n // decent number of iterations yet our index (cursor position in our\n // parsing) still 3x behind our index then something is very wrong\n // so we bail\n if (iterations > 100000 && iterations > match.index * 3) {\n const err = new Error('potential infinite loop, way more iterations than matches');\n throw err;\n }\n\n /*\n Why might be find ourselves here? An potential end match that was\n triggered but could not be completed. IE, `doEndMatch` returned NO_MATCH.\n (this could be because a callback requests the match be ignored, etc)\n\n This causes no real harm other than stopping a few times too many.\n */\n\n modeBuffer += lexeme;\n return lexeme.length;\n }\n\n const language = getLanguage(languageName);\n if (!language) {\n error(LANGUAGE_NOT_FOUND.replace(\"{}\", languageName));\n throw new Error('Unknown language: \"' + languageName + '\"');\n }\n\n const md = compileLanguage(language);\n let result = '';\n /** @type {CompiledMode} */\n let top = continuation || md;\n /** @type Record<string,CompiledMode> */\n const continuations = {}; // keep continuations for sub-languages\n const emitter = new options.__emitter(options);\n processContinuations();\n let modeBuffer = '';\n let relevance = 0;\n let index = 0;\n let iterations = 0;\n let resumeScanAtSamePosition = false;\n\n try {\n top.matcher.considerAll();\n\n for (;;) {\n iterations++;\n if (resumeScanAtSamePosition) {\n // only regexes not matched previously will now be\n // considered for a potential match\n resumeScanAtSamePosition = false;\n } else {\n top.matcher.considerAll();\n }\n top.matcher.lastIndex = index;\n\n const match = top.matcher.exec(codeToHighlight);\n // console.log(\"match\", match[0], match.rule && match.rule.begin)\n\n if (!match) break;\n\n const beforeMatch = codeToHighlight.substring(index, match.index);\n const processedCount = processLexeme(beforeMatch, match);\n index = match.index + processedCount;\n }\n processLexeme(codeToHighlight.substr(index));\n emitter.closeAllNodes();\n emitter.finalize();\n result = emitter.toHTML();\n\n return {\n language: languageName,\n value: result,\n relevance: relevance,\n illegal: false,\n _emitter: emitter,\n _top: top\n };\n } catch (err) {\n if (err.message && err.message.includes('Illegal')) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: true,\n relevance: 0,\n _illegalBy: {\n message: err.message,\n index: index,\n context: codeToHighlight.slice(index - 100, index + 100),\n mode: err.mode,\n resultSoFar: result\n },\n _emitter: emitter\n };\n } else if (SAFE_MODE) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: false,\n relevance: 0,\n errorRaised: err,\n _emitter: emitter,\n _top: top\n };\n } else {\n throw err;\n }\n }\n }\n\n /**\n * returns a valid highlight result, without actually doing any actual work,\n * auto highlight starts with this and it's possible for small snippets that\n * auto-detection may not find a better match\n * @param {string} code\n * @returns {HighlightResult}\n */\n function justTextHighlightResult(code) {\n const result = {\n value: escape(code),\n illegal: false,\n relevance: 0,\n _top: PLAINTEXT_LANGUAGE,\n _emitter: new options.__emitter(options)\n };\n result._emitter.addText(code);\n return result;\n }\n\n /**\n Highlighting with language detection. Accepts a string with the code to\n highlight. Returns an object with the following properties:\n\n - language (detected language)\n - relevance (int)\n - value (an HTML string with highlighting markup)\n - secondBest (object with the same structure for second-best heuristically\n detected language, may be absent)\n\n @param {string} code\n @param {Array<string>} [languageSubset]\n @returns {AutoHighlightResult}\n */\n function highlightAuto(code, languageSubset) {\n languageSubset = languageSubset || options.languages || Object.keys(languages);\n const plaintext = justTextHighlightResult(code);\n\n const results = languageSubset.filter(getLanguage).filter(autoDetection).map(name =>\n _highlight(name, code, false)\n );\n results.unshift(plaintext); // plaintext is always an option\n\n const sorted = results.sort((a, b) => {\n // sort base on relevance\n if (a.relevance !== b.relevance) return b.relevance - a.relevance;\n\n // always award the tie to the base language\n // ie if C++ and Arduino are tied, it's more likely to be C++\n if (a.language && b.language) {\n if (getLanguage(a.language).supersetOf === b.language) {\n return 1;\n } else if (getLanguage(b.language).supersetOf === a.language) {\n return -1;\n }\n }\n\n // otherwise say they are equal, which has the effect of sorting on\n // relevance while preserving the original ordering - which is how ties\n // have historically been settled, ie the language that comes first always\n // wins in the case of a tie\n return 0;\n });\n\n const [best, secondBest] = sorted;\n\n /** @type {AutoHighlightResult} */\n const result = best;\n result.secondBest = secondBest;\n\n return result;\n }\n\n /**\n * Builds new class name for block given the language name\n *\n * @param {HTMLElement} element\n * @param {string} [currentLang]\n * @param {string} [resultLang]\n */\n function updateClassName(element, currentLang, resultLang) {\n const language = (currentLang && aliases[currentLang]) || resultLang;\n\n element.classList.add(\"hljs\");\n element.classList.add(`language-${language}`);\n }\n\n /**\n * Applies highlighting to a DOM node containing code.\n *\n * @param {HighlightedHTMLElement} element - the HTML element to highlight\n */\n function highlightElement(element) {\n /** @type HTMLElement */\n let node = null;\n const language = blockLanguage(element);\n\n if (shouldNotHighlight(language)) return;\n\n fire(\"before:highlightElement\",\n { el: element, language: language });\n\n // we should be all text, no child nodes (unescaped HTML) - this is possibly\n // an HTML injection attack - it's likely too late if this is already in\n // production (the code has likely already done its damage by the time\n // we're seeing it)... but we yell loudly about this so that hopefully it's\n // more likely to be caught in development before making it to production\n if (element.children.length > 0) {\n if (!options.ignoreUnescapedHTML) {\n console.warn(\"One of your code blocks includes unescaped HTML. This is a potentially serious security risk.\");\n console.warn(\"https://github.com/highlightjs/highlight.js/wiki/security\");\n console.warn(\"The element with unescaped HTML:\");\n console.warn(element);\n }\n if (options.throwUnescapedHTML) {\n const err = new HTMLInjectionError(\n \"One of your code blocks includes unescaped HTML.\",\n element.innerHTML\n );\n throw err;\n }\n }\n\n node = element;\n const text = node.textContent;\n const result = language ? highlight(text, { language, ignoreIllegals: true }) : highlightAuto(text);\n\n element.innerHTML = result.value;\n updateClassName(element, language, result.language);\n element.result = {\n language: result.language,\n // TODO: remove with version 11.0\n re: result.relevance,\n relevance: result.relevance\n };\n if (result.secondBest) {\n element.secondBest = {\n language: result.secondBest.language,\n relevance: result.secondBest.relevance\n };\n }\n\n fire(\"after:highlightElement\", { el: element, result, text });\n }\n\n /**\n * Updates highlight.js global options with the passed options\n *\n * @param {Partial<HLJSOptions>} userOptions\n */\n function configure(userOptions) {\n options = inherit(options, userOptions);\n }\n\n // TODO: remove v12, deprecated\n const initHighlighting = () => {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlighting() deprecated. Use highlightAll() now.\");\n };\n\n // TODO: remove v12, deprecated\n function initHighlightingOnLoad() {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlightingOnLoad() deprecated. Use highlightAll() now.\");\n }\n\n let wantsHighlight = false;\n\n /**\n * auto-highlights all pre>code elements on the page\n */\n function highlightAll() {\n // if we are called too early in the loading process\n if (document.readyState === \"loading\") {\n wantsHighlight = true;\n return;\n }\n\n const blocks = document.querySelectorAll(options.cssSelector);\n blocks.forEach(highlightElement);\n }\n\n function boot() {\n // if a highlight was requested before DOM was loaded, do now\n if (wantsHighlight) highlightAll();\n }\n\n // make sure we are in the browser environment\n if (typeof window !== 'undefined' && window.addEventListener) {\n window.addEventListener('DOMContentLoaded', boot, false);\n }\n\n /**\n * Register a language grammar module\n *\n * @param {string} languageName\n * @param {LanguageFn} languageDefinition\n */\n function registerLanguage(languageName, languageDefinition) {\n let lang = null;\n try {\n lang = languageDefinition(hljs);\n } catch (error$1) {\n error(\"Language definition for '{}' could not be registered.\".replace(\"{}\", languageName));\n // hard or soft error\n if (!SAFE_MODE) { throw error$1; } else { error(error$1); }\n // languages that have serious errors are replaced with essentially a\n // \"plaintext\" stand-in so that the code blocks will still get normal\n // css classes applied to them - and one bad language won't break the\n // entire highlighter\n lang = PLAINTEXT_LANGUAGE;\n }\n // give it a temporary name if it doesn't have one in the meta-data\n if (!lang.name) lang.name = languageName;\n languages[languageName] = lang;\n lang.rawDefinition = languageDefinition.bind(null, hljs);\n\n if (lang.aliases) {\n registerAliases(lang.aliases, { languageName });\n }\n }\n\n /**\n * Remove a language grammar module\n *\n * @param {string} languageName\n */\n function unregisterLanguage(languageName) {\n delete languages[languageName];\n for (const alias of Object.keys(aliases)) {\n if (aliases[alias] === languageName) {\n delete aliases[alias];\n }\n }\n }\n\n /**\n * @returns {string[]} List of language internal names\n */\n function listLanguages() {\n return Object.keys(languages);\n }\n\n /**\n * @param {string} name - name of the language to retrieve\n * @returns {Language | undefined}\n */\n function getLanguage(name) {\n name = (name || '').toLowerCase();\n return languages[name] || languages[aliases[name]];\n }\n\n /**\n *\n * @param {string|string[]} aliasList - single alias or list of aliases\n * @param {{languageName: string}} opts\n */\n function registerAliases(aliasList, { languageName }) {\n if (typeof aliasList === 'string') {\n aliasList = [aliasList];\n }\n aliasList.forEach(alias => { aliases[alias.toLowerCase()] = languageName; });\n }\n\n /**\n * Determines if a given language has auto-detection enabled\n * @param {string} name - name of the language\n */\n function autoDetection(name) {\n const lang = getLanguage(name);\n return lang && !lang.disableAutodetect;\n }\n\n /**\n * Upgrades the old highlightBlock plugins to the new\n * highlightElement API\n * @param {HLJSPlugin} plugin\n */\n function upgradePluginAPI(plugin) {\n // TODO: remove with v12\n if (plugin[\"before:highlightBlock\"] && !plugin[\"before:highlightElement\"]) {\n plugin[\"before:highlightElement\"] = (data) => {\n plugin[\"before:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n if (plugin[\"after:highlightBlock\"] && !plugin[\"after:highlightElement\"]) {\n plugin[\"after:highlightElement\"] = (data) => {\n plugin[\"after:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function addPlugin(plugin) {\n upgradePluginAPI(plugin);\n plugins.push(plugin);\n }\n\n /**\n *\n * @param {PluginEvent} event\n * @param {any} args\n */\n function fire(event, args) {\n const cb = event;\n plugins.forEach(function(plugin) {\n if (plugin[cb]) {\n plugin[cb](args);\n }\n });\n }\n\n /**\n * DEPRECATED\n * @param {HighlightedHTMLElement} el\n */\n function deprecateHighlightBlock(el) {\n deprecated(\"10.7.0\", \"highlightBlock will be removed entirely in v12.0\");\n deprecated(\"10.7.0\", \"Please use highlightElement now.\");\n\n return highlightElement(el);\n }\n\n /* Interface definition */\n Object.assign(hljs, {\n highlight,\n highlightAuto,\n highlightAll,\n highlightElement,\n // TODO: Remove with v12 API\n highlightBlock: deprecateHighlightBlock,\n configure,\n initHighlighting,\n initHighlightingOnLoad,\n registerLanguage,\n unregisterLanguage,\n listLanguages,\n getLanguage,\n registerAliases,\n autoDetection,\n inherit,\n addPlugin\n });\n\n hljs.debugMode = function() { SAFE_MODE = false; };\n hljs.safeMode = function() { SAFE_MODE = true; };\n hljs.versionString = version;\n\n hljs.regex = {\n concat: concat,\n lookahead: lookahead,\n either: either,\n optional: optional,\n anyNumberOfTimes: anyNumberOfTimes\n };\n\n for (const key in MODES) {\n // @ts-ignore\n if (typeof MODES[key] === \"object\") {\n // @ts-ignore\n deepFreeze$1(MODES[key]);\n }\n }\n\n // merge all the modes/regexes into our main object\n Object.assign(hljs, MODES);\n\n return hljs;\n};\n\n// export an \"instance\" of the highlighter\nvar highlight = HLJS({});\n\nmodule.exports = highlight;\nhighlight.HighlightJS = highlight;\nhighlight.default = highlight;\n","/*\nLanguage: JSON\nDescription: JSON (JavaScript Object Notation) is a lightweight data-interchange format.\nAuthor: Ivan Sagalaev <maniac@softwaremaniacs.org>\nWebsite: http://www.json.org\nCategory: common, protocols, web\n*/\n\nfunction json(hljs) {\n const ATTRIBUTE = {\n className: 'attr',\n begin: /\"(\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/,\n relevance: 1.01\n };\n const PUNCTUATION = {\n match: /[{}[\\],:]/,\n className: \"punctuation\",\n relevance: 0\n };\n // normally we would rely on `keywords` for this but using a mode here allows us\n // to use the very tight `illegal: \\S` rule later to flag any other character\n // as illegal indicating that despite looking like JSON we do not truly have\n // JSON and thus improve false-positively greatly since JSON will try and claim\n // all sorts of JSON looking stuff\n const LITERALS = { beginKeywords: [\n \"true\",\n \"false\",\n \"null\"\n ].join(\" \") };\n\n return {\n name: 'JSON',\n contains: [\n ATTRIBUTE,\n PUNCTUATION,\n hljs.QUOTE_STRING_MODE,\n LITERALS,\n hljs.C_NUMBER_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ],\n illegal: '\\\\S'\n };\n}\n\nexport { json as default };\n","import hljs from 'highlight.js/lib/core'\nimport json from 'highlight.js/lib/languages/json'\nimport { marked } from 'marked'\nimport { route } from 'preact-router'\nimport { useCallback, useEffect, useMemo, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Ad, Btn, BtnMenu, ChangelogTag, Giscus, Octicon } from '../components'\nimport { useLocale, useTitle, useVersion } from '../contexts'\nimport { useActiveTimeout, useHash } from '../hooks'\nimport type { VersionId } from '../services'\nimport { parseFrontMatter, versionContent } from '../Utils'\n\nconst HASH = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M6.368 1.01a.75.75 0 01.623.859L6.57 4.5h3.98l.46-2.868a.75.75 0 011.48.237L12.07 4.5h2.18a.75.75 0 010 1.5h-2.42l-.64 4h2.56a.75.75 0 010 1.5h-2.8l-.46 2.869a.75.75 0 01-1.48-.237l.42-2.632H5.45l-.46 2.869a.75.75 0 01-1.48-.237l.42-2.632H1.75a.75.75 0 010-1.5h2.42l.64-4H2.25a.75.75 0 010-1.5h2.8l.46-2.868a.75.75 0 01.858-.622zM9.67 10l.64-4H6.33l-.64 4h3.98z\"></path></svg>'\n\nhljs.registerLanguage('json', json)\n\nmarked.use({\n\thighlight: (code, lang) => {\n\t\tif (lang === '') return undefined\n\t\treturn hljs.highlight(code, { language: lang }).value\n\t},\n})\n\ninterface Props {\n\tpath?: string\n\tid?: string\n}\nexport function Guide({ id }: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion } = useVersion()\n\tconst { changeTitle } = useTitle()\n\n\tconst [content, setContent] = useState<string | undefined>(undefined)\n\n\tconst frontMatter = useMemo(() => {\n\t\tif (!content) return undefined\n\t\tconst data = parseFrontMatter(content)\n\t\tchangeTitle(data?.title, data?.versions)\n\t\treturn data\n\t}, [content])\n\n\tconst allowedVersions = useMemo(() => {\n\t\tconst orderedVersions = config.versions.map(v => v.id)\n\t\treturn (frontMatter?.versions as string[])\n\t\t\t?.sort((a, b) => orderedVersions.indexOf(b) - orderedVersions.indexOf(a))\n\t}, [frontMatter?.versions])\n\n\tconst guideVersion = useMemo(() => {\n\t\tif (!allowedVersions) return version\n\t\tif (allowedVersions.includes(version)) return version\n\t\treturn allowedVersions[0]\n\t}, [version, frontMatter?.versions])\n\n\tconst versionedContent = useMemo(() => {\n\t\tif (!content) return undefined\n\t\tconst guide = content.substring(content.indexOf('---', 3) + 3)\n\t\treturn versionContent(guide, guideVersion)\n\t}, [guideVersion, content])\n\n\tconst html = useMemo(() => {\n\t\tif (!versionedContent) return undefined\n\t\tmarked.use({ renderer: {\n\t\t\tlink(href, title, text) {\n\t\t\t\tif (href === null) return text\n\t\t\t\tconst title2 = title ? ` title=\"${title}\"` : '' \n\t\t\t\tconst target = href?.match(/^https?:\\/\\//) ? ' target=\"_blank\"' : ''\n\t\t\t\treturn `<a href=\"${href}\"${title2}${target}>${text}</a>`\n\t\t\t},\n\t\t\theading(text, level, raw, slugger) {\n\t\t\t\tconst id = slugger.slug(raw)\n\t\t\t\tconst link = `<span id=\"guide-${id}\" href=\"?version=${version}#${id}\">${HASH}</span>`\n\t\t\t\treturn `<h${level}>${link}${text}</h${level}>`\n\t\t\t},\n\t\t}})\n\t\treturn marked(versionedContent, { version: '1.19' } as any)\n\t}, [versionedContent])\n\n\tconst [hash, setHash] = useHash()\n\n\tconst scrollToHeading = useCallback(() => {\n\t\tif (!html) return\n\t\tconst heading = document.querySelector(`[id=guide-${hash.slice(1)}]`)\n\t\tif (heading) {\n\t\t\tconst top = heading.getBoundingClientRect().top + window.scrollY\n\t\t\twindow.scrollTo({ top: top - 68, behavior: 'smooth' })\n\t\t}\n\t}, [html, hash])\n\n\tuseEffect(() => {\n\t\tscrollToHeading()\n\t}, [html === undefined, hash])\n\n\tconst clickGuideContent = useCallback((e: MouseEvent) => {\n\t\tif (!(e.target instanceof HTMLSpanElement)) return\n\t\tconst targetHash = '#' + e.target.id.replace(/^guide-/, '')\n\t\tchangeVersion(version, false, true)\n\t\tsetHash(targetHash)\n\t\tif (targetHash === hash) {\n\t\t\tscrollToHeading()\n\t\t}\n\t}, [scrollToHeading, hash, version])\n\n\tuseEffect(() => {\n\t\t(async () => {\n\t\t\tconst res = await fetch(`../../guides/${id}.md`)\n\t\t\tconst text = await res.text()\n\t\t\tsetContent(text)\n\t\t})()\n\t}, [id])\n\n\tconst [shareActive, shareSuccess] = useActiveTimeout()\n\n\tconst onShare = useCallback(() => {\n\t\tconst url = `${location.origin}/guides/${id}/?version=${version}`\n\t\tnavigator.clipboard.writeText(url)\n\t\tshareSuccess()\n\t}, [id, version])\n\n\tconst onClickTag = (tag: string) => {\n\t\troute(`/guides/?tags=${tag}`)\n\t}\n\n\tconst [largeWidth] = useState(window.innerWidth > 600)\n\n\treturn <main>\n\t\t<div class=\"guide\">\n\t\t\t<div class=\"navigation\">\n\t\t\t\t<a class=\"btn btn-link\" href=\"/guides/\">\n\t\t\t\t\t{Octicon.arrow_left}\n\t\t\t\t\t{locale('guides.all')}\n\t\t\t\t</a>\n\t\t\t\t<Btn icon={shareActive ? 'check' : 'link'} label={locale('share')} onClick={onShare} active={shareActive} tooltip={locale(shareActive ? 'copied' : 'copy_share')} class=\"guide-share\" />\n\t\t\t\t{allowedVersions && <BtnMenu icon=\"tag\" label={guideVersion} tooltip={locale('switch_version')}>\n\t\t\t\t\t{allowedVersions.map((v: string) => \n\t\t\t\t\t\t<Btn label={v} active={v === guideVersion} onClick={() => changeVersion(v as VersionId)} />)}\n\t\t\t\t</BtnMenu>}\n\t\t\t</div>\n\t\t\t{(frontMatter?.tags && frontMatter.tags.length > 0) && <div class=\"guide-tags\">\n\t\t\t\t{frontMatter.tags.map((tag: string) =>\n\t\t\t\t\t<ChangelogTag label={tag} active onClick={() => onClickTag(tag)} />\n\t\t\t\t)}\n\t\t\t</div>}\n\t\t\t{html && <>\n\t\t\t\t<Ad id=\"guide\" type={largeWidth ? 'image' : 'text'} />\n\t\t\t\t<div class=\"guide-content\" dangerouslySetInnerHTML={{ __html: html }} onClick={clickGuideContent}></div>\n\t\t\t\t<Giscus />\n\t\t\t</>}\n\t\t</div>\n\t</main>\n}\n","import { useMemo, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Btn, BtnMenu, ChangelogTag, GuideCard, TextInput } from '../components'\nimport { useLocale, useTitle, useVersion } from '../contexts'\nimport { useSearchParam } from '../hooks'\nimport type { VersionId } from '../services'\n\ninterface Guide {\n\tid: string,\n\ttitle: string,\n\tversions?: string[],\n\ttags?: string[],\n}\n\ndeclare var __GUIDES__: Guide[]\n\nconst TAG_KEY = 'tags'\nconst TAG_SEP = '|'\n\ninterface Props {\n\tpath?: string\n}\nexport function Guides({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion } = useVersion()\n\tuseTitle(locale('title.guides'))\n\n\tconst [search, setSearch] = useState('')\n\tconst [tags, setTags] = useSearchParam(TAG_KEY)\n\tconst activeTags = useMemo(() => tags?.split(TAG_SEP) ?? [], [tags])\n\tconst toggleTag = (tag: string) => {\n\t\tif (activeTags.includes(tag)) {\n\t\t\tsetTags(activeTags.filter(t => t !== tag).join(TAG_SEP))\n\t\t} else {\n\t\t\tsetTags([...activeTags, tag].sort().join(TAG_SEP))\n\t\t}\n\t}\n\n\tconst [versionFilter, setVersionFiler] = useState(false)\n\n\tconst versionedGuides = useMemo(() => {\n\t\tif (versionFilter === false) return __GUIDES__\n\t\treturn __GUIDES__.filter(guide => {\n\t\t\treturn guide.versions?.includes(version)\n\t\t})\n\t}, [version, versionFilter])\n\n\tconst filteredGuides = useMemo(() => {\n\t\tconst query = search.split(' ').map(q => q.trim().toLowerCase()).filter(q => q.length > 0)\n\t\treturn versionedGuides.filter(guide => {\n\t\t\tif (!activeTags.every(tag => guide.tags?.includes(tag))) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tconst content = guide.tags?.join(' ') + ' ' + guide.title.toLowerCase()\n\t\t\treturn query.every(q => {\n\t\t\t\tif (q.startsWith('!')) {\n\t\t\t\t\treturn q.length === 1 || !content.includes(q.slice(1))\n\t\t\t\t}\n\t\t\t\treturn content.includes(q)\n\t\t\t})\n\t\t})\n\t}, [versionedGuides, search, tags])\n\n\treturn <main>\n\t\t<div class=\"guides\">\n\t\t\t<div class=\"changelog-query\">\n\t\t\t\t<TextInput class=\"btn btn-input changelog-search\" placeholder={locale('guides.search')} value={search} onChange={setSearch} />\n\t\t\t\t<BtnMenu icon=\"tag\" label={versionFilter ? version : locale('any_version')} tooltip={locale('switch_version')}>\n\t\t\t\t\t<Btn label={locale('any_version')} active={!versionFilter} onClick={() => setVersionFiler(!versionFilter)} />\n\t\t\t\t\t{config.versions.slice().reverse().map(v =>\n\t\t\t\t\t\t<Btn label={v.id} active={versionFilter && v.id === version} onClick={() => {changeVersion(v.id as VersionId); setVersionFiler(true)}} />\n\t\t\t\t\t)}\n\t\t\t\t</BtnMenu>\n\t\t\t</div>\n\t\t\t{activeTags.length > 0 && <div class=\"changelog-tags\">\n\t\t\t\t{activeTags.map(tag => <ChangelogTag label={tag} onClick={() => toggleTag(tag)} />)}\n\t\t\t</div>}\n\t\t\t{versionedGuides.length === 0 ? <>\n\t\t\t\t<span class=\"note\">{locale('guides.no_results.version')}</span>\n\t\t\t</> : filteredGuides.length === 0 ? <>\n\t\t\t\t<span class=\"note\">{locale('guides.no_results.query')}</span>\n\t\t\t</> : filteredGuides.map(g =>\n\t\t\t\t<GuideCard title={g.title} link={`/guides/${g.id}/`} tags={g.tags ?? []} versions={g.versions ?? []} activeTags={activeTags} toggleTag={toggleTag} />\n\t\t\t)}\n\t\t</div>\n\t</main>\n}\n","import config from '../../config.json'\nimport { Giscus, ToolCard } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport { cleanUrl } from '../Utils'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Home({}: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.home'))\n\treturn <main>\n\t\t<div class=\"home\">\n\t\t\t<ToolCard title=\"Data packs\">\n\t\t\t\t{config.generators.filter(g => !g.category).map(g => \n\t\t\t\t\t<ToolCard title={locale(g.id)} link={cleanUrl(g.url)} />\n\t\t\t\t)}\n\t\t\t\t<ToolCard title={locale('worldgen')} link=\"/worldgen/\" />\n\t\t\t</ToolCard>\n\t\t\t<ToolCard title=\"Resource packs\">\n\t\t\t\t{config.generators.filter(g => g.category === 'assets').map(g =>\n\t\t\t\t\t<ToolCard title={locale(g.id)} link={cleanUrl(g.url)} />\n\t\t\t\t)}\n\t\t\t</ToolCard>\n\t\t\t<ToolCard title=\"Report Inspector\" icon=\"report\"\n\t\t\t\tlink=\"https://misode.github.io/report/\"\n\t\t\t\tdesc=\"Analyse your performance reports\" />\n\t\t\t<ToolCard title=\"Minecraft Sounds\" icon=\"sounds\"\n\t\t\t\tlink=\"/sounds/\"\n\t\t\t\tdesc=\"Browse through and mix all the vanilla sounds\" />\n\t\t\t<ToolCard title=\"Data Pack Upgrader\"\n\t\t\t\tlink=\"https://misode.github.io/upgrader/\"\n\t\t\t\tdesc=\"Convert your data packs from 1.16 to 1.17 to 1.18\" />\n\t\t\t<ToolCard title=\"Technical Changelog\" link=\"/changelog/\" />\n\t\t\t<ToolCard title=\"Minecraft Versions\" link=\"/versions/\" />\n\t\t\t<ToolCard title=\"Data Pack Guides\" link=\"/guides/\" />\n\t\t\t<Giscus />\n\t\t</div>\n\t</main>\n}\n","import { useMemo } from 'preact/hooks'\nimport { Ad, TreeView } from '../components'\nimport { getFilePath, useLocale, useProject, useTitle } from '../contexts'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Project({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { project, openFile } = useProject()\n\tuseTitle(locale('title.project', project.name))\n\tconst entries = useMemo(() => project.files.map(getFilePath), project.files)\n\n\tconst selectFile = (entry: string) => {\n\t\tconst [, namespace, type, ...id] = entry.split('/')\n\t\topenFile(type, `${namespace}:${id}`)\n\t}\n\n\treturn <main>\n\t\t<Ad id=\"data-pack-project\" type=\"text\" />\n\t\t<div class=\"project\">\n\t\t\t<h2>{project.name}</h2>\n\t\t\t<div class=\"file-view\">\n\t\t\t\t<TreeView entries={entries} onSelect={selectFile}/>\n\t\t\t</div>\n\t\t</div>\n\t</main>\n}\n","import type { Howl, HowlOptions } from 'howler'\nimport { useEffect, useRef, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Btn, BtnMenu, ErrorPanel, SoundConfig, TextInput } from '../components'\nimport { useLocale, useTitle, useVersion } from '../contexts'\nimport type { SoundEvents, VersionId } from '../services'\nimport { fetchSounds } from '../services'\nimport { hexId } from '../Utils'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Sounds({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion } = useVersion()\n\tconst [error, setError] = useState<Error | null>(null)\n\tuseTitle(locale('title.sounds'))\n\n\tconst [howler, setHowler] = useState<undefined | ((options: HowlOptions) => Howl)>(undefined)\n\tuseEffect(() => {\n\t\t(async () => {\n\t\t\tconst howler = await import('howler')\n\t\t\tsetHowler(() => (options: HowlOptions) => new howler.Howl(options))\n\t\t})()\n\t}, [])\n\n\tconst [sounds, setSounds] = useState<SoundEvents>({})\n\tconst soundKeys = Object.keys(sounds ?? {})\n\tuseEffect(() => {\n\t\tfetchSounds(version)\n\t\t\t.then(setSounds)\n\t\t\t.catch(e => { console.error(e); setError(e) })\n\t}, [version])\n\n\tconst [search, setSearch] = useState('')\n\tconst [configs, setConfigs] = useState<SoundConfig[]>([])\n\tconst addConfig = () => {\n\t\tsetConfigs([{ id: hexId(), sound: search, delay: 0, pitch: 1, volume: 1 }, ...configs])\n\t}\n\tconst editConfig = (id: string) => (changes: Partial<SoundConfig>) => {\n\t\tsetConfigs(configs.map(c => c.id === id ? { ...c, ...changes } : c))\n\t}\n\tconst deleteConfig = (id: string) => () => {\n\t\tsetConfigs(configs.filter(c => c.id !== id))\n\t}\n\n\tconst [delayedPlay, setDelayedPlay] = useState(0)\n\tconst playAll = () => {\n\t\tsetDelayedPlay(delayedPlay + 1)\n\t}\n\n\tconst download = useRef<HTMLAnchorElement>(null)\n\tconst downloadFunction = () => {\n\t\tconst hasDelay = configs.some(c => c.delay > 0)\n\t\tconst content = configs\n\t\t\t.sort((a, b) => a.delay - b.delay)\n\t\t\t.map(c => `${hasDelay ? `execute if score @s delay matches ${c.delay} run ` : ''}playsound minecraft:${c.sound} master @s ~ ~ ~ ${c.volume} ${c.pitch}`)\n\t\t\t.join('\\n')\n\t\tdownload.current.setAttribute('href', 'data:text/plain;charset=utf-8,' + content + '%0A')\n\t\tdownload.current.setAttribute('download', 'sounds.mcfunction')\n\t\tdownload.current.click()\n\t}\n\n\treturn <main>\n\t\t{error && <ErrorPanel error={error} onDismiss={() => setError(null)} />}\n\t\t{soundKeys.length > 0 && <>\n\t\t\t<div class=\"controls sounds-controls\">\n\t\t\t\t<div class=\"sound-search-group\">\n\t\t\t\t\t<TextInput class=\"btn btn-input sound-search\" list=\"sound-list\" placeholder={locale('sounds.search')}\n\t\t\t\t\t\tvalue={search} onChange={setSearch} onEnter={addConfig} />\n\t\t\t\t\t<Btn icon=\"plus\" tooltip={locale('sounds.add_sound')} class=\"add-sound\" onClick={addConfig} />\n\t\t\t\t</div>\n\t\t\t\t{configs.length > 1 && <Btn icon=\"play\" label={ locale('sounds.play_all')} class=\"play-all-sounds\" onClick={playAll} />}\n\t\t\t\t<div class=\"spacer\"></div>\n\t\t\t\t<Btn icon=\"download\" label={locale('download')} tooltip={locale('sounds.download_function')} class=\"download-sounds\" onClick={downloadFunction} />\n\t\t\t\t<BtnMenu icon=\"tag\" label={version} tooltip={locale('switch_version')}>\n\t\t\t\t\t{config.versions.slice().reverse().map(v =>\n\t\t\t\t\t\t<Btn label={v.id} active={v.id === version} onClick={() => changeVersion(v.id as VersionId)} />\n\t\t\t\t\t)}\n\t\t\t\t</BtnMenu>\n\t\t\t</div>\n\t\t\t<div class=\"sounds\">\n\t\t\t\t{howler && configs.map(c =>\n\t\t\t\t\t<SoundConfig key={c.id} {...c} {...{ howler, sounds, delayedPlay }} onEdit={editConfig(c.id)} onDelete={deleteConfig(c.id)} />\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t<a ref={download} style=\"display: none;\"></a>\n\t\t</>}\n\t\t<datalist id=\"sound-list\">\n\t\t\t{soundKeys.map(s => <option key={s} value={s} />)}\n\t\t</datalist>\n\t</main>\n}\n","import { useEffect, useState } from 'preact/hooks'\nimport { Ad, ErrorPanel, Octicon, VersionDetail, VersionList } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport { useSearchParam } from '../hooks'\nimport type { VersionMeta } from '../services'\nimport { fetchVersions } from '../services'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Versions({}: Props) {\n\tconst { locale } = useLocale()\n\tconst [error, setError] = useState<Error | null>(null)\n\tuseTitle(locale('title.versions'))\n\n\tconst [versions, setVersions] = useState<VersionMeta[]>([])\n\tuseEffect(() => {\n\t\tfetchVersions()\n\t\t\t.then(versions => setVersions(versions))\n\t\t\t.catch(e => { console.error(e); setError(e) })\n\t}, [])\n\n\tconst [selectedId] = useSearchParam('id')\n\tconst selected = versions.find(v => v.id === selectedId)\n\n\tuseTitle(selected ? selected.name : 'Versions Explorer', selected ? [] : undefined)\n\n\tconst nextVersion = selected && getOffsetVersion(versions, selected, -1)\n\tconst previousVersion = selected && getOffsetVersion(versions, selected, 1)\n\n\treturn <main>\n\t\t<Ad type=\"text\" id=\"versions\" />\n\t\t{error && <ErrorPanel error={error} onDismiss={() => setError(null)} />}\n\t\t<div class=\"versions\">\n\t\t\t{selectedId ? <>\n\t\t\t\t<div class=\"navigation\">\n\t\t\t\t\t<a class=\"btn btn-link\" href=\"/versions/\">\n\t\t\t\t\t\t{Octicon.three_bars}\n\t\t\t\t\t\t{locale('versions.all')}\n\t\t\t\t\t</a>\n\t\t\t\t\t<a class=\"btn btn-link\" {...previousVersion ? {href: `/versions/?id=${previousVersion.id}`} : {disabled: true}}>\n\t\t\t\t\t\t{Octicon.arrow_left}\n\t\t\t\t\t\t{locale('versions.previous')}\n\t\t\t\t\t</a>\n\t\t\t\t\t<a class=\"btn btn-link\" {...nextVersion ? {href: `/versions/?id=${nextVersion.id}`} : {disabled: true}}>\n\t\t\t\t\t\t{locale('versions.next')}\n\t\t\t\t\t\t{Octicon.arrow_right}\n\t\t\t\t\t</a>\n\t\t\t\t</div>\n\t\t\t\t{selected ? <VersionDetail version={selected} />\n\t\t\t\t\t: <div class=\"version-detail\">\n\t\t\t\t\t\t<h2>{selectedId}</h2>\n\t\t\t\t\t\t<div class=\"version-info\">\n\t\t\t\t\t\t\t<p>This version does not exist. Only versions since 1.14 are tracked, or it may be too recent.</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>}\n\t\t\t</> : <VersionList versions={versions} link={id => `/versions/?id=${id}`} />}\n\t\t</div>\n\t</main>\n}\n\nfunction getOffsetVersion(versions: VersionMeta[], current: VersionMeta, offset: number) {\n\tconst currentIndex = versions.findIndex(v => v.id === current.id)\n\tconst offsetIndex = currentIndex + offset\n\tif (offsetIndex < 0 || offsetIndex >= versions.length) {\n\t\treturn undefined\n\t}\n\treturn versions[offsetIndex]\n}\n","import type { RouterOnChangeArgs } from 'preact-router'\nimport { Router } from 'preact-router'\nimport '../styles/global.css'\nimport '../styles/nodes.css'\nimport { Analytics } from './Analytics'\nimport { Header } from './components'\nimport { Category, Changelog, Generator, Guide, Guides, Home, Project, Sounds, Versions } from './pages'\nimport { cleanUrl } from './Utils'\n\nexport function App() {\n\tconst changeRoute = (e: RouterOnChangeArgs) => {\n\t\twindow.dispatchEvent(new CustomEvent('replacestate'))\n\t\t// Needs a timeout to ensure the title is set correctly\n\t\tsetTimeout(() => Analytics.pageview(cleanUrl(e.url)))\n\t}\n\n\treturn <>\n\t\t<Header />\n\t\t<Router onChange={changeRoute}>\n\t\t\t<Home path=\"/\" />\n\t\t\t<Category path=\"/worldgen\" category=\"worldgen\" />\n\t\t\t<Category path=\"/assets\" category=\"assets\" />\n\t\t\t<Sounds path=\"/sounds\" />\n\t\t\t<Changelog path=\"/changelog\" />\n\t\t\t<Versions path=\"/versions\" />\n\t\t\t<Project path=\"/project\" />\n\t\t\t<Guides path=\"/guides/\" />\n\t\t\t<Guide path=\"/guides/:id\" />\n\t\t\t<Generator default />\n\t\t</Router>\n\t</>\n}\n","import { render } from 'preact'\nimport '../styles/global.css'\nimport '../styles/nodes.css'\nimport { App } from './App'\nimport { LocaleProvider, ProjectProvider, ThemeProvider, TitleProvider, VersionProvider } from './contexts'\n\nfunction Main() {\n\treturn <LocaleProvider>\n\t\t<ThemeProvider>\n\t\t\t<VersionProvider>\n\t\t\t\t<TitleProvider>\n\t\t\t\t\t<ProjectProvider>\n\t\t\t\t\t\t<App />\n\t\t\t\t\t</ProjectProvider>\n\t\t\t\t</TitleProvider>\n\t\t\t</VersionProvider>\n\t\t</ThemeProvider>\n\t</LocaleProvider>\n}\n\nrender(<Main />, document.body)\n"],"file":"assets/index.18869b2a.js"} \ No newline at end of file diff --git a/assets/index.36354f76.js b/assets/index.36354f76.js deleted file mode 100644 index 581ac339..00000000 --- a/assets/index.36354f76.js +++ /dev/null @@ -1,182 +0,0 @@ -var mg=Object.defineProperty,vg=Object.defineProperties;var wg=Object.getOwnPropertyDescriptors;var Ds=Object.getOwnPropertySymbols;var Lc=Object.prototype.hasOwnProperty,$c=Object.prototype.propertyIsEnumerable;var Tc=(e,t,n)=>t in e?mg(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ce=(e,t)=>{for(var n in t||(t={}))Lc.call(t,n)&&Tc(e,n,t[n]);if(Ds)for(var n of Ds(t))$c.call(t,n)&&Tc(e,n,t[n]);return e},tt=(e,t)=>vg(e,wg(t));var Zo=e=>typeof e=="symbol"?e:e+"",Mc=(e,t)=>{var n={};for(var i in e)Lc.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(e!=null&&Ds)for(var i of Ds(e))t.indexOf(i)<0&&$c.call(e,i)&&(n[i]=e[i]);return n};const _g=function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const s of r)if(s.type==="childList")for(const u of s.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&i(u)}).observe(document,{childList:!0,subtree:!0});function n(r){const s={};return r.integrity&&(s.integrity=r.integrity),r.referrerpolicy&&(s.referrerPolicy=r.referrerpolicy),r.crossorigin==="use-credentials"?s.credentials="include":r.crossorigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function i(r){if(r.ep)return;r.ep=!0;const s=n(r);fetch(r.href,s)}};_g();var _e,$r,Bf,Rc,Tf,ro={},Ll=[],Ag=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function Mn(e,t){for(var n in t)e[n]=t[n];return e}function Lf(e){var t=e.parentNode;t&&t.removeChild(e)}function S(e,t,n){var i,r,s,u=arguments,o={};for(s in t)s=="key"?i=t[s]:s=="ref"?r=t[s]:o[s]=t[s];if(arguments.length>3)for(n=[n],s=3;s<arguments.length;s++)n.push(u[s]);if(n!=null&&(o.children=n),typeof e=="function"&&e.defaultProps!=null)for(s in e.defaultProps)o[s]===void 0&&(o[s]=e.defaultProps[s]);return Mr(e,o,i,r,null)}function Mr(e,t,n,i,r){var s={type:e,props:t,key:n,ref:i,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:r==null?++_e.__v:r};return _e.vnode!=null&&_e.vnode(s),s}function yg(){return{current:null}}function De(e){return e.children}function nn(e,t){this.props=e,this.context=t}function jr(e,t){if(t==null)return e.__?jr(e.__,e.__.__k.indexOf(e)+1):null;for(var n;t<e.__k.length;t++)if((n=e.__k[t])!=null&&n.__e!=null)return n.__e;return typeof e.type=="function"?jr(e):null}function $f(e){var t,n;if((e=e.__)!=null&&e.__c!=null){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if((n=e.__k[t])!=null&&n.__e!=null){e.__e=e.__c.base=n.__e;break}return $f(e)}}function Ha(e){(!e.__d&&(e.__d=!0)&&$r.push(e)&&!so.__r++||Rc!==_e.debounceRendering)&&((Rc=_e.debounceRendering)||Bf)(so)}function so(){for(var e;so.__r=$r.length;)e=$r.sort(function(t,n){return t.__v.__b-n.__v.__b}),$r=[],e.some(function(t){var n,i,r,s,u,o;t.__d&&(u=(s=(n=t).__v).__e,(o=n.__P)&&(i=[],(r=Mn({},s)).__v=s.__v+1,$l(o,s,r,n.__n,o.ownerSVGElement!==void 0,s.__h!=null?[u]:null,i,u==null?jr(s):u,s.__h),Of(i,s),s.__e!=u&&$f(s)))})}function Mf(e,t,n,i,r,s,u,o,c,a){var f,l,h,d,g,p,m,w=i&&i.__k||Ll,v=w.length;for(n.__k=[],f=0;f<t.length;f++)if((d=n.__k[f]=(d=t[f])==null||typeof d=="boolean"?null:typeof d=="string"||typeof d=="number"||typeof d=="bigint"?Mr(null,d,null,null,d):Array.isArray(d)?Mr(De,{children:d},null,null,null):d.__b>0?Mr(d.type,d.props,d.key,null,d.__v):d)!=null){if(d.__=n,d.__b=n.__b+1,(h=w[f])===null||h&&d.key==h.key&&d.type===h.type)w[f]=void 0;else for(l=0;l<v;l++){if((h=w[l])&&d.key==h.key&&d.type===h.type){w[l]=void 0;break}h=null}$l(e,d,h=h||ro,r,s,u,o,c,a),g=d.__e,(l=d.ref)&&h.ref!=l&&(m||(m=[]),h.ref&&m.push(h.ref,null,d),m.push(l,d.__c||g,d)),g!=null?(p==null&&(p=g),typeof d.type=="function"&&d.__k!=null&&d.__k===h.__k?d.__d=c=Rf(d,c,e):c=If(e,d,h,w,g,c),a||n.type!=="option"?typeof n.type=="function"&&(n.__d=c):e.value=""):c&&h.__e==c&&c.parentNode!=e&&(c=jr(h))}for(n.__e=p,f=v;f--;)w[f]!=null&&(typeof n.type=="function"&&w[f].__e!=null&&w[f].__e==n.__d&&(n.__d=jr(i,f+1)),Pf(w[f],w[f]));if(m)for(f=0;f<m.length;f++)Nf(m[f],m[++f],m[++f])}function Rf(e,t,n){var i,r;for(i=0;i<e.__k.length;i++)(r=e.__k[i])&&(r.__=e,t=typeof r.type=="function"?Rf(r,t,n):If(n,r,r,e.__k,r.__e,t));return t}function rn(e,t){return t=t||[],e==null||typeof e=="boolean"||(Array.isArray(e)?e.some(function(n){rn(n,t)}):t.push(e)),t}function If(e,t,n,i,r,s){var u,o,c;if(t.__d!==void 0)u=t.__d,t.__d=void 0;else if(n==null||r!=s||r.parentNode==null)e:if(s==null||s.parentNode!==e)e.appendChild(r),u=null;else{for(o=s,c=0;(o=o.nextSibling)&&c<i.length;c+=2)if(o==r)break e;e.insertBefore(r,s),u=s}return u!==void 0?u:r.nextSibling}function Eg(e,t,n,i,r){var s;for(s in n)s==="children"||s==="key"||s in t||oo(e,s,null,n[s],i);for(s in t)r&&typeof t[s]!="function"||s==="children"||s==="key"||s==="value"||s==="checked"||n[s]===t[s]||oo(e,s,t[s],n[s],i)}function Ic(e,t,n){t[0]==="-"?e.setProperty(t,n):e[t]=n==null?"":typeof n!="number"||Ag.test(t)?n:n+"px"}function oo(e,t,n,i,r){var s;e:if(t==="style")if(typeof n=="string")e.style.cssText=n;else{if(typeof i=="string"&&(e.style.cssText=i=""),i)for(t in i)n&&t in n||Ic(e.style,t,"");if(n)for(t in n)i&&n[t]===i[t]||Ic(e.style,t,n[t])}else if(t[0]==="o"&&t[1]==="n")s=t!==(t=t.replace(/Capture$/,"")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+s]=n,n?i||e.addEventListener(t,s?Nc:Oc,s):e.removeEventListener(t,s?Nc:Oc,s);else if(t!=="dangerouslySetInnerHTML"){if(r)t=t.replace(/xlink[H:h]/,"h").replace(/sName$/,"s");else if(t!=="href"&&t!=="list"&&t!=="form"&&t!=="tabIndex"&&t!=="download"&&t in e)try{e[t]=n==null?"":n;break e}catch{}typeof n=="function"||(n!=null&&(n!==!1||t[0]==="a"&&t[1]==="r")?e.setAttribute(t,n):e.removeAttribute(t))}}function Oc(e){this.l[e.type+!1](_e.event?_e.event(e):e)}function Nc(e){this.l[e.type+!0](_e.event?_e.event(e):e)}function $l(e,t,n,i,r,s,u,o,c){var a,f,l,h,d,g,p,m,w,v,A,_=t.type;if(t.constructor!==void 0)return null;n.__h!=null&&(c=n.__h,o=t.__e=n.__e,t.__h=null,s=[o]),(a=_e.__b)&&a(t);try{e:if(typeof _=="function"){if(m=t.props,w=(a=_.contextType)&&i[a.__c],v=a?w?w.props.value:a.__:i,n.__c?p=(f=t.__c=n.__c).__=f.__E:("prototype"in _&&_.prototype.render?t.__c=f=new _(m,v):(t.__c=f=new nn(m,v),f.constructor=_,f.render=xg),w&&w.sub(f),f.props=m,f.state||(f.state={}),f.context=v,f.__n=i,l=f.__d=!0,f.__h=[]),f.__s==null&&(f.__s=f.state),_.getDerivedStateFromProps!=null&&(f.__s==f.state&&(f.__s=Mn({},f.__s)),Mn(f.__s,_.getDerivedStateFromProps(m,f.__s))),h=f.props,d=f.state,l)_.getDerivedStateFromProps==null&&f.componentWillMount!=null&&f.componentWillMount(),f.componentDidMount!=null&&f.__h.push(f.componentDidMount);else{if(_.getDerivedStateFromProps==null&&m!==h&&f.componentWillReceiveProps!=null&&f.componentWillReceiveProps(m,v),!f.__e&&f.shouldComponentUpdate!=null&&f.shouldComponentUpdate(m,f.__s,v)===!1||t.__v===n.__v){f.props=m,f.state=f.__s,t.__v!==n.__v&&(f.__d=!1),f.__v=t,t.__e=n.__e,t.__k=n.__k,t.__k.forEach(function(E){E&&(E.__=t)}),f.__h.length&&u.push(f);break e}f.componentWillUpdate!=null&&f.componentWillUpdate(m,f.__s,v),f.componentDidUpdate!=null&&f.__h.push(function(){f.componentDidUpdate(h,d,g)})}f.context=v,f.props=m,f.state=f.__s,(a=_e.__r)&&a(t),f.__d=!1,f.__v=t,f.__P=e,a=f.render(f.props,f.state,f.context),f.state=f.__s,f.getChildContext!=null&&(i=Mn(Mn({},i),f.getChildContext())),l||f.getSnapshotBeforeUpdate==null||(g=f.getSnapshotBeforeUpdate(h,d)),A=a!=null&&a.type===De&&a.key==null?a.props.children:a,Mf(e,Array.isArray(A)?A:[A],t,n,i,r,s,u,o,c),f.base=t.__e,t.__h=null,f.__h.length&&u.push(f),p&&(f.__E=f.__=null),f.__e=!1}else s==null&&t.__v===n.__v?(t.__k=n.__k,t.__e=n.__e):t.__e=bg(n.__e,t,n,i,r,s,u,c);(a=_e.diffed)&&a(t)}catch(E){t.__v=null,(c||s!=null)&&(t.__e=o,t.__h=!!c,s[s.indexOf(o)]=null),_e.__e(E,t,n)}}function Of(e,t){_e.__c&&_e.__c(t,e),e.some(function(n){try{e=n.__h,n.__h=[],e.some(function(i){i.call(n)})}catch(i){_e.__e(i,n.__v)}})}function bg(e,t,n,i,r,s,u,o){var c,a,f,l,h=n.props,d=t.props,g=t.type,p=0;if(g==="svg"&&(r=!0),s!=null){for(;p<s.length;p++)if((c=s[p])&&(c===e||(g?c.localName==g:c.nodeType==3))){e=c,s[p]=null;break}}if(e==null){if(g===null)return document.createTextNode(d);e=r?document.createElementNS("http://www.w3.org/2000/svg",g):document.createElement(g,d.is&&d),s=null,o=!1}if(g===null)h===d||o&&e.data===d||(e.data=d);else{if(s=s&&Ll.slice.call(e.childNodes),a=(h=n.props||ro).dangerouslySetInnerHTML,f=d.dangerouslySetInnerHTML,!o){if(s!=null)for(h={},l=0;l<e.attributes.length;l++)h[e.attributes[l].name]=e.attributes[l].value;(f||a)&&(f&&(a&&f.__html==a.__html||f.__html===e.innerHTML)||(e.innerHTML=f&&f.__html||""))}if(Eg(e,d,h,r,o),f)t.__k=[];else if(p=t.props.children,Mf(e,Array.isArray(p)?p:[p],t,n,i,r&&g!=="foreignObject",s,u,e.firstChild,o),s!=null)for(p=s.length;p--;)s[p]!=null&&Lf(s[p]);o||("value"in d&&(p=d.value)!==void 0&&(p!==e.value||g==="progress"&&!p)&&oo(e,"value",p,h.value,!1),"checked"in d&&(p=d.checked)!==void 0&&p!==e.checked&&oo(e,"checked",p,h.checked,!1))}return e}function Nf(e,t,n){try{typeof e=="function"?e(t):e.current=t}catch(i){_e.__e(i,n)}}function Pf(e,t,n){var i,r,s;if(_e.unmount&&_e.unmount(e),(i=e.ref)&&(i.current&&i.current!==e.__e||Nf(i,null,t)),n||typeof e.type=="function"||(n=(r=e.__e)!=null),e.__e=e.__d=void 0,(i=e.__c)!=null){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(u){_e.__e(u,t)}i.base=i.__P=null}if(i=e.__k)for(s=0;s<i.length;s++)i[s]&&Pf(i[s],t,n);r!=null&&Lf(r)}function xg(e,t,n){return this.constructor(e,n)}function Qi(e,t,n){var i,r,s;_e.__&&_e.__(e,t),r=(i=typeof n=="function")?null:n&&n.__k||t.__k,s=[],$l(t,e=(!i&&n||t).__k=S(De,null,[e]),r||ro,ro,t.ownerSVGElement!==void 0,!i&&n?[n]:r?null:t.firstChild?Ll.slice.call(t.childNodes):null,s,!i&&n?n:r?r.__e:t.firstChild,i),Of(s,e)}function zf(e,t){Qi(e,t,zf)}function Uf(e,t,n){var i,r,s,u=arguments,o=Mn({},e.props);for(s in t)s=="key"?i=t[s]:s=="ref"?r=t[s]:o[s]=t[s];if(arguments.length>3)for(n=[n],s=3;s<arguments.length;s++)n.push(u[s]);return n!=null&&(o.children=n),Mr(e.type,o,i||e.key,r||e.ref,null)}function fr(e,t){var n={__c:t="__cC"+Tf++,__:e,Consumer:function(i,r){return i.children(r)},Provider:function(i){var r,s;return this.getChildContext||(r=[],(s={})[t]=this,this.getChildContext=function(){return s},this.shouldComponentUpdate=function(u){this.props.value!==u.value&&r.some(Ha)},this.sub=function(u){r.push(u);var o=u.componentWillUnmount;u.componentWillUnmount=function(){r.splice(r.indexOf(u),1),o&&o.call(u)}}),i.children}};return n.Provider.__=n.Consumer.contextType=n}_e={__e:function(e,t){for(var n,i,r;t=t.__;)if((n=t.__c)&&!n.__)try{if((i=n.constructor)&&i.getDerivedStateFromError!=null&&(n.setState(i.getDerivedStateFromError(e)),r=n.__d),n.componentDidCatch!=null&&(n.componentDidCatch(e),r=n.__d),r)return n.__E=n}catch(s){e=s}throw e},__v:0},nn.prototype.setState=function(e,t){var n;n=this.__s!=null&&this.__s!==this.state?this.__s:this.__s=Mn({},this.state),typeof e=="function"&&(e=e(Mn({},n),this.props)),e&&Mn(n,e),e!=null&&this.__v&&(t&&this.__h.push(t),Ha(this))},nn.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Ha(this))},nn.prototype.render=De,$r=[],Bf=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,so.__r=0,Tf=0;var Cg={};function Hf(e,t){for(var n in t)e[n]=t[n];return e}function jf(e,t,n){var i=/(?:\?([^#]*))?(#.*)?$/,r=e.match(i),s={},u;if(r&&r[1])for(var o=r[1].split("&"),c=0;c<o.length;c++){var a=o[c].split("=");s[decodeURIComponent(a[0])]=decodeURIComponent(a.slice(1).join("="))}e=ja(e.replace(i,"")),t=ja(t||"");for(var f=Math.max(e.length,t.length),l=0;l<f;l++)if(t[l]&&t[l].charAt(0)===":"){var h=t[l].replace(/(^:|[+*?]+$)/g,""),d=(t[l].match(/[+*?]+$/)||Cg)[0]||"",g=~d.indexOf("+"),p=~d.indexOf("*"),m=e[l]||"";if(!m&&!p&&(d.indexOf("?")<0||g)){u=!1;break}if(s[h]=decodeURIComponent(m),g||p){s[h]=e.slice(l).map(decodeURIComponent).join("/");break}}else if(t[l]!==e[l]){u=!1;break}return n.default!==!0&&u===!1?!1:s}function Fg(e,t){return e.rank<t.rank?1:e.rank>t.rank?-1:e.index-t.index}function Sg(e,t){return e.index=t,e.rank=Bg(e),e.props}function ja(e){return e.replace(/(^\/+|\/+$)/g,"").split("/")}function Dg(e){return e.charAt(0)==":"?1+"*+?".indexOf(e.charAt(e.length-1))||4:5}function kg(e){return ja(e).map(Dg).join("")}function Bg(e){return e.props.default?0:kg(e.props.path)}var Ot=null,gi=[],Wa=[],Tg={};function Lg(e,t){t===void 0&&(t="push"),Ot&&Ot[t]?Ot[t](e):typeof history!="undefined"&&history[t+"State"]&&history[t+"State"](null,null,e)}function er(){var e;return Ot&&Ot.location?e=Ot.location:Ot&&Ot.getCurrentLocation?e=Ot.getCurrentLocation():e=typeof location!="undefined"?location:Tg,""+(e.pathname||"")+(e.search||"")}function ri(e,t){return t===void 0&&(t=!1),typeof e!="string"&&e.url&&(t=e.replace,e=e.url),$g(e)&&Lg(e,t?"replace":"push"),Wf(e)}function $g(e){for(var t=gi.length;t--;)if(gi[t].canRoute(e))return!0;return!1}function Wf(e){for(var t=!1,n=0;n<gi.length;n++)gi[n].routeTo(e)===!0&&(t=!0);for(var i=Wa.length;i--;)Wa[i](e);return t}function Vf(e){if(!(!e||!e.getAttribute)){var t=e.getAttribute("href"),n=e.getAttribute("target");if(!(!t||!t.match(/^\//g)||n&&!n.match(/^_?self$/i)))return ri(t)}}function Mg(e){if(!(e.ctrlKey||e.metaKey||e.altKey||e.shiftKey||e.button!==0))return Vf(e.currentTarget||e.target||this),Gf(e)}function Gf(e){return e&&(e.stopImmediatePropagation&&e.stopImmediatePropagation(),e.stopPropagation&&e.stopPropagation(),e.preventDefault()),!1}function Rg(e){if(!(e.ctrlKey||e.metaKey||e.altKey||e.shiftKey||e.button!==0)){var t=e.target;do if(String(t.nodeName).toUpperCase()==="A"&&t.getAttribute("href")){if(t.hasAttribute("native"))return;if(Vf(t))return Gf(e)}while(t=t.parentNode)}}var Pc=!1;function Ig(){Pc||(typeof addEventListener=="function"&&(Ot||addEventListener("popstate",function(){Wf(er())}),addEventListener("click",Rg)),Pc=!0)}var In=function(e){function t(n){e.call(this,n),n.history&&(Ot=n.history),this.state={url:n.url||er()},Ig()}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.shouldComponentUpdate=function(i){return i.static!==!0?!0:i.url!==this.props.url||i.onChange!==this.props.onChange},t.prototype.canRoute=function(i){var r=rn(this.props.children);return this.getMatchingChildren(r,i,!1).length>0},t.prototype.routeTo=function(i){this.setState({url:i});var r=this.canRoute(i);return this.updating||this.forceUpdate(),r},t.prototype.componentWillMount=function(){gi.push(this),this.updating=!0},t.prototype.componentDidMount=function(){var i=this;Ot&&(this.unlisten=Ot.listen(function(r){i.routeTo(""+(r.pathname||"")+(r.search||""))})),this.updating=!1},t.prototype.componentWillUnmount=function(){typeof this.unlisten=="function"&&this.unlisten(),gi.splice(gi.indexOf(this),1)},t.prototype.componentWillUpdate=function(){this.updating=!0},t.prototype.componentDidUpdate=function(){this.updating=!1},t.prototype.getMatchingChildren=function(i,r,s){return i.filter(Sg).sort(Fg).map(function(u){var o=jf(r,u.props.path,u.props);if(o){if(s!==!1){var c={url:r,matches:o};return Hf(c,o),delete c.ref,delete c.key,Uf(u,c)}return u}}).filter(Boolean)},t.prototype.render=function(i,r){var s=i.children,u=i.onChange,o=r.url,c=this.getMatchingChildren(rn(s),o,!0),a=c[0]||null,f=this.previousUrl;return o!==f&&(this.previousUrl=o,typeof u=="function"&&u({router:this,url:o,previous:f,active:c,current:a})),a},t}(nn),Kf=function(e){return S("a",Hf({onClick:Mg},e))},Og=function(e){return S(e.component,e)};In.subscribers=Wa;In.getCurrentUrl=er;In.route=ri;In.Router=In;In.Route=Og;In.Link=Kf;In.exec=jf;var lt;(e=>{const t="Site",n="Generator";function a(A,_,E){ga("send","event",A,_,E)}function f(A,_){ga("set",`dimension${A}`,_)}function l(A){ga("set","page",A),ga("send","pageview")}e.pageview=l;function h(A){f(4,A),a(t,"set-language",A)}e.setLanguage=h;function d(A){f(1,A),a(t,"set-theme",A)}e.setTheme=d;function g(A){f(3,A),a(n,"set-version",A)}e.setVersion=g;function p(A){f(5,A),a(n,"set-preview",A)}e.setPreview=p;function m(A){f(6,A)}e.setGenerator=m;function w(A){f(7,A)}e.setPrefersColorScheme=w;function v(A,_){a(n,A,_)}e.generatorEvent=v})(lt||(lt={}));var Si,Ct,zc,tr=0,Va=[],Uc=_e.__b,Hc=_e.__r,jc=_e.diffed,Wc=_e.__c,Vc=_e.unmount;function dr(e,t){_e.__h&&_e.__h(Ct,e,tr||t),tr=0;var n=Ct.__H||(Ct.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function oe(e){return tr=1,Xf(Zf,e)}function Xf(e,t,n){var i=dr(Si++,2);return i.t=e,i.__c||(i.__=[n?n(t):Zf(void 0,t),function(r){var s=i.t(i.__[0],r);i.__[0]!==s&&(i.__=[s,i.__[1]],i.__c.setState({}))}],i.__c=Ct),i.__}function xe(e,t){var n=dr(Si++,3);!_e.__s&&Ml(n.__H,t)&&(n.__=e,n.__H=t,Ct.__H.__h.push(n))}function Jf(e,t){var n=dr(Si++,4);!_e.__s&&Ml(n.__H,t)&&(n.__=e,n.__H=t,Ct.__h.push(n))}function Xe(e){return tr=5,Qe(function(){return{current:e}},[])}function Ng(e,t,n){tr=6,Jf(function(){typeof e=="function"?e(t()):e&&(e.current=t())},n==null?n:n.concat(e))}function Qe(e,t){var n=dr(Si++,7);return Ml(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function At(e,t){return tr=8,Qe(function(){return e},t)}function pr(e){var t=Ct.context[e.__c],n=dr(Si++,9);return n.__c=e,t?(n.__==null&&(n.__=!0,t.sub(Ct)),t.props.value):e.__}function Pg(e,t){_e.useDebugValue&&_e.useDebugValue(t?t(e):e)}function Yf(e){var t=dr(Si++,10),n=oe();return t.__=e,Ct.componentDidCatch||(Ct.componentDidCatch=function(i){t.__&&t.__(i),n[1](i)}),[n[0],function(){n[1](void 0)}]}function zg(){Va.forEach(function(e){if(e.__P)try{e.__H.__h.forEach(Us),e.__H.__h.forEach(Ga),e.__H.__h=[]}catch(t){e.__H.__h=[],_e.__e(t,e.__v)}}),Va=[]}_e.__b=function(e){Ct=null,Uc&&Uc(e)},_e.__r=function(e){Hc&&Hc(e),Si=0;var t=(Ct=e.__c).__H;t&&(t.__h.forEach(Us),t.__h.forEach(Ga),t.__h=[])},_e.diffed=function(e){jc&&jc(e);var t=e.__c;t&&t.__H&&t.__H.__h.length&&(Va.push(t)!==1&&zc===_e.requestAnimationFrame||((zc=_e.requestAnimationFrame)||function(n){var i,r=function(){clearTimeout(s),Gc&&cancelAnimationFrame(i),setTimeout(n)},s=setTimeout(r,100);Gc&&(i=requestAnimationFrame(r))})(zg)),Ct=void 0},_e.__c=function(e,t){t.some(function(n){try{n.__h.forEach(Us),n.__h=n.__h.filter(function(i){return!i.__||Ga(i)})}catch(i){t.some(function(r){r.__h&&(r.__h=[])}),t=[],_e.__e(i,n.__v)}}),Wc&&Wc(e,t)},_e.unmount=function(e){Vc&&Vc(e);var t=e.__c;if(t&&t.__H)try{t.__H.__.forEach(Us)}catch(n){_e.__e(n,t.__v)}};var Gc=typeof requestAnimationFrame=="function";function Us(e){var t=Ct;typeof e.__c=="function"&&e.__c(),Ct=t}function Ga(e){var t=Ct;e.__c=e.__(),Ct=t}function Ml(e,t){return!e||e.length!==t.length||t.some(function(n,i){return n!==e[i]})}function Zf(e,t){return typeof t=="function"?t(e):t}function ps({type:e,id:t}){return xe(()=>{var n;(n=document.getElementById("ad-placeholder"))==null||n.remove(),"ethicalads"in window&ðicalads.load()},[]),S("div",{"data-ea-publisher":"misode-github-io","data-ea-type":e,class:"ad dark flat",id:t})}function Ee({icon:e,label:t,active:n,class:i,tooltip:r,tooltipLoc:s,onClick:u}){return S("div",{class:`btn${n?" active":""}${i?` ${i}`:""}${r?` tooltipped tip-${s!=null?s:"sw"}`:""}${n?" tip-shown":""}`,onClick:u,"aria-label":r},e&&$e[e],t&&S("span",null,t))}var tn=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function qf(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var ae={},bn={},An={};Object.defineProperty(An,"__esModule",{value:!0});An.ModelPath=An.Path=An.relativePath=void 0;function Ug(e,t){return t.reduce((n,i)=>i==="pop"?n.pop():n.push(i.push),e)}An.relativePath=Ug;class Dn{constructor(t,n){this.modelArr=t!=null?t:[],this.contextArr=n!=null?n:[]}last(){return this.modelArr[this.modelArr.length-1]}slice(t,n){return new Dn(this.modelArr.slice(t,n),this.contextArr)}shift(){return new Dn(this.modelArr.slice(1),this.contextArr)}pop(){return new Dn(this.modelArr.slice(0,-1),this.contextArr)}push(t){return this.modelPush(t).contextPush(t)}modelPush(t){return new Dn([...this.modelArr,t],[...this.contextArr])}contextPush(t){if(typeof t=="number")return this.copy();const n=t.startsWith("minecraft:")?t.slice(10):t;return new Dn([...this.modelArr],[...this.contextArr,n])}copy(){return new Dn([...this.modelArr],[...this.contextArr])}getArray(){return this.modelArr}withModel(t){return new kn(t,this)}getContext(){return this.contextArr}equals(t){return t.modelArr.length===this.modelArr.length&&t.modelArr.every((n,i)=>n===this.modelArr[i])}startsWith(t){return this.modelArr.length<t.modelArr.length?!1:t.modelArr.every((n,i)=>n===this.modelArr[i])}endsWith(t){const n=this.modelArr.length-t.modelArr.length;return n<0?!1:t.modelArr.every((i,r)=>i===this.modelArr[n+r])}toString(){return this.modelArr.map(t=>typeof t=="string"?`.${t}`:`[${t}]`).join("").replace(/^\./,"")}forEach(t,n){return this.modelArr.forEach(t,n)}}An.Path=Dn;class kn extends Dn{constructor(t,n){super(n==null?void 0:n.modelArr,n==null?void 0:n.contextArr),this.model=t}getModel(){return this.model}get(){var t;return(t=this.model)===null||t===void 0?void 0:t.get(this)}set(t){var n;(n=this.model)===null||n===void 0||n.set(this,t)}slice(t,n){return new kn(this.model,super.slice(t,n))}shift(){return new kn(this.model,super.shift())}pop(){return new kn(this.model,super.pop())}push(t){return this.modelPush(t).contextPush(t)}modelPush(t){return new kn(this.model,super.modelPush(t))}contextPush(t){return new kn(this.model,super.contextPush(t))}copy(){return new kn(this.model,super.copy())}}An.ModelPath=kn;var gr={};Object.defineProperty(gr,"__esModule",{value:!0});gr.Errors=void 0;class Hg{constructor(){this.errors=[]}add(t,n,...i){return this.errors.push({path:t,error:n,params:i}),!1}get(t,n=!1){return n?this.errors.filter(i=>i.path.equals(t)):this.errors.filter(i=>i.path.startsWith(t))}getAll(){return this.errors}clear(){this.errors=[]}count(){return this.errors.length}*[Symbol.iterator](){for(const t of this.errors)yield t}}gr.Errors=Hg;var yn={};Object.defineProperty(yn,"__esModule",{value:!0});yn.hexId=yn.quoteString=yn.escapeString=void 0;function Qf(e){return e.replace(/(\\|")/g,"\\$1")}yn.escapeString=Qf;function jg(e){return`"${Qf(e)}"`}yn.quoteString=jg;const Wg=e=>("0"+e.toString(16)).substr(-2);function Vg(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,Wg).join("")}yn.hexId=Vg;Object.defineProperty(bn,"__esModule",{value:!0});bn.DataModel=void 0;const Gg=An,Kc=gr,qo=yn;class Rl{constructor(t,n){var i,r,s,u;this.historyMax=(i=n==null?void 0:n.historyMax)!==null&&i!==void 0?i:50,this.verbose=(r=n==null?void 0:n.verbose)!==null&&r!==void 0?r:!1,this.wrapLists=(s=n==null?void 0:n.wrapLists)!==null&&s!==void 0?s:!1,this.schema=t;const o=(u=n==null?void 0:n.initialData)!==null&&u!==void 0?u:t.default();this.data=this.wrapLists?Rl.wrapLists(o):o,this.listeners=[],this.errors=new Kc.Errors,this.history=[JSON.stringify(this.data)],this.historyIndex=0}addListener(t){this.listeners.push(t)}removeListener(t){const n=this.listeners.indexOf(t);n>-1&&this.listeners.splice(n,1)}invalidate(){const t=JSON.stringify(this.data);this.history[this.historyIndex]!==t&&(this.historyIndex+=1,this.history.splice(this.historyIndex,this.historyMax,t),this.history.length>this.historyMax&&(this.history.splice(0,1),this.historyIndex-=1)),this.silentInvalidate()}silentInvalidate(){this.listeners.forEach(t=>{t.invalidated&&t.invalidated(this),t.errors&&t.errors(this.errors)})}reset(t,n){this.data=t,this.validate(n),this.invalidate()}get(t){let n=this.data;return t.forEach(i=>{if(n===void 0)return n;this.wrapLists&&typeof i=="number"?n=n[i].node:n=n[i]}),n}set(t,n,i){if(t.getArray().length===0){this.reset(n,!0);return}let r=this.data;t.pop().forEach(s=>{(r[s]===void 0||typeof r[s]=="string"||typeof r[s]=="number")&&(this.wrapLists&&typeof s=="number"?r[s]={node:{},id:(0,qo.hexId)()}:r[s]={}),this.wrapLists&&typeof s=="number"?r=r[s].node:r=r[s]}),r!==null&&(n===void 0||typeof n=="number"&&isNaN(n)?typeof t.last()=="number"?r.splice(t.last(),1):delete r[t.last()]:this.wrapLists&&typeof t.last()=="number"?r[t.last()]={node:n,id:(0,qo.hexId)()}:r[t.last()]=n,!i&&(this.verbose&&console.log("Set",t.toString(),JSON.stringify(n)),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<this.history.length-1&&(this.historyIndex+=1,this.data=JSON.parse(this.history[this.historyIndex]),this.validate(!1),this.silentInvalidate())}validate(t){var n;const i=new Gg.Path().withModel(this);this.errors.clear(),this.data=(n=this.schema.validate(i,this.data,this.errors,{loose:t,wrapLists:this.wrapLists}))!==null&&n!==void 0?n:{}}error(t,n,...i){const r=new Kc.Errors;r.add(t,n,i),this.listeners.forEach(s=>{s.errors&&s.errors(r)})}static wrapLists(t){if(Array.isArray(t)){const n=t.map(i=>({node:this.wrapLists(i),id:(0,qo.hexId)()}));for(const i of Object.getOwnPropertySymbols(t))n[i]=t[i];return n}else if(typeof t=="object"&&t!==null){const n={};Object.entries(t).map(([i,r])=>{n[i]=this.wrapLists(r)});for(const i of Object.getOwnPropertySymbols(t))n[i]=t[i];return n}else return t}static unwrapLists(t){if(Array.isArray(t)){const n=t.map(i=>this.unwrapLists(i.node));for(const i of Object.getOwnPropertySymbols(t))n[i]=t[i];return n}else if(typeof t=="object"&&t!==null){const n={};Object.entries(t).map(([i,r])=>{n[i]=this.unwrapLists(r)});for(const i of Object.getOwnPropertySymbols(t))n[i]=t[i];return n}else return t}}bn.DataModel=Rl;var Un={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.Keep=e.Opt=e.Has=e.Mod=e.Base=void 0,e.Base={type:()=>"base",category:()=>{},default:()=>{},enabled:()=>!0,keep:()=>!1,optional:()=>!1,navigate(){return this},pathPush:s=>s,suggest:()=>[],validate:(s,u)=>u,validationOption:()=>{},hook(s,u,...o){return s.base({node:this},u,...o)},canUpdate:()=>!1,update:()=>[]};const t=(s,u)=>Ce(Ce({},s),typeof u=="function"?u(s):u);e.Mod=t;const n=(s,u)=>(0,e.Mod)(u,{enabled:o=>o.push(s).get()!==void 0});e.Has=n;function i(s){return tt(Ce({},s),{optional:()=>!0})}e.Opt=i;function r(s){return tt(Ce({},s),{keep:()=>!0})}e.Keep=r})(Un);var Co={};Object.defineProperty(Co,"__esModule",{value:!0});Co.BooleanNode=void 0;const Kg=bn,Xg=Un,Jg=()=>tt(Ce({},Xg.Base),{type:()=>"boolean",default:()=>!1,suggest:()=>["false","true"],validate(e,t,n,i){return i.loose&&typeof t!="boolean"&&(t=i.wrapLists?Kg.DataModel.wrapLists(this.default()):this.default()),(typeof t!="boolean"||t===void 0)&&n.add(e,"error.expected_boolean"),t},hook(e,t,...n){var i;return((i=e.boolean)!==null&&i!==void 0?i:e.base).call(e,{node:this},t,...n)}});Co.BooleanNode=Jg;var ed={},gs={};Object.defineProperty(gs,"__esModule",{value:!0});gs.ListNode=void 0;const Yg=bn,Zg=Un,qg=(e,t)=>{var n,i;const r=(n=t==null?void 0:t.minLength)!==null&&n!==void 0?n:0,s=(i=t==null?void 0:t.maxLength)!==null&&i!==void 0?i:1/0,u=(t==null?void 0:t.minLength)&&(t==null?void 0:t.maxLength);return tt(Ce({},Zg.Base),{type:()=>"list",default:()=>t!=null&&t.minLength?[...Array(r)].map(o=>e.default()):[],navigate(o,c){const a=c+1;return o.getArray().length<=a?this:e.navigate(o,a)},pathPush(o,c){return o.push(parseInt(c.toString())).contextPush("entry")},validate(o,c,a,f){if(f.loose&&!Array.isArray(c)&&(c=f.wrapLists?Yg.DataModel.wrapLists(this.default()):this.default()),Array.isArray(c))u&&(c.length<r||c.length>s)?r===s?a.add(o,"error.invalid_list_range.exact",c.length,r):a.add(o,"error.invalid_list_range.between",c.length,r,s):c.length<r?a.add(o,"error.invalid_list_range.smaller",c.length,r):c.length>s&&a.add(o,"error.invalid_list_range.larger",c.length,s);else return a.add(o,"error.expected_list"),c;const l=c.map((h,d)=>{const g=e.validate(o.push(d),f.wrapLists?h.node:h,a,f);return f.wrapLists?{node:g,id:h.id}:g});for(const h of Object.getOwnPropertySymbols(c))l[h]=c[h];return l},hook(o,c,...a){var f;return((f=o.list)!==null&&f!==void 0?f:o.base).call(o,{node:this,children:e,config:t!=null?t:{}},c,...a)}})};gs.ListNode=qg;var ms={};Object.defineProperty(ms,"__esModule",{value:!0});ms.SwitchNode=void 0;const Qg=Un,em=e=>tt(Ce({},Qg.Base),{type(t){return this.activeCase(t,!0).node.type(t)},category(t){return this.activeCase(t,!0).node.category(t)},default:()=>e[0].node.default(),navigate(t,n){var i;const r=n+1;return(i=this.activeCase(t.slice(0,r)))===null||i===void 0?void 0:i.node.navigate(t,n)},pathPush(t,n){var i,r;return(r=(i=this.activeCase(t))===null||i===void 0?void 0:i.node.pathPush(t,n))!==null&&r!==void 0?r:t},suggest(t,n){var i,r;return(r=(i=this.activeCase(t))===null||i===void 0?void 0:i.node.suggest(t,n))!==null&&r!==void 0?r:e.filter(s=>s.match(t)).map(s=>s.node.suggest(t,n)).reduce((s,u)=>s.concat(u))},validate(t,n,i,r){let s=this.activeCase(t);return s===void 0?n:s.node.validate(t,n,i,r)},validationOption(t){var n;return(n=this.activeCase(t))===null||n===void 0?void 0:n.node.validationOption(t)},activeCase(t,n){const i=(s,u)=>{var o,c;return((o=u.priority)!==null&&o!==void 0?o:0)-((c=s.priority)!==null&&c!==void 0?c:0)},r=e.filter(s=>s.match(t)).sort(i);return n&&r.length===0?e.sort(i)[0]:r.length>0?r[0]:void 0},hook(t,n,...i){return this.activeCase(n,!0).node.hook(t,n,...i)}});ms.SwitchNode=em;(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ObjectOrPreset=e.StringOrList=e.ObjectOrList=e.ChoiceNode=void 0;const t=gs,n=ms,i=(u,o)=>{const c=(f,l)=>{if(f.match)return f.match(l);switch(f.type){case"list":return Array.isArray(l);case"object":return typeof l=="object"&&!Array.isArray(l);default:return typeof l===f.type}},a=(0,n.SwitchNode)(u.map(f=>({type:f.type,priority:f.priority,match:l=>c(f,l.get()),node:f.node})));return tt(Ce({},a),{validate(f,l,h,d){let g=a.activeCase(f,!0);return g.node.optional()?l:g.node.validate(f,l,h,d)},hook(f,l,...h){var d;return((d=f.choice)!==null&&d!==void 0?d:f.base).call(f,{node:this,choices:u,config:o!=null?o:{},switchNode:a},l,...h)}})};e.ChoiceNode=i;const r=u=>(o,c)=>(0,e.ChoiceNode)([{type:u,node:o,change:a=>{var f;return(f=a[0])!==null&&f!==void 0?f:o.default()}},{type:"list",node:(0,t.ListNode)(o),change:a=>a?[a]:[]}],c);e.ObjectOrList=r("object"),e.StringOrList=r("string");const s=(u,o,c)=>(0,e.ChoiceNode)([{type:"string",priority:1,node:u,change:a=>Object.keys(c)[0]},{type:"object",node:o,change:a=>{var f;return(f=c[a])!==null&&f!==void 0?f:c[Object.keys(c)[0]]}}]);e.ObjectOrPreset=s})(ed);var Fo={};Object.defineProperty(Fo,"__esModule",{value:!0});Fo.MapNode=void 0;const tm=Un,nm=bn,im=(e,t,n)=>tt(Ce({},tm.Base),{type:()=>"map",default:()=>({}),navigate(i,r){const s=r+1;return i.getArray().length<=s?this:t.navigate(i,s)},pathPush(i,r){return i.modelPush(r)},suggest:i=>e.suggest(i,""),validate(i,r,s,u){if(u.loose&&typeof r!="object"&&(r=u.wrapLists?nm.DataModel.wrapLists(this.default()):this.default()),r===null||typeof r!="object")return s.add(i,"error.expected_object"),r;const o={};Object.keys(r).forEach(c=>{e.validate(i,c,s,u),o[c]=t.validate(i.push(c),r[c],s,u)});for(const c of Object.getOwnPropertySymbols(r))o[c]=r[c];return o},validationOption(i){var r;return(r=n==null?void 0:n.validation)!==null&&r!==void 0?r:e.validationOption(i.push(""))},hook(i,r,...s){var u;return((u=i.map)!==null&&u!==void 0?u:i.base).call(i,{node:this,keys:e,children:t,config:n!=null?n:{}},r,...s)}});Fo.MapNode=im;var td={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.NumberEnum=e.NumberNode=void 0;const t=ae,n=bn,i=Un,r=u=>{var o,c,a;const f=u!=null&&u.color?!0:(o=u==null?void 0:u.integer)!==null&&o!==void 0?o:!1,l=u!=null&&u.color?0:(c=u==null?void 0:u.min)!==null&&c!==void 0?c:-1/0,h=u!=null&&u.color?16777215:(a=u==null?void 0:u.max)!==null&&a!==void 0?a:1/0,d=(u==null?void 0:u.min)!==void 0&&(u==null?void 0:u.max)!==void 0;return tt(Ce({},i.Base),{type:()=>"number",default:()=>l>0?l:0,validate(g,p,m,w){return w.loose&&typeof p!="number"&&(p=w.wrapLists?n.DataModel.wrapLists(this.default()):this.default()),typeof p!="number"?m.add(g,"error.expected_number"):f&&!Number.isInteger(p)?m.add(g,"error.expected_integer"):d&&(p<l||p>h)?m.add(g,"error.invalid_number_range.between",p,l,h):p<l?m.add(g,"error.invalid_number_range.smaller",p,l):p>h&&m.add(g,"error.invalid_number_range.larger",p,h),p},hook(g,p,...m){var w;return((w=g.number)!==null&&w!==void 0?w:g.base).call(g,{node:this,integer:f,min:l,max:h,between:d,config:u!=null?u:{}},p,...m)}})};e.NumberNode=r;const s=({integer:u,values:o})=>(0,t.Mod)((0,e.NumberNode)({integer:u}),c=>({validate:(a,f,l,h)=>(f=c.validate(a,f,l,h),o.includes(f)||l.add(a,"error.invalid_number_enum",o.join(", ")),f)}));e.NumberEnum=s})(td);var nd={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ObjectNode=e.Case=e.Switch=void 0;const t=Un,n=An,i=gr,r=yn,s=bn;e.Switch=Symbol("switch"),e.Case=Symbol("case");const u=(o,c)=>{var g,p;const m=o,{[g=e.Switch]:a,[p=e.Case]:f}=m,l=Mc(m,[Zo(g),Zo(p)]),h=w=>{if(a===void 0)return l;const v=(0,n.relativePath)(w,a).get(),A=f[v];return Ce(Ce({},l),A)},d=(w,v)=>{var A;const _=a?(0,n.relativePath)(w,a).get():void 0,E=a?(A=f[_])!==null&&A!==void 0?A:{}:{},b=Object.keys(E),x=c!=null&&c.context?new n.ModelPath(w.getModel(),new n.Path(w.getArray(),[c.context])):w;return(!(c!=null&&c.disableSwitchContext)&&_&&b.includes(v)?x.contextPush(_):x).push(v)};return tt(Ce({},t.Base),{type:()=>"object",category:()=>c==null?void 0:c.category,default:()=>({}),keep(){return this.optional()},navigate(w,v){const A=v+1,_=w.getArray();if(_.length<=A)return this;const b=h(w.slice(0,A))[_[A]];return b==null?void 0:b.navigate(w,A)},pathPush(w,v){return d(w,v.toString())},suggest(w,v){const A=h(w),_=Object.keys(typeof v=="object"?v:{});return Object.keys(A).filter(E=>A[E].enabled(w)).filter(E=>!_.includes(E)).map(r.quoteString)},validate(w,v,A,_){if(_.loose&&typeof v!="object"&&(v=_.wrapLists?s.DataModel.wrapLists(this.default()):this.default()),typeof v!="object"||v===null)return A.add(w,"error.expected_object"),v;let E=l;if(a){const B=(0,n.relativePath)(w,a);let T=B.get();if(w.equals(B.pop())){const M=B.last();T=l[M].validate(w.push(M),v[M],new i.Errors,_)}E=Ce(Ce({},E),f[T])}const b=Object.keys(E),x=b.filter(B=>!E[B].optional()),y=new Set([...x,...Object.keys(v)]),C={};y.forEach(B=>{if(b.includes(B)){if(!E[B].enabled(w))return;const T=E[B].validate(w.push(B),v[B],A,_);!E[B].keep()&&E[B].optional()&&(T===void 0||Array.isArray(T)&&T.length===0||T.constructor===Object&&Object.keys(T).length===0)?delete C[B]:(C[B]=T,w.getModel().set(w.push(B),T,!0))}else C[B]=v[B]});for(const B of Object.getOwnPropertySymbols(v))C[B]=v[B];return C},hook(w,v,...A){var _;return((_=w.object)!==null&&_!==void 0?_:w.base).call(w,{node:this,fields:l,config:c!=null?c:{},filter:a,cases:f,getActiveFields:h,getChildModelPath:d},v,...A)}})};e.ObjectNode=u})(nd);var So={};Object.defineProperty(So,"__esModule",{value:!0});So.Reference=void 0;const rm=(e,t)=>({type(n){return e.get(t).type.bind(this)(n)},category(n){return e.get(t).category.bind(this)(n)},default(){return e.get(t).default.bind(this)()},transform(n,i){return e.get(t).transform(n,i)},enabled(n){return e.get(t).enabled.bind(this)(n)},keep(){return e.get(t).keep.bind(this)()},optional(){return e.get(t).optional.bind(this)()},navigate(n,i){return e.get(t).navigate.bind(this)(n,i)},pathPush(n,i){return e.get(t).pathPush.bind(this)(n,i)},suggest(n,i){return e.get(t).suggest.bind(this)(n,i)},validate(n,i,r,s){return e.get(t).validate.bind(this)(n,i,r,s)},validationOption(n){return e.get(t).validationOption.bind(this)(n)},hook(n,i,...r){return e.get(t).hook.bind(this)(n,i,...r)},activeCase(n,i){return e.get(t).activeCase.bind(this)(n,i)},canUpdate(n,i){return e.get(t).canUpdate.bind(this)(n,i)},update(n,i){return e.get(t).update.bind(this)(n,i)}});So.Reference=rm;var Do={};Object.defineProperty(Do,"__esModule",{value:!0});Do.StringNode=void 0;const sm=Un,om=yn,am=bn,Xc=e=>!!(e!=null&&e.enum),Jc=e=>!!(e!=null&&e.validator),lm=(e,t)=>{const n=()=>{var i,r,s,u;if(Xc(t))return typeof t.enum=="string"?(i=e==null?void 0:e.get(t.enum))!==null&&i!==void 0?i:[]:t.enum;if((t==null?void 0:t.validator)==="resource"){if(typeof t.params.pool=="string"){if(t.params.requireTag)return(r=e==null?void 0:e.get(`tag/${t.params.pool}`).map(c=>`#${c}`))!==null&&r!==void 0?r:[];const o=t.params.pool.replace(/^\$/,"");return[...t.params.allowTag?(s=e==null?void 0:e.get(`tag/${o}`).map(c=>`#${c}`))!==null&&s!==void 0?s:[]:[],...(u=e==null?void 0:e.get(o))!==null&&u!==void 0?u:[]]}return t.params.pool}return[]};return tt(Ce({},sm.Base),{type:()=>"string",default:()=>"",validate(i,r,s,u){if(u.loose&&typeof r!="string"&&(r=(u.wrapLists?am.DataModel.wrapLists(this.default()):this.default())||void 0),typeof r!="string")return s.add(i,"error.expected_string"),r;if(Jc(t)){if(t.validator==="resource"&&r.length>0&&!r.includes(":")&&(r=r.startsWith("#")?"#minecraft:"+r.slice(1):"minecraft:"+r),t.validator==="resource"&&typeof r=="string"){let c=r;if(r.startsWith("#")){if(typeof t.params.pool=="string"&&t.params.pool.startsWith("$tag/"))return s.add(i,"error.disallowed_tag_prefix"),r;if(!t.params.allowTag&&!t.params.requireTag)return s.add(i,"error.disallowed_tag"),r;c=c.slice(1)}else if(t.params.requireTag)return s.add(i,"error.expected_tag"),r;if(!c.match(/^(?:[_\-a-z0-9.]*:)?[_\-a-z0-9/.]*$/g))return s.add(i,"error.invalid_resource_location"),r}if(t.validator==="resource"&&(typeof t.params.pool=="string"&&t.params.pool.startsWith("$")||(t.params.allowTag||t.params.requireTag)&&r.startsWith("#")||t.params.isDefinition||t.params.allowUnknown))return r}if(Xc(t)&&t.additional)return r;const o=n();return o.length>0&&!o.includes(r)&&s.add(i,"error.invalid_enum_option",r),r},suggest:()=>n().map(om.quoteString),validationOption(){return Jc(t)?t:void 0},hook(i,r,...s){var u;return((u=i.string)!==null&&u!==void 0?u:i.base).call(i,{node:this,getValues:n,config:t},r,...s)}})};Do.StringNode=lm;var id={};Object.defineProperty(id,"__esModule",{value:!0});var nr={};Object.defineProperty(nr,"__esModule",{value:!0});nr.CollectionRegistry=nr.SchemaRegistry=void 0;class cm{constructor(){this.registry={}}register(t,n){this.registry[t]=n}get(t){const n=this.registry[t];return n===void 0&&console.error(`Tried to access schema "${t}", but that doesn't exist.`),n}}nr.SchemaRegistry=cm;class um{constructor(){this.registry={}}register(t,n){this.registry[t]=n}get(t){const n=this.registry[t];return n===void 0&&console.warn(`Tried to access collection "${t}", but that doesn't exist.`),n!=null?n:[]}}nr.CollectionRegistry=um;var rd={};Object.defineProperty(rd,"__esModule",{value:!0});(function(e){var t=tn&&tn.__createBinding||(Object.create?function(i,r,s,u){u===void 0&&(u=s);var o=Object.getOwnPropertyDescriptor(r,s);(!o||("get"in o?!r.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return r[s]}}),Object.defineProperty(i,u,o)}:function(i,r,s,u){u===void 0&&(u=s),i[u]=r[s]}),n=tn&&tn.__exportStar||function(i,r){for(var s in i)s!=="default"&&!Object.prototype.hasOwnProperty.call(r,s)&&t(r,i,s)};Object.defineProperty(e,"__esModule",{value:!0}),n(bn,e),n(An,e),n(gr,e),n(Un,e),n(Co,e),n(ed,e),n(gs,e),n(Fo,e),n(td,e),n(nd,e),n(So,e),n(Do,e),n(ms,e),n(id,e),n(nr,e),n(rd,e)})(ae);var at={},vs={},Zt={};function sd(e){return typeof e=="undefined"||e===null}function hm(e){return typeof e=="object"&&e!==null}function fm(e){return Array.isArray(e)?e:sd(e)?[]:[e]}function dm(e,t){var n,i,r,s;if(t)for(s=Object.keys(t),n=0,i=s.length;n<i;n+=1)r=s[n],e[r]=t[r];return e}function pm(e,t){var n="",i;for(i=0;i<t;i+=1)n+=e;return n}function gm(e){return e===0&&Number.NEGATIVE_INFINITY===1/e}Zt.isNothing=sd;Zt.isObject=hm;Zt.toArray=fm;Zt.repeat=pm;Zt.isNegativeZero=gm;Zt.extend=dm;function Wr(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}Wr.prototype=Object.create(Error.prototype);Wr.prototype.constructor=Wr;Wr.prototype.toString=function(t){var n=this.name+": ";return n+=this.reason||"(unknown reason)",!t&&this.mark&&(n+=" "+this.mark.toString()),n};var ws=Wr,Yc=Zt;function Il(e,t,n,i,r){this.name=e,this.buffer=t,this.position=n,this.line=i,this.column=r}Il.prototype.getSnippet=function(t,n){var i,r,s,u,o;if(!this.buffer)return null;for(t=t||4,n=n||75,i="",r=this.position;r>0&&`\0\r -\x85\u2028\u2029`.indexOf(this.buffer.charAt(r-1))===-1;)if(r-=1,this.position-r>n/2-1){i=" ... ",r+=5;break}for(s="",u=this.position;u<this.buffer.length&&`\0\r -\x85\u2028\u2029`.indexOf(this.buffer.charAt(u))===-1;)if(u+=1,u-this.position>n/2-1){s=" ... ",u-=5;break}return o=this.buffer.slice(r,u),Yc.repeat(" ",t)+i+o+s+` -`+Yc.repeat(" ",t+this.position-r+i.length)+"^"};Il.prototype.toString=function(t){var n,i="";return this.name&&(i+='in "'+this.name+'" '),i+="at line "+(this.line+1)+", column "+(this.column+1),t||(n=this.getSnippet(),n&&(i+=`: -`+n)),i};var mm=Il,Zc=ws,vm=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],wm=["scalar","sequence","mapping"];function _m(e){var t={};return e!==null&&Object.keys(e).forEach(function(n){e[n].forEach(function(i){t[String(i)]=n})}),t}function Am(e,t){if(t=t||{},Object.keys(t).forEach(function(n){if(vm.indexOf(n)===-1)throw new Zc('Unknown option "'+n+'" is met in definition of "'+e+'" YAML type.')}),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(n){return n},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=_m(t.styleAliases||null),wm.indexOf(this.kind)===-1)throw new Zc('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}var yt=Am,qc=Zt,Hs=ws,ym=yt;function Ka(e,t,n){var i=[];return e.include.forEach(function(r){n=Ka(r,t,n)}),e[t].forEach(function(r){n.forEach(function(s,u){s.tag===r.tag&&s.kind===r.kind&&i.push(u)}),n.push(r)}),n.filter(function(r,s){return i.indexOf(s)===-1})}function Em(){var e={scalar:{},sequence:{},mapping:{},fallback:{}},t,n;function i(r){e[r.kind][r.tag]=e.fallback[r.tag]=r}for(t=0,n=arguments.length;t<n;t+=1)arguments[t].forEach(i);return e}function ji(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach(function(t){if(t.loadKind&&t.loadKind!=="scalar")throw new Hs("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}),this.compiledImplicit=Ka(this,"implicit",[]),this.compiledExplicit=Ka(this,"explicit",[]),this.compiledTypeMap=Em(this.compiledImplicit,this.compiledExplicit)}ji.DEFAULT=null;ji.create=function(){var t,n;switch(arguments.length){case 1:t=ji.DEFAULT,n=arguments[0];break;case 2:t=arguments[0],n=arguments[1];break;default:throw new Hs("Wrong number of arguments for Schema.create function")}if(t=qc.toArray(t),n=qc.toArray(n),!t.every(function(i){return i instanceof ji}))throw new Hs("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!n.every(function(i){return i instanceof ym}))throw new Hs("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new ji({include:t,explicit:n})};var mr=ji,bm=yt,xm=new bm("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return e!==null?e:""}}),Cm=yt,Fm=new Cm("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return e!==null?e:[]}}),Sm=yt,Dm=new Sm("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return e!==null?e:{}}}),km=mr,Ol=new km({explicit:[xm,Fm,Dm]}),Bm=yt;function Tm(e){if(e===null)return!0;var t=e.length;return t===1&&e==="~"||t===4&&(e==="null"||e==="Null"||e==="NULL")}function Lm(){return null}function $m(e){return e===null}var Mm=new Bm("tag:yaml.org,2002:null",{kind:"scalar",resolve:Tm,construct:Lm,predicate:$m,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"}),Rm=yt;function Im(e){if(e===null)return!1;var t=e.length;return t===4&&(e==="true"||e==="True"||e==="TRUE")||t===5&&(e==="false"||e==="False"||e==="FALSE")}function Om(e){return e==="true"||e==="True"||e==="TRUE"}function Nm(e){return Object.prototype.toString.call(e)==="[object Boolean]"}var Pm=new Rm("tag:yaml.org,2002:bool",{kind:"scalar",resolve:Im,construct:Om,predicate:Nm,represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"}),zm=Zt,Um=yt;function Hm(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}function jm(e){return 48<=e&&e<=55}function Wm(e){return 48<=e&&e<=57}function Vm(e){if(e===null)return!1;var t=e.length,n=0,i=!1,r;if(!t)return!1;if(r=e[n],(r==="-"||r==="+")&&(r=e[++n]),r==="0"){if(n+1===t)return!0;if(r=e[++n],r==="b"){for(n++;n<t;n++)if(r=e[n],r!=="_"){if(r!=="0"&&r!=="1")return!1;i=!0}return i&&r!=="_"}if(r==="x"){for(n++;n<t;n++)if(r=e[n],r!=="_"){if(!Hm(e.charCodeAt(n)))return!1;i=!0}return i&&r!=="_"}for(;n<t;n++)if(r=e[n],r!=="_"){if(!jm(e.charCodeAt(n)))return!1;i=!0}return i&&r!=="_"}if(r==="_")return!1;for(;n<t;n++)if(r=e[n],r!=="_"){if(r===":")break;if(!Wm(e.charCodeAt(n)))return!1;i=!0}return!i||r==="_"?!1:r!==":"?!0:/^(:[0-5]?[0-9])+$/.test(e.slice(n))}function Gm(e){var t=e,n=1,i,r,s=[];return t.indexOf("_")!==-1&&(t=t.replace(/_/g,"")),i=t[0],(i==="-"||i==="+")&&(i==="-"&&(n=-1),t=t.slice(1),i=t[0]),t==="0"?0:i==="0"?t[1]==="b"?n*parseInt(t.slice(2),2):t[1]==="x"?n*parseInt(t,16):n*parseInt(t,8):t.indexOf(":")!==-1?(t.split(":").forEach(function(u){s.unshift(parseInt(u,10))}),t=0,r=1,s.forEach(function(u){t+=u*r,r*=60}),n*t):n*parseInt(t,10)}function Km(e){return Object.prototype.toString.call(e)==="[object Number]"&&e%1===0&&!zm.isNegativeZero(e)}var Xm=new Um("tag:yaml.org,2002:int",{kind:"scalar",resolve:Vm,construct:Gm,predicate:Km,represent:{binary:function(e){return e>=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),od=Zt,Jm=yt,Ym=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Zm(e){return!(e===null||!Ym.test(e)||e[e.length-1]==="_")}function qm(e){var t,n,i,r;return t=e.replace(/_/g,"").toLowerCase(),n=t[0]==="-"?-1:1,r=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),t===".inf"?n===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:t===".nan"?NaN:t.indexOf(":")>=0?(t.split(":").forEach(function(s){r.unshift(parseFloat(s,10))}),t=0,i=1,r.forEach(function(s){t+=s*i,i*=60}),n*t):n*parseFloat(t,10)}var Qm=/^[-+]?[0-9]+e/;function e1(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(od.isNegativeZero(e))return"-0.0";return n=e.toString(10),Qm.test(n)?n.replace("e",".e"):n}function t1(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||od.isNegativeZero(e))}var n1=new Jm("tag:yaml.org,2002:float",{kind:"scalar",resolve:Zm,construct:qm,predicate:t1,represent:e1,defaultStyle:"lowercase"}),i1=mr,ad=new i1({include:[Ol],implicit:[Mm,Pm,Xm,n1]}),r1=mr,ld=new r1({include:[ad]}),s1=yt,cd=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),ud=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function o1(e){return e===null?!1:cd.exec(e)!==null||ud.exec(e)!==null}function a1(e){var t,n,i,r,s,u,o,c=0,a=null,f,l,h;if(t=cd.exec(e),t===null&&(t=ud.exec(e)),t===null)throw new Error("Date resolve error");if(n=+t[1],i=+t[2]-1,r=+t[3],!t[4])return new Date(Date.UTC(n,i,r));if(s=+t[4],u=+t[5],o=+t[6],t[7]){for(c=t[7].slice(0,3);c.length<3;)c+="0";c=+c}return t[9]&&(f=+t[10],l=+(t[11]||0),a=(f*60+l)*6e4,t[9]==="-"&&(a=-a)),h=new Date(Date.UTC(n,i,r,s,u,o,c)),a&&h.setTime(h.getTime()-a),h}function l1(e){return e.toISOString()}var c1=new s1("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:o1,construct:a1,instanceOf:Date,represent:l1}),u1=yt;function h1(e){return e==="<<"||e===null}var f1=new u1("tag:yaml.org,2002:merge",{kind:"scalar",resolve:h1}),fi;try{var d1=qf;fi=d1("buffer").Buffer}catch{}var p1=yt,Nl=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= -\r`;function g1(e){if(e===null)return!1;var t,n,i=0,r=e.length,s=Nl;for(n=0;n<r;n++)if(t=s.indexOf(e.charAt(n)),!(t>64)){if(t<0)return!1;i+=6}return i%8===0}function m1(e){var t,n,i=e.replace(/[\r\n=]/g,""),r=i.length,s=Nl,u=0,o=[];for(t=0;t<r;t++)t%4===0&&t&&(o.push(u>>16&255),o.push(u>>8&255),o.push(u&255)),u=u<<6|s.indexOf(i.charAt(t));return n=r%4*6,n===0?(o.push(u>>16&255),o.push(u>>8&255),o.push(u&255)):n===18?(o.push(u>>10&255),o.push(u>>2&255)):n===12&&o.push(u>>4&255),fi?fi.from?fi.from(o):new fi(o):o}function v1(e){var t="",n=0,i,r,s=e.length,u=Nl;for(i=0;i<s;i++)i%3===0&&i&&(t+=u[n>>18&63],t+=u[n>>12&63],t+=u[n>>6&63],t+=u[n&63]),n=(n<<8)+e[i];return r=s%3,r===0?(t+=u[n>>18&63],t+=u[n>>12&63],t+=u[n>>6&63],t+=u[n&63]):r===2?(t+=u[n>>10&63],t+=u[n>>4&63],t+=u[n<<2&63],t+=u[64]):r===1&&(t+=u[n>>2&63],t+=u[n<<4&63],t+=u[64],t+=u[64]),t}function w1(e){return fi&&fi.isBuffer(e)}var _1=new p1("tag:yaml.org,2002:binary",{kind:"scalar",resolve:g1,construct:m1,predicate:w1,represent:v1}),A1=yt,y1=Object.prototype.hasOwnProperty,E1=Object.prototype.toString;function b1(e){if(e===null)return!0;var t=[],n,i,r,s,u,o=e;for(n=0,i=o.length;n<i;n+=1){if(r=o[n],u=!1,E1.call(r)!=="[object Object]")return!1;for(s in r)if(y1.call(r,s))if(!u)u=!0;else return!1;if(!u)return!1;if(t.indexOf(s)===-1)t.push(s);else return!1}return!0}function x1(e){return e!==null?e:[]}var C1=new A1("tag:yaml.org,2002:omap",{kind:"sequence",resolve:b1,construct:x1}),F1=yt,S1=Object.prototype.toString;function D1(e){if(e===null)return!0;var t,n,i,r,s,u=e;for(s=new Array(u.length),t=0,n=u.length;t<n;t+=1){if(i=u[t],S1.call(i)!=="[object Object]"||(r=Object.keys(i),r.length!==1))return!1;s[t]=[r[0],i[r[0]]]}return!0}function k1(e){if(e===null)return[];var t,n,i,r,s,u=e;for(s=new Array(u.length),t=0,n=u.length;t<n;t+=1)i=u[t],r=Object.keys(i),s[t]=[r[0],i[r[0]]];return s}var B1=new F1("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:D1,construct:k1}),T1=yt,L1=Object.prototype.hasOwnProperty;function $1(e){if(e===null)return!0;var t,n=e;for(t in n)if(L1.call(n,t)&&n[t]!==null)return!1;return!0}function M1(e){return e!==null?e:{}}var R1=new T1("tag:yaml.org,2002:set",{kind:"mapping",resolve:$1,construct:M1}),I1=mr,_s=new I1({include:[ld],implicit:[c1,f1],explicit:[_1,C1,B1,R1]}),O1=yt;function N1(){return!0}function P1(){}function z1(){return""}function U1(e){return typeof e=="undefined"}var H1=new O1("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:N1,construct:P1,predicate:U1,represent:z1}),j1=yt;function W1(e){if(e===null||e.length===0)return!1;var t=e,n=/\/([gim]*)$/.exec(e),i="";return!(t[0]==="/"&&(n&&(i=n[1]),i.length>3||t[t.length-i.length-1]!=="/"))}function V1(e){var t=e,n=/\/([gim]*)$/.exec(e),i="";return t[0]==="/"&&(n&&(i=n[1]),t=t.slice(1,t.length-i.length-1)),new RegExp(t,i)}function G1(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}function K1(e){return Object.prototype.toString.call(e)==="[object RegExp]"}var X1=new j1("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:W1,construct:V1,predicate:K1,represent:G1}),ao;try{var J1=qf;ao=J1("esprima")}catch{typeof window!="undefined"&&(ao=window.esprima)}var Y1=yt;function Z1(e){if(e===null)return!1;try{var t="("+e+")",n=ao.parse(t,{range:!0});return!(n.type!=="Program"||n.body.length!==1||n.body[0].type!=="ExpressionStatement"||n.body[0].expression.type!=="ArrowFunctionExpression"&&n.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function q1(e){var t="("+e+")",n=ao.parse(t,{range:!0}),i=[],r;if(n.type!=="Program"||n.body.length!==1||n.body[0].type!=="ExpressionStatement"||n.body[0].expression.type!=="ArrowFunctionExpression"&&n.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return n.body[0].expression.params.forEach(function(s){i.push(s.name)}),r=n.body[0].expression.body.range,n.body[0].expression.body.type==="BlockStatement"?new Function(i,t.slice(r[0]+1,r[1]-1)):new Function(i,"return "+t.slice(r[0],r[1]))}function Q1(e){return e.toString()}function ev(e){return Object.prototype.toString.call(e)==="[object Function]"}var tv=new Y1("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:Z1,construct:q1,predicate:ev,represent:Q1}),Qc=mr,ko=Qc.DEFAULT=new Qc({include:[_s],explicit:[H1,X1,tv]}),$n=Zt,hd=ws,nv=mm,fd=_s,iv=ko,si=Object.prototype.hasOwnProperty,lo=1,dd=2,pd=3,co=4,Qo=1,rv=2,eu=3,sv=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,ov=/[\x85\u2028\u2029]/,av=/[,\[\]\{\}]/,gd=/^(?:!|!!|![a-z\-]+!)$/i,md=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function tu(e){return Object.prototype.toString.call(e)}function En(e){return e===10||e===13}function mi(e){return e===9||e===32}function Lt(e){return e===9||e===32||e===10||e===13}function Wi(e){return e===44||e===91||e===93||e===123||e===125}function lv(e){var t;return 48<=e&&e<=57?e-48:(t=e|32,97<=t&&t<=102?t-97+10:-1)}function cv(e){return e===120?2:e===117?4:e===85?8:0}function uv(e){return 48<=e&&e<=57?e-48:-1}function nu(e){return e===48?"\0":e===97?"\x07":e===98?"\b":e===116||e===9?" ":e===110?` -`:e===118?"\v":e===102?"\f":e===114?"\r":e===101?"\x1B":e===32?" ":e===34?'"':e===47?"/":e===92?"\\":e===78?"\x85":e===95?"\xA0":e===76?"\u2028":e===80?"\u2029":""}function hv(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}var vd=new Array(256),wd=new Array(256);for(var Ti=0;Ti<256;Ti++)vd[Ti]=nu(Ti)?1:0,wd[Ti]=nu(Ti);function fv(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||iv,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function _d(e,t){return new hd(t,new nv(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function be(e,t){throw _d(e,t)}function uo(e,t){e.onWarning&&e.onWarning.call(null,_d(e,t))}var iu={YAML:function(t,n,i){var r,s,u;t.version!==null&&be(t,"duplication of %YAML directive"),i.length!==1&&be(t,"YAML directive accepts exactly one argument"),r=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),r===null&&be(t,"ill-formed argument of the YAML directive"),s=parseInt(r[1],10),u=parseInt(r[2],10),s!==1&&be(t,"unacceptable YAML version of the document"),t.version=i[0],t.checkLineBreaks=u<2,u!==1&&u!==2&&uo(t,"unsupported YAML version of the document")},TAG:function(t,n,i){var r,s;i.length!==2&&be(t,"TAG directive accepts exactly two arguments"),r=i[0],s=i[1],gd.test(r)||be(t,"ill-formed tag handle (first argument) of the TAG directive"),si.call(t.tagMap,r)&&be(t,'there is a previously declared suffix for "'+r+'" tag handle'),md.test(s)||be(t,"ill-formed tag prefix (second argument) of the TAG directive"),t.tagMap[r]=s}};function Qn(e,t,n,i){var r,s,u,o;if(t<n){if(o=e.input.slice(t,n),i)for(r=0,s=o.length;r<s;r+=1)u=o.charCodeAt(r),u===9||32<=u&&u<=1114111||be(e,"expected valid JSON character");else sv.test(o)&&be(e,"the stream contains non-printable characters");e.result+=o}}function ru(e,t,n,i){var r,s,u,o;for($n.isObject(n)||be(e,"cannot merge mappings; the provided source object is unacceptable"),r=Object.keys(n),u=0,o=r.length;u<o;u+=1)s=r[u],si.call(t,s)||(t[s]=n[s],i[s]=!0)}function Vi(e,t,n,i,r,s,u,o){var c,a;if(Array.isArray(r))for(r=Array.prototype.slice.call(r),c=0,a=r.length;c<a;c+=1)Array.isArray(r[c])&&be(e,"nested arrays are not supported inside keys"),typeof r=="object"&&tu(r[c])==="[object Object]"&&(r[c]="[object Object]");if(typeof r=="object"&&tu(r)==="[object Object]"&&(r="[object Object]"),r=String(r),t===null&&(t={}),i==="tag:yaml.org,2002:merge")if(Array.isArray(s))for(c=0,a=s.length;c<a;c+=1)ru(e,t,s[c],n);else ru(e,t,s,n);else!e.json&&!si.call(n,r)&&si.call(t,r)&&(e.line=u||e.line,e.position=o||e.position,be(e,"duplicated mapping key")),t[r]=s,delete n[r];return t}function Pl(e){var t;t=e.input.charCodeAt(e.position),t===10?e.position++:t===13?(e.position++,e.input.charCodeAt(e.position)===10&&e.position++):be(e,"a line break is expected"),e.line+=1,e.lineStart=e.position}function ft(e,t,n){for(var i=0,r=e.input.charCodeAt(e.position);r!==0;){for(;mi(r);)r=e.input.charCodeAt(++e.position);if(t&&r===35)do r=e.input.charCodeAt(++e.position);while(r!==10&&r!==13&&r!==0);if(En(r))for(Pl(e),r=e.input.charCodeAt(e.position),i++,e.lineIndent=0;r===32;)e.lineIndent++,r=e.input.charCodeAt(++e.position);else break}return n!==-1&&i!==0&&e.lineIndent<n&&uo(e,"deficient indentation"),i}function Bo(e){var t=e.position,n;return n=e.input.charCodeAt(t),!!((n===45||n===46)&&n===e.input.charCodeAt(t+1)&&n===e.input.charCodeAt(t+2)&&(t+=3,n=e.input.charCodeAt(t),n===0||Lt(n)))}function zl(e,t){t===1?e.result+=" ":t>1&&(e.result+=$n.repeat(` -`,t-1))}function dv(e,t,n){var i,r,s,u,o,c,a,f,l=e.kind,h=e.result,d;if(d=e.input.charCodeAt(e.position),Lt(d)||Wi(d)||d===35||d===38||d===42||d===33||d===124||d===62||d===39||d===34||d===37||d===64||d===96||(d===63||d===45)&&(r=e.input.charCodeAt(e.position+1),Lt(r)||n&&Wi(r)))return!1;for(e.kind="scalar",e.result="",s=u=e.position,o=!1;d!==0;){if(d===58){if(r=e.input.charCodeAt(e.position+1),Lt(r)||n&&Wi(r))break}else if(d===35){if(i=e.input.charCodeAt(e.position-1),Lt(i))break}else{if(e.position===e.lineStart&&Bo(e)||n&&Wi(d))break;if(En(d))if(c=e.line,a=e.lineStart,f=e.lineIndent,ft(e,!1,-1),e.lineIndent>=t){o=!0,d=e.input.charCodeAt(e.position);continue}else{e.position=u,e.line=c,e.lineStart=a,e.lineIndent=f;break}}o&&(Qn(e,s,u,!1),zl(e,e.line-c),s=u=e.position,o=!1),mi(d)||(u=e.position+1),d=e.input.charCodeAt(++e.position)}return Qn(e,s,u,!1),e.result?!0:(e.kind=l,e.result=h,!1)}function pv(e,t){var n,i,r;if(n=e.input.charCodeAt(e.position),n!==39)return!1;for(e.kind="scalar",e.result="",e.position++,i=r=e.position;(n=e.input.charCodeAt(e.position))!==0;)if(n===39)if(Qn(e,i,e.position,!0),n=e.input.charCodeAt(++e.position),n===39)i=e.position,e.position++,r=e.position;else return!0;else En(n)?(Qn(e,i,r,!0),zl(e,ft(e,!1,t)),i=r=e.position):e.position===e.lineStart&&Bo(e)?be(e,"unexpected end of the document within a single quoted scalar"):(e.position++,r=e.position);be(e,"unexpected end of the stream within a single quoted scalar")}function gv(e,t){var n,i,r,s,u,o;if(o=e.input.charCodeAt(e.position),o!==34)return!1;for(e.kind="scalar",e.result="",e.position++,n=i=e.position;(o=e.input.charCodeAt(e.position))!==0;){if(o===34)return Qn(e,n,e.position,!0),e.position++,!0;if(o===92){if(Qn(e,n,e.position,!0),o=e.input.charCodeAt(++e.position),En(o))ft(e,!1,t);else if(o<256&&vd[o])e.result+=wd[o],e.position++;else if((u=cv(o))>0){for(r=u,s=0;r>0;r--)o=e.input.charCodeAt(++e.position),(u=lv(o))>=0?s=(s<<4)+u:be(e,"expected hexadecimal character");e.result+=hv(s),e.position++}else be(e,"unknown escape sequence");n=i=e.position}else En(o)?(Qn(e,n,i,!0),zl(e,ft(e,!1,t)),n=i=e.position):e.position===e.lineStart&&Bo(e)?be(e,"unexpected end of the document within a double quoted scalar"):(e.position++,i=e.position)}be(e,"unexpected end of the stream within a double quoted scalar")}function mv(e,t){var n=!0,i,r=e.tag,s,u=e.anchor,o,c,a,f,l,h={},d,g,p,m;if(m=e.input.charCodeAt(e.position),m===91)c=93,l=!1,s=[];else if(m===123)c=125,l=!0,s={};else return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=s),m=e.input.charCodeAt(++e.position);m!==0;){if(ft(e,!0,t),m=e.input.charCodeAt(e.position),m===c)return e.position++,e.tag=r,e.anchor=u,e.kind=l?"mapping":"sequence",e.result=s,!0;n||be(e,"missed comma between flow collection entries"),g=d=p=null,a=f=!1,m===63&&(o=e.input.charCodeAt(e.position+1),Lt(o)&&(a=f=!0,e.position++,ft(e,!0,t))),i=e.line,ir(e,t,lo,!1,!0),g=e.tag,d=e.result,ft(e,!0,t),m=e.input.charCodeAt(e.position),(f||e.line===i)&&m===58&&(a=!0,m=e.input.charCodeAt(++e.position),ft(e,!0,t),ir(e,t,lo,!1,!0),p=e.result),l?Vi(e,s,h,g,d,p):a?s.push(Vi(e,null,h,g,d,p)):s.push(d),ft(e,!0,t),m=e.input.charCodeAt(e.position),m===44?(n=!0,m=e.input.charCodeAt(++e.position)):n=!1}be(e,"unexpected end of the stream within a flow collection")}function vv(e,t){var n,i,r=Qo,s=!1,u=!1,o=t,c=0,a=!1,f,l;if(l=e.input.charCodeAt(e.position),l===124)i=!1;else if(l===62)i=!0;else return!1;for(e.kind="scalar",e.result="";l!==0;)if(l=e.input.charCodeAt(++e.position),l===43||l===45)Qo===r?r=l===43?eu:rv:be(e,"repeat of a chomping mode identifier");else if((f=uv(l))>=0)f===0?be(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):u?be(e,"repeat of an indentation width identifier"):(o=t+f-1,u=!0);else break;if(mi(l)){do l=e.input.charCodeAt(++e.position);while(mi(l));if(l===35)do l=e.input.charCodeAt(++e.position);while(!En(l)&&l!==0)}for(;l!==0;){for(Pl(e),e.lineIndent=0,l=e.input.charCodeAt(e.position);(!u||e.lineIndent<o)&&l===32;)e.lineIndent++,l=e.input.charCodeAt(++e.position);if(!u&&e.lineIndent>o&&(o=e.lineIndent),En(l)){c++;continue}if(e.lineIndent<o){r===eu?e.result+=$n.repeat(` -`,s?1+c:c):r===Qo&&s&&(e.result+=` -`);break}for(i?mi(l)?(a=!0,e.result+=$n.repeat(` -`,s?1+c:c)):a?(a=!1,e.result+=$n.repeat(` -`,c+1)):c===0?s&&(e.result+=" "):e.result+=$n.repeat(` -`,c):e.result+=$n.repeat(` -`,s?1+c:c),s=!0,u=!0,c=0,n=e.position;!En(l)&&l!==0;)l=e.input.charCodeAt(++e.position);Qn(e,n,e.position,!1)}return!0}function su(e,t){var n,i=e.tag,r=e.anchor,s=[],u,o=!1,c;for(e.anchor!==null&&(e.anchorMap[e.anchor]=s),c=e.input.charCodeAt(e.position);c!==0&&!(c!==45||(u=e.input.charCodeAt(e.position+1),!Lt(u)));){if(o=!0,e.position++,ft(e,!0,-1)&&e.lineIndent<=t){s.push(null),c=e.input.charCodeAt(e.position);continue}if(n=e.line,ir(e,t,pd,!1,!0),s.push(e.result),ft(e,!0,-1),c=e.input.charCodeAt(e.position),(e.line===n||e.lineIndent>t)&&c!==0)be(e,"bad indentation of a sequence entry");else if(e.lineIndent<t)break}return o?(e.tag=i,e.anchor=r,e.kind="sequence",e.result=s,!0):!1}function wv(e,t,n){var i,r,s,u,o=e.tag,c=e.anchor,a={},f={},l=null,h=null,d=null,g=!1,p=!1,m;for(e.anchor!==null&&(e.anchorMap[e.anchor]=a),m=e.input.charCodeAt(e.position);m!==0;){if(i=e.input.charCodeAt(e.position+1),s=e.line,u=e.position,(m===63||m===58)&&Lt(i))m===63?(g&&(Vi(e,a,f,l,h,null),l=h=d=null),p=!0,g=!0,r=!0):g?(g=!1,r=!0):be(e,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),e.position+=1,m=i;else if(ir(e,n,dd,!1,!0))if(e.line===s){for(m=e.input.charCodeAt(e.position);mi(m);)m=e.input.charCodeAt(++e.position);if(m===58)m=e.input.charCodeAt(++e.position),Lt(m)||be(e,"a whitespace character is expected after the key-value separator within a block mapping"),g&&(Vi(e,a,f,l,h,null),l=h=d=null),p=!0,g=!1,r=!1,l=e.tag,h=e.result;else if(p)be(e,"can not read an implicit mapping pair; a colon is missed");else return e.tag=o,e.anchor=c,!0}else if(p)be(e,"can not read a block mapping entry; a multiline key may not be an implicit key");else return e.tag=o,e.anchor=c,!0;else break;if((e.line===s||e.lineIndent>t)&&(ir(e,t,co,!0,r)&&(g?h=e.result:d=e.result),g||(Vi(e,a,f,l,h,d,s,u),l=h=d=null),ft(e,!0,-1),m=e.input.charCodeAt(e.position)),e.lineIndent>t&&m!==0)be(e,"bad indentation of a mapping entry");else if(e.lineIndent<t)break}return g&&Vi(e,a,f,l,h,null),p&&(e.tag=o,e.anchor=c,e.kind="mapping",e.result=a),p}function _v(e){var t,n=!1,i=!1,r,s,u;if(u=e.input.charCodeAt(e.position),u!==33)return!1;if(e.tag!==null&&be(e,"duplication of a tag property"),u=e.input.charCodeAt(++e.position),u===60?(n=!0,u=e.input.charCodeAt(++e.position)):u===33?(i=!0,r="!!",u=e.input.charCodeAt(++e.position)):r="!",t=e.position,n){do u=e.input.charCodeAt(++e.position);while(u!==0&&u!==62);e.position<e.length?(s=e.input.slice(t,e.position),u=e.input.charCodeAt(++e.position)):be(e,"unexpected end of the stream within a verbatim tag")}else{for(;u!==0&&!Lt(u);)u===33&&(i?be(e,"tag suffix cannot contain exclamation marks"):(r=e.input.slice(t-1,e.position+1),gd.test(r)||be(e,"named tag handle cannot contain such characters"),i=!0,t=e.position+1)),u=e.input.charCodeAt(++e.position);s=e.input.slice(t,e.position),av.test(s)&&be(e,"tag suffix cannot contain flow indicator characters")}return s&&!md.test(s)&&be(e,"tag name cannot contain such characters: "+s),n?e.tag=s:si.call(e.tagMap,r)?e.tag=e.tagMap[r]+s:r==="!"?e.tag="!"+s:r==="!!"?e.tag="tag:yaml.org,2002:"+s:be(e,'undeclared tag handle "'+r+'"'),!0}function Av(e){var t,n;if(n=e.input.charCodeAt(e.position),n!==38)return!1;for(e.anchor!==null&&be(e,"duplication of an anchor property"),n=e.input.charCodeAt(++e.position),t=e.position;n!==0&&!Lt(n)&&!Wi(n);)n=e.input.charCodeAt(++e.position);return e.position===t&&be(e,"name of an anchor node must contain at least one character"),e.anchor=e.input.slice(t,e.position),!0}function yv(e){var t,n,i;if(i=e.input.charCodeAt(e.position),i!==42)return!1;for(i=e.input.charCodeAt(++e.position),t=e.position;i!==0&&!Lt(i)&&!Wi(i);)i=e.input.charCodeAt(++e.position);return e.position===t&&be(e,"name of an alias node must contain at least one character"),n=e.input.slice(t,e.position),si.call(e.anchorMap,n)||be(e,'unidentified alias "'+n+'"'),e.result=e.anchorMap[n],ft(e,!0,-1),!0}function ir(e,t,n,i,r){var s,u,o,c=1,a=!1,f=!1,l,h,d,g,p;if(e.listener!==null&&e.listener("open",e),e.tag=null,e.anchor=null,e.kind=null,e.result=null,s=u=o=co===n||pd===n,i&&ft(e,!0,-1)&&(a=!0,e.lineIndent>t?c=1:e.lineIndent===t?c=0:e.lineIndent<t&&(c=-1)),c===1)for(;_v(e)||Av(e);)ft(e,!0,-1)?(a=!0,o=s,e.lineIndent>t?c=1:e.lineIndent===t?c=0:e.lineIndent<t&&(c=-1)):o=!1;if(o&&(o=a||r),(c===1||co===n)&&(lo===n||dd===n?g=t:g=t+1,p=e.position-e.lineStart,c===1?o&&(su(e,p)||wv(e,p,g))||mv(e,g)?f=!0:(u&&vv(e,g)||pv(e,g)||gv(e,g)?f=!0:yv(e)?(f=!0,(e.tag!==null||e.anchor!==null)&&be(e,"alias node should not have any properties")):dv(e,g,lo===n)&&(f=!0,e.tag===null&&(e.tag="?")),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):c===0&&(f=o&&su(e,p))),e.tag!==null&&e.tag!=="!")if(e.tag==="?"){for(e.result!==null&&e.kind!=="scalar"&&be(e,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+e.kind+'"'),l=0,h=e.implicitTypes.length;l<h;l+=1)if(d=e.implicitTypes[l],d.resolve(e.result)){e.result=d.construct(e.result),e.tag=d.tag,e.anchor!==null&&(e.anchorMap[e.anchor]=e.result);break}}else si.call(e.typeMap[e.kind||"fallback"],e.tag)?(d=e.typeMap[e.kind||"fallback"][e.tag],e.result!==null&&d.kind!==e.kind&&be(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+d.kind+'", not "'+e.kind+'"'),d.resolve(e.result)?(e.result=d.construct(e.result),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):be(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):be(e,"unknown tag !<"+e.tag+">");return e.listener!==null&&e.listener("close",e),e.tag!==null||e.anchor!==null||f}function Ev(e){var t=e.position,n,i,r,s=!1,u;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};(u=e.input.charCodeAt(e.position))!==0&&(ft(e,!0,-1),u=e.input.charCodeAt(e.position),!(e.lineIndent>0||u!==37));){for(s=!0,u=e.input.charCodeAt(++e.position),n=e.position;u!==0&&!Lt(u);)u=e.input.charCodeAt(++e.position);for(i=e.input.slice(n,e.position),r=[],i.length<1&&be(e,"directive name must not be less than one character in length");u!==0;){for(;mi(u);)u=e.input.charCodeAt(++e.position);if(u===35){do u=e.input.charCodeAt(++e.position);while(u!==0&&!En(u));break}if(En(u))break;for(n=e.position;u!==0&&!Lt(u);)u=e.input.charCodeAt(++e.position);r.push(e.input.slice(n,e.position))}u!==0&&Pl(e),si.call(iu,i)?iu[i](e,i,r):uo(e,'unknown document directive "'+i+'"')}if(ft(e,!0,-1),e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45?(e.position+=3,ft(e,!0,-1)):s&&be(e,"directives end mark is expected"),ir(e,e.lineIndent-1,co,!1,!0),ft(e,!0,-1),e.checkLineBreaks&&ov.test(e.input.slice(t,e.position))&&uo(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&Bo(e)){e.input.charCodeAt(e.position)===46&&(e.position+=3,ft(e,!0,-1));return}if(e.position<e.length-1)be(e,"end of the stream or a document separator is expected");else return}function Ad(e,t){e=String(e),t=t||{},e.length!==0&&(e.charCodeAt(e.length-1)!==10&&e.charCodeAt(e.length-1)!==13&&(e+=` -`),e.charCodeAt(0)===65279&&(e=e.slice(1)));var n=new fv(e,t),i=e.indexOf("\0");for(i!==-1&&(n.position=i,be(n,"null byte is not allowed in input")),n.input+="\0";n.input.charCodeAt(n.position)===32;)n.lineIndent+=1,n.position+=1;for(;n.position<n.length-1;)Ev(n);return n.documents}function yd(e,t,n){t!==null&&typeof t=="object"&&typeof n=="undefined"&&(n=t,t=null);var i=Ad(e,n);if(typeof t!="function")return i;for(var r=0,s=i.length;r<s;r+=1)t(i[r])}function Ed(e,t){var n=Ad(e,t);if(n.length!==0){if(n.length===1)return n[0];throw new hd("expected a single document in the stream, but found more")}}function bv(e,t,n){return typeof t=="object"&&t!==null&&typeof n=="undefined"&&(n=t,t=null),yd(e,t,$n.extend({schema:fd},n))}function xv(e,t){return Ed(e,$n.extend({schema:fd},t))}vs.loadAll=yd;vs.load=Ed;vs.safeLoadAll=bv;vs.safeLoad=xv;var Ul={},As=Zt,ys=ws,Cv=ko,Fv=_s,bd=Object.prototype.toString,xd=Object.prototype.hasOwnProperty,Sv=9,Vr=10,Dv=13,kv=32,Bv=33,Tv=34,Cd=35,Lv=37,$v=38,Mv=39,Rv=42,Fd=44,Iv=45,Sd=58,Ov=61,Nv=62,Pv=63,zv=64,Dd=91,kd=93,Uv=96,Bd=123,Hv=124,Td=125,Dt={};Dt[0]="\\0";Dt[7]="\\a";Dt[8]="\\b";Dt[9]="\\t";Dt[10]="\\n";Dt[11]="\\v";Dt[12]="\\f";Dt[13]="\\r";Dt[27]="\\e";Dt[34]='\\"';Dt[92]="\\\\";Dt[133]="\\N";Dt[160]="\\_";Dt[8232]="\\L";Dt[8233]="\\P";var jv=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function Wv(e,t){var n,i,r,s,u,o,c;if(t===null)return{};for(n={},i=Object.keys(t),r=0,s=i.length;r<s;r+=1)u=i[r],o=String(t[u]),u.slice(0,2)==="!!"&&(u="tag:yaml.org,2002:"+u.slice(2)),c=e.compiledTypeMap.fallback[u],c&&xd.call(c.styleAliases,o)&&(o=c.styleAliases[o]),n[u]=o;return n}function ou(e){var t,n,i;if(t=e.toString(16).toUpperCase(),e<=255)n="x",i=2;else if(e<=65535)n="u",i=4;else if(e<=4294967295)n="U",i=8;else throw new ys("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+n+As.repeat("0",i-t.length)+t}function Vv(e){this.schema=e.schema||Cv,this.indent=Math.max(1,e.indent||2),this.noArrayIndent=e.noArrayIndent||!1,this.skipInvalid=e.skipInvalid||!1,this.flowLevel=As.isNothing(e.flowLevel)?-1:e.flowLevel,this.styleMap=Wv(this.schema,e.styles||null),this.sortKeys=e.sortKeys||!1,this.lineWidth=e.lineWidth||80,this.noRefs=e.noRefs||!1,this.noCompatMode=e.noCompatMode||!1,this.condenseFlow=e.condenseFlow||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function au(e,t){for(var n=As.repeat(" ",t),i=0,r=-1,s="",u,o=e.length;i<o;)r=e.indexOf(` -`,i),r===-1?(u=e.slice(i),i=o):(u=e.slice(i,r+1),i=r+1),u.length&&u!==` -`&&(s+=n),s+=u;return s}function Xa(e,t){return` -`+As.repeat(" ",e.indent*t)}function Gv(e,t){var n,i,r;for(n=0,i=e.implicitTypes.length;n<i;n+=1)if(r=e.implicitTypes[n],r.resolve(t))return!0;return!1}function Hl(e){return e===kv||e===Sv}function rr(e){return 32<=e&&e<=126||161<=e&&e<=55295&&e!==8232&&e!==8233||57344<=e&&e<=65533&&e!==65279||65536<=e&&e<=1114111}function Kv(e){return rr(e)&&!Hl(e)&&e!==65279&&e!==Dv&&e!==Vr}function lu(e,t){return rr(e)&&e!==65279&&e!==Fd&&e!==Dd&&e!==kd&&e!==Bd&&e!==Td&&e!==Sd&&(e!==Cd||t&&Kv(t))}function Xv(e){return rr(e)&&e!==65279&&!Hl(e)&&e!==Iv&&e!==Pv&&e!==Sd&&e!==Fd&&e!==Dd&&e!==kd&&e!==Bd&&e!==Td&&e!==Cd&&e!==$v&&e!==Rv&&e!==Bv&&e!==Hv&&e!==Ov&&e!==Nv&&e!==Mv&&e!==Tv&&e!==Lv&&e!==zv&&e!==Uv}function Ld(e){var t=/^\n* /;return t.test(e)}var $d=1,Md=2,Rd=3,Id=4,js=5;function Jv(e,t,n,i,r){var s,u,o,c=!1,a=!1,f=i!==-1,l=-1,h=Xv(e.charCodeAt(0))&&!Hl(e.charCodeAt(e.length-1));if(t)for(s=0;s<e.length;s++){if(u=e.charCodeAt(s),!rr(u))return js;o=s>0?e.charCodeAt(s-1):null,h=h&&lu(u,o)}else{for(s=0;s<e.length;s++){if(u=e.charCodeAt(s),u===Vr)c=!0,f&&(a=a||s-l-1>i&&e[l+1]!==" ",l=s);else if(!rr(u))return js;o=s>0?e.charCodeAt(s-1):null,h=h&&lu(u,o)}a=a||f&&s-l-1>i&&e[l+1]!==" "}return!c&&!a?h&&!r(e)?$d:Md:n>9&&Ld(e)?js:a?Id:Rd}function Yv(e,t,n,i){e.dump=function(){if(t.length===0)return"''";if(!e.noCompatMode&&jv.indexOf(t)!==-1)return"'"+t+"'";var r=e.indent*Math.max(1,n),s=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-r),u=i||e.flowLevel>-1&&n>=e.flowLevel;function o(c){return Gv(e,c)}switch(Jv(t,u,e.indent,s,o)){case $d:return t;case Md:return"'"+t.replace(/'/g,"''")+"'";case Rd:return"|"+cu(t,e.indent)+uu(au(t,r));case Id:return">"+cu(t,e.indent)+uu(au(Zv(t,s),r));case js:return'"'+qv(t)+'"';default:throw new ys("impossible error: invalid scalar style")}}()}function cu(e,t){var n=Ld(e)?String(t):"",i=e[e.length-1]===` -`,r=i&&(e[e.length-2]===` -`||e===` -`),s=r?"+":i?"":"-";return n+s+` -`}function uu(e){return e[e.length-1]===` -`?e.slice(0,-1):e}function Zv(e,t){for(var n=/(\n+)([^\n]*)/g,i=function(){var a=e.indexOf(` -`);return a=a!==-1?a:e.length,n.lastIndex=a,hu(e.slice(0,a),t)}(),r=e[0]===` -`||e[0]===" ",s,u;u=n.exec(e);){var o=u[1],c=u[2];s=c[0]===" ",i+=o+(!r&&!s&&c!==""?` -`:"")+hu(c,t),r=s}return i}function hu(e,t){if(e===""||e[0]===" ")return e;for(var n=/ [^ ]/g,i,r=0,s,u=0,o=0,c="";i=n.exec(e);)o=i.index,o-r>t&&(s=u>r?u:o,c+=` -`+e.slice(r,s),r=s+1),u=o;return c+=` -`,e.length-r>t&&u>r?c+=e.slice(r,u)+` -`+e.slice(u+1):c+=e.slice(r),c.slice(1)}function qv(e){for(var t="",n,i,r,s=0;s<e.length;s++){if(n=e.charCodeAt(s),n>=55296&&n<=56319&&(i=e.charCodeAt(s+1),i>=56320&&i<=57343)){t+=ou((n-55296)*1024+i-56320+65536),s++;continue}r=Dt[n],t+=!r&&rr(n)?e[s]:r||ou(n)}return t}function Qv(e,t,n){var i="",r=e.tag,s,u;for(s=0,u=n.length;s<u;s+=1)Ai(e,t,n[s],!1,!1)&&(s!==0&&(i+=","+(e.condenseFlow?"":" ")),i+=e.dump);e.tag=r,e.dump="["+i+"]"}function ew(e,t,n,i){var r="",s=e.tag,u,o;for(u=0,o=n.length;u<o;u+=1)Ai(e,t+1,n[u],!0,!0)&&((!i||u!==0)&&(r+=Xa(e,t)),e.dump&&Vr===e.dump.charCodeAt(0)?r+="-":r+="- ",r+=e.dump);e.tag=s,e.dump=r||"[]"}function tw(e,t,n){var i="",r=e.tag,s=Object.keys(n),u,o,c,a,f;for(u=0,o=s.length;u<o;u+=1)f="",u!==0&&(f+=", "),e.condenseFlow&&(f+='"'),c=s[u],a=n[c],Ai(e,t,c,!1,!1)&&(e.dump.length>1024&&(f+="? "),f+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),Ai(e,t,a,!1,!1)&&(f+=e.dump,i+=f));e.tag=r,e.dump="{"+i+"}"}function nw(e,t,n,i){var r="",s=e.tag,u=Object.keys(n),o,c,a,f,l,h;if(e.sortKeys===!0)u.sort();else if(typeof e.sortKeys=="function")u.sort(e.sortKeys);else if(e.sortKeys)throw new ys("sortKeys must be a boolean or a function");for(o=0,c=u.length;o<c;o+=1)h="",(!i||o!==0)&&(h+=Xa(e,t)),a=u[o],f=n[a],Ai(e,t+1,a,!0,!0,!0)&&(l=e.tag!==null&&e.tag!=="?"||e.dump&&e.dump.length>1024,l&&(e.dump&&Vr===e.dump.charCodeAt(0)?h+="?":h+="? "),h+=e.dump,l&&(h+=Xa(e,t)),Ai(e,t+1,f,!0,l)&&(e.dump&&Vr===e.dump.charCodeAt(0)?h+=":":h+=": ",h+=e.dump,r+=h));e.tag=s,e.dump=r||"{}"}function fu(e,t,n){var i,r,s,u,o,c;for(r=n?e.explicitTypes:e.implicitTypes,s=0,u=r.length;s<u;s+=1)if(o=r[s],(o.instanceOf||o.predicate)&&(!o.instanceOf||typeof t=="object"&&t instanceof o.instanceOf)&&(!o.predicate||o.predicate(t))){if(e.tag=n?o.tag:"?",o.represent){if(c=e.styleMap[o.tag]||o.defaultStyle,bd.call(o.represent)==="[object Function]")i=o.represent(t,c);else if(xd.call(o.represent,c))i=o.represent[c](t,c);else throw new ys("!<"+o.tag+'> tag resolver accepts not "'+c+'" style');e.dump=i}return!0}return!1}function Ai(e,t,n,i,r,s){e.tag=null,e.dump=n,fu(e,n,!1)||fu(e,n,!0);var u=bd.call(e.dump);i&&(i=e.flowLevel<0||e.flowLevel>t);var o=u==="[object Object]"||u==="[object Array]",c,a;if(o&&(c=e.duplicates.indexOf(n),a=c!==-1),(e.tag!==null&&e.tag!=="?"||a||e.indent!==2&&t>0)&&(r=!1),a&&e.usedDuplicates[c])e.dump="*ref_"+c;else{if(o&&a&&!e.usedDuplicates[c]&&(e.usedDuplicates[c]=!0),u==="[object Object]")i&&Object.keys(e.dump).length!==0?(nw(e,t,e.dump,r),a&&(e.dump="&ref_"+c+e.dump)):(tw(e,t,e.dump),a&&(e.dump="&ref_"+c+" "+e.dump));else if(u==="[object Array]"){var f=e.noArrayIndent&&t>0?t-1:t;i&&e.dump.length!==0?(ew(e,f,e.dump,r),a&&(e.dump="&ref_"+c+e.dump)):(Qv(e,f,e.dump),a&&(e.dump="&ref_"+c+" "+e.dump))}else if(u==="[object String]")e.tag!=="?"&&Yv(e,e.dump,t,s);else{if(e.skipInvalid)return!1;throw new ys("unacceptable kind of an object to dump "+u)}e.tag!==null&&e.tag!=="?"&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function iw(e,t){var n=[],i=[],r,s;for(Ja(e,n,i),r=0,s=i.length;r<s;r+=1)t.duplicates.push(n[i[r]]);t.usedDuplicates=new Array(s)}function Ja(e,t,n){var i,r,s;if(e!==null&&typeof e=="object")if(r=t.indexOf(e),r!==-1)n.indexOf(r)===-1&&n.push(r);else if(t.push(e),Array.isArray(e))for(r=0,s=e.length;r<s;r+=1)Ja(e[r],t,n);else for(i=Object.keys(e),r=0,s=i.length;r<s;r+=1)Ja(e[i[r]],t,n)}function Od(e,t){t=t||{};var n=new Vv(t);return n.noRefs||iw(e,n),Ai(n,0,e,!0,!0)?n.dump+` -`:""}function rw(e,t){return Od(e,As.extend({schema:Fv},t))}Ul.dump=Od;Ul.safeDump=rw;var To=vs,Nd=Ul;function Lo(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}at.Type=yt;at.Schema=mr;at.FAILSAFE_SCHEMA=Ol;at.JSON_SCHEMA=ad;at.CORE_SCHEMA=ld;at.DEFAULT_SAFE_SCHEMA=_s;at.DEFAULT_FULL_SCHEMA=ko;at.load=To.load;at.loadAll=To.loadAll;at.safeLoad=To.safeLoad;at.safeLoadAll=To.safeLoadAll;at.dump=Nd.dump;at.safeDump=Nd.safeDump;at.YAMLException=ws;at.MINIMAL_SCHEMA=Ol;at.SAFE_SCHEMA=_s;at.DEFAULT_SCHEMA=ko;at.scan=Lo("scan");at.parse=Lo("parse");at.compose=Lo("compose");at.addConstructor=Lo("addConstructor");var sw=at,Ya=sw,ow=aw;function Ki(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}function aw(e){if(e=e||{},e.circles)return lw(e);return e.proto?i:n;function t(r,s){for(var u=Object.keys(r),o=new Array(u.length),c=0;c<u.length;c++){var a=u[c],f=r[a];typeof f!="object"||f===null?o[a]=f:f instanceof Date?o[a]=new Date(f):ArrayBuffer.isView(f)?o[a]=Ki(f):o[a]=s(f)}return o}function n(r){if(typeof r!="object"||r===null)return r;if(r instanceof Date)return new Date(r);if(Array.isArray(r))return t(r,n);if(r instanceof Map)return new Map(t(Array.from(r),n));if(r instanceof Set)return new Set(t(Array.from(r),n));var s={};for(var u in r)if(Object.hasOwnProperty.call(r,u)!==!1){var o=r[u];typeof o!="object"||o===null?s[u]=o:o instanceof Date?s[u]=new Date(o):o instanceof Map?s[u]=new Map(t(Array.from(o),n)):o instanceof Set?s[u]=new Set(t(Array.from(o),n)):ArrayBuffer.isView(o)?s[u]=Ki(o):s[u]=n(o)}return s}function i(r){if(typeof r!="object"||r===null)return r;if(r instanceof Date)return new Date(r);if(Array.isArray(r))return t(r,i);if(r instanceof Map)return new Map(t(Array.from(r),i));if(r instanceof Set)return new Set(t(Array.from(r),i));var s={};for(var u in r){var o=r[u];typeof o!="object"||o===null?s[u]=o:o instanceof Date?s[u]=new Date(o):o instanceof Map?s[u]=new Map(t(Array.from(o),i)):o instanceof Set?s[u]=new Set(t(Array.from(o),i)):ArrayBuffer.isView(o)?s[u]=Ki(o):s[u]=i(o)}return s}}function lw(e){var t=[],n=[];return e.proto?s:r;function i(u,o){for(var c=Object.keys(u),a=new Array(c.length),f=0;f<c.length;f++){var l=c[f],h=u[l];if(typeof h!="object"||h===null)a[l]=h;else if(h instanceof Date)a[l]=new Date(h);else if(ArrayBuffer.isView(h))a[l]=Ki(h);else{var d=t.indexOf(h);d!==-1?a[l]=n[d]:a[l]=o(h)}}return a}function r(u){if(typeof u!="object"||u===null)return u;if(u instanceof Date)return new Date(u);if(Array.isArray(u))return i(u,r);if(u instanceof Map)return new Map(i(Array.from(u),r));if(u instanceof Set)return new Set(i(Array.from(u),r));var o={};t.push(u),n.push(o);for(var c in u)if(Object.hasOwnProperty.call(u,c)!==!1){var a=u[c];if(typeof a!="object"||a===null)o[c]=a;else if(a instanceof Date)o[c]=new Date(a);else if(a instanceof Map)o[c]=new Map(i(Array.from(a),r));else if(a instanceof Set)o[c]=new Set(i(Array.from(a),r));else if(ArrayBuffer.isView(a))o[c]=Ki(a);else{var f=t.indexOf(a);f!==-1?o[c]=n[f]:o[c]=r(a)}}return t.pop(),n.pop(),o}function s(u){if(typeof u!="object"||u===null)return u;if(u instanceof Date)return new Date(u);if(Array.isArray(u))return i(u,s);if(u instanceof Map)return new Map(i(Array.from(u),s));if(u instanceof Set)return new Set(i(Array.from(u),s));var o={};t.push(u),n.push(o);for(var c in u){var a=u[c];if(typeof a!="object"||a===null)o[c]=a;else if(a instanceof Date)o[c]=new Date(a);else if(a instanceof Map)o[c]=new Map(i(Array.from(a),s));else if(a instanceof Set)o[c]=new Set(i(Array.from(a),s));else if(ArrayBuffer.isView(a))o[c]=Ki(a);else{var f=t.indexOf(a);f!==-1?o[c]=n[f]:o[c]=s(a)}}return t.pop(),n.pop(),o}}var He=JSON.parse('{"languages":[{"code":"de","name":"Deutsch"},{"code":"en","name":"English"},{"code":"es","name":"Espa\xF1ol"},{"code":"fr","name":"Fran\xE7ais"},{"code":"it","name":"Italiano"},{"code":"ja","name":"\u65E5\u672C\u8A9E"},{"code":"pl","name":"Polski"},{"code":"pt","name":"Portugu\xEAs"},{"code":"ru","name":"\u0420\u0443\u0441\u0441\u043A\u0438\u0439"},{"code":"sk","name":"Sloven\u010Dina","schemas":false},{"code":"zh-cn","name":"\u7B80\u4F53\u4E2D\u6587"},{"code":"zh-tw","name":"\u6B63\u9AD4\u4E2D\u6587"}],"versions":[{"id":"1.15","ref":"1.15.2","pack_format":5},{"id":"1.16","ref":"1.16.5","pack_format":6},{"id":"1.17","ref":"1.17.1","pack_format":7},{"id":"1.18","ref":"1.18.1","pack_format":8},{"id":"1.18.2","ref":"1.18.2","pack_format":9},{"id":"1.19","dynamic":true,"pack_format":10}],"generators":[{"id":"loot_table","url":"loot-table","path":"loot_tables","schema":"loot_table"},{"id":"predicate","url":"predicate","path":"predicates","schema":"predicate"},{"id":"item_modifier","url":"item-modifier","path":"item_modifiers","schema":"item_modifier","minVersion":"1.17"},{"id":"advancement","url":"advancement","path":"advancements","schema":"advancement"},{"id":"recipe","url":"recipe","path":"recipes","schema":"recipe"},{"id":"text_component","url":"text-component","schema":"text_component"},{"id":"chat_type","url":"chat-type","schema":"chat_type","minVersion":"1.19"},{"id":"dimension","url":"dimension","schema":"dimension","category":"worldgen","minVersion":"1.16"},{"id":"dimension_type","url":"dimension-type","schema":"dimension_type","category":"worldgen","minVersion":"1.16"},{"id":"world","url":"world","schema":"world_settings","category":"worldgen","minVersion":"1.16"},{"id":"worldgen/biome","url":"worldgen/biome","category":"worldgen","schema":"biome","minVersion":"1.16"},{"id":"worldgen/configured_carver","url":"worldgen/carver","category":"worldgen","schema":"configured_carver","minVersion":"1.16"},{"id":"worldgen/configured_feature","url":"worldgen/feature","category":"worldgen","schema":"configured_feature","minVersion":"1.16"},{"id":"worldgen/density_function","url":"worldgen/density-function","category":"worldgen","schema":"density_function","minVersion":"1.18.2"},{"id":"worldgen/placed_feature","url":"worldgen/placed-feature","category":"worldgen","schema":"placed_feature","minVersion":"1.18"},{"id":"worldgen/noise","url":"worldgen/noise","category":"worldgen","schema":"noise_parameters","minVersion":"1.18"},{"id":"worldgen/noise_settings","url":"worldgen/noise-settings","category":"worldgen","schema":"noise_settings","minVersion":"1.16"},{"id":"worldgen/configured_structure_feature","url":"worldgen/structure-feature","category":"worldgen","schema":"configured_structure_feature","minVersion":"1.16","maxVersion":"1.18.2"},{"id":"worldgen/structure","url":"worldgen/structure","category":"worldgen","schema":"structure","minVersion":"1.19"},{"id":"worldgen/structure_set","url":"worldgen/structure-set","category":"worldgen","schema":"structure_set","minVersion":"1.18.2"},{"id":"worldgen/configured_surface_builder","url":"worldgen/surface-builder","category":"worldgen","schema":"configured_surface_builder","minVersion":"1.16","maxVersion":"1.17"},{"id":"worldgen/processor_list","url":"worldgen/processor-list","category":"worldgen","schema":"processor_list","minVersion":"1.16"},{"id":"worldgen/template_pool","url":"worldgen/template-pool","category":"worldgen","schema":"template_pool","minVersion":"1.16"},{"id":"worldgen/world_preset","url":"worldgen/world-preset","category":"worldgen","schema":"world_preset","minVersion":"1.19"},{"id":"worldgen/flat_level_generator_preset","url":"worldgen/flat-world-preset","category":"worldgen","schema":"flat_level_generator_preset","minVersion":"1.19"},{"id":"block_definition","url":"assets/blockstate","path":"blockstates","category":"assets","schema":"block_definition"},{"id":"model","url":"assets/model","path":"models","category":"assets","schema":"model"}]}');function Di(e){return typeof e=="object"&&e!==null}const cw=e=>("0"+e.toString(16)).substr(-2);function vi(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,cw).join("")}function On(){return BigInt(Math.floor(Math.random()*Number.MAX_SAFE_INTEGER))}function Pd(e){const t=Math.floor(Math.random()*4294967296)-2147483648,n=e.get(new ae.Path(["dimensions"]));e.set(new ae.Path(["seed"]),t,!0),Di(n)&&Object.keys(n).forEach(i=>{e.set(new ae.Path(["dimensions",i,"generator","seed"]),t,!0),e.set(new ae.Path(["dimensions",i,"generator","biome_source","seed"]),t,!0)}),e.set(new ae.Path(["placement","salt"]),Math.abs(t),!0),e.set(new ae.Path(["generator","seed"]),t,!0),e.set(new ae.Path(["generator","biome_source","seed"]),t)}function zd(e){let t=0;for(let n=0;n<e.length;n++)t=Math.imul(31,t)+e.charCodeAt(n)|0;return t}function Nn(e){return`/${e}/`.replaceAll("//","/")}function uw(e){const t=e.indexOf("?");return t>=0&&(e=e.slice(0,t)),Nn(e)}function Ud(e){const t=uw(e).replace(/^\//,"").replace(/\/$/,"");return He.generators.find(n=>n.url===t)}function Hd({path:e,search:t,hash:n,replace:i}){const r=(e!==void 0?Nn(e):location.pathname)+(t!==void 0?t.startsWith("?")||t.length===0?t:"?"+t:location.search)+(n!==void 0?n.startsWith("#")?n:"#"+n:location.hash);ri(r,i)}function hw(e){const t=Ya.load(e.substring(3,e.indexOf("---",3)));return Di(t)?t:{}}function fw(e,t){var i;let n=0;for(;;){const r=e.indexOf("{#",n);if(r<0)break;const s=dw(e,r+2),u=e.indexOf("#[",r+1);let o="";if(u>=0&&u<s){const c=e.indexOf("]",u+2);e.substring(u+2,c)===t&&(o=e.substring(c+1,s).trim())}else{const c=e.substring(r+2,s),a=He.versions.find(f=>f.id===t);o=(i={version:a==null?void 0:a.id,pack_format:a==null?void 0:a.pack_format.toString()}[c])!=null?i:""}e=e.substring(0,r)+o+e.substring(s+2),n=r}return e}function dw(e,t){let n=0,i=0;for(;i++<1e3;){const r=e.indexOf("#}",t),s=e.indexOf("{#",t);if(r<0)return console.warn("Missing closing bracket"),e.length;if(s<0){if(n===0)return r;n-=1,t=r+2}else if(s<r)n+=1,t=s+2;else{if(n===0)return r;n-=1,t=r+2}}return console.warn("Exceeded max iterations while finding closing bracket"),e.length}function jd(e){const t=Math.abs(zd(e));return[t%256,(t>>8)%256,(t>>16)%256]}function yr(e){return e*e}function Nt(e,t,n){return Math.max(e,Math.min(t,n))}function ea(e,t,n){return n<0?e:n>1?t:Ws(n,e,t)}function Ws(e,t,n){return t+e*(n-t)}function pw(e,t,n,i,r,s){return Ws(t,Ws(e,n,i),Ws(e,r,s))}function Xt(e){return e instanceof Error?e.message:`${e}`}const $o=ow();function yi(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;let n,i;if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(i=0;i<n;i++)if(!yi(e[i],t[i]))return!1;return!0}if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();const r=Object.keys(e);if(n=r.length,n!==Object.keys(t).length)return!1;for(i=n;i--!==0;)if(!Object.prototype.hasOwnProperty.call(t,r[i]))return!1;for(i=n;i--!==0;){const s=r[i];if(!yi(e[s],t[s]))return!1}return!0}return e!==e&&t!==t}class gw{constructor(){this.forward=new Map,this.backward=new Map}set(t,n){this.forward.set(t,n),this.backward.set(n,t)}getA(t){return this.backward.get(t)}getB(t){return this.forward.get(t)}getOrPut(t,n){const i=this.forward.get(t);return i===void 0?(this.set(t,n),n):i}}function Vs({icon:e,label:t,large:n,larger:i,doSelect:r,value:s,placeholder:u,dataList:o,onChange:c}){const a=c===void 0?()=>{}:h=>{const d=h.target.value;c==null||c(d)},f=Xe(null);xe(()=>{r&&f.current&&f.current.select()},[r]);const l=o&&vi();return S("div",{class:`btn btn-input ${n?"large-input":""} ${i?"larger-input":""}`,onClick:h=>h.stopPropagation()},e&&$e[e],t&&S("span",null,t),S("input",{ref:f,type:"text",value:s,onChange:a,placeholder:u,list:l}),o&&S("datalist",{id:l},o.map(h=>S("option",{value:h}))))}function Cr({cooldown:e,invert:t,initial:n}={}){const[i,r]=oe(n),s=Xe(void 0);return[i,()=>{r(!t),s.current!==void 0&&clearTimeout(s.current),s.current=setTimeout(()=>{r(!!t)},e!=null?e:2e3)}]}function Es({size:e,draw:t,onDrag:n,onHover:i,onLeave:r},s){const u=Xe(null),o=Xe(),c=Xe(),a=Xe([0,0]),f=Xe(!1);xe(()=>{const d=w=>{o.current=[w.offsetX,w.offsetY]},g=w=>{if(o.current===void 0){const _=w.offsetX/u.current.clientWidth,E=w.offsetY/u.current.clientHeight;i==null||i(_,E);return}if(!n)return;const v=w.offsetX-o.current[0],A=w.offsetY-o.current[1];v===0&&A===0||(a.current=[a.current[0]+v,a.current[1]+A],f.current||(cancelAnimationFrame(c.current),c.current=requestAnimationFrame(async()=>{f.current=!0;const _=a.current[0]/u.current.clientWidth,E=a.current[1]/u.current.clientHeight;a.current=[0,0],await(n==null?void 0:n(_,E)),f.current=!1}))),o.current=[w.offsetX,w.offsetY]},p=()=>{o.current=void 0},m=()=>{r==null||r()};return u.current.addEventListener("mousedown",d),u.current.addEventListener("mousemove",g),u.current.addEventListener("mouseleave",m),document.body.addEventListener("mouseup",p),()=>{var w,v,A;(w=u.current)==null||w.removeEventListener("mousedown",d),(v=u.current)==null||v.removeEventListener("mousemove",g),(A=u.current)==null||A.removeEventListener("mouseleave",m),document.body.removeEventListener("mouseup",p)}},[...s!=null?s:[],u.current]);const l=Xe(),h=Xe(0);return l.current=async()=>{const d=u.current.getContext("2d"),g=e();u.current.width=g[0],u.current.height=g[1];const p=d.getImageData(0,0,g[0],g[1]),m=h.current+=1;try{await t(p)}catch(w){throw w}m===h.current&&d.putImageData(p,0,0)},{canvas:u,redraw:l.current}}function jl(){const[e,t]=oe(!1),n=()=>{t(!1)};return xe(()=>(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 mw(){const[e,t]=oe(window.location.hash),n=At(()=>{t(window.location.hash)},[]);xe(()=>(window.addEventListener("hashchange",n),window.addEventListener("replacestate",n),()=>{window.removeEventListener("hashchange",n),window.removeEventListener("replacestate",n)}),[]);const i=At(r=>{r!==e&&Hd({hash:r})},[e]);return[e,i]}function du(e){const[t,n]=oe(matchMedia(e).matches),i=r=>{n(r.matches)};return xe(()=>{const r=matchMedia(e);return r.addEventListener("change",i),()=>{r.removeEventListener("change",i)}},[e]),t}function Mo(e,t,n){const i={invalidated(){e&&t(e)}};xe(()=>(e==null||e.addListener(i),()=>{e==null||e.removeListener(i)}),[e,...n!=null?n:[]])}const pu=(e,t)=>{var n;return(n=new URLSearchParams(e).get(t))!=null?n:void 0};function Gr(e){const t=window.location,[n,i]=oe(pu(t.search,e));xe(()=>{const s=()=>{i(pu(t.search,e))};return window.addEventListener("popstate",s),window.addEventListener("pushstate",s),window.addEventListener("replacestate",s),()=>{window.removeEventListener("popstate",s),window.removeEventListener("pushstate",s),window.removeEventListener("replacestate",s)}},[]);const r=At((s,u)=>{if(s!==n){const o=new URLSearchParams(t.search);s===void 0||s.length===0?o.delete(e):o.set(e,s),Hd({search:o.toString().replaceAll("%7C","|"),replace:u})}},[n]);return[n,r]}function $t(e){const{icon:t,label:n,relative:i,tooltip:r,tooltipLoc:s,children:u}=e,[o,c]=jl();return S("div",Ce({class:`btn-menu${i===!1?" no-relative":""}`},e),S(Ee,{icon:t,label:n,tooltip:r,tooltipLoc:s,onClick:c}),o&&S("div",{class:"btn-group"},u))}var Wd={exports:{}};(function(e,t){(function(i,r){e.exports=r()})(tn,function(){return function(n){var i={};function r(s){if(i[s])return i[s].exports;var u=i[s]={exports:{},id:s,loaded:!1};return n[s].call(u.exports,u,u.exports,r),u.loaded=!0,u.exports}return r.m=n,r.c=i,r.p="",r(0)}([function(n,i,r){var s,u;s=[r(1)],u=function(o){var c={},a=function(x,y,C){var B,T,M={},R,I,H,P,j,V=new p(C),K=C&&C.traceFormat;if(K!=="chrome"&&K!=="firefox"){if(K)throw new Error('unknown traceFormat "'+K+'" :(');if(f()||d())K="chrome";else if(l()||h())K="firefox";else throw new Error("unknown browser :(")}K==="chrome"?(P=/^ +at.+\((.*):([0-9]+):([0-9]+)/,H=4,j=1):(P=/@(.*):([0-9]+):([0-9]+)/,H=4,j=0),B=x.split(` -`).slice(j);for(var N=0;N<B.length;N++)T=B[N],!(C&&C.filter&&!C.filter(T))&&(R=T.match(P),R&&R.length===H&&(M[N]=R,I=R[1],I.match(/<anonymous>/)||V.fetchScript(I)));V.sem.whenReady(function(){var k=w(B,M,V.mapForUri,K);y(k)})},f=function(){return navigator.userAgent.toLowerCase().indexOf("chrome")>-1},l=function(){return navigator.userAgent.toLowerCase().indexOf("firefox")>-1},h=function(){return navigator.userAgent.toLowerCase().indexOf("safari")>-1},d=function(){return document.documentMode&&document.documentMode>=11},g=function(){this.count=0,this.pending=[]};g.prototype.incr=function(){this.count++},g.prototype.decr=function(){this.count--,this.flush()},g.prototype.whenReady=function(x){this.pending.push(x),this.flush()},g.prototype.flush=function(){this.count===0&&(this.pending.forEach(function(x){x()}),this.pending=[])};var p=function(x){this.sem=new g,this.sync=x&&x.sync,this.mapForUri=x&&x.cacheGlobally?c:{}};p.prototype.ajax=function(x,y){var C=b(),B=this;C.onreadystatechange=function(){C.readyState==4&&y.call(B,C,x)},C.open("GET",x,!this.sync),C.send()},p.prototype.fetchScript=function(x){if(!(x in this.mapForUri))this.sem.incr(),this.mapForUri[x]=null;else return;this.ajax(x,this.onScriptLoad)};var m=new RegExp("^(?:[a-z]+:)?//","i");p.prototype.onScriptLoad=function(x,y){if(x.status===200||y.slice(0,7)==="file://"&&x.status===0){var C=x.responseText.match("//# [s]ourceMappingURL=(.*)[\\s]*$","m");if(C&&C.length===2){var B=C[1],T=B.match("data:application/json;(charset=[^;]+;)?base64,(.*)");if(T&&T[2])this.mapForUri[y]=new o.SourceMapConsumer(atob(T[2])),this.sem.decr();else{if(!m.test(B)){var M,R=y.lastIndexOf("/");R!==-1&&(M=y.slice(0,R+1),B=M+B)}this.ajax(B,function(I){(I.status===200||B.slice(0,7)==="file://"&&I.status===0)&&(this.mapForUri[y]=new o.SourceMapConsumer(I.responseText)),this.sem.decr()})}}else this.sem.decr()}else this.sem.decr()};var w=function(x,y,C,B){for(var T=[],M,R=B==="chrome"?v:A,I=0;I<x.length;I++){var H=y[I];if(H){var P=H[1],j=parseInt(H[2],10),V=parseInt(H[3],10);if(M=C[P],M){var K=M.originalPositionFor({line:j,column:V});T.push(_(K.source,K.line,K.column,K.name||R(x[I])))}else T.push(_(P,j,V,R(x[I])))}else T.push(x[I])}return T};function v(x){var y=/ +at +([^ ]*).*/.exec(x);return y&&y[1]}function A(x){var y=/([^@]*)@.*/.exec(x);return y&&y[1]}var _=function(x,y,C,B){return" at "+(B||"(unknown)")+" ("+x+":"+y+":"+C+")"},E=[function(){return new XMLHttpRequest},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml3.XMLHTTP")},function(){return new ActiveXObject("Microsoft.XMLHTTP")}];function b(){for(var x=!1,y=0;y<E.length;y++){try{x=E[y]()}catch{continue}break}return x}return{mapStackTrace:a}}.apply(i,s),u!==void 0&&(n.exports=u)},function(n,i,r){var s=r(2),u=r(3),o=r(4).ArraySet,c=r(5),a=r(7).quickSort;function f(g){var p=g;return typeof g=="string"&&(p=JSON.parse(g.replace(/^\)\]\}'/,""))),p.sections!=null?new d(p):new l(p)}f.fromSourceMap=function(g){return l.fromSourceMap(g)},f.prototype._version=3,f.prototype.__generatedMappings=null,Object.defineProperty(f.prototype,"_generatedMappings",{get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}}),f.prototype.__originalMappings=null,Object.defineProperty(f.prototype,"_originalMappings",{get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}}),f.prototype._charIsMappingSeparator=function(p,m){var w=p.charAt(m);return w===";"||w===","},f.prototype._parseMappings=function(p,m){throw new Error("Subclasses must implement _parseMappings")},f.GENERATED_ORDER=1,f.ORIGINAL_ORDER=2,f.GREATEST_LOWER_BOUND=1,f.LEAST_UPPER_BOUND=2,f.prototype.eachMapping=function(p,m,w){var v=m||null,A=w||f.GENERATED_ORDER,_;switch(A){case f.GENERATED_ORDER:_=this._generatedMappings;break;case f.ORIGINAL_ORDER:_=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var E=this.sourceRoot;_.map(function(b){var x=b.source===null?null:this._sources.at(b.source);return x!=null&&E!=null&&(x=s.join(E,x)),{source:x,generatedLine:b.generatedLine,generatedColumn:b.generatedColumn,originalLine:b.originalLine,originalColumn:b.originalColumn,name:b.name===null?null:this._names.at(b.name)}},this).forEach(p,v)},f.prototype.allGeneratedPositionsFor=function(p){var m=s.getArg(p,"line"),w={source:s.getArg(p,"source"),originalLine:m,originalColumn:s.getArg(p,"column",0)};if(this.sourceRoot!=null&&(w.source=s.relative(this.sourceRoot,w.source)),!this._sources.has(w.source))return[];w.source=this._sources.indexOf(w.source);var v=[],A=this._findMapping(w,this._originalMappings,"originalLine","originalColumn",s.compareByOriginalPositions,u.LEAST_UPPER_BOUND);if(A>=0){var _=this._originalMappings[A];if(p.column===void 0)for(var E=_.originalLine;_&&_.originalLine===E;)v.push({line:s.getArg(_,"generatedLine",null),column:s.getArg(_,"generatedColumn",null),lastColumn:s.getArg(_,"lastGeneratedColumn",null)}),_=this._originalMappings[++A];else for(var b=_.originalColumn;_&&_.originalLine===m&&_.originalColumn==b;)v.push({line:s.getArg(_,"generatedLine",null),column:s.getArg(_,"generatedColumn",null),lastColumn:s.getArg(_,"lastGeneratedColumn",null)}),_=this._originalMappings[++A]}return v},i.SourceMapConsumer=f;function l(g){var p=g;typeof g=="string"&&(p=JSON.parse(g.replace(/^\)\]\}'/,"")));var m=s.getArg(p,"version"),w=s.getArg(p,"sources"),v=s.getArg(p,"names",[]),A=s.getArg(p,"sourceRoot",null),_=s.getArg(p,"sourcesContent",null),E=s.getArg(p,"mappings"),b=s.getArg(p,"file",null);if(m!=this._version)throw new Error("Unsupported version: "+m);w=w.map(String).map(s.normalize).map(function(x){return A&&s.isAbsolute(A)&&s.isAbsolute(x)?s.relative(A,x):x}),this._names=o.fromArray(v.map(String),!0),this._sources=o.fromArray(w,!0),this.sourceRoot=A,this.sourcesContent=_,this._mappings=E,this.file=b}l.prototype=Object.create(f.prototype),l.prototype.consumer=f,l.fromSourceMap=function(p){var m=Object.create(l.prototype),w=m._names=o.fromArray(p._names.toArray(),!0),v=m._sources=o.fromArray(p._sources.toArray(),!0);m.sourceRoot=p._sourceRoot,m.sourcesContent=p._generateSourcesContent(m._sources.toArray(),m.sourceRoot),m.file=p._file;for(var A=p._mappings.toArray().slice(),_=m.__generatedMappings=[],E=m.__originalMappings=[],b=0,x=A.length;b<x;b++){var y=A[b],C=new h;C.generatedLine=y.generatedLine,C.generatedColumn=y.generatedColumn,y.source&&(C.source=v.indexOf(y.source),C.originalLine=y.originalLine,C.originalColumn=y.originalColumn,y.name&&(C.name=w.indexOf(y.name)),E.push(C)),_.push(C)}return a(m.__originalMappings,s.compareByOriginalPositions),m},l.prototype._version=3,Object.defineProperty(l.prototype,"sources",{get:function(){return this._sources.toArray().map(function(g){return this.sourceRoot!=null?s.join(this.sourceRoot,g):g},this)}});function h(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}l.prototype._parseMappings=function(p,m){for(var w=1,v=0,A=0,_=0,E=0,b=0,x=p.length,y=0,C={},B={},T=[],M=[],R,I,H,P,j;y<x;)if(p.charAt(y)===";")w++,y++,v=0;else if(p.charAt(y)===",")y++;else{for(R=new h,R.generatedLine=w,P=y;P<x&&!this._charIsMappingSeparator(p,P);P++);if(I=p.slice(y,P),H=C[I],H)y+=I.length;else{for(H=[];y<P;)c.decode(p,y,B),j=B.value,y=B.rest,H.push(j);if(H.length===2)throw new Error("Found a source, but no line and column");if(H.length===3)throw new Error("Found a source and line, but no column");C[I]=H}R.generatedColumn=v+H[0],v=R.generatedColumn,H.length>1&&(R.source=E+H[1],E+=H[1],R.originalLine=A+H[2],A=R.originalLine,R.originalLine+=1,R.originalColumn=_+H[3],_=R.originalColumn,H.length>4&&(R.name=b+H[4],b+=H[4])),M.push(R),typeof R.originalLine=="number"&&T.push(R)}a(M,s.compareByGeneratedPositionsDeflated),this.__generatedMappings=M,a(T,s.compareByOriginalPositions),this.__originalMappings=T},l.prototype._findMapping=function(p,m,w,v,A,_){if(p[w]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+p[w]);if(p[v]<0)throw new TypeError("Column must be greater than or equal to 0, got "+p[v]);return u.search(p,m,A,_)},l.prototype.computeColumnSpans=function(){for(var p=0;p<this._generatedMappings.length;++p){var m=this._generatedMappings[p];if(p+1<this._generatedMappings.length){var w=this._generatedMappings[p+1];if(m.generatedLine===w.generatedLine){m.lastGeneratedColumn=w.generatedColumn-1;continue}}m.lastGeneratedColumn=1/0}},l.prototype.originalPositionFor=function(p){var m={generatedLine:s.getArg(p,"line"),generatedColumn:s.getArg(p,"column")},w=this._findMapping(m,this._generatedMappings,"generatedLine","generatedColumn",s.compareByGeneratedPositionsDeflated,s.getArg(p,"bias",f.GREATEST_LOWER_BOUND));if(w>=0){var v=this._generatedMappings[w];if(v.generatedLine===m.generatedLine){var A=s.getArg(v,"source",null);A!==null&&(A=this._sources.at(A),this.sourceRoot!=null&&(A=s.join(this.sourceRoot,A)));var _=s.getArg(v,"name",null);return _!==null&&(_=this._names.at(_)),{source:A,line:s.getArg(v,"originalLine",null),column:s.getArg(v,"originalColumn",null),name:_}}}return{source:null,line:null,column:null,name:null}},l.prototype.hasContentsOfAllSources=function(){return this.sourcesContent?this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(p){return p==null}):!1},l.prototype.sourceContentFor=function(p,m){if(!this.sourcesContent)return null;if(this.sourceRoot!=null&&(p=s.relative(this.sourceRoot,p)),this._sources.has(p))return this.sourcesContent[this._sources.indexOf(p)];var w;if(this.sourceRoot!=null&&(w=s.urlParse(this.sourceRoot))){var v=p.replace(/^file:\/\//,"");if(w.scheme=="file"&&this._sources.has(v))return this.sourcesContent[this._sources.indexOf(v)];if((!w.path||w.path=="/")&&this._sources.has("/"+p))return this.sourcesContent[this._sources.indexOf("/"+p)]}if(m)return null;throw new Error('"'+p+'" is not in the SourceMap.')},l.prototype.generatedPositionFor=function(p){var m=s.getArg(p,"source");if(this.sourceRoot!=null&&(m=s.relative(this.sourceRoot,m)),!this._sources.has(m))return{line:null,column:null,lastColumn:null};m=this._sources.indexOf(m);var w={source:m,originalLine:s.getArg(p,"line"),originalColumn:s.getArg(p,"column")},v=this._findMapping(w,this._originalMappings,"originalLine","originalColumn",s.compareByOriginalPositions,s.getArg(p,"bias",f.GREATEST_LOWER_BOUND));if(v>=0){var A=this._originalMappings[v];if(A.source===w.source)return{line:s.getArg(A,"generatedLine",null),column:s.getArg(A,"generatedColumn",null),lastColumn:s.getArg(A,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},i.BasicSourceMapConsumer=l;function d(g){var p=g;typeof g=="string"&&(p=JSON.parse(g.replace(/^\)\]\}'/,"")));var m=s.getArg(p,"version"),w=s.getArg(p,"sections");if(m!=this._version)throw new Error("Unsupported version: "+m);this._sources=new o,this._names=new o;var v={line:-1,column:0};this._sections=w.map(function(A){if(A.url)throw new Error("Support for url field in sections not implemented.");var _=s.getArg(A,"offset"),E=s.getArg(_,"line"),b=s.getArg(_,"column");if(E<v.line||E===v.line&&b<v.column)throw new Error("Section offsets must be ordered and non-overlapping.");return v=_,{generatedOffset:{generatedLine:E+1,generatedColumn:b+1},consumer:new f(s.getArg(A,"map"))}})}d.prototype=Object.create(f.prototype),d.prototype.constructor=f,d.prototype._version=3,Object.defineProperty(d.prototype,"sources",{get:function(){for(var g=[],p=0;p<this._sections.length;p++)for(var m=0;m<this._sections[p].consumer.sources.length;m++)g.push(this._sections[p].consumer.sources[m]);return g}}),d.prototype.originalPositionFor=function(p){var m={generatedLine:s.getArg(p,"line"),generatedColumn:s.getArg(p,"column")},w=u.search(m,this._sections,function(A,_){var E=A.generatedLine-_.generatedOffset.generatedLine;return E||A.generatedColumn-_.generatedOffset.generatedColumn}),v=this._sections[w];return v?v.consumer.originalPositionFor({line:m.generatedLine-(v.generatedOffset.generatedLine-1),column:m.generatedColumn-(v.generatedOffset.generatedLine===m.generatedLine?v.generatedOffset.generatedColumn-1:0),bias:p.bias}):{source:null,line:null,column:null,name:null}},d.prototype.hasContentsOfAllSources=function(){return this._sections.every(function(p){return p.consumer.hasContentsOfAllSources()})},d.prototype.sourceContentFor=function(p,m){for(var w=0;w<this._sections.length;w++){var v=this._sections[w],A=v.consumer.sourceContentFor(p,!0);if(A)return A}if(m)return null;throw new Error('"'+p+'" is not in the SourceMap.')},d.prototype.generatedPositionFor=function(p){for(var m=0;m<this._sections.length;m++){var w=this._sections[m];if(w.consumer.sources.indexOf(s.getArg(p,"source"))!==-1){var v=w.consumer.generatedPositionFor(p);if(v){var A={line:v.line+(w.generatedOffset.generatedLine-1),column:v.column+(w.generatedOffset.generatedLine===v.line?w.generatedOffset.generatedColumn-1:0)};return A}}}return{line:null,column:null}},d.prototype._parseMappings=function(p,m){this.__generatedMappings=[],this.__originalMappings=[];for(var w=0;w<this._sections.length;w++)for(var v=this._sections[w],A=v.consumer._generatedMappings,_=0;_<A.length;_++){var E=A[_],b=v.consumer._sources.at(E.source);v.consumer.sourceRoot!==null&&(b=s.join(v.consumer.sourceRoot,b)),this._sources.add(b),b=this._sources.indexOf(b);var x=v.consumer._names.at(E.name);this._names.add(x),x=this._names.indexOf(x);var y={source:b,generatedLine:E.generatedLine+(v.generatedOffset.generatedLine-1),generatedColumn:E.generatedColumn+(v.generatedOffset.generatedLine===E.generatedLine?v.generatedOffset.generatedColumn-1:0),originalLine:E.originalLine,originalColumn:E.originalColumn,name:x};this.__generatedMappings.push(y),typeof y.originalLine=="number"&&this.__originalMappings.push(y)}a(this.__generatedMappings,s.compareByGeneratedPositionsDeflated),a(this.__originalMappings,s.compareByOriginalPositions)},i.IndexedSourceMapConsumer=d},function(n,i){function r(E,b,x){if(b in E)return E[b];if(arguments.length===3)return x;throw new Error('"'+b+'" is a required argument.')}i.getArg=r;var s=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/,u=/^data:.+\,.+$/;function o(E){var b=E.match(s);return b?{scheme:b[1],auth:b[2],host:b[3],port:b[4],path:b[5]}:null}i.urlParse=o;function c(E){var b="";return E.scheme&&(b+=E.scheme+":"),b+="//",E.auth&&(b+=E.auth+"@"),E.host&&(b+=E.host),E.port&&(b+=":"+E.port),E.path&&(b+=E.path),b}i.urlGenerate=c;function a(E){var b=E,x=o(E);if(x){if(!x.path)return E;b=x.path}for(var y=i.isAbsolute(b),C=b.split(/\/+/),B,T=0,M=C.length-1;M>=0;M--)B=C[M],B==="."?C.splice(M,1):B===".."?T++:T>0&&(B===""?(C.splice(M+1,T),T=0):(C.splice(M,2),T--));return b=C.join("/"),b===""&&(b=y?"/":"."),x?(x.path=b,c(x)):b}i.normalize=a;function f(E,b){E===""&&(E="."),b===""&&(b=".");var x=o(b),y=o(E);if(y&&(E=y.path||"/"),x&&!x.scheme)return y&&(x.scheme=y.scheme),c(x);if(x||b.match(u))return b;if(y&&!y.host&&!y.path)return y.host=b,c(y);var C=b.charAt(0)==="/"?b:a(E.replace(/\/+$/,"")+"/"+b);return y?(y.path=C,c(y)):C}i.join=f,i.isAbsolute=function(E){return E.charAt(0)==="/"||!!E.match(s)};function l(E,b){E===""&&(E="."),E=E.replace(/\/$/,"");for(var x=0;b.indexOf(E+"/")!==0;){var y=E.lastIndexOf("/");if(y<0||(E=E.slice(0,y),E.match(/^([^\/]+:\/)?\/*$/)))return b;++x}return Array(x+1).join("../")+b.substr(E.length+1)}i.relative=l;var h=function(){var E=Object.create(null);return!("__proto__"in E)}();function d(E){return E}function g(E){return m(E)?"$"+E:E}i.toSetString=h?d:g;function p(E){return m(E)?E.slice(1):E}i.fromSetString=h?d:p;function m(E){if(!E)return!1;var b=E.length;if(b<9||E.charCodeAt(b-1)!==95||E.charCodeAt(b-2)!==95||E.charCodeAt(b-3)!==111||E.charCodeAt(b-4)!==116||E.charCodeAt(b-5)!==111||E.charCodeAt(b-6)!==114||E.charCodeAt(b-7)!==112||E.charCodeAt(b-8)!==95||E.charCodeAt(b-9)!==95)return!1;for(var x=b-10;x>=0;x--)if(E.charCodeAt(x)!==36)return!1;return!0}function w(E,b,x){var y=E.source-b.source;return y!==0||(y=E.originalLine-b.originalLine,y!==0)||(y=E.originalColumn-b.originalColumn,y!==0||x)||(y=E.generatedColumn-b.generatedColumn,y!==0)||(y=E.generatedLine-b.generatedLine,y!==0)?y:E.name-b.name}i.compareByOriginalPositions=w;function v(E,b,x){var y=E.generatedLine-b.generatedLine;return y!==0||(y=E.generatedColumn-b.generatedColumn,y!==0||x)||(y=E.source-b.source,y!==0)||(y=E.originalLine-b.originalLine,y!==0)||(y=E.originalColumn-b.originalColumn,y!==0)?y:E.name-b.name}i.compareByGeneratedPositionsDeflated=v;function A(E,b){return E===b?0:E>b?1:-1}function _(E,b){var x=E.generatedLine-b.generatedLine;return x!==0||(x=E.generatedColumn-b.generatedColumn,x!==0)||(x=A(E.source,b.source),x!==0)||(x=E.originalLine-b.originalLine,x!==0)||(x=E.originalColumn-b.originalColumn,x!==0)?x:A(E.name,b.name)}i.compareByGeneratedPositionsInflated=_},function(n,i){i.GREATEST_LOWER_BOUND=1,i.LEAST_UPPER_BOUND=2;function r(s,u,o,c,a,f){var l=Math.floor((u-s)/2)+s,h=a(o,c[l],!0);return h===0?l:h>0?u-l>1?r(l,u,o,c,a,f):f==i.LEAST_UPPER_BOUND?u<c.length?u:-1:l:l-s>1?r(s,l,o,c,a,f):f==i.LEAST_UPPER_BOUND?l:s<0?-1:s}i.search=function(u,o,c,a){if(o.length===0)return-1;var f=r(-1,o.length,u,o,c,a||i.GREATEST_LOWER_BOUND);if(f<0)return-1;for(;f-1>=0&&c(o[f],o[f-1],!0)===0;)--f;return f}},function(n,i,r){var s=r(2),u=Object.prototype.hasOwnProperty;function o(){this._array=[],this._set=Object.create(null)}o.fromArray=function(a,f){for(var l=new o,h=0,d=a.length;h<d;h++)l.add(a[h],f);return l},o.prototype.size=function(){return Object.getOwnPropertyNames(this._set).length},o.prototype.add=function(a,f){var l=s.toSetString(a),h=u.call(this._set,l),d=this._array.length;(!h||f)&&this._array.push(a),h||(this._set[l]=d)},o.prototype.has=function(a){var f=s.toSetString(a);return u.call(this._set,f)},o.prototype.indexOf=function(a){var f=s.toSetString(a);if(u.call(this._set,f))return this._set[f];throw new Error('"'+a+'" is not in the set.')},o.prototype.at=function(a){if(a>=0&&a<this._array.length)return this._array[a];throw new Error("No element indexed by "+a)},o.prototype.toArray=function(){return this._array.slice()},i.ArraySet=o},function(n,i,r){var s=r(6),u=5,o=1<<u,c=o-1,a=o;function f(h){return h<0?(-h<<1)+1:(h<<1)+0}function l(h){var d=(h&1)===1,g=h>>1;return d?-g:g}i.encode=function(d){var g="",p,m=f(d);do p=m&c,m>>>=u,m>0&&(p|=a),g+=s.encode(p);while(m>0);return g},i.decode=function(d,g,p){var m=d.length,w=0,v=0,A,_;do{if(g>=m)throw new Error("Expected more digits in base 64 VLQ value.");if(_=s.decode(d.charCodeAt(g++)),_===-1)throw new Error("Invalid base64 digit: "+d.charAt(g-1));A=!!(_&a),_&=c,w=w+(_<<v),v+=u}while(A);p.value=l(w),p.rest=g}},function(n,i){var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");i.encode=function(s){if(0<=s&&s<r.length)return r[s];throw new TypeError("Must be between 0 and 63: "+s)},i.decode=function(s){var u=65,o=90,c=97,a=122,f=48,l=57,h=43,d=47,g=26,p=52;return u<=s&&s<=o?s-u:c<=s&&s<=a?s-c+g:f<=s&&s<=l?s-f+p:s==h?62:s==d?63:-1}},function(n,i){function r(o,c,a){var f=o[c];o[c]=o[a],o[a]=f}function s(o,c){return Math.round(o+Math.random()*(c-o))}function u(o,c,a,f){if(a<f){var l=s(a,f),h=a-1;r(o,l,f);for(var d=o[f],g=a;g<f;g++)c(o[g],d)<=0&&(h+=1,r(o,h,g));r(o,h+1,g);var p=h+1;u(o,c,a,p-1),u(o,c,p+1,f)}}i.quickSort=function(o,c){u(o,c,0,o.length-1)}}])})})(Wd);const $e={alert:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("path",{"fill-rule":"evenodd",d:"M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"})),archive:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("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:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("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:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("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:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("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:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("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:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("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:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("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:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("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:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("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:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("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:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("path",{"fill-rule":"evenodd",d:"M1.75 2.5h12.5a.25.25 0 01.25.25v7.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25v-7.5a.25.25 0 01.25-.25zM14.25 1H1.75A1.75 1.75 0 000 2.75v7.5C0 11.216.784 12 1.75 12h3.727c-.1 1.041-.52 1.872-1.292 2.757A.75.75 0 004.75 16h6.5a.75.75 0 00.565-1.243c-.772-.885-1.193-1.716-1.292-2.757h3.727A1.75 1.75 0 0016 10.25v-7.5A1.75 1.75 0 0014.25 1zM9.018 12H6.982a5.72 5.72 0 01-.765 2.5h3.566a5.72 5.72 0 01-.765-2.5z"})),dot_fill:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("path",{"fill-rule":"evenodd",d:"M8 4a4 4 0 100 8 4 4 0 000-8z"})),download:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("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:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("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"}),S("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"}),S("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:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("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:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("path",{"fill-rule":"evenodd",d:"M.143 2.31a.75.75 0 011.047-.167l14.5 10.5a.75.75 0 11-.88 1.214l-2.248-1.628C11.346 13.19 9.792 14 8 14c-1.981 0-3.67-.992-4.933-2.078C1.797 10.832.88 9.577.43 8.9a1.618 1.618 0 010-1.797c.353-.533.995-1.42 1.868-2.305L.31 3.357A.75.75 0 01.143 2.31zm3.386 3.378a14.21 14.21 0 00-1.85 2.244.12.12 0 00-.022.068c0 .021.006.045.022.068.412.621 1.242 1.75 2.366 2.717C5.175 11.758 6.527 12.5 8 12.5c1.195 0 2.31-.488 3.29-1.191L9.063 9.695A2 2 0 016.058 7.52l-2.53-1.832zM8 3.5c-.516 0-1.017.09-1.499.251a.75.75 0 11-.473-1.423A6.23 6.23 0 018 2c1.981 0 3.67.992 4.933 2.078 1.27 1.091 2.187 2.345 2.637 3.023a1.619 1.619 0 010 1.798c-.11.166-.248.365-.41.587a.75.75 0 11-1.21-.887c.148-.201.272-.382.371-.53a.119.119 0 000-.137c-.412-.621-1.242-1.75-2.366-2.717C10.825 4.242 9.473 3.5 8 3.5z"})),file:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("path",{"fill-rule":"evenodd",d:"M3.75 1.5a.25.25 0 00-.25.25v11.5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25V6H9.75A1.75 1.75 0 018 4.25V1.5H3.75zm5.75.56v2.19c0 .138.112.25.25.25h2.19L9.5 2.06zM2 1.75C2 .784 2.784 0 3.75 0h5.086c.464 0 .909.184 1.237.513l3.414 3.414c.329.328.513.773.513 1.237v8.086A1.75 1.75 0 0112.25 15h-8.5A1.75 1.75 0 012 13.25V1.75z"})),file_directory:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("path",{"fill-rule":"evenodd",d:"M1.75 1A1.75 1.75 0 000 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25v-8.5A1.75 1.75 0 0014.25 3h-6.5a.25.25 0 01-.2-.1l-.9-1.2c-.33-.44-.85-.7-1.4-.7h-3.5z"})),gear:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("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:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("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:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("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:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("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:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("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:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("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:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("path",{"fill-rule":"evenodd",d:"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"})),link_external:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("path",{"fill-rule":"evenodd",d:"M10.604 1h4.146a.25.25 0 01.25.25v4.146a.25.25 0 01-.427.177L13.03 4.03 9.28 7.78a.75.75 0 01-1.06-1.06l3.75-3.75-1.543-1.543A.25.25 0 0110.604 1zM3.75 2A1.75 1.75 0 002 3.75v8.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 12.25v-3.5a.75.75 0 00-1.5 0v3.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-8.5a.25.25 0 01.25-.25h3.5a.75.75 0 000-1.5h-3.5z"})),mark_github:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("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:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("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:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("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:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("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:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("path",{"fill-rule":"evenodd",d:"M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zm.75 4.75a.75.75 0 00-1.5 0v2.5h-2.5a.75.75 0 000 1.5h2.5v2.5a.75.75 0 001.5 0v-2.5h2.5a.75.75 0 000-1.5h-2.5v-2.5z"})),repo:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("path",{"fill-rule":"evenodd",d:"M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"})),search:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("path",{"fill-rule":"evenodd",d:"M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"})),sort_asc:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("path",{"fill-rule":"evenodd",d:"M0 4.25a.75.75 0 01.75-.75h2.5a.75.75 0 010 1.5H.75A.75.75 0 010 4.25zm0 4a.75.75 0 01.75-.75h4.5a.75.75 0 010 1.5H.75A.75.75 0 010 8.25zm0 4a.75.75 0 01.75-.75h7.5a.75.75 0 010 1.5H.75a.75.75 0 01-.75-.75zm12.927-9.677a.25.25 0 00-.354 0l-3 3A.25.25 0 009.75 6H12v6.75a.75.75 0 001.5 0V6h2.25a.25.25 0 00.177-.427l-3-3z"})),sort_desc:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("path",{"fill-rule":"evenodd",d:"M0 4.25a.75.75 0 01.75-.75h7.5a.75.75 0 010 1.5H.75A.75.75 0 010 4.25zm0 4a.75.75 0 01.75-.75h4.5a.75.75 0 010 1.5H.75A.75.75 0 010 8.25zm0 4a.75.75 0 01.75-.75h2.5a.75.75 0 010 1.5H.75a.75.75 0 01-.75-.75z"}),S("path",{d:"M13.5 10h2.25a.25.25 0 01.177.427l-3 3a.25.25 0 01-.354 0l-3-3A.25.25 0 019.75 10H12V3.75a.75.75 0 011.5 0V10z"})),square:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("path",{"fill-rule":"evenodd",d:"M4 5.75C4 4.784 4.784 4 5.75 4h4.5c.966 0 1.75.784 1.75 1.75v4.5A1.75 1.75 0 0110.25 12h-4.5A1.75 1.75 0 014 10.25v-4.5zm1.75-.25a.25.25 0 00-.25.25v4.5c0 .138.112.25.25.25h4.5a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-4.5z"})),square_fill:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("path",{"fill-rule":"evenodd",d:"M5.75 4A1.75 1.75 0 004 5.75v4.5c0 .966.784 1.75 1.75 1.75h4.5A1.75 1.75 0 0012 10.25v-4.5A1.75 1.75 0 0010.25 4h-4.5z"})),stack:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("path",{"fill-rule":"evenodd",d:"M7.122.392a1.75 1.75 0 011.756 0l5.003 2.902c.83.481.83 1.68 0 2.162L8.878 8.358a1.75 1.75 0 01-1.756 0L2.119 5.456a1.25 1.25 0 010-2.162L7.122.392zM8.125 1.69a.25.25 0 00-.25 0l-4.63 2.685 4.63 2.685a.25.25 0 00.25 0l4.63-2.685-4.63-2.685zM1.601 7.789a.75.75 0 011.025-.273l5.249 3.044a.25.25 0 00.25 0l5.249-3.044a.75.75 0 01.752 1.298l-5.248 3.044a1.75 1.75 0 01-1.756 0L1.874 8.814A.75.75 0 011.6 7.789zm0 3.5a.75.75 0 011.025-.273l5.249 3.044a.25.25 0 00.25 0l5.249-3.044a.75.75 0 01.752 1.298l-5.248 3.044a1.75 1.75 0 01-1.756 0l-5.248-3.044a.75.75 0 01-.273-1.025z"})),sun:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("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:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("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:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("path",{"fill-rule":"evenodd",d:"M2.5 7.775V2.75a.25.25 0 01.25-.25h5.025a.25.25 0 01.177.073l6.25 6.25a.25.25 0 010 .354l-5.025 5.025a.25.25 0 01-.354 0l-6.25-6.25a.25.25 0 01-.073-.177zm-1.5 0V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.513l6.25 6.25a1.75 1.75 0 010 2.474l-5.026 5.026a1.75 1.75 0 01-2.474 0l-6.25-6.25A1.75 1.75 0 011 7.775zM6 5a1 1 0 100 2 1 1 0 000-2z"})),terminal:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("path",{"fill-rule":"evenodd",d:"M0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0114.25 15H1.75A1.75 1.75 0 010 13.25V2.75zm1.75-.25a.25.25 0 00-.25.25v10.5c0 .138.112.25.25.25h12.5a.25.25 0 00.25-.25V2.75a.25.25 0 00-.25-.25H1.75zM7.25 8a.75.75 0 01-.22.53l-2.25 2.25a.75.75 0 11-1.06-1.06L5.44 8 3.72 6.28a.75.75 0 111.06-1.06l2.25 2.25c.141.14.22.331.22.53zm1.5 1.5a.75.75 0 000 1.5h3a.75.75 0 000-1.5h-3z"})),three_bars:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("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:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("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:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("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:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("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:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("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:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},S("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 Xi({error:e,onDismiss:t}){const[n,i]=oe(!1),[r,s]=oe(void 0);xe(()=>{if(e instanceof Error){const o=e.stack.split(` -`).map(c=>c.replace(/^(\s+)at (?:async )?(https?:.*)/,"$1at ($2)"));s(o.join(` -`)),Wd.exports.mapStackTrace(o.join(` -`),c=>{const a=c.map(f=>f.replace(/..\/..\/src\//,"src/")).join(` -`);s(a)})}},[e]);const u=Qe(()=>{let o="https://github.com/misode/misode.github.io/issues/new";return e instanceof Error?(o+=`?title=${encodeURIComponent(`${e.name}: ${e.message}`)}`,r&&(o+=`&body=${encodeURIComponent(`\`\`\` -${e.name}: ${e.message} -${r} -\`\`\` -`)}`)):o+=`?title=${encodeURIComponent(e.toString())}`,o},[e,r]);return S("div",{class:"error"},t&&S("div",{class:"error-dismiss",onClick:t},$e.x),S("h3",null,e instanceof Error?e.message:e,r&&S("span",{onClick:()=>i(!n)},$e.info)),r&&n&&S("pre",null,r),S("p",null,"If you think this is a bug, you can report it ",S("a",{href:u,target:"_blank"},"on GitHub")))}function vw({label:e,value:t,onChange:n}){const i=vi();return S("label",{class:"checkbox"},S("input",{id:i,type:"checkbox",checked:t,onClick:()=>n(!t)}),e)}function Wl(e,t,n){const i=r=>{const s=r.onChange&&(o=>{var a;const c=o.target.value;(a=r.onChange)==null||a.call(r,n(c))}),u=r.onEnter&&(o=>{var c;if(o.key==="Enter"){const a=o.target.value;(c=r.onEnter)==null||c.call(r,n(a))}});return S("input",tt(Ce({},r),{type:t,onChange:s,onKeyDown:u}))};return i.displayName=e,i}const Ei=Wl("TextInput","text",e=>e),ww=Wl("NumberInput","number",e=>Number(e)),gu=Wl("RangeInput","range",e=>Number(e));function mu({values:e,onSelect:t,searchPlaceholder:n,noResults:i}){const[r,s]=oe(""),u=Qe(()=>{var c;const o=r.trim().split(" ");return(c=e==null?void 0:e.filter(a=>o.every(f=>a.includes(f))))!=null?c:[]},[e,r]);return S(De,null,S(Vs,{icon:"search",large:!0,value:r,onChange:s,doSelect:1,placeholder:n!=null?n:"Search"}),S("div",{class:"result-list"},u.map(o=>S(Ee,{key:o,label:o,onClick:()=>t==null?void 0:t(o)})),u.length===0&&S(Ee,{label:i!=null?i:"No results"})))}const Vl="https://raw.githubusercontent.com/misode/technical-changes/main";let ta=null;async function Vd(){if(!ta){const e=await(await fetch(`${Vl}/index.json`)).json();ta=(await Promise.all(e.map((t,n)=>_w(Gd(t),n)))).flat().map(t=>tt(Ce({},t),{tags:[t.group.id,...t.tags]}))}return ta}async function _w(e,t){const n=await(await fetch(`${Vl}/${e.id}/index.json`)).json();return(await Promise.all(n.map((i,r)=>Aw(e,Gd(i),t,r)))).flat()}async function Aw(e,t,n,i){const r=await(await fetch(`${Vl}/${e.id}/${t.id}.md`)).text();return yw(r).map(s=>Ce({version:t,group:e,order:n*1e3+i},s))}function yw(e){return e.split(` - -`).map(t=>{const n=t.indexOf("|");return{tags:t.substring(0,n).trim().split(" "),content:t.slice(n+1).trim().replaceAll("->","\u2192").replaceAll(` -... -`,` - -`)}})}function Gd(e){return typeof e=="string"?{id:e,article:e.match(/\d\dw\d\d[a-z]/)?"minecraft-snapshot-"+e:e.match(/\d+\.\d+(\.\d+)?-pre[0-9]+/)?"minecraft-"+e.replaceAll(".","-").replaceAll("pre","pre-release-"):null}:Di(e)?e:{id:"unknown",article:null}}["1.15","1.16","1.17"].forEach(e=>localStorage.removeItem(`cache_${e}`));["mcdata_master","vanilla_datapack_summary"].forEach(e=>localStorage.removeItem(`cached_${e}`));caches.delete("misode-v1");const Ji="misode-v2",vu="cached_latest_version",na="22w18a",Fr="https://raw.githubusercontent.com/misode/mcmeta";function oi(e,t){return`${Fr}/${e.dynamic?t:`${e.ref}-${t}`}`}async function Ro(e){e.dynamic&&(localStorage.getItem(vu)!==na&&(await kw(t=>t.startsWith(`${Fr}/summary/`)||t.startsWith(`${Fr}/data/`)||t.startsWith(`${Fr}/assets/`)||t.startsWith(`${Fr}/registries/`)),localStorage.setItem(vu,na)),e.ref=na)}async function Ew(e,t,n){const i=He.versions.find(r=>r.id===e);if(!i){console.error(`[fetchData] Unknown version ${i} in ${JSON.stringify(He.versions)}`);return}await Ro(i),await Promise.all([bw(i,t),xw(i,n)])}async function bw(e,t){console.debug(`[fetchRegistries] ${e.id}`);try{const n=await sr(`${oi(e,"summary")}/registries/data.min.json`);for(const i in n)t.register(i,n[i].map(r=>"minecraft:"+r))}catch(n){console.warn("Error occurred while fetching registries:",Xt(n))}}async function xw(e,t){console.debug(`[fetchBlockStateMap] ${e.id}`);try{const n=await sr(`${oi(e,"summary")}/blocks/data.min.json`);for(const i in n)t["minecraft:"+i]={properties:n[i][0],default:n[i][1]}}catch(n){console.warn("Error occurred while fetching block state map:",Xt(n))}}async function Kd(e,t,n){console.debug(`[fetchPreset] ${e} ${t} ${n}`);const i=He.versions.find(r=>r.id===e);try{const r=["blockstates","models"].includes(t)?"assets":"data",s=`${oi(i,r)}/${r}/minecraft/${t}/${n}.json`;return await(await fetch(s)).json()}catch(r){throw new Error(`Error occurred while fetching ${t} preset ${n}: ${Xt(r)}`)}}async function Cw(e,t){console.debug(`[fetchAllPresets] ${e} ${t}`);const n=He.versions.find(i=>i.id===e);await Ro(n);try{const i=await sr(`${oi(n,"registries")}/${t}/data.min.json`);return new Map(await Promise.all(i.map(async r=>[r,await sr(`${oi(n,"data")}/data/minecraft/${t}/${r}.json`)])))}catch(i){throw new Error(`Error occurred while fetching all ${t} presets: ${Xt(i)}`)}}async function Fw(e){const t=He.versions.find(n=>n.id===e);await Ro(t);try{const n=`${oi(t,"summary")}/sounds/data.min.json`;return await sr(n)}catch(n){throw new Error(`Error occurred while fetching sounds for ${t}: ${Xt(n)}`)}}function Sw(e,t){const n=He.versions.find(i=>i.id===e);return`${oi(n,"assets")}/assets/minecraft/sounds/${t}.ogg`}async function Dw(){const e=He.versions[He.versions.length-1];await Ro(e);try{return sr(`${oi(e,"summary")}/versions/data.min.json`)}catch(t){throw new Error(`Error occured while fetching versions: ${Xt(t)}`)}}async function sr(e,t=n=>n){try{const n=await caches.open(Ji);console.debug(`[getData] Opened cache ${Ji} ${e}`);const i=await n.match(e);if(i&&i.ok)return console.debug(`[getData] Retrieving cached data ${e}`),await i.json();console.debug(`[getData] fetching data ${e}`);const r=await fetch(e),s=t(await r.json());return await n.put(e,new Response(JSON.stringify(s))),s}catch(n){console.warn(`[getData] Failed to open cache ${Ji}: ${Xt(n)}`),console.debug(`[getData] fetching data ${e}`);const i=await fetch(e);return t(await i.json())}}async function kw(e){try{const t=await caches.open(Ji);console.debug(`[deleteMatching] Opened cache ${Ji}`);const n=[];for(const i of await t.keys())e(i.url)&&n.push(t.delete(i));console.debug(`[deleteMatching] Removing ${n.length} cache objects...`),await Promise.all(n)}catch(t){console.warn(`[deleteMatching] Failed to open cache ${Ji}: ${Xt(t)}`)}}const Bw="modulepreload",wu={},Tw="/",ze=function(t,n){return!n||n.length===0?t():Promise.all(n.map(i=>{if(i=`${Tw}${i}`,i in wu)return;wu[i]=!0;const r=i.endsWith(".css"),s=r?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${i}"]${s}`))return;const u=document.createElement("link");if(u.rel=r?"stylesheet":Bw,r||(u.as="script",u.crossOrigin=""),u.href=i,document.head.appendChild(u),r)return new Promise((o,c)=>{u.addEventListener("load",o),u.addEventListener("error",()=>c(new Error(`Unable to preload CSS for ${i}`)))})})).then(()=>t())},Xd=["1.15","1.16","1.17","1.18","1.18.2","1.19"],Li={},$i={},Lw={1.15:()=>ze(()=>import("./index.6fef1ef7.js").then(function(e){return e.i}),[]),1.16:()=>ze(()=>import("./index.a00dac78.js").then(function(e){return e.i}),[]),1.17:()=>ze(()=>import("./index.8076ef8d.js").then(function(e){return e.i}),[]),1.18:()=>ze(()=>import("./index.d40edef2.js").then(function(e){return e.i}),[]),"1.18.2":()=>ze(()=>import("./index.636ef3ff.js").then(function(e){return e.i}),[]),1.19:()=>ze(()=>import("./index.10fe8e42.js").then(function(e){return e.i}),[])};let Jd,Yd,Gs;async function Gl(e){return Li[e]||(Li[e]=(async()=>{try{const t=await Lw[e](),n=t.getCollections(),i={};await Ew(e,n,i);const r=t.getSchemas(n);return Li[e]={collections:n,schemas:r,blockStates:i},Li[e]}catch(t){throw new Error(`Cannot get version "${e}": ${Xt(t)}`)}})()),Li[e]}async function $w(e,t){var n;if(!$i[t]||$i[t].version!==e){const i=await Gl(e);Jd=ae.Reference(i.schemas,"configured_decorator"),Yd=ae.ChoiceNode([{type:"string",node:ae.StringNode(i.collections,{validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:ae.Reference(i.schemas,"configured_feature")}],{choiceContext:"feature"});const r=(n=He.generators.find(s=>s.id===t))==null?void 0:n.schema;if(!r)throw new Error(`Cannot find model ${t}`);try{const s=i.schemas.get(r),u=new ae.DataModel(s,{wrapLists:!0});$i[t]?u.reset($i[t].model.data,!1):(u.validate(!0),u.history=[JSON.stringify(u.data)]),$i[t]={model:u,version:e}}catch(s){const u=new Error(`Cannot get generator "${t}" for version "${e}": ${Xt(s)}`);throw s instanceof Error&&(u.stack=s.stack),u}}return $i[t].model}async function Mw(e){const t=await Gl(e);return Gs=t.collections,t.collections}async function Rw(e){return(await Gl(e)).blockStates}function Mt(e,t,n){const i=He.versions.findIndex(u=>u.id===e),r=t?He.versions.findIndex(u=>u.id===t):0,s=n?He.versions.findIndex(u=>u.id===n):He.versions.length-1;return r<=i&&i<=s}var Zd={exports:{}};(function(e){var t=function(){var n=String.fromCharCode,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",s={};function u(c,a){if(!s[c]){s[c]={};for(var f=0;f<c.length;f++)s[c][c.charAt(f)]=f}return s[c][a]}var o={compressToBase64:function(c){if(c==null)return"";var a=o._compress(c,6,function(f){return i.charAt(f)});switch(a.length%4){default:case 0:return a;case 1:return a+"===";case 2:return a+"==";case 3:return a+"="}},decompressFromBase64:function(c){return c==null?"":c==""?null:o._decompress(c.length,32,function(a){return u(i,c.charAt(a))})},compressToUTF16:function(c){return c==null?"":o._compress(c,15,function(a){return n(a+32)})+" "},decompressFromUTF16:function(c){return c==null?"":c==""?null:o._decompress(c.length,16384,function(a){return c.charCodeAt(a)-32})},compressToUint8Array:function(c){for(var a=o.compress(c),f=new Uint8Array(a.length*2),l=0,h=a.length;l<h;l++){var d=a.charCodeAt(l);f[l*2]=d>>>8,f[l*2+1]=d%256}return f},decompressFromUint8Array:function(c){if(c==null)return o.decompress(c);for(var a=new Array(c.length/2),f=0,l=a.length;f<l;f++)a[f]=c[f*2]*256+c[f*2+1];var h=[];return a.forEach(function(d){h.push(n(d))}),o.decompress(h.join(""))},compressToEncodedURIComponent:function(c){return c==null?"":o._compress(c,6,function(a){return r.charAt(a)})},decompressFromEncodedURIComponent:function(c){return c==null?"":c==""?null:(c=c.replace(/ /g,"+"),o._decompress(c.length,32,function(a){return u(r,c.charAt(a))}))},compress:function(c){return o._compress(c,16,function(a){return n(a)})},_compress:function(c,a,f){if(c==null)return"";var l,h,d={},g={},p="",m="",w="",v=2,A=3,_=2,E=[],b=0,x=0,y;for(y=0;y<c.length;y+=1)if(p=c.charAt(y),Object.prototype.hasOwnProperty.call(d,p)||(d[p]=A++,g[p]=!0),m=w+p,Object.prototype.hasOwnProperty.call(d,m))w=m;else{if(Object.prototype.hasOwnProperty.call(g,w)){if(w.charCodeAt(0)<256){for(l=0;l<_;l++)b=b<<1,x==a-1?(x=0,E.push(f(b)),b=0):x++;for(h=w.charCodeAt(0),l=0;l<8;l++)b=b<<1|h&1,x==a-1?(x=0,E.push(f(b)),b=0):x++,h=h>>1}else{for(h=1,l=0;l<_;l++)b=b<<1|h,x==a-1?(x=0,E.push(f(b)),b=0):x++,h=0;for(h=w.charCodeAt(0),l=0;l<16;l++)b=b<<1|h&1,x==a-1?(x=0,E.push(f(b)),b=0):x++,h=h>>1}v--,v==0&&(v=Math.pow(2,_),_++),delete g[w]}else for(h=d[w],l=0;l<_;l++)b=b<<1|h&1,x==a-1?(x=0,E.push(f(b)),b=0):x++,h=h>>1;v--,v==0&&(v=Math.pow(2,_),_++),d[m]=A++,w=String(p)}if(w!==""){if(Object.prototype.hasOwnProperty.call(g,w)){if(w.charCodeAt(0)<256){for(l=0;l<_;l++)b=b<<1,x==a-1?(x=0,E.push(f(b)),b=0):x++;for(h=w.charCodeAt(0),l=0;l<8;l++)b=b<<1|h&1,x==a-1?(x=0,E.push(f(b)),b=0):x++,h=h>>1}else{for(h=1,l=0;l<_;l++)b=b<<1|h,x==a-1?(x=0,E.push(f(b)),b=0):x++,h=0;for(h=w.charCodeAt(0),l=0;l<16;l++)b=b<<1|h&1,x==a-1?(x=0,E.push(f(b)),b=0):x++,h=h>>1}v--,v==0&&(v=Math.pow(2,_),_++),delete g[w]}else for(h=d[w],l=0;l<_;l++)b=b<<1|h&1,x==a-1?(x=0,E.push(f(b)),b=0):x++,h=h>>1;v--,v==0&&(v=Math.pow(2,_),_++)}for(h=2,l=0;l<_;l++)b=b<<1|h&1,x==a-1?(x=0,E.push(f(b)),b=0):x++,h=h>>1;for(;;)if(b=b<<1,x==a-1){E.push(f(b));break}else x++;return E.join("")},decompress:function(c){return c==null?"":c==""?null:o._decompress(c.length,32768,function(a){return c.charCodeAt(a)})},_decompress:function(c,a,f){var l=[],h=4,d=4,g=3,p="",m=[],w,v,A,_,E,b,x,y={val:f(0),position:a,index:1};for(w=0;w<3;w+=1)l[w]=w;for(A=0,E=Math.pow(2,2),b=1;b!=E;)_=y.val&y.position,y.position>>=1,y.position==0&&(y.position=a,y.val=f(y.index++)),A|=(_>0?1:0)*b,b<<=1;switch(A){case 0:for(A=0,E=Math.pow(2,8),b=1;b!=E;)_=y.val&y.position,y.position>>=1,y.position==0&&(y.position=a,y.val=f(y.index++)),A|=(_>0?1:0)*b,b<<=1;x=n(A);break;case 1:for(A=0,E=Math.pow(2,16),b=1;b!=E;)_=y.val&y.position,y.position>>=1,y.position==0&&(y.position=a,y.val=f(y.index++)),A|=(_>0?1:0)*b,b<<=1;x=n(A);break;case 2:return""}for(l[3]=x,v=x,m.push(x);;){if(y.index>c)return"";for(A=0,E=Math.pow(2,g),b=1;b!=E;)_=y.val&y.position,y.position>>=1,y.position==0&&(y.position=a,y.val=f(y.index++)),A|=(_>0?1:0)*b,b<<=1;switch(x=A){case 0:for(A=0,E=Math.pow(2,8),b=1;b!=E;)_=y.val&y.position,y.position>>=1,y.position==0&&(y.position=a,y.val=f(y.index++)),A|=(_>0?1:0)*b,b<<=1;l[d++]=n(A),x=d-1,h--;break;case 1:for(A=0,E=Math.pow(2,16),b=1;b!=E;)_=y.val&y.position,y.position>>=1,y.position==0&&(y.position=a,y.val=f(y.index++)),A|=(_>0?1:0)*b,b<<=1;l[d++]=n(A),x=d-1,h--;break;case 2:return m.join("")}if(h==0&&(h=Math.pow(2,g),g++),l[x])p=l[x];else if(x===d)p=v+v.charAt(0);else return null;m.push(p),l[d++]=v+p.charAt(0),h--,v=p,h==0&&(h=Math.pow(2,g),g++)}}};return o}();e!=null&&(e.exports=t)})(Zd);var qd=Zd.exports;const Iw="https://z15g7can.directus.app/items",Za="share",_u=new Map;async function Ow(e,t,n,i){try{const r=qd.compressToBase64(JSON.stringify(n)),s=btoa(JSON.stringify(n));console.log("Compression rate",s.length/r.length);const u=JSON.stringify({data:r,type:e,version:t,show_preview:i});let o=_u.get(u);if(!o){const a=await Qd("/snippets",u);_u.set(u,a.id),o=a.id}const c=He.generators.find(a=>a.id===e);return`${location.protocol}//${location.host}/${c.url}/?${Za}=${o}`}catch(r){throw r instanceof Error&&(r.message=`Error creating share link: ${r.message}`),r}}async function Au(e){var t;try{const n=await Qd(`/snippets/${e}`);return tt(Ce({},n),{data:JSON.parse((t=qd.decompressFromBase64(n.data))!=null?t:"{}")})}catch(n){throw n instanceof Error&&(n.message=`Error loading shared content: ${n.message}`),n}}async function Qd(e,t){var r,s,u;const i=await(await fetch(Iw+e,t?{method:"post",headers:{"Content-Type":"application/json"},body:t}:void 0)).json();if(i.data)return i.data;throw new Error((u=(s=(r=i.errors)==null?void 0:r[0])==null?void 0:s.message)!=null?u:"Unknown error")}var e0=JSON.parse('{"add":"Add","add_bottom":"Add to bottom","add_top":"Add to top","advancement":"Advancement","any_version":"Any","assets":"Assets","block_definition":"Blockstate","changelog.search":"Search changes","changelog.no_results":"No changes","chat_type":"Chat Type","collapse":"Collapse","collapse_all":"Hold %0% to collapse all","configure_layers":"Configure layers","copy":"Copy","copy_share":"Copy share link","copied":"Copied!","copy_context":"Copy context","dimension_type":"Dimension Type","dimension":"Dimension","disabled":"Disabled","download":"Download","duplicate":"Duplicate","enabled":"Enabled","entries_hidden":"%0% entries hidden","entries_hidden.more":"Show %0% more","entries_hidden.all":"Show all","expand":"Expand","expand_all":"Hold %0% to expand all","feature.decorated.decorators":"Decorators","feature.decorated.decorators.entry":"Decorator","follow_reference":"Follow reference","format.json":"JSON","format.yaml":"YAML","fields":"Fields","generate_new_seed":"Generate new seed","github":"GitHub","guides.all":"All guides","guides.search":"Search guides","guides.no_results.version":"No guides for this version","guides.no_results.query":"No guides for this query","hide_output":"Hide output","hide_preview":"Hide preview","home":"Home","import":"Import","indentation.2_spaces":"2 spaces","indentation.4_spaces":"4 spaces","indentation.minified":"Minified","indentation.tabs":"Tabs","item_modifier":"Item Modifier","language":"Language","layer.biomes":"Biomes","layer.temperature":"Temperature","layer.humidity":"Humidity","layer.continentalness":"Continentalness","layer.erosion":"Erosion","layer.weirdness":"Weirdness","layer.offset":"Offset","layer.factor":"Factor","layer.jaggedness":"Jaggedness","highlighting":"Highlighting","loading":"Loading...","loot_table":"Loot Table","model":"Model","more":"More","move_down":"Move down","move_up":"Move up","not_found.description":"The page you were looking for does not exist.","no_presets":"No presets","output_settings":"Output settings","predicate":"Predicate","recipe":"Recipe","redo":"Redo","reset":"Reset","restore_backup":"Restore last backup","settings":"Settings","settings.fields.description":"Customize advanced field settings","settings.fields.path":"Context","settings.fields.name":"Name","share":"Share","theme":"Theme","theme.dark":"Dark","theme.light":"Light","theme.system":"System","title.changelog":"Technical Changelog","title.generator":"%0% Generator","title.generator_category":"%0% Generators","title.guides":"Data Pack Guides","title.home":"Data Pack Generators","title.project":"%0% Project","title.sounds":"Sound Explorer","title.versions":"Versions Explorer","presets":"Presets","preview":"Visualize","preview.auto_scroll":"Auto scroll","preview.biome":"Biome","preview.scale":"Scale","preview.depth":"Depth","preview.factor":"Factor","preview.offset":"Offset","preview.peaks":"Peaks","preview.width":"Width","project.delete_file":"Delete file","project.go_to":"Go to project","project.new_file":"New file","project.no_files":"No files","project.search":"Search project","project.search_drafts":"Search drafts","project.unsaved_file":"Unsaved file","remove":"Remove","search":"Search","show_output":"Show output","show_preview":"Show preview","sounds.play":"Play","sounds.play_sound":"Play sound","sounds.play_all":"Play all","sounds.search":"Search sounds","sounds.download_function":"Download Mcfunction","sounds.delay":"Delay","sounds.pitch":"Pitch","sounds.volume":"Volume","sounds.copy_command":"Copy command","sounds.add_sound":"Add sound","sounds.remove_sound":"Remove sound","sounds.unknown_sound":"Unknown sound","sounds.loading_sound":"Loading sound","source_placeholder":"Paste raw %0% content here","switch_generator":"Switch generator","switch_version":"Switch version","terrain_settings":"Terrain settings","text_component":"Text Component","undo":"Undo","versions.search":"Search versions","versions.no_results":"No results","versions.all":"All versions","versions.previous":"Previous","versions.next":"Next","versions.released":"Released","versions.release_target":"Release target","versions.data_version":"Data version","versions.protocol_version":"Protocol version","versions.pack_format":"Pack format","versions.data_pack_format":"Data pack format","versions.resource_pack_format":"Resource pack format","versions.technical_changes":"Technical changes","versions.discussion":"Discussion","world":"World Settings","worldgen":"Worldgen","worldgen/biome":"Biome","worldgen/configured_carver":"Carver","worldgen/configured_feature":"Feature","worldgen/density_function":"Density Function","worldgen/placed_feature":"Placed Feature","worldgen/noise":"Noise","worldgen/noise_settings":"Noise Settings","worldgen/processor_list":"Processor List","worldgen/configured_structure_feature":"Structure Feature","worldgen/structure":"Structure","worldgen/structure_set":"Structure Set","worldgen/configured_surface_builder":"Surface Builder","worldgen/template_pool":"Template Pool","worldgen/world_preset":"World Preset","worldgen/flat_level_generator_preset":"Flat World Preset","zoom_in":"Zoom in","zoom_out":"Zoom out"}'),Nw=Object.freeze(Object.defineProperty({__proto__:null,default:e0},Symbol.toStringTag,{value:"Module"})),_t;(e=>{e.ID_LANGUAGE="language",e.ID_THEME="theme",e.ID_VERSION="schema_version",e.ID_INDENT="indentation",e.ID_FORMAT="output_format",e.ID_HIGHLIGHTING="output_highlighting",e.ID_SOUNDS_VERSION="minecraft_sounds_version",e.ID_PROJECTS="misode_projects",e.ID_BACKUPS="misode_generator_backups";function t(){var A;return(A=localStorage.getItem(e.ID_LANGUAGE))!=null?A:"en"}e.getLanguage=t;function n(){var A;return(A=localStorage.getItem(e.ID_THEME))!=null?A:"dark"}e.getTheme=n;function i(){const A=localStorage.getItem(e.ID_VERSION);return A&&Xd.includes(A)?A:"1.18.2"}e.getVersion=i;function r(){var A;return(A=localStorage.getItem(e.ID_INDENT))!=null?A:"2_spaces"}e.getIndent=r;function s(){var A;return(A=localStorage.getItem(e.ID_FORMAT))!=null?A:"json"}e.getFormat=s;function u(){return localStorage.getItem(e.ID_HIGHLIGHTING)!=="false"}e.getHighlighting=u;function o(){var A;return(A=localStorage.getItem(e.ID_SOUNDS_VERSION))!=null?A:"latest"}e.getSoundsVersion=o;function c(){const A=localStorage.getItem(e.ID_PROJECTS);return A?JSON.parse(A):[ho]}e.getProjects=c;function a(A){var E;return JSON.parse((E=localStorage.getItem(e.ID_BACKUPS))!=null?E:"{}")[A]}e.getBackup=a;function f(A){A&&localStorage.setItem(e.ID_LANGUAGE,A)}e.setLanguage=f;function l(A){A&&localStorage.setItem(e.ID_THEME,A)}e.setTheme=l;function h(A){A&&localStorage.setItem(e.ID_VERSION,A)}e.setVersion=h;function d(A){A&&localStorage.setItem(e.ID_INDENT,A)}e.setIndent=d;function g(A){A&&localStorage.setItem(e.ID_FORMAT,A)}e.setFormat=g;function p(A){A!==void 0&&localStorage.setItem(e.ID_HIGHLIGHTING,A.toString())}e.setHighlighting=p;function m(A){A&&localStorage.setItem(e.ID_SOUNDS_VERSION,A)}e.setSoundsVersion=m;function w(A){A&&localStorage.setItem(e.ID_PROJECTS,JSON.stringify(A))}e.setProjects=w;function v(A,_){var b;const E=JSON.parse((b=localStorage.getItem(e.ID_BACKUPS))!=null?b:"{}");_===void 0?delete E[A]:E[A]=_,localStorage.setItem(e.ID_BACKUPS,JSON.stringify(E))}e.setBackup=v})(_t||(_t={}));function Pw(e){switch(e){case"../../../node_modules/@mcschema/locales/src/cs.json":return ze(()=>import("./cs.967a01eb.js"),[]);case"../../../node_modules/@mcschema/locales/src/de.json":return ze(()=>import("./de.8e2383d8.js"),[]);case"../../../node_modules/@mcschema/locales/src/en.json":return ze(()=>import("./en.4ab98cb7.js"),[]);case"../../../node_modules/@mcschema/locales/src/es.json":return ze(()=>import("./es.6b3597bc.js"),[]);case"../../../node_modules/@mcschema/locales/src/fr.json":return ze(()=>import("./fr.e316b1e2.js"),[]);case"../../../node_modules/@mcschema/locales/src/it.json":return ze(()=>import("./it.7ff123cd.js"),[]);case"../../../node_modules/@mcschema/locales/src/ja.json":return ze(()=>import("./ja.3170354d.js"),[]);case"../../../node_modules/@mcschema/locales/src/pl.json":return ze(()=>import("./pl.ae1f6791.js"),[]);case"../../../node_modules/@mcschema/locales/src/pt.json":return ze(()=>import("./pt.31e14993.js"),[]);case"../../../node_modules/@mcschema/locales/src/ru.json":return ze(()=>import("./ru.1298edc9.js"),[]);case"../../../node_modules/@mcschema/locales/src/sk.json":return ze(()=>import("./sk.d4265232.js"),[]);case"../../../node_modules/@mcschema/locales/src/zh-cn.json":return ze(()=>import("./zh-cn.4129665a.js"),[]);case"../../../node_modules/@mcschema/locales/src/zh-tw.json":return ze(()=>import("./zh-tw.bdc36a24.js"),[]);default:return new Promise(function(t,n){(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(n.bind(null,new Error("Unknown variable dynamic import: "+e)))})}}function zw(e){switch(e){case"../../locales/de.json":return ze(()=>import("./de.a269acce.js"),[]);case"../../locales/en.json":return ze(()=>Promise.resolve().then(function(){return Nw}),void 0);case"../../locales/es.json":return ze(()=>import("./es.833a9774.js"),[]);case"../../locales/fr.json":return ze(()=>import("./fr.f5531eea.js"),[]);case"../../locales/it.json":return ze(()=>import("./it.fd9a8268.js"),[]);case"../../locales/ja.json":return ze(()=>import("./ja.167de97b.js"),[]);case"../../locales/pl.json":return ze(()=>import("./pl.3a9fb38c.js"),[]);case"../../locales/pt.json":return ze(()=>import("./pt.1a04bd2d.js"),[]);case"../../locales/ru.json":return ze(()=>import("./ru.578070fe.js"),[]);case"../../locales/sk.json":return ze(()=>import("./sk.96bbf351.js"),[]);case"../../locales/zh-cn.json":return ze(()=>import("./zh-cn.e3c47b68.js"),[]);case"../../locales/zh-tw.json":return ze(()=>import("./zh-tw.42e9d37d.js"),[]);default:return new Promise(function(t,n){(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(n.bind(null,new Error("Unknown variable dynamic import: "+e)))})}}const t0=fr({lang:"none",locale:e=>e,changeLanguage:()=>{}}),Rr={fallback:e0};function Oe(e,t,...n){var r,s,u,o,c;const i=(c=(o=(u=(r=Rr[e])==null?void 0:r[t])!=null?u:(s=Rr.en)==null?void 0:s[t])!=null?o:Rr.fallback[t])!=null?c:t;return Uw(i,n)}function Uw(e,t){return e.replace(/%\d+%/g,n=>{const i=parseInt(n.slice(1,-1));return(t==null?void 0:t[i])!==void 0?t[i]:n})}async function ia(e){if(Rr[e])return;const t=He.languages.find(r=>r.code===e);if(!t)return;const n=await zw(`../../locales/${e}.json`),i=t.schemas!==!1&&await Pw(`../../../node_modules/@mcschema/locales/src/${e}.json`);Rr[e]=Ce(Ce({},n.default),i.default)}function rt(){return pr(t0)}function Hw({children:e}){const[t,n]=oe("none"),i=At((u,...o)=>Oe(t,u,...o),[t]),r=At(async u=>{await ia(u),lt.setLanguage(u),_t.setLanguage(u),n(u)},[]);xe(()=>{(async()=>{const u=_t.getLanguage();await Promise.all([ia("en"),...u!=="en"?[ia(u)]:[]]),n(u)})()},[]);const s={lang:t,locale:i,changeLanguage:r};return S(t0.Provider,{value:s},e)}const ho={name:"Drafts",namespace:"draft",files:[]},n0=fr({project:ho,changeProject:()=>{},updateProject:()=>{},updateFile:()=>!1,openFile:()=>{},closeFile:()=>{}});function i0(){return pr(n0)}function jw({children:e}){const[t,n]=oe(_t.getProjects()),[i,r]=oe(ho.name),s=Qe(()=>{var p;return(p=t.find(m=>m.name===i))!=null?p:ho},[t,i]),[u,o]=oe(void 0),c=Qe(()=>{if(!!u)return s.files.find(p=>p.type===u[0]&&p.id===u[1])},[s,u]),a=At(p=>{_t.setProjects(p),n(p)},[]),f=At(p=>{a(t.map(m=>m.name===i?Ce(Ce({},m),p):m))},[t,i]),l=At((p,m,w)=>{var v;if(!w.id)f({files:s.files.filter(A=>A.type!==p||A.id!==m)});else{const A=w.id.includes(":")?w.id:`${s.namespace}:${w.id}`,_=s.files.some(E=>E.type===p&&E.id===A);if(m){if((c==null?void 0:c.id)===m&&m!==A&&_)return!1;f({files:s.files.map(E=>E.type===p&&E.id===m?tt(Ce(Ce({},E),w),{id:A}):E)}),(c==null?void 0:c.id)===m&&o([p,A])}else{if(_)return!1;f({files:[...s.files,{type:p,id:A,data:(v=w.data)!=null?v:{}}]}),o([p,A])}}return!0},[f,s,c]),h=At((p,m)=>{const w=He.generators.find(v=>v.id===p||v.path===p);if(!w)throw new Error(`Cannot find generator of type ${p}`);o([w.id,m]),ri(Nn(w.url))},[]),d=At(()=>{o(void 0)},[]),g={project:s,file:c,changeProject:r,updateProject:f,updateFile:l,openFile:h,closeFile:d};return S(n0.Provider,{value:g},e)}function Ww(e){var r;const[t,n]=e.id.includes(":")?e.id.split(":"):["minecraft",e.id],i=He.generators.find(s=>s.id===e.type);if(!i)throw new Error(`Cannot find generator of type ${e.type}`);return`data/${t}/${(r=i.path)!=null?r:i.id}/${n}`}const r0=fr({theme:"dark",actualTheme:"dark",changeTheme:()=>{}});function s0(){return pr(r0)}function Vw({children:e}){const[t,n]=oe(_t.getTheme()),i=du("(prefers-color-scheme: light)"),r=du("(prefers-color-scheme: dark)");xe(()=>{document.documentElement.setAttribute("data-theme",t)},[t]);const s=At(o=>{lt.setTheme(o),_t.setTheme(o),n(o)},[]);xe(()=>{lt.setPrefersColorScheme(i?"light":r?"dark":"none")},[i,r]);const u={theme:t,actualTheme:t==="light"||t!=="dark"&&i?"light":"dark",changeTheme:s};return S(r0.Provider,{value:u},e)}const Gw=3,o0=fr({title:"",changeTitle:()=>{}});function on(e,t){const n=pr(o0);return xe(()=>{e&&n.changeTitle(e,t)},[e,t]),n}function Kw({children:e}){const{locale:t}=rt(),[n,i]=oe(t("title.home")),r=At((u,o)=>{o!=null||(o=He.versions.map(a=>a.id));const c=o.slice(-Gw);document.title=`${u} Minecraft ${c.join(", ")}`,i(u)},[]),s={title:n,changeTitle:r};return S(o0.Provider,{value:s},e)}const Xw="version",a0=fr({version:"1.18.2",changeVersion:()=>{},changeTargetVersion:()=>{}});function vr(){return pr(a0)}function Jw({children:e}){const[t,n]=oe(_t.getVersion()),[i,r]=Gr(Xw);xe(()=>{Xd.includes(i)&&t!==i&&n(i)},[t,i]);const s=At((o,c=!0,a=!1)=>{(a||i)&&r(o,!0),c&&(lt.setVersion(o),_t.setVersion(o)),n(o)},[i]),u={version:t,changeVersion:s,changeTargetVersion:r};return S(a0.Provider,{value:u},e)}/*! pako 2.0.4 https://github.com/nodeca/pako @license (MIT AND Zlib) */const Yw=4,yu=0,Eu=1,Zw=2;function wr(e){let t=e.length;for(;--t>=0;)e[t]=0}const qw=0,l0=1,Qw=2,e_=3,t_=258,Kl=29,bs=256,Kr=bs+1+Kl,Yi=30,Xl=19,c0=2*Kr+1,di=15,ra=16,n_=7,Jl=256,u0=16,h0=17,f0=18,qa=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]),Ks=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]),i_=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),d0=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),r_=512,Bn=new Array((Kr+2)*2);wr(Bn);const Ir=new Array(Yi*2);wr(Ir);const Xr=new Array(r_);wr(Xr);const Jr=new Array(t_-e_+1);wr(Jr);const Yl=new Array(Kl);wr(Yl);const fo=new Array(Yi);wr(fo);function sa(e,t,n,i,r){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=i,this.max_length=r,this.has_stree=e&&e.length}let p0,g0,m0;function oa(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}const v0=e=>e<256?Xr[e]:Xr[256+(e>>>7)],Yr=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},Rt=(e,t,n)=>{e.bi_valid>ra-n?(e.bi_buf|=t<<e.bi_valid&65535,Yr(e,e.bi_buf),e.bi_buf=t>>ra-e.bi_valid,e.bi_valid+=n-ra):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},fn=(e,t,n)=>{Rt(e,n[t*2],n[t*2+1])},w0=(e,t)=>{let n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1},s_=e=>{e.bi_valid===16?(Yr(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)},o_=(e,t)=>{const n=t.dyn_tree,i=t.max_code,r=t.stat_desc.static_tree,s=t.stat_desc.has_stree,u=t.stat_desc.extra_bits,o=t.stat_desc.extra_base,c=t.stat_desc.max_length;let a,f,l,h,d,g,p=0;for(h=0;h<=di;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,a=e.heap_max+1;a<c0;a++)f=e.heap[a],h=n[n[f*2+1]*2+1]+1,h>c&&(h=c,p++),n[f*2+1]=h,!(f>i)&&(e.bl_count[h]++,d=0,f>=o&&(d=u[f-o]),g=n[f*2],e.opt_len+=g*(h+d),s&&(e.static_len+=g*(r[f*2+1]+d)));if(p!==0){do{for(h=c-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[c]--,p-=2}while(p>0);for(h=c;h!==0;h--)for(f=e.bl_count[h];f!==0;)l=e.heap[--a],!(l>i)&&(n[l*2+1]!==h&&(e.opt_len+=(h-n[l*2+1])*n[l*2],n[l*2+1]=h),f--)}},_0=(e,t,n)=>{const i=new Array(di+1);let r=0,s,u;for(s=1;s<=di;s++)i[s]=r=r+n[s-1]<<1;for(u=0;u<=t;u++){let o=e[u*2+1];o!==0&&(e[u*2]=w0(i[o]++,o))}},a_=()=>{let e,t,n,i,r;const s=new Array(di+1);for(n=0,i=0;i<Kl-1;i++)for(Yl[i]=n,e=0;e<1<<qa[i];e++)Jr[n++]=i;for(Jr[n-1]=i,r=0,i=0;i<16;i++)for(fo[i]=r,e=0;e<1<<Ks[i];e++)Xr[r++]=i;for(r>>=7;i<Yi;i++)for(fo[i]=r<<7,e=0;e<1<<Ks[i]-7;e++)Xr[256+r++]=i;for(t=0;t<=di;t++)s[t]=0;for(e=0;e<=143;)Bn[e*2+1]=8,e++,s[8]++;for(;e<=255;)Bn[e*2+1]=9,e++,s[9]++;for(;e<=279;)Bn[e*2+1]=7,e++,s[7]++;for(;e<=287;)Bn[e*2+1]=8,e++,s[8]++;for(_0(Bn,Kr+1,s),e=0;e<Yi;e++)Ir[e*2+1]=5,Ir[e*2]=w0(e,5);p0=new sa(Bn,qa,bs+1,Kr,di),g0=new sa(Ir,Ks,0,Yi,di),m0=new sa(new Array(0),i_,0,Xl,n_)},A0=e=>{let t;for(t=0;t<Kr;t++)e.dyn_ltree[t*2]=0;for(t=0;t<Yi;t++)e.dyn_dtree[t*2]=0;for(t=0;t<Xl;t++)e.bl_tree[t*2]=0;e.dyn_ltree[Jl*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0},y0=e=>{e.bi_valid>8?Yr(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},l_=(e,t,n,i)=>{y0(e),i&&(Yr(e,n),Yr(e,~n)),e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n},bu=(e,t,n,i)=>{const r=t*2,s=n*2;return e[r]<e[s]||e[r]===e[s]&&i[t]<=i[n]},aa=(e,t,n)=>{const i=e.heap[n];let r=n<<1;for(;r<=e.heap_len&&(r<e.heap_len&&bu(t,e.heap[r+1],e.heap[r],e.depth)&&r++,!bu(t,i,e.heap[r],e.depth));)e.heap[n]=e.heap[r],n=r,r<<=1;e.heap[n]=i},xu=(e,t,n)=>{let i,r,s=0,u,o;if(e.last_lit!==0)do i=e.pending_buf[e.d_buf+s*2]<<8|e.pending_buf[e.d_buf+s*2+1],r=e.pending_buf[e.l_buf+s],s++,i===0?fn(e,r,t):(u=Jr[r],fn(e,u+bs+1,t),o=qa[u],o!==0&&(r-=Yl[u],Rt(e,r,o)),i--,u=v0(i),fn(e,u,n),o=Ks[u],o!==0&&(i-=fo[u],Rt(e,i,o)));while(s<e.last_lit);fn(e,Jl,t)},Qa=(e,t)=>{const n=t.dyn_tree,i=t.stat_desc.static_tree,r=t.stat_desc.has_stree,s=t.stat_desc.elems;let u,o,c=-1,a;for(e.heap_len=0,e.heap_max=c0,u=0;u<s;u++)n[u*2]!==0?(e.heap[++e.heap_len]=c=u,e.depth[u]=0):n[u*2+1]=0;for(;e.heap_len<2;)a=e.heap[++e.heap_len]=c<2?++c:0,n[a*2]=1,e.depth[a]=0,e.opt_len--,r&&(e.static_len-=i[a*2+1]);for(t.max_code=c,u=e.heap_len>>1;u>=1;u--)aa(e,n,u);a=s;do u=e.heap[1],e.heap[1]=e.heap[e.heap_len--],aa(e,n,1),o=e.heap[1],e.heap[--e.heap_max]=u,e.heap[--e.heap_max]=o,n[a*2]=n[u*2]+n[o*2],e.depth[a]=(e.depth[u]>=e.depth[o]?e.depth[u]:e.depth[o])+1,n[u*2+1]=n[o*2+1]=a,e.heap[1]=a++,aa(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],o_(e,t),_0(n,c,e.bl_count)},Cu=(e,t,n)=>{let i,r=-1,s,u=t[0*2+1],o=0,c=7,a=4;for(u===0&&(c=138,a=3),t[(n+1)*2+1]=65535,i=0;i<=n;i++)s=u,u=t[(i+1)*2+1],!(++o<c&&s===u)&&(o<a?e.bl_tree[s*2]+=o:s!==0?(s!==r&&e.bl_tree[s*2]++,e.bl_tree[u0*2]++):o<=10?e.bl_tree[h0*2]++:e.bl_tree[f0*2]++,o=0,r=s,u===0?(c=138,a=3):s===u?(c=6,a=3):(c=7,a=4))},Fu=(e,t,n)=>{let i,r=-1,s,u=t[0*2+1],o=0,c=7,a=4;for(u===0&&(c=138,a=3),i=0;i<=n;i++)if(s=u,u=t[(i+1)*2+1],!(++o<c&&s===u)){if(o<a)do fn(e,s,e.bl_tree);while(--o!==0);else s!==0?(s!==r&&(fn(e,s,e.bl_tree),o--),fn(e,u0,e.bl_tree),Rt(e,o-3,2)):o<=10?(fn(e,h0,e.bl_tree),Rt(e,o-3,3)):(fn(e,f0,e.bl_tree),Rt(e,o-11,7));o=0,r=s,u===0?(c=138,a=3):s===u?(c=6,a=3):(c=7,a=4)}},c_=e=>{let t;for(Cu(e,e.dyn_ltree,e.l_desc.max_code),Cu(e,e.dyn_dtree,e.d_desc.max_code),Qa(e,e.bl_desc),t=Xl-1;t>=3&&e.bl_tree[d0[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},u_=(e,t,n,i)=>{let r;for(Rt(e,t-257,5),Rt(e,n-1,5),Rt(e,i-4,4),r=0;r<i;r++)Rt(e,e.bl_tree[d0[r]*2+1],3);Fu(e,e.dyn_ltree,t-1),Fu(e,e.dyn_dtree,n-1)},h_=e=>{let t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return yu;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return Eu;for(n=32;n<bs;n++)if(e.dyn_ltree[n*2]!==0)return Eu;return yu};let Su=!1;const f_=e=>{Su||(a_(),Su=!0),e.l_desc=new oa(e.dyn_ltree,p0),e.d_desc=new oa(e.dyn_dtree,g0),e.bl_desc=new oa(e.bl_tree,m0),e.bi_buf=0,e.bi_valid=0,A0(e)},E0=(e,t,n,i)=>{Rt(e,(qw<<1)+(i?1:0),3),l_(e,t,n,!0)},d_=e=>{Rt(e,l0<<1,3),fn(e,Jl,Bn),s_(e)},p_=(e,t,n,i)=>{let r,s,u=0;e.level>0?(e.strm.data_type===Zw&&(e.strm.data_type=h_(e)),Qa(e,e.l_desc),Qa(e,e.d_desc),u=c_(e),r=e.opt_len+3+7>>>3,s=e.static_len+3+7>>>3,s<=r&&(r=s)):r=s=n+5,n+4<=r&&t!==-1?E0(e,t,n,i):e.strategy===Yw||s===r?(Rt(e,(l0<<1)+(i?1:0),3),xu(e,Bn,Ir)):(Rt(e,(Qw<<1)+(i?1:0),3),u_(e,e.l_desc.max_code+1,e.d_desc.max_code+1,u+1),xu(e,e.dyn_ltree,e.dyn_dtree)),A0(e),i&&y0(e)},g_=(e,t,n)=>(e.pending_buf[e.d_buf+e.last_lit*2]=t>>>8&255,e.pending_buf[e.d_buf+e.last_lit*2+1]=t&255,e.pending_buf[e.l_buf+e.last_lit]=n&255,e.last_lit++,t===0?e.dyn_ltree[n*2]++:(e.matches++,t--,e.dyn_ltree[(Jr[n]+bs+1)*2]++,e.dyn_dtree[v0(t)*2]++),e.last_lit===e.lit_bufsize-1);var m_=f_,v_=E0,w_=p_,__=g_,A_=d_,y_={_tr_init:m_,_tr_stored_block:v_,_tr_flush_block:w_,_tr_tally:__,_tr_align:A_};const E_=(e,t,n,i)=>{let r=e&65535|0,s=e>>>16&65535|0,u=0;for(;n!==0;){u=n>2e3?2e3:n,n-=u;do r=r+t[i++]|0,s=s+r|0;while(--u);r%=65521,s%=65521}return r|s<<16|0};var Zr=E_;const b_=()=>{let e,t=[];for(var n=0;n<256;n++){e=n;for(var i=0;i<8;i++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t},x_=new Uint32Array(b_()),C_=(e,t,n,i)=>{const r=x_,s=i+n;e^=-1;for(let u=i;u<s;u++)e=e>>>8^r[(e^t[u])&255];return e^-1};var vt=C_,qr={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"},Io={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:F_,_tr_stored_block:S_,_tr_flush_block:D_,_tr_tally:ei,_tr_align:k_}=y_,{Z_NO_FLUSH:ki,Z_PARTIAL_FLUSH:B_,Z_FULL_FLUSH:T_,Z_FINISH:ti,Z_BLOCK:Du,Z_OK:dn,Z_STREAM_END:ku,Z_STREAM_ERROR:Kt,Z_DATA_ERROR:L_,Z_BUF_ERROR:la,Z_DEFAULT_COMPRESSION:$_,Z_FILTERED:M_,Z_HUFFMAN_ONLY:ks,Z_RLE:R_,Z_FIXED:I_,Z_DEFAULT_STRATEGY:O_,Z_UNKNOWN:N_,Z_DEFLATED:Oo}=Io,P_=9,z_=15,U_=8,H_=29,j_=256,el=j_+1+H_,W_=30,V_=19,G_=2*el+1,K_=15,Ie=3,Jn=258,sn=Jn+Ie+1,X_=32,No=42,tl=69,Xs=73,Js=91,Ys=103,pi=113,Sr=666,mt=1,xs=2,bi=3,_r=4,J_=3,Yn=(e,t)=>(e.msg=qr[t],t),Bu=e=>(e<<1)-(e>4?9:0),Kn=e=>{let t=e.length;for(;--t>=0;)e[t]=0};let Y_=(e,t,n)=>(t<<e.hash_shift^n)&e.hash_mask,ni=Y_;const Wn=e=>{const t=e.state;let n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+n),e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,t.pending===0&&(t.pending_out=0))},xt=(e,t)=>{D_(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Wn(e.strm)},Pe=(e,t)=>{e.pending_buf[e.pending++]=t},Er=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},Z_=(e,t,n,i)=>{let r=e.avail_in;return r>i&&(r=i),r===0?0:(e.avail_in-=r,t.set(e.input.subarray(e.next_in,e.next_in+r),n),e.state.wrap===1?e.adler=Zr(e.adler,t,r,n):e.state.wrap===2&&(e.adler=vt(e.adler,t,r,n)),e.next_in+=r,e.total_in+=r,r)},b0=(e,t)=>{let n=e.max_chain_length,i=e.strstart,r,s,u=e.prev_length,o=e.nice_match;const c=e.strstart>e.w_size-sn?e.strstart-(e.w_size-sn):0,a=e.window,f=e.w_mask,l=e.prev,h=e.strstart+Jn;let d=a[i+u-1],g=a[i+u];e.prev_length>=e.good_match&&(n>>=2),o>e.lookahead&&(o=e.lookahead);do if(r=t,!(a[r+u]!==g||a[r+u-1]!==d||a[r]!==a[i]||a[++r]!==a[i+1])){i+=2,r++;do;while(a[++i]===a[++r]&&a[++i]===a[++r]&&a[++i]===a[++r]&&a[++i]===a[++r]&&a[++i]===a[++r]&&a[++i]===a[++r]&&a[++i]===a[++r]&&a[++i]===a[++r]&&i<h);if(s=Jn-(h-i),i=h-Jn,s>u){if(e.match_start=t,u=s,s>=o)break;d=a[i+u-1],g=a[i+u]}}while((t=l[t&f])>c&&--n!==0);return u<=e.lookahead?u:e.lookahead},xi=e=>{const t=e.w_size;let n,i,r,s,u;do{if(s=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-sn)){e.window.set(e.window.subarray(t,t+t),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,i=e.hash_size,n=i;do r=e.head[--n],e.head[n]=r>=t?r-t:0;while(--i);i=t,n=i;do r=e.prev[--n],e.prev[n]=r>=t?r-t:0;while(--i);s+=t}if(e.strm.avail_in===0)break;if(i=Z_(e.strm,e.window,e.strstart+e.lookahead,s),e.lookahead+=i,e.lookahead+e.insert>=Ie)for(u=e.strstart-e.insert,e.ins_h=e.window[u],e.ins_h=ni(e,e.ins_h,e.window[u+1]);e.insert&&(e.ins_h=ni(e,e.ins_h,e.window[u+Ie-1]),e.prev[u&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=u,u++,e.insert--,!(e.lookahead+e.insert<Ie)););}while(e.lookahead<sn&&e.strm.avail_in!==0)},q_=(e,t)=>{let n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(xi(e),e.lookahead===0&&t===ki)return mt;if(e.lookahead===0)break}e.strstart+=e.lookahead,e.lookahead=0;const i=e.block_start+n;if((e.strstart===0||e.strstart>=i)&&(e.lookahead=e.strstart-i,e.strstart=i,xt(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-sn&&(xt(e,!1),e.strm.avail_out===0))return mt}return e.insert=0,t===ti?(xt(e,!0),e.strm.avail_out===0?bi:_r):(e.strstart>e.block_start&&(xt(e,!1),e.strm.avail_out===0),mt)},ca=(e,t)=>{let n,i;for(;;){if(e.lookahead<sn){if(xi(e),e.lookahead<sn&&t===ki)return mt;if(e.lookahead===0)break}if(n=0,e.lookahead>=Ie&&(e.ins_h=ni(e,e.ins_h,e.window[e.strstart+Ie-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),n!==0&&e.strstart-n<=e.w_size-sn&&(e.match_length=b0(e,n)),e.match_length>=Ie)if(i=ei(e,e.strstart-e.match_start,e.match_length-Ie),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=Ie){e.match_length--;do e.strstart++,e.ins_h=ni(e,e.ins_h,e.window[e.strstart+Ie-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=ni(e,e.ins_h,e.window[e.strstart+1]);else i=ei(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(i&&(xt(e,!1),e.strm.avail_out===0))return mt}return e.insert=e.strstart<Ie-1?e.strstart:Ie-1,t===ti?(xt(e,!0),e.strm.avail_out===0?bi:_r):e.last_lit&&(xt(e,!1),e.strm.avail_out===0)?mt:xs},Mi=(e,t)=>{let n,i,r;for(;;){if(e.lookahead<sn){if(xi(e),e.lookahead<sn&&t===ki)return mt;if(e.lookahead===0)break}if(n=0,e.lookahead>=Ie&&(e.ins_h=ni(e,e.ins_h,e.window[e.strstart+Ie-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=Ie-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-sn&&(e.match_length=b0(e,n),e.match_length<=5&&(e.strategy===M_||e.match_length===Ie&&e.strstart-e.match_start>4096)&&(e.match_length=Ie-1)),e.prev_length>=Ie&&e.match_length<=e.prev_length){r=e.strstart+e.lookahead-Ie,i=ei(e,e.strstart-1-e.prev_match,e.prev_length-Ie),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=r&&(e.ins_h=ni(e,e.ins_h,e.window[e.strstart+Ie-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=Ie-1,e.strstart++,i&&(xt(e,!1),e.strm.avail_out===0))return mt}else if(e.match_available){if(i=ei(e,0,e.window[e.strstart-1]),i&&xt(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return mt}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(i=ei(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<Ie-1?e.strstart:Ie-1,t===ti?(xt(e,!0),e.strm.avail_out===0?bi:_r):e.last_lit&&(xt(e,!1),e.strm.avail_out===0)?mt:xs},Q_=(e,t)=>{let n,i,r,s;const u=e.window;for(;;){if(e.lookahead<=Jn){if(xi(e),e.lookahead<=Jn&&t===ki)return mt;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=Ie&&e.strstart>0&&(r=e.strstart-1,i=u[r],i===u[++r]&&i===u[++r]&&i===u[++r])){s=e.strstart+Jn;do;while(i===u[++r]&&i===u[++r]&&i===u[++r]&&i===u[++r]&&i===u[++r]&&i===u[++r]&&i===u[++r]&&i===u[++r]&&r<s);e.match_length=Jn-(s-r),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=Ie?(n=ei(e,1,e.match_length-Ie),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=ei(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(xt(e,!1),e.strm.avail_out===0))return mt}return e.insert=0,t===ti?(xt(e,!0),e.strm.avail_out===0?bi:_r):e.last_lit&&(xt(e,!1),e.strm.avail_out===0)?mt:xs},eA=(e,t)=>{let n;for(;;){if(e.lookahead===0&&(xi(e),e.lookahead===0)){if(t===ki)return mt;break}if(e.match_length=0,n=ei(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(xt(e,!1),e.strm.avail_out===0))return mt}return e.insert=0,t===ti?(xt(e,!0),e.strm.avail_out===0?bi:_r):e.last_lit&&(xt(e,!1),e.strm.avail_out===0)?mt:xs};function cn(e,t,n,i,r){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=i,this.func=r}const Dr=[new cn(0,0,0,0,q_),new cn(4,4,8,4,ca),new cn(4,5,16,8,ca),new cn(4,6,32,32,ca),new cn(4,4,16,16,Mi),new cn(8,16,32,32,Mi),new cn(8,16,128,128,Mi),new cn(8,32,128,256,Mi),new cn(32,128,258,1024,Mi),new cn(32,258,258,4096,Mi)],tA=e=>{e.window_size=2*e.w_size,Kn(e.head),e.max_lazy_match=Dr[e.level].max_lazy,e.good_match=Dr[e.level].good_length,e.nice_match=Dr[e.level].nice_length,e.max_chain_length=Dr[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=Ie-1,e.match_available=0,e.ins_h=0};function nA(){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=Oo,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(G_*2),this.dyn_dtree=new Uint16Array((2*W_+1)*2),this.bl_tree=new Uint16Array((2*V_+1)*2),Kn(this.dyn_ltree),Kn(this.dyn_dtree),Kn(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(K_+1),this.heap=new Uint16Array(2*el+1),Kn(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*el+1),Kn(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 x0=e=>{if(!e||!e.state)return Yn(e,Kt);e.total_in=e.total_out=0,e.data_type=N_;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?No:pi,e.adler=t.wrap===2?0:1,t.last_flush=ki,F_(t),dn},C0=e=>{const t=x0(e);return t===dn&&tA(e.state),t},iA=(e,t)=>!e||!e.state||e.state.wrap!==2?Kt:(e.state.gzhead=t,dn),F0=(e,t,n,i,r,s)=>{if(!e)return Kt;let u=1;if(t===$_&&(t=6),i<0?(u=0,i=-i):i>15&&(u=2,i-=16),r<1||r>P_||n!==Oo||i<8||i>15||t<0||t>9||s<0||s>I_)return Yn(e,Kt);i===8&&(i=9);const o=new nA;return e.state=o,o.strm=e,o.wrap=u,o.gzhead=null,o.w_bits=i,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=r+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+Ie-1)/Ie),o.window=new Uint8Array(o.w_size*2),o.head=new Uint16Array(o.hash_size),o.prev=new Uint16Array(o.w_size),o.lit_bufsize=1<<r+6,o.pending_buf_size=o.lit_bufsize*4,o.pending_buf=new Uint8Array(o.pending_buf_size),o.d_buf=1*o.lit_bufsize,o.l_buf=(1+2)*o.lit_bufsize,o.level=t,o.strategy=s,o.method=n,C0(e)},rA=(e,t)=>F0(e,t,Oo,z_,U_,O_),sA=(e,t)=>{let n,i;if(!e||!e.state||t>Du||t<0)return e?Yn(e,Kt):Kt;const r=e.state;if(!e.output||!e.input&&e.avail_in!==0||r.status===Sr&&t!==ti)return Yn(e,e.avail_out===0?la:Kt);r.strm=e;const s=r.last_flush;if(r.last_flush=t,r.status===No)if(r.wrap===2)e.adler=0,Pe(r,31),Pe(r,139),Pe(r,8),r.gzhead?(Pe(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),Pe(r,r.gzhead.time&255),Pe(r,r.gzhead.time>>8&255),Pe(r,r.gzhead.time>>16&255),Pe(r,r.gzhead.time>>24&255),Pe(r,r.level===9?2:r.strategy>=ks||r.level<2?4:0),Pe(r,r.gzhead.os&255),r.gzhead.extra&&r.gzhead.extra.length&&(Pe(r,r.gzhead.extra.length&255),Pe(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=vt(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=tl):(Pe(r,0),Pe(r,0),Pe(r,0),Pe(r,0),Pe(r,0),Pe(r,r.level===9?2:r.strategy>=ks||r.level<2?4:0),Pe(r,J_),r.status=pi);else{let u=Oo+(r.w_bits-8<<4)<<8,o=-1;r.strategy>=ks||r.level<2?o=0:r.level<6?o=1:r.level===6?o=2:o=3,u|=o<<6,r.strstart!==0&&(u|=X_),u+=31-u%31,r.status=pi,Er(r,u),r.strstart!==0&&(Er(r,e.adler>>>16),Er(r,e.adler&65535)),e.adler=1}if(r.status===tl)if(r.gzhead.extra){for(n=r.pending;r.gzindex<(r.gzhead.extra.length&65535)&&!(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>n&&(e.adler=vt(e.adler,r.pending_buf,r.pending-n,n)),Wn(e),n=r.pending,r.pending===r.pending_buf_size));)Pe(r,r.gzhead.extra[r.gzindex]&255),r.gzindex++;r.gzhead.hcrc&&r.pending>n&&(e.adler=vt(e.adler,r.pending_buf,r.pending-n,n)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=Xs)}else r.status=Xs;if(r.status===Xs)if(r.gzhead.name){n=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>n&&(e.adler=vt(e.adler,r.pending_buf,r.pending-n,n)),Wn(e),n=r.pending,r.pending===r.pending_buf_size)){i=1;break}r.gzindex<r.gzhead.name.length?i=r.gzhead.name.charCodeAt(r.gzindex++)&255:i=0,Pe(r,i)}while(i!==0);r.gzhead.hcrc&&r.pending>n&&(e.adler=vt(e.adler,r.pending_buf,r.pending-n,n)),i===0&&(r.gzindex=0,r.status=Js)}else r.status=Js;if(r.status===Js)if(r.gzhead.comment){n=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>n&&(e.adler=vt(e.adler,r.pending_buf,r.pending-n,n)),Wn(e),n=r.pending,r.pending===r.pending_buf_size)){i=1;break}r.gzindex<r.gzhead.comment.length?i=r.gzhead.comment.charCodeAt(r.gzindex++)&255:i=0,Pe(r,i)}while(i!==0);r.gzhead.hcrc&&r.pending>n&&(e.adler=vt(e.adler,r.pending_buf,r.pending-n,n)),i===0&&(r.status=Ys)}else r.status=Ys;if(r.status===Ys&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&Wn(e),r.pending+2<=r.pending_buf_size&&(Pe(r,e.adler&255),Pe(r,e.adler>>8&255),e.adler=0,r.status=pi)):r.status=pi),r.pending!==0){if(Wn(e),e.avail_out===0)return r.last_flush=-1,dn}else if(e.avail_in===0&&Bu(t)<=Bu(s)&&t!==ti)return Yn(e,la);if(r.status===Sr&&e.avail_in!==0)return Yn(e,la);if(e.avail_in!==0||r.lookahead!==0||t!==ki&&r.status!==Sr){let u=r.strategy===ks?eA(r,t):r.strategy===R_?Q_(r,t):Dr[r.level].func(r,t);if((u===bi||u===_r)&&(r.status=Sr),u===mt||u===bi)return e.avail_out===0&&(r.last_flush=-1),dn;if(u===xs&&(t===B_?k_(r):t!==Du&&(S_(r,0,0,!1),t===T_&&(Kn(r.head),r.lookahead===0&&(r.strstart=0,r.block_start=0,r.insert=0))),Wn(e),e.avail_out===0))return r.last_flush=-1,dn}return t!==ti?dn:r.wrap<=0?ku:(r.wrap===2?(Pe(r,e.adler&255),Pe(r,e.adler>>8&255),Pe(r,e.adler>>16&255),Pe(r,e.adler>>24&255),Pe(r,e.total_in&255),Pe(r,e.total_in>>8&255),Pe(r,e.total_in>>16&255),Pe(r,e.total_in>>24&255)):(Er(r,e.adler>>>16),Er(r,e.adler&65535)),Wn(e),r.wrap>0&&(r.wrap=-r.wrap),r.pending!==0?dn:ku)},oA=e=>{if(!e||!e.state)return Kt;const t=e.state.status;return t!==No&&t!==tl&&t!==Xs&&t!==Js&&t!==Ys&&t!==pi&&t!==Sr?Yn(e,Kt):(e.state=null,t===pi?Yn(e,L_):dn)},aA=(e,t)=>{let n=t.length;if(!e||!e.state)return Kt;const i=e.state,r=i.wrap;if(r===2||r===1&&i.status!==No||i.lookahead)return Kt;if(r===1&&(e.adler=Zr(e.adler,t,n,0)),i.wrap=0,n>=i.w_size){r===0&&(Kn(i.head),i.strstart=0,i.block_start=0,i.insert=0);let c=new Uint8Array(i.w_size);c.set(t.subarray(n-i.w_size,n),0),t=c,n=i.w_size}const s=e.avail_in,u=e.next_in,o=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,xi(i);i.lookahead>=Ie;){let c=i.strstart,a=i.lookahead-(Ie-1);do i.ins_h=ni(i,i.ins_h,i.window[c+Ie-1]),i.prev[c&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=c,c++;while(--a);i.strstart=c,i.lookahead=Ie-1,xi(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=Ie-1,i.match_available=0,e.next_in=u,e.input=o,e.avail_in=s,i.wrap=r,dn};var lA=rA,cA=F0,uA=C0,hA=x0,fA=iA,dA=sA,pA=oA,gA=aA,mA="pako deflate (from Nodeca project)",Or={deflateInit:lA,deflateInit2:cA,deflateReset:uA,deflateResetKeep:hA,deflateSetHeader:fA,deflate:dA,deflateEnd:pA,deflateSetDictionary:gA,deflateInfo:mA};const vA=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var wA=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const n=t.shift();if(!!n){if(typeof n!="object")throw new TypeError(n+"must be non-object");for(const i in n)vA(n,i)&&(e[i]=n[i])}}return e},_A=e=>{let t=0;for(let i=0,r=e.length;i<r;i++)t+=e[i].length;const n=new Uint8Array(t);for(let i=0,r=0,s=e.length;i<s;i++){let u=e[i];n.set(u,r),r+=u.length}return n},Po={assign:wA,flattenChunks:_A};let S0=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{S0=!1}const Qr=new Uint8Array(256);for(let e=0;e<256;e++)Qr[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;Qr[254]=Qr[254]=1;var AA=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let t,n,i,r,s,u=e.length,o=0;for(r=0;r<u;r++)n=e.charCodeAt(r),(n&64512)===55296&&r+1<u&&(i=e.charCodeAt(r+1),(i&64512)===56320&&(n=65536+(n-55296<<10)+(i-56320),r++)),o+=n<128?1:n<2048?2:n<65536?3:4;for(t=new Uint8Array(o),s=0,r=0;s<o;r++)n=e.charCodeAt(r),(n&64512)===55296&&r+1<u&&(i=e.charCodeAt(r+1),(i&64512)===56320&&(n=65536+(n-55296<<10)+(i-56320),r++)),n<128?t[s++]=n:n<2048?(t[s++]=192|n>>>6,t[s++]=128|n&63):n<65536?(t[s++]=224|n>>>12,t[s++]=128|n>>>6&63,t[s++]=128|n&63):(t[s++]=240|n>>>18,t[s++]=128|n>>>12&63,t[s++]=128|n>>>6&63,t[s++]=128|n&63);return t};const yA=(e,t)=>{if(t<65534&&e.subarray&&S0)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let n="";for(let i=0;i<t;i++)n+=String.fromCharCode(e[i]);return n};var EA=(e,t)=>{const n=t||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,t));let i,r;const s=new Array(n*2);for(r=0,i=0;i<n;){let u=e[i++];if(u<128){s[r++]=u;continue}let o=Qr[u];if(o>4){s[r++]=65533,i+=o-1;continue}for(u&=o===2?31:o===3?15:7;o>1&&i<n;)u=u<<6|e[i++]&63,o--;if(o>1){s[r++]=65533;continue}u<65536?s[r++]=u:(u-=65536,s[r++]=55296|u>>10&1023,s[r++]=56320|u&1023)}return yA(s,r)},bA=(e,t)=>{t=t||e.length,t>e.length&&(t=e.length);let n=t-1;for(;n>=0&&(e[n]&192)===128;)n--;return n<0||n===0?t:n+Qr[e[n]]>t?n:t},es={string2buf:AA,buf2string:EA,utf8border:bA};function xA(){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}var D0=xA;const k0=Object.prototype.toString,{Z_NO_FLUSH:CA,Z_SYNC_FLUSH:FA,Z_FULL_FLUSH:SA,Z_FINISH:DA,Z_OK:po,Z_STREAM_END:kA,Z_DEFAULT_COMPRESSION:BA,Z_DEFAULT_STRATEGY:TA,Z_DEFLATED:LA}=Io;function Zl(e){this.options=Po.assign({level:BA,method:LA,chunkSize:16384,windowBits:15,memLevel:8,strategy:TA},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 D0,this.strm.avail_out=0;let n=Or.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==po)throw new Error(qr[n]);if(t.header&&Or.deflateSetHeader(this.strm,t.header),t.dictionary){let i;if(typeof t.dictionary=="string"?i=es.string2buf(t.dictionary):k0.call(t.dictionary)==="[object ArrayBuffer]"?i=new Uint8Array(t.dictionary):i=t.dictionary,n=Or.deflateSetDictionary(this.strm,i),n!==po)throw new Error(qr[n]);this._dict_set=!0}}Zl.prototype.push=function(e,t){const n=this.strm,i=this.options.chunkSize;let r,s;if(this.ended)return!1;for(t===~~t?s=t:s=t===!0?DA:CA,typeof e=="string"?n.input=es.string2buf(e):k0.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){if(n.avail_out===0&&(n.output=new Uint8Array(i),n.next_out=0,n.avail_out=i),(s===FA||s===SA)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(r=Or.deflate(n,s),r===kA)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),r=Or.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===po;if(n.avail_out===0){this.onData(n.output);continue}if(s>0&&n.next_out>0){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(n.avail_in===0)break}return!0};Zl.prototype.onData=function(e){this.chunks.push(e)};Zl.prototype.onEnd=function(e){e===po&&(this.result=Po.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};const Bs=30,$A=12;var MA=function(t,n){let i,r,s,u,o,c,a,f,l,h,d,g,p,m,w,v,A,_,E,b,x,y,C,B;const T=t.state;i=t.next_in,C=t.input,r=i+(t.avail_in-5),s=t.next_out,B=t.output,u=s-(n-t.avail_out),o=s+(t.avail_out-257),c=T.dmax,a=T.wsize,f=T.whave,l=T.wnext,h=T.window,d=T.hold,g=T.bits,p=T.lencode,m=T.distcode,w=(1<<T.lenbits)-1,v=(1<<T.distbits)-1;e:do{g<15&&(d+=C[i++]<<g,g+=8,d+=C[i++]<<g,g+=8),A=p[d&w];t:for(;;){if(_=A>>>24,d>>>=_,g-=_,_=A>>>16&255,_===0)B[s++]=A&65535;else if(_&16){E=A&65535,_&=15,_&&(g<_&&(d+=C[i++]<<g,g+=8),E+=d&(1<<_)-1,d>>>=_,g-=_),g<15&&(d+=C[i++]<<g,g+=8,d+=C[i++]<<g,g+=8),A=m[d&v];n:for(;;){if(_=A>>>24,d>>>=_,g-=_,_=A>>>16&255,_&16){if(b=A&65535,_&=15,g<_&&(d+=C[i++]<<g,g+=8,g<_&&(d+=C[i++]<<g,g+=8)),b+=d&(1<<_)-1,b>c){t.msg="invalid distance too far back",T.mode=Bs;break e}if(d>>>=_,g-=_,_=s-u,b>_){if(_=b-_,_>f&&T.sane){t.msg="invalid distance too far back",T.mode=Bs;break e}if(x=0,y=h,l===0){if(x+=a-_,_<E){E-=_;do B[s++]=h[x++];while(--_);x=s-b,y=B}}else if(l<_){if(x+=a+l-_,_-=l,_<E){E-=_;do B[s++]=h[x++];while(--_);if(x=0,l<E){_=l,E-=_;do B[s++]=h[x++];while(--_);x=s-b,y=B}}}else if(x+=l-_,_<E){E-=_;do B[s++]=h[x++];while(--_);x=s-b,y=B}for(;E>2;)B[s++]=y[x++],B[s++]=y[x++],B[s++]=y[x++],E-=3;E&&(B[s++]=y[x++],E>1&&(B[s++]=y[x++]))}else{x=s-b;do B[s++]=B[x++],B[s++]=B[x++],B[s++]=B[x++],E-=3;while(E>2);E&&(B[s++]=B[x++],E>1&&(B[s++]=B[x++]))}}else if((_&64)===0){A=m[(A&65535)+(d&(1<<_)-1)];continue n}else{t.msg="invalid distance code",T.mode=Bs;break e}break}}else if((_&64)===0){A=p[(A&65535)+(d&(1<<_)-1)];continue t}else if(_&32){T.mode=$A;break e}else{t.msg="invalid literal/length code",T.mode=Bs;break e}break}}while(i<r&&s<o);E=g>>3,i-=E,g-=E<<3,d&=(1<<g)-1,t.next_in=i,t.next_out=s,t.avail_in=i<r?5+(r-i):5-(i-r),t.avail_out=s<o?257+(o-s):257-(s-o),T.hold=d,T.bits=g};const Ri=15,Tu=852,Lu=592,$u=0,ua=1,Mu=2,RA=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),IA=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),OA=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),NA=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),PA=(e,t,n,i,r,s,u,o)=>{const c=o.bits;let a=0,f=0,l=0,h=0,d=0,g=0,p=0,m=0,w=0,v=0,A,_,E,b,x,y=null,C=0,B;const T=new Uint16Array(Ri+1),M=new Uint16Array(Ri+1);let R=null,I=0,H,P,j;for(a=0;a<=Ri;a++)T[a]=0;for(f=0;f<i;f++)T[t[n+f]]++;for(d=c,h=Ri;h>=1&&T[h]===0;h--);if(d>h&&(d=h),h===0)return r[s++]=1<<24|64<<16|0,r[s++]=1<<24|64<<16|0,o.bits=1,0;for(l=1;l<h&&T[l]===0;l++);for(d<l&&(d=l),m=1,a=1;a<=Ri;a++)if(m<<=1,m-=T[a],m<0)return-1;if(m>0&&(e===$u||h!==1))return-1;for(M[1]=0,a=1;a<Ri;a++)M[a+1]=M[a]+T[a];for(f=0;f<i;f++)t[n+f]!==0&&(u[M[t[n+f]]++]=f);if(e===$u?(y=R=u,B=19):e===ua?(y=RA,C-=257,R=IA,I-=257,B=256):(y=OA,R=NA,B=-1),v=0,f=0,a=l,x=s,g=d,p=0,E=-1,w=1<<d,b=w-1,e===ua&&w>Tu||e===Mu&&w>Lu)return 1;for(;;){H=a-p,u[f]<B?(P=0,j=u[f]):u[f]>B?(P=R[I+u[f]],j=y[C+u[f]]):(P=32+64,j=0),A=1<<a-p,_=1<<g,l=_;do _-=A,r[x+(v>>p)+_]=H<<24|P<<16|j|0;while(_!==0);for(A=1<<a-1;v&A;)A>>=1;if(A!==0?(v&=A-1,v+=A):v=0,f++,--T[a]===0){if(a===h)break;a=t[n+u[f]]}if(a>d&&(v&b)!==E){for(p===0&&(p=d),x+=l,g=a-p,m=1<<g;g+p<h&&(m-=T[g+p],!(m<=0));)g++,m<<=1;if(w+=1<<g,e===ua&&w>Tu||e===Mu&&w>Lu)return 1;E=v&b,r[E]=d<<24|g<<16|x-s|0}}return v!==0&&(r[x+v]=a-p<<24|64<<16|0),o.bits=d,0};var Nr=PA;const zA=0,B0=1,T0=2,{Z_FINISH:Ru,Z_BLOCK:UA,Z_TREES:Ts,Z_OK:Ci,Z_STREAM_END:HA,Z_NEED_DICT:jA,Z_STREAM_ERROR:Jt,Z_DATA_ERROR:L0,Z_MEM_ERROR:$0,Z_BUF_ERROR:WA,Z_DEFLATED:Iu}=Io,M0=1,Ou=2,Nu=3,Pu=4,zu=5,Uu=6,Hu=7,ju=8,Wu=9,Vu=10,go=11,xn=12,ha=13,Gu=14,fa=15,Ku=16,Xu=17,Ju=18,Yu=19,Ls=20,$s=21,Zu=22,qu=23,Qu=24,eh=25,th=26,da=27,nh=28,ih=29,nt=30,R0=31,VA=32,GA=852,KA=592,XA=15,JA=XA,rh=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function YA(){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 I0=e=>{if(!e||!e.state)return Jt;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=M0,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(GA),t.distcode=t.distdyn=new Int32Array(KA),t.sane=1,t.back=-1,Ci},O0=e=>{if(!e||!e.state)return Jt;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,I0(e)},N0=(e,t)=>{let n;if(!e||!e.state)return Jt;const i=e.state;return t<0?(n=0,t=-t):(n=(t>>4)+1,t<48&&(t&=15)),t&&(t<8||t>15)?Jt:(i.window!==null&&i.wbits!==t&&(i.window=null),i.wrap=n,i.wbits=t,O0(e))},P0=(e,t)=>{if(!e)return Jt;const n=new YA;e.state=n,n.window=null;const i=N0(e,t);return i!==Ci&&(e.state=null),i},ZA=e=>P0(e,JA);let sh=!0,pa,ma;const qA=e=>{if(sh){pa=new Int32Array(512),ma=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(Nr(B0,e.lens,0,288,pa,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Nr(T0,e.lens,0,32,ma,0,e.work,{bits:5}),sh=!1}e.lencode=pa,e.lenbits=9,e.distcode=ma,e.distbits=5},z0=(e,t,n,i)=>{let r;const s=e.state;return s.window===null&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new Uint8Array(s.wsize)),i>=s.wsize?(s.window.set(t.subarray(n-s.wsize,n),0),s.wnext=0,s.whave=s.wsize):(r=s.wsize-s.wnext,r>i&&(r=i),s.window.set(t.subarray(n-i,n-i+r),s.wnext),i-=r,i?(s.window.set(t.subarray(n-i,n),0),s.wnext=i,s.whave=s.wsize):(s.wnext+=r,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=r))),0},QA=(e,t)=>{let n,i,r,s,u,o,c,a,f,l,h,d,g,p,m=0,w,v,A,_,E,b,x,y;const C=new Uint8Array(4);let B,T;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&&e.avail_in!==0)return Jt;n=e.state,n.mode===xn&&(n.mode=ha),u=e.next_out,r=e.output,c=e.avail_out,s=e.next_in,i=e.input,o=e.avail_in,a=n.hold,f=n.bits,l=o,h=c,y=Ci;e:for(;;)switch(n.mode){case M0:if(n.wrap===0){n.mode=ha;break}for(;f<16;){if(o===0)break e;o--,a+=i[s++]<<f,f+=8}if(n.wrap&2&&a===35615){n.check=0,C[0]=a&255,C[1]=a>>>8&255,n.check=vt(n.check,C,2,0),a=0,f=0,n.mode=Ou;break}if(n.flags=0,n.head&&(n.head.done=!1),!(n.wrap&1)||(((a&255)<<8)+(a>>8))%31){e.msg="incorrect header check",n.mode=nt;break}if((a&15)!==Iu){e.msg="unknown compression method",n.mode=nt;break}if(a>>>=4,f-=4,x=(a&15)+8,n.wbits===0)n.wbits=x;else if(x>n.wbits){e.msg="invalid window size",n.mode=nt;break}n.dmax=1<<n.wbits,e.adler=n.check=1,n.mode=a&512?Vu:xn,a=0,f=0;break;case Ou:for(;f<16;){if(o===0)break e;o--,a+=i[s++]<<f,f+=8}if(n.flags=a,(n.flags&255)!==Iu){e.msg="unknown compression method",n.mode=nt;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=nt;break}n.head&&(n.head.text=a>>8&1),n.flags&512&&(C[0]=a&255,C[1]=a>>>8&255,n.check=vt(n.check,C,2,0)),a=0,f=0,n.mode=Nu;case Nu:for(;f<32;){if(o===0)break e;o--,a+=i[s++]<<f,f+=8}n.head&&(n.head.time=a),n.flags&512&&(C[0]=a&255,C[1]=a>>>8&255,C[2]=a>>>16&255,C[3]=a>>>24&255,n.check=vt(n.check,C,4,0)),a=0,f=0,n.mode=Pu;case Pu:for(;f<16;){if(o===0)break e;o--,a+=i[s++]<<f,f+=8}n.head&&(n.head.xflags=a&255,n.head.os=a>>8),n.flags&512&&(C[0]=a&255,C[1]=a>>>8&255,n.check=vt(n.check,C,2,0)),a=0,f=0,n.mode=zu;case zu:if(n.flags&1024){for(;f<16;){if(o===0)break e;o--,a+=i[s++]<<f,f+=8}n.length=a,n.head&&(n.head.extra_len=a),n.flags&512&&(C[0]=a&255,C[1]=a>>>8&255,n.check=vt(n.check,C,2,0)),a=0,f=0}else n.head&&(n.head.extra=null);n.mode=Uu;case Uu:if(n.flags&1024&&(d=n.length,d>o&&(d=o),d&&(n.head&&(x=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(i.subarray(s,s+d),x)),n.flags&512&&(n.check=vt(n.check,i,d,s)),o-=d,s+=d,n.length-=d),n.length))break e;n.length=0,n.mode=Hu;case Hu:if(n.flags&2048){if(o===0)break e;d=0;do x=i[s+d++],n.head&&x&&n.length<65536&&(n.head.name+=String.fromCharCode(x));while(x&&d<o);if(n.flags&512&&(n.check=vt(n.check,i,d,s)),o-=d,s+=d,x)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=ju;case ju:if(n.flags&4096){if(o===0)break e;d=0;do x=i[s+d++],n.head&&x&&n.length<65536&&(n.head.comment+=String.fromCharCode(x));while(x&&d<o);if(n.flags&512&&(n.check=vt(n.check,i,d,s)),o-=d,s+=d,x)break e}else n.head&&(n.head.comment=null);n.mode=Wu;case Wu:if(n.flags&512){for(;f<16;){if(o===0)break e;o--,a+=i[s++]<<f,f+=8}if(a!==(n.check&65535)){e.msg="header crc mismatch",n.mode=nt;break}a=0,f=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=xn;break;case Vu:for(;f<32;){if(o===0)break e;o--,a+=i[s++]<<f,f+=8}e.adler=n.check=rh(a),a=0,f=0,n.mode=go;case go:if(n.havedict===0)return e.next_out=u,e.avail_out=c,e.next_in=s,e.avail_in=o,n.hold=a,n.bits=f,jA;e.adler=n.check=1,n.mode=xn;case xn:if(t===UA||t===Ts)break e;case ha:if(n.last){a>>>=f&7,f-=f&7,n.mode=da;break}for(;f<3;){if(o===0)break e;o--,a+=i[s++]<<f,f+=8}switch(n.last=a&1,a>>>=1,f-=1,a&3){case 0:n.mode=Gu;break;case 1:if(qA(n),n.mode=Ls,t===Ts){a>>>=2,f-=2;break e}break;case 2:n.mode=Xu;break;case 3:e.msg="invalid block type",n.mode=nt}a>>>=2,f-=2;break;case Gu:for(a>>>=f&7,f-=f&7;f<32;){if(o===0)break e;o--,a+=i[s++]<<f,f+=8}if((a&65535)!==(a>>>16^65535)){e.msg="invalid stored block lengths",n.mode=nt;break}if(n.length=a&65535,a=0,f=0,n.mode=fa,t===Ts)break e;case fa:n.mode=Ku;case Ku:if(d=n.length,d){if(d>o&&(d=o),d>c&&(d=c),d===0)break e;r.set(i.subarray(s,s+d),u),o-=d,s+=d,c-=d,u+=d,n.length-=d;break}n.mode=xn;break;case Xu:for(;f<14;){if(o===0)break e;o--,a+=i[s++]<<f,f+=8}if(n.nlen=(a&31)+257,a>>>=5,f-=5,n.ndist=(a&31)+1,a>>>=5,f-=5,n.ncode=(a&15)+4,a>>>=4,f-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=nt;break}n.have=0,n.mode=Ju;case Ju:for(;n.have<n.ncode;){for(;f<3;){if(o===0)break e;o--,a+=i[s++]<<f,f+=8}n.lens[M[n.have++]]=a&7,a>>>=3,f-=3}for(;n.have<19;)n.lens[M[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,B={bits:n.lenbits},y=Nr(zA,n.lens,0,19,n.lencode,0,n.work,B),n.lenbits=B.bits,y){e.msg="invalid code lengths set",n.mode=nt;break}n.have=0,n.mode=Yu;case Yu:for(;n.have<n.nlen+n.ndist;){for(;m=n.lencode[a&(1<<n.lenbits)-1],w=m>>>24,v=m>>>16&255,A=m&65535,!(w<=f);){if(o===0)break e;o--,a+=i[s++]<<f,f+=8}if(A<16)a>>>=w,f-=w,n.lens[n.have++]=A;else{if(A===16){for(T=w+2;f<T;){if(o===0)break e;o--,a+=i[s++]<<f,f+=8}if(a>>>=w,f-=w,n.have===0){e.msg="invalid bit length repeat",n.mode=nt;break}x=n.lens[n.have-1],d=3+(a&3),a>>>=2,f-=2}else if(A===17){for(T=w+3;f<T;){if(o===0)break e;o--,a+=i[s++]<<f,f+=8}a>>>=w,f-=w,x=0,d=3+(a&7),a>>>=3,f-=3}else{for(T=w+7;f<T;){if(o===0)break e;o--,a+=i[s++]<<f,f+=8}a>>>=w,f-=w,x=0,d=11+(a&127),a>>>=7,f-=7}if(n.have+d>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=nt;break}for(;d--;)n.lens[n.have++]=x}}if(n.mode===nt)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=nt;break}if(n.lenbits=9,B={bits:n.lenbits},y=Nr(B0,n.lens,0,n.nlen,n.lencode,0,n.work,B),n.lenbits=B.bits,y){e.msg="invalid literal/lengths set",n.mode=nt;break}if(n.distbits=6,n.distcode=n.distdyn,B={bits:n.distbits},y=Nr(T0,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,B),n.distbits=B.bits,y){e.msg="invalid distances set",n.mode=nt;break}if(n.mode=Ls,t===Ts)break e;case Ls:n.mode=$s;case $s:if(o>=6&&c>=258){e.next_out=u,e.avail_out=c,e.next_in=s,e.avail_in=o,n.hold=a,n.bits=f,MA(e,h),u=e.next_out,r=e.output,c=e.avail_out,s=e.next_in,i=e.input,o=e.avail_in,a=n.hold,f=n.bits,n.mode===xn&&(n.back=-1);break}for(n.back=0;m=n.lencode[a&(1<<n.lenbits)-1],w=m>>>24,v=m>>>16&255,A=m&65535,!(w<=f);){if(o===0)break e;o--,a+=i[s++]<<f,f+=8}if(v&&(v&240)===0){for(_=w,E=v,b=A;m=n.lencode[b+((a&(1<<_+E)-1)>>_)],w=m>>>24,v=m>>>16&255,A=m&65535,!(_+w<=f);){if(o===0)break e;o--,a+=i[s++]<<f,f+=8}a>>>=_,f-=_,n.back+=_}if(a>>>=w,f-=w,n.back+=w,n.length=A,v===0){n.mode=th;break}if(v&32){n.back=-1,n.mode=xn;break}if(v&64){e.msg="invalid literal/length code",n.mode=nt;break}n.extra=v&15,n.mode=Zu;case Zu:if(n.extra){for(T=n.extra;f<T;){if(o===0)break e;o--,a+=i[s++]<<f,f+=8}n.length+=a&(1<<n.extra)-1,a>>>=n.extra,f-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=qu;case qu:for(;m=n.distcode[a&(1<<n.distbits)-1],w=m>>>24,v=m>>>16&255,A=m&65535,!(w<=f);){if(o===0)break e;o--,a+=i[s++]<<f,f+=8}if((v&240)===0){for(_=w,E=v,b=A;m=n.distcode[b+((a&(1<<_+E)-1)>>_)],w=m>>>24,v=m>>>16&255,A=m&65535,!(_+w<=f);){if(o===0)break e;o--,a+=i[s++]<<f,f+=8}a>>>=_,f-=_,n.back+=_}if(a>>>=w,f-=w,n.back+=w,v&64){e.msg="invalid distance code",n.mode=nt;break}n.offset=A,n.extra=v&15,n.mode=Qu;case Qu:if(n.extra){for(T=n.extra;f<T;){if(o===0)break e;o--,a+=i[s++]<<f,f+=8}n.offset+=a&(1<<n.extra)-1,a>>>=n.extra,f-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=nt;break}n.mode=eh;case eh:if(c===0)break e;if(d=h-c,n.offset>d){if(d=n.offset-d,d>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=nt;break}d>n.wnext?(d-=n.wnext,g=n.wsize-d):g=n.wnext-d,d>n.length&&(d=n.length),p=n.window}else p=r,g=u-n.offset,d=n.length;d>c&&(d=c),c-=d,n.length-=d;do r[u++]=p[g++];while(--d);n.length===0&&(n.mode=$s);break;case th:if(c===0)break e;r[u++]=n.length,c--,n.mode=$s;break;case da:if(n.wrap){for(;f<32;){if(o===0)break e;o--,a|=i[s++]<<f,f+=8}if(h-=c,e.total_out+=h,n.total+=h,h&&(e.adler=n.check=n.flags?vt(n.check,r,h,u-h):Zr(n.check,r,h,u-h)),h=c,(n.flags?a:rh(a))!==n.check){e.msg="incorrect data check",n.mode=nt;break}a=0,f=0}n.mode=nh;case nh:if(n.wrap&&n.flags){for(;f<32;){if(o===0)break e;o--,a+=i[s++]<<f,f+=8}if(a!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=nt;break}a=0,f=0}n.mode=ih;case ih:y=HA;break e;case nt:y=L0;break e;case R0:return $0;case VA:default:return Jt}return e.next_out=u,e.avail_out=c,e.next_in=s,e.avail_in=o,n.hold=a,n.bits=f,(n.wsize||h!==e.avail_out&&n.mode<nt&&(n.mode<da||t!==Ru))&&z0(e,e.output,e.next_out,h-e.avail_out),l-=e.avail_in,h-=e.avail_out,e.total_in+=l,e.total_out+=h,n.total+=h,n.wrap&&h&&(e.adler=n.check=n.flags?vt(n.check,r,h,e.next_out-h):Zr(n.check,r,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===xn?128:0)+(n.mode===Ls||n.mode===fa?256:0),(l===0&&h===0||t===Ru)&&y===Ci&&(y=WA),y},ey=e=>{if(!e||!e.state)return Jt;let t=e.state;return t.window&&(t.window=null),e.state=null,Ci},ty=(e,t)=>{if(!e||!e.state)return Jt;const n=e.state;return(n.wrap&2)===0?Jt:(n.head=t,t.done=!1,Ci)},ny=(e,t)=>{const n=t.length;let i,r,s;return!e||!e.state||(i=e.state,i.wrap!==0&&i.mode!==go)?Jt:i.mode===go&&(r=1,r=Zr(r,t,n,0),r!==i.check)?L0:(s=z0(e,t,n,n),s?(i.mode=R0,$0):(i.havedict=1,Ci))};var iy=O0,ry=N0,sy=I0,oy=ZA,ay=P0,ly=QA,cy=ey,uy=ty,hy=ny,fy="pako inflate (from Nodeca project)",Tn={inflateReset:iy,inflateReset2:ry,inflateResetKeep:sy,inflateInit:oy,inflateInit2:ay,inflate:ly,inflateEnd:cy,inflateGetHeader:uy,inflateSetDictionary:hy,inflateInfo:fy};function dy(){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}var py=dy;const U0=Object.prototype.toString,{Z_NO_FLUSH:gy,Z_FINISH:my,Z_OK:ts,Z_STREAM_END:va,Z_NEED_DICT:wa,Z_STREAM_ERROR:vy,Z_DATA_ERROR:oh,Z_MEM_ERROR:wy}=Io;function ql(e){this.options=Po.assign({chunkSize:1024*64,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15)===0&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new D0,this.strm.avail_out=0;let n=Tn.inflateInit2(this.strm,t.windowBits);if(n!==ts)throw new Error(qr[n]);if(this.header=new py,Tn.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=es.string2buf(t.dictionary):U0.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=Tn.inflateSetDictionary(this.strm,t.dictionary),n!==ts)))throw new Error(qr[n])}ql.prototype.push=function(e,t){const n=this.strm,i=this.options.chunkSize,r=this.options.dictionary;let s,u,o;if(this.ended)return!1;for(t===~~t?u=t:u=t===!0?my:gy,U0.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){for(n.avail_out===0&&(n.output=new Uint8Array(i),n.next_out=0,n.avail_out=i),s=Tn.inflate(n,u),s===wa&&r&&(s=Tn.inflateSetDictionary(n,r),s===ts?s=Tn.inflate(n,u):s===oh&&(s=wa));n.avail_in>0&&s===va&&n.state.wrap>0&&e[n.next_in]!==0;)Tn.inflateReset(n),s=Tn.inflate(n,u);switch(s){case vy:case oh:case wa:case wy:return this.onEnd(s),this.ended=!0,!1}if(o=n.avail_out,n.next_out&&(n.avail_out===0||s===va))if(this.options.to==="string"){let c=es.utf8border(n.output,n.next_out),a=n.next_out-c,f=es.buf2string(n.output,c);n.next_out=a,n.avail_out=i-a,a&&n.output.set(n.output.subarray(c,c+a),0),this.onData(f)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(s===ts&&o===0)){if(s===va)return s=Tn.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(n.avail_in===0)break}}return!0};ql.prototype.onData=function(e){this.chunks.push(e)};ql.prototype.onEnd=function(e){e===ts&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Po.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var H0={exports:{}},j0={exports:{}};(function(){var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t={rotl:function(n,i){return n<<i|n>>>32-i},rotr:function(n,i){return n<<32-i|n>>>i},endian:function(n){if(n.constructor==Number)return t.rotl(n,8)&16711935|t.rotl(n,24)&4278255360;for(var i=0;i<n.length;i++)n[i]=t.endian(n[i]);return n},randomBytes:function(n){for(var i=[];n>0;n--)i.push(Math.floor(Math.random()*256));return i},bytesToWords:function(n){for(var i=[],r=0,s=0;r<n.length;r++,s+=8)i[s>>>5]|=n[r]<<24-s%32;return i},wordsToBytes:function(n){for(var i=[],r=0;r<n.length*32;r+=8)i.push(n[r>>>5]>>>24-r%32&255);return i},bytesToHex:function(n){for(var i=[],r=0;r<n.length;r++)i.push((n[r]>>>4).toString(16)),i.push((n[r]&15).toString(16));return i.join("")},hexToBytes:function(n){for(var i=[],r=0;r<n.length;r+=2)i.push(parseInt(n.substr(r,2),16));return i},bytesToBase64:function(n){for(var i=[],r=0;r<n.length;r+=3)for(var s=n[r]<<16|n[r+1]<<8|n[r+2],u=0;u<4;u++)r*8+u*6<=n.length*8?i.push(e.charAt(s>>>6*(3-u)&63)):i.push("=");return i.join("")},base64ToBytes:function(n){n=n.replace(/[^A-Z0-9+\/]/ig,"");for(var i=[],r=0,s=0;r<n.length;s=++r%4)s!=0&&i.push((e.indexOf(n.charAt(r-1))&Math.pow(2,-2*s+8)-1)<<s*2|e.indexOf(n.charAt(r))>>>6-s*2);return i}};j0.exports=t})();var nl={utf8:{stringToBytes:function(e){return nl.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(nl.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],n=0;n<e.length;n++)t.push(e.charCodeAt(n)&255);return t},bytesToString:function(e){for(var t=[],n=0;n<e.length;n++)t.push(String.fromCharCode(e[n]));return t.join("")}}},ah=nl;/*! - * Determine if an object is a Buffer - * - * @author Feross Aboukhadijeh <https://feross.org> - * @license MIT - */var _y=function(e){return e!=null&&(W0(e)||Ay(e)||!!e._isBuffer)};function W0(e){return!!e.constructor&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function Ay(e){return typeof e.readFloatLE=="function"&&typeof e.slice=="function"&&W0(e.slice(0,0))}(function(){var e=j0.exports,t=ah.utf8,n=_y,i=ah.bin,r=function(s,u){s.constructor==String?u&&u.encoding==="binary"?s=i.stringToBytes(s):s=t.stringToBytes(s):n(s)?s=Array.prototype.slice.call(s,0):!Array.isArray(s)&&s.constructor!==Uint8Array&&(s=s.toString());for(var o=e.bytesToWords(s),c=s.length*8,a=1732584193,f=-271733879,l=-1732584194,h=271733878,d=0;d<o.length;d++)o[d]=(o[d]<<8|o[d]>>>24)&16711935|(o[d]<<24|o[d]>>>8)&4278255360;o[c>>>5]|=128<<c%32,o[(c+64>>>9<<4)+14]=c;for(var g=r._ff,p=r._gg,m=r._hh,w=r._ii,d=0;d<o.length;d+=16){var v=a,A=f,_=l,E=h;a=g(a,f,l,h,o[d+0],7,-680876936),h=g(h,a,f,l,o[d+1],12,-389564586),l=g(l,h,a,f,o[d+2],17,606105819),f=g(f,l,h,a,o[d+3],22,-1044525330),a=g(a,f,l,h,o[d+4],7,-176418897),h=g(h,a,f,l,o[d+5],12,1200080426),l=g(l,h,a,f,o[d+6],17,-1473231341),f=g(f,l,h,a,o[d+7],22,-45705983),a=g(a,f,l,h,o[d+8],7,1770035416),h=g(h,a,f,l,o[d+9],12,-1958414417),l=g(l,h,a,f,o[d+10],17,-42063),f=g(f,l,h,a,o[d+11],22,-1990404162),a=g(a,f,l,h,o[d+12],7,1804603682),h=g(h,a,f,l,o[d+13],12,-40341101),l=g(l,h,a,f,o[d+14],17,-1502002290),f=g(f,l,h,a,o[d+15],22,1236535329),a=p(a,f,l,h,o[d+1],5,-165796510),h=p(h,a,f,l,o[d+6],9,-1069501632),l=p(l,h,a,f,o[d+11],14,643717713),f=p(f,l,h,a,o[d+0],20,-373897302),a=p(a,f,l,h,o[d+5],5,-701558691),h=p(h,a,f,l,o[d+10],9,38016083),l=p(l,h,a,f,o[d+15],14,-660478335),f=p(f,l,h,a,o[d+4],20,-405537848),a=p(a,f,l,h,o[d+9],5,568446438),h=p(h,a,f,l,o[d+14],9,-1019803690),l=p(l,h,a,f,o[d+3],14,-187363961),f=p(f,l,h,a,o[d+8],20,1163531501),a=p(a,f,l,h,o[d+13],5,-1444681467),h=p(h,a,f,l,o[d+2],9,-51403784),l=p(l,h,a,f,o[d+7],14,1735328473),f=p(f,l,h,a,o[d+12],20,-1926607734),a=m(a,f,l,h,o[d+5],4,-378558),h=m(h,a,f,l,o[d+8],11,-2022574463),l=m(l,h,a,f,o[d+11],16,1839030562),f=m(f,l,h,a,o[d+14],23,-35309556),a=m(a,f,l,h,o[d+1],4,-1530992060),h=m(h,a,f,l,o[d+4],11,1272893353),l=m(l,h,a,f,o[d+7],16,-155497632),f=m(f,l,h,a,o[d+10],23,-1094730640),a=m(a,f,l,h,o[d+13],4,681279174),h=m(h,a,f,l,o[d+0],11,-358537222),l=m(l,h,a,f,o[d+3],16,-722521979),f=m(f,l,h,a,o[d+6],23,76029189),a=m(a,f,l,h,o[d+9],4,-640364487),h=m(h,a,f,l,o[d+12],11,-421815835),l=m(l,h,a,f,o[d+15],16,530742520),f=m(f,l,h,a,o[d+2],23,-995338651),a=w(a,f,l,h,o[d+0],6,-198630844),h=w(h,a,f,l,o[d+7],10,1126891415),l=w(l,h,a,f,o[d+14],15,-1416354905),f=w(f,l,h,a,o[d+5],21,-57434055),a=w(a,f,l,h,o[d+12],6,1700485571),h=w(h,a,f,l,o[d+3],10,-1894986606),l=w(l,h,a,f,o[d+10],15,-1051523),f=w(f,l,h,a,o[d+1],21,-2054922799),a=w(a,f,l,h,o[d+8],6,1873313359),h=w(h,a,f,l,o[d+15],10,-30611744),l=w(l,h,a,f,o[d+6],15,-1560198380),f=w(f,l,h,a,o[d+13],21,1309151649),a=w(a,f,l,h,o[d+4],6,-145523070),h=w(h,a,f,l,o[d+11],10,-1120210379),l=w(l,h,a,f,o[d+2],15,718787259),f=w(f,l,h,a,o[d+9],21,-343485551),a=a+v>>>0,f=f+A>>>0,l=l+_>>>0,h=h+E>>>0}return e.endian([a,f,l,h])};r._ff=function(s,u,o,c,a,f,l){var h=s+(u&o|~u&c)+(a>>>0)+l;return(h<<f|h>>>32-f)+u},r._gg=function(s,u,o,c,a,f,l){var h=s+(u&c|o&~c)+(a>>>0)+l;return(h<<f|h>>>32-f)+u},r._hh=function(s,u,o,c,a,f,l){var h=s+(u^o^c)+(a>>>0)+l;return(h<<f|h>>>32-f)+u},r._ii=function(s,u,o,c,a,f,l){var h=s+(o^(u|~c))+(a>>>0)+l;return(h<<f|h>>>32-f)+u},r._blocksize=16,r._digestsize=16,H0.exports=function(s,u){if(s==null)throw new Error("Illegal argument "+s);var o=e.wordsToBytes(r(s,u));return u&&u.asBytes?o:u&&u.asString?i.bytesToString(o):e.bytesToHex(o)}})();var zo=H0.exports,Qt,Ii;(Ii=Qt||(Qt={})).UP="up",Ii.DOWN="down",Ii.NORTH="north",Ii.EAST="east",Ii.SOUTH="south",Ii.WEST="west";const yy={[Qt.UP]:[0,1,0],[Qt.DOWN]:[0,-1,0],[Qt.NORTH]:[0,0,-1],[Qt.EAST]:[1,0,0],[Qt.SOUTH]:[0,0,1],[Qt.WEST]:[-1,0,0]};var or,Hn;(function(e){e.ALL=[e.UP,e.DOWN,e.NORTH,e.EAST,e.SOUTH,e.WEST],e.normal=function(t){return yy[t]}})(Qt||(Qt={})),(Hn=or||(or={})).create=function(e,t,n){return[e,t,n]},Hn.ZERO=Hn.create(0,0,0),Hn.offset=function(e,t,n,i){return[e[0]+t,e[1]+n,e[2]+i]},Hn.towards=function(e,t){return Hn.offset(e,...Qt.normal(t))},Hn.equals=function(e,t){return e===t||e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]},Hn.magnitude=function(e){return e[0]*e[0]+e[1]*e[1]+e[2]*e[2]};function _a(e,t,n){if(!e[t])throw new Error(`Missing ${t} tag`);if(e[t].type!==n)throw new Error(`Expected ${t} to be of type ${n}, but found ${e[t].type}`);return e[t].value}function Ey(e,t){try{return e()}catch{return t}}var ie;function Aa(e){let t=null;return()=>(t==null&&(t=e()),t)}function Uo(e,t,n){const i=e.get(t);if(i)return i;const r=n(t);return e.set(t,r),r}(function(e){function t(n){return typeof n=="object"&&n!==null?n:void 0}e.readNumber=function(n){return typeof n=="number"?n:void 0},e.readInt=function(n){return typeof n=="number"?Math.floor(n):void 0},e.readString=function(n){return typeof n=="string"?n:void 0},e.readBoolean=function(n){return typeof n=="boolean"?n:void 0},e.readObject=t,e.readArray=function(n,i){if(Array.isArray(n))return n.map(r=>i(r))},e.readMap=function(n,i){var r;const s=(r=t(n))!=null?r:{};return Object.fromEntries(Object.entries(s).map(([u,o])=>[u,i(o)]))},e.compose=function(n,i,r){const s=i(n);return s?r(s):void 0},e.readEnum=function(n,i){return typeof n!="string"?i[0]:i.includes(n)?n:i[0]}})(ie||(ie={}));const Zs=class{constructor(e,t){if(this.namespace=e,this.path=t,!e.match(/^[a-z0-9._-]+$/))throw new Error(`Non [a-z0-9._-] character in namespace of ${e}:${t}`);if(!t.match(/^[a-z0-9/._-]+$/))throw new Error(`Non [a-z0-9/._-] character in path of ${e}:${t}`)}equals(e){return this===e||this.namespace===e.namespace&&this.path===e.path}toString(){return`${this.namespace}:${this.path}`}static create(e){return new Zs(this.DEFAULT_NAMESPACE,e)}static parse(e){const t=e.indexOf(this.SEPARATOR);if(t>=0){const n=t>=1?e.substring(0,t):this.DEFAULT_NAMESPACE,i=e.substring(t+1);return new Zs(n,i)}return new Zs(this.DEFAULT_NAMESPACE,e)}};let Ue=Zs;Ue.DEFAULT_NAMESPACE="minecraft",Ue.SEPARATOR=":";var by=Object.defineProperty,xy=Object.defineProperties,Cy=Object.getOwnPropertyDescriptors,lh=Object.getOwnPropertySymbols,Fy=Object.prototype.hasOwnProperty,Sy=Object.prototype.propertyIsEnumerable,ch=(e,t,n)=>t in e?by(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const pn=class{constructor(e,t={}){this.properties=t,this.name=typeof e=="string"?Ue.parse(e):e}getName(){return this.name}getProperties(){return this.properties}getProperty(e){return this.properties[e]}isFluid(){return this.is(pn.WATER)||this.is(pn.LAVA)}equals(e){return!!this.name.equals(e.name)&&Object.keys(this.properties).every(t=>e.properties[t]===this.properties[t])}is(e){return this.name.equals(e.name)}toString(){return Object.keys(this.properties).length===0?this.name.toString():`${this.name.toString()}[${Object.entries(this.properties).map(([e,t])=>e+"="+t).join(",")}]`}static fromNbt(e){const t=Ue.parse(_a(e.value,"Name","string")),n=Ey(()=>_a(e.value,"Properties","compound"),{}),i=Object.keys(n).reduce((r,s)=>{return u=((c,a)=>{for(var f in a||(a={}))Fy.call(a,f)&&ch(c,f,a[f]);if(lh)for(var f of lh(a))Sy.call(a,f)&&ch(c,f,a[f]);return c})({},r),o={[s]:_a(n,s,"string")},xy(u,Cy(o));var u,o},{});return new pn(t,i)}static fromJson(e){var t,n;const i=(t=ie.readObject(e))!=null?t:{},r=Ue.parse((n=ie.readString(i.Name))!=null?n:pn.STONE.name.toString()),s=ie.readMap(i.Properties,u=>{var o;return(o=ie.readString(u))!=null?o:""});return new pn(r,s)}};let Bt=pn;Bt.AIR=new pn(Ue.create("air")),Bt.STONE=new pn(Ue.create("stone")),Bt.WATER=new pn(Ue.create("water"),{level:"0"}),Bt.LAVA=new pn(Ue.create("lava"),{level:"0"});const Pr=class{constructor(e){this.minY=e,this.storage=Array(Pr.SIZE).fill(0),this.palette=[Bt.AIR]}get minBlockY(){return this.minY<<4}index(e,t,n){return(e<<8)+(t<<4)+n}getBlockState(e,t,n){var i;const r=this.storage[this.index(e,t,n)];return(i=this.palette[r])!=null?i:Bt.AIR}setBlockState(e,t,n,i){let r=this.palette.findIndex(s=>s.equals(i));r===-1&&(r=this.palette.length,this.palette.push(i)),this.storage[this.index(e,t,n)]=r}};let il=Pr;il.WIDTH=16,il.SIZE=Pr.WIDTH*Pr.WIDTH*Pr.WIDTH;class Dy{constructor(t,n,i){this.minY=t,this.height=n,this.pos=i,this.sections=Array(this.sectionsCount).fill(null)}get maxY(){return this.minY+this.height}get minSection(){return this.minY>>4}get maxSection(){return 1+(this.maxY-1>>4)}get sectionsCount(){return this.maxSection-this.minSection}getSectionIndex(t){return(t>>4)-this.minSection}getBlockState(t){var n;const[i,r,s]=t,u=this.sections[this.getSectionIndex(r)];return(n=u==null?void 0:u.getBlockState(15&i,15&r,15&s))!=null?n:Bt.AIR}setBlockState(t,n){const[i,r,s]=t,u=this.getSectionIndex(r);let o=this.sections[u];if(o===null){if(n.equals(Bt.AIR))return;o=this.getOrCreateSection(u)}o.setBlockState(15&i,15&r,15&s,n)}getOrCreateSection(t){return this.sections[t]==null&&(this.sections[t]=new il(this.minSection+t)),this.sections[t]}}var Ut,ar;(function(e){function t(n,i){return BigInt(4294967295&n)|BigInt(4294967295&i)<<BigInt(32)}e.create=function(n,i){return[n,i]},e.fromBlockPos=function(n){return[n[0]>>4,n[2]>>4]},e.fromLong=function(n){return[4294967295&Number(n),Number(n>>BigInt(32))]},e.toLong=function(n){return t(n[0],n[1])},e.asLong=t,e.minBlockX=function(n){return n[0]<<4},e.minBlockZ=function(n){return n[1]<<4},e.maxBlockX=function(n){return 15+(n[0]<<4)},e.maxBlockZ=function(n){return 15+(n[1]<<4)}})(Ut||(Ut={})),function(e){function t(i){return{value:()=>i,key:()=>{}}}function n(i,r){return{value:()=>i.getOrThrow(r),key:()=>r}}e.parser=function(i,r){return s=>typeof s=="string"?n(i,Ue.parse(s)):t(r(s))},e.direct=t,e.reference=n}(ar||(ar={}));const Ql=class{constructor(e,t){this.key=e,this.parser=t,this.storage=new Map,this.builtin=new Map}register(e,t,n){return this.storage.set(e.toString(),t),n&&this.builtin.set(e.toString(),t),ar.reference(this,e)}keys(){return[...this.storage.keys()].map(e=>Ue.parse(e))}get(e){return this.storage.get(e.toString())}getOrThrow(e){const t=this.storage.get(e.toString());if(t===void 0)throw new Error(`Missing key in ${this.key.toString()}: ${e.toString()}`);return t}parse(e){if(!this.parser)throw new Error(`No parser exists for ${this.key.toString()}`);return this.parser(e)}clear(){this.storage.clear();for(const[e,t]of this.builtin.entries())this.storage.set(e,t);return this}assign(e){if(!this.key.equals(e.key))throw new Error(`Cannot assign registry of type ${e.key.toString()} to registry of type ${this.key.toString()}`);for(const t of e.keys())this.storage.set(t.toString(),e.getOrThrow(t));return this}cloneEmpty(){return new Ql(this.key,this.parser)}};let ns=Ql;ns.REGISTRY=new Ql(Ue.create("root"));function jn(e){return e*e}function kr(e,t,n){return Math.max(t,Math.min(n,e))}function ii(e,t,n){return t+e*(n-t)}function rl(e,t,n,i,r,s){return ii(t,ii(e,n,i),ii(e,r,s))}function ky(e,t,n,i,r,s,u,o,c,a,f){return ii(n,rl(e,t,i,r,s,u),rl(e,t,o,c,a,f))}function qs(e,t,n){return e===0?t():e===1?n():t()+e*(n()-t())}function uh(e,t,n,i,r,s){return qs(t,()=>qs(e,n,i),()=>qs(e,r,s))}function By(e,t,n,i,r,s,u,o,c,a,f){return qs(n,()=>uh(e,t,i,r,s,u),()=>uh(e,t,o,c,a,f))}function ec(e,t,n){return n<0?e:n>1?t:ii(n,e,t)}function V0(e,t,n){return(e-t)/(n-t)}function ya(e){return e*e*e*(e*(6*e-15)+10)}function hh(e,t,n,i,r){return ii(V0(e,t,n),i,r)}function G0(e,t,n,i,r){return ec(i,r,V0(e,t,n))}function Ty(e,t,n){let i=t-e;for(;i>0;){const r=Math.floor(i/2),s=e+r;n(s)?i=r:(e=s+1,i-=r+1)}return e}function K0(e,t,n){let i=BigInt(3129871*e)^BigInt(n)*BigInt(116129781)^BigInt(t);return i=i*i*BigInt(42317861)+i*BigInt(11),i>>BigInt(16)}function sl(e,t,n,i,r,s,u,o){return BigInt(e)<<BigInt(56)|BigInt(t)<<BigInt(48)|BigInt(n)<<BigInt(40)|BigInt(i)<<BigInt(32)|BigInt(r)<<BigInt(24)|BigInt(s)<<BigInt(16)|BigInt(u)<<BigInt(8)|BigInt(o)}var Zi;(function(e){e.fromJson=function i(r,s){var u,o,c,a;if(typeof r=="number")return new t(r);const f=(u=ie.readObject(r))!=null?u:{},l=new n(s(f.coordinate)),h=(o=ie.readArray(f.points,d=>{var g;return(g=ie.readObject(d))!=null?g:{}}))!=null?o:[];if(h.length===0)return new t(0);for(const d of h){const g=(c=ie.readNumber(d.location))!=null?c:0,p=i(d.value,s),m=(a=ie.readNumber(d.derivative))!=null?a:0;l.addPoint(g,p,m)}return l};class t{constructor(r){this.value=r}compute(){return this.value}min(){return this.value}max(){return this.value}mapAll(){return this}}e.Constant=t;class n{constructor(r,s=[],u=[],o=[]){this.coordinate=r,this.locations=s,this.values=u,this.derivatives=o}compute(r){const s=this.coordinate.compute(r),u=Ty(0,this.locations.length,w=>s<this.locations[w])-1,o=this.locations.length-1;if(u<0)return this.values[0].compute(r)+this.derivatives[0]*(s-this.locations[0]);if(u===o)return this.values[o].compute(r)+this.derivatives[o]*(s-this.locations[o]);const c=this.locations[u],a=this.locations[u+1],f=this.derivatives[u],l=this.derivatives[u+1],h=(s-c)/(a-c),d=this.values[u].compute(r),g=this.values[u+1].compute(r),p=f*(a-c)-(g-d),m=-l*(a-c)+(g-d);return ii(h,d,g)+h*(1-h)*ii(h,p,m)}min(){return Math.min(...this.values.map(r=>r.min()))}max(){return Math.max(...this.values.map(r=>r.max()))}mapAll(r){return new n(r(this.coordinate),this.locations,this.values.map(s=>s.mapAll(r)),this.derivatives)}addPoint(r,s,u=0){return this.locations.push(r),this.values.push(typeof s=="number"?new e.Constant(s):s),this.derivatives.push(u),this}}e.MultiPoint=n})(Zi||(Zi={}));const hn=class{constructor(e){this.seed=BigInt(0),this.setSeed(e)}fork(){return new hn(this.nextLong())}forkPositional(){return new Ly(this.nextLong())}setSeed(e){this.seed=e^hn.MULTIPLIER&hn.MODULUS_MASK}advance(){this.seed=this.seed*hn.MULTIPLIER+hn.INCREMENT&hn.MODULUS_MASK}consume(e){for(let t=0;t<e;t+=1)this.advance()}next(e){this.advance();const t=Number(this.seed>>BigInt(hn.MODULUS_BITS-e));return t>2147483647?t-4294967296:t}nextInt(e){if(e===void 0)return this.next(32);if((e&e-1)==0)return Number(BigInt(e)*BigInt(this.next(31))>>BigInt(31));let t,n;for(;(t=this.next(31))-(n=t%e)+(e-1)<0;);return n}nextLong(){return(BigInt(this.next(32))<<BigInt(32))+BigInt(this.next(32))}nextFloat(){return this.next(24)*hn.FLOAT_MULTIPLIER}nextDouble(){const e=this.next(30);return this.advance(),e*hn.DOUBLE_MULTIPLIER}};let Pt=hn;Pt.MODULUS_BITS=48,Pt.MODULUS_MASK=BigInt("281474976710655"),Pt.MULTIPLIER=BigInt("25214903917"),Pt.INCREMENT=BigInt("11"),Pt.FLOAT_MULTIPLIER=1/Math.pow(2,24),Pt.DOUBLE_MULTIPLIER=1/Math.pow(2,30);class Ly{constructor(t){this.seed=t}at(t,n,i){const r=K0(t,n,i);return new Pt(r^this.seed)}fromHashOf(t){const n=zo(t,{asBytes:!0}),i=sl(n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7]);return new Pt(i^this.seed)}seedKey(){return[this.seed,BigInt(0)]}}const Fe=class{constructor(e){this.seed=[BigInt(0),BigInt(0)],this.seed=e}static create(e){return new Fe(Fe.upgradeSeedTo128bit(e))}static mixStafford13(e){return((e=((e=(e^e>>Fe.BIGINT_30)*Fe.STAFFORD_1&Fe.MAX_ULONG)^e>>Fe.BIGINT_27)*Fe.STAFFORD_2&Fe.MAX_ULONG)^e>>Fe.BIGINT_31)&Fe.MAX_ULONG}static upgradeSeedTo128bit(e){e<0&&(e+=Fe.POW2_60);const t=e^Fe.SILVER_RATIO_64,n=t+Fe.GOLDEN_RATIO_64&Fe.MAX_ULONG;return[Fe.mixStafford13(t),Fe.mixStafford13(n)]}static rotateLeft(e,t){return e<<t&Fe.MAX_ULONG|e>>Fe.BIGINT_64-t}setSeed(e){this.seed=Fe.upgradeSeedTo128bit(e)}fork(){return new Fe([this.next(),this.next()])}forkPositional(){return new $y(this.next(),this.next())}next(){const e=this.seed[0];let t=this.seed[1];const n=Fe.rotateLeft(e+t&Fe.MAX_ULONG,Fe.BIGINT_17)+e&Fe.MAX_ULONG;return t^=e,this.seed=[Fe.rotateLeft(e,Fe.BIGINT_49)^t^t<<Fe.BIGINT_21&Fe.MAX_ULONG,Fe.rotateLeft(t,Fe.BIGINT_28)],n}nextLong(){let e=this.next();return e>Fe.POW2_63&&(e-=Fe.POW2_60),e}consume(e){let t=this.seed[0],n=this.seed[1];for(let i=0;i<e;i+=1)n^=t,t=Fe.rotateLeft(t,Fe.BIGINT_49)^n^n<<Fe.BIGINT_21,n=Fe.rotateLeft(n,Fe.BIGINT_28);this.seed=[t,n]}nextBits(e){return this.next()>>BigInt(64-e)}nextInt(e){let t=this.next()&Fe.MAX_UINT;if(e){const n=BigInt(e);let i=t*n,r=i&Fe.MAX_UINT;if(r<n){const u=((~n&Fe.MAX_UINT)+Fe.BIGINT_1)%n;for(;r<u;)t=this.next()&Fe.MAX_UINT,i=t*n,r=i&Fe.MAX_UINT}const s=i>>Fe.BIGINT_32;return Number(s)}{let n=Number(t);return n>=2147483648&&(n-=4294967296),n}}nextFloat(){return Number(this.nextBits(24))*Fe.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*Fe.DOUBLE_MULTIPLIER}parityConfigString(){return"seedLo: "+this.seed[0]+", seedHi: "+this.seed[1]}};let Je=Fe;Je.SILVER_RATIO_64=BigInt("7640891576956012809"),Je.GOLDEN_RATIO_64=BigInt("-7046029254386353131"),Je.FLOAT_MULTIPLIER=1/Math.pow(2,24),Je.DOUBLE_MULTIPLIER=11102230246251565e-32,Je.BIGINT_1=BigInt(1),Je.BIGINT_17=BigInt(17),Je.BIGINT_21=BigInt(21),Je.BIGINT_27=BigInt(27),Je.BIGINT_28=BigInt(28),Je.BIGINT_30=BigInt(30),Je.BIGINT_31=BigInt(31),Je.BIGINT_32=BigInt(32),Je.BIGINT_49=BigInt(49),Je.BIGINT_64=BigInt(64),Je.STAFFORD_1=BigInt("-4658895280553007687"),Je.STAFFORD_2=BigInt("-7723592293110705685"),Je.MAX_ULONG=BigInt("0xFFFFFFFFFFFFFFFF"),Je.POW2_60=BigInt("0x10000000000000000"),Je.POW2_63=BigInt("0x8000000000000000"),Je.MAX_UINT=BigInt(4294967295);class $y{constructor(t,n){this.seedLo=t,this.seedHi=n}at(t,n,i){const r=K0(t,n,i)^this.seedLo;return new Je([r,this.seedHi])}fromHashOf(t){const n=zo(t,{asBytes:!0}),i=sl(n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7]),r=sl(n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15]);return new Je([i^this.seedLo,r^this.seedHi])}seedKey(){return[this.seedLo,this.seedHi]}}const Fn=class{constructor(e){this.xo=256*e.nextDouble(),this.yo=256*e.nextDouble(),this.zo=256*e.nextDouble(),this.p=Array(256);for(let t=0;t<256;t+=1)this.p[t]=t;for(let t=0;t<256;t+=1){const n=e.nextInt(256-t),i=this.p[t];this.p[t]=this.p[t+n],this.p[t+n]=i}}sample2D(e,t){let n,i,r;const s=(e+t)*Fn.F2,u=Math.floor(e+s),o=e-(u-(n=(u+(i=Math.floor(t+s)))*Fn.G2));let c,a;o>(r=t-(i-n))?(c=1,a=0):(c=0,a=1);const f=o-c+Fn.G2,l=r-a+Fn.G2,h=o-1+2*Fn.G2,d=r-1+2*Fn.G2,g=255&u,p=255&i,m=this.P(g+this.P(p))%12,w=this.P(g+c+this.P(p+a))%12,v=this.P(g+1+this.P(p+1))%12;return 70*(this.getCornerNoise3D(m,o,r,0,.5)+this.getCornerNoise3D(w,f,l,0,.5)+this.getCornerNoise3D(v,h,d,0,.5))}sample(e,t,n){const i=.3333333333333333*(e+t+n),r=Math.floor(e+i),s=Math.floor(t+i),u=Math.floor(n+i),o=.16666666666666666*(r+s+u),c=e-(r-o),a=t-(s-o),f=n-(u-o);let l,h,d,g,p,m;c>=a?a>=f?(l=1,h=0,d=0,g=1,p=1,m=0):c>=f?(l=1,h=0,d=0,g=1,p=0,m=1):(l=0,h=0,d=1,g=1,p=0,m=1):a<f?(l=0,h=0,d=1,g=0,p=1,m=1):c<f?(l=0,h=1,d=0,g=0,p=1,m=1):(l=0,h=1,d=0,g=1,p=1,m=0);const w=c-l+.16666666666666666,v=a-h+.16666666666666666,A=f-d+.16666666666666666,_=c-g+.3333333333333333,E=a-p+.3333333333333333,b=f-m+.3333333333333333,x=c-.5,y=a-.5,C=f-.5,B=255&r,T=255&s,M=255&u,R=this.P(B+this.P(T+this.P(M)))%12,I=this.P(B+l+this.P(T+h+this.P(M+d)))%12,H=this.P(B+g+this.P(T+p+this.P(M+m)))%12,P=this.P(B+1+this.P(T+1+this.P(M+1)))%12;return 32*(this.getCornerNoise3D(R,c,a,f,.6)+this.getCornerNoise3D(I,w,v,A,.6)+this.getCornerNoise3D(H,_,E,b,.6)+this.getCornerNoise3D(P,x,y,C,.6))}P(e){return this.p[255&e]}getCornerNoise3D(e,t,n,i,r){let s,u=r-t*t-n*n-i*i;return u<0?s=0:(u*=u,s=u*u*Fn.gradDot(e,t,n,i)),s}static gradDot(e,t,n,i){const r=Fn.GRADIENT[15&e];return r[0]*t+r[1]*n+r[2]*i}};let qt=Fn;qt.GRADIENT=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1],[1,1,0],[0,-1,1],[-1,1,0],[0,-1,-1]],qt.F2=.5*(Math.sqrt(3)-1),qt.G2=(3-Math.sqrt(3))/6;class fh{constructor(t){this.xo=256*t.nextDouble(),this.yo=256*t.nextDouble(),this.zo=256*t.nextDouble(),this.p=Array(256);for(let n=0;n<256;n+=1)this.p[n]=n>127?n-256:n;for(let n=0;n<256;n+=1){const i=t.nextInt(256-n),r=this.p[n];this.p[n]=this.p[n+i],this.p[n+i]=r}}sample(t,n,i,r=0,s=0){const u=t+this.xo,o=n+this.yo,c=i+this.zo,a=Math.floor(u),f=Math.floor(o),l=Math.floor(c),h=u-a,d=o-f,g=c-l;let p=0;if(r!==0){const m=s>=0&&s<d?s:d;p=Math.floor(m/r+1e-7)*r}return this.sampleAndLerp(a,f,l,h,d-p,g,d)}sampleAndLerp(t,n,i,r,s,u,o){const c=this.P(t),a=this.P(t+1),f=this.P(c+n),l=this.P(c+n+1),h=this.P(a+n),d=this.P(a+n+1),g=qt.gradDot(this.P(f+i),r,s,u),p=qt.gradDot(this.P(h+i),r-1,s,u),m=qt.gradDot(this.P(l+i),r,s-1,u),w=qt.gradDot(this.P(d+i),r-1,s-1,u),v=qt.gradDot(this.P(f+i+1),r,s,u-1),A=qt.gradDot(this.P(h+i+1),r-1,s,u-1),_=qt.gradDot(this.P(l+i+1),r,s-1,u-1),E=qt.gradDot(this.P(d+i+1),r-1,s-1,u-1);return ky(ya(r),ya(o),ya(u),g,p,m,w,v,A,_,E)}P(t){return 255&this.p[255&t]}}class qe{constructor(t,n,i){if(t instanceof Je){const r=t.forkPositional();this.noiseLevels=Array(i.length);for(let s=0;s<i.length;s++)if(i[s]!==0){const u=n+s;this.noiseLevels[s]=new fh(r.fromHashOf("octave_"+u))}}else{if(1-n<i.length)throw new Error("Positive octaves are not allowed when using LegacyRandom");this.noiseLevels=Array(i.length);for(let r=-n;r>=0;r-=1)r<i.length&&i[r]!==0?this.noiseLevels[r]=new fh(t):t.consume(262)}this.amplitudes=i,this.lowestFreqInputFactor=Math.pow(2,n),this.lowestFreqValueFactor=Math.pow(2,i.length-1)/(Math.pow(2,i.length)-1),this.maxValue=this.edgeValue(2)}sample(t,n,i,r=0,s=0,u=!1){let o=0,c=this.lowestFreqInputFactor,a=this.lowestFreqValueFactor;for(let f=0;f<this.noiseLevels.length;f+=1){const l=this.noiseLevels[f];l&&(o+=this.amplitudes[f]*a*l.sample(qe.wrap(t*c),u?-l.yo:qe.wrap(n*c),qe.wrap(i*c),r*c,s*c)),c*=2,a/=2}return o}getOctaveNoise(t){return this.noiseLevels[this.noiseLevels.length-1-t]}edgeValue(t){let n=0,i=this.lowestFreqValueFactor;for(let r=0;r<this.noiseLevels.length;r+=1)this.noiseLevels[r]&&(n+=this.amplitudes[r]*t*i),i/=2;return n}static wrap(t){return t-33554432*Math.floor(t/33554432+.5)}}class X0{constructor(t,n,i,r){this.cellWidth=i,this.cellHeight=r,this.minLimitNoise=new qe(t,-15,[1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0]),this.maxLimitNoise=new qe(t,-15,[1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0]),this.mainNoise=new qe(t,-7,[1,1,1,1,1,0,0,0]),this.xzScale=684.412*n.xzScale,this.yScale=684.412*n.yScale,this.xzMainScale=this.xzScale/n.xzFactor,this.yMainScale=this.yScale/n.yFactor,this.maxValue=this.minLimitNoise.edgeValue(this.yScale+2)}sample(t,n,i){let r;t=Math.floor(t/this.cellWidth),n=Math.floor(n/this.cellHeight),i=Math.floor(i/this.cellWidth);let s=0,u=1;for(let a=0;a<8;a+=1){if(r=this.mainNoise.getOctaveNoise(a),r){const f=this.xzMainScale*u,l=this.yMainScale*u,h=qe.wrap(t*f),d=qe.wrap(n*l),g=qe.wrap(i*f);s+=r.sample(h,d,g,l,n*l)/u}u/=2}s=(s/10+1)/2,u=1;let o=0,c=0;for(let a=0;a<16;a+=1){const f=this.xzScale*u,l=this.yScale*u,h=qe.wrap(t*f),d=qe.wrap(n*l),g=qe.wrap(i*f);s<1&&(r=this.minLimitNoise.getOctaveNoise(a))&&(o+=r.sample(h,d,g,l,n*l)/u),s>0&&(r=this.maxLimitNoise.getOctaveNoise(a))&&(c+=r.sample(h,d,g,l,n*l)/u),u/=2}return ec(o/512,c/512,s)/128}}var ol;(ol||(ol={})).fromJson=function(e){var t,n,i,r,s;const u=(t=ie.readObject(e))!=null?t:{};return{xzScale:(n=ie.readNumber(u.xz_scale))!=null?n:1,yScale:(i=ie.readNumber(u.y_scale))!=null?i:1,xzFactor:(r=ie.readNumber(u.xz_factor))!=null?r:80,yFactor:(s=ie.readNumber(u.y_factor))!=null?s:80}};const Qs=class{constructor(e,{firstOctave:t,amplitudes:n}){this.first=new qe(e,t,n),this.second=new qe(e,t,n);let i=1/0,r=-1/0;for(let u=0;u<n.length;u+=1)n[u]!==0&&(i=Math.min(i,u),r=Math.max(r,u));const s=.1*(1+1/(r-i+1));this.valueFactor=1/6/s,this.maxValue=(this.first.maxValue+this.second.maxValue)*this.valueFactor}sample(e,t,n){const i=e*Qs.INPUT_FACTOR,r=t*Qs.INPUT_FACTOR,s=n*Qs.INPUT_FACTOR;return(this.first.sample(e,t,n)+this.second.sample(i,r,s))*this.valueFactor}};let Ho=Qs;var lr,dh;Ho.INPUT_FACTOR=1.0181268882175227,(dh=lr||(lr={})).create=function(e,t){return{firstOctave:e,amplitudes:t}},dh.fromJson=function(e){var t,n,i;const r=(t=ie.readObject(e))!=null?t:{};return{firstOctave:(n=ie.readInt(r.firstOctave))!=null?n:0,amplitudes:(i=ie.readArray(r.amplitudes,s=>{var u;return(u=ie.readNumber(s))!=null?u:0}))!=null?i:[]}};var ph;(ph||(ph={})).rotate=function(e,t,n){let{up:i,down:r,north:s,east:u,south:o,west:c}=e;switch(n){case 90:[s,u,o,c]=[u,o,c,s];break;case 180:[s,u,o,c]=[o,c,s,u];break;case 270:[s,u,o,c]=[c,s,u,o]}switch(t){case 90:[i,s,r,o]=[s,r,o,i];break;case 180:[i,s,r,o]=[r,o,i,s];break;case 270:[i,s,r,o]=[o,i,s,r]}return{up:i,down:r,north:s,east:u,south:o,west:c}};const Xn=class{constructor(e,t,n){this.offsetSampler=e,this.factorSampler=t,this.jaggednessSampler=n}static extractor(e){return{compute:t=>t[e]}}static fromJson(e){var t;const n=(t=ie.readObject(e))!=null?t:{};return new Xn(Zi.fromJson(n.offset,this.EXTRACTOR),Zi.fromJson(n.factor,this.EXTRACTOR),Zi.fromJson(n.jaggedness,this.EXTRACTOR))}offset(e){return this.offsetSampler.compute(e)+Xn.GLOBAL_OFFSET}factor(e){return this.factorSampler.compute(e)}jaggedness(e){return this.jaggednessSampler.compute(e)}static point(e,t,n){return{continents:e,erosion:t,weirdness:n,ridges:this.peaksAndValleys(n)}}static peaksAndValleys(e){return 3*-(Math.abs(Math.abs(e)-.6666667)-.33333334)}};let Vn=Xn;var ut,Oi,gh,ai,al;Vn.GLOBAL_OFFSET=-.50375,Vn.EXTRACTOR=e=>{var t;const n=(t=ie.readString(e))!=null?t:"continents";return Xn.extractor(n)},Vn.CONTINENTS=Xn.extractor("continents"),Vn.EROSION=Xn.extractor("erosion"),Vn.WEIRDNESS=Xn.extractor("weirdness"),Vn.RIDGES=Xn.extractor("ridges"),function(e){function t(n){return n.ySize<<2}e.fromJson=function(n){var i,r,s,u,o;const c=(i=ie.readObject(n))!=null?i:{};return{minY:(r=ie.readInt(c.min_y))!=null?r:0,height:(s=ie.readInt(c.height))!=null?s:256,xzSize:(u=ie.readInt(c.size_horizontal))!=null?u:1,ySize:(o=ie.readInt(c.size_vertical))!=null?o:1,sampling:ol.fromJson(c.sampling),topSlide:Oi.fromJson(c.top_slide),bottomSlide:Oi.fromJson(c.bottom_slide),terrainShaper:Vn.fromJson(c.terrain_shaper)}},e.cellHeight=t,e.cellWidth=function(n){return n.xzSize<<2},e.cellCountY=function(n){return n.height/t(n)},e.minCellY=function(n){return Math.floor(n.minY/t(n))},e.applySlides=function(n,i,r){const s=Math.floor(r/t(n))-e.minCellY(n);return i=Oi.apply(n.topSlide,i,e.cellCountY(n)-s),i=Oi.apply(n.bottomSlide,i,s)}}(ut||(ut={})),(gh=Oi||(Oi={})).fromJson=function(e){var t,n,i,r;const s=(t=ie.readObject(e))!=null?t:{};return{target:(n=ie.readNumber(s.target))!=null?n:0,size:(i=ie.readInt(s.size))!=null?i:0,offset:(r=ie.readInt(s.offset))!=null?r:0}},gh.apply=function(e,t,n){if(e.size<=0)return t;const i=(n-e.offset)/e.size;return ec(e.target,t,i)},function(e){function t(n){const i=new ns(Ue.create(n));return ns.REGISTRY.register(i.key,i),i}e.NOISE=t("worldgen/noise"),e.DENSITY_FUNCTION=t("worldgen/density_function")}(ai||(ai={}));class Me{minValue(){return-this.maxValue()}mapAll(t){return t.map(this)}}(function(e){e.context=function(N,k,$){return{x:N,y:k,z:$}};class t extends e{constructor(k){super(),this.input=k}compute(k){return this.transform(k,this.input.compute(k))}}const n=ar.parser(ai.NOISE,lr.fromJson);e.fromJson=function N(k,$=N){var z,U,G,Q,X,te,le,ye,ve,ee,ce,he,je,Ve,ge,Tt,Re,Te,bt;if(typeof k=="string")return new s(ar.reference(ai.DENSITY_FUNCTION,Ue.parse(k)));if(typeof k=="number")return new r(k);const ue=(z=ie.readObject(k))!=null?z:{},Ft=(U=ie.readString(ue.type))==null?void 0:U.replace(/^minecraft:/,"");switch(Ft){case"blend_alpha":return new u(1,0,1);case"blend_offset":case"beardifier":return new u(0,-1/0,1/0);case"old_blended_noise":return new o;case"flat_cache":return new a($(ue.argument));case"interpolated":return new d($(ue.argument));case"cache_2d":return new l($(ue.argument));case"cache_once":return new h($(ue.argument));case"cache_all_in_cell":return new f($(ue.argument));case"noise":return new g((G=ie.readNumber(ue.xz_scale))!=null?G:1,(Q=ie.readNumber(ue.y_scale))!=null?Q:1,n(ue.noise));case"end_islands":return new p;case"weird_scaled_sampler":return new v($(ue.input),ie.readEnum(ue.rarity_value_mapper,m),n(ue.noise));case"shifted_noise":return new A($(ue.shift_x),$(ue.shift_y),$(ue.shift_z),(X=ie.readNumber(ue.xz_scale))!=null?X:1,(te=ie.readNumber(ue.y_scale))!=null?te:1,n(ue.noise));case"range_choice":return new _($(ue.input),(le=ie.readNumber(ue.min_inclusive))!=null?le:0,(ye=ie.readNumber(ue.max_exclusive))!=null?ye:1,$(ue.when_in_range),$(ue.when_out_of_range));case"shift_a":return new b(n(ue.argument));case"shift_b":return new x(n(ue.argument));case"shift":return new y(n(ue.argument));case"blend_density":return new C($(ue.argument));case"clamp":return new B($(ue.input),(ve=ie.readNumber(ue.min))!=null?ve:0,(ee=ie.readNumber(ue.max))!=null?ee:1);case"abs":case"square":case"cube":case"half_negative":case"quarter_negative":case"squeeze":return new M(Ft,$(ue.argument));case"slide":return new R($(ue.argument));case"add":case"mul":case"min":case"max":return new H(ie.readEnum(Ft,I),$(ue.argument1),$(ue.argument2));case"spline":return new P(Zi.fromJson(ue.spline,$),(ce=ie.readNumber(ue.min_value))!=null?ce:0,(he=ie.readNumber(ue.max_value))!=null?he:1);case"terrain_shaper_spline":return new V($(ue.continentalness),$(ue.erosion),$(ue.weirdness),ie.readEnum(ue.spline,j),(je=ie.readNumber(ue.min_value))!=null?je:0,(Ve=ie.readNumber(ue.max_value))!=null?Ve:1);case"constant":return new r((ge=ie.readNumber(ue.argument))!=null?ge:0);case"y_clamped_gradient":return new K((Tt=ie.readInt(ue.from_y))!=null?Tt:-4064,(Re=ie.readInt(ue.to_y))!=null?Re:4062,(Te=ie.readNumber(ue.from_value))!=null?Te:-4064,(bt=ie.readNumber(ue.to_value))!=null?bt:4062)}return r.ZERO};const i=class extends e{constructor(N){super(),this.value=N}compute(){return this.value}minValue(){return this.value}maxValue(){return this.value}};let r=i;r.ZERO=new i(0),r.ONE=new i(1),e.Constant=r;class s extends e{constructor(k){super(),this.holder=k}compute(k){return this.holder.value().compute(k)}minValue(){return this.holder.value().minValue()}maxValue(){return this.holder.value().maxValue()}}e.HolderHolder=s;class u extends e.Constant{constructor(k,$,z){super(k),this.min=$,this.max=z}minValue(){return this.min}maxValue(){return this.max}}e.ConstantMinMax=u;class o extends e{constructor(k){super(),this.blendedNoise=k!=null?k:new X0(Je.create(BigInt(0)),{xzScale:1,yScale:1,xzFactor:80,yFactor:160},4,8)}compute(k){return this.blendedNoise.sample(k.x,k.y,k.z)}maxValue(){return this.blendedNoise.maxValue}}e.OldBlendedNoise=o;class c extends e{constructor(k){super(),this.wrapped=k}minValue(){return this.wrapped.minValue()}maxValue(){return this.wrapped.maxValue()}}class a extends c{constructor(k){super(k),this.lastValue=0}compute(k){const $=k.x>>2,z=k.z>>2;return this.lastQuartX===$&&this.lastQuartZ===z||(this.lastValue=this.wrapped.compute(e.context($<<2,0,z<<2)),this.lastQuartX=$,this.lastQuartZ=z),this.lastValue}mapAll(k){return k.map(new a(this.wrapped.mapAll(k)))}}e.FlatCache=a;class f extends c{constructor(k){super(k)}compute(k){return this.wrapped.compute(k)}mapAll(k){return k.map(new f(this.wrapped.mapAll(k)))}}e.CacheAllInCell=f;class l extends c{constructor(k){super(k),this.lastValue=0}compute(k){const $=k.x,z=k.z;return this.lastBlockX===$&&this.lastBlockZ===z||(this.lastValue=this.wrapped.compute(k),this.lastBlockX=$,this.lastBlockZ=z),this.lastValue}mapAll(k){return k.map(new l(this.wrapped.mapAll(k)))}}e.Cache2D=l;class h extends c{constructor(k){super(k),this.lastValue=0}compute(k){const $=k.x,z=k.y,U=k.z;return this.lastBlockX===$&&this.lastBlockY===z&&this.lastBlockZ===U||(this.lastValue=this.wrapped.compute(k),this.lastBlockX=$,this.lastBlockY=z,this.lastBlockZ=U),this.lastValue}mapAll(k){return k.map(new h(this.wrapped.mapAll(k)))}}e.CacheOnce=h;class d extends c{constructor(k,$=4,z=4){super(k),this.cellWidth=$,this.cellHeight=z,this.values=new Map}compute({x:k,y:$,z}){const U=this.cellWidth,G=this.cellHeight,Q=(k%U+U)%U/U,X=($%G+G)%G/G,te=(z%U+U)%U/U,le=Math.floor(k/U)*U,ye=Math.floor($/G)*G,ve=Math.floor(z/U)*U;return By(Q,X,te,()=>this.computeCorner(le,ye,ve),()=>this.computeCorner(le+U,ye,ve),()=>this.computeCorner(le,ye+G,ve),()=>this.computeCorner(le+U,ye+G,ve),()=>this.computeCorner(le,ye,ve+U),()=>this.computeCorner(le+U,ye,ve+U),()=>this.computeCorner(le,ye+G,ve+U),()=>this.computeCorner(le+U,ye+G,ve+U))}computeCorner(k,$,z){return Uo(this.values,`${k} ${$} ${z}`,()=>this.wrapped.compute(e.context(k,$,z)))}mapAll(k){return k.map(new d(this.wrapped.mapAll(k)))}withCellSize(k,$){return new d(this.wrapped,k,$)}}e.Interpolated=d;class g extends e{constructor(k,$,z,U){super(),this.xzScale=k,this.yScale=$,this.noiseData=z,this.noise=U}compute(k){var $,z;return(z=($=this.noise)==null?void 0:$.sample(k.x*this.xzScale,k.y*this.yScale,k.z*this.xzScale))!=null?z:0}maxValue(){var k,$;return($=(k=this.noise)==null?void 0:k.maxValue)!=null?$:2}}e.Noise=g;class p extends e{compute(){return 0}minValue(){return-.84375}maxValue(){return .5625}}const m=["type_1","type_2"],w=class extends t{constructor(N,k,$,z){super(N),this.rarityValueMapper=k,this.noiseData=$,this.noise=z,this.mapper=w.ValueMapper[this.rarityValueMapper]}transform(N,k){if(!this.noise)return 0;const $=this.mapper(k);return $*Math.abs(this.noise.sample(N.x/$,N.y/$,N.z/$))}mapAll(N){return N.map(new w(this.input.mapAll(N),this.rarityValueMapper,this.noiseData,this.noise))}minValue(){return 0}maxValue(){return this.rarityValueMapper==="type_1"?2:3}static rarityValueMapper1(N){return N<-.5?.75:N<0?1:N<.5?1.5:2}static rarityValueMapper2(N){return N<-.75?.5:N<-.5?.75:N<.5?1:N<.75?2:3}};let v=w;v.ValueMapper={type_1:w.rarityValueMapper1,type_2:w.rarityValueMapper2},e.WeirdScaledSampler=v;class A extends g{constructor(k,$,z,U,G,Q,X){super(U,G,Q,X),this.shiftX=k,this.shiftY=$,this.shiftZ=z}compute(k){var $,z;const U=k.x*this.xzScale+this.shiftX.compute(k),G=k.y*this.yScale+this.shiftY.compute(k),Q=k.z*this.xzScale+this.shiftZ.compute(k);return(z=($=this.noise)==null?void 0:$.sample(U,G,Q))!=null?z:0}mapAll(k){return k.map(new A(this.shiftX.mapAll(k),this.shiftY.mapAll(k),this.shiftZ.mapAll(k),this.xzScale,this.yScale,this.noiseData,this.noise))}}e.ShiftedNoise=A;class _ extends e{constructor(k,$,z,U,G){super(),this.input=k,this.minInclusive=$,this.maxExclusive=z,this.whenInRange=U,this.whenOutOfRange=G}compute(k){const $=this.input.compute(k);return this.minInclusive<=$&&$<this.maxExclusive?this.whenInRange.compute(k):this.whenOutOfRange.compute(k)}mapAll(k){return k.map(new _(this.input.mapAll(k),this.minInclusive,this.maxExclusive,this.whenInRange.mapAll(k),this.whenOutOfRange.mapAll(k)))}minValue(){return Math.min(this.whenInRange.minValue(),this.whenOutOfRange.minValue())}maxValue(){return Math.max(this.whenInRange.maxValue(),this.whenOutOfRange.maxValue())}}e.RangeChoice=_;class E extends e{constructor(k,$){super(),this.noiseData=k,this.offsetNoise=$}compute(k){var $,z;return(z=($=this.offsetNoise)==null?void 0:$.sample(.25*k.x,.25*k.y,.25*k.z))!=null?z:0}maxValue(){var k,$;return 4*(($=(k=this.offsetNoise)==null?void 0:k.maxValue)!=null?$:2)}}e.ShiftNoise=E;class b extends E{constructor(k,$){super(k,$)}compute(k){return super.compute(e.context(k.x,0,k.z))}withNewNoise(k){return new b(this.noiseData,k)}}e.ShiftA=b;class x extends E{constructor(k,$){super(k,$)}compute(k){return super.compute(e.context(k.z,k.x,0))}withNewNoise(k){return new x(this.noiseData,k)}}e.ShiftB=x;class y extends E{constructor(k,$){super(k,$)}withNewNoise(k){return new y(this.noiseData,k)}}e.Shift=y;class C extends t{constructor(k){super(k)}transform(k,$){return $}mapAll(k){return k.map(new C(this.input.mapAll(k)))}minValue(){return-1/0}maxValue(){return 1/0}}e.BlendDensity=C;class B extends t{constructor(k,$,z){super(k),this.min=$,this.max=z}transform(k,$){return kr($,this.min,this.max)}mapAll(k){return k.map(new B(this.input.mapAll(k),this.min,this.max))}minValue(){return this.min}maxValue(){return this.max}}e.Clamp=B;const T=class extends t{constructor(N,k,$,z){super(k),this.type=N,this.min=$,this.max=z,this.transformer=T.MappedTypes[this.type]}transform(N,k){return this.transformer(k)}mapAll(N){return N.map(new T(this.type,this.input.mapAll(N)))}minValue(){var N;return(N=this.min)!=null?N:-1/0}maxValue(){var N;return(N=this.max)!=null?N:1/0}withMinMax(){const N=this.input.minValue();let k=this.transformer(N),$=this.transformer(this.input.maxValue());return this.type!=="abs"&&this.type!=="square"||($=Math.max(k,$),k=Math.max(0,N)),new T(this.type,this.input,k,$)}};let M=T;M.MappedTypes={abs:N=>Math.abs(N),square:N=>N*N,cube:N=>N*N*N,half_negative:N=>N>0?N:.5*N,quarter_negative:N=>N>0?N:.25*N,squeeze:N=>{const k=kr(N,-1,1);return k/2-k*k*k/24}},e.Mapped=M;class R extends t{constructor(k,$){super(k),this.settings=$}transform(k,$){return this.settings?ut.applySlides(this.settings,$,k.y):$}mapAll(k){return k.map(new R(this.input.mapAll(k),this.settings))}minValue(){return this.settings?Math.min(this.input.minValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.minValue()}maxValue(){return this.settings?Math.max(this.input.maxValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.maxValue()}}e.Slide=R;const I=["add","mul","min","max"];class H extends e{constructor(k,$,z,U,G){super(),this.type=k,this.argument1=$,this.argument2=z,this.min=U,this.max=G}compute(k){const $=this.argument1.compute(k);switch(this.type){case"add":return $+this.argument2.compute(k);case"mul":return $===0?0:$*this.argument2.compute(k);case"min":return $<this.argument2.minValue()?$:Math.min($,this.argument2.compute(k));case"max":return $>this.argument2.maxValue()?$:Math.max($,this.argument2.compute(k))}}mapAll(k){return k.map(new H(this.type,this.argument1.mapAll(k),this.argument2.mapAll(k)))}minValue(){var k;return(k=this.min)!=null?k:-1/0}maxValue(){var k;return(k=this.max)!=null?k:1/0}withMinMax(){const k=this.argument1.minValue(),$=this.argument2.minValue(),z=this.argument1.maxValue(),U=this.argument2.maxValue();let G,Q;switch(this.type!=="min"&&this.type!=="max"||!(k>=U||$>=z)||console.warn(`Creating a ${this.type} function between two non-overlapping inputs`),this.type){case"add":G=k+$,Q=z+U;break;case"mul":G=k>0&&$>0?k*$||0:z<0&&U<0?z*U||0:Math.min(k*U||0,$*z||0),Q=k>0&&$>0?z*U||0:z<0&&U<0?k*$||0:Math.max(k*$||0,z*U||0);break;case"min":G=Math.min(k,$),Q=Math.min(z,U);break;case"max":G=Math.max(k,$),Q=Math.max(z,U)}return new H(this.type,this.argument1,this.argument2,G,Q)}}e.Ap2=H;class P extends e{constructor(k,$,z){super(),this.spline=k,this.min=$,this.max=z}compute(k){return kr(this.spline.compute(k),this.min,this.max)}mapAll(k){return k.map(new P(this.spline.mapAll($=>$ instanceof e?$.mapAll(k):$),this.min,this.max))}minValue(){return this.min}maxValue(){return this.max}}e.Spline=P;const j=["offset","factor","jaggedness"];class V extends e{constructor(k,$,z,U,G,Q,X){super(),this.continentalness=k,this.erosion=$,this.weirdness=z,this.spline=U,this.min=G,this.max=Q,this.shaper=X}compute(k){if(!this.shaper)return 0;const $=Vn.point(this.continentalness.compute(k),this.erosion.compute(k),this.weirdness.compute(k));return kr(this.shaper[this.spline]($),this.min,this.max)}mapAll(k){return k.map(new V(this.continentalness.mapAll(k),this.erosion.mapAll(k),this.weirdness.mapAll(k),this.spline,this.min,this.max,this.shaper))}minValue(){return this.min}maxValue(){return this.max}}e.TerrainShaperSpline=V;class K extends e{constructor(k,$,z,U){super(),this.fromY=k,this.toY=$,this.fromValue=z,this.toValue=U}compute(k){return G0(k.y,this.fromY,this.toY,this.fromValue,this.toValue)}minValue(){return Math.min(this.fromValue,this.toValue)}maxValue(){return Math.max(this.fromValue,this.toValue)}}e.YClampedGradient=K})(Me||(Me={}));class mh{constructor(t,n){this.level=t,this.type=n}at(t){return t<this.level?this.type:Bt.AIR}}(al||(al={})).createDisabled=function(e){return{compute({x:t,y:n,z:i},r){if(!(r>0))return e(t,n,i).at(n)}}};var vh,_n;(function(e){function t(f,l){return typeof f=="number"?new n(f,l!=null?l:f):f}e.target=function(f,l,h,d,g,p){return new r(f,l,h,d,g,p)},e.parameters=function(f,l,h,d,g,p,m){return new i(t(f),t(l),t(h),t(d),t(g),t(p),m)},e.param=t;class n{constructor(l,h){this.min=l,this.max=h}distance(l){const h=(typeof l=="number"?l:l.min)-this.max,d=this.min-(typeof l=="number"?l:l.max);return h>0?h:Math.max(d,0)}union(l){return new n(Math.min(this.min,l.min),Math.max(this.max,l.max))}static fromJson(l){var h;if(typeof l=="number")return new n(l,l);const[d,g]=(h=ie.readArray(l,p=>ie.readNumber(p)))!=null?h:[];return new n(d!=null?d:0,g!=null?g:0)}}e.Param=n;class i{constructor(l,h,d,g,p,m,w){this.temperature=l,this.humidity=h,this.continentalness=d,this.erosion=g,this.depth=p,this.weirdness=m,this.offset=w}fittness(l){return jn(this.temperature.distance(l.temperature))+jn(this.humidity.distance(l.humidity))+jn(this.continentalness.distance(l.continentalness))+jn(this.erosion.distance(l.erosion))+jn(this.depth.distance(l.depth))+jn(this.weirdness.distance(l.weirdness))+jn(this.offset-l.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new n(this.offset,this.offset)]}static fromJson(l){var h,d;const g=(h=ie.readObject(l))!=null?h:{};return new i(n.fromJson(g.temperature),n.fromJson(g.humidity),n.fromJson(g.continentalness),n.fromJson(g.erosion),n.fromJson(g.depth),n.fromJson(g.weirdness),(d=ie.readInt(g.offset))!=null?d:0)}}e.ParamPoint=i;class r{constructor(l,h,d,g,p,m){this.temperature=l,this.humidity=h,this.continentalness=d,this.erosion=g,this.depth=p,this.weirdness=m}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}e.TargetPoint=r,e.Parameters=class{constructor(f){this.things=f,this.index=new u(f)}find(f){return this.index.search(f,(l,h)=>l.distance(h))}},e.Sampler=class{constructor(f,l,h,d,g,p){this.temperature=f,this.humidity=l,this.continentalness=h,this.erosion=d,this.depth=g,this.weirdness=p}static fromRouter(f){return new e.Sampler(f.temperature,f.vegetation,f.continents,f.erosion,f.depth,f.ridges)}sample(f,l,h){const d=Me.context(f<<2,l<<2,h<<2);return e.target(this.temperature.compute(d),this.humidity.compute(d),this.continentalness.compute(d),this.erosion.compute(d),this.depth.compute(d),this.weirdness.compute(d))}};const s=class{constructor(f){this.root=s.build(f.map(([l,h])=>new a(l,h)))}static build(f){if(f.length===1)return f[0];if(f.length<=s.CHILDREN_PER_NODE){const g=f.map(p=>{let m=0;for(let w=0;w<7;w+=1){const v=p.space[w];m+=Math.abs((v.min+v.max)/2)}return{key:m,node:p}}).sort((p,m)=>p.key-m.key).map(({node:p})=>p);return new c(g)}let l=1/0,h=-1,d=[];for(let g=0;g<7;++g){f=s.sort(f,g,!1),d=s.bucketize(f);let p=0;for(const m of d)p+=s.area(m.space);l>p&&(l=p,h=g)}return f=s.sort(f,h,!1),d=s.bucketize(f),d=s.sort(d,h,!0),new c(d.map(g=>s.build(g.children)))}static sort(f,l,h){return f.map(d=>{const g=d.space[l],p=(g.min+g.max)/2;return{key:h?Math.abs(p):p,node:d}}).sort((d,g)=>d.key-g.key).map(({node:d})=>d)}static bucketize(f){const l=[];let h=[];const d=Math.pow(10,Math.floor(Math.log(f.length-.01)/Math.log(10)));for(const g of f)h.push(g),h.length<d||(l.push(new c(h)),h=[]);return h.length!==0&&l.push(new c(h)),l}static area(f){let l=0;for(const h of f)l+=Math.abs(h.max-h.min);return l}search(f,l){return this.root.search(f.toArray(),l).thing()}};let u=s;u.CHILDREN_PER_NODE=10,e.RTree=u;class o{constructor(l){this.space=l}distance(l){let h=0;for(let d=0;d<7;d+=1)h+=jn(this.space[d].distance(l[d]));return h}}e.RNode=o;class c extends o{constructor(l){super(c.buildSpace(l)),this.children=l}static buildSpace(l){let h=[...Array(7)].map(()=>new n(1/0,-1/0));for(const d of l)h=[...Array(7)].map((g,p)=>h[p].union(d.space[p]));return h}search(l,h){let d=1/0,g=null;for(const p of this.children){const m=h(p,l);if(d<=m)continue;const w=p.search(l,h),v=p==w?m:h(w,l);d<=v||(d=v,g=w)}return g}}e.RSubTree=c;class a extends o{constructor(l,h){super(l.space()),this.thing=h}search(){return this}}e.RLeaf=a})(vh||(vh={}));class is{constructor(t){this.biome=t}getBiome(){return this.biome}static fromJson(t){var n,i;const r=(n=ie.readObject(t))!=null?n:{},s=Ue.parse((i=ie.readString(r.biome))!=null?i:"minecraft:the_void");return new is(s)}}(function(e){function t(i,r,s){return ai.NOISE.register(Ue.create(i),lr.create(r,s))}e.TEMPERATURE=t("temperature",-10,[1.5,0,1,0,0,0]),e.VEGETATION=t("vegetation",-8,[1,1,0,0,0,0]),e.CONTINENTALNESS=t("continentalness",-9,[1,1,2,2,2,1,1,1,1]),e.EROSION=t("erosion",-9,[1,1,0,1,1]),e.TEMPERATURE_LARGE=t("temperature_large",-12,[1.5,0,1,0,0,0]),e.VEGETATION_LARGE=t("vegetation_large",-10,[1,1,0,0,0,0]),e.CONTINENTALNESS_LARGE=t("continentalness_large",-11,[1,1,2,2,2,1,1,1,1]),e.EROSION_LARGE=t("erosion_large",-11,[1,1,0,1,1]),e.RIDGE=t("ridge",-7,[1,2,1,0,0,0]),e.SHIFT=t("offset",-3,[1,1,1,0]),e.AQUIFER_BARRIER=t("aquifer_barrier",-3,[1]),e.AQUIFER_FLUID_LEVEL_FLOODEDNESS=t("aquifer_fluid_level_floodedness",-7,[1]),e.AQUIFER_FLUID_LEVEL_SPREAD=t("aquifer_fluid_level_spread",-5,[1]),e.AQUIFER_LAVA=t("aquifer_lava",-1,[1]),e.PILLAR=t("pillar",-7,[1,1]),e.PILLAR_RARENESS=t("pillar_rareness",-8,[1]),e.PILLAR_THICKNESS=t("pillar_thickness",-8,[1]),e.SPAGHETTI_2D=t("spaghetti_2d",-8,[1]),e.SPAGHETTI_2D_ELEVATION=t("spaghetti_2d_elevation",-8,[1]),e.SPAGHETTI_2D_MODULATOR=t("spaghetti_2d_modulator",-8,[1]),e.SPAGHETTI_2D_THICKNESS=t("spaghetti_2d_thickness",-8,[1]),e.SPAGHETTI_3D_1=t("spaghetti_3d_1",-8,[1]),e.SPAGHETTI_3D_2=t("spaghetti_3d_2",-8,[1]),e.SPAGHETTI_3D_RARITY=t("spaghetti_3d_rarity",-8,[1]),e.SPAGHETTI_3D_THICKNESS=t("spaghetti_3d_thickness",-8,[1]),e.SPAGHETTI_ROUGHNESS=t("spaghetti_roughness",-8,[1]),e.SPAGHETTI_ROUGHNESS_MODULATOR=t("spaghetti_roughness_modulator",-8,[1]),e.CAVE_ENTRANCE=t("cave_entrance",-7,[.4,.5,1]),e.CAVE_LAYER=t("cave_layer",-8,[1]),e.CAVE_CHEESE=t("cave_cheese",-8,[.5,1,2,1,2,1,0,2,0]),e.NOODLE=t("noodle",-8,[1]),e.NOODLE_THICKNESS=t("noodle_thickness",-8,[1]),e.NOODLE_RIDGE_A=t("noodle_ridge_a",-7,[1]),e.NOODLE_RIDGE_B=t("noodle_ridge_b",-7,[1]),e.JAGGED=t("jagged",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),e.SURFACE=t("surface",-6,[1,1,1]),e.SURFACE_SECONDARY=t("surface_secondary",-6,[1,1,0,1]);const n=new Map;e.instantiate=function(i,r){var s;const u=(s=r.key())==null?void 0:s.toString();if(!u)throw new Error("Cannot instantiate noise from direct holder");const o=i.seedKey(),c=n.get(u);if(c&&c[0]===o[0]&&c[1]===o[1])return c[2];const a=new Ho(i.fromHashOf(u),r.value());return n.set(u,[o[0],o[1],a]),a}})(_n||(_n={}));var cr,ll,zr,cl,ul,Ea,hl,My=Object.defineProperty,Ry=Object.defineProperties,Iy=Object.getOwnPropertyDescriptors,wh=Object.getOwnPropertySymbols,Oy=Object.prototype.hasOwnProperty,Ny=Object.prototype.propertyIsEnumerable,_h=(e,t,n)=>t in e?My(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ah=(e,t)=>{for(var n in t||(t={}))Oy.call(t,n)&&_h(e,n,t[n]);if(wh)for(var n of wh(t))Ny.call(t,n)&&_h(e,n,t[n]);return e};(function(e){const t=i=>ar.parser(ai.DENSITY_FUNCTION,Me.fromJson)(i).value();e.fromJson=function(i){var r;const s=(r=ie.readObject(i))!=null?r:{};return{barrier:t(s.barrier),fluidLevelFloodedness:t(s.fluid_level_floodedness),fluidLevelSpread:t(s.fluid_level_spread),lava:t(s.lava),temperature:t(s.temperature),vegetation:t(s.vegetation),continents:t(s.continents),erosion:t(s.erosion),depth:t(s.depth),ridges:t(s.ridges),initialDensityWithoutJaggedness:t(s.initial_density_without_jaggedness),finalDensity:t(s.final_density),veinToggle:t(s.vein_toggle),veinRidged:t(s.vein_ridged),veinGap:t(s.vein_gap)}},e.create=function(i){return Ah({barrier:Me.Constant.ZERO,fluidLevelFloodedness:Me.Constant.ZERO,fluidLevelSpread:Me.Constant.ZERO,lava:Me.Constant.ZERO,temperature:Me.Constant.ZERO,vegetation:Me.Constant.ZERO,continents:Me.Constant.ZERO,erosion:Me.Constant.ZERO,depth:Me.Constant.ZERO,ridges:Me.Constant.ZERO,initialDensityWithoutJaggedness:Me.Constant.ZERO,finalDensity:Me.Constant.ZERO,veinToggle:Me.Constant.ZERO,veinRidged:Me.Constant.ZERO,veinGap:Me.Constant.ZERO},i)},e.withSettings=function(i,r,s,u=!1){const o=(u?new Pt(s):Je.create(s)).forkPositional(),c=new n(o,r);return a=Ah({},c.mapAll(i)),f={aquiferPositionalRandomFactory:o.fromHashOf(Ue.create("aquifer").toString()).forkPositional(),oreVeinsPositionalRandomFactory:o.fromHashOf(Ue.create("ore").toString()).forkPositional()},Ry(a,Iy(f));var a,f};class n{constructor(r,s){this.random=r,this.settings=s,this.mapped=new Map}map(r){if(r instanceof Me.HolderHolder){const s=r.holder.key();if(s!==void 0&&this.mapped.has(s.toString()))return this.mapped.get(s.toString());{const u=r.holder.value().mapAll(this);return s!==void 0&&this.mapped.set(s.toString(),u),u}}if(r instanceof Me.Interpolated)return r.withCellSize(ut.cellWidth(this.settings),ut.cellHeight(this.settings));if(r instanceof Me.Noise)return new Me.Noise(r.xzScale,r.yScale,r.noiseData,_n.instantiate(this.random,r.noiseData));if(r instanceof Me.ShiftNoise)return r.withNewNoise(_n.instantiate(this.random,r.noiseData));if(r instanceof Me.ShiftedNoise){const s=_n.instantiate(this.random,r.noiseData);return new Me.ShiftedNoise(r.shiftX,r.shiftY,r.shiftZ,r.xzScale,r.yScale,r.noiseData,s)}return r instanceof Me.WeirdScaledSampler?new Me.WeirdScaledSampler(r.input,r.rarityValueMapper,r.noiseData,_n.instantiate(this.random,r.noiseData)):r instanceof Me.OldBlendedNoise?new Me.OldBlendedNoise(new X0(this.random.fromHashOf(Ue.create("terrain").toString()),this.settings.sampling,ut.cellWidth(this.settings),ut.cellHeight(this.settings))):r instanceof Me.Mapped||r instanceof Me.Ap2?r.withMinMax():r instanceof Me.TerrainShaperSpline?new Me.TerrainShaperSpline(r.continentalness,r.erosion,r.weirdness,r.spline,r.min,r.max,this.settings.terrainShaper):r instanceof Me.Slide?new Me.Slide(r.input,this.settings):r}mapAll(r){return{barrier:r.barrier.mapAll(this),fluidLevelFloodedness:r.fluidLevelFloodedness.mapAll(this),fluidLevelSpread:r.fluidLevelSpread.mapAll(this),lava:r.lava.mapAll(this),temperature:r.temperature.mapAll(this),vegetation:r.vegetation.mapAll(this),continents:r.continents.mapAll(this),erosion:r.erosion.mapAll(this),depth:r.depth.mapAll(this),ridges:r.ridges.mapAll(this),initialDensityWithoutJaggedness:r.initialDensityWithoutJaggedness.mapAll(this),finalDensity:r.finalDensity.mapAll(this),veinToggle:r.veinToggle.mapAll(this),veinRidged:r.veinRidged.mapAll(this),veinGap:r.veinGap.mapAll(this)}}}e.Visitor=n,e.computePreliminarySurfaceLevelScanning=function(i,r,s,u){const o=ut.minCellY(i)+ut.cellCountY(i),c=ut.minCellY(i),a=ut.cellHeight(i);for(let f=o;f>=c;f-=1){const l=f*a,h=kr(r.compute(Me.context(s,l,u)),-64,64);if(ut.applySlides(i,h,l)>=.390625)return l}return Number.MAX_SAFE_INTEGER}})(cr||(cr={}));class Py{constructor(t,n,i,r,s,u,o,c,a){this.cellCountXZ=t,this.cellCountY=n,this.cellNoiseMinY=i,this.router=r,this.minX=s,this.minZ=u,this.settings=o,this.preliminarySurfaceLevel=new Map,this.cellWidth=ut.cellWidth(o),this.cellHeight=ut.cellHeight(o),this.firstCellX=Math.floor(s/this.cellWidth),this.firstCellZ=Math.floor(u/this.cellWidth),this.firstNoiseX=s>>2,this.firstNoiseZ=u>>2,this.noiseSizeXZ=t*this.cellWidth>>2,this.aquifer=al.createDisabled(a);const f=this.router.finalDensity;this.materialRule=ll.fromList([l=>this.aquifer.compute(l,f.compute(l))]),this.initialDensityWithoutJaggedness=this.router.initialDensityWithoutJaggedness}getFinalState(t,n,i){return this.materialRule({x:t,y:n,z:i})}getPreliminarySurfaceLevel(t,n){return Uo(this.preliminarySurfaceLevel,Ut.asLong(t,n),()=>cr.computePreliminarySurfaceLevelScanning(this.settings,this.initialDensityWithoutJaggedness,t<<2,n<<2))}getAquifer(){return this.aquifer}}(ll||(ll={})).fromList=function(e){return t=>{for(const n of e){const i=n(t);if(i)return i}}},(zr||(zr={})).fromJson=function(e){var t,n,i,r;const s=(t=ie.readObject(e))!=null?t:{};return s.absolute!==void 0?(u=(n=ie.readNumber(s.absolute))!=null?n:0,()=>u):s.above_bottom!==void 0?function(o){return c=>c.minY+o}((i=ie.readNumber(s.above_bottom))!=null?i:0):s.below_top!==void 0?function(o){return c=>c.maxY-o}((r=ie.readNumber(s.below_top))!=null?r:0):()=>0;var u},(cl||(cl={})).create=function(e,t){return{minY:e,height:t,maxY:e+t-1}};class zy{constructor(t,n,i){this.rule=t,this.defaultBlock=n,this.random=Je.create(i).forkPositional(),this.surfaceNoise=_n.instantiate(this.random,_n.SURFACE),this.surfaceSecondaryNoise=_n.instantiate(this.random,_n.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(t,n,i,r){const s=Ut.minBlockX(t.pos),u=Ut.minBlockZ(t.pos),o=new Uy(this,t,n,i,r),c=this.rule(o);for(let a=0;a<16;a+=1){const f=s+a;for(let l=0;l<1;l+=1){const h=u+l;o.updateXZ(f,h);let d=0,g=Number.MIN_SAFE_INTEGER,p=Number.MAX_SAFE_INTEGER;for(let m=t.maxY;m>=t.minY;m-=1){const w=or.create(f,m,h),v=t.getBlockState(w);if(v.equals(Bt.AIR)){d=0,g=Number.MIN_SAFE_INTEGER;continue}if(v.isFluid()){g===Number.MIN_SAFE_INTEGER&&(g=m+1);continue}if(p>=m){p=Number.MIN_SAFE_INTEGER;for(let E=m-1;E>=t.minY;E-=1){const b=t.getBlockState(or.create(f,E,h));if(b.equals(Bt.AIR)||b.isFluid()){p=E+1;break}}}d+=1;const A=m-p+1;if(!v.equals(this.defaultBlock))continue;o.updateY(d,A,g,m);const _=c(f,m,h);_&&t.setBlockState(w,_)}}}}getSurfaceDepth(t,n){return 2.75*this.surfaceNoise.sample(t,0,n)+3+.25*this.random.at(t,0,n).nextDouble()}getSurfaceSecondary(t,n){return this.surfaceSecondaryNoise.sample(t,0,n)}getRandom(t){return Uo(this.positionalRandoms,t,()=>this.random.fromHashOf(t))}}class Uy{constructor(t,n,i,r,s){this.system=t,this.chunk=n,this.noiseChunk=i,this.context=r,this.getBiome=s,this.blockX=0,this.blockY=0,this.blockZ=0,this.stoneDepthAbove=0,this.stoneDepthBelow=0,this.surfaceDepth=0,this.waterHeight=0,this.biome=()=>"",this.surfaceSecondary=()=>0,this.minSurfaceLevel=()=>0}updateXZ(t,n){this.blockX=t,this.blockZ=n,this.surfaceDepth=this.system.getSurfaceDepth(t,n),this.surfaceSecondary=Aa(()=>this.system.getSurfaceSecondary(t,n)),this.minSurfaceLevel=Aa(()=>this.calculateMinSurfaceLevel(t,n))}updateY(t,n,i,r){this.blockY=r,this.stoneDepthAbove=t,this.stoneDepthBelow=n,this.waterHeight=i,this.biome=Aa(()=>this.getBiome(or.create(this.blockX,this.blockY,this.blockZ)))}calculateMinSurfaceLevel(t,n){const i=t>>4,r=n>>4,s=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,r<<4),u=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,r<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,r+1<<4),c=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,r+1<<4);return Math.floor(rl((15&t)/16,(15&n)/16,s,u,o,c))+this.surfaceDepth-8}}(function(e){function t(r){return()=>()=>r}function n(r){return s=>{const u=r.map(o=>o(s));return(o,c,a)=>{for(const f of u){const l=f(o,c,a);if(l)return l}}}}function i(r,s){return u=>(o,c,a)=>{if(r(u))return s(u)(o,c,a)}}e.NOOP=()=>()=>{},e.fromJson=function(r){var s,u,o;const c=(s=ie.readObject(r))!=null?s:{};switch((u=ie.readString(c.type))==null?void 0:u.replace(/^minecraft:/,"")){case"block":return t(Bt.fromJson(c.result_state));case"sequence":return n((o=ie.readArray(c.sequence,e.fromJson))!=null?o:[]);case"condition":return i(Ea.fromJson(c.if_true),e.fromJson(c.then_run))}return e.NOOP},e.block=t,e.sequence=n,e.condition=i})(ul||(ul={})),function(e){function t(){return c=>c.blockY>=c.minSurfaceLevel()}function n(c){const a=new Set(c);return f=>a.has(f.biome())}function i(c){return a=>!c(a)}function r(c,a,f,l){return h=>{const d=l?h.stoneDepthBelow:h.stoneDepthAbove,g=a?h.surfaceDepth:0,p=f===0?0:hh(h.surfaceSecondary(),-1,1,0,f);return d<=1+c+g+p}}function s(c,a,f){return l=>{const h=a(l.context),d=f(l.context);if(l.blockY<=h)return!0;if(l.blockY>=d)return!1;const g=l.system.getRandom(c),p=hh(l.blockY,h,d,1,0);return g.nextFloat()<p}}function u(c,a,f){return l=>{if(l.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const h=f?l.stoneDepthAbove:0;return l.blockY+h>=l.waterHeight+c+l.surfaceDepth*a}}function o(c,a,f){return l=>{const h=f?l.stoneDepthAbove:0;return l.blockY+h>=c(l.context)+l.surfaceDepth*a}}e.FALSE=()=>!1,e.TRUE=()=>!0,e.fromJson=function(c){var a,f,l,h,d,g,p,m,w,v,A,_;const E=(a=ie.readObject(c))!=null?a:{};switch((f=ie.readString(E.type))==null?void 0:f.replace(/^minecraft:/,"")){case"above_preliminary_surface":return b=>b.blockY>=b.minSurfaceLevel();case"biome":return n((l=ie.readArray(E.biome_is,b=>{var x;return(x=ie.readString(b))!=null?x:""}))!=null?l:[]);case"not":return i(e.fromJson(E.invert));case"stone_depth":return r((h=ie.readInt(E.offset))!=null?h:0,(d=ie.readBoolean(E.add_surface_depth))!=null&&d,(g=ie.readInt(E.secondary_depth_range))!=null?g:0,ie.readString(E.surface_type)==="ceiling");case"vertical_gradient":return s((p=ie.readString(E.random_name))!=null?p:"",zr.fromJson(E.true_at_and_below),zr.fromJson(E.false_at_and_above));case"water":return u((m=ie.readInt(E.offset))!=null?m:0,(w=ie.readInt(E.surface_depth_multiplier))!=null?w:0,(v=ie.readBoolean(E.add_surface_depth))!=null&&v);case"y_above":return o(zr.fromJson(E.anchor),(A=ie.readInt(E.surface_depth_multiplier))!=null?A:0,(_=ie.readBoolean(E.add_surface_depth))!=null&&_)}return e.FALSE},e.abovePreliminarySurface=t,e.biome=n,e.not=i,e.stoneDepth=r,e.verticalGradient=s,e.water=u,e.yAbove=o}(Ea||(Ea={}));class Hy{constructor(t,n,i){this.biomeSource=n,this.settings=i,this.router=cr.withSettings(i.noiseRouter,i.noise,t,i.legacyRandomSource),this.noiseChunkCache=new Map,this.surfaceSystem=new zy(i.surfaceRule,i.defaultBlock,t);const r=new mh(-54,Bt.LAVA),s=new mh(i.seaLevel,i.defaultFluid);this.globalFluidPicker=(u,o,c)=>o<Math.min(-54,i.seaLevel)?r:s}fill(t,n=!1){var i;const r=Math.max(t.minY,this.settings.noise.minY),s=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),u=ut.cellWidth(this.settings.noise),o=ut.cellHeight(this.settings.noise),c=Math.floor(16/u),a=Math.floor(r/o),f=Math.floor((s-r)/o),l=Ut.minBlockX(t.pos),h=Ut.minBlockZ(t.pos),d=this.getNoiseChunk(t);for(let g=0;g<c;g+=1)for(let p=0;p<(n?1:c);p+=1){let m=t.getOrCreateSection(t.sectionsCount-1);for(let w=f-1;w>=0;w-=1)for(let v=o-1;v>=0;v-=1){const A=(a+w)*o+v,_=15&A,E=t.getSectionIndex(A);t.getSectionIndex(m.minBlockY)!==E&&(m=t.getOrCreateSection(E));for(let b=0;b<u;b+=1){const x=l+g*u+b,y=15&x;for(let C=0;C<(n?1:u);C+=1){const B=h+p*u+C,T=15&B,M=(i=d.getFinalState(x,A,B))!=null?i:this.settings.defaultBlock;m.setBlockState(y,_,T,M)}}}}}buildSurface(t,n="minecraft:plains"){const i=this.getNoiseChunk(t),r=cl.create(this.settings.noise.minY,this.settings.noise.height);this.surfaceSystem.buildSurface(t,i,r,()=>n)}getNoiseChunk(t){return Uo(this.noiseChunkCache,Ut.toLong(t.pos),()=>{const n=Math.max(t.minY,this.settings.noise.minY),i=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),r=ut.cellWidth(this.settings.noise),s=ut.cellHeight(this.settings.noise),u=Math.floor(16/r),o=Math.floor(n/s),c=Math.floor((i-n)/s),a=Ut.minBlockX(t.pos),f=Ut.minBlockZ(t.pos);return new Py(u,c,o,this.router,a,f,this.settings.noise,this.settings.aquifersEnabled,this.globalFluidPicker)})}}(hl||(hl={})).fromJson=function(e){var t,n,i,r,s,u;const o=(t=ie.readObject(e))!=null?t:{};return{surfaceRule:ul.fromJson(o.surface_rule),noise:ut.fromJson(o.noise),defaultBlock:Bt.fromJson(o.default_block),defaultFluid:Bt.fromJson(o.default_fluid),noiseRouter:cr.fromJson(o.noise_router),seaLevel:(n=ie.readInt(o.sea_level))!=null?n:0,disableMobGeneration:(i=ie.readBoolean(o.disable_mob_generation))!=null&&i,aquifersEnabled:(r=ie.readBoolean(o.aquifers_enabled))!=null&&r,oreVeinsEnabled:(s=ie.readBoolean(o.ore_veins_enabled))!=null&&s,legacyRandomSource:(u=ie.readBoolean(o.legacy_random_source))!=null&&u}};let Be,J0=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});J0.decode();let Ms=null;function jy(){return(Ms===null||Ms.buffer!==Be.memory.buffer)&&(Ms=new Uint8Array(Be.memory.buffer)),Ms}function Wy(e,t){return J0.decode(jy().subarray(e,e+t))}const fl=new Uint32Array(2),Vy=new BigInt64Array(fl.buffer);let Rs=null;function rs(){return(Rs===null||Rs.buffer!==Be.memory.buffer)&&(Rs=new Int32Array(Be.memory.buffer)),Rs}let Is=null;function Y0(){return(Is===null||Is.buffer!==Be.memory.buffer)&&(Is=new Float64Array(Be.memory.buffer)),Is}function Gy(e,t){return Y0().subarray(e/8,e/8+t)}let st=0;function pt(e,t){const n=t(e.length*8);return Y0().set(e,n/8),st=e.length,n}let Os=null;function Ky(){return(Os===null||Os.buffer!==Be.memory.buffer)&&(Os=new Uint32Array(Be.memory.buffer)),Os}function Xy(e,t){const n=t(e.length*4);return Ky().set(e,n/4),st=e.length,n}function Jy(e,t,n,i,r,s,u,o,c,a,f,l,h,d){var g=pt(e,Be.__wbindgen_malloc),p=st,m=pt(t,Be.__wbindgen_malloc),w=st,v=pt(n,Be.__wbindgen_malloc),A=st,_=pt(i,Be.__wbindgen_malloc),E=st,b=pt(r,Be.__wbindgen_malloc),x=st,y=pt(s,Be.__wbindgen_malloc),C=st,B=pt(u,Be.__wbindgen_malloc),T=st,M=pt(o,Be.__wbindgen_malloc),R=st,I=pt(c,Be.__wbindgen_malloc),H=st,P=pt(a,Be.__wbindgen_malloc),j=st,V=pt(f,Be.__wbindgen_malloc),K=st,N=pt(l,Be.__wbindgen_malloc),k=st,$=pt(h,Be.__wbindgen_malloc),z=st,U=Xy(d,Be.__wbindgen_malloc),G=st,Q=Be.biome_parameters(g,p,m,w,v,A,_,E,b,x,y,C,B,T,M,R,I,H,P,j,V,K,N,k,$,z,U,G);return jo.__wrap(Q)}function Yy(e,t,n,i,r,s,u,o,c,a,f,l,h){Vy[0]=e;const d=fl[0],g=fl[1];var p=pt(n,Be.__wbindgen_malloc),m=st,w=pt(r,Be.__wbindgen_malloc),v=st,A=pt(u,Be.__wbindgen_malloc),_=st,E=pt(c,Be.__wbindgen_malloc),b=st,x=pt(f,Be.__wbindgen_malloc),y=st,C=pt(h,Be.__wbindgen_malloc),B=st,T=Be.climate_sampler(d,g,t,p,m,i,w,v,s,A,_,o,E,b,a,x,y,l,C,B);return Cs.__wrap(T)}function dl(e,t){if(!(e instanceof t))throw new Error(`expected instance of ${t.name}`);return e.ptr}function Zy(e,t){return rs().subarray(e/4,e/4+t)}function yh(e,t,n,i,r,s,u,o,c,a,f){try{const g=Be.__wbindgen_add_to_stack_pointer(-16);dl(e,jo),dl(t,Cs),Be.multi_noise(g,e.ptr,t.ptr,n,i,r,s,u,o,c,a,f);var l=rs()[g/4+0],h=rs()[g/4+1],d=Zy(l,h).slice();return Be.__wbindgen_free(l,h*4),d}finally{Be.__wbindgen_add_to_stack_pointer(16)}}function Eh(e,t,n,i,r,s,u,o,c,a){try{const d=Be.__wbindgen_add_to_stack_pointer(-16);dl(e,Cs),Be.climate_noise(d,e.ptr,t,n,i,r,s,u,o,c,a);var f=rs()[d/4+0],l=rs()[d/4+1],h=Gy(f,l).slice();return Be.__wbindgen_free(f,l*8),h}finally{Be.__wbindgen_add_to_stack_pointer(16)}}class jo{static __wrap(t){const n=Object.create(jo.prototype);return n.ptr=t,n}__destroy_into_raw(){const t=this.ptr;return this.ptr=0,t}free(){const t=this.__destroy_into_raw();Be.__wbg_parameterlist_free(t)}}class Cs{static __wrap(t){const n=Object.create(Cs.prototype);return n.ptr=t,n}__destroy_into_raw(){const t=this.ptr;return this.ptr=0,t}free(){const t=this.__destroy_into_raw();Be.__wbg_sampler_free(t)}}async function qy(e,t){if(typeof Response=="function"&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(e,t)}catch(i){if(e.headers.get("Content-Type")!="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",i);else throw i}const n=await e.arrayBuffer();return await WebAssembly.instantiate(n,t)}else{const n=await WebAssembly.instantiate(e,t);return n instanceof WebAssembly.Instance?{instance:n,module:e}:n}}async function Z0(e){typeof e=="undefined"&&(e=new URL("/assets/deepslate_rs_bg.4990c219.wasm",self.location));const t={};t.wbg={},t.wbg.__wbindgen_throw=function(r,s){throw new Error(Wy(r,s))},(typeof e=="string"||typeof Request=="function"&&e instanceof Request||typeof URL=="function"&&e instanceof URL)&&(e=fetch(e));const{instance:n,module:i}=await qy(await e,t);return Be=n.exports,Z0.__wbindgen_wasm_module=i,Be}var bh="/assets/deepslate_rs_bg.4990c219.wasm";let xh=!1;async function Qy(){xh||(await Z0(bh),xh=!0,console.debug(`Loaded deepslate-rs from "${bh}"`))}const e2={temperature:[-1,1],humidity:[-1,1],continentalness:[-1.1,1],erosion:[-1,1],weirdness:[-1,1],offset:[-1,1],factor:[0,12],jaggedness:[0,1]};let Ch,Fh;async function t2(e,t,n){var g,p,m;const{biomeSource:i}=await q0(e,n),r=t.data,s=-Math.round(n.offset[0])-100+n.res/2,u=-Math.round(n.offset[1])-100+n.res/2,o=t.width*4/n.res,c=4/n.res,a=[s*n.scale,(200+s)*n.scale,n.res*n.scale],f=[u*n.scale,(200+u)*n.scale,n.res*n.scale],l=n.layers.has("biomes")?(g=i.getBiomes)==null?void 0:g.call(i,...a,64,65,1,...f):void 0,h=[...n.layers].filter(w=>w!=="biomes"),d=h.length===0||(p=i.getClimates)==null?void 0:p.call(i,...a,64,65,1,...f);for(let w=0;w<200;w+=n.res)for(let v=0;v<200;v+=n.res){const A=v*o+w*c,_=w/n.res*200/n.res+v/n.res,E=(w+s)*n.scale,b=(v+u)*n.scale;let x=[50,50,50];if(n.layers.has("biomes")){const y=(m=l==null?void 0:l[_])!=null?m:i.getBiome(E,64,b);x=r2(y.toString(),n.biomeColors)}else if(d&&h[0]){const y=d[_][h[0]],[C,B]=e2[h[0]],T=(y-C)/(B-C)*256;x=[T,T,T]}r[A]=x[0],r[A+1]=x[1],r[A+2]=x[2],r[A+3]=255}}async function n2(e,t,n,i){var o;const{biomeSource:r}=await q0(e,i),[s,u]=s2([t,n],i);return Ce({biome:r.getBiome(s,64,u).toString()},(o=r.getClimate)==null?void 0:o.call(r,s,64,u))}async function q0(e,t){const n=[e,t.octaves,`${t.seed}`,t.version];return yi(n,Ch)||(Ch=$o(n),Fh=await i2(e,t)),{biomeSource:Fh}}async function i2(e,t){var n,i,r,s,u;switch((n=e==null?void 0:e.type)==null?void 0:n.replace(/^minecraft:/,"")){case"fixed":return new is(Ue.parse(e.biome));case"checkerboard":const o=((i=e.scale)!=null?i:2)+2,c=(s=(r=e.biomes)==null?void 0:r.length)!=null?s:0;return{getBiome(a,f,l){var d;const h=(((a>>o)+(l>>o))%c+c)%c;return Ue.parse((d=e.biomes)==null?void 0:d[h].node)}};case"multi_noise":switch((u=e.preset)==null?void 0:u.replace(/^minecraft:/,"")){case"nether":e=Mt(t.version,"1.18")?l2:a2;break;case"overworld":e=Mt(t.version,"1.18")?await c2():e;break}if(e=ae.DataModel.unwrapLists(e),Mt(t.version,"1.18")){await Qy();const a=new gw,f=T=>typeof T=="number"?[T,T]:T,[l,h,d,g,p,m,w,v,A,_,E,b,x,y]=[[],[],[],[],[],[],[],[],[],[],[],[],[],[]];for(const T of e.biomes){const{temperature:M,humidity:R,continentalness:I,erosion:H,weirdness:P,depth:j,offset:V}=T.parameters;l.push(f(M)[0]),h.push(f(M)[1]),d.push(f(R)[0]),g.push(f(R)[1]),p.push(f(I)[0]),m.push(f(I)[1]),w.push(f(H)[0]),v.push(f(H)[1]),A.push(f(P)[0]),_.push(f(P)[1]),E.push(f(j)[0]),b.push(f(j)[1]),x.push(V),y.push(a.getOrPut(T.biome,Math.floor(Math.random()*2147483647)))}const C=Jy(new Float64Array(l),new Float64Array(h),new Float64Array(d),new Float64Array(g),new Float64Array(p),new Float64Array(m),new Float64Array(w),new Float64Array(v),new Float64Array(A),new Float64Array(_),new Float64Array(E),new Float64Array(b),new Float64Array(x),new Int32Array(y)),B=Yy(t.seed,t.octaves.temperature.firstOctave,new Float64Array(t.octaves.temperature.amplitudes),t.octaves.humidity.firstOctave,new Float64Array(t.octaves.humidity.amplitudes),t.octaves.continentalness.firstOctave,new Float64Array(t.octaves.continentalness.amplitudes),t.octaves.erosion.firstOctave,new Float64Array(t.octaves.erosion.amplitudes),t.octaves.weirdness.firstOctave,new Float64Array(t.octaves.weirdness.amplitudes),t.octaves.shift.firstOctave,new Float64Array(t.octaves.shift.amplitudes));return{getBiome(T,M,R){var H;const I=yh(C,B,T,T+1,1,M,M+1,1,R,R+1,1);return Ue.parse((H=a.getA(I[0]))!=null?H:"unknown")},getBiomes(T,M,R,I,H,P,j,V,K){return[...yh(C,B,T,M,R,I,H,P,j,V,K)].map(k=>{var $;return Ue.parse(($=a.getA(k))!=null?$:"unknown")})},getClimate(T,M,R){const I=Eh(B,T,T+1,1,M,M+1,1,R,R+1,1),[H,P,j,V,K]=I.slice(0,5);return{temperature:H,humidity:P,continentalness:j,erosion:V,weirdness:K}},getClimates(T,M,R,I,H,P,j,V,K){const N=Eh(B,T,M,R,I,H,P,j,V,K),k=[];for(let $=0;$<N.length;$+=7){const[z,U,G,Q,X]=N.slice($,$+5);k.push({temperature:z,humidity:U,continentalness:G,erosion:Q,weirdness:X})}return k}}}else{const a=["altitude","temperature","humidity","weirdness"].map((f,l)=>{var d;const h=e[`${f}_noise`];return h.firstOctave=Nt((d=h.firstOctave)!=null?d:-7,-100,-1),new Ho(new Pt(t.seed+BigInt(l)),h)});return!Array.isArray(e.biomes)||e.biomes.length===0?new is(Ue.create("unknown")):{getBiome(f,l,h){const d=a.map(m=>m.sample(f,h,0));let g=1/0,p="";for(const{biome:m,parameters:w}of e.biomes){const v=yr(w.altitude-d[0])+yr(w.temperature-d[1])+yr(w.humidity-d[2])+yr(w.weirdness-d[3])+yr(w.offset);v<g&&(g=v,p=m)}return Ue.parse(p)}}}}throw new Error("Unknown biome source")}function r2(e,t){var i;if(!e)return[128,128,128];const n=(i=t[e])!=null?i:o2[e];return n===void 0?jd(e):n}function s2([e,t],n){const i=(e-n.offset[0]-100+n.res/2)*n.scale,r=(t-n.offset[1]-100+n.res/2)*n.scale;return[i,r]}const o2={"minecraft:badlands":[217,69,21],"minecraft:badlands_plateau":[202,140,101],"minecraft:bamboo_jungle":[118,142,20],"minecraft:bamboo_jungle_hills":[59,71,10],"minecraft:basalt_deltas":[64,54,54],"minecraft:beach":[250,222,85],"minecraft:birch_forest":[48,116,68],"minecraft:birch_forest_hills":[31,95,50],"minecraft:cold_ocean":[32,32,112],"minecraft:crimson_forest":[221,8,8],"minecraft:dark_forest":[64,81,26],"minecraft:dark_forest_hills":[104,121,66],"minecraft:deep_cold_ocean":[32,32,56],"minecraft:deep_frozen_ocean":[64,64,144],"minecraft:deep_lukewarm_ocean":[0,0,64],"minecraft:deep_ocean":[0,0,48],"minecraft:deep_warm_ocean":[0,0,80],"minecraft:desert":[250,148,24],"minecraft:desert_hills":[210,95,18],"minecraft:desert_lakes":[255,188,64],"minecraft:end_barrens":[128,128,255],"minecraft:end_highlands":[128,128,255],"minecraft:end_midlands":[128,128,255],"minecraft:eroded_badlands":[255,109,61],"minecraft:flower_forest":[45,142,73],"minecraft:forest":[5,102,33],"minecraft:frozen_ocean":[112,112,214],"minecraft:frozen_river":[160,160,255],"minecraft:giant_spruce_taiga":[129,142,121],"minecraft:old_growth_spruce_taiga":[129,142,121],"minecraft:giant_spruce_taiga_hills":[109,119,102],"minecraft:giant_tree_taiga":[89,102,81],"minecraft:old_growth_pine_taiga":[89,102,81],"minecraft:giant_tree_taiga_hills":[69,79,62],"minecraft:gravelly_hills":[136,136,136],"minecraft:gravelly_mountains":[136,136,136],"minecraft:windswept_gravelly_hills":[136,136,136],"minecraft:ice_spikes":[180,220,220],"minecraft:jungle":[83,123,9],"minecraft:jungle_edge":[98,139,23],"minecraft:sparse_jungle":[98,139,23],"minecraft:jungle_hills":[44,66,5],"minecraft:lukewarm_ocean":[0,0,144],"minecraft:modified_badlands_plateau":[242,180,141],"minecraft:modified_gravelly_mountains":[120,152,120],"minecraft:modified_jungle":[123,163,49],"minecraft:modified_jungle_edge":[138,179,63],"minecraft:modified_wooded_badlands_plateau":[216,191,141],"minecraft:mountain_edge":[114,120,154],"minecraft:extreme_hills":[96,96,96],"minecraft:mountains":[96,96,96],"minecraft:windswept_hills":[96,96,96],"minecraft:mushroom_field_shore":[160,0,255],"minecraft:mushroom_fields":[255,0,255],"minecraft:nether_wastes":[191,59,59],"minecraft:ocean":[0,0,112],"minecraft:plains":[141,179,96],"minecraft:river":[0,0,255],"minecraft:savanna":[189,178,95],"minecraft:savanna_plateau":[167,157,100],"minecraft:shattered_savanna":[229,218,135],"minecraft:windswept_savanna":[229,218,135],"minecraft:shattered_savanna_plateau":[207,197,140],"minecraft:small_end_islands":[128,128,255],"minecraft:snowy_beach":[250,240,192],"minecraft:snowy_mountains":[160,160,160],"minecraft:snowy_taiga":[49,85,74],"minecraft:snowy_taiga_hills":[36,63,54],"minecraft:snowy_taiga_mountains":[89,125,114],"minecraft:snowy_tundra":[255,255,255],"minecraft:snowy_plains":[255,255,255],"minecraft:soul_sand_valley":[94,56,48],"minecraft:stone_shore":[162,162,132],"minecraft:stony_shore":[162,162,132],"minecraft:sunflower_plains":[181,219,136],"minecraft:swamp":[7,249,178],"minecraft:swamp_hills":[47,255,218],"minecraft:taiga":[11,102,89],"minecraft:taiga_hills":[22,57,51],"minecraft:taiga_mountains":[51,142,129],"minecraft:tall_birch_forest":[88,156,108],"minecraft:old_growth_birch_forest":[88,156,108],"minecraft:tall_birch_hills":[71,135,90],"minecraft:the_end":[128,128,255],"minecraft:the_void":[0,0,0],"minecraft:warm_ocean":[0,0,172],"minecraft:warped_forest":[73,144,123],"minecraft:wooded_badlands_plateau":[176,151,101],"minecraft:wooded_badlands":[176,151,101],"minecraft:wooded_hills":[34,85,28],"minecraft:wooded_mountains":[80,112,80],"minecraft:windswept_forest":[80,112,80],"minecraft:snowy_slopes":[140,195,222],"minecraft:lofty_peaks":[196,168,193],"minecraft:jagged_peaks":[196,168,193],"minecraft:snowcapped_peaks":[200,198,200],"minecraft:frozen_peaks":[200,198,200],"minecraft:stony_peaks":[82,92,103],"minecraft:grove":[150,150,189],"minecraft:meadow":[169,197,80],"minecraft:lush_caves":[112,255,79],"minecraft:dripstone_caves":[140,124,0]},a2={type:"minecraft:multi_noise",seed:0,altitude_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},humidity_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{biome:"minecraft:nether_wastes",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}},{biome:"minecraft:soul_sand_valley",parameters:{altitude:0,temperature:0,humidity:-.5,weirdness:0,offset:0}},{biome:"minecraft:crimson_forest",parameters:{altitude:0,temperature:.4,humidity:0,weirdness:0,offset:0}},{biome:"minecraft:warped_forest",parameters:{altitude:0,temperature:0,humidity:.5,weirdness:0,offset:.375}},{biome:"minecraft:basalt_deltas",parameters:{altitude:0,temperature:-.5,humidity:0,weirdness:0,offset:.175}}]},l2={type:"minecraft:multi_noise",biomes:[{biome:"minecraft:nether_wastes",parameters:{temperature:0,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:"minecraft:soul_sand_valley",parameters:{temperature:0,humidity:-.5,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:"minecraft:crimson_forest",parameters:{temperature:.4,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:"minecraft:warped_forest",parameters:{temperature:0,humidity:.5,continentalness:0,erosion:0,depth:0,weirdness:0,offset:.375}},{biome:"minecraft:basalt_deltas",parameters:{temperature:-.5,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:.175}}]};async function c2(){return(await Kd("1.18","dimension","overworld")).generator.biome_source}const hi=[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],Sh=[[255,77,54],[59,118,255],[91,207,25],[217,32,245],[255,209,41],[52,204,209]];function u2(e,t,n){const i=new Pt(n.seed),r={placements:[],features:[],random:i,biomeInfoNoise:new qe(i.fork(),0,[1]),seaLevel:63,version:n.version,nextFloat:()=>i.nextFloat(),nextInt:u=>i.nextInt(u),nextGaussian:()=>Math.sqrt(-2*Math.log(1-i.nextFloat()))*Math.cos(2*Math.PI*i.nextFloat()),sampleInt(u){return h2(u,this)}};for(let u=0;u<n.size[0]/16;u+=1)for(let o=0;o<n.size[2]/16;o+=1)Mt(n.version,void 0,"1.17")?Hi([u*16,0,o*16],ae.DataModel.unwrapLists(e),r):g2([u*16,0,o*16],ae.DataModel.unwrapLists(e.placement),r);const s=t.data;t.data.fill(255);for(const[u,o]of r.placements){if(u[0]<0||u[1]<0||u[2]<0||u[0]>=n.size[0]||u[1]>=n.size[1]||u[2]>=n.size[2])continue;const c=u[2]*(t.width*4)+u[0]*4,a=o<Sh.length?Sh[o]:jd(r.features[o]);s[c]=Nt(50,205,a[0]),s[c+1]=Nt(50,205,a[1]),s[c+2]=Nt(50,205,a[2]),s[c+3]=255}for(let u=0;u<n.size[0];u+=1)for(let o=0;o<n.size[2];o+=1){if((Math.floor(u/16)+Math.floor(o/16))%2===0)continue;const c=o*(t.width*4)+u*4;for(let a=0;a<3;a+=1)s[c+a]=.85*s[c+a]}}function ur(e){return e.startsWith("minecraft:")?e.slice(10):e}function Wt(e,t){return[[e[0],t,e[2]]]}function h2(e,t){var n,i;if(typeof e=="number")return e;if(e.base)return(i=e.base)!=null?i:1+t.nextInt(1+((n=e.spread)!=null?n:0));switch(ur(e.type)){case"constant":return e.value;case"uniform":return e.value.min_inclusive+t.nextInt(e.value.max_inclusive-e.value.min_inclusive+1);case"biased_to_bottom":return e.value.min_inclusive+t.nextInt(t.nextInt(e.value.max_inclusive-e.value.min_inclusive+1)+1);case"clamped":return Nt(t.sampleInt(e.value.source),e.value.min_inclusive,e.value.max_inclusive);case"clamped_normal":const r=e.value.mean+t.nextGaussian()*e.value.deviation;return Math.floor(Nt(e.value.min_inclusive,e.value.max_inclusive,r));case"weighted_list":const s=e.distribution.reduce((o,c)=>o+c.weight,0);let u=t.nextInt(s);for(const o of e.distribution)if(u-=o.weight,u<0)return t.sampleInt(o.data);return 0}return 1}function un(e,t){if(!Di(e))throw new Error("Invalid vertical anchor");if(e.absolute)return e.absolute;if(e.above_bottom)return e.above_bottom;if(e.below_top)return 256-e.below_top;throw new Error("Invalid vertical anchor")}function f2(e,t){var n,i,r,s;if(!Di(e))throw new Error("Invalid height provider");if(typeof e.type!="string")return un(e);switch(ur(e.type)){case"constant":return un(e.value);case"uniform":{const u=un(e.min_inclusive),o=un(e.max_inclusive);return u+t.nextInt(o-u+1)}case"biased_to_bottom":{const u=un(e.min_inclusive),o=un(e.max_inclusive),c=t.nextInt(o-u-((n=e.inner)!=null?n:1)+1);return u+t.nextInt(c+((i=e.inner)!=null?i:1))}case"very_biased_to_bottom":{const u=un(e.min_inclusive),o=un(e.max_inclusive),c=(r=e.inner)!=null?r:1,a=u+c+t.nextInt(o-u-c+1),f=u+t.nextInt(a-u);return u+t.nextInt(f-u+c)}case"trapezoid":{const u=un(e.min_inclusive),o=un(e.max_inclusive),c=(s=e.plateau)!=null?s:0;if(c>=o-u)return u+t.nextInt(o-u+1);const a=(o-u-c)/2,f=o-u-a;return u+t.nextInt(f+1)+t.nextInt(a+1)}default:throw new Error(`Invalid height provider ${e.type}`)}}function Dh(e,t){const n=t.features.indexOf(e);return n!=-1?n:(t.features.push(e),t.features.length-1)}function Hi(e,t,n){var s;if(typeof t=="string"){n.placements.push([e,Dh(t,n)]);return}const i=ur((s=t==null?void 0:t.type)!=null?s:"no_op"),r=d2[i];r?r(t.config,e,n):n.placements.push([e,Dh(JSON.stringify(t),n)])}function pl(e,t,n){var s;const i=ur((s=t==null?void 0:t.type)!=null?s:"nope"),r=p2[i];return r?r(t==null?void 0:t.config,e,n):[e]}const d2={decorated:(e,t,n)=>{pl(t,e==null?void 0:e.decorator,n).forEach(r=>Hi(r,e==null?void 0:e.feature,n))},random_boolean_selector:(e,t,n)=>{const i=n.nextFloat()<.5?e==null?void 0:e.feature_true:e==null?void 0:e.feature_false;Hi(t,i,n)},random_selector:(e,t,n)=>{var i,r;for(const s of(i=e==null?void 0:e.features)!=null?i:[])if(n.nextFloat()<((r=s==null?void 0:s.chance)!=null?r:0)){Hi(t,s.feature,n);return}Hi(t,e==null?void 0:e.default,n)},simple_random_selector:(e,t,n)=>{var r,s,u;const i=(u=e==null?void 0:e.features)==null?void 0:u[n.nextInt((s=(r=e==null?void 0:e.features)==null?void 0:r.length)!=null?s:0)];Hi(t,i,n)}},p2={chance:(e,t,n)=>{var i;return n.nextFloat()<1/((i=e==null?void 0:e.chance)!=null?i:1)?[t]:[]},count:(e,t,n)=>{var i;return new Array(n.sampleInt((i=e==null?void 0:e.count)!=null?i:1)).fill(t)},count_extra:(e,t,n)=>{var r,s;let i=(r=e==null?void 0:e.count)!=null?r:1;return n.nextFloat()<e.extra_chance&&(i+=(s=e.extra_count)!=null?s:0),new Array(i).fill(t)},count_multilayer:(e,t,n)=>{var i;return new Array(n.sampleInt((i=e==null?void 0:e.count)!=null?i:1)).fill(t).map(r=>[r[0]+n.nextInt(16),r[1],r[2]+n.nextInt(16)])},count_noise:(e,t,n)=>{const r=n.biomeInfoNoise.sample(t[0]/200,0,t[2]/200)<e.noise_level?e.below_noise:e.above_noise;return new Array(r).fill(t)},count_noise_biased:(e,t,n)=>{var u;const i=Math.max(1,e.noise_factor),r=n.biomeInfoNoise.sample(t[0]/i,0,t[2]/i),s=Math.max(0,Math.ceil((r+((u=e.noise_offset)!=null?u:0))*e.noise_to_count_ratio));return new Array(s).fill(t)},dark_oak_tree:(e,t,n)=>[...new Array(16)].map((i,r)=>{const s=Math.floor(r/4)*4+1+n.nextInt(3)+t[0],u=Math.max(n.seaLevel,hi[Nt(0,63,s)]),o=Math.floor(r%4)*4+1+n.nextInt(3)+t[2];return[s,u,o]}),decorated:(e,t,n)=>pl(t,e==null?void 0:e.outer,n).flatMap(i=>pl(i,e==null?void 0:e.inner,n)),depth_average:(e,t,n)=>{var r,s,u,o;const i=n.nextInt((r=e==null?void 0:e.spread)!=null?r:0)+n.nextInt((s=e==null?void 0:e.spread)!=null?s:0)-((u=e.spread)!=null?u:0)+((o=e==null?void 0:e.baseline)!=null?o:0);return Wt(t,i)},emerald_ore:(e,t,n)=>{const i=3+n.nextInt(6);return[...new Array(i)].map(()=>[t[0]+n.nextInt(16),4+n.nextInt(28),t[2]+n.nextInt(16)])},fire:(e,t,n)=>{const i=1+n.nextInt(n.nextInt(n.sampleInt(e==null?void 0:e.count)));return[...new Array(i)].map(()=>[t[0]+n.nextInt(16),n.nextInt(128),t[2]+n.nextInt(16)])},glowstone:(e,t,n)=>{const i=n.nextInt(1+n.nextInt(n.sampleInt(e==null?void 0:e.count)));return[...new Array(i)].map(()=>[t[0]+n.nextInt(16),n.nextInt(128),t[2]+n.nextInt(16)])},heightmap:(e,t,n)=>{const i=Math.max(n.seaLevel,hi[Nt(0,63,t[0])]);return Wt(t,i)},heightmap_spread_double:(e,t,n)=>{const i=Math.max(n.seaLevel,hi[Nt(0,63,t[0])]);return Wt(t,n.nextInt(i*2))},heightmap_world_surface:(e,t,n)=>{const i=Math.max(n.seaLevel,hi[Nt(0,63,t[0])]);return Wt(t,i)},iceberg:(e,t,n)=>[[t[0]+4+n.nextInt(8),t[1],t[2]+4+n.nextInt(8)]],lava_lake:(e,t,n)=>{var i,r;if(n.nextInt(((i=e.chance)!=null?i:1)/10)===0){const s=n.nextInt(n.nextInt(248)+8);if(s<n.seaLevel||n.nextInt(((r=e==null?void 0:e.chance)!=null?r:1)/8)==0){const u=n.nextInt(16)+t[0],o=n.nextInt(16)+t[2];return[[u,s,o]]}}return[]},nope:(e,t)=>[t],range:(e,t,n)=>{var r,s,u;const i=n.nextInt(((r=e==null?void 0:e.maximum)!=null?r:1)-((s=e==null?void 0:e.top_offset)!=null?s:0))+((u=e==null?void 0:e.bottom_offset)!=null?u:0);return Wt(t,i)},range_biased:(e,t,n)=>{var r,s,u;const i=n.nextInt(n.nextInt(((r=e==null?void 0:e.maximum)!=null?r:1)-((s=e==null?void 0:e.top_offset)!=null?s:0))+((u=e==null?void 0:e.bottom_offset)!=null?u:0));return Wt(t,i)},range_very_biased:(e,t,n)=>{var r,s,u,o;const i=n.nextInt(n.nextInt(n.nextInt(((r=e==null?void 0:e.maximum)!=null?r:1)-((s=e==null?void 0:e.top_offset)!=null?s:0))+((u=e==null?void 0:e.bottom_offset)!=null?u:0))+((o=e==null?void 0:e.bottom_offset)!=null?o:0));return Wt(t,i)},spread_32_above:(e,t,n)=>{const i=n.nextInt(t[1]+32);return Wt(t,i)},top_solid_heightmap:(e,t)=>{const n=hi[Nt(0,63,t[0])];return Wt(t,n)},magma:(e,t,n)=>{const i=n.nextInt(t[1]+32);return Wt(t,i)},square:(e,t,n)=>[[t[0]+n.nextInt(16),t[1],t[2]+n.nextInt(16)]],surface_relative_threshold:(e,t)=>{var s,u;const n=hi[Nt(0,63,t[0])],i=n+((s=e==null?void 0:e.min_inclusive)!=null?s:-1/0),r=n+((u=e==null?void 0:e.max_inclusive)!=null?u:1/0);return t[1]<i||t[1]>r?[t]:[]},water_lake:(e,t,n)=>{var i;return n.nextInt((i=e.chance)!=null?i:1)===0?[[t[0]+n.nextInt(16),n.nextInt(256),t[2]+n.nextInt(16)]]:[]}};function g2(e,t,n){var r;let i=[e];for(const s of t)!kh[ur((r=s==null?void 0:s.type)!=null?r:"nope")]||(i=i.flatMap(o=>kh[ur(s.type)](s,o,n)));for(const s of i)n.placements.push([s,0])}const kh={count:({count:e},t,n)=>new Array(n.sampleInt(e!=null?e:1)).fill(t),count_on_every_layer:({count:e},t,n)=>new Array(n.sampleInt(e!=null?e:1)).fill(t).map(i=>[i[0]+n.nextInt(16),i[1],i[2]+n.nextInt(16)]),environment_scan:({},e)=>[e],height_range:({height:e},t,n)=>Wt(t,f2(e,n)),heightmap:({},e,t)=>{const n=Math.max(t.seaLevel,hi[Nt(0,63,e[0])]);return Wt(e,n)},in_square:({},e,t)=>[[e[0]+t.nextInt(16),e[1],e[2]+t.nextInt(16)]],noise_based_count:({noise_to_count_ratio:e,noise_factor:t,noise_offset:n},i,r)=>{const s=Math.max(1,t),u=r.biomeInfoNoise.sample(i[0]/s,0,i[2]/s),o=Math.max(0,Math.ceil((u+(n!=null?n:0))*e));return new Array(o).fill(i)},noise_threshold_count:({noise_level:e,below_noise:t,above_noise:n},i,r)=>{const u=r.biomeInfoNoise.sample(i[0]/200,0,i[2]/200)<e?t:n;return new Array(u).fill(i)},random_offset:({xz_spread:e,y_spread:t},n,i)=>[[n[0]+i.sampleInt(e),n[1]+i.sampleInt(t),n[2]+i.sampleInt(e)]],rarity_filter:({chance:e},t,n)=>n.nextFloat()<1/(e!=null?e:1)?[t]:[]};var en;(function(e){e.UP="up",e.DOWN="down",e.NORTH="north",e.EAST="east",e.SOUTH="south",e.WEST="west"})(en||(en={}));const m2={[en.UP]:[0,1,0],[en.DOWN]:[0,-1,0],[en.NORTH]:[0,0,-1],[en.EAST]:[1,0,0],[en.SOUTH]:[0,0,1],[en.WEST]:[-1,0,0]};var ss;(function(e){e.ALL=[e.UP,e.DOWN,e.NORTH,e.EAST,e.SOUTH,e.WEST],e.normal=function(t){return m2[t]}})(en||(en={})),function(e){e.create=function(t,n,i){return[t,n,i]},e.offset=function(t,n,i,r){return[t[0]+n,t[1]+i,t[2]+r]},e.towards=function(t,n){return e.offset(t,...en.normal(n))}}(ss||(ss={}));function ba(e,t,n){if(!e[t])throw new Error(`Missing ${t} tag`);if(e[t].type!==n)throw new Error(`Expected ${t} to be of type ${n}, but found ${e[t].type}`);return e[t].value}function v2(e,t){try{return e()}catch{return t}}var se,gn,gl,qi,Ur;(function(e){function t(n){return typeof n=="object"&&n!==null?n:void 0}e.readNumber=function(n){return typeof n=="number"?n:void 0},e.readInt=function(n){return typeof n=="number"?Math.floor(n):void 0},e.readString=function(n){return typeof n=="string"?n:void 0},e.readBoolean=function(n){return typeof n=="boolean"?n:void 0},e.readObject=t,e.readArray=function(n,i){if(Array.isArray(n))return n.map(r=>i(r))},e.readMap=function(n,i){var r;const s=(r=t(n))!==null&&r!==void 0?r:{};return Object.fromEntries(Object.entries(s).map(([u,o])=>[u,i(o)]))},e.compose=function(n,i,r){const s=i(n);return s?r(s):void 0}})(se||(se={}));class Yt{constructor(t,n={}){this.name=t,this.properties=n}getName(){return this.name}getProperties(){return this.properties}getProperty(t){return this.properties[t]}isFluid(){return this.name==="minecraft:water"||this.name==="minecraft:lava"}equals(t){return this.name===t.name&&Object.keys(this.properties).every(n=>t.properties[n]===this.properties[n])}toString(){return Object.keys(this.properties).length===0?this.name:`${this.name}[${Object.entries(this.properties).map(([t,n])=>t+"="+n).join(",")}]`}static fromNbt(t){const n=ba(t.value,"Name","string"),i=v2(()=>ba(t.value,"Properties","compound"),{}),r=Object.keys(i).reduce((s,u)=>Object.assign(Object.assign({},s),{[u]:ba(i,u,"string")}),{});return new Yt(n,r)}static fromJson(t){var n,i;const r=(n=se.readObject(t))!==null&&n!==void 0?n:{},s=(i=se.readString(r.Name))!==null&&i!==void 0?i:"minecraft:stone",u=se.readMap(r.Properties,o=>{var c;return(c=se.readString(o))!==null&&c!==void 0?c:""});return new Yt(s,u)}}Yt.AIR=new Yt("minecraft:air");(function(e){function t(n,i){return BigInt(4294967295&n)|BigInt(4294967295&i)<<BigInt(32)}e.create=function(n,i){return[n,i]},e.fromBlockPos=function(n){return[n[0]>>4,n[2]>>4]},e.fromLong=function(n){return[4294967295&Number(n),Number(n>>BigInt(32))]},e.toLong=function(n){return t(n[0],n[1])},e.asLong=t,e.minBlockX=function(n){return n[0]<<4},e.minBlockZ=function(n){return n[1]<<4},e.maxBlockX=function(n){return 15+(n[0]<<4)},e.maxBlockZ=function(n){return 15+(n[1]<<4)}})(gn||(gn={}));function xa(e){let t=null;return()=>(t==null&&(t=e()),t)}function tc(e,t,n){const i=e.get(t);if(i)return i;const r=n(t);return e.set(t,r),r}function Sn(e){return e*e}function Ni(e,t,n){return Math.max(t,Math.min(n,e))}function gt(e,t,n){return t+e*(n-t)}function ml(e,t,n,i,r,s){return gt(t,gt(e,n,i),gt(e,r,s))}function w2(e,t,n,i,r,s,u,o,c,a,f){return gt(n,ml(e,t,i,r,s,u),ml(e,t,o,c,a,f))}function os(e,t,n){return n<0?e:n>1?t:gt(n,e,t)}function Q0(e,t,n){return(e-t)/(n-t)}function Ca(e){return e*e*e*(e*(6*e-15)+10)}function Gn(e,t,n,i,r){return gt(Q0(e,t,n),i,r)}function _2(e,t,n,i,r){return os(i,r,Q0(e,t,n))}function A2(e,t,n){let i=t-e;for(;i>0;){const r=Math.floor(i/2),s=e+r;n(s)?i=r:(e=s+1,i-=r+1)}return e}function ep(e,t,n){let i=BigInt(3129871*e)^BigInt(n)*BigInt(116129781)^BigInt(t);return i=i*i*BigInt(42317861)+i*BigInt(11),i>>BigInt(16)}function vl(e,t,n,i,r,s,u,o){return BigInt(e)<<BigInt(56)|BigInt(t)<<BigInt(48)|BigInt(n)<<BigInt(40)|BigInt(i)<<BigInt(32)|BigInt(r)<<BigInt(24)|BigInt(s)<<BigInt(16)|BigInt(u)<<BigInt(8)|BigInt(o)}class it{constructor(t){this.seed=BigInt(0),this.setSeed(t)}fork(){return new it(this.nextLong())}forkPositional(){return new y2(this.seed)}setSeed(t){this.seed=t^it.MULTIPLIER&it.MODULUS_MASK}advance(){this.seed=this.seed*it.MULTIPLIER+it.INCREMENT&it.MODULUS_MASK}consume(t){for(let n=0;n<t;n+=1)this.advance()}next(t){this.advance();const n=Number(this.seed>>BigInt(it.MODULUS_BITS-t));return n>2147483647?n-4294967296:n}nextInt(t){if(t===void 0)return this.next(32);if((t&t-1)==0)return Number(BigInt(t)*BigInt(this.next(31))>>BigInt(31));let n,i;for(;(n=this.next(31))-(i=n%t)+(t-1)<0;);return i}nextLong(){return(BigInt(this.next(32))<<BigInt(32))+BigInt(this.next(32))}nextFloat(){return this.next(24)*it.FLOAT_MULTIPLIER}nextDouble(){const t=this.next(30);return this.advance(),t*it.DOUBLE_MULTIPLIER}}it.MODULUS_BITS=48,it.MODULUS_MASK=BigInt("281474976710655"),it.MULTIPLIER=BigInt("25214903917"),it.INCREMENT=BigInt("11"),it.FLOAT_MULTIPLIER=1/Math.pow(2,24),it.DOUBLE_MULTIPLIER=1/Math.pow(2,30);class y2{constructor(t){this.seed=t}at(t,n,i){const r=ep(t,n,i);return new it(r^this.seed)}fromHashOf(t){const n=zo(t,{asBytes:!0}),i=vl(n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7]);return new it(i^this.seed)}}class et{constructor(t){this.seed=[BigInt(0),BigInt(0)],this.seed=t}static create(t){return new et(et.upgradeSeedTo128bit(t))}static mixStafford13(t){return((t=((t=(t^t>>BigInt(30))*BigInt("-4658895280553007687")&BigInt("0xFFFFFFFFFFFFFFFF"))^t>>BigInt(27))*BigInt("-7723592293110705685")&BigInt("0xFFFFFFFFFFFFFFFF"))^t>>BigInt(31))&BigInt("0xFFFFFFFFFFFFFFFF")}static upgradeSeedTo128bit(t){t<0&&(t+=BigInt("0x10000000000000000"));const n=t^et.SILVER_RATIO_64,i=n+et.GOLDEN_RATIO_64&BigInt("0xFFFFFFFFFFFFFFFF");return[et.mixStafford13(n),et.mixStafford13(i)]}static rotateLeft(t,n){return t<<n&BigInt("0xFFFFFFFFFFFFFFFF")|t>>BigInt(64)-n}setSeed(t){this.seed=et.upgradeSeedTo128bit(t)}fork(){return new et([this.next(),this.next()])}forkPositional(){return new E2(this.next(),this.next())}next(){const t=this.seed[0];let n=this.seed[1];const i=et.rotateLeft(t+n&BigInt("0xFFFFFFFFFFFFFFFF"),BigInt(17))+t&BigInt("0xFFFFFFFFFFFFFFFF");return n^=t,this.seed=[et.rotateLeft(t,BigInt(49))^n^n<<BigInt(21)&BigInt("0xFFFFFFFFFFFFFFFF"),et.rotateLeft(n,BigInt(28))],i}nextLong(){let t=this.next();return t>BigInt("0x8000000000000000")&&(t-=BigInt("0x10000000000000000")),t}consume(t){let n=this.seed[0],i=this.seed[1];for(let r=0;r<t;r+=1)i^=n,n=et.rotateLeft(n,BigInt(49))^i^i<<BigInt(21),i=et.rotateLeft(i,BigInt(28));this.seed=[n,i]}nextBits(t){return this.next()>>BigInt(64-t)}nextInt(t){let n=this.next()&BigInt(4294967295);if(t){const i=BigInt(t);let r=n*i,s=r&BigInt(4294967295);if(s<i){const o=((~i&BigInt(4294967295))+BigInt(1))%i;for(;s<o;)n=this.next()&BigInt(4294967295),r=n*i,s=r&BigInt(4294967295)}const u=r>>BigInt(32);return Number(u)}{let i=Number(n);return i>=2147483648&&(i-=4294967296),i}}nextFloat(){return Number(this.nextBits(24))*et.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*et.DOUBLE_MULTIPLIER}parityConfigString(){return"seedLo: "+this.seed[0]+", seedHi: "+this.seed[1]}}et.SILVER_RATIO_64=BigInt("7640891576956012809"),et.GOLDEN_RATIO_64=BigInt("-7046029254386353131"),et.FLOAT_MULTIPLIER=1/Math.pow(2,24),et.DOUBLE_MULTIPLIER=11102230246251565e-32;class E2{constructor(t,n){this.seedLo=t,this.seedHi=n}at(t,n,i){const r=ep(t,n,i)^this.seedLo;return new et([r,this.seedHi])}fromHashOf(t){const n=zo(t,{asBytes:!0}),i=vl(n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7]),r=vl(n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15]);return new et([i^this.seedLo,r^this.seedHi])}}class ht{constructor(t){this.xo=256*t.nextDouble(),this.yo=256*t.nextDouble(),this.zo=256*t.nextDouble(),this.p=Array(256);for(let n=0;n<256;n+=1)this.p[n]=n;for(let n=0;n<256;n+=1){const i=t.nextInt(256-n),r=this.p[n];this.p[n]=this.p[n+i],this.p[n+i]=r}}sample2D(t,n){let i,r,s;const u=(t+n)*ht.F2,o=Math.floor(t+u),c=t-(o-(i=(o+(r=Math.floor(n+u)))*ht.G2));let a,f;c>(s=n-(r-i))?(a=1,f=0):(a=0,f=1);const l=c-a+ht.G2,h=s-f+ht.G2,d=c-1+2*ht.G2,g=s-1+2*ht.G2,p=255&o,m=255&r,w=this.P(p+this.P(m))%12,v=this.P(p+a+this.P(m+f))%12,A=this.P(p+1+this.P(m+1))%12;return 70*(this.getCornerNoise3D(w,c,s,0,.5)+this.getCornerNoise3D(v,l,h,0,.5)+this.getCornerNoise3D(A,d,g,0,.5))}sample(t,n,i){const r=.3333333333333333*(t+n+i),s=Math.floor(t+r),u=Math.floor(n+r),o=Math.floor(i+r),c=.16666666666666666*(s+u+o),a=t-(s-c),f=n-(u-c),l=i-(o-c);let h,d,g,p,m,w;a>=f?f>=l?(h=1,d=0,g=0,p=1,m=1,w=0):a>=l?(h=1,d=0,g=0,p=1,m=0,w=1):(h=0,d=0,g=1,p=1,m=0,w=1):f<l?(h=0,d=0,g=1,p=0,m=1,w=1):a<l?(h=0,d=1,g=0,p=0,m=1,w=1):(h=0,d=1,g=0,p=1,m=1,w=0);const v=a-h+.16666666666666666,A=f-d+.16666666666666666,_=l-g+.16666666666666666,E=a-p+.3333333333333333,b=f-m+.3333333333333333,x=l-w+.3333333333333333,y=a-.5,C=f-.5,B=l-.5,T=255&s,M=255&u,R=255&o,I=this.P(T+this.P(M+this.P(R)))%12,H=this.P(T+h+this.P(M+d+this.P(R+g)))%12,P=this.P(T+p+this.P(M+m+this.P(R+w)))%12,j=this.P(T+1+this.P(M+1+this.P(R+1)))%12;return 32*(this.getCornerNoise3D(I,a,f,l,.6)+this.getCornerNoise3D(H,v,A,_,.6)+this.getCornerNoise3D(P,E,b,x,.6)+this.getCornerNoise3D(j,y,C,B,.6))}P(t){return this.p[255&t]}getCornerNoise3D(t,n,i,r,s){let u,o=s-n*n-i*i-r*r;return o<0?u=0:(o*=o,u=o*o*ht.gradDot(t,n,i,r)),u}static gradDot(t,n,i,r){const s=ht.GRADIENT[15&t];return s[0]*n+s[1]*i+s[2]*r}}ht.GRADIENT=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1],[1,1,0],[0,-1,1],[-1,1,0],[0,-1,-1]],ht.F2=.5*(Math.sqrt(3)-1),ht.G2=(3-Math.sqrt(3))/6;class Bh{constructor(t){this.xo=256*t.nextDouble(),this.yo=256*t.nextDouble(),this.zo=256*t.nextDouble(),this.p=Array(256);for(let n=0;n<256;n+=1)this.p[n]=n>127?n-256:n;for(let n=0;n<256;n+=1){const i=t.nextInt(256-n),r=this.p[n];this.p[n]=this.p[n+i],this.p[n+i]=r}}sample(t,n,i,r=0,s=0){const u=t+this.xo,o=n+this.yo,c=i+this.zo,a=Math.floor(u),f=Math.floor(o),l=Math.floor(c),h=u-a,d=o-f,g=c-l;let p=0;if(r!==0){const m=s>=0&&s<d?s:d;p=Math.floor(m/r+1e-7)*r}return this.sampleAndLerp(a,f,l,h,d-p,g,d)}sampleAndLerp(t,n,i,r,s,u,o){const c=this.P(t),a=this.P(t+1),f=this.P(c+n),l=this.P(c+n+1),h=this.P(a+n),d=this.P(a+n+1),g=ht.gradDot(this.P(f+i),r,s,u),p=ht.gradDot(this.P(h+i),r-1,s,u),m=ht.gradDot(this.P(l+i),r,s-1,u),w=ht.gradDot(this.P(d+i),r-1,s-1,u),v=ht.gradDot(this.P(f+i+1),r,s,u-1),A=ht.gradDot(this.P(h+i+1),r-1,s,u-1),_=ht.gradDot(this.P(l+i+1),r,s-1,u-1),E=ht.gradDot(this.P(d+i+1),r-1,s-1,u-1);return w2(Ca(r),Ca(o),Ca(u),g,p,m,w,v,A,_,E)}P(t){return 255&this.p[255&t]}}class kt{constructor(t,n,i){if(t instanceof et){const r=t.forkPositional();this.noiseLevels=Array(i.length);for(let s=0;s<i.length;s++)if(i[s]!==0){const u=n+s;this.noiseLevels[s]=new Bh(r.fromHashOf("octave_"+u))}}else{if(1-n<i.length)throw new Error("Positive octaves are not allowed when using LegacyRandom");this.noiseLevels=Array(i.length);for(let r=-n;r>=0;r-=1)r<i.length&&i[r]!==0?this.noiseLevels[r]=new Bh(t):t.consume(262)}this.amplitudes=i,this.lowestFreqInputFactor=Math.pow(2,n),this.lowestFreqValueFactor=Math.pow(2,i.length-1)/(Math.pow(2,i.length)-1)}sample(t,n,i,r=0,s=0,u=!1){let o=0,c=this.lowestFreqInputFactor,a=this.lowestFreqValueFactor;for(let f=0;f<this.noiseLevels.length;f+=1){const l=this.noiseLevels[f];l&&(o+=this.amplitudes[f]*a*l.sample(kt.wrap(t*c),u?-l.yo:kt.wrap(n*c),kt.wrap(i*c),r*c,s*c)),c*=2,a/=2}return o}getOctaveNoise(t){return this.noiseLevels[this.noiseLevels.length-1-t]}static wrap(t){return t-33554432*Math.floor(t/33554432+.5)}}class Th{constructor(t,n,i,r){this.cellWidth=i,this.cellHeight=r,this.minLimitNoise=new kt(t,-15,[1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0]),this.maxLimitNoise=new kt(t,-15,[1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0]),this.mainNoise=new kt(t,-7,[1,1,1,1,1,0,0,0]),this.xzScale=684.412*n.xzScale,this.yScale=684.412*n.yScale,this.xzMainScale=this.xzScale/n.xzFactor,this.yMainScale=this.yScale/n.yFactor}sample(t,n,i){let r;t=Math.floor(t/this.cellWidth),n=Math.floor(n/this.cellHeight),i=Math.floor(i/this.cellWidth);let s=0,u=1;for(let a=0;a<8;a+=1){if(r=this.mainNoise.getOctaveNoise(a),r){const f=this.xzMainScale*u,l=this.yMainScale*u,h=kt.wrap(t*f),d=kt.wrap(n*l),g=kt.wrap(i*f);s+=r.sample(h,d,g,l,n*l)/u}u/=2}s=(s/10+1)/2,u=1;let o=0,c=0;for(let a=0;a<16;a+=1){const f=this.xzScale*u,l=this.yScale*u,h=kt.wrap(t*f),d=kt.wrap(n*l),g=kt.wrap(i*f);s<1&&(r=this.minLimitNoise.getOctaveNoise(a))&&(o+=r.sample(h,d,g,l,n*l)/u),s>0&&(r=this.maxLimitNoise.getOctaveNoise(a))&&(c+=r.sample(h,d,g,l,n*l)/u),u/=2}return os(o/512,c/512,s)/128}}(function(e){e.fromJson=function(t){var n,i,r,s,u;const o=(n=se.readObject(t))!==null&&n!==void 0?n:{};return{xzScale:(i=se.readNumber(o.xz_scale))!==null&&i!==void 0?i:1,yScale:(r=se.readNumber(o.y_scale))!==null&&r!==void 0?r:1,xzFactor:(s=se.readNumber(o.xz_factor))!==null&&s!==void 0?s:80,yFactor:(u=se.readNumber(o.y_factor))!==null&&u!==void 0?u:80}}})(gl||(gl={}));class Rn{constructor(t,{firstOctave:n,amplitudes:i}){this.first=new kt(t,n,i),this.second=new kt(t,n,i);let r=1/0,s=-1/0;for(let o=0;o<i.length;o+=1)i[o]!==0&&(r=Math.min(r,o),s=Math.max(s,o));const u=.1*(1+1/(s-r+1));this.valueFactor=1/6/u}sample(t,n,i){const r=t*Rn.INPUT_FACTOR,s=n*Rn.INPUT_FACTOR,u=i*Rn.INPUT_FACTOR;return(this.first.sample(t,n,i)+this.second.sample(r,s,u))*this.valueFactor}}Rn.INPUT_FACTOR=1.0181268882175227,function(e){e.create=function(t,n){return{firstOctave:t,amplitudes:n}},e.fromJson=function(t){var n,i,r;const s=(n=se.readObject(t))!==null&&n!==void 0?n:{};return{firstOctave:(i=se.readInt(s.firstOctave))!==null&&i!==void 0?i:0,amplitudes:(r=se.readArray(s.amplitudes,u=>{var o;return(o=se.readNumber(u))!==null&&o!==void 0?o:0}))!==null&&r!==void 0?r:[]}}}(qi||(qi={}));(function(e){e.fromJson=function(t,n){var i,r,s,u;if(typeof t=="number")return new wl(t);const o=(i=se.readObject(t))!==null&&i!==void 0?i:{},c=new dt(n(o.coordinate)),a=(r=se.readArray(o.points,f=>{var l;return(l=se.readObject(f))!==null&&l!==void 0?l:{}}))!==null&&r!==void 0?r:[];if(a.length===0)return new wl(0);for(const f of a){const l=(s=se.readNumber(f.location))!==null&&s!==void 0?s:0,h=e.fromJson(f.value,n),d=(u=se.readNumber(f.derivative))!==null&&u!==void 0?u:0;c.addPoint(l,h,d)}return c}})(Ur||(Ur={}));class wl{constructor(t){this.value=t}apply(){return this.value}toJson(){return this.value}}class dt{constructor(t,n=[],i=[],r=[]){this.coordinate=t,this.locations=n,this.values=i,this.derivatives=r}apply(t){const n=this.coordinate.apply(t),i=A2(0,this.locations.length,g=>n<this.locations[g])-1,r=this.locations.length-1;if(i<0)return this.values[0].apply(t)+this.derivatives[0]*(n-this.locations[0]);if(i===r)return this.values[r].apply(t)+this.derivatives[r]*(n-this.locations[r]);const s=this.locations[i],u=this.locations[i+1],o=this.derivatives[i],c=this.derivatives[i+1],a=(n-s)/(u-s),f=this.values[i].apply(t),l=this.values[i+1].apply(t),h=o*(u-s)-(l-f),d=-c*(u-s)+(l-f);return gt(a,f,l)+a*(1-a)*gt(a,h,d)}addPoint(t,n,i=0){return this.locations.push(t),this.values.push(typeof n=="number"?new wl(n):n),this.derivatives.push(i),this}toJson(){return{coordinate:this.coordinate.toJson(),points:this.locations.map((t,n)=>({location:t,value:this.values[n].toJson(),derivative:this.derivatives[n]}))}}}var Lh;(function(e){e.rotate=function(t,n,i){let{up:r,down:s,north:u,east:o,south:c,west:a}=t;switch(i){case 90:[u,o,c,a]=[o,c,a,u];break;case 180:[u,o,c,a]=[c,a,u,o];break;case 270:[u,o,c,a]=[a,u,o,c]}switch(n){case 90:[r,u,s,c]=[u,s,c,r];break;case 180:[r,u,s,c]=[s,c,r,u];break;case 270:[r,u,s,c]=[c,r,u,s]}return{up:r,down:s,north:u,east:o,south:c,west:a}}})(Lh||(Lh={}));var _l,Al,ot,Gi,yl,pe,El,Hr,bl,xl,Fa,$h,Sa;(function(e){function t(a,f){return typeof a=="number"?new n(a,f!=null?f:a):a}e.target=function(a,f,l,h,d,g){return new r(a,f,l,h,d,g)},e.parameters=function(a,f,l,h,d,g,p){return new i(t(a),t(f),t(l),t(h),t(d),t(g),p)},e.param=t;class n{constructor(f,l){this.min=f,this.max=l}distance(f){const l=(typeof f=="number"?f:f.min)-this.max,h=this.min-(typeof f=="number"?f:f.max);return l>0?l:Math.max(h,0)}union(f){return new n(Math.min(this.min,f.min),Math.max(this.max,f.max))}static fromJson(f){var l;if(typeof f=="number")return new n(f,f);const[h,d]=(l=se.readArray(f,g=>se.readNumber(g)))!==null&&l!==void 0?l:[];return new n(h!=null?h:0,d!=null?d:0)}}e.Param=n;class i{constructor(f,l,h,d,g,p,m){this.temperature=f,this.humidity=l,this.continentalness=h,this.erosion=d,this.depth=g,this.weirdness=p,this.offset=m}fittness(f){return Sn(this.temperature.distance(f.temperature))+Sn(this.humidity.distance(f.humidity))+Sn(this.continentalness.distance(f.continentalness))+Sn(this.erosion.distance(f.erosion))+Sn(this.depth.distance(f.depth))+Sn(this.weirdness.distance(f.weirdness))+Sn(this.offset-f.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new n(this.offset,this.offset)]}static fromJson(f){var l,h;const d=(l=se.readObject(f))!==null&&l!==void 0?l:{};return new i(n.fromJson(d.temperature),n.fromJson(d.humidity),n.fromJson(d.continentalness),n.fromJson(d.erosion),n.fromJson(d.depth),n.fromJson(d.weirdness),(h=se.readInt(d.offset))!==null&&h!==void 0?h:0)}}e.ParamPoint=i;class r{constructor(f,l,h,d,g,p){this.temperature=f,this.humidity=l,this.continentalness=h,this.erosion=d,this.depth=g,this.weirdness=p}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}e.TargetPoint=r,e.Parameters=class{constructor(a){this.things=a,this.index=new s(a)}find(a){return this.index.search(a,(f,l)=>f.distance(l))}};class s{constructor(f){this.root=s.build(f.map(([l,h])=>new c(l,h)))}static build(f){if(f.length===1)return f[0];if(f.length<=s.CHILDREN_PER_NODE){const g=f.map(p=>{let m=0;for(let w=0;w<7;w+=1){const v=p.space[w];m+=Math.abs((v.min+v.max)/2)}return{key:m,node:p}}).sort((p,m)=>p.key-m.key).map(({node:p})=>p);return new o(g)}let l=1/0,h=-1,d=[];for(let g=0;g<7;++g){f=s.sort(f,g,!1),d=s.bucketize(f);let p=0;for(const m of d)p+=s.area(m.space);l>p&&(l=p,h=g)}return f=s.sort(f,h,!1),d=s.bucketize(f),d=s.sort(d,h,!0),new o(d.map(g=>s.build(g.children)))}static sort(f,l,h){return f.map(d=>{const g=d.space[l],p=(g.min+g.max)/2;return{key:h?Math.abs(p):p,node:d}}).sort((d,g)=>d.key-g.key).map(({node:d})=>d)}static bucketize(f){const l=[];let h=[];const d=Math.pow(10,Math.floor(Math.log(f.length-.01)/Math.log(10)));for(const g of f)h.push(g),h.length<d||(l.push(new o(h)),h=[]);return h.length!==0&&l.push(new o(h)),l}static area(f){let l=0;for(const h of f)l+=Math.abs(h.max-h.min);return l}search(f,l){return this.root.search(f.toArray(),l).thing()}}s.CHILDREN_PER_NODE=10,e.RTree=s;class u{constructor(f){this.space=f}distance(f){let l=0;for(let h=0;h<7;h+=1)l+=Sn(this.space[h].distance(f[h]));return l}}e.RNode=u;class o extends u{constructor(f){super(o.buildSpace(f)),this.children=f}static buildSpace(f){let l=[...Array(7)].map(()=>new n(1/0,-1/0));for(const h of f)l=[...Array(7)].map((d,g)=>l[g].union(h.space[g]));return l}search(f,l){let h=1/0,d=null;for(const g of this.children){const p=l(g,f);if(h<=p)continue;const m=g.search(f,l),w=g==m?p:l(m,f);h<=w||(h=w,d=m)}return d}}e.RSubTree=o;class c extends u{constructor(f,l){super(f.space()),this.thing=l}search(){return this}}e.RLeaf=c})(_l||(_l={}));class nc{constructor(t){this.biome=t}getBiome(){return this.biome}static fromJson(t){var n,i;const r=(n=se.readObject(t))!==null&&n!==void 0?n:{},s=(i=se.readString(r.biome))!==null&&i!==void 0?i:"minecraft:the_void";return new nc(s)}}class ct{constructor(t,n,i){this.offsetSampler=t,this.factorSampler=n,this.jaggednessSampler=i}static extractor(t){return{apply:n=>n[t],toJson:()=>t}}static fromJson(t){var n;const i=(n=se.readObject(t))!==null&&n!==void 0?n:{};return new ct(Ur.fromJson(i.offset,this.EXTRACTOR),Ur.fromJson(i.factor,this.EXTRACTOR),Ur.fromJson(i.jaggedness,this.EXTRACTOR))}toJson(){return{offset:this.offsetSampler.toJson(),factor:this.factorSampler.toJson(),jaggedness:this.jaggednessSampler.toJson()}}offset(t){return this.offsetSampler.apply(t)+ct.GLOBAL_OFFSET}factor(t){return this.factorSampler.apply(t)}jaggedness(t){return this.jaggednessSampler.apply(t)}static point(t,n,i){return{continents:t,erosion:n,weirdness:i,ridges:this.peaksAndValleys(i)}}static peaksAndValleys(t){return 3*-(Math.abs(Math.abs(t)-.6666667)-.33333334)}static overworld(){const t=this.buildErosionOffsetSpline(-.05,0,0,.1,0,-.03,!1,!1),n=this.buildErosionOffsetSpline(-.1,.03,.1,.1,.01,-.03,!1,!1),i=this.buildErosionOffsetSpline(-.1,.03,.1,.7,.01,-.03,!0,!0),r=this.buildErosionOffsetSpline(.3,.03,.1,1,.01,.01,!0,!0),s=new dt(this.CONTINENTS).addPoint(-1.1,.044).addPoint(-1.02,-.2222).addPoint(-.51,-.2222).addPoint(-.44,-.12).addPoint(-.18,-.12).addPoint(-.16,t).addPoint(-.15,t).addPoint(-.1,n).addPoint(.25,i).addPoint(1,r),u=new dt(this.CONTINENTS).addPoint(-.19,3.95).addPoint(-.15,this.getErosionFactor(6.25,!0)).addPoint(-.1,this.getErosionFactor(5.47,!0)).addPoint(.03,this.getErosionFactor(5.08,!0)).addPoint(.06,this.getErosionFactor(4.69,!1)),o=new dt(this.CONTINENTS).addPoint(.11,0).addPoint(.03,this.buildErosionJaggednessSpline(1,.5,0,0)).addPoint(.65,this.buildErosionJaggednessSpline(1,1,1,0));return new ct(s,u,o)}static getErosionFactor(t,n){const i=new dt(this.WEIRDNESS).addPoint(-.2,6.3).addPoint(.2,t),r=new dt(this.EROSION).addPoint(-.6,i).addPoint(-.5,new dt(this.WEIRDNESS).addPoint(-.05,6.3).addPoint(.05,2.67)).addPoint(-.35,i).addPoint(-.25,i).addPoint(-.1,new dt(this.WEIRDNESS).addPoint(-.05,2.67).addPoint(.05,6.3)).addPoint(.03,i);if(n){const s=new dt(this.WEIRDNESS).addPoint(0,t).addPoint(.1,.625),u=new dt(this.RIDGES).addPoint(-.9,t).addPoint(-.69,s);r.addPoint(.35,t).addPoint(.45,u).addPoint(.55,u).addPoint(.62,t)}else{const s=new dt(this.RIDGES).addPoint(-.7,i).addPoint(-.15,1.37),u=new dt(this.RIDGES).addPoint(.45,i).addPoint(.7,1.56);r.addPoint(.05,u).addPoint(.4,u).addPoint(.45,s).addPoint(.55,s).addPoint(.58,t)}return r}static buildErosionOffsetSpline(t,n,i,r,s,u,o,c){const a=this.buildMountainRidgeSplineWithPoints(gt(r,.6,1.5),c),f=this.buildMountainRidgeSplineWithPoints(gt(r,.6,1),c),l=this.buildMountainRidgeSplineWithPoints(r,c),h=this.ridgeSpline(t-.15,.5*r,gt(.5,.5,.5)*r,.5*r,.6*r,.5),d=this.ridgeSpline(t,s*r,n*r,.5*r,.6*r,.5),g=this.ridgeSpline(t,s,s,n,i,.5),p=this.ridgeSpline(t,s,s,n,i,.5),m=new dt(this.RIDGES).addPoint(-1,t).addPoint(-.4,g).addPoint(0,i+.07),w=this.ridgeSpline(-.02,u,u,n,i,0),v=new dt(this.EROSION).addPoint(-.85,a).addPoint(-.7,f).addPoint(-.4,l).addPoint(-.35,h).addPoint(-.1,d).addPoint(.2,g);return o&&v.addPoint(.4,p).addPoint(.45,m).addPoint(.55,m).addPoint(.58,p),v.addPoint(.7,w),v}static buildMountainRidgeSplineWithPoints(t,n){const i=new dt(this.RIDGES),r=this.mountainContinentalness(-1,t,-.7),s=this.mountainContinentalness(1,t,-.7),u=this.calculateMountainRidgeZeroContinentalnessPoint(t);if(-.65<u&&u<1){const o=this.mountainContinentalness(-.65,t,-.7),c=this.mountainContinentalness(-.75,t,-.7),a=this.calculateSlope(r,c,-1,-.75);i.addPoint(-1,r,a),i.addPoint(-.75,c),i.addPoint(-.65,o);const f=this.mountainContinentalness(u,t,-.7),l=this.calculateSlope(f,s,u,1);i.addPoint(u-.01,f),i.addPoint(u,f,l),i.addPoint(1,s,l)}else{const o=this.calculateSlope(r,s,-1,1);n?(i.addPoint(-1,Math.max(.2,r)),i.addPoint(0,gt(.5,r,s),o)):i.addPoint(-1,r,o),i.addPoint(1,s,o)}return i}static mountainContinentalness(t,n,i){const r=.46082947*(t+1.17)*(1-.5*(1-n))-.5*(1-n);return t<i?Math.max(r,-.2222):Math.max(r,0)}static calculateMountainRidgeZeroContinentalnessPoint(t){return .5*(1-t)/(.46082947*(1-.5*(1-t)))-1.17}static calculateSlope(t,n,i,r){return(n-t)/(r-i)}static ridgeSpline(t,n,i,r,s,u){const o=Math.max(.5*(n-t),u),c=5*(i-n);return new dt(this.RIDGES).addPoint(-1,t,o).addPoint(-.4,n,Math.min(o,c)).addPoint(0,i,c).addPoint(.4,r,2*(r-i)).addPoint(1,s,.7*(s-r))}static buildErosionJaggednessSpline(t,n,i,r){const s=this.buildRidgeJaggednessSpline(t,i),u=this.buildRidgeJaggednessSpline(n,r);return new dt(this.EROSION).addPoint(-1,s).addPoint(-.78,u).addPoint(-.5775,u).addPoint(-.375,0)}static buildRidgeJaggednessSpline(t,n){const i=ct.peaksAndValleys(.4),r=(i+ct.peaksAndValleys(.56666666))/2;return new dt(this.RIDGES).addPoint(i,0).addPoint(r,n>0?this.buildWeirdnessJaggednessSpline(n):0).addPoint(1,t>0?this.buildWeirdnessJaggednessSpline(t):0)}static buildWeirdnessJaggednessSpline(t){return new dt(ct.WEIRDNESS).addPoint(-.01,.63*t).addPoint(.01,.3*t)}}ct.GLOBAL_OFFSET=-.50375,ct.EXTRACTOR=e=>{var t;const n=(t=se.readString(e))!==null&&t!==void 0?t:"continents";return ct.extractor(n)},ct.CONTINENTS=ct.extractor("continents"),ct.EROSION=ct.extractor("erosion"),ct.WEIRDNESS=ct.extractor("weirdness"),ct.RIDGES=ct.extractor("ridges"),function(e){e.fromList=function(t){return(n,i,r,s)=>{for(const u of t){const o=u(n,i,r,s);if(o)return o}return null}}}(Al||(Al={})),function(e){function t(n){return n.ySize<<2}e.fromJson=function(n){var i,r,s,u,o,c,a,f;const l=(i=se.readObject(n))!==null&&i!==void 0?i:{};return{minY:(r=se.readInt(l.min_y))!==null&&r!==void 0?r:0,height:(s=se.readInt(l.height))!==null&&s!==void 0?s:256,xzSize:(u=se.readInt(l.size_horizontal))!==null&&u!==void 0?u:1,ySize:(o=se.readInt(l.size_vertical))!==null&&o!==void 0?o:1,sampling:gl.fromJson(l.sampling),topSlide:Gi.fromJson(l.top_slide),bottomSlide:Gi.fromJson(l.bottom_slide),terrainShaper:ct.fromJson(l.terrain_shaper),islandNoiseOverride:(c=se.readBoolean(l.island_noise_override))!==null&&c!==void 0&&c,isAmplified:(a=se.readBoolean(l.amplified))!==null&&a!==void 0&&a,hasLargeBiomes:(f=se.readBoolean(l.large_biomes))!==null&&f!==void 0&&f}},e.cellHeight=t,e.cellWidth=function(n){return n.xzSize<<2},e.cellCountY=function(n){return n.height/t(n)},e.minCellY=function(n){return Math.floor(n.minY/t(n))}}(ot||(ot={})),function(e){e.fromJson=function(t){var n,i,r,s;const u=(n=se.readObject(t))!==null&&n!==void 0?n:{};return{target:(i=se.readNumber(u.target))!==null&&i!==void 0?i:0,size:(r=se.readInt(u.size))!==null&&r!==void 0?r:0,offset:(s=se.readInt(u.offset))!==null&&s!==void 0?s:0}},e.apply=function(t,n,i){if(t.size<=0)return n;const r=(i-t.offset)/t.size;return os(t.target,n,r)}}(Gi||(Gi={}));class mo{constructor(t,n){this.chunk=t,this.filler=n,this.noise000=0,this.noise001=0,this.noise100=0,this.noise101=0,this.noise010=0,this.noise011=0,this.noise110=0,this.noise111=0,this.valueXZ00=0,this.valueXZ10=0,this.valueXZ01=0,this.valueXZ11=0,this.valueZ0=0,this.valueZ1=0,this.value=0,this.slice0=mo.allocateSlice(t.cellCountY,t.cellCountXZ),this.slice1=mo.allocateSlice(t.cellCountY,t.cellCountXZ)}static allocateSlice(t,n){const i=Array(n+1);for(let r=0;r<n+1;r+=1)i[r]=Array(t+1);return i}initializeForFirstCellX(){this.fillSlice(this.slice0,this.chunk.firstCellX)}advanceCellX(t){this.fillSlice(this.slice1,this.chunk.firstCellX+t+1)}fillSlice(t,n){const i=ot.cellWidth(this.chunk.settings.noise),r=ot.cellHeight(this.chunk.settings.noise),s=n*i;for(let u=0;u<this.chunk.cellCountXZ+1;u+=1){const o=(this.chunk.firstCellZ+u)*i;for(let c=0;c<this.chunk.cellCountY+1;c+=1){const a=(this.chunk.cellCountNoiseMinY+c)*r;t[u][c]=this.filler(s,a,o)}}}selectCellYZ(t,n){this.noise000=this.slice0[n][t],this.noise001=this.slice0[n+1][t],this.noise100=this.slice1[n][t],this.noise101=this.slice1[n+1][t],this.noise010=this.slice0[n][t+1],this.noise011=this.slice0[n+1][t+1],this.noise110=this.slice1[n][t+1],this.noise111=this.slice1[n+1][t+1]}updateForY(t){this.valueXZ00=gt(t,this.noise000,this.noise010),this.valueXZ10=gt(t,this.noise100,this.noise110),this.valueXZ01=gt(t,this.noise001,this.noise011),this.valueXZ11=gt(t,this.noise101,this.noise111)}updateForX(t){this.valueZ0=gt(t,this.valueXZ00,this.valueXZ10),this.valueZ1=gt(t,this.valueXZ01,this.valueXZ11)}updateForZ(t){this.value=gt(t,this.valueZ0,this.valueZ1)}sample(){return this.value}swapSlices(){[this.slice0,this.slice1]=[this.slice1,this.slice0]}}class b2{constructor(t,n,i,r,s,u,o,c){this.cellCountXZ=t,this.cellCountY=n,this.cellCountNoiseMinY=i,this.sampler=r,this.settings=c;const a=ot.cellWidth(c.noise);this.firstCellX=Math.floor(s/a),this.firstCellZ=Math.floor(u/a),this.firstNoiseX=s>>2,this.firstNoiseZ=u>>2,this.interpolators=[];const f=t*a>>2;this.noiseData=Array(f+1);for(let l=0;l<=f;l+=1){const h=this.firstNoiseX+l;this.noiseData[l]=Array(f+1);for(let d=0;d<=f;d+=1){const g=this.firstNoiseZ+d;this.noiseData[l][d]=r.noiseData(h,g)}}this.preliminarySurfaceLevel=new Map,this.baseNoise=r.makeBaseNoiseFiller(this,o,c.noodleCavesEnabled)}getNoiseData(t,n){return this.noiseData[t-this.firstNoiseX][n-this.firstNoiseZ]}getPreliminarySurfaceLevel(t,n){return tc(this.preliminarySurfaceLevel,gn.asLong(t,n),()=>{const i=t-this.firstNoiseX,r=n-this.firstNoiseZ,s=this.noiseData.length,u=i>=0&&r>=0&&i<s&&r<s?this.noiseData[i][r].terrainInfo:this.sampler.noiseData(t,n).terrainInfo;return this.sampler.getPreliminarySurfaceLevel(t<<2,n<<2,u)})}createNoiseInterpolator(t){const n=new mo(this,t);return this.interpolators.push(n),n.sample.bind(n)}initializeForFirstCellX(){this.interpolators.forEach(t=>t.initializeForFirstCellX())}advanceCellX(t){this.interpolators.forEach(n=>n.advanceCellX(t))}selectCellYZ(t,n){this.interpolators.forEach(i=>i.selectCellYZ(t,n))}updateForY(t){this.interpolators.forEach(n=>n.updateForY(t))}updateForX(t){this.interpolators.forEach(n=>n.updateForX(t))}updateForZ(t){this.interpolators.forEach(n=>n.updateForZ(t))}swapSlices(){this.interpolators.forEach(t=>t.swapSlices())}updateNoiseAndGenerateBaseState(t,n,i){return this.baseNoise(t,n,i)}}(function(e){e.create=function(t,n,i){return{offset:t,factor:n,jaggedness:i}}})(yl||(yl={})),function(e){const t=new Map;function n(i,r,s){const u=Object.assign({name:`minecraft:${i}`},qi.create(r,s));return t.set(i,u),u}e.TEMPERATURE=n("temperature",-10,[1.5,0,1,0,0,0]),e.VEGETATION=n("vegetation",-8,[1,1,0,0,0,0]),e.CONTINENTALNESS=n("continentalness",-9,[1,1,2,2,2,1,1,1,1]),e.EROSION=n("erosion",-9,[1,1,0,1,1]),e.TEMPERATURE_LARGE=n("temperature_large",-12,[1.5,0,1,0,0,0]),e.VEGETATION_LARGE=n("vegetation_large",-10,[1,1,0,0,0,0]),e.CONTINENTALNESS_LARGE=n("continentalness_large",-11,[1,1,2,2,2,1,1,1,1]),e.EROSION_LARGE=n("erosion_large",-11,[1,1,0,1,1]),e.RIDGE=n("ridge",-7,[1,2,1,0,0,0]),e.SHIFT=n("offset",-3,[1,1,1,0]),e.PILLAR=n("pillar",-7,[1,1]),e.PILLAR_RARENESS=n("pillar_rareness",-8,[1]),e.PILLAR_THICKNESS=n("pillar_thickness",-8,[1]),e.SPAGHETTI_2D=n("spaghetti_2d",-8,[1]),e.SPAGHETTI_2D_ELEVATION=n("spaghetti_2d_elevation",-8,[1]),e.SPAGHETTI_2D_MODULATOR=n("spaghetti_2d_modulator",-8,[1]),e.SPAGHETTI_2D_THICKNESS=n("spaghetti_2d_thickness",-8,[1]),e.SPAGHETTI_3D_1=n("spaghetti_3d_1",-8,[1]),e.SPAGHETTI_3D_2=n("spaghetti_3d_2",-8,[1]),e.SPAGHETTI_3D_RARITY=n("spaghetti_3d_rarity",-8,[1]),e.SPAGHETTI_3D_THICKNESS=n("spaghetti_3d_thickness",-8,[1]),e.SPAGHETTI_ROUGHNESS=n("spaghetti_roughness",-8,[1]),e.SPAGHETTI_ROUGHNESS_MODULATOR=n("spaghetti_roughness_modulator",-8,[1]),e.CAVE_ENTRANCE=n("cave_entrance",-7,[.4,.5,1]),e.CAVE_LAYER=n("cave_layer",-8,[1]),e.CAVE_CHEESE=n("cave_cheese",-8,[.5,1,2,1,2,1,0,2,0]),e.NOODLE=n("noodle",-8,[1]),e.NOODLE_THICKNESS=n("noodle_thickness",-8,[1]),e.NOODLE_RIDGE_A=n("noodle_ridge_a",-7,[1]),e.NOODLE_RIDGE_B=n("noodle_ridge_b",-7,[1]),e.JAGGED=n("jagged",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),e.SURFACE=n("surface",-6,[1,1,1]),e.SURFACE_SECONDARY=n("surface_secondary",-6,[1,1,0,1]),e.instantiate=function(i,r){return new Rn(i.fromHashOf(r.name),r)}}(pe||(pe={}));class x2{constructor(t,n,i,r=!1){this.settings=t,this.isNoiseCavesEnabled=n;const s=t.hasLargeBiomes,u=(r?new it(i):et.create(i)).forkPositional();r?(this.blendedNoise=new Th(new it(i),t.sampling,ot.cellWidth(t),ot.cellHeight(t)),this.temperatureNoise=new Rn(new it(i),qi.create(-7,[1,1])),this.humidityNoise=new Rn(new it(i+BigInt(1)),qi.create(-7,[1,1])),this.offsetNoise=new Rn(new it(i+BigInt(5)),qi.create(0,[0]))):(this.blendedNoise=new Th(u.fromHashOf("minecraft:terrain"),t.sampling,ot.cellWidth(t),ot.cellHeight(t)),this.temperatureNoise=pe.instantiate(u,s?pe.TEMPERATURE_LARGE:pe.TEMPERATURE),this.humidityNoise=pe.instantiate(u,s?pe.VEGETATION_LARGE:pe.VEGETATION),this.offsetNoise=pe.instantiate(u,pe.SHIFT)),this.continentalnessNoise=pe.instantiate(u,s?pe.CONTINENTALNESS_LARGE:pe.CONTINENTALNESS),this.erosionNoise=pe.instantiate(u,s?pe.EROSION_LARGE:pe.EROSION),this.weirdnessNoise=pe.instantiate(u,pe.RIDGE),this.pillarNoise=pe.instantiate(u,pe.PILLAR),this.pillarRarenessModulator=pe.instantiate(u,pe.PILLAR_RARENESS),this.pillarThicknessModulator=pe.instantiate(u,pe.PILLAR_THICKNESS),this.spaghetti2DNoise=pe.instantiate(u,pe.SPAGHETTI_2D),this.spaghetti2DElevationModulator=pe.instantiate(u,pe.SPAGHETTI_2D_ELEVATION),this.spaghetti2DRarityModulator=pe.instantiate(u,pe.SPAGHETTI_2D_MODULATOR),this.spaghetti2DThicknessModulator=pe.instantiate(u,pe.SPAGHETTI_2D_THICKNESS),this.spaghetti3DNoise1=pe.instantiate(u,pe.SPAGHETTI_3D_1),this.spaghetti3DNoise2=pe.instantiate(u,pe.SPAGHETTI_3D_2),this.spaghetti3DRarityModulator=pe.instantiate(u,pe.SPAGHETTI_3D_RARITY),this.spaghetti3DThicknessModulator=pe.instantiate(u,pe.SPAGHETTI_3D_THICKNESS),this.spaghettiRoughnessNoise=pe.instantiate(u,pe.SPAGHETTI_ROUGHNESS),this.spaghettiRoughnessModulator=pe.instantiate(u,pe.SPAGHETTI_ROUGHNESS_MODULATOR),this.bigEntranceNoise=pe.instantiate(u,pe.CAVE_ENTRANCE),this.layerNoise=pe.instantiate(u,pe.CAVE_LAYER),this.cheeseNoise=pe.instantiate(u,pe.CAVE_CHEESE);const o=t.minY+4,c=o+t.height;this.noodleToggleNoise=this.yLimitedInterpolatable(pe.instantiate(u,pe.NOODLE),o,c,-1,1),this.noodleThicknessNoise=this.yLimitedInterpolatable(pe.instantiate(u,pe.NOODLE_THICKNESS),o,c,0,1),this.noodleRidgeANoise=this.yLimitedInterpolatable(pe.instantiate(u,pe.NOODLE_RIDGE_A),o,c,0,8/3),this.noodleRidgeBNoise=this.yLimitedInterpolatable(pe.instantiate(u,pe.NOODLE_RIDGE_B),o,c,0,8/3),this.jaggedNoise=pe.instantiate(u,pe.JAGGED),this.shaper=t.terrainShaper,this.baseNoise=a=>a.createNoiseInterpolator((f,l,h)=>this.calculateBlendedBaseNoise(f,l,h,a.getNoiseData(f>>2,h>>2).terrainInfo))}yLimitedInterpolatable(t,n,i,r,s){const u=(o,c,a)=>c>i||c<n?r:t.sample(o*s,c*s,a*s);return o=>o.createNoiseInterpolator(u)}noiseData(t,n){const i=t+this.getOffset(t,0,n),r=n+this.getOffset(n,t,0),s=this.getContinentalness(i,r),u=this.getErosion(i,r),o=this.getWeirdness(i,r),c=this.terrainInfo(s,u,o);return El.create(i,r,s,u,o,c)}sample(t,n,i){return this.target(t,n,i,this.noiseData(t,i))}target(t,n,i,r){const s=r.shiftedX,u=n+this.getOffset(n,i,t),o=r.shiftedZ,c=this.getTemperature(s,u,o),a=this.getHumidity(s,u,o),f=this.computeDimensionDensity(n<<2,r.terrainInfo);return _l.target(c,a,r.continentalness,r.erosion,f,r.weirdness)}terrainInfo(t,n,i){const r=ct.point(t,n,i),s=this.shaper.offset(r),u=this.shaper.factor(r),o=this.shaper.jaggedness(r);return yl.create(s,u,o)}getOffset(t,n,i){return 4*this.offsetNoise.sample(t,n,i)}getTemperature(t,n,i){return this.temperatureNoise.sample(t,n,i)}getHumidity(t,n,i){return this.humidityNoise.sample(t,n,i)}getContinentalness(t,n){return this.continentalnessNoise.sample(t,0,n)}getErosion(t,n){return this.erosionNoise.sample(t,0,n)}getWeirdness(t,n){return this.weirdnessNoise.sample(t,0,n)}makeBaseNoiseFiller(t,n,i){const r=this.baseNoise(t),s=i?this.noodleToggleNoise(t):()=>-1,u=i?this.noodleThicknessNoise(t):()=>0,o=i?this.noodleRidgeANoise(t):()=>0,c=i?this.noodleRidgeBNoise(t):()=>0;return(a,f,l)=>{let h=r();if(h=Ni(.64*h,-1,1),h=h/2-h*h*h/24,s()>=0){const d=_2(u(),-1,1,.05,.1),g=Math.abs(1.5*o())-d,p=Math.abs(1.5*c())-d;h=Math.min(h,Math.max(g,p))}return h+=n(a,f,l),h>0?null:Yt.AIR}}calculateBlendedBaseNoise(t,n,i,r){const s=this.blendedNoise.sample(t,n,i);return this.calculateBaseNoise(t,n,i,r,s,!this.isNoiseCavesEnabled,!0)}calculateBaseNoise(t,n,i,r,s,u,o){if(!this.settings.islandNoiseOverride){const f=o?this.sampleJaggedNoise(r.jaggedness,t,i):0,l=this.computeDimensionDensity(n,r),h=r.factor*(f+l);s+=h>0?4*h:h}let c=-64,a=64;if(!u&&s>=-64){const f=s-1.5625,l=this.getBigEntrances(t,n,i),h=this.getSpaghettiRoughness(t,n,i),d=this.getSpaghetti3D(t,n,i),g=Math.min(l,d+h);if(f<0)a=g;else{const p=this.getLayerizedCaverns(t,n,i);p>64?s=64:s=this.getCheese(t,n,i)+p+os(.5,0,1.28*f);const m=this.getSpaghetti2D(t,n,i);c=this.getPillars(t,n,i),a=Math.min(g,m+h)}}return s=Ni(s,c,a),s=Ni(s=this.applySlide(s,n/ot.cellHeight(this.settings)),-64,64)}sampleJaggedNoise(t,n,i){if(t===0)return 0;const r=this.jaggedNoise.sample(1500*n,0,1500*i);return r>0?t*r:t/2*r}computeDimensionDensity(t,n){return 1-t/128+n.offset}getBigEntrances(t,n,i){return this.bigEntranceNoise.sample(.75*t,.5*n,.75*i)+.37+os(.3,0,(n+10)/40)}getSpaghettiRoughness(t,n,i){const r=this.spaghettiRoughnessNoise.sample(t,n,i),s=Gn(this.spaghettiRoughnessModulator.sample(t,n,i),-1,1,0,1);return(.4-Math.abs(r))*s}getSpaghetti2D(t,n,i){const r=this.quantizeSpaghettiRarity2D(this.spaghetti2DRarityModulator.sample(2*t,n,2*i)),s=Gn(this.spaghetti2DThicknessModulator.sample(2*t,n,2*i),-1,1,.6,1.3),u=this.sampleWithRarity(this.spaghetti2DNoise,t,n,i,r),o=Math.abs(r*u)-.083*s,c=ot.minCellY(this.settings),a=Gn(this.spaghetti2DElevationModulator.sample(t,0,i),-1,1,c,8),f=Math.abs(a-n/8)-1*s;return Ni(Math.max(f,o),-1,1)}getSpaghetti3D(t,n,i){const r=this.quantizeSpaghettiRarity3D(this.spaghetti3DRarityModulator.sample(2*t,n,2*i)),s=Gn(this.spaghetti3DThicknessModulator.sample(t,n,i),-1,1,.065,.088),u=this.sampleWithRarity(this.spaghetti3DNoise1,t,n,i,r),o=Math.abs(r*u)-s,c=this.sampleWithRarity(this.spaghetti3DNoise2,t,n,i,r),a=Math.abs(r*c)-s;return Ni(Math.max(o,a),-1,1)}quantizeSpaghettiRarity2D(t){return t<-.75?.5:t<-.5?.75:t<.5?1:t<.75?2:3}quantizeSpaghettiRarity3D(t){return t<-.5?.75:t<0?1:t<.5?1.5:2}sampleWithRarity(t,n,i,r,s){return t.sample(n/s,i/s,r/s)}getLayerizedCaverns(t,n,i){return 4*Sn(this.layerNoise.sample(t,8*n,i))}getCheese(t,n,i){return Ni(this.cheeseNoise.sample(t,n/1.5,i)+.27,-1,1)}getPillars(t,n,i){const r=Gn(this.pillarRarenessModulator.sample(t,n,i),-1,1,0,2),s=Gn(this.pillarThicknessModulator.sample(t,n,i),-1,1,0,1.1),u=this.pillarNoise.sample(25*t,.3*n,25*i),o=Math.pow(s,3)*(2*u-r);return o<=.03?Number.MIN_SAFE_INTEGER:o}applySlide(t,n){const i=n-ot.minCellY(this.settings);return t=Gi.apply(this.settings.topSlide,t,ot.cellCountY(this.settings)-i),t=Gi.apply(this.settings.bottomSlide,t,i)}getPreliminarySurfaceLevel(t,n,i){const r=ot.minCellY(this.settings)+ot.cellCountY(this.settings),s=ot.minCellY(this.settings),u=ot.cellHeight(this.settings);for(let o=r;o>=s;o-=1){const c=o*u;if(this.calculateBaseNoise(t,c,n,i,-.703125,!0,!1)>=.390625)return c}return Number.MAX_SAFE_INTEGER}}(function(e){e.create=function(t,n,i,r,s,u){return{shiftedX:t,shiftedZ:n,continentalness:i,weirdness:r,erosion:s,terrainInfo:u}}})(El||(El={})),function(e){e.fromJson=function(t){var n,i,r,s;const u=(n=se.readObject(t))!==null&&n!==void 0?n:{};return u.absolute!==void 0?(o=(i=se.readNumber(u.absolute))!==null&&i!==void 0?i:0,()=>o):u.above_bottom!==void 0?function(c){return a=>a.minY+c}((r=se.readNumber(u.above_bottom))!==null&&r!==void 0?r:0):u.below_top!==void 0?function(c){return a=>a.maxY-c}((s=se.readNumber(u.below_top))!==null&&s!==void 0?s:0):()=>0;var o}}(Hr||(Hr={})),function(e){e.create=function(t,n){return{minY:t,height:n,maxY:t+n-1}}}(bl||(bl={}));class C2{constructor(t,n,i){this.rule=t,this.defaultBlock=n,this.random=et.create(i).forkPositional(),this.surfaceNoise=pe.instantiate(this.random,pe.SURFACE),this.surfaceSecondaryNoise=pe.instantiate(this.random,pe.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(t,n,i,r){const s=gn.minBlockX(t.pos),u=gn.minBlockZ(t.pos),o=new F2(this,t,n,i,r),c=this.rule(o);for(let a=0;a<16;a+=1){const f=s+a;for(let l=0;l<1;l+=1){const h=u+l;o.updateXZ(f,h);let d=0,g=Number.MIN_SAFE_INTEGER,p=Number.MAX_SAFE_INTEGER;for(let m=t.maxY;m>=t.minY;m-=1){const w=ss.create(f,m,h),v=t.getBlockState(w);if(v.equals(Yt.AIR)){d=0,g=Number.MIN_SAFE_INTEGER;continue}if(v.isFluid()){g===Number.MIN_SAFE_INTEGER&&(g=m+1);continue}if(p>=m){p=Number.MIN_SAFE_INTEGER;for(let E=m-1;E>=t.minY;E-=1){const b=t.getBlockState(ss.create(f,E,h));if(b.equals(Yt.AIR)||b.isFluid()){p=E+1;break}}}d+=1;const A=m-p+1;if(!v.equals(this.defaultBlock))continue;o.updateY(d,A,g,m);const _=c(f,m,h);_&&t.setBlockState(w,_)}}}}getSurfaceDepth(t,n){return 2.75*this.surfaceNoise.sample(t,0,n)+3+.25*this.random.at(t,0,n).nextDouble()}getSurfaceSecondary(t,n){return this.surfaceSecondaryNoise.sample(t,0,n)}getRandom(t){return tc(this.positionalRandoms,t,()=>this.random.fromHashOf(t))}}class F2{constructor(t,n,i,r,s){this.system=t,this.chunk=n,this.noiseChunk=i,this.context=r,this.getBiome=s,this.blockX=0,this.blockY=0,this.blockZ=0,this.stoneDepthAbove=0,this.stoneDepthBelow=0,this.surfaceDepth=0,this.waterHeight=0,this.biome=()=>"",this.surfaceSecondary=()=>0,this.minSurfaceLevel=()=>0}updateXZ(t,n){this.blockX=t,this.blockZ=n,this.surfaceDepth=this.system.getSurfaceDepth(t,n),this.surfaceSecondary=xa(()=>this.system.getSurfaceSecondary(t,n)),this.minSurfaceLevel=xa(()=>this.calculateMinSurfaceLevel(t,n))}updateY(t,n,i,r){this.blockY=r,this.stoneDepthAbove=t,this.stoneDepthBelow=n,this.waterHeight=i,this.biome=xa(()=>this.getBiome(ss.create(this.blockX,this.blockY,this.blockZ)))}calculateMinSurfaceLevel(t,n){const i=t>>4,r=n>>4,s=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,r<<4),u=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,r<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,r+1<<4),c=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,r+1<<4);return Math.floor(ml((15&t)/16,(15&n)/16,s,u,o,c))+this.surfaceDepth-8}}(function(e){function t(r){return()=>()=>r}function n(r){return s=>{const u=r.map(o=>o(s));return(o,c,a)=>{for(const f of u){const l=f(o,c,a);if(l)return l}}}}function i(r,s){return u=>(o,c,a)=>{if(r(u))return s(u)(o,c,a)}}e.NOOP=()=>()=>{},e.fromJson=function(r){var s,u,o;const c=(s=se.readObject(r))!==null&&s!==void 0?s:{};switch((u=se.readString(c.type))===null||u===void 0?void 0:u.replace(/^minecraft:/,"")){case"block":return t(Yt.fromJson(c.result_state));case"sequence":return n((o=se.readArray(c.sequence,e.fromJson))!==null&&o!==void 0?o:[]);case"condition":return i(Fa.fromJson(c.if_true),e.fromJson(c.then_run))}return e.NOOP},e.block=t,e.sequence=n,e.condition=i})(xl||(xl={})),function(e){function t(){return c=>c.blockY>=c.minSurfaceLevel()}function n(c){const a=new Set(c);return f=>a.has(f.biome())}function i(c){return a=>!c(a)}function r(c,a,f,l){return h=>{const d=l?h.stoneDepthBelow:h.stoneDepthAbove,g=a?h.surfaceDepth:0,p=f===0?0:Gn(h.surfaceSecondary(),-1,1,0,f);return d<=1+c+g+p}}function s(c,a,f){return l=>{const h=a(l.context),d=f(l.context);if(l.blockY<=h)return!0;if(l.blockY>=d)return!1;const g=l.system.getRandom(c),p=Gn(l.blockY,h,d,1,0);return g.nextFloat()<p}}function u(c,a,f){return l=>{if(l.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const h=f?l.stoneDepthAbove:0;return l.blockY+h>=l.waterHeight+c+l.surfaceDepth*a}}function o(c,a,f){return l=>{const h=f?l.stoneDepthAbove:0;return l.blockY+h>=c(l.context)+l.surfaceDepth*a}}e.FALSE=()=>!1,e.TRUE=()=>!0,e.fromJson=function(c){var a,f,l,h,d,g,p,m,w,v,A,_;const E=(a=se.readObject(c))!==null&&a!==void 0?a:{};switch((f=se.readString(E.type))===null||f===void 0?void 0:f.replace(/^minecraft:/,"")){case"above_preliminary_surface":return b=>b.blockY>=b.minSurfaceLevel();case"biome":return n((l=se.readArray(E.biome_is,b=>{var x;return(x=se.readString(b))!==null&&x!==void 0?x:""}))!==null&&l!==void 0?l:[]);case"not":return i(e.fromJson(E.invert));case"stone_depth":return r((h=se.readInt(E.offset))!==null&&h!==void 0?h:0,(d=se.readBoolean(E.add_surface_depth))!==null&&d!==void 0&&d,(g=se.readInt(E.secondary_depth_range))!==null&&g!==void 0?g:0,se.readString(E.surface_type)==="ceiling");case"vertical_gradient":return s((p=se.readString(E.random_name))!==null&&p!==void 0?p:"",Hr.fromJson(E.true_at_and_below),Hr.fromJson(E.false_at_and_above));case"water":return u((m=se.readInt(E.offset))!==null&&m!==void 0?m:0,(w=se.readInt(E.surface_depth_multiplier))!==null&&w!==void 0?w:0,(v=se.readBoolean(E.add_surface_depth))!==null&&v!==void 0&&v);case"y_above":return o(Hr.fromJson(E.anchor),(A=se.readInt(E.surface_depth_multiplier))!==null&&A!==void 0?A:0,(_=se.readBoolean(E.add_surface_depth))!==null&&_!==void 0&&_)}return e.FALSE},e.abovePreliminarySurface=t,e.biome=n,e.not=i,e.stoneDepth=r,e.verticalGradient=s,e.water=u,e.yAbove=o}(Fa||(Fa={}));class S2{constructor(t,n,i){this.biomeSource=n,this.settings=i,this.sampler=new x2(i.noise,i.noiseCavesEnabled,t,i.legacyRandomSource),this.noiseChunkCache=new Map,this.materialRule=Al.fromList([(r,s,u,o)=>r.updateNoiseAndGenerateBaseState(s,u,o)]),this.surfaceSystem=new C2(i.surfaceRule,i.defaultBlock,t)}fill(t){var n;const i=Math.max(t.minY,this.settings.noise.minY),r=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),s=ot.cellWidth(this.settings.noise),u=ot.cellHeight(this.settings.noise),o=Math.floor(16/s),c=Math.floor(i/u),a=Math.floor((r-i)/u),f=gn.minBlockX(t.pos),l=gn.minBlockZ(t.pos),h=this.getNoiseChunk(t);h.initializeForFirstCellX();for(let d=0;d<o;d+=1){h.advanceCellX(d);for(let g=0;g<o;g+=1){let p=t.getOrCreateSection(t.sectionsCount-1);for(let m=a-1;m>=0;m-=1){h.selectCellYZ(m,g);for(let w=u-1;w>=0;w-=1){const v=(c+m)*u+w,A=15&v,_=t.getSectionIndex(v);t.getSectionIndex(p.minBlockY)!==_&&(p=t.getOrCreateSection(_));const E=w/u;h.updateForY(E);for(let b=0;b<s;b+=1){const x=f+d*s+b,y=15&x,C=b/s;h.updateForX(C);for(let B=0;B<s;B+=1){const T=l+g*s+B,M=15&T,R=B/s;h.updateForZ(R);let I=(n=this.materialRule(h,x,v,T))!==null&&n!==void 0?n:this.settings.defaultBlock;if(I.equals(Yt.AIR)){if(!(v<this.settings.seaLevel))continue;I=this.settings.defaultFluid}p.setBlockState(y,A,M,I)}}}}}h.swapSlices()}}buildSurface(t,n="minecraft:plains"){const i=this.getNoiseChunk(t),r=bl.create(this.settings.noise.minY,this.settings.noise.height);this.surfaceSystem.buildSurface(t,i,r,()=>n)}getNoiseChunk(t){return tc(this.noiseChunkCache,gn.toLong(t.pos),()=>{const n=Math.max(t.minY,this.settings.noise.minY),i=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),r=ot.cellWidth(this.settings.noise),s=ot.cellHeight(this.settings.noise),u=Math.floor(16/r),o=Math.floor(n/s),c=Math.floor((i-n)/s),a=gn.minBlockX(t.pos),f=gn.minBlockZ(t.pos);return new b2(u,c,o,this.sampler,a,f,()=>0,this.settings)})}}(function(e){e.fromJson=function(t){var n,i,r,s,u,o,c,a,f,l,h;const d=(n=se.readObject(t))!==null&&n!==void 0?n:{};return{structures:Sa.fromJson(d.structures),surfaceRule:xl.fromJson(d.surface_rule),noise:ot.fromJson(d.noise),defaultBlock:Yt.fromJson(d.default_block),defaultFluid:Yt.fromJson(d.default_fluid),bedrockRoofPosition:(i=se.readInt(d.bedrock_roof_position))!==null&&i!==void 0?i:0,bedrockFloorPosition:(r=se.readInt(d.bedrock_floor_position))!==null&&r!==void 0?r:0,seaLevel:(s=se.readInt(d.sea_level))!==null&&s!==void 0?s:0,disableMobGeneration:(u=se.readBoolean(d.disable_mob_generation))!==null&&u!==void 0&&u,aquifersEnabled:(o=se.readBoolean(d.aquifers_enabled))!==null&&o!==void 0&&o,noiseCavesEnabled:(c=se.readBoolean(d.noise_caves_enabled))!==null&&c!==void 0&&c,deepslateEnabled:(a=se.readBoolean(d.deepslate_enabled))!==null&&a!==void 0&&a,oreVeinsEnabled:(f=se.readBoolean(d.ore_veins_enabled))!==null&&f!==void 0&&f,noodleCavesEnabled:(l=se.readBoolean(d.noodle_caves_enabled))!==null&&l!==void 0&&l,legacyRandomSource:(h=se.readBoolean(d.legacy_random_source))!==null&&h!==void 0&&h}}})($h||($h={})),function(e){e.fromJson=function(t){var n;const i=(n=se.readObject(t))!==null&&n!==void 0?n:{};return{stronghold:se.compose(i.stronghold,se.readObject,r=>{var s,u,o;return{distance:(s=se.readInt(r.distance))!==null&&s!==void 0?s:0,spread:(u=se.readInt(r.spread))!==null&&u!==void 0?u:0,count:(o=se.readInt(r.count))!==null&&o!==void 0?o:0}}),structures:se.readMap(i.structures,r=>{var s;return(u=>{var o,c,a;return{spacing:(o=se.readInt(u.spacing))!==null&&o!==void 0?o:0,separation:(c=se.readInt(u.separation))!==null&&c!==void 0?c:0,salt:(a=se.readInt(u.salt))!==null&&a!==void 0?a:0}})((s=se.readObject(r))!==null&&s!==void 0?s:{})})}}}(Sa||(Sa={}));class D2{constructor(t){this.settings={},this.chunkWidth=4,this.chunkHeight=4,this.chunkCountY=32,this.biomeDepth=.1,this.biomeScale=.2,this.noiseColumnCache=[],this.xOffset=0;const n=new Pt(t);this.minLimitPerlinNoise=new qe(n,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),this.maxLimitPerlinNoise=new qe(n,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),this.mainPerlinNoise=new qe(n,-7,[1,1,1,1,1,1,1,1]),this.depthNoise=new qe(n,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1])}reset(t,n,i,r,s){this.settings=t,this.chunkWidth=t.size_horizontal*4,this.chunkHeight=t.size_vertical*4,this.chunkCountY=Math.floor(t.height/this.chunkHeight),t.amplified&&n>0&&(n=1+n*2,i=1+i*4),this.biomeDepth=.265625*(n*.5-.125),this.biomeScale=96/(i*.9+.1),this.noiseColumnCache=Array(s).fill(null),this.xOffset=r}iterateNoiseColumn(t){const n=Array(this.chunkCountY*this.chunkHeight),i=Math.floor(t/this.chunkWidth),r=Math.floor(t%this.chunkWidth)/this.chunkWidth,s=this.fillNoiseColumn(i),u=this.fillNoiseColumn(i+1);for(let o=this.chunkCountY-1;o>=0;o-=1)for(let c=this.chunkHeight;c>=0;c-=1){const a=c/this.chunkHeight,f=o*this.chunkHeight+c;n[f]=pw(a,r,s[o],s[o+1],u[o],u[o+1])}return n}fillNoiseColumn(t){const n=this.noiseColumnCache[t-this.xOffset];if(n)return n;const i=Array(this.chunkCountY+1),r=684.412*this.settings.sampling.xz_scale,s=684.412*this.settings.sampling.y_scale,u=r/this.settings.sampling.xz_factor,o=s/this.settings.sampling.y_factor,c=this.settings.random_density_offset?this.getRandomDensity(t):0;for(let a=0;a<=this.chunkCountY;a+=1){let f=this.sampleAndClampNoise(t,a,this.mainPerlinNoise.getOctaveNoise(0).zo,r,s,u,o);const d=((1-a*2/this.chunkCountY+c)*this.settings.density_factor+this.settings.density_offset+this.biomeDepth)*this.biomeScale;f+=d*(d>0?4:1),this.settings.top_slide.size>0&&(f=ea(this.settings.top_slide.target,f,(this.chunkCountY-a-this.settings.top_slide.offset)/this.settings.top_slide.size)),this.settings.bottom_slide.size>0&&(f=ea(this.settings.bottom_slide.target,f,(a-this.settings.bottom_slide.offset)/this.settings.bottom_slide.size)),i[a]=f}return this.noiseColumnCache[t-this.xOffset]=i,i}getRandomDensity(t){const n=this.depthNoise.sample(t*200,10,this.depthNoise.getOctaveNoise(0).zo,1,0,!0),r=(n<0?-n*.3:n)*24.575625-2;return r<0?r*.009486607142857142:Math.min(r,1)*.006640625}sampleAndClampNoise(t,n,i,r,s,u,o){let c=0,a=0,f=0,l=1;for(let h=0;h<16;h+=1){const d=qe.wrap(t*r*l),g=qe.wrap(n*s*l),p=qe.wrap(i*r*l),m=s*l,w=this.minLimitPerlinNoise.getOctaveNoise(h);w&&(c+=w.sample(d,g,p,m,n*m)/l);const v=this.maxLimitPerlinNoise.getOctaveNoise(h);if(v&&(a+=v.sample(d,g,p,m,n*m)/l),h<8){const A=this.mainPerlinNoise.getOctaveNoise(h);A&&(f+=A.sample(qe.wrap(t*u*l),qe.wrap(n*o*l),qe.wrap(i*u*l),o*l,n*o*l)/l)}l/=2}return ea(c/512,a/512,(f/10+1)/2)}}const ic=0,k2={"minecraft:air":[150,160,170],"minecraft:water":[20,80,170],"minecraft:lava":[200,100,0],"minecraft:stone":[55,55,55],"minecraft:deepslate":[34,34,36],"minecraft:bedrock":[10,10,10],"minecraft:grass_block":[47,120,23],"minecraft:dirt":[64,40,8],"minecraft:gravel":[70,70,70],"minecraft:sand":[196,180,77],"minecraft:sandstone":[148,135,52],"minecraft:netherrack":[100,40,40],"minecraft:crimson_nylium":[144,22,22],"minecraft:warped_nylium":[28,115,113],"minecraft:basalt":[73,74,85],"minecraft:end_stone":[200,200,140]};let Mh,Da,vo=[];const ka=new Map;async function B2(e,t,n){var u,o,c;if(Mt(n.version,"1.18")){Mt(n.version,"1.18.2")&&await tp(n.version);const{settings:a,generator:f}=I2(e,n),l=new N2(-n.offset,n.width,a.noise.minY,a.noise.height);l.generate(f,n.biome);const h=t.data;for(let d=0;d<n.width;d+=1)for(let g=0;g<a.noise.height;g+=1){const p=d*4+(a.noise.height-g-1)*4*t.width,m=l.getBlockState([d-n.offset,g+a.noise.minY,ic]),w=(u=k2[m.getName().toString()])!=null?u:[0,0,0];h[p]=w[0],h[p+1]=w[1],h[p+2]=w[2],h[p+3]=255}return}const i=new D2(n.seed);i.reset(e.noise,(o=n.biomeDepth)!=null?o:0,(c=n.biomeScale)!=null?c:0,n.offset,n.width);const r=t.data,s=t.width*4;for(let a=0;a<n.width;a+=1){const f=i.iterateNoiseColumn(a-n.offset).reverse();for(let l=0;l<e.noise.height;l+=1){const h=l*s+a*4,d=O2(f,l);r[h]=d,r[h+1]=d,r[h+2]=d,r[h+3]=255}}}function T2(e,t){const n=vo.find(i=>Ut.minBlockX(i.pos)<=e&&Ut.maxBlockX(i.pos)>=e);if(!!n)return n.getBlockState(or.create(e,t,ic))}async function L2(e,t,n){const{fn:i,settings:r}=await $2(e,n),s=Array(n.width*r.height);let u=1/0,o=-1/0;for(let a=0;a<n.width;a+=1)for(let f=0;f<r.height;f+=1){const l=a+(r.height-f-1)*n.width,h=i.compute(Me.context(a-n.offset,f,0));u=Math.min(u,h),o=Math.max(o,h),s[l]=h}const c=t.data;for(let a=0;a<n.width*r.height;a+=1){const f=Math.floor(G0(s[a],u,o,0,256));c[4*a]=f,c[4*a+1]=f,c[4*a+2]=f,c[4*a+3]=255}}async function $2(e,t){await tp(t.version);const n=Je.create(t.seed).forkPositional(),i=ut.fromJson({min_y:-64,height:384,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},bottom_slide:{target:.1171875,size:3,offset:0},top_slide:{target:-.078125,size:2,offset:8},terrain_shaper:{offset:.044,factor:4,jaggedness:0}});return{fn:Me.fromJson(e).mapAll(new cr.Visitor(n,i)),settings:i}}const M2=[["worldgen/noise",lr],["worldgen/density_function",Me]];async function tp(e){var n;const t=(n=ka.get(e))!=null?n:new ns(new Ue("misode","temp"));ka.has(e)||(await Promise.all(M2.map(([i,r])=>R2(e,t,i,r))),ka.set(e,t)),ai.DENSITY_FUNCTION.clear().assign(t.getOrThrow(Ue.create("worldgen/density_function"))),ai.NOISE.clear().assign(t.getOrThrow(Ue.create("worldgen/noise")))}async function R2(e,t,n,i){const r=await Cw(e,n),s=new ns(Ue.create(n));for(const[u,o]of r.entries())s.register(Ue.parse(u),i.fromJson(o));t.register(s.key,s)}function I2(e,t){const n=hl.fromJson(ae.DataModel.unwrapLists(e)),i=[e,`${t.seed}`,t.biome];if(!yi(i,Mh))if(Mh=$o(i),vo=[],Mt(t.version,"1.18.2")){const r=new is(Ue.create("unknown"));Da=new Hy(t.seed,r,n)}else{const r=new nc("unknown");Da=new S2(t.seed,r,n)}return{settings:n,generator:Da}}function O2(e,t){return e[t]>0?0:e[t+1]>0?150:255}class N2{constructor(t,n,i,r){this.minX=t,this.done=[],this.chunks=[...Array(Math.ceil(n/16)+1)].map((s,u)=>{const o=(t>>4)+u,c=vo.find(a=>a.pos[0]===o);return c?(this.done[u]=!0,c):new Dy(i,r,Ut.create(o,ic>>4))})}generate(t,n){this.chunks.forEach((i,r)=>{this.done[r]||(t.fill(i,!0),t.buildSurface(i,n),this.done[r]=!0,vo.push(i))})}getBlockState(t){const n=(t[0]>>4)-(this.minX>>4);return this.chunks[n].getBlockState(t)}}function P2(e,t,n){const i=new Pt(n.seed),r=lr.fromJson(ae.DataModel.unwrapLists(e)),s=new Ho(i,r),u=-n.offset[0]-100,o=-n.offset[1]-100,c=t.data;for(let a=0;a<256;a+=1)for(let f=0;f<256;f+=1){const l=a*4+f*4*256,h=(a+u)*n.scale,d=(f+o)*n.scale,g=(s.sample(h,d,0)+1)*128;c[l]=g,c[l+1]=g,c[l+2]=g,c[l+3]=255}}const z2=["biomes","temperature","humidity","continentalness","erosion","weirdness"],U2=({model:e,data:t,shown:n,version:i})=>{var b,x;const{locale:r}=rt(),[s]=oe(On()),[u,o]=oe(2),[c,a]=oe(void 0),[f,l]=oe(new Set(["biomes"])),h=Xe([0,0]),d=Xe(1),g=Xe(void 0),p=BigInt((b=e.get(new ae.Path(["generator","seed"])))!=null?b:s),m=Qe(()=>{if(!!n)return j2(e.get(new ae.Path(["generator","settings"])))},[n]),w=n?H2(t,m):"",v=(x=t.type)==null?void 0:x.replace(/^minecraft:/,""),{canvas:A,redraw:_}=Es({size(){return[200/d.current,200/d.current]},async draw(y){const C={octaves:m,biomeColors:{},layers:f,offset:h.current,scale:u,seed:p,res:d.current,version:i};await t2(t,y,C),d.current===4&&(clearTimeout(g.current),g.current=setTimeout(()=>{d.current=1,_()},150))},async onDrag(y,C){h.current[0]=h.current[0]+y*200,h.current[1]=h.current[1]+C*200,clearTimeout(g.current),d.current=v==="multi_noise"?4:1,_()},async onHover(y,C){const B={octaves:m,biomeColors:{},layers:f,offset:h.current,scale:u,seed:s,res:1,version:i},T=await n2(t,Math.floor(y*200),Math.floor(C*200),B);a(T)},onLeave(){a(void 0)}},[w,u,s,f]);xe(()=>{n&&(d.current=v==="multi_noise"?4:1,_())},[w,u,s,f,n]);const E=y=>{h.current[0]=h.current[0]*u/y,h.current[1]=h.current[1]*u/y,o(y)};return S(De,null,S("div",{class:"controls preview-controls"},c&&S(Ee,{label:c.biome,class:"no-pointer"}),v==="multi_noise"&&S($t,{icon:"stack",tooltip:r("configure_layers")},z2.map(y=>{const C=f.has(y);return S(Ee,{label:r(`layer.${y}`),active:C,tooltip:r(C?"enabled":"disabled"),onClick:B=>{l(new Set([y])),B.stopPropagation()}})})),(v==="multi_noise"||v==="checkerboard")&&S(De,null,S(Ee,{icon:"dash",tooltip:r("zoom_out"),onClick:()=>E(u*1.5)}),S(Ee,{icon:"plus",tooltip:r("zoom_in"),onClick:()=>E(u/1.5)})),v==="multi_noise"&&S(Ee,{icon:"sync",tooltip:r("generate_new_seed"),onClick:()=>Pd(e)})),(c==null?void 0:c.temperature)!==void 0&&S("div",{class:"controls secondary-controls"},S(Ee,{class:"no-pointer",label:Object.entries(c).filter(([y])=>y!=="biome").map(([y,C])=>`${y[0].toUpperCase()}: ${C.toFixed(2)}`).join(" ")})),S("canvas",{ref:A,width:"200",height:"200"}))};function H2(e,t){return JSON.stringify([e,t])}function j2(e){switch(typeof e!="string"&&(e=e.legacy_random_source?"minecraft:nether":"minecraft:overworld"),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]}}}}const W2=({data:e,version:t,shown:n})=>{const{locale:i}=rt(),[r,s]=oe(4),[u,o]=oe(On()),{canvas:c,redraw:a}=Es({size(){return[r*16,r*16]},async draw(l){u2(e,l,{seed:u,version:t,size:[r*16,128,r*16]})}}),f=JSON.stringify(e);return xe(()=>{n&&a()},[f,r,u,n]),S(De,null,S("div",{class:"controls preview-controls"},S(Ee,{icon:"dash",tooltip:i("zoom_out"),onClick:()=>s(Math.min(16,r+1))}),S(Ee,{icon:"plus",tooltip:i("zoom_in"),onClick:()=>s(Math.max(1,r-1))}),S(Ee,{icon:"sync",tooltip:i("generate_new_seed"),onClick:()=>o(On())})),S("canvas",{ref:c,width:"64",height:"64"}))},V2=({data:e,shown:t,version:n})=>{var m,w;const{locale:i}=rt(),[r,s]=oe(On()),[u,o]=oe(!1),[c,a]=oe(void 0),f=Xe(0),l=Xe(void 0),h=JSON.stringify([e]),d=(w=(m=e==null?void 0:e.noise)==null?void 0:m.height)!=null?w:256,{canvas:g,redraw:p}=Es({size(){return[d,d]},async draw(v){const A={offset:f.current,width:v.width,seed:r,version:n};await L2(e,v,A)},async onDrag(v){f.current+=v*d,p()},async onHover(v,A){var b,x;const _=Math.floor(v*d-f.current),E=d-Math.max(1,Math.ceil(A*d))+((x=(b=e==null?void 0:e.noise)==null?void 0:b.min_y)!=null?x:0);a(`X=${_} Y=${E}`)},onLeave(){a(void 0)}},[h,r]);return xe(()=>{l.current&&clearInterval(l.current),t&&(p(),u&&(l.current=setInterval(()=>{f.current-=8,p()},100)))},[h,r,t,u]),S(De,null,S("div",{class:"controls preview-controls"},c&&S(Ee,{label:c,class:"no-pointer"}),S($t,{icon:"gear",tooltip:i("terrain_settings")},S(Ee,{icon:u?"square_fill":"square",label:i("preview.auto_scroll"),onClick:()=>o(!u)})),S(Ee,{icon:"sync",tooltip:i("generate_new_seed"),onClick:()=>s(On())})),S("canvas",{ref:g,width:d,height:d}))},G2=({data:e,shown:t,version:n})=>{const{locale:i}=rt(),[r,s]=oe(On()),[u,o]=oe(2),c=Xe([0,0]),a=JSON.stringify([e]),{canvas:f,redraw:l}=Es({size(){return[256,256]},async draw(d){const g={offset:c.current,scale:u,seed:r,version:n};P2(e,d,g)},async onDrag(d,g){c.current[0]=c.current[0]+d*256,c.current[1]=c.current[1]+g*256,l()}},[a,u,r]);xe(()=>{t&&l()},[a,u,r,t]);const h=d=>{c.current[0]=c.current[0]*u/d,c.current[1]=c.current[1]*u/d,o(d)};return S(De,null,S("div",{class:"controls preview-controls"},S(Ee,{icon:"dash",tooltip:i("zoom_out"),onClick:()=>h(u*1.5)}),S(Ee,{icon:"plus",tooltip:i("zoom_in"),onClick:()=>h(u/1.5)}),S(Ee,{icon:"sync",tooltip:i("generate_new_seed"),onClick:()=>s(On())})),S("canvas",{ref:f,width:"256",height:"256"}))},K2=({data:e,shown:t,version:n})=>{var x,y;const{locale:i}=rt(),[r,s]=oe(On()),[u,o]=oe("minecraft:plains"),[c,a]=oe(.2),[f,l]=oe(.1),[h,d]=oe(!1),[g,p]=oe(void 0),m=Xe(0),w=Xe(void 0),v=JSON.stringify([e,c,f]),A=(y=(x=e==null?void 0:e.noise)==null?void 0:x.height)!=null?y:256,{canvas:_,redraw:E}=Es({size(){return[A,A]},async draw(C){const B={biome:u,biomeDepth:f,biomeScale:c,offset:m.current,width:C.width,seed:r,version:n};await B2(e,C,B)},async onDrag(C){m.current+=C*A,E()},async onHover(C,B){var I,H;const T=Math.floor(C*A-m.current),M=A-Math.max(1,Math.ceil(B*A))+((H=(I=e==null?void 0:e.noise)==null?void 0:I.min_y)!=null?H:0),R=T2(T,M);p(R?`Y=${M} (${R.getName().path})`:`Y=${M}`)},onLeave(){p(void 0)}},[v,r]);xe(()=>{w.current&&clearInterval(w.current),t&&(async()=>{try{await E(),h&&(w.current=setInterval(()=>{m.current-=8,E()},100))}catch(C){throw C}})()},[v,r,t,u,c,f,h]);const b=Qe(()=>{var C;return(C=Gs==null?void 0:Gs.get("worldgen/biome"))!=null?C:[]},[n]);return S(De,null,S("div",{class:"controls preview-controls"},g&&S(Ee,{label:g,class:"no-pointer"}),S($t,{icon:"gear",tooltip:i("terrain_settings")},Mt(n,void 0,"1.17")?S(De,null,S(Vs,{label:i("preview.scale"),value:`${c}`,onChange:C=>a(Number(C))}),S(Vs,{label:i("preview.depth"),value:`${f}`,onChange:C=>l(Number(C))})):S(Vs,{label:i("preview.biome"),value:u,onChange:o,dataList:b,larger:!0}),S(Ee,{icon:h?"square_fill":"square",label:i("preview.auto_scroll"),onClick:()=>d(!h)})),S(Ee,{icon:"sync",tooltip:i("generate_new_seed"),onClick:()=>s(On())})),S("canvas",{ref:_,width:A,height:A}))},X2=["dimension","worldgen/density_function","worldgen/noise","worldgen/noise_settings","worldgen/configured_feature","worldgen/placed_feature"];function J2({model:e,version:t,id:n,shown:i}){var s;const[,r]=oe(0);if(Mo(e,()=>{r(u=>u+1)}),!e)return S(De,null);if(n==="dimension"&&((s=e.get(new ae.Path(["generator","type"])))==null?void 0:s.endsWith("noise"))){const u=e.get(new ae.Path(["generator","biome_source"]));if(u)return S(U2,{model:e,version:t,shown:i,data:u})}if(n==="worldgen/density_function"){const u=e.get(new ae.Path([]));if(u)return S(V2,{model:e,version:t,shown:i,data:u})}if(n==="worldgen/noise"){const u=e.get(new ae.Path([]));if(u)return S(G2,{model:e,version:t,shown:i,data:u})}if(n==="worldgen/noise_settings"){const u=e.get(new ae.Path([]));if(u)return S(K2,{model:e,version:t,shown:i,data:u})}if(n==="worldgen/placed_feature"||n==="worldgen/configured_feature"&&Mt(t,"1.16","1.17")){const u=e.get(new ae.Path([]));if(u)return S(W2,{model:e,version:t,shown:i,data:u})}return S(De,null)}(function(){var e="ace",t=function(){return this}();!t&&typeof window!="undefined"&&(t=window);var n=function(c,a,f){if(typeof c!="string"){n.original?n.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(f=a),n.modules[c]||(n.payloads[c]=f,n.modules[c]=null)};n.modules={},n.payloads={};var i=function(c,a,f){if(typeof a=="string"){var l=u(c,a);if(l!=null)return f&&f(),l}else if(Object.prototype.toString.call(a)==="[object Array]"){for(var h=[],d=0,g=a.length;d<g;++d){var p=u(c,a[d]);if(p==null&&r.original)return;h.push(p)}return f&&f.apply(null,h)||!0}},r=function(c,a){var f=i("",c,a);return f==null&&r.original?r.original.apply(this,arguments):f},s=function(c,a){if(a.indexOf("!")!==-1){var f=a.split("!");return s(c,f[0])+"!"+s(c,f[1])}if(a.charAt(0)=="."){var l=c.split("/").slice(0,-1).join("/");for(a=l+"/"+a;a.indexOf(".")!==-1&&h!=a;){var h=a;a=a.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return a},u=function(c,a){a=s(c,a);var f=n.modules[a];if(!f){if(f=n.payloads[a],typeof f=="function"){var l={},h={id:a,uri:"",exports:l,packaged:!0},d=function(p,m){return i(a,p,m)},g=f(d,l,h);l=g||h.exports,n.modules[a]=l,delete n.payloads[a]}f=n.modules[a]=l||f}return f};function o(c){var a=t;c&&(t[c]||(t[c]={}),a=t[c]),(!a.define||!a.define.packaged)&&(n.original=a.define,a.define=n,a.define.packaged=!0),(!a.acequire||!a.acequire.packaged)&&(r.original=a.acequire,a.acequire=r,a.acequire.packaged=!0)}o(e)})();ace.define("ace/lib/regexp",["require","exports","module"],function(e,t,n){var i={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},r=i.exec.call(/()??/,"")[1]===void 0,s=function(){var c=/^/g;return i.test.call(c,""),!c.lastIndex}();if(s&&r)return;RegExp.prototype.exec=function(c){var a=i.exec.apply(this,arguments),f,l;if(typeof c=="string"&&a){if(!r&&a.length>1&&o(a,"")>-1&&(l=RegExp(this.source,i.replace.call(u(this),"g","")),i.replace.call(c.slice(a.index),l,function(){for(var d=1;d<arguments.length-2;d++)arguments[d]===void 0&&(a[d]=void 0)})),this._xregexp&&this._xregexp.captureNames)for(var h=1;h<a.length;h++)f=this._xregexp.captureNames[h-1],f&&(a[f]=a[h]);!s&&this.global&&!a[0].length&&this.lastIndex>a.index&&this.lastIndex--}return a},s||(RegExp.prototype.test=function(c){var a=i.exec.call(this,c);return a&&this.global&&!a[0].length&&this.lastIndex>a.index&&this.lastIndex--,!!a});function u(c){return(c.global?"g":"")+(c.ignoreCase?"i":"")+(c.multiline?"m":"")+(c.extended?"x":"")+(c.sticky?"y":"")}function o(c,a,f){if(Array.prototype.indexOf)return c.indexOf(a,f);for(var l=f||0;l<c.length;l++)if(c[l]===a)return l;return-1}});ace.define("ace/lib/es5-shim",["require","exports","module"],function(e,t,n){function i(){}Function.prototype.bind||(Function.prototype.bind=function(k){var $=this;if(typeof $!="function")throw new TypeError("Function.prototype.bind called on incompatible "+$);var z=o.call(arguments,1),U=function(){if(this instanceof U){var G=$.apply(this,z.concat(o.call(arguments)));return Object(G)===G?G:this}else return $.apply(k,z.concat(o.call(arguments)))};return $.prototype&&(i.prototype=$.prototype,U.prototype=new i,i.prototype=null),U});var r=Function.prototype.call,s=Array.prototype,u=Object.prototype,o=s.slice,c=r.bind(u.toString),a=r.bind(u.hasOwnProperty),f,l,h,d,g;if((g=a(u,"__defineGetter__"))&&(f=r.bind(u.__defineGetter__),l=r.bind(u.__defineSetter__),h=r.bind(u.__lookupGetter__),d=r.bind(u.__lookupSetter__)),[1,2].splice(0).length!=2)if(function(){function N(z){var U=new Array(z+2);return U[0]=U[1]=0,U}var k=[],$;if(k.splice.apply(k,N(20)),k.splice.apply(k,N(26)),$=k.length,k.splice(5,0,"XXX"),$+1==k.length,$+1==k.length)return!0}()){var p=Array.prototype.splice;Array.prototype.splice=function(N,k){return arguments.length?p.apply(this,[N===void 0?0:N,k===void 0?this.length-N:k].concat(o.call(arguments,2))):[]}}else Array.prototype.splice=function(N,k){var $=this.length;N>0?N>$&&(N=$):N==null?N=0:N<0&&(N=Math.max($+N,0)),N+k<$||(k=$-N);var z=this.slice(N,N+k),U=o.call(arguments,2),G=U.length;if(N===$)G&&this.push.apply(this,U);else{var Q=Math.min(k,$-N),X=N+Q,te=X+G-Q,le=$-X,ye=$-Q;if(te<X)for(var ve=0;ve<le;++ve)this[te+ve]=this[X+ve];else if(te>X)for(ve=le;ve--;)this[te+ve]=this[X+ve];if(G&&N===ye)this.length=ye,this.push.apply(this,U);else for(this.length=ye+G,ve=0;ve<G;++ve)this[N+ve]=U[ve]}return z};Array.isArray||(Array.isArray=function(k){return c(k)=="[object Array]"});var m=Object("a"),w=m[0]!="a"||!(0 in m);if(Array.prototype.forEach||(Array.prototype.forEach=function(k){var $=K(this),z=w&&c(this)=="[object String]"?this.split(""):$,U=arguments[1],G=-1,Q=z.length>>>0;if(c(k)!="[object Function]")throw new TypeError;for(;++G<Q;)G in z&&k.call(U,z[G],G,$)}),Array.prototype.map||(Array.prototype.map=function(k){var $=K(this),z=w&&c(this)=="[object String]"?this.split(""):$,U=z.length>>>0,G=Array(U),Q=arguments[1];if(c(k)!="[object Function]")throw new TypeError(k+" is not a function");for(var X=0;X<U;X++)X in z&&(G[X]=k.call(Q,z[X],X,$));return G}),Array.prototype.filter||(Array.prototype.filter=function(k){var $=K(this),z=w&&c(this)=="[object String]"?this.split(""):$,U=z.length>>>0,G=[],Q,X=arguments[1];if(c(k)!="[object Function]")throw new TypeError(k+" is not a function");for(var te=0;te<U;te++)te in z&&(Q=z[te],k.call(X,Q,te,$)&&G.push(Q));return G}),Array.prototype.every||(Array.prototype.every=function(k){var $=K(this),z=w&&c(this)=="[object String]"?this.split(""):$,U=z.length>>>0,G=arguments[1];if(c(k)!="[object Function]")throw new TypeError(k+" is not a function");for(var Q=0;Q<U;Q++)if(Q in z&&!k.call(G,z[Q],Q,$))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(k){var $=K(this),z=w&&c(this)=="[object String]"?this.split(""):$,U=z.length>>>0,G=arguments[1];if(c(k)!="[object Function]")throw new TypeError(k+" is not a function");for(var Q=0;Q<U;Q++)if(Q in z&&k.call(G,z[Q],Q,$))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(k){var $=K(this),z=w&&c(this)=="[object String]"?this.split(""):$,U=z.length>>>0;if(c(k)!="[object Function]")throw new TypeError(k+" is not a function");if(!U&&arguments.length==1)throw new TypeError("reduce of empty array with no initial value");var G=0,Q;if(arguments.length>=2)Q=arguments[1];else do{if(G in z){Q=z[G++];break}if(++G>=U)throw new TypeError("reduce of empty array with no initial value")}while(!0);for(;G<U;G++)G in z&&(Q=k.call(void 0,Q,z[G],G,$));return Q}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(k){var $=K(this),z=w&&c(this)=="[object String]"?this.split(""):$,U=z.length>>>0;if(c(k)!="[object Function]")throw new TypeError(k+" is not a function");if(!U&&arguments.length==1)throw new TypeError("reduceRight of empty array with no initial value");var G,Q=U-1;if(arguments.length>=2)G=arguments[1];else do{if(Q in z){G=z[Q--];break}if(--Q<0)throw new TypeError("reduceRight of empty array with no initial value")}while(!0);do Q in this&&(G=k.call(void 0,G,z[Q],Q,$));while(Q--);return G}),(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)&&(Array.prototype.indexOf=function(k){var $=w&&c(this)=="[object String]"?this.split(""):K(this),z=$.length>>>0;if(!z)return-1;var U=0;for(arguments.length>1&&(U=V(arguments[1])),U=U>=0?U:Math.max(0,z+U);U<z;U++)if(U in $&&$[U]===k)return U;return-1}),(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)&&(Array.prototype.lastIndexOf=function(k){var $=w&&c(this)=="[object String]"?this.split(""):K(this),z=$.length>>>0;if(!z)return-1;var U=z-1;for(arguments.length>1&&(U=Math.min(U,V(arguments[1]))),U=U>=0?U:z-Math.abs(U);U>=0;U--)if(U in $&&k===$[U])return U;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(k){return k.__proto__||(k.constructor?k.constructor.prototype:u)}),!Object.getOwnPropertyDescriptor){var v="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(k,$){if(typeof k!="object"&&typeof k!="function"||k===null)throw new TypeError(v+k);if(!!a(k,$)){var z,U,G;if(z={enumerable:!0,configurable:!0},g){var Q=k.__proto__;k.__proto__=u;var U=h(k,$),G=d(k,$);if(k.__proto__=Q,U||G)return U&&(z.get=U),G&&(z.set=G),z}return z.value=k[$],z}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(k){return Object.keys(k)}),!Object.create){var A;Object.prototype.__proto__===null?A=function(){return{__proto__:null}}:A=function(){var N={};for(var k in N)N[k]=null;return N.constructor=N.hasOwnProperty=N.propertyIsEnumerable=N.isPrototypeOf=N.toLocaleString=N.toString=N.valueOf=N.__proto__=null,N},Object.create=function(k,$){var z;if(k===null)z=A();else{if(typeof k!="object")throw new TypeError("typeof prototype["+typeof k+"] != 'object'");var U=function(){};U.prototype=k,z=new U,z.__proto__=k}return $!==void 0&&Object.defineProperties(z,$),z}}function _(N){try{return Object.defineProperty(N,"sentinel",{}),"sentinel"in N}catch{}}if(Object.defineProperty){var E=_({}),b=typeof document=="undefined"||_(document.createElement("div"));if(!E||!b)var x=Object.defineProperty}if(!Object.defineProperty||x){var y="Property description must be an object: ",C="Object.defineProperty called on non-object: ",B="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(k,$,z){if(typeof k!="object"&&typeof k!="function"||k===null)throw new TypeError(C+k);if(typeof z!="object"&&typeof z!="function"||z===null)throw new TypeError(y+z);if(x)try{return x.call(Object,k,$,z)}catch{}if(a(z,"value"))if(g&&(h(k,$)||d(k,$))){var U=k.__proto__;k.__proto__=u,delete k[$],k[$]=z.value,k.__proto__=U}else k[$]=z.value;else{if(!g)throw new TypeError(B);a(z,"get")&&f(k,$,z.get),a(z,"set")&&l(k,$,z.set)}return k}}Object.defineProperties||(Object.defineProperties=function(k,$){for(var z in $)a($,z)&&Object.defineProperty(k,z,$[z]);return k}),Object.seal||(Object.seal=function(k){return k}),Object.freeze||(Object.freeze=function(k){return k});try{Object.freeze(function(){})}catch{Object.freeze=function($){return function(U){return typeof U=="function"?U:$(U)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(k){return k}),Object.isSealed||(Object.isSealed=function(k){return!1}),Object.isFrozen||(Object.isFrozen=function(k){return!1}),Object.isExtensible||(Object.isExtensible=function(k){if(Object(k)===k)throw new TypeError;for(var $="";a(k,$);)$+="?";k[$]=!0;var z=a(k,$);return delete k[$],z}),!Object.keys){var T=!0,M=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],R=M.length;for(var I in{toString:null})T=!1;Object.keys=function(k){if(typeof k!="object"&&typeof k!="function"||k===null)throw new TypeError("Object.keys called on a non-object");var $=[];for(var z in k)a(k,z)&&$.push(z);if(T)for(var U=0,G=R;U<G;U++){var Q=M[U];a(k,Q)&&$.push(Q)}return $}}Date.now||(Date.now=function(){return new Date().getTime()});var H=` -\v\f\r \xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF`;if(!String.prototype.trim||H.trim()){H="["+H+"]";var P=new RegExp("^"+H+H+"*"),j=new RegExp(H+H+"*$");String.prototype.trim=function(){return String(this).replace(P,"").replace(j,"")}}function V(N){return N=+N,N!==N?N=0:N!==0&&N!==1/0&&N!==-(1/0)&&(N=(N>0||-1)*Math.floor(Math.abs(N))),N}var K=function(N){if(N==null)throw new TypeError("can't convert "+N+" to object");return Object(N)}});ace.define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/regexp","ace/lib/es5-shim"],function(e,t,n){e("./regexp"),e("./es5-shim")});ace.define("ace/lib/dom",["require","exports","module"],function(e,t,n){var i="http://www.w3.org/1999/xhtml";if(t.getDocumentHead=function(r){return r||(r=document),r.head||r.getElementsByTagName("head")[0]||r.documentElement},t.createElement=function(r,s){return document.createElementNS?document.createElementNS(s||i,r):document.createElement(r)},t.hasCssClass=function(r,s){var u=(r.className+"").split(/\s+/g);return u.indexOf(s)!==-1},t.addCssClass=function(r,s){t.hasCssClass(r,s)||(r.className+=" "+s)},t.removeCssClass=function(r,s){for(var u=r.className.split(/\s+/g);;){var o=u.indexOf(s);if(o==-1)break;u.splice(o,1)}r.className=u.join(" ")},t.toggleCssClass=function(r,s){for(var u=r.className.split(/\s+/g),o=!0;;){var c=u.indexOf(s);if(c==-1)break;o=!1,u.splice(c,1)}return o&&u.push(s),r.className=u.join(" "),o},t.setCssClass=function(r,s,u){u?t.addCssClass(r,s):t.removeCssClass(r,s)},t.hasCssString=function(r,s){var u=0,o;if(s=s||document,s.createStyleSheet&&(o=s.styleSheets)){for(;u<o.length;)if(o[u++].owningElement.id===r)return!0}else if(o=s.getElementsByTagName("style")){for(;u<o.length;)if(o[u++].id===r)return!0}return!1},t.importCssString=function(s,u,o){if(o=o||document,u&&t.hasCssString(u,o))return null;var c;u&&(s+=` -/*# sourceURL=ace/css/`+u+" */"),o.createStyleSheet?(c=o.createStyleSheet(),c.cssText=s,u&&(c.owningElement.id=u)):(c=t.createElement("style"),c.appendChild(o.createTextNode(s)),u&&(c.id=u),t.getDocumentHead(o).appendChild(c))},t.importCssStylsheet=function(r,s){if(s.createStyleSheet)s.createStyleSheet(r);else{var u=t.createElement("link");u.rel="stylesheet",u.href=r,t.getDocumentHead(s).appendChild(u)}},t.getInnerWidth=function(r){return parseInt(t.computedStyle(r,"paddingLeft"),10)+parseInt(t.computedStyle(r,"paddingRight"),10)+r.clientWidth},t.getInnerHeight=function(r){return parseInt(t.computedStyle(r,"paddingTop"),10)+parseInt(t.computedStyle(r,"paddingBottom"),10)+r.clientHeight},t.scrollbarWidth=function(r){var s=t.createElement("ace_inner");s.style.width="100%",s.style.minWidth="0px",s.style.height="200px",s.style.display="block";var u=t.createElement("ace_outer"),o=u.style;o.position="absolute",o.left="-10000px",o.overflow="hidden",o.width="200px",o.minWidth="0px",o.height="150px",o.display="block",u.appendChild(s);var c=r.documentElement;c.appendChild(u);var a=s.offsetWidth;o.overflow="scroll";var f=s.offsetWidth;return a==f&&(f=u.clientWidth),c.removeChild(u),a-f},typeof document=="undefined"){t.importCssString=function(){};return}window.pageYOffset!==void 0?(t.getPageScrollTop=function(){return window.pageYOffset},t.getPageScrollLeft=function(){return window.pageXOffset}):(t.getPageScrollTop=function(){return document.body.scrollTop},t.getPageScrollLeft=function(){return document.body.scrollLeft}),window.getComputedStyle?t.computedStyle=function(r,s){return s?(window.getComputedStyle(r,"")||{})[s]||"":window.getComputedStyle(r,"")||{}}:t.computedStyle=function(r,s){return s?r.currentStyle[s]:r.currentStyle},t.setInnerHtml=function(r,s){var u=r.cloneNode(!1);return u.innerHTML=s,r.parentNode.replaceChild(u,r),u},"textContent"in document.documentElement?(t.setInnerText=function(r,s){r.textContent=s},t.getInnerText=function(r){return r.textContent}):(t.setInnerText=function(r,s){r.innerText=s},t.getInnerText=function(r){return r.innerText}),t.getParentWindow=function(r){return r.defaultView||r.parentWindow}});ace.define("ace/lib/oop",["require","exports","module"],function(e,t,n){t.inherits=function(i,r){i.super_=r,i.prototype=Object.create(r.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(i,r){for(var s in r)i[s]=r[s];return i},t.implement=function(i,r){t.mixin(i,r)}});ace.define("ace/lib/keys",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop"],function(e,t,n){e("./fixoldbrowsers");var i=e("./oop"),r=function(){var s={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,super:8,meta:8,command:8,cmd:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",96:"Numpad0",97:"Numpad1",98:"Numpad2",99:"Numpad3",100:"Numpad4",101:"Numpad5",102:"Numpad6",103:"Numpad7",104:"Numpad8",105:"Numpad9","-13":"NumpadEnter",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",111:"/",106:"*"}},u,o;for(o in s.FUNCTION_KEYS)u=s.FUNCTION_KEYS[o].toLowerCase(),s[u]=parseInt(o,10);for(o in s.PRINTABLE_KEYS)u=s.PRINTABLE_KEYS[o].toLowerCase(),s[u]=parseInt(o,10);return i.mixin(s,s.MODIFIER_KEYS),i.mixin(s,s.PRINTABLE_KEYS),i.mixin(s,s.FUNCTION_KEYS),s.enter=s.return,s.escape=s.esc,s.del=s.delete,s[173]="-",function(){for(var c=["cmd","ctrl","alt","shift"],a=Math.pow(2,c.length);a--;)s.KEY_MODS[a]=c.filter(function(f){return a&s.KEY_MODS[f]}).join("-")+"-"}(),s.KEY_MODS[0]="",s.KEY_MODS[-1]="input-",s}();i.mixin(t,r),t.keyCodeToString=function(s){var u=r[s];return typeof u!="string"&&(u=String.fromCharCode(s)),u.toLowerCase()}});ace.define("ace/lib/useragent",["require","exports","module"],function(e,t,n){if(t.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS},typeof navigator=="object"){var i=(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase(),r=navigator.userAgent;t.isWin=i=="win",t.isMac=i=="mac",t.isLinux=i=="linux",t.isIE=navigator.appName=="Microsoft Internet Explorer"||navigator.appName.indexOf("MSAppHost")>=0?parseFloat((r.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((r.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=(window.Controllers||window.controllers)&&window.navigator.product==="Gecko",t.isOldGecko=t.isGecko&&parseInt((r.match(/rv:(\d+)/)||[])[1],10)<4,t.isOpera=window.opera&&Object.prototype.toString.call(window.opera)=="[object Opera]",t.isWebKit=parseFloat(r.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(r.split(" Chrome/")[1])||void 0,t.isAIR=r.indexOf("AdobeAIR")>=0,t.isIPad=r.indexOf("iPad")>=0,t.isChromeOS=r.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(r)&&!window.MSStream,t.isIOS&&(t.isMac=!0)}});ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,n){var i=e("./keys"),r=e("./useragent"),s=null,u=0;t.addListener=function(l,h,d){if(l.addEventListener)return l.addEventListener(h,d,!1);if(l.attachEvent){var g=function(){d.call(l,window.event)};d._wrapper=g,l.attachEvent("on"+h,g)}},t.removeListener=function(l,h,d){if(l.removeEventListener)return l.removeEventListener(h,d,!1);l.detachEvent&&l.detachEvent("on"+h,d._wrapper||d)},t.stopEvent=function(l){return t.stopPropagation(l),t.preventDefault(l),!1},t.stopPropagation=function(l){l.stopPropagation?l.stopPropagation():l.cancelBubble=!0},t.preventDefault=function(l){l.preventDefault?l.preventDefault():l.returnValue=!1},t.getButton=function(l){return l.type=="dblclick"?0:l.type=="contextmenu"||r.isMac&&l.ctrlKey&&!l.altKey&&!l.shiftKey?2:l.preventDefault?l.button:{1:0,2:2,4:1}[l.button]},t.capture=function(l,h,d){function g(p){h&&h(p),d&&d(p),t.removeListener(document,"mousemove",h,!0),t.removeListener(document,"mouseup",g,!0),t.removeListener(document,"dragstart",g,!0)}return t.addListener(document,"mousemove",h,!0),t.addListener(document,"mouseup",g,!0),t.addListener(document,"dragstart",g,!0),g},t.addTouchMoveListener=function(l,h){var d,g;t.addListener(l,"touchstart",function(p){var m=p.touches,w=m[0];d=w.clientX,g=w.clientY}),t.addListener(l,"touchmove",function(p){var m=p.touches;if(!(m.length>1)){var w=m[0];p.wheelX=d-w.clientX,p.wheelY=g-w.clientY,d=w.clientX,g=w.clientY,h(p)}})},t.addMouseWheelListener=function(l,h){"onmousewheel"in l?t.addListener(l,"mousewheel",function(d){var g=8;d.wheelDeltaX!==void 0?(d.wheelX=-d.wheelDeltaX/g,d.wheelY=-d.wheelDeltaY/g):(d.wheelX=0,d.wheelY=-d.wheelDelta/g),h(d)}):"onwheel"in l?t.addListener(l,"wheel",function(d){var g=.35;switch(d.deltaMode){case d.DOM_DELTA_PIXEL:d.wheelX=d.deltaX*g||0,d.wheelY=d.deltaY*g||0;break;case d.DOM_DELTA_LINE:case d.DOM_DELTA_PAGE:d.wheelX=(d.deltaX||0)*5,d.wheelY=(d.deltaY||0)*5;break}h(d)}):t.addListener(l,"DOMMouseScroll",function(d){d.axis&&d.axis==d.HORIZONTAL_AXIS?(d.wheelX=(d.detail||0)*5,d.wheelY=0):(d.wheelX=0,d.wheelY=(d.detail||0)*5),h(d)})},t.addMultiMouseDownListener=function(l,h,d,g){var p=0,m,w,v,A={2:"dblclick",3:"tripleclick",4:"quadclick"};function _(b){if(t.getButton(b)!==0?p=0:b.detail>1?(p++,p>4&&(p=1)):p=1,r.isIE){var x=Math.abs(b.clientX-m)>5||Math.abs(b.clientY-w)>5;(!v||x)&&(p=1),v&&clearTimeout(v),v=setTimeout(function(){v=null},h[p-1]||600),p==1&&(m=b.clientX,w=b.clientY)}if(b._clicks=p,d[g]("mousedown",b),p>4)p=0;else if(p>1)return d[g](A[p],b)}function E(b){p=2,v&&clearTimeout(v),v=setTimeout(function(){v=null},h[p-1]||600),d[g]("mousedown",b),d[g](A[p],b)}Array.isArray(l)||(l=[l]),l.forEach(function(b){t.addListener(b,"mousedown",_),r.isOldIE&&t.addListener(b,"dblclick",E)})};var o=r.isMac&&r.isOpera&&!("KeyboardEvent"in window)?function(l){return 0|(l.metaKey?1:0)|(l.altKey?2:0)|(l.shiftKey?4:0)|(l.ctrlKey?8:0)}:function(l){return 0|(l.ctrlKey?1:0)|(l.altKey?2:0)|(l.shiftKey?4:0)|(l.metaKey?8:0)};t.getModifierString=function(l){return i.KEY_MODS[o(l)]};function c(l,h,d){var g=o(h);if(!r.isMac&&s){if(h.getModifierState&&(h.getModifierState("OS")||h.getModifierState("Win"))&&(g|=8),s.altGr)if((3&g)!=3)s.altGr=0;else return;if(d===18||d===17){var p="location"in h?h.location:h.keyLocation;if(d===17&&p===1)s[d]==1&&(u=h.timeStamp);else if(d===18&&g===3&&p===2){var m=h.timeStamp-u;m<50&&(s.altGr=!0)}}}if(d in i.MODIFIER_KEYS&&(d=-1),g&8&&d>=91&&d<=93&&(d=-1),!g&&d===13){var p="location"in h?h.location:h.keyLocation;if(p===3&&(l(h,g,-d),h.defaultPrevented))return}if(r.isChromeOS&&g&8){if(l(h,g,d),h.defaultPrevented)return;g&=-9}return!g&&!(d in i.FUNCTION_KEYS)&&!(d in i.PRINTABLE_KEYS)?!1:l(h,g,d)}t.addCommandKeyListener=function(l,h){var d=t.addListener;if(r.isOldGecko||r.isOpera&&!("KeyboardEvent"in window)){var g=null;d(l,"keydown",function(m){g=m.keyCode}),d(l,"keypress",function(m){return c(h,m,g)})}else{var p=null;d(l,"keydown",function(m){s[m.keyCode]=(s[m.keyCode]||0)+1;var w=c(h,m,m.keyCode);return p=m.defaultPrevented,w}),d(l,"keypress",function(m){p&&(m.ctrlKey||m.altKey||m.shiftKey||m.metaKey)&&(t.stopEvent(m),p=null)}),d(l,"keyup",function(m){s[m.keyCode]=null}),s||(a(),d(window,"focus",a))}};function a(){s=Object.create(null)}if(typeof window=="object"&&window.postMessage&&!r.isOldIE){var f=1;t.nextTick=function(l,h){h=h||window;var d="zero-timeout-message-"+f;t.addListener(h,"message",function g(p){p.data==d&&(t.stopPropagation(p),t.removeListener(h,"message",g),l())}),h.postMessage(d,"*")}}t.nextFrame=typeof window=="object"&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(l){setTimeout(l,17)}});ace.define("ace/lib/lang",["require","exports","module"],function(e,t,n){t.last=function(s){return s[s.length-1]},t.stringReverse=function(s){return s.split("").reverse().join("")},t.stringRepeat=function(s,u){for(var o="";u>0;)u&1&&(o+=s),(u>>=1)&&(s+=s);return o};var i=/^\s\s*/,r=/\s\s*$/;t.stringTrimLeft=function(s){return s.replace(i,"")},t.stringTrimRight=function(s){return s.replace(r,"")},t.copyObject=function(s){var u={};for(var o in s)u[o]=s[o];return u},t.copyArray=function(s){for(var u=[],o=0,c=s.length;o<c;o++)s[o]&&typeof s[o]=="object"?u[o]=this.copyObject(s[o]):u[o]=s[o];return u},t.deepCopy=function s(u){if(typeof u!="object"||!u)return u;var o;if(Array.isArray(u)){o=[];for(var c=0;c<u.length;c++)o[c]=s(u[c]);return o}if(Object.prototype.toString.call(u)!=="[object Object]")return u;o={};for(var c in u)o[c]=s(u[c]);return o},t.arrayToMap=function(s){for(var u={},o=0;o<s.length;o++)u[s[o]]=1;return u},t.createMap=function(s){var u=Object.create(null);for(var o in s)u[o]=s[o];return u},t.arrayRemove=function(s,u){for(var o=0;o<=s.length;o++)u===s[o]&&s.splice(o,1)},t.escapeRegExp=function(s){return s.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},t.escapeHTML=function(s){return s.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<")},t.getMatchOffsets=function(s,u){var o=[];return s.replace(u,function(c){o.push({offset:arguments[arguments.length-2],length:c.length})}),o},t.deferredCall=function(s){var u=null,o=function(){u=null,s()},c=function(a){return c.cancel(),u=setTimeout(o,a||0),c};return c.schedule=c,c.call=function(){return this.cancel(),s(),c},c.cancel=function(){return clearTimeout(u),u=null,c},c.isPending=function(){return u},c},t.delayedCall=function(s,u){var o=null,c=function(){o=null,s()},a=function(f){o==null&&(o=setTimeout(c,f||u))};return a.delay=function(f){o&&clearTimeout(o),o=setTimeout(c,f||u)},a.schedule=a,a.call=function(){this.cancel(),s()},a.cancel=function(){o&&clearTimeout(o),o=null},a.isPending=function(){return o},a}});ace.define("ace/keyboard/textinput_ios",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/lib/keys"],function(e,t,n){var i=e("../lib/event"),r=e("../lib/useragent"),s=e("../lib/dom"),u=e("../lib/lang"),o=e("../lib/keys"),c=o.KEY_MODS,a=r.isChrome<18,f=r.isIE,l=function(h,d){var g=s.createElement("textarea");g.className=r.isIOS?"ace_text-input ace_text-input-ios":"ace_text-input",r.isTouchPad&&g.setAttribute("x-palm-disable-auto-cap",!0),g.setAttribute("wrap","off"),g.setAttribute("autocorrect","off"),g.setAttribute("autocapitalize","off"),g.setAttribute("spellcheck",!1),g.style.opacity="0",h.insertBefore(g,h.firstChild);var p=` - aaaa a -`,m=!1,w=!1,v=!1,A=!1,_="",E=!0;try{var b=document.activeElement===g}catch{}i.addListener(g,"blur",function(ee){d.onBlur(ee),b=!1}),i.addListener(g,"focus",function(ee){b=!0,d.onFocus(ee),C()}),this.focus=function(){if(_)return g.focus();g.style.position="fixed",g.focus()},this.blur=function(){g.blur()},this.isFocused=function(){return b};var x=u.delayedCall(function(){b&&C(E)}),y=u.delayedCall(function(){A||(g.value=p,b&&C())});function C(ee){if(!A){if(A=!0,R)ce=0,he=ee?0:g.value.length-1;else var ce=4,he=5;try{g.setSelectionRange(ce,he)}catch{}A=!1}}function B(){A||(g.value=p,r.isWebKit&&y.schedule())}r.isWebKit||d.addEventListener("changeSelection",function(){d.selection.isEmpty()!=E&&(E=!E,x.schedule())}),B(),b&&d.onFocus();var T=function(ee){return ee.selectionStart===0&&ee.selectionEnd===ee.value.length},M=function(ee){T(g)?(d.selectAll(),C()):R&&C(d.selection.isEmpty())},R=null;this.setInputHandler=function(ee){R=ee},this.getInputHandler=function(){return R};var I=!1,H=function(ee){g.selectionStart===4&&g.selectionEnd===5||(R&&(ee=R(ee),R=null),v?(C(),ee&&d.onPaste(ee),v=!1):ee==p.substr(0)&&g.selectionStart===4?I?d.execCommand("del",{source:"ace"}):d.execCommand("backspace",{source:"ace"}):m||(ee.substring(0,9)==p&&ee.length>p.length?ee=ee.substr(9):ee.substr(0,4)==p.substr(0,4)?ee=ee.substr(4,ee.length-p.length+1):ee.charAt(ee.length-1)==p.charAt(0)&&(ee=ee.slice(0,-1)),ee==p.charAt(0)||ee.charAt(ee.length-1)==p.charAt(0)&&(ee=ee.slice(0,-1)),ee&&d.onTextInput(ee)),m&&(m=!1),I&&(I=!1))},P=function(ee){if(!A){var ce=g.value;H(ce),B()}},j=function(ee,ce,he){var je=ee.clipboardData||window.clipboardData;if(!(!je||a)){var Ve=f||he?"Text":"text/plain";try{return ce?je.setData(Ve,ce)!==!1:je.getData(Ve)}catch(ge){if(!he)return j(ge,ce,!0)}}},V=function(ee,ce){var he=d.getCopyText();if(!he)return i.preventDefault(ee);j(ee,he)?(r.isIOS&&(w=ce,g.value=` - aa`+he+`a a -`,g.setSelectionRange(4,4+he.length),m={value:he}),ce?d.onCut():d.onCopy(),r.isIOS||i.preventDefault(ee)):(m=!0,g.value=he,g.select(),setTimeout(function(){m=!1,B(),C(),ce?d.onCut():d.onCopy()}))},K=function(ee){V(ee,!0)},N=function(ee){V(ee,!1)},k=function(ee){var ce=j(ee);typeof ce=="string"?(ce&&d.onPaste(ce,ee),r.isIE&&setTimeout(C),i.preventDefault(ee)):(g.value="",v=!0)};i.addCommandKeyListener(g,d.onCommandKey.bind(d)),i.addListener(g,"select",M),i.addListener(g,"input",P),i.addListener(g,"cut",K),i.addListener(g,"copy",N),i.addListener(g,"paste",k);var $=function(ee){A||!d.onCompositionStart||d.$readOnly||(A={},A.canUndo=d.session.$undoManager,d.onCompositionStart(),setTimeout(z,0),d.on("mousedown",U),A.canUndo&&!d.selection.isEmpty()&&(d.insert(""),d.session.markUndoGroup(),d.selection.clearSelection()),d.session.markUndoGroup())},z=function(){if(!(!A||!d.onCompositionUpdate||d.$readOnly)){var ee=g.value.replace(/\x01/g,"");if(A.lastValue!==ee&&(d.onCompositionUpdate(ee),A.lastValue&&d.undo(),A.canUndo&&(A.lastValue=ee),A.lastValue)){var ce=d.selection.getRange();d.insert(A.lastValue),d.session.markUndoGroup(),A.range=d.selection.getRange(),d.selection.setRange(ce),d.selection.clearSelection()}}},U=function(ee){if(!(!d.onCompositionEnd||d.$readOnly)){var ce=A;A=!1;var he=setTimeout(function(){he=null;var Ve=g.value.replace(/\x01/g,"");A||(Ve==ce.lastValue?B():!ce.lastValue&&Ve&&(B(),H(Ve)))});R=function(ge){return he&&clearTimeout(he),ge=ge.replace(/\x01/g,""),ge==ce.lastValue?"":(ce.lastValue&&he&&d.undo(),ge)},d.onCompositionEnd(),d.removeListener("mousedown",U),ee.type=="compositionend"&&ce.range&&d.selection.setRange(ce.range);var je=!!r.isChrome&&r.isChrome>=53||!!r.isWebKit&&r.isWebKit>=603;je&&P()}},G=u.delayedCall(z,50);i.addListener(g,"compositionstart",$),r.isGecko?i.addListener(g,"text",function(){G.schedule()}):(i.addListener(g,"keyup",function(){G.schedule()}),i.addListener(g,"keydown",function(){G.schedule()})),i.addListener(g,"compositionend",U),this.getElement=function(){return g},this.setReadOnly=function(ee){g.readOnly=ee},this.onContextMenu=function(ee){I=!0,C(d.selection.isEmpty()),d._emit("nativecontextmenu",{target:d,domEvent:ee}),this.moveToMouse(ee,!0)},this.moveToMouse=function(ee,ce){_||(_=g.style.cssText),g.style.cssText=(ce?"z-index:100000;":"")+"height:"+g.style.height+";"+(r.isIE?"opacity:0.1;":"");var he=d.container.getBoundingClientRect(),je=s.computedStyle(d.container),Ve=he.top+(parseInt(je.borderTopWidth)||0),ge=he.left+(parseInt(he.borderLeftWidth)||0),Tt=he.bottom-Ve-g.clientHeight-2,Re=function(Te){g.style.left=Te.clientX-ge-2+"px",g.style.top=Math.min(Te.clientY-Ve-2,Tt)+"px"};Re(ee),ee.type=="mousedown"&&(d.renderer.$keepTextAreaAtCursor&&(d.renderer.$keepTextAreaAtCursor=null),clearTimeout(Q),r.isWin&&i.capture(d.container,Re,X))},this.onContextMenuClose=X;var Q;function X(){clearTimeout(Q),Q=setTimeout(function(){_&&(g.style.cssText=_,_=""),d.renderer.$keepTextAreaAtCursor==null&&(d.renderer.$keepTextAreaAtCursor=!0,d.renderer.$moveTextAreaToCursor())},0)}var te=function(ee){d.textInput.onContextMenu(ee),X()};if(i.addListener(g,"mouseup",te),i.addListener(g,"mousedown",function(ee){ee.preventDefault(),X()}),i.addListener(d.renderer.scroller,"contextmenu",te),i.addListener(g,"contextmenu",te),r.isIOS){var le=null,ye=!1;h.addEventListener("keydown",function(ee){le&&clearTimeout(le),ye=!0}),h.addEventListener("keyup",function(ee){le=setTimeout(function(){ye=!1},100)});var ve=function(ee){if(document.activeElement===g&&!ye){if(w)return setTimeout(function(){w=!1},100);var ce=g.selectionStart,he=g.selectionEnd;if(g.setSelectionRange(4,5),ce==he)switch(ce){case 0:d.onCommandKey(null,0,o.up);break;case 1:d.onCommandKey(null,0,o.home);break;case 2:d.onCommandKey(null,c.option,o.left);break;case 4:d.onCommandKey(null,0,o.left);break;case 5:d.onCommandKey(null,0,o.right);break;case 7:d.onCommandKey(null,c.option,o.right);break;case 8:d.onCommandKey(null,0,o.end);break;case 9:d.onCommandKey(null,0,o.down);break}else{switch(he){case 6:d.onCommandKey(null,c.shift,o.right);break;case 7:d.onCommandKey(null,c.shift|c.option,o.right);break;case 8:d.onCommandKey(null,c.shift,o.end);break;case 9:d.onCommandKey(null,c.shift,o.down);break}switch(ce){case 0:d.onCommandKey(null,c.shift,o.up);break;case 1:d.onCommandKey(null,c.shift,o.home);break;case 2:d.onCommandKey(null,c.shift|c.option,o.left);break;case 3:d.onCommandKey(null,c.shift,o.left);break}}}};document.addEventListener("selectionchange",ve),d.on("destroy",function(){document.removeEventListener("selectionchange",ve)})}};t.TextInput=l});ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/keyboard/textinput_ios"],function(e,t,n){var i=e("../lib/event"),r=e("../lib/useragent"),s=e("../lib/dom"),u=e("../lib/lang"),o=r.isChrome<18,c=r.isIE,a=e("./textinput_ios").TextInput,f=function(l,h){if(r.isIOS)return a.call(this,l,h);var d=s.createElement("textarea");d.className="ace_text-input",d.setAttribute("wrap","off"),d.setAttribute("autocorrect","off"),d.setAttribute("autocapitalize","off"),d.setAttribute("spellcheck",!1),d.style.opacity="0",l.insertBefore(d,l.firstChild);var g="\u2028\u2028",p=!1,m=!1,w=!1,v="",A=!0;try{var _=document.activeElement===d}catch{}i.addListener(d,"blur",function(X){h.onBlur(X),_=!1}),i.addListener(d,"focus",function(X){_=!0,h.onFocus(X),x()}),this.focus=function(){if(v)return d.focus();var X=d.style.top;d.style.position="fixed",d.style.top="0px",d.focus(),setTimeout(function(){d.style.position="",d.style.top=="0px"&&(d.style.top=X)},0)},this.blur=function(){d.blur()},this.isFocused=function(){return _};var E=u.delayedCall(function(){_&&x(A)}),b=u.delayedCall(function(){w||(d.value=g,_&&x())});function x(X){if(!w){if(w=!0,T)var te=0,le=X?0:d.value.length-1;else var te=X?2:1,le=2;try{d.setSelectionRange(te,le)}catch{}w=!1}}function y(){w||(d.value=g,r.isWebKit&&b.schedule())}r.isWebKit||h.addEventListener("changeSelection",function(){h.selection.isEmpty()!=A&&(A=!A,E.schedule())}),y(),_&&h.onFocus();var C=function(X){return X.selectionStart===0&&X.selectionEnd===X.value.length},B=function(X){p?p=!1:C(d)?(h.selectAll(),x()):T&&x(h.selection.isEmpty())},T=null;this.setInputHandler=function(X){T=X},this.getInputHandler=function(){return T};var M=!1,R=function(X){T&&(X=T(X),T=null),m?(x(),X&&h.onPaste(X),m=!1):X==g.charAt(0)?M?h.execCommand("del",{source:"ace"}):h.execCommand("backspace",{source:"ace"}):(X.substring(0,2)==g?X=X.substr(2):X.charAt(0)==g.charAt(0)?X=X.substr(1):X.charAt(X.length-1)==g.charAt(0)&&(X=X.slice(0,-1)),X.charAt(X.length-1)==g.charAt(0)&&(X=X.slice(0,-1)),X&&h.onTextInput(X)),M&&(M=!1)},I=function(X){if(!w){var te=d.value;R(te),y()}},H=function(X,te,le){var ye=X.clipboardData||window.clipboardData;if(!(!ye||o)){var ve=c||le?"Text":"text/plain";try{return te?ye.setData(ve,te)!==!1:ye.getData(ve)}catch(ee){if(!le)return H(ee,te,!0)}}},P=function(X,te){var le=h.getCopyText();if(!le)return i.preventDefault(X);H(X,le)?(te?h.onCut():h.onCopy(),i.preventDefault(X)):(p=!0,d.value=le,d.select(),setTimeout(function(){p=!1,y(),x(),te?h.onCut():h.onCopy()}))},j=function(X){P(X,!0)},V=function(X){P(X,!1)},K=function(X){var te=H(X);typeof te=="string"?(te&&h.onPaste(te,X),r.isIE&&setTimeout(x),i.preventDefault(X)):(d.value="",m=!0)};i.addCommandKeyListener(d,h.onCommandKey.bind(h)),i.addListener(d,"select",B),i.addListener(d,"input",I),i.addListener(d,"cut",j),i.addListener(d,"copy",V),i.addListener(d,"paste",K),(!("oncut"in d)||!("oncopy"in d)||!("onpaste"in d))&&i.addListener(l,"keydown",function(X){if(!(r.isMac&&!X.metaKey||!X.ctrlKey))switch(X.keyCode){case 67:V(X);break;case 86:K(X);break;case 88:j(X);break}});var N=function(X){w||!h.onCompositionStart||h.$readOnly||(w={},w.canUndo=h.session.$undoManager,h.onCompositionStart(),setTimeout(k,0),h.on("mousedown",$),w.canUndo&&!h.selection.isEmpty()&&(h.insert(""),h.session.markUndoGroup(),h.selection.clearSelection()),h.session.markUndoGroup())},k=function(){if(!(!w||!h.onCompositionUpdate||h.$readOnly)){var X=d.value.replace(/\u2028/g,"");if(w.lastValue!==X&&(h.onCompositionUpdate(X),w.lastValue&&h.undo(),w.canUndo&&(w.lastValue=X),w.lastValue)){var te=h.selection.getRange();h.insert(w.lastValue),h.session.markUndoGroup(),w.range=h.selection.getRange(),h.selection.setRange(te),h.selection.clearSelection()}}},$=function(X){if(!(!h.onCompositionEnd||h.$readOnly)){var te=w;w=!1;var le=setTimeout(function(){le=null;var ve=d.value.replace(/\u2028/g,"");w||(ve==te.lastValue?y():!te.lastValue&&ve&&(y(),R(ve)))});T=function(ee){return le&&clearTimeout(le),ee=ee.replace(/\u2028/g,""),ee==te.lastValue?"":(te.lastValue&&le&&h.undo(),ee)},h.onCompositionEnd(),h.removeListener("mousedown",$),X.type=="compositionend"&&te.range&&h.selection.setRange(te.range);var ye=!!r.isChrome&&r.isChrome>=53||!!r.isWebKit&&r.isWebKit>=603;ye&&I()}},z=u.delayedCall(k,50);i.addListener(d,"compositionstart",N),r.isGecko?i.addListener(d,"text",function(){z.schedule()}):(i.addListener(d,"keyup",function(){z.schedule()}),i.addListener(d,"keydown",function(){z.schedule()})),i.addListener(d,"compositionend",$),this.getElement=function(){return d},this.setReadOnly=function(X){d.readOnly=X},this.onContextMenu=function(X){M=!0,x(h.selection.isEmpty()),h._emit("nativecontextmenu",{target:h,domEvent:X}),this.moveToMouse(X,!0)},this.moveToMouse=function(X,te){v||(v=d.style.cssText),d.style.cssText=(te?"z-index:100000;":"")+"height:"+d.style.height+";"+(r.isIE?"opacity:0.1;":"");var le=h.container.getBoundingClientRect(),ye=s.computedStyle(h.container),ve=le.top+(parseInt(ye.borderTopWidth)||0),ee=le.left+(parseInt(le.borderLeftWidth)||0),ce=le.bottom-ve-d.clientHeight-2,he=function(je){d.style.left=je.clientX-ee-2+"px",d.style.top=Math.min(je.clientY-ve-2,ce)+"px"};he(X),X.type=="mousedown"&&(h.renderer.$keepTextAreaAtCursor&&(h.renderer.$keepTextAreaAtCursor=null),clearTimeout(U),r.isWin&&i.capture(h.container,he,G))},this.onContextMenuClose=G;var U;function G(){clearTimeout(U),U=setTimeout(function(){v&&(d.style.cssText=v,v=""),h.renderer.$keepTextAreaAtCursor==null&&(h.renderer.$keepTextAreaAtCursor=!0,h.renderer.$moveTextAreaToCursor())},0)}var Q=function(X){h.textInput.onContextMenu(X),G()};i.addListener(d,"mouseup",Q),i.addListener(d,"mousedown",function(X){X.preventDefault(),G()}),i.addListener(h.renderer.scroller,"contextmenu",Q),i.addListener(d,"contextmenu",Q)};t.TextInput=f});ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,n){e("../lib/dom"),e("../lib/event");var i=e("../lib/useragent"),r=0,s=250;function u(a){a.$clickSelection=null;var f=a.editor;f.setDefaultHandler("mousedown",this.onMouseDown.bind(a)),f.setDefaultHandler("dblclick",this.onDoubleClick.bind(a)),f.setDefaultHandler("tripleclick",this.onTripleClick.bind(a)),f.setDefaultHandler("quadclick",this.onQuadClick.bind(a)),f.setDefaultHandler("mousewheel",this.onMouseWheel.bind(a)),f.setDefaultHandler("touchmove",this.onTouchMove.bind(a));var l=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];l.forEach(function(h){a[h]=this[h]},this),a.selectByLines=this.extendSelectionBy.bind(a,"getLineRange"),a.selectByWords=this.extendSelectionBy.bind(a,"getWordRange")}(function(){this.onMouseDown=function(a){var f=a.inSelection(),l=a.getDocumentPosition();this.mousedownEvent=a;var h=this.editor,d=a.getButton();if(d!==0){var g=h.getSelectionRange(),p=g.isEmpty();h.$blockScrolling++,(p||d==1)&&h.selection.moveToPosition(l),h.$blockScrolling--,d==2&&(h.textInput.onContextMenu(a.domEvent),i.isMozilla||a.preventDefault());return}if(this.mousedownEvent.time=Date.now(),f&&!h.isFocused()&&(h.focus(),this.$focusTimout&&!this.$clickSelection&&!h.inMultiSelectMode)){this.setState("focusWait"),this.captureMouse(a);return}return this.captureMouse(a),this.startSelect(l,a.domEvent._clicks>1),a.preventDefault()},this.startSelect=function(a,f){a=a||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var l=this.editor;l.$blockScrolling++,this.mousedownEvent.getShiftKey()?l.selection.selectToPosition(a):f||l.selection.moveToPosition(a),f||this.select(),l.renderer.scroller.setCapture&&l.renderer.scroller.setCapture(),l.setStyle("ace_selecting"),this.setState("select"),l.$blockScrolling--},this.select=function(){var a,f=this.editor,l=f.renderer.screenToTextCoordinates(this.x,this.y);if(f.$blockScrolling++,this.$clickSelection){var h=this.$clickSelection.comparePoint(l);if(h==-1)a=this.$clickSelection.end;else if(h==1)a=this.$clickSelection.start;else{var d=c(this.$clickSelection,l);l=d.cursor,a=d.anchor}f.selection.setSelectionAnchor(a.row,a.column)}f.selection.selectToPosition(l),f.$blockScrolling--,f.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(a){var f,l=this.editor,h=l.renderer.screenToTextCoordinates(this.x,this.y),d=l.selection[a](h.row,h.column);if(l.$blockScrolling++,this.$clickSelection){var g=this.$clickSelection.comparePoint(d.start),p=this.$clickSelection.comparePoint(d.end);if(g==-1&&p<=0)f=this.$clickSelection.end,(d.end.row!=h.row||d.end.column!=h.column)&&(h=d.start);else if(p==1&&g>=0)f=this.$clickSelection.start,(d.start.row!=h.row||d.start.column!=h.column)&&(h=d.end);else if(g==-1&&p==1)h=d.end,f=d.start;else{var m=c(this.$clickSelection,h);h=m.cursor,f=m.anchor}l.selection.setSelectionAnchor(f.row,f.column)}l.selection.selectToPosition(h),l.$blockScrolling--,l.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var a=o(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),f=Date.now();(a>r||f-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(a){var f=a.getDocumentPosition(),l=this.editor,h=l.session,d=h.getBracketRange(f);d?(d.isEmpty()&&(d.start.column--,d.end.column++),this.setState("select")):(d=l.selection.getWordRange(f.row,f.column),this.setState("selectByWords")),this.$clickSelection=d,this.select()},this.onTripleClick=function(a){var f=a.getDocumentPosition(),l=this.editor;this.setState("selectByLines");var h=l.getSelectionRange();h.isMultiLine()&&h.contains(f.row,f.column)?(this.$clickSelection=l.selection.getLineRange(h.start.row),this.$clickSelection.end=l.selection.getLineRange(h.end.row).end):this.$clickSelection=l.selection.getLineRange(f.row),this.select()},this.onQuadClick=function(a){var f=this.editor;f.selectAll(),this.$clickSelection=f.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(a){if(!a.getAccelKey()){a.getShiftKey()&&a.wheelY&&!a.wheelX&&(a.wheelX=a.wheelY,a.wheelY=0);var f=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var l=this.$lastScroll,h=a.domEvent.timeStamp,d=h-l.t,g=a.wheelX/d,p=a.wheelY/d;d<s&&(g=(g+l.vx)/2,p=(p+l.vy)/2);var m=Math.abs(g/p),w=!1;if(m>=1&&f.renderer.isScrollableBy(a.wheelX*a.speed,0)&&(w=!0),m<=1&&f.renderer.isScrollableBy(0,a.wheelY*a.speed)&&(w=!0),w)l.allowed=h;else if(h-l.allowed<s){var v=Math.abs(g)<=1.1*Math.abs(l.vx)&&Math.abs(p)<=1.1*Math.abs(l.vy);v?(w=!0,l.allowed=h):l.allowed=0}if(l.t=h,l.vx=g,l.vy=p,w)return f.renderer.scrollBy(a.wheelX*a.speed,a.wheelY*a.speed),a.stop()}},this.onTouchMove=function(a){this.editor._emit("mousewheel",a)}}).call(u.prototype),t.DefaultHandlers=u;function o(a,f,l,h){return Math.sqrt(Math.pow(l-a,2)+Math.pow(h-f,2))}function c(a,f){if(a.start.row==a.end.row)var l=2*f.column-a.start.column-a.end.column;else if(a.start.row==a.end.row-1&&!a.start.column&&!a.end.column)var l=f.column-4;else var l=2*f.row-a.start.row-a.end.row;return l<0?{cursor:a.start,anchor:a.end}:{cursor:a.end,anchor:a.start}}});ace.define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],function(e,t,n){e("./lib/oop");var i=e("./lib/dom");function r(s){this.isOpen=!1,this.$element=null,this.$parentNode=s}(function(){this.$init=function(){return this.$element=i.createElement("div"),this.$element.className="ace_tooltip",this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(s){i.setInnerText(this.getElement(),s)},this.setHtml=function(s){this.getElement().innerHTML=s},this.setPosition=function(s,u){this.getElement().style.left=s+"px",this.getElement().style.top=u+"px"},this.setClassName=function(s){i.addCssClass(this.getElement(),s)},this.show=function(s,u,o){s!=null&&this.setText(s),u!=null&&o!=null&&this.setPosition(u,o),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth},this.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)}}).call(r.prototype),t.Tooltip=r});ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],function(e,t,n){var i=e("../lib/dom"),r=e("../lib/oop"),s=e("../lib/event"),u=e("../tooltip").Tooltip;function o(a){var f=a.editor,l=f.renderer.$gutterLayer,h=new c(f.container);a.editor.setDefaultHandler("guttermousedown",function(A){if(!(!f.isFocused()||A.getButton()!=0)){var _=l.getRegion(A);if(_!="foldWidgets"){var E=A.getDocumentPosition().row,b=f.session.selection;if(A.getShiftKey())b.selectTo(E,0);else{if(A.domEvent.detail==2)return f.selectAll(),A.preventDefault();a.$clickSelection=f.selection.getLineRange(E)}return a.setState("selectByLines"),a.captureMouse(A),A.preventDefault()}}});var d,g,p;function m(){var A=g.getDocumentPosition().row,_=l.$annotations[A];if(!_)return w();var E=f.session.getLength();if(A==E){var b=f.renderer.pixelToScreenCoordinates(0,g.y).row,x=g.$pos;if(b>f.session.documentToScreenRow(x.row,x.column))return w()}if(p!=_)if(p=_.text.join("<br/>"),h.setHtml(p),h.show(),f._signal("showGutterTooltip",h),f.on("mousewheel",w),a.$tooltipFollowsMouse)v(g);else{var y=g.domEvent.target,C=y.getBoundingClientRect(),B=h.getElement().style;B.left=C.right+"px",B.top=C.bottom+"px"}}function w(){d&&(d=clearTimeout(d)),p&&(h.hide(),p=null,f._signal("hideGutterTooltip",h),f.removeEventListener("mousewheel",w))}function v(A){h.setPosition(A.x,A.y)}a.editor.setDefaultHandler("guttermousemove",function(A){var _=A.domEvent.target||A.domEvent.srcElement;if(i.hasCssClass(_,"ace_fold-widget"))return w();p&&a.$tooltipFollowsMouse&&v(A),g=A,!d&&(d=setTimeout(function(){d=null,g&&!a.isMousePressed?m():w()},50))}),s.addListener(f.renderer.$gutter,"mouseout",function(A){g=null,!(!p||d)&&(d=setTimeout(function(){d=null,w()},50))}),f.on("changeSession",w)}function c(a){u.call(this,a)}r.inherits(c,u),function(){this.setPosition=function(a,f){var l=window.innerWidth||document.documentElement.clientWidth,h=window.innerHeight||document.documentElement.clientHeight,d=this.getWidth(),g=this.getHeight();a+=15,f+=15,a+d>l&&(a-=a+d-l),f+g>h&&(f-=20+g),u.prototype.setPosition.call(this,a,f)}}.call(c.prototype),t.GutterHandler=o});ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,n){var i=e("../lib/event"),r=e("../lib/useragent"),s=t.MouseEvent=function(u,o){this.domEvent=u,this.editor=o,this.x=this.clientX=u.clientX,this.y=this.clientY=u.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){i.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){i.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(this.$inSelection!==null)return this.$inSelection;var u=this.editor,o=u.getSelectionRange();if(o.isEmpty())this.$inSelection=!1;else{var c=this.getDocumentPosition();this.$inSelection=o.contains(c.row,c.column)}return this.$inSelection},this.getButton=function(){return i.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=r.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(s.prototype)});ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,n){var i=e("../lib/dom"),r=e("../lib/event"),s=e("../lib/useragent"),u=200,o=200,c=5;function a(l){var h=l.editor,d=i.createElement("img");d.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",s.isOpera&&(d.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;");var g=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];g.forEach(function(k){l[k]=this[k]},this),h.addEventListener("mousedown",this.onMouseDown.bind(l));var p=h.container,m,w,v,A,_,E,b=0,x,y,C,B,T;this.onDragStart=function(k){if(this.cancelDrag||!p.draggable){var $=this;return setTimeout(function(){$.startSelect(),$.captureMouse(k)},0),k.preventDefault()}_=h.getSelectionRange();var z=k.dataTransfer;z.effectAllowed=h.getReadOnly()?"copy":"copyMove",s.isOpera&&(h.container.appendChild(d),d.scrollTop=0),z.setDragImage&&z.setDragImage(d,0,0),s.isOpera&&h.container.removeChild(d),z.clearData(),z.setData("Text",h.session.getTextRange()),y=!0,this.setState("drag")},this.onDragEnd=function(k){if(p.draggable=!1,y=!1,this.setState(null),!h.getReadOnly()){var $=k.dataTransfer.dropEffect;!x&&$=="move"&&h.session.remove(h.getSelectionRange()),h.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(k){if(!(h.getReadOnly()||!K(k.dataTransfer)))return w=k.clientX,v=k.clientY,m||H(),b++,k.dataTransfer.dropEffect=x=N(k),r.preventDefault(k)},this.onDragOver=function(k){if(!(h.getReadOnly()||!K(k.dataTransfer)))return w=k.clientX,v=k.clientY,m||(H(),b++),j!==null&&(j=null),k.dataTransfer.dropEffect=x=N(k),r.preventDefault(k)},this.onDragLeave=function(k){if(b--,b<=0&&m)return P(),x=null,r.preventDefault(k)},this.onDrop=function(k){if(!!E){var $=k.dataTransfer;if(y)switch(x){case"move":_.contains(E.row,E.column)?_={start:E,end:E}:_=h.moveText(_,E);break;case"copy":_=h.moveText(_,E,!0);break}else{var z=$.getData("Text");_={start:E,end:h.session.insert(E,z)},h.focus(),x=null}return P(),r.preventDefault(k)}},r.addListener(p,"dragstart",this.onDragStart.bind(l)),r.addListener(p,"dragend",this.onDragEnd.bind(l)),r.addListener(p,"dragenter",this.onDragEnter.bind(l)),r.addListener(p,"dragover",this.onDragOver.bind(l)),r.addListener(p,"dragleave",this.onDragLeave.bind(l)),r.addListener(p,"drop",this.onDrop.bind(l));function M(k,$){var z=Date.now(),U=!$||k.row!=$.row,G=!$||k.column!=$.column;if(!B||U||G)h.$blockScrolling+=1,h.moveCursorToPosition(k),h.$blockScrolling-=1,B=z,T={x:w,y:v};else{var Q=f(T.x,T.y,w,v);Q>c?B=null:z-B>=o&&(h.renderer.scrollCursorIntoView(),B=null)}}function R(k,$){var z=Date.now(),U=h.renderer.layerConfig.lineHeight,G=h.renderer.layerConfig.characterWidth,Q=h.renderer.scroller.getBoundingClientRect(),X={x:{left:w-Q.left,right:Q.right-w},y:{top:v-Q.top,bottom:Q.bottom-v}},te=Math.min(X.x.left,X.x.right),le=Math.min(X.y.top,X.y.bottom),ye={row:k.row,column:k.column};te/G<=2&&(ye.column+=X.x.left<X.x.right?-3:2),le/U<=1&&(ye.row+=X.y.top<X.y.bottom?-1:1);var ve=k.row!=ye.row,ee=k.column!=ye.column,ce=!$||k.row!=$.row;ve||ee&&!ce?C?z-C>=u&&h.renderer.scrollCursorIntoView(ye):C=z:C=null}function I(){var k=E;E=h.renderer.screenToTextCoordinates(w,v),M(E,k),R(E,k)}function H(){_=h.selection.toOrientedRange(),m=h.session.addMarker(_,"ace_selection",h.getSelectionStyle()),h.clearSelection(),h.isFocused()&&h.renderer.$cursorLayer.setBlinking(!1),clearInterval(A),I(),A=setInterval(I,20),b=0,r.addListener(document,"mousemove",V)}function P(){clearInterval(A),h.session.removeMarker(m),m=null,h.$blockScrolling+=1,h.selection.fromOrientedRange(_),h.$blockScrolling-=1,h.isFocused()&&!y&&h.renderer.$cursorLayer.setBlinking(!h.getReadOnly()),_=null,E=null,b=0,C=null,B=null,r.removeListener(document,"mousemove",V)}var j=null;function V(){j==null&&(j=setTimeout(function(){j!=null&&m&&P()},20))}function K(k){var $=k.types;return!$||Array.prototype.some.call($,function(z){return z=="text/plain"||z=="Text"})}function N(k){var $=["copy","copymove","all","uninitialized"],z=["move","copymove","linkmove","all","uninitialized"],U=s.isMac?k.altKey:k.ctrlKey,G="uninitialized";try{G=k.dataTransfer.effectAllowed.toLowerCase()}catch{}var Q="none";return U&&$.indexOf(G)>=0?Q="copy":z.indexOf(G)>=0?Q="move":$.indexOf(G)>=0&&(Q="copy"),Q}}(function(){this.dragWait=function(){var l=Date.now()-this.mousedownEvent.time;l>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var l=this.editor.container;l.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(l){this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly()),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var l=this.editor,h=l.container;h.draggable=!0,l.renderer.$cursorLayer.setBlinking(!1),l.setStyle("ace_dragging");var d=s.isWin?"default":"move";l.renderer.setCursorStyle(d),this.setState("dragReady")},this.onMouseDrag=function(l){var h=this.editor.container;if(s.isIE&&this.state=="dragReady"){var d=f(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);d>3&&h.dragDrop()}if(this.state==="dragWait"){var d=f(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);d>0&&(h.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(l){if(!!this.$dragEnabled){this.mousedownEvent=l;var h=this.editor,d=l.inSelection(),g=l.getButton(),p=l.domEvent.detail||1;if(p===1&&g===0&&d){if(l.editor.inMultiSelectMode&&(l.getAccelKey()||l.getShiftKey()))return;this.mousedownEvent.time=Date.now();var m=l.domEvent.target||l.domEvent.srcElement;if("unselectable"in m&&(m.unselectable="on"),h.getDragDelay()){if(s.isWebKit){this.cancelDrag=!0;var w=h.container;w.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(l,this.onMouseDrag.bind(this)),l.defaultPrevented=!0}}}}).call(a.prototype);function f(l,h,d,g){return Math.sqrt(Math.pow(d-l,2)+Math.pow(g-h,2))}t.DragdropHandler=a});ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(e,t,n){var i=e("./dom");t.get=function(r,s){var u=new XMLHttpRequest;u.open("GET",r,!0),u.onreadystatechange=function(){u.readyState===4&&s(u.responseText)},u.send(null)},t.loadScript=function(r,s){var u=i.getDocumentHead(),o=document.createElement("script");o.src=r,u.appendChild(o),o.onload=o.onreadystatechange=function(c,a){(a||!o.readyState||o.readyState=="loaded"||o.readyState=="complete")&&(o=o.onload=o.onreadystatechange=null,a||s())}},t.qualifyURL=function(r){var s=document.createElement("a");return s.href=r,s.href}});ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t,n){var i={},r=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};i._emit=i._dispatchEvent=function(u,o){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var c=this._eventRegistry[u]||[],a=this._defaultHandlers[u];if(!(!c.length&&!a)){(typeof o!="object"||!o)&&(o={}),o.type||(o.type=u),o.stopPropagation||(o.stopPropagation=r),o.preventDefault||(o.preventDefault=s),c=c.slice();for(var f=0;f<c.length&&(c[f](o,this),!o.propagationStopped);f++);if(a&&!o.defaultPrevented)return a(o,this)}},i._signal=function(u,o){var c=(this._eventRegistry||{})[u];if(!!c){c=c.slice();for(var a=0;a<c.length;a++)c[a](o,this)}},i.once=function(u,o){var c=this;o&&this.addEventListener(u,function a(){c.removeEventListener(u,a),o.apply(null,arguments)})},i.setDefaultHandler=function(u,o){var c=this._defaultHandlers;if(c||(c=this._defaultHandlers={_disabled_:{}}),c[u]){var a=c[u],f=c._disabled_[u];f||(c._disabled_[u]=f=[]),f.push(a);var l=f.indexOf(o);l!=-1&&f.splice(l,1)}c[u]=o},i.removeDefaultHandler=function(u,o){var c=this._defaultHandlers;if(!!c){var a=c._disabled_[u];if(c[u]==o)c[u],a&&this.setDefaultHandler(u,a.pop());else if(a){var f=a.indexOf(o);f!=-1&&a.splice(f,1)}}},i.on=i.addEventListener=function(u,o,c){this._eventRegistry=this._eventRegistry||{};var a=this._eventRegistry[u];return a||(a=this._eventRegistry[u]=[]),a.indexOf(o)==-1&&a[c?"unshift":"push"](o),o},i.off=i.removeListener=i.removeEventListener=function(u,o){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[u];if(!!c){var a=c.indexOf(o);a!==-1&&c.splice(a,1)}},i.removeAllListeners=function(u){this._eventRegistry&&(this._eventRegistry[u]=[])},t.EventEmitter=i});ace.define("ace/lib/app_config",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){var i=e("./oop"),r=e("./event_emitter").EventEmitter,s={setOptions:function(a){Object.keys(a).forEach(function(f){this.setOption(f,a[f])},this)},getOptions:function(a){var f={};return a?Array.isArray(a)||(f=a,a=Object.keys(f)):a=Object.keys(this.$options),a.forEach(function(l){f[l]=this.getOption(l)},this),f},setOption:function(a,f){if(this["$"+a]!==f){var l=this.$options[a];if(!l)return u('misspelled option "'+a+'"');if(l.forwardTo)return this[l.forwardTo]&&this[l.forwardTo].setOption(a,f);l.handlesSet||(this["$"+a]=f),l&&l.set&&l.set.call(this,f)}},getOption:function(a){var f=this.$options[a];return f?f.forwardTo?this[f.forwardTo]&&this[f.forwardTo].getOption(a):f&&f.get?f.get.call(this):this["$"+a]:u('misspelled option "'+a+'"')}};function u(a){typeof console!="undefined"&&console.warn&&console.warn.apply(console,arguments)}function o(a,f){var l=new Error(a);l.data=f,typeof console=="object"&&console.error&&console.error(l),setTimeout(function(){throw l})}var c=function(){this.$defaultOptions={}};(function(){i.implement(this,r),this.defineOptions=function(a,f,l){return a.$options||(this.$defaultOptions[f]=a.$options={}),Object.keys(l).forEach(function(h){var d=l[h];typeof d=="string"&&(d={forwardTo:d}),d.name||(d.name=h),a.$options[d.name]=d,"initialValue"in d&&(a["$"+d.name]=d.initialValue)}),i.implement(a,s),this},this.resetOptions=function(a){Object.keys(a.$options).forEach(function(f){var l=a.$options[f];"value"in l&&a.setOption(f,l.value)})},this.setDefaultValue=function(a,f,l){var h=this.$defaultOptions[a]||(this.$defaultOptions[a]={});h[f]&&(h.forwardTo?this.setDefaultValue(h.forwardTo,f,l):h[f].value=l)},this.setDefaultValues=function(a,f){Object.keys(f).forEach(function(l){this.setDefaultValue(a,l,f[l])},this)},this.warn=u,this.reportError=o}).call(c.prototype),t.AppConfig=c});ace.define("ace/config",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/lib/net","ace/lib/app_config"],function(e,t,n){var i=e("./lib/lang");e("./lib/oop");var r=e("./lib/net"),s=e("./lib/app_config").AppConfig;n.exports=t=new s;var u=function(){return this||typeof window!="undefined"&&window}(),o={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:"",suffix:".js",$moduleUrls:{}};t.get=function(f){if(!o.hasOwnProperty(f))throw new Error("Unknown config key: "+f);return o[f]},t.set=function(f,l){if(!o.hasOwnProperty(f))throw new Error("Unknown config key: "+f);o[f]=l},t.all=function(){return i.copyObject(o)},t.moduleUrl=function(f,l){if(o.$moduleUrls[f])return o.$moduleUrls[f];var h=f.split("/");l=l||h[h.length-2]||"";var d=l=="snippets"?"/":"-",g=h[h.length-1];if(l=="worker"&&d=="-"){var p=new RegExp("^"+l+"[\\-_]|[\\-_]"+l+"$","g");g=g.replace(p,"")}(!g||g==l)&&h.length>1&&(g=h[h.length-2]);var m=o[l+"Path"];return m==null?m=o.basePath:d=="/"&&(l=d=""),m&&m.slice(-1)!="/"&&(m+="/"),m+l+d+g+this.get("suffix")},t.setModuleUrl=function(f,l){return o.$moduleUrls[f]=l},t.$loading={},t.loadModule=function(f,l){var h,d;Array.isArray(f)&&(d=f[0],f=f[1]);try{h=e(f)}catch{}if(h&&!t.$loading[f])return l&&l(h);if(t.$loading[f]||(t.$loading[f]=[]),t.$loading[f].push(l),!(t.$loading[f].length>1)){var g=function(){e([f],function(p){t._emit("load.module",{name:f,module:p});var m=t.$loading[f];t.$loading[f]=null,m.forEach(function(w){w&&w(p)})})};if(!t.get("packaged"))return g();r.loadScript(t.moduleUrl(f,d),g)}},c(!0);function c(f){if(!(!u||!u.document)){o.packaged=f||e.packaged||n.packaged||u.define&&(void 0).packaged;for(var l={},h="",d=document.currentScript||document._currentScript,g=d&&d.ownerDocument||document,p=g.getElementsByTagName("script"),m=0;m<p.length;m++){var w=p[m],v=w.src||w.getAttribute("src");if(!!v){for(var A=w.attributes,_=0,E=A.length;_<E;_++){var b=A[_];b.name.indexOf("data-ace-")===0&&(l[a(b.name.replace(/^data-ace-/,""))]=b.value)}var x=v.match(/^(.*)\/ace(\-\w+)?\.js(\?|$)/);x&&(h=x[1])}}h&&(l.base=l.base||h,l.packaged=!0),l.basePath=l.base,l.workerPath=l.workerPath||l.base,l.modePath=l.modePath||l.base,l.themePath=l.themePath||l.base,delete l.base;for(var y in l)typeof l[y]!="undefined"&&t.set(y,l[y])}}t.init=c;function a(f){return f.replace(/-(.)/g,function(l,h){return h.toUpperCase()})}});ace.define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event","ace/mouse/dragdrop_handler","ace/config"],function(e,t,n){var i=e("../lib/event"),r=e("../lib/useragent"),s=e("./default_handlers").DefaultHandlers,u=e("./default_gutter_handler").GutterHandler,o=e("./mouse_event").MouseEvent,c=e("./dragdrop_handler").DragdropHandler,a=e("../config"),f=function(l){var h=this;this.editor=l,new s(this),new u(this),new c(this);var d=function(m){var w=!document.hasFocus||!document.hasFocus()||!l.isFocused()&&document.activeElement==(l.textInput&&l.textInput.getElement());w&&window.focus(),l.focus()},g=l.renderer.getMouseEventTarget();i.addListener(g,"click",this.onMouseEvent.bind(this,"click")),i.addListener(g,"mousemove",this.onMouseMove.bind(this,"mousemove")),i.addMultiMouseDownListener([g,l.renderer.scrollBarV&&l.renderer.scrollBarV.inner,l.renderer.scrollBarH&&l.renderer.scrollBarH.inner,l.textInput&&l.textInput.getElement()].filter(Boolean),[400,300,250],this,"onMouseEvent"),i.addMouseWheelListener(l.container,this.onMouseWheel.bind(this,"mousewheel")),i.addTouchMoveListener(l.container,this.onTouchMove.bind(this,"touchmove"));var p=l.renderer.$gutter;i.addListener(p,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),i.addListener(p,"click",this.onMouseEvent.bind(this,"gutterclick")),i.addListener(p,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),i.addListener(p,"mousemove",this.onMouseEvent.bind(this,"guttermousemove")),i.addListener(g,"mousedown",d),i.addListener(p,"mousedown",d),r.isIE&&l.renderer.scrollBarV&&(i.addListener(l.renderer.scrollBarV.element,"mousedown",d),i.addListener(l.renderer.scrollBarH.element,"mousedown",d)),l.on("mousemove",function(m){if(!(h.state||h.$dragDelay||!h.$dragEnabled)){var w=l.renderer.screenToTextCoordinates(m.x,m.y),v=l.session.selection.getRange(),A=l.renderer;!v.isEmpty()&&v.insideStart(w.row,w.column)?A.setCursorStyle("default"):A.setCursorStyle("")}})};(function(){this.onMouseEvent=function(l,h){this.editor._emit(l,new o(h,this.editor))},this.onMouseMove=function(l,h){var d=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;!d||!d.length||this.editor._emit(l,new o(h,this.editor))},this.onMouseWheel=function(l,h){var d=new o(h,this.editor);d.speed=this.$scrollSpeed*2,d.wheelX=h.wheelX,d.wheelY=h.wheelY,this.editor._emit(l,d)},this.onTouchMove=function(l,h){var d=new o(h,this.editor);d.speed=1,d.wheelX=h.wheelX,d.wheelY=h.wheelY,this.editor._emit(l,d)},this.setState=function(l){this.state=l},this.captureMouse=function(l,h){this.x=l.x,this.y=l.y,this.isMousePressed=!0;var d=this.editor.renderer;d.$keepTextAreaAtCursor&&(d.$keepTextAreaAtCursor=null);var g=this,p=function(A){if(!!A){if(r.isWebKit&&!A.which&&g.releaseMouse)return g.releaseMouse();g.x=A.clientX,g.y=A.clientY,h&&h(A),g.mouseEvent=new o(A,g.editor),g.$mouseMoved=!0}},m=function(A){clearInterval(v),w(),g[g.state+"End"]&&g[g.state+"End"](A),g.state="",d.$keepTextAreaAtCursor==null&&(d.$keepTextAreaAtCursor=!0,d.$moveTextAreaToCursor()),g.isMousePressed=!1,g.$onCaptureMouseMove=g.releaseMouse=null,A&&g.onMouseEvent("mouseup",A)},w=function(){g[g.state]&&g[g.state](),g.$mouseMoved=!1};if(r.isOldIE&&l.domEvent.type=="dblclick")return setTimeout(function(){m(l)});g.$onCaptureMouseMove=p,g.releaseMouse=i.capture(this.editor.container,p,m);var v=setInterval(w,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var l=function(h){h&&h.domEvent&&h.domEvent.type!="contextmenu"||(this.editor.off("nativecontextmenu",l),h&&h.domEvent&&i.stopEvent(h.domEvent))}.bind(this);setTimeout(l,10),this.editor.on("nativecontextmenu",l)}}).call(f.prototype),a.defineOptions(f.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:r.isMac?150:0},dragEnabled:{initialValue:!0},focusTimout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),t.MouseHandler=f});ace.define("ace/mouse/fold_handler",["require","exports","module"],function(e,t,n){function i(r){r.on("click",function(s){var u=s.getDocumentPosition(),o=r.session,c=o.getFoldAt(u.row,u.column,1);c&&(s.getAccelKey()?o.removeFold(c):o.expandFold(c),s.stop())}),r.on("gutterclick",function(s){var u=r.renderer.$gutterLayer.getRegion(s);if(u=="foldWidgets"){var o=s.getDocumentPosition().row,c=r.session;c.foldWidgets&&c.foldWidgets[o]&&r.session.onFoldWidgetClick(o,s),r.isFocused()||r.focus(),s.stop()}}),r.on("gutterdblclick",function(s){var u=r.renderer.$gutterLayer.getRegion(s);if(u=="foldWidgets"){var o=s.getDocumentPosition().row,c=r.session,a=c.getParentFoldRangeData(o,!0),f=a.range||a.firstRange;if(f){o=f.start.row;var l=c.getFoldAt(o,c.getLine(o).length,1);l?c.removeFold(l):(c.addFold("...",f),r.renderer.scrollCursorIntoView({row:f.start.row,column:0}))}s.stop()}})}t.FoldHandler=i});ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(e,t,n){var i=e("../lib/keys"),r=e("../lib/event"),s=function(u){this.$editor=u,this.$data={editor:u},this.$handlers=[],this.setDefaultHandler(u.commands)};(function(){this.setDefaultHandler=function(u){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=u,this.addKeyboardHandler(u,0)},this.setKeyboardHandler=function(u){var o=this.$handlers;if(o[o.length-1]!=u){for(;o[o.length-1]&&o[o.length-1]!=this.$defaultHandler;)this.removeKeyboardHandler(o[o.length-1]);this.addKeyboardHandler(u,1)}},this.addKeyboardHandler=function(u,o){if(!!u){typeof u=="function"&&!u.handleKeyboard&&(u.handleKeyboard=u);var c=this.$handlers.indexOf(u);c!=-1&&this.$handlers.splice(c,1),o==null?this.$handlers.push(u):this.$handlers.splice(o,0,u),c==-1&&u.attach&&u.attach(this.$editor)}},this.removeKeyboardHandler=function(u){var o=this.$handlers.indexOf(u);return o==-1?!1:(this.$handlers.splice(o,1),u.detach&&u.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.getStatusText=function(){var u=this.$data,o=u.editor;return this.$handlers.map(function(c){return c.getStatusText&&c.getStatusText(o,u)||""}).filter(Boolean).join(" ")},this.$callKeyboardHandlers=function(u,o,c,a){for(var f,l=!1,h=this.$editor.commands,d=this.$handlers.length;d--&&(f=this.$handlers[d].handleKeyboard(this.$data,u,o,c,a),!(!(!f||!f.command)&&(f.command=="null"?l=!0:l=h.exec(f.command,this.$editor,f.args,a),l&&a&&u!=-1&&f.passEvent!=!0&&f.command.passEvent!=!0&&r.stopEvent(a),l))););return!l&&u==-1&&(f={command:"insertstring"},l=h.exec("insertstring",this.$editor,o)),l&&this.$editor._signal&&this.$editor._signal("keyboardActivity",f),l},this.onCommandKey=function(u,o,c){var a=i.keyCodeToString(c);this.$callKeyboardHandlers(o,a,c,u)},this.onTextInput=function(u){this.$callKeyboardHandlers(-1,u)}}).call(s.prototype),t.KeyBinding=s});ace.define("ace/lib/bidiutil",["require","exports","module"],function(e,t,n){var i=0,r=0,s=!1,u=!1,o=!1,c=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],a=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],f=0,l=1,h=0,d=1,g=2,p=3,m=4,w=5,v=6,A=7,_=8,E=9,b=10,x=11,y=12,C=13,B=14,T=15,M=16,R=17,I=18,H=[I,I,I,I,I,I,I,I,I,v,w,v,_,w,I,I,I,I,I,I,I,I,I,I,I,I,I,I,w,w,w,v,_,m,m,x,x,x,m,m,m,m,m,b,E,b,E,E,g,g,g,g,g,g,g,g,g,g,E,m,m,m,m,m,m,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,m,m,m,m,m,m,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,m,m,m,m,I,I,I,I,I,I,w,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,E,m,x,x,x,x,m,m,m,m,h,m,m,I,m,m,x,x,g,g,m,h,m,m,m,g,h,m,m,m,m,m],P=[_,_,_,_,_,_,_,_,_,_,_,I,I,I,h,d,m,m,m,m,m,m,m,m,m,m,m,m,m,m,m,m,m,m,m,m,m,m,m,m,_,w,C,B,T,M,R,E,x,x,x,x,x,m,m,m,m,m,m,m,m,m,m,m,m,m,m,m,E,m,m,m,m,m,m,m,m,m,m,m,m,m,m,m,m,m,m,m,m,m,m,m,m,m,m,_];function j(k,$,z,U){var G=i?a:c,Q=null,X=null,te=null,le=0,ye=null,ve=null,ee=-1,ce=null,he=null,je=[];if(!U)for(ce=0,U=[];ce<z;ce++)U[ce]=N(k[ce]);for(r=i,s=!1,u=!1,o=!1,he=0;he<z;he++){if(Q=le,je[he]=X=K(k,U,je,he),le=G[Q][X],ye=le&240,le&=15,$[he]=te=G[le][5],ye>0)if(ye==16){for(ce=ee;ce<he;ce++)$[ce]=1;ee=-1}else ee=-1;if(ve=G[le][6],ve)ee==-1&&(ee=he);else if(ee>-1){for(ce=ee;ce<he;ce++)$[ce]=te;ee=-1}U[he]==w&&($[he]=0),r|=te}if(o){for(ce=0;ce<z;ce++)if(U[ce]==v){$[ce]=i;for(var Ve=ce-1;Ve>=0&&U[Ve]==_;Ve--)$[Ve]=i}}}function V(k,$,z){if(!(r<k)){if(k==1&&i==l&&!u){z.reverse();return}for(var U=z.length,G=0,Q,X,te,le;G<U;){if($[G]>=k){for(Q=G+1;Q<U&&$[Q]>=k;)Q++;for(X=G,te=Q-1;X<te;X++,te--)le=z[X],z[X]=z[te],z[te]=le;G=Q}G++}}}function K(k,$,z,U){var G=$[U],Q,X,te,le;switch(G){case h:case d:s=!1;case m:case p:return G;case g:return s?p:g;case A:return s=!0,d;case _:return m;case E:return U<1||U+1>=$.length||(Q=z[U-1])!=g&&Q!=p||(X=$[U+1])!=g&&X!=p?m:(s&&(X=p),X==Q?X:m);case b:return Q=U>0?z[U-1]:w,Q==g&&U+1<$.length&&$[U+1]==g?g:m;case x:if(U>0&&z[U-1]==g)return g;if(s)return m;for(le=U+1,te=$.length;le<te&&$[le]==x;)le++;return le<te&&$[le]==g?g:m;case y:for(te=$.length,le=U+1;le<te&&$[le]==y;)le++;if(le<te){var ye=k[U],ve=ye>=1425&&ye<=2303||ye==64286;if(Q=$[le],ve&&(Q==d||Q==A))return d}return U<1||(Q=$[U-1])==w?m:z[U-1];case w:return s=!1,u=!0,i;case v:return o=!0,m;case C:case B:case M:case R:case T:s=!1;case I:return m}}function N(k){var $=k.charCodeAt(0),z=$>>8;return z==0?$>191?h:H[$]:z==5?/[\u0591-\u05f4]/.test(k)?d:h:z==6?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(k)?y:/[\u0660-\u0669\u066b-\u066c]/.test(k)?p:$==1642?x:/[\u06f0-\u06f9]/.test(k)?g:A:z==32&&$<=8287?P[$&255]:z==254&&$>=65136?A:m}t.L=h,t.R=d,t.EN=g,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.DOT="\xB7",t.doBidiReorder=function(k,$,z){if(k.length<2)return{};var U=k.split(""),G=new Array(U.length),Q=new Array(U.length),X=[];i=z?l:f,j(U,X,U.length,$);for(var te=0;te<G.length;G[te]=te,te++);V(2,X,G),V(1,X,G);for(var te=0;te<G.length-1;te++)$[te]===p?X[te]=t.AN:X[te]===d&&($[te]>A&&$[te]<C||$[te]===m||$[te]===I)?X[te]=t.ON_R:te>0&&U[te-1]==="\u0644"&&/\u0622|\u0623|\u0625|\u0627/.test(U[te])&&(X[te-1]=X[te]=t.R_H,te++);U[U.length-1]===t.DOT&&(X[U.length-1]=t.B);for(var te=0;te<G.length;te++)Q[te]=X[G[te]];return{logicalFromVisual:G,bidiLevels:Q}},t.hasBidiCharacters=function(k,$){for(var z=!1,U=0;U<k.length;U++)$[U]=N(k.charAt(U)),!z&&($[U]==d||$[U]==A)&&(z=!0);return z},t.getVisualFromLogicalIdx=function(k,$){for(var z=0;z<$.logicalFromVisual.length;z++)if($.logicalFromVisual[z]==k)return z;return 0}});ace.define("ace/bidihandler",["require","exports","module","ace/lib/bidiutil","ace/lib/lang","ace/lib/useragent"],function(e,t,n){var i=e("./lib/bidiutil"),r=e("./lib/lang"),s=e("./lib/useragent"),u=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,o=function(c){this.session=c,this.bidiMap={},this.currentRow=null,this.bidiUtil=i,this.charWidths=[],this.EOL="\xAC",this.showInvisibles=!0,this.isRtlDir=!1,this.line="",this.wrapIndent=0,this.isLastRow=!1,this.EOF="\xB6",this.seenBidi=!1};(function(){this.isBidiRow=function(c,a,f){return this.seenBidi?(c!==this.currentRow&&(this.currentRow=c,this.updateRowLine(a,f),this.updateBidiMap()),this.bidiMap.bidiLevels):!1},this.onChange=function(c){this.seenBidi?this.currentRow=null:c.action=="insert"&&u.test(c.lines.join(` -`))&&(this.seenBidi=!0,this.currentRow=null)},this.getDocumentRow=function(){var c=0,a=this.session.$screenRowCache;if(a.length){var f=this.session.$getRowCacheIndex(a,this.currentRow);f>=0&&(c=this.session.$docRowCache[f])}return c},this.getSplitIndex=function(){var c=0,a=this.session.$screenRowCache;if(a.length)for(var f,l=this.session.$getRowCacheIndex(a,this.currentRow);this.currentRow-c>0&&(f=this.session.$getRowCacheIndex(a,this.currentRow-c-1),f===l);)l=f,c++;return c},this.updateRowLine=function(c,a){if(c===void 0&&(c=this.getDocumentRow()),this.wrapIndent=0,this.isLastRow=c===this.session.getLength()-1,this.line=this.session.getLine(c),this.session.$useWrapMode){var f=this.session.$wrapData[c];f&&(a===void 0&&(a=this.getSplitIndex()),a>0&&f.length?(this.wrapIndent=f.indent,this.line=a<f.length?this.line.substring(f[a-1],f[f.length-1]):this.line.substring(f[f.length-1])):this.line=this.line.substring(0,f[a]))}var l=this.session,h=0,d;this.line=this.line.replace(/\t|[\u1100-\u2029, \u202F-\uFFE6]/g,function(g,p){return g===" "||l.isFullWidth(g.charCodeAt(0))?(d=g===" "?l.getScreenTabSize(p+h):2,h+=d-1,r.stringRepeat(i.DOT,d)):g})},this.updateBidiMap=function(){var c=[],a=this.isLastRow?this.EOF:this.EOL,f=this.line+(this.showInvisibles?a:i.DOT);i.hasBidiCharacters(f,c)?this.bidiMap=i.doBidiReorder(f,c,this.isRtlDir):this.bidiMap={}},this.markAsDirty=function(){this.currentRow=null},this.updateCharacterWidths=function(c){if(!!this.seenBidi&&this.characterWidth!==c.$characterSize.width){var a=this.characterWidth=c.$characterSize.width,f=c.$measureCharWidth("\u05D4");this.charWidths[i.L]=this.charWidths[i.EN]=this.charWidths[i.ON_R]=a,this.charWidths[i.R]=this.charWidths[i.AN]=f,this.charWidths[i.R_H]=s.isChrome?f:f*.45,this.charWidths[i.B]=0,this.currentRow=null}},this.getShowInvisibles=function(){return this.showInvisibles},this.setShowInvisibles=function(c){this.showInvisibles=c,this.currentRow=null},this.setEolChar=function(c){this.EOL=c},this.setTextDir=function(c){this.isRtlDir=c},this.getPosLeft=function(c){c-=this.wrapIndent;var a=i.getVisualFromLogicalIdx(c>0?c-1:0,this.bidiMap),f=this.bidiMap.bidiLevels,l=0;c===0&&f[a]%2!==0&&a++;for(var h=0;h<a;h++)l+=this.charWidths[f[h]];return c!==0&&f[a]%2===0&&(l+=this.charWidths[f[a]]),this.wrapIndent&&(l+=this.wrapIndent*this.charWidths[i.L]),l},this.getSelections=function(c,a){for(var f=this.bidiMap,l=f.bidiLevels,h,d=this.wrapIndent*this.charWidths[i.L],g=[],p=Math.min(c,a)-this.wrapIndent,m=Math.max(c,a)-this.wrapIndent,w=!1,v=!1,A=0,_,E=0;E<l.length;E++)_=f.logicalFromVisual[E],h=l[E],w=_>=p&&_<m,w&&!v?A=d:!w&&v&&g.push({left:A,width:d-A}),d+=this.charWidths[h],v=w;return w&&E===l.length&&g.push({left:A,width:d-A}),g},this.offsetToCol=function(f){var a=0,f=Math.max(f,0),l=0,h=0,d=this.bidiMap.bidiLevels,g=this.charWidths[d[h]];for(this.wrapIndent&&(f-=this.wrapIndent*this.charWidths[i.L]);f>l+g/2;){if(l+=g,h===d.length-1){g=0;break}g=this.charWidths[d[++h]]}return h>0&&d[h-1]%2!==0&&d[h]%2===0?(f<l&&h--,a=this.bidiMap.logicalFromVisual[h]):h>0&&d[h-1]%2===0&&d[h]%2!==0?a=1+(f>l?this.bidiMap.logicalFromVisual[h]:this.bidiMap.logicalFromVisual[h-1]):this.isRtlDir&&h===d.length-1&&g===0&&d[h-1]%2===0||!this.isRtlDir&&h===0&&d[h]%2!==0?a=1+this.bidiMap.logicalFromVisual[h]:(h>0&&d[h-1]%2!==0&&g!==0&&h--,a=this.bidiMap.logicalFromVisual[h]),a+this.wrapIndent}}).call(o.prototype),t.BidiHandler=o});ace.define("ace/range",["require","exports","module"],function(e,t,n){var i=function(s,u){return s.row-u.row||s.column-u.column},r=function(s,u,o,c){this.start={row:s,column:u},this.end={row:o,column:c}};(function(){this.isEqual=function(s){return this.start.row===s.start.row&&this.end.row===s.end.row&&this.start.column===s.start.column&&this.end.column===s.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(s,u){return this.compare(s,u)==0},this.compareRange=function(s){var u,o=s.end,c=s.start;return u=this.compare(o.row,o.column),u==1?(u=this.compare(c.row,c.column),u==1?2:u==0?1:0):u==-1?-2:(u=this.compare(c.row,c.column),u==-1?-1:u==1?42:0)},this.comparePoint=function(s){return this.compare(s.row,s.column)},this.containsRange=function(s){return this.comparePoint(s.start)==0&&this.comparePoint(s.end)==0},this.intersects=function(s){var u=this.compareRange(s);return u==-1||u==0||u==1},this.isEnd=function(s,u){return this.end.row==s&&this.end.column==u},this.isStart=function(s,u){return this.start.row==s&&this.start.column==u},this.setStart=function(s,u){typeof s=="object"?(this.start.column=s.column,this.start.row=s.row):(this.start.row=s,this.start.column=u)},this.setEnd=function(s,u){typeof s=="object"?(this.end.column=s.column,this.end.row=s.row):(this.end.row=s,this.end.column=u)},this.inside=function(s,u){return this.compare(s,u)==0?!(this.isEnd(s,u)||this.isStart(s,u)):!1},this.insideStart=function(s,u){return this.compare(s,u)==0?!this.isEnd(s,u):!1},this.insideEnd=function(s,u){return this.compare(s,u)==0?!this.isStart(s,u):!1},this.compare=function(s,u){return!this.isMultiLine()&&s===this.start.row?u<this.start.column?-1:u>this.end.column?1:0:s<this.start.row?-1:s>this.end.row?1:this.start.row===s?u>=this.start.column?0:-1:this.end.row===s?u<=this.end.column?0:1:0},this.compareStart=function(s,u){return this.start.row==s&&this.start.column==u?-1:this.compare(s,u)},this.compareEnd=function(s,u){return this.end.row==s&&this.end.column==u?1:this.compare(s,u)},this.compareInside=function(s,u){return this.end.row==s&&this.end.column==u?1:this.start.row==s&&this.start.column==u?-1:this.compare(s,u)},this.clipRows=function(s,u){if(this.end.row>u)var o={row:u+1,column:0};else if(this.end.row<s)var o={row:s,column:0};if(this.start.row>u)var c={row:u+1,column:0};else if(this.start.row<s)var c={row:s,column:0};return r.fromPoints(c||this.start,o||this.end)},this.extend=function(s,u){var o=this.compare(s,u);if(o==0)return this;if(o==-1)var c={row:s,column:u};else var a={row:s,column:u};return r.fromPoints(c||this.start,a||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return r.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new r(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new r(this.start.row,0,this.end.row,0)},this.toScreenRange=function(s){var u=s.documentToScreenPosition(this.start),o=s.documentToScreenPosition(this.end);return new r(u.row,u.column,o.row,o.column)},this.moveBy=function(s,u){this.start.row+=s,this.start.column+=u,this.end.row+=s,this.end.column+=u}}).call(r.prototype),r.fromPoints=function(s,u){return new r(s.row,s.column,u.row,u.column)},r.comparePoints=i,r.comparePoints=function(s,u){return s.row-u.row||s.column-u.column},t.Range=r});ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(e,t,n){var i=e("./lib/oop"),r=e("./lib/lang"),s=e("./lib/event_emitter").EventEmitter,u=e("./range").Range,o=function(c){this.session=c,this.doc=c.getDocument(),this.clearSelection(),this.lead=this.selectionLead=this.doc.createAnchor(0,0),this.anchor=this.selectionAnchor=this.doc.createAnchor(0,0);var a=this;this.lead.on("change",function(f){a._emit("changeCursor"),a.$isEmpty||a._emit("changeSelection"),!a.$keepDesiredColumnOnChange&&f.old.column!=f.value.column&&(a.$desiredColumn=null)}),this.selectionAnchor.on("change",function(){a.$isEmpty||a._emit("changeSelection")})};(function(){i.implement(this,s),this.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},this.isMultiLine=function(){return this.isEmpty()?!1:this.getRange().isMultiLine()},this.getCursor=function(){return this.lead.getPosition()},this.setSelectionAnchor=function(c,a){this.anchor.setPosition(c,a),this.$isEmpty&&(this.$isEmpty=!1,this._emit("changeSelection"))},this.getSelectionAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},this.getSelectionLead=function(){return this.lead.getPosition()},this.shiftSelection=function(c){if(this.$isEmpty){this.moveCursorTo(this.lead.row,this.lead.column+c);return}var a=this.getSelectionAnchor(),f=this.getSelectionLead(),l=this.isBackwards();(!l||a.column!==0)&&this.setSelectionAnchor(a.row,a.column+c),(l||f.column!==0)&&this.$moveSelection(function(){this.moveCursorTo(f.row,f.column+c)})},this.isBackwards=function(){var c=this.anchor,a=this.lead;return c.row>a.row||c.row==a.row&&c.column>a.column},this.getRange=function(){var c=this.anchor,a=this.lead;return this.isEmpty()?u.fromPoints(a,a):this.isBackwards()?u.fromPoints(a,c):u.fromPoints(c,a)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var c=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(c,this.doc.getLine(c).length)},this.setRange=this.setSelectionRange=function(c,a){a?(this.setSelectionAnchor(c.end.row,c.end.column),this.selectTo(c.start.row,c.start.column)):(this.setSelectionAnchor(c.start.row,c.start.column),this.selectTo(c.end.row,c.end.column)),this.getRange().isEmpty()&&(this.$isEmpty=!0),this.$desiredColumn=null},this.$moveSelection=function(c){var a=this.lead;this.$isEmpty&&this.setSelectionAnchor(a.row,a.column),c.call(this)},this.selectTo=function(c,a){this.$moveSelection(function(){this.moveCursorTo(c,a)})},this.selectToPosition=function(c){this.$moveSelection(function(){this.moveCursorToPosition(c)})},this.moveTo=function(c,a){this.clearSelection(),this.moveCursorTo(c,a)},this.moveToPosition=function(c){this.clearSelection(),this.moveCursorToPosition(c)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(c,a){if(typeof a=="undefined"){var f=c||this.lead;c=f.row,a=f.column}return this.session.getWordRange(c,a)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var c=this.getCursor(),a=this.session.getAWordRange(c.row,c.column);this.setSelectionRange(a)},this.getLineRange=function(c,a){var f=typeof c=="number"?c:this.lead.row,l,h=this.session.getFoldLine(f);return h?(f=h.start.row,l=h.end.row):l=f,a===!0?new u(f,0,l,this.session.getLine(l).length):new u(f,0,l+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.wouldMoveIntoSoftTab=function(c,a,f){var l=c.column,h=c.column+a;return f<0&&(l=c.column-a,h=c.column),this.session.isTabStop(c)&&this.doc.getLine(c.row).slice(l,h).split(" ").length-1==a},this.moveCursorLeft=function(){var c=this.lead.getPosition(),a;if(a=this.session.getFoldAt(c.row,c.column,-1))this.moveCursorTo(a.start.row,a.start.column);else if(c.column===0)c.row>0&&this.moveCursorTo(c.row-1,this.doc.getLine(c.row-1).length);else{var f=this.session.getTabSize();this.wouldMoveIntoSoftTab(c,f,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-f):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var c=this.lead.getPosition(),a;if(a=this.session.getFoldAt(c.row,c.column,1))this.moveCursorTo(a.end.row,a.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row<this.doc.getLength()-1&&this.moveCursorTo(this.lead.row+1,0);else{var f=this.session.getTabSize(),c=this.lead;this.wouldMoveIntoSoftTab(c,f,1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,f):this.moveCursorBy(0,1)}},this.moveCursorLineStart=function(){var c=this.lead.row,a=this.lead.column,f=this.session.documentToScreenRow(c,a),l=this.session.screenToDocumentPosition(f,0),h=this.session.getDisplayLine(c,null,l.row,l.column),d=h.match(/^\s*/);d[0].length!=a&&!this.session.$useEmacsStyleLineStart&&(l.column+=d[0].length),this.moveCursorToPosition(l)},this.moveCursorLineEnd=function(){var c=this.lead,a=this.session.getDocumentLastRowColumnPosition(c.row,c.column);if(this.lead.column==a.column){var f=this.session.getLine(a.row);if(a.column==f.length){var l=f.search(/\s+$/);l>0&&(a.column=l)}}this.moveCursorTo(a.row,a.column)},this.moveCursorFileEnd=function(){var c=this.doc.getLength()-1,a=this.doc.getLine(c).length;this.moveCursorTo(c,a)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var c=this.lead.row,a=this.lead.column,f=this.doc.getLine(c),l=f.substring(a);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var h=this.session.getFoldAt(c,a,1);if(h){this.moveCursorTo(h.end.row,h.end.column);return}if(this.session.nonTokenRe.exec(l)&&(a+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,l=f.substring(a)),a>=f.length){this.moveCursorTo(c,f.length),this.moveCursorRight(),c<this.doc.getLength()-1&&this.moveCursorWordRight();return}this.session.tokenRe.exec(l)&&(a+=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(c,a)},this.moveCursorLongWordLeft=function(){var c=this.lead.row,a=this.lead.column,f;if(f=this.session.getFoldAt(c,a,-1)){this.moveCursorTo(f.start.row,f.start.column);return}var l=this.session.getFoldStringAt(c,a,-1);l==null&&(l=this.doc.getLine(c).substring(0,a));var h=r.stringReverse(l);if(this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0,this.session.nonTokenRe.exec(h)&&(a-=this.session.nonTokenRe.lastIndex,h=h.slice(this.session.nonTokenRe.lastIndex),this.session.nonTokenRe.lastIndex=0),a<=0){this.moveCursorTo(c,0),this.moveCursorLeft(),c>0&&this.moveCursorWordLeft();return}this.session.tokenRe.exec(h)&&(a-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(c,a)},this.$shortWordEndIndex=function(c){var a=0,f,l=/\s/,h=this.session.tokenRe;if(h.lastIndex=0,this.session.tokenRe.exec(c))a=this.session.tokenRe.lastIndex;else{for(;(f=c[a])&&l.test(f);)a++;if(a<1){for(h.lastIndex=0;(f=c[a])&&!h.test(f);)if(h.lastIndex=0,a++,l.test(f))if(a>2){a--;break}else{for(;(f=c[a])&&l.test(f);)a++;if(a>2)break}}}return h.lastIndex=0,a},this.moveCursorShortWordRight=function(){var c=this.lead.row,a=this.lead.column,f=this.doc.getLine(c),l=f.substring(a),h=this.session.getFoldAt(c,a,1);if(h)return this.moveCursorTo(h.end.row,h.end.column);if(a==f.length){var d=this.doc.getLength();do c++,l=this.doc.getLine(c);while(c<d&&/^\s*$/.test(l));/^\s+/.test(l)||(l=""),a=0}var g=this.$shortWordEndIndex(l);this.moveCursorTo(c,a+g)},this.moveCursorShortWordLeft=function(){var c=this.lead.row,a=this.lead.column,f;if(f=this.session.getFoldAt(c,a,-1))return this.moveCursorTo(f.start.row,f.start.column);var l=this.session.getLine(c).substring(0,a);if(a===0){do c--,l=this.doc.getLine(c);while(c>0&&/^\s*$/.test(l));a=l.length,/\s+$/.test(l)||(l="")}var h=r.stringReverse(l),d=this.$shortWordEndIndex(h);return this.moveCursorTo(c,a-d)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(c,a){var f=this.session.documentToScreenPosition(this.lead.row,this.lead.column),l;a===0&&(c!==0&&(this.session.$bidiHandler.isBidiRow(f.row,this.lead.row)?(l=this.session.$bidiHandler.getPosLeft(f.column),f.column=Math.round(l/this.session.$bidiHandler.charWidths[0])):l=f.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?f.column=this.$desiredColumn:this.$desiredColumn=f.column);var h=this.session.screenToDocumentPosition(f.row+c,f.column,l);c!==0&&a===0&&h.row===this.lead.row&&h.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[h.row]&&(h.row>0||c>0)&&h.row++,this.moveCursorTo(h.row,h.column+a,a===0)},this.moveCursorToPosition=function(c){this.moveCursorTo(c.row,c.column)},this.moveCursorTo=function(c,a,f){var l=this.session.getFoldAt(c,a,1);l&&(c=l.start.row,a=l.start.column),this.$keepDesiredColumnOnChange=!0;var h=this.session.getLine(c);/[\uDC00-\uDFFF]/.test(h.charAt(a))&&h.charAt(a-1)&&(this.lead.row==c&&this.lead.column==a+1?a=a-1:a=a+1),this.lead.setPosition(c,a),this.$keepDesiredColumnOnChange=!1,f||(this.$desiredColumn=null)},this.moveCursorToScreen=function(c,a,f){var l=this.session.screenToDocumentPosition(c,a);this.moveCursorTo(l.row,l.column,f)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(c){this.setSelectionRange(c,c.cursor==c.start),this.$desiredColumn=c.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(c){var a=this.getRange();return c?(c.start.column=a.start.column,c.start.row=a.start.row,c.end.column=a.end.column,c.end.row=a.end.row):c=a,c.cursor=this.isBackwards()?c.start:c.end,c.desiredColumn=this.$desiredColumn,c},this.getRangeOfMovements=function(c){var a=this.getCursor();try{c(this);var f=this.getCursor();return u.fromPoints(a,f)}catch{return u.fromPoints(a,a)}finally{this.moveCursorToPosition(a)}},this.toJSON=function(){if(this.rangeCount)var c=this.ranges.map(function(a){var f=a.clone();return f.isBackwards=a.cursor==a.start,f});else{var c=this.getRange();c.isBackwards=this.isBackwards()}return c},this.fromJSON=function(c){if(c.start==null)if(this.rangeList){this.toSingleRange(c[0]);for(var a=c.length;a--;){var f=u.fromPoints(c[a].start,c[a].end);c[a].isBackwards&&(f.cursor=f.start),this.addRange(f,!0)}return}else c=c[0];this.rangeList&&this.toSingleRange(c),this.setSelectionRange(c,c.isBackwards)},this.isEqual=function(c){if((c.length||this.rangeCount)&&c.length!=this.rangeCount)return!1;if(!c.length||!this.ranges)return this.getRange().isEqual(c);for(var a=this.ranges.length;a--;)if(!this.ranges[a].isEqual(c[a]))return!1;return!0}}).call(o.prototype),t.Selection=o});ace.define("ace/tokenizer",["require","exports","module","ace/config"],function(e,t,n){var i=e("./config"),r=2e3,s=function(u){this.states=u,this.regExps={},this.matchMappings={};for(var o in this.states){for(var c=this.states[o],a=[],f=0,l=this.matchMappings[o]={defaultToken:"text"},h="g",d=[],g=0;g<c.length;g++){var p=c[g];if(p.defaultToken&&(l.defaultToken=p.defaultToken),p.caseInsensitive&&(h="gi"),p.regex!=null){p.regex instanceof RegExp&&(p.regex=p.regex.toString().slice(1,-1));var m=p.regex,w=new RegExp("(?:("+m+")|(.))").exec("a").length-2;Array.isArray(p.token)?p.token.length==1||w==1?p.token=p.token[0]:w-1!=p.token.length?(this.reportError("number of classes and regexp groups doesn't match",{rule:p,groupCount:w-1}),p.token=p.token[0]):(p.tokenArray=p.token,p.token=null,p.onMatch=this.$arrayTokens):typeof p.token=="function"&&!p.onMatch&&(w>1?p.onMatch=this.$applyToken:p.onMatch=p.token),w>1&&(/\\\d/.test(p.regex)?m=p.regex.replace(/\\([0-9]+)/g,function(v,A){return"\\"+(parseInt(A,10)+f+1)}):(w=1,m=this.removeCapturingGroups(p.regex)),!p.splitRegex&&typeof p.token!="string"&&d.push(p)),l[f]=g,f+=w,a.push(m),p.onMatch||(p.onMatch=null)}}a.length||(l[0]=0,a.push("$")),d.forEach(function(v){v.splitRegex=this.createSplitterRegexp(v.regex,h)},this),this.regExps[o]=new RegExp("("+a.join(")|(")+")|($)",h)}};(function(){this.$setMaxTokenCount=function(u){r=u|0},this.$applyToken=function(u){var o=this.splitRegex.exec(u).slice(1),c=this.token.apply(this,o);if(typeof c=="string")return[{type:c,value:u}];for(var a=[],f=0,l=c.length;f<l;f++)o[f]&&(a[a.length]={type:c[f],value:o[f]});return a},this.$arrayTokens=function(u){if(!u)return[];var o=this.splitRegex.exec(u);if(!o)return"text";for(var c=[],a=this.tokenArray,f=0,l=a.length;f<l;f++)o[f+1]&&(c[c.length]={type:a[f],value:o[f+1]});return c},this.removeCapturingGroups=function(u){var o=u.replace(/\[(?:\\.|[^\]])*?\]|\\.|\(\?[:=!]|(\()/g,function(c,a){return a?"(?:":c});return o},this.createSplitterRegexp=function(u,o){if(u.indexOf("(?=")!=-1){var c=0,a=!1,f={};u.replace(/(\\.)|(\((?:\?[=!])?)|(\))|([\[\]])/g,function(l,h,d,g,p,m){return a?a=p!="]":p?a=!0:g?(c==f.stack&&(f.end=m+1,f.stack=-1),c--):d&&(c++,d.length!=1&&(f.stack=c,f.start=m)),l}),f.end!=null&&/^\)*$/.test(u.substr(f.end))&&(u=u.substring(0,f.start)+u.substr(f.end))}return u.charAt(0)!="^"&&(u="^"+u),u.charAt(u.length-1)!="$"&&(u+="$"),new RegExp(u,(o||"").replace("g",""))},this.getLineTokens=function(u,o){if(o&&typeof o!="string"){var c=o.slice(0);o=c[0],o==="#tmp"&&(c.shift(),o=c.shift())}else var c=[];var a=o||"start",f=this.states[a];f||(a="start",f=this.states[a]);var l=this.matchMappings[a],h=this.regExps[a];h.lastIndex=0;for(var d,g=[],p=0,m=0,w={type:null,value:""};d=h.exec(u);){var v=l.defaultToken,A=null,_=d[0],E=h.lastIndex;if(E-_.length>p){var b=u.substring(p,E-_.length);w.type==v?w.value+=b:(w.type&&g.push(w),w={type:v,value:b})}for(var x=0;x<d.length-2;x++)if(d[x+1]!==void 0){A=f[l[x]],A.onMatch?v=A.onMatch(_,a,c,u):v=A.token,A.next&&(typeof A.next=="string"?a=A.next:a=A.next(a,c),f=this.states[a],f||(this.reportError("state doesn't exist",a),a="start",f=this.states[a]),l=this.matchMappings[a],p=E,h=this.regExps[a],h.lastIndex=E),A.consumeLineEnd&&(p=E);break}if(_){if(typeof v=="string")(!A||A.merge!==!1)&&w.type===v?w.value+=_:(w.type&&g.push(w),w={type:v,value:_});else if(v){w.type&&g.push(w),w={type:null,value:""};for(var x=0;x<v.length;x++)g.push(v[x])}}if(p==u.length)break;if(p=E,m++>r){for(m>2*u.length&&this.reportError("infinite loop with in ace tokenizer",{startState:o,line:u});p<u.length;)w.type&&g.push(w),w={value:u.substring(p,p+=2e3),type:"overflow"};a="start",c=[];break}}return w.type&&g.push(w),c.length>1&&c[0]!==a&&c.unshift("#tmp",a),{tokens:g,state:c.length?c:a}},this.reportError=i.reportError}).call(s.prototype),t.Tokenizer=s});ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(e,t,n){var i=e("../lib/lang"),r=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(o,c){if(!c){for(var a in o)this.$rules[a]=o[a];return}for(var a in o){for(var f=o[a],l=0;l<f.length;l++){var h=f[l];(h.next||h.onMatch)&&(typeof h.next=="string"&&h.next.indexOf(c)!==0&&(h.next=c+h.next),h.nextState&&h.nextState.indexOf(c)!==0&&(h.nextState=c+h.nextState))}this.$rules[c+a]=f}},this.getRules=function(){return this.$rules},this.embedRules=function(o,c,a,f,l){var h=typeof o=="function"?new o().getRules():o;if(f)for(var d=0;d<f.length;d++)f[d]=c+f[d];else{f=[];for(var g in h)f.push(c+g)}if(this.addRules(h,c),a)for(var p=Array.prototype[l?"push":"unshift"],d=0;d<f.length;d++)p.apply(this.$rules[f[d]],i.deepCopy(a));this.$embeds||(this.$embeds=[]),this.$embeds.push(c)},this.getEmbeds=function(){return this.$embeds};var s=function(o,c){return(o!="start"||c.length)&&c.unshift(this.nextState,o),this.nextState},u=function(o,c){return c.shift(),c.shift()||"start"};this.normalizeRules=function(){var o=0,c=this.$rules;function a(f){var l=c[f];l.processed=!0;for(var h=0;h<l.length;h++){var d=l[h],g=null;Array.isArray(d)&&(g=d,d={}),!d.regex&&d.start&&(d.regex=d.start,d.next||(d.next=[]),d.next.push({defaultToken:d.token},{token:d.token+".end",regex:d.end||d.start,next:"pop"}),d.token=d.token+".start",d.push=!0);var p=d.next||d.push;if(p&&Array.isArray(p)){var m=d.stateName;m||(m=d.token,typeof m!="string"&&(m=m[0]||""),c[m]&&(m+=o++)),c[m]=p,d.next=m,a(m)}else p=="pop"&&(d.next=u);if(d.push&&(d.nextState=d.next||d.push,d.next=s,delete d.push),d.rules)for(var w in d.rules)c[w]?c[w].push&&c[w].push.apply(c[w],d.rules[w]):c[w]=d.rules[w];var v=typeof d=="string"?d:d.include;if(v&&(Array.isArray(v)?g=v.map(function(_){return c[_]}):g=c[v]),g){var A=[h,1].concat(g);d.noEscape&&(A=A.filter(function(_){return!_.next})),l.splice.apply(l,A),h--}d.keywordMap&&(d.token=this.createKeywordMapper(d.keywordMap,d.defaultToken||"text",d.caseInsensitive),delete d.defaultToken)}}Object.keys(c).forEach(a,this)},this.createKeywordMapper=function(o,c,a,f){var l=Object.create(null);return Object.keys(o).forEach(function(h){var d=o[h];a&&(d=d.toLowerCase());for(var g=d.split(f||"|"),p=g.length;p--;)l[g[p]]=h}),Object.getPrototypeOf(l)&&(l.__proto__=null),this.$keywordList=Object.keys(l),o=null,a?function(h){return l[h.toLowerCase()]||c}:function(h){return l[h]||c}},this.getKeywords=function(){return this.$keywords}}).call(r.prototype),t.TextHighlightRules=r});ace.define("ace/mode/behaviour",["require","exports","module"],function(e,t,n){var i=function(){this.$behaviours={}};(function(){this.add=function(r,s,u){switch(void 0){case this.$behaviours:this.$behaviours={};case this.$behaviours[r]:this.$behaviours[r]={}}this.$behaviours[r][s]=u},this.addBehaviours=function(r){for(var s in r)for(var u in r[s])this.add(s,u,r[s][u])},this.remove=function(r){this.$behaviours&&this.$behaviours[r]&&delete this.$behaviours[r]},this.inherit=function(r,s){if(typeof r=="function")var u=new r().getBehaviours(s);else var u=r.getBehaviours(s);this.addBehaviours(u)},this.getBehaviours=function(r){if(r){for(var s={},u=0;u<r.length;u++)this.$behaviours[r[u]]&&(s[r[u]]=this.$behaviours[r[u]]);return s}else return this.$behaviours}}).call(i.prototype),t.Behaviour=i});ace.define("ace/token_iterator",["require","exports","module","ace/range"],function(e,t,n){var i=e("./range").Range,r=function(s,u,o){this.$session=s,this.$row=u,this.$rowTokens=s.getTokens(u);var c=s.getTokenAt(u,o);this.$tokenIndex=c?c.index:-1};(function(){this.stepBackward=function(){for(this.$tokenIndex-=1;this.$tokenIndex<0;){if(this.$row-=1,this.$row<0)return this.$row=0,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=this.$rowTokens.length-1}return this.$rowTokens[this.$tokenIndex]},this.stepForward=function(){this.$tokenIndex+=1;for(var s;this.$tokenIndex>=this.$rowTokens.length;){if(this.$row+=1,s||(s=this.$session.getLength()),this.$row>=s)return this.$row=s-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var s=this.$rowTokens,u=this.$tokenIndex,o=s[u].start;if(o!==void 0)return o;for(o=0;u>0;)u-=1,o+=s[u].value.length;return o},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},this.getCurrentTokenRange=function(){var s=this.$rowTokens[this.$tokenIndex],u=this.getCurrentTokenColumn();return new i(this.$row,u,this.$row,u+s.value.length)}}).call(r.prototype),t.TokenIterator=r});ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){var i=e("../../lib/oop"),r=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,u=e("../../lib/lang"),o=["text","paren.rparen","punctuation.operator"],c=["text","paren.rparen","punctuation.operator","comment"],a,f={},l={'"':'"',"'":"'"},h=function(p){var m=-1;if(p.multiSelect&&(m=p.selection.index,f.rangeCount!=p.multiSelect.rangeCount&&(f={rangeCount:p.multiSelect.rangeCount})),f[m])return a=f[m];a=f[m]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},d=function(p,m,w,v){var A=p.end.row-p.start.row;return{text:w+m+v,selection:[0,p.start.column+1,A,p.end.column+(A?0:1)]}},g=function(p){this.add("braces","insertion",function(m,w,v,A,_){var E=v.getCursorPosition(),b=A.doc.getLine(E.row);if(_=="{"){h(v);var x=v.getSelectionRange(),y=A.doc.getTextRange(x);if(y!==""&&y!=="{"&&v.getWrapBehavioursEnabled())return d(x,y,"{","}");if(g.isSaneInsertion(v,A))return/[\]\}\)]/.test(b[E.column])||v.inMultiSelectMode||p&&p.braces?(g.recordAutoInsert(v,A,"}"),{text:"{}",selection:[1,1]}):(g.recordMaybeInsert(v,A,"{"),{text:"{",selection:[1,1]})}else if(_=="}"){h(v);var C=b.substring(E.column,E.column+1);if(C=="}"){var B=A.$findOpeningBracket("}",{column:E.column+1,row:E.row});if(B!==null&&g.isAutoInsertedClosing(E,b,_))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(_==` -`||_==`\r -`){h(v);var T="";g.isMaybeInsertedClosing(E,b)&&(T=u.stringRepeat("}",a.maybeInsertedBrackets),g.clearMaybeInsertedClosing());var C=b.substring(E.column,E.column+1);if(C==="}"){var M=A.findMatchingBracket({row:E.row,column:E.column+1},"}");if(!M)return null;var R=this.$getIndent(A.getLine(M.row))}else if(T)var R=this.$getIndent(b);else{g.clearMaybeInsertedClosing();return}var I=R+A.getTabString();return{text:` -`+I+` -`+R+T,selection:[1,I.length,1,I.length]}}else g.clearMaybeInsertedClosing()}),this.add("braces","deletion",function(m,w,v,A,_){var E=A.doc.getTextRange(_);if(!_.isMultiLine()&&E=="{"){h(v);var b=A.doc.getLine(_.start.row),x=b.substring(_.end.column,_.end.column+1);if(x=="}")return _.end.column++,_;a.maybeInsertedBrackets--}}),this.add("parens","insertion",function(m,w,v,A,_){if(_=="("){h(v);var E=v.getSelectionRange(),b=A.doc.getTextRange(E);if(b!==""&&v.getWrapBehavioursEnabled())return d(E,b,"(",")");if(g.isSaneInsertion(v,A))return g.recordAutoInsert(v,A,")"),{text:"()",selection:[1,1]}}else if(_==")"){h(v);var x=v.getCursorPosition(),y=A.doc.getLine(x.row),C=y.substring(x.column,x.column+1);if(C==")"){var B=A.$findOpeningBracket(")",{column:x.column+1,row:x.row});if(B!==null&&g.isAutoInsertedClosing(x,y,_))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(m,w,v,A,_){var E=A.doc.getTextRange(_);if(!_.isMultiLine()&&E=="("){h(v);var b=A.doc.getLine(_.start.row),x=b.substring(_.start.column+1,_.start.column+2);if(x==")")return _.end.column++,_}}),this.add("brackets","insertion",function(m,w,v,A,_){if(_=="["){h(v);var E=v.getSelectionRange(),b=A.doc.getTextRange(E);if(b!==""&&v.getWrapBehavioursEnabled())return d(E,b,"[","]");if(g.isSaneInsertion(v,A))return g.recordAutoInsert(v,A,"]"),{text:"[]",selection:[1,1]}}else if(_=="]"){h(v);var x=v.getCursorPosition(),y=A.doc.getLine(x.row),C=y.substring(x.column,x.column+1);if(C=="]"){var B=A.$findOpeningBracket("]",{column:x.column+1,row:x.row});if(B!==null&&g.isAutoInsertedClosing(x,y,_))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(m,w,v,A,_){var E=A.doc.getTextRange(_);if(!_.isMultiLine()&&E=="["){h(v);var b=A.doc.getLine(_.start.row),x=b.substring(_.start.column+1,_.start.column+2);if(x=="]")return _.end.column++,_}}),this.add("string_dquotes","insertion",function(m,w,v,A,_){var E=A.$mode.$quotes||l;if(_.length==1&&E[_]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(_)!=-1)return;h(v);var b=_,x=v.getSelectionRange(),y=A.doc.getTextRange(x);if(y!==""&&(y.length!=1||!E[y])&&v.getWrapBehavioursEnabled())return d(x,y,b,b);if(!y){var C=v.getCursorPosition(),B=A.doc.getLine(C.row),T=B.substring(C.column-1,C.column),M=B.substring(C.column,C.column+1),R=A.getTokenAt(C.row,C.column),I=A.getTokenAt(C.row,C.column+1);if(T=="\\"&&R&&/escape/.test(R.type))return null;var H=R&&/string|escape/.test(R.type),P=!I||/string|escape/.test(I.type),j;if(M==b)j=H!==P,j&&/string\.end/.test(I.type)&&(j=!1);else{if(H&&!P||H&&P)return null;var V=A.$mode.tokenRe;V.lastIndex=0;var K=V.test(T);V.lastIndex=0;var N=V.test(T);if(K||N||M&&!/[\s;,.})\]\\]/.test(M))return null;j=!0}return{text:j?b+b:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(m,w,v,A,_){var E=A.doc.getTextRange(_);if(!_.isMultiLine()&&(E=='"'||E=="'")){h(v);var b=A.doc.getLine(_.start.row),x=b.substring(_.start.column+1,_.start.column+2);if(x==E)return _.end.column++,_}})};g.isSaneInsertion=function(p,m){var w=p.getCursorPosition(),v=new s(m,w.row,w.column);if(!this.$matchTokenType(v.getCurrentToken()||"text",o)){var A=new s(m,w.row,w.column+1);if(!this.$matchTokenType(A.getCurrentToken()||"text",o))return!1}return v.stepForward(),v.getCurrentTokenRow()!==w.row||this.$matchTokenType(v.getCurrentToken()||"text",c)},g.$matchTokenType=function(p,m){return m.indexOf(p.type||p)>-1},g.recordAutoInsert=function(p,m,w){var v=p.getCursorPosition(),A=m.doc.getLine(v.row);this.isAutoInsertedClosing(v,A,a.autoInsertedLineEnd[0])||(a.autoInsertedBrackets=0),a.autoInsertedRow=v.row,a.autoInsertedLineEnd=w+A.substr(v.column),a.autoInsertedBrackets++},g.recordMaybeInsert=function(p,m,w){var v=p.getCursorPosition(),A=m.doc.getLine(v.row);this.isMaybeInsertedClosing(v,A)||(a.maybeInsertedBrackets=0),a.maybeInsertedRow=v.row,a.maybeInsertedLineStart=A.substr(0,v.column)+w,a.maybeInsertedLineEnd=A.substr(v.column),a.maybeInsertedBrackets++},g.isAutoInsertedClosing=function(p,m,w){return a.autoInsertedBrackets>0&&p.row===a.autoInsertedRow&&w===a.autoInsertedLineEnd[0]&&m.substr(p.column)===a.autoInsertedLineEnd},g.isMaybeInsertedClosing=function(p,m){return a.maybeInsertedBrackets>0&&p.row===a.maybeInsertedRow&&m.substr(p.column)===a.maybeInsertedLineEnd&&m.substr(0,p.column)==a.maybeInsertedLineStart},g.popAutoInsertedClosing=function(){a.autoInsertedLineEnd=a.autoInsertedLineEnd.substr(1),a.autoInsertedBrackets--},g.clearMaybeInsertedClosing=function(){a&&(a.maybeInsertedBrackets=0,a.maybeInsertedRow=-1)},i.inherits(g,r),t.CstyleBehaviour=g});ace.define("ace/unicode",["require","exports","module"],function(e,t,n){t.packages={},i({L:"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",Ll:"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",Lu:"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",Lt:"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",Lm:"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F",Lo:"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",M:"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26",Mn:"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",Mc:"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",Me:"0488048906DE20DD-20E020E2-20E4A670-A672",N:"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nd:"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nl:"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",No:"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",P:"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",Pd:"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",Ps:"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",Pe:"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",Pi:"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",Pf:"00BB2019201D203A2E032E052E0A2E0D2E1D2E21",Pc:"005F203F20402054FE33FE34FE4D-FE4FFF3F",Po:"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",S:"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",Sm:"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",Sc:"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",Sk:"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",So:"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",Z:"002000A01680180E2000-200A20282029202F205F3000",Zs:"002000A01680180E2000-200A202F205F3000",Zl:"2028",Zp:"2029",C:"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF",Cc:"0000-001F007F-009F",Cf:"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",Co:"E000-F8FF",Cs:"D800-DFFF",Cn:"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"});function i(r){var s=/\w{4}/g;for(var u in r)t.packages[u]=r[u].replace(s,"\\u$&")}});ace.define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function(e,t,n){var i=e("../tokenizer").Tokenizer,r=e("./text_highlight_rules").TextHighlightRules,s=e("./behaviour/cstyle").CstyleBehaviour,u=e("../unicode"),o=e("../lib/lang"),c=e("../token_iterator").TokenIterator,a=e("../range").Range,f=function(){this.HighlightRules=r};(function(){this.$defaultBehaviour=new s,this.tokenRe=new RegExp("^["+u.packages.L+u.packages.Mn+u.packages.Mc+u.packages.Nd+u.packages.Pc+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+u.packages.L+u.packages.Mn+u.packages.Mc+u.packages.Nd+u.packages.Pc+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new i(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(l,h,d,g){var p=h.doc,m=!0,w=!0,v=1/0,A=h.getTabSize(),_=!1;if(this.lineCommentStart){if(Array.isArray(this.lineCommentStart))var x=this.lineCommentStart.map(o.escapeRegExp).join("|"),E=this.lineCommentStart[0];else var x=o.escapeRegExp(this.lineCommentStart),E=this.lineCommentStart;x=new RegExp("^(\\s*)(?:"+x+") ?"),_=h.getUseSoftTabs();var B=function(K,N){var k=K.match(x);if(!!k){var $=k[1].length,z=k[0].length;!R(K,$,z)&&k[0][z-1]==" "&&z--,p.removeInLine(N,$,z)}},M=E+" ",C=function(K,N){(!m||/\S/.test(K))&&(R(K,v,v)?p.insertInLine({row:N,column:v},M):p.insertInLine({row:N,column:v},E))},T=function(K,N){return x.test(K)},R=function(K,N,k){for(var $=0;N--&&K.charAt(N)==" ";)$++;if($%A!=0)return!1;for(var $=0;K.charAt(k++)==" ";)$++;return A>2?$%A!=A-1:$%A==0}}else{if(!this.blockComment)return!1;var E=this.blockComment.start,b=this.blockComment.end,x=new RegExp("^(\\s*)(?:"+o.escapeRegExp(E)+")"),y=new RegExp("(?:"+o.escapeRegExp(b)+")\\s*$"),C=function(P,j){T(P,j)||(!m||/\S/.test(P))&&(p.insertInLine({row:j,column:P.length},b),p.insertInLine({row:j,column:v},E))},B=function(P,j){var V;(V=P.match(y))&&p.removeInLine(j,P.length-V[0].length,P.length),(V=P.match(x))&&p.removeInLine(j,V[1].length,V[0].length)},T=function(P,j){if(x.test(P))return!0;for(var V=h.getTokens(j),K=0;K<V.length;K++)if(V[K].type==="comment")return!0}}function I(P){for(var j=d;j<=g;j++)P(p.getLine(j),j)}var H=1/0;I(function(P,j){var V=P.search(/\S/);V!==-1?(V<v&&(v=V),w&&!T(P,j)&&(w=!1)):H>P.length&&(H=P.length)}),v==1/0&&(v=H,m=!1,w=!1),_&&v%A!=0&&(v=Math.floor(v/A)*A),I(w?B:C)},this.toggleBlockComment=function(l,h,d,g){var p=this.blockComment;if(!!p){!p.start&&p[0]&&(p=p[0]);var m=new c(h,g.row,g.column),w=m.getCurrentToken();h.selection;var v=h.selection.toOrientedRange(),A,_;if(w&&/comment/.test(w.type)){for(var E,b;w&&/comment/.test(w.type);){var x=w.value.indexOf(p.start);if(x!=-1){var y=m.getCurrentTokenRow(),C=m.getCurrentTokenColumn()+x;E=new a(y,C,y,C+p.start.length);break}w=m.stepBackward()}for(var m=new c(h,g.row,g.column),w=m.getCurrentToken();w&&/comment/.test(w.type);){var x=w.value.indexOf(p.end);if(x!=-1){var y=m.getCurrentTokenRow(),C=m.getCurrentTokenColumn()+x;b=new a(y,C,y,C+p.end.length);break}w=m.stepForward()}b&&h.remove(b),E&&(h.remove(E),A=E.start.row,_=-p.start.length)}else _=p.start.length,A=d.start.row,h.insert(d.end,p.end),h.insert(d.start,p.start);v.start.row==A&&(v.start.column+=_),v.end.row==A&&(v.end.column+=_),h.selection.fromOrientedRange(v)}},this.getNextLineIndent=function(l,h,d){return this.$getIndent(h)},this.checkOutdent=function(l,h,d){return!1},this.autoOutdent=function(l,h,d){},this.$getIndent=function(l){return l.match(/^\s*/)[0]},this.createWorker=function(l){return null},this.createModeDelegates=function(l){this.$embeds=[],this.$modes={};for(var h in l)l[h]&&(this.$embeds.push(h),this.$modes[h]=new l[h]);for(var d=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],h=0;h<d.length;h++)(function(p){var m=d[h],w=p[m];p[d[h]]=function(){return this.$delegator(m,arguments,w)}})(this)},this.$delegator=function(l,h,d){var g=h[0];typeof g!="string"&&(g=g[0]);for(var p=0;p<this.$embeds.length;p++)if(!!this.$modes[this.$embeds[p]]){var m=g.split(this.$embeds[p]);if(!m[0]&&m[1]){h[0]=m[1];var w=this.$modes[this.$embeds[p]];return w[l].apply(w,h)}}var v=d.apply(this,h);return d?v:void 0},this.transformAction=function(l,h,d,g,p){if(this.$behaviour){var m=this.$behaviour.getBehaviours();for(var w in m)if(m[w][h]){var v=m[w][h].apply(this,arguments);if(v)return v}}},this.getKeywords=function(l){if(!this.completionKeywords){var h=this.$tokenizer.rules,d=[];for(var g in h)for(var p=h[g],m=0,w=p.length;m<w;m++)if(typeof p[m].token=="string")/keyword|support|storage/.test(p[m].token)&&d.push(p[m].regex);else if(typeof p[m].token=="object"){for(var v=0,A=p[m].token.length;v<A;v++)if(/keyword|support|storage/.test(p[m].token[v])){var g=p[m].regex.match(/\(.+?\)/g)[v];d.push(g.substr(1,g.length-2))}}this.completionKeywords=d}return l?d.concat(this.$keywordList||[]):this.$keywordList},this.$createKeywordList=function(){return this.$highlightRules||this.getTokenizer(),this.$keywordList=this.$highlightRules.$keywordList||[]},this.getCompletions=function(l,h,d,g){var p=this.$keywordList||this.$createKeywordList();return p.map(function(m){return{name:m,value:m,score:0,meta:"keyword"}})},this.$id="ace/mode/text"}).call(f.prototype),t.Mode=f});ace.define("ace/apply_delta",["require","exports","module"],function(e,t,n){t.applyDelta=function(i,r,s){var u=r.start.row,o=r.start.column,c=i[u]||"";switch(r.action){case"insert":var a=r.lines;if(a.length===1)i[u]=c.substring(0,o)+r.lines[0]+c.substring(o);else{var f=[u,1].concat(r.lines);i.splice.apply(i,f),i[u]=c.substring(0,o)+i[u],i[u+r.lines.length-1]+=c.substring(o)}break;case"remove":var l=r.end.column,h=r.end.row;u===h?i[u]=c.substring(0,o)+c.substring(l):i.splice(u,h-u+1,c.substring(0,o)+i[h].substring(l));break}}});ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){var i=e("./lib/oop"),r=e("./lib/event_emitter").EventEmitter,s=t.Anchor=function(u,o,c){this.$onChange=this.onChange.bind(this),this.attach(u),typeof c=="undefined"?this.setPosition(o.row,o.column):this.setPosition(o,c)};(function(){i.implement(this,r),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(c){if(!(c.start.row==c.end.row&&c.start.row!=this.row)&&!(c.start.row>this.row)){var a=o(c,{row:this.row,column:this.column},this.$insertRight);this.setPosition(a.row,a.column,!0)}};function u(c,a,f){var l=f?c.column<=a.column:c.column<a.column;return c.row<a.row||c.row==a.row&&l}function o(c,a,f){var l=c.action=="insert",h=(l?1:-1)*(c.end.row-c.start.row),d=(l?1:-1)*(c.end.column-c.start.column),g=c.start,p=l?g:c.end;return u(a,g,f)?{row:a.row,column:a.column}:u(p,a,!f)?{row:a.row+h,column:a.column+(a.row==p.row?d:0)}:{row:g.row,column:g.column}}this.setPosition=function(c,a,f){var l;if(f?l={row:c,column:a}:l=this.$clipPositionToDocument(c,a),!(this.row==l.row&&this.column==l.column)){var h={row:this.row,column:this.column};this.row=l.row,this.column=l.column,this._signal("change",{old:h,value:l})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(c){this.document=c||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(c,a){var f={};return c>=this.document.getLength()?(f.row=Math.max(0,this.document.getLength()-1),f.column=this.document.getLine(f.row).length):c<0?(f.row=0,f.column=0):(f.row=c,f.column=Math.min(this.document.getLine(f.row).length,Math.max(0,a))),a<0&&(f.column=0),f}}).call(s.prototype)});ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,n){var i=e("./lib/oop"),r=e("./apply_delta").applyDelta,s=e("./lib/event_emitter").EventEmitter,u=e("./range").Range,o=e("./anchor").Anchor,c=function(a){this.$lines=[""],a.length===0?this.$lines=[""]:Array.isArray(a)?this.insertMergedLines({row:0,column:0},a):this.insert({row:0,column:0},a)};(function(){i.implement(this,s),this.setValue=function(a){var f=this.getLength()-1;this.remove(new u(0,0,f,this.getLine(f).length)),this.insert({row:0,column:0},a)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(a,f){return new o(this,a,f)},"aaa".split(/a/).length===0?this.$split=function(a){return a.replace(/\r\n|\r/g,` -`).split(` -`)}:this.$split=function(a){return a.split(/\r\n|\r|\n/)},this.$detectNewLine=function(a){var f=a.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=f?f[1]:` -`,this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return`\r -`;case"unix":return` -`;default:return this.$autoNewLine||` -`}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(a){this.$newLineMode!==a&&(this.$newLineMode=a,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(a){return a==`\r -`||a=="\r"||a==` -`},this.getLine=function(a){return this.$lines[a]||""},this.getLines=function(a,f){return this.$lines.slice(a,f+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(a){return this.getLinesForRange(a).join(this.getNewLineCharacter())},this.getLinesForRange=function(a){var f;if(a.start.row===a.end.row)f=[this.getLine(a.start.row).substring(a.start.column,a.end.column)];else{f=this.getLines(a.start.row,a.end.row),f[0]=(f[0]||"").substring(a.start.column);var l=f.length-1;a.end.row-a.start.row==l&&(f[l]=f[l].substring(0,a.end.column))}return f},this.insertLines=function(a,f){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(a,f)},this.removeLines=function(a,f){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(a,f)},this.insertNewLine=function(a){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(a,["",""])},this.insert=function(a,f){return this.getLength()<=1&&this.$detectNewLine(f),this.insertMergedLines(a,this.$split(f))},this.insertInLine=function(a,f){var l=this.clippedPos(a.row,a.column),h=this.pos(a.row,a.column+f.length);return this.applyDelta({start:l,end:h,action:"insert",lines:[f]},!0),this.clonePos(h)},this.clippedPos=function(a,f){var l=this.getLength();a===void 0?a=l:a<0?a=0:a>=l&&(a=l-1,f=void 0);var h=this.getLine(a);return f==null&&(f=h.length),f=Math.min(Math.max(f,0),h.length),{row:a,column:f}},this.clonePos=function(a){return{row:a.row,column:a.column}},this.pos=function(a,f){return{row:a,column:f}},this.$clipPosition=function(a){var f=this.getLength();return a.row>=f?(a.row=Math.max(0,f-1),a.column=this.getLine(f-1).length):(a.row=Math.max(0,a.row),a.column=Math.min(Math.max(a.column,0),this.getLine(a.row).length)),a},this.insertFullLines=function(a,f){a=Math.min(Math.max(a,0),this.getLength());var l=0;a<this.getLength()?(f=f.concat([""]),l=0):(f=[""].concat(f),a--,l=this.$lines[a].length),this.insertMergedLines({row:a,column:l},f)},this.insertMergedLines=function(a,f){var l=this.clippedPos(a.row,a.column),h={row:l.row+f.length-1,column:(f.length==1?l.column:0)+f[f.length-1].length};return this.applyDelta({start:l,end:h,action:"insert",lines:f}),this.clonePos(h)},this.remove=function(a){var f=this.clippedPos(a.start.row,a.start.column),l=this.clippedPos(a.end.row,a.end.column);return this.applyDelta({start:f,end:l,action:"remove",lines:this.getLinesForRange({start:f,end:l})}),this.clonePos(f)},this.removeInLine=function(a,f,l){var h=this.clippedPos(a,f),d=this.clippedPos(a,l);return this.applyDelta({start:h,end:d,action:"remove",lines:this.getLinesForRange({start:h,end:d})},!0),this.clonePos(h)},this.removeFullLines=function(a,f){a=Math.min(Math.max(0,a),this.getLength()-1),f=Math.min(Math.max(0,f),this.getLength()-1);var l=f==this.getLength()-1&&a>0,h=f<this.getLength()-1,d=l?a-1:a,g=l?this.getLine(d).length:0,p=h?f+1:f,m=h?0:this.getLine(p).length,w=new u(d,g,p,m),v=this.$lines.slice(a,f+1);return this.applyDelta({start:w.start,end:w.end,action:"remove",lines:this.getLinesForRange(w)}),v},this.removeNewLine=function(a){a<this.getLength()-1&&a>=0&&this.applyDelta({start:this.pos(a,this.getLine(a).length),end:this.pos(a+1,0),action:"remove",lines:["",""]})},this.replace=function(a,f){if(a instanceof u||(a=u.fromPoints(a.start,a.end)),f.length===0&&a.isEmpty())return a.start;if(f==this.getTextRange(a))return a.end;this.remove(a);var l;return f?l=this.insert(a.start,f):l=a.start,l},this.applyDeltas=function(a){for(var f=0;f<a.length;f++)this.applyDelta(a[f])},this.revertDeltas=function(a){for(var f=a.length-1;f>=0;f--)this.revertDelta(a[f])},this.applyDelta=function(a,f){var l=a.action=="insert";(l?a.lines.length<=1&&!a.lines[0]:!u.comparePoints(a.start,a.end))||(l&&a.lines.length>2e4&&this.$splitAndapplyLargeDelta(a,2e4),r(this.$lines,a,f),this._signal("change",a))},this.$splitAndapplyLargeDelta=function(a,f){var l=a.lines,h=l.length,d=a.start.row,g=a.start.column,p=0,m=0;do{p=m,m+=f-1;var w=l.slice(p,m);if(m>h){a.lines=w,a.start.row=d+p,a.start.column=g;break}w.push(""),this.applyDelta({start:this.pos(d+p,g),end:this.pos(d+m,g=0),action:a.action,lines:w},!0)}while(!0)},this.revertDelta=function(a){this.applyDelta({start:this.clonePos(a.start),end:this.clonePos(a.end),action:a.action=="insert"?"remove":"insert",lines:a.lines.slice()})},this.indexToPosition=function(a,f){for(var l=this.$lines||this.getAllLines(),h=this.getNewLineCharacter().length,d=f||0,g=l.length;d<g;d++)if(a-=l[d].length+h,a<0)return{row:d,column:a+l[d].length+h};return{row:g-1,column:l[g-1].length}},this.positionToIndex=function(a,f){for(var l=this.$lines||this.getAllLines(),h=this.getNewLineCharacter().length,d=0,g=Math.min(a.row,l.length),p=f||0;p<g;++p)d+=l[p].length+h;return d+a.column}}).call(c.prototype),t.Document=c});ace.define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){var i=e("./lib/oop"),r=e("./lib/event_emitter").EventEmitter,s=function(u,o){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.tokenizer=u;var c=this;this.$worker=function(){if(!!c.running){for(var a=new Date,f=c.currentLine,l=-1,h=c.doc,d=f;c.lines[f];)f++;var g=h.getLength(),p=0;for(c.running=!1;f<g;){c.$tokenizeRow(f),l=f;do f++;while(c.lines[f]);if(p++,p%5===0&&new Date-a>20){c.running=setTimeout(c.$worker,20);break}}c.currentLine=f,l==-1&&(l=f),d<=l&&c.fireUpdateEvent(d,l)}}};(function(){i.implement(this,r),this.setTokenizer=function(u){this.tokenizer=u,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(u){this.doc=u,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(u,o){var c={first:u,last:o};this._signal("update",{data:c})},this.start=function(u){this.currentLine=Math.min(u||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(u){var o=u.start.row,c=u.end.row-o;if(c===0)this.lines[o]=null;else if(u.action=="remove")this.lines.splice(o,c+1,null),this.states.splice(o,c+1,null);else{var a=Array(c+1);a.unshift(o,1),this.lines.splice.apply(this.lines,a),this.states.splice.apply(this.states,a)}this.currentLine=Math.min(o,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(u){return this.lines[u]||this.$tokenizeRow(u)},this.getState=function(u){return this.currentLine==u&&this.$tokenizeRow(u),this.states[u]||"start"},this.$tokenizeRow=function(u){var o=this.doc.getLine(u),c=this.states[u-1],a=this.tokenizer.getLineTokens(o,c,u);return this.states[u]+""!=a.state+""?(this.states[u]=a.state,this.lines[u+1]=null,this.currentLine>u+1&&(this.currentLine=u+1)):this.currentLine==u&&(this.currentLine=u+1),this.lines[u]=a.tokens}}).call(s.prototype),t.BackgroundTokenizer=s});ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,n){var i=e("./lib/lang");e("./lib/oop");var r=e("./range").Range,s=function(u,o,c){this.setRegexp(u),this.clazz=o,this.type=c||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(u){this.regExp+""!=u+""&&(this.regExp=u,this.cache=[])},this.update=function(u,o,c,a){if(!!this.regExp)for(var f=a.firstRow,l=a.lastRow,h=f;h<=l;h++){var d=this.cache[h];d==null&&(d=i.getMatchOffsets(c.getLine(h),this.regExp),d.length>this.MAX_RANGES&&(d=d.slice(0,this.MAX_RANGES)),d=d.map(function(p){return new r(h,p.offset,h,p.offset+p.length)}),this.cache[h]=d.length?d:"");for(var g=d.length;g--;)o.drawSingleLineMarker(u,d[g].toScreenRange(c),this.clazz,a)}}}).call(s.prototype),t.SearchHighlight=s});ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(e,t,n){var i=e("../range").Range;function r(s,u){this.foldData=s,Array.isArray(u)?this.folds=u:u=this.folds=[u];var o=u[u.length-1];this.range=new i(u[0].start.row,u[0].start.column,o.end.row,o.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(c){c.setFoldLine(this)},this)}(function(){this.shiftRow=function(s){this.start.row+=s,this.end.row+=s,this.folds.forEach(function(u){u.start.row+=s,u.end.row+=s})},this.addFold=function(s){if(s.sameRow){if(s.start.row<this.startRow||s.endRow>this.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(s),this.folds.sort(function(u,o){return-u.range.compareEnd(o.start.row,o.start.column)}),this.range.compareEnd(s.start.row,s.start.column)>0?(this.end.row=s.end.row,this.end.column=s.end.column):this.range.compareStart(s.end.row,s.end.column)<0&&(this.start.row=s.start.row,this.start.column=s.start.column)}else if(s.start.row==this.end.row)this.folds.push(s),this.end.row=s.end.row,this.end.column=s.end.column;else if(s.end.row==this.start.row)this.folds.unshift(s),this.start.row=s.start.row,this.start.column=s.start.column;else throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");s.foldLine=this},this.containsRow=function(s){return s>=this.start.row&&s<=this.end.row},this.walk=function(s,u,o){var c=0,a=this.folds,f,l,h,d=!0;u==null&&(u=this.end.row,o=this.end.column);for(var g=0;g<a.length;g++){if(f=a[g],l=f.range.compareStart(u,o),l==-1){s(null,u,o,c,d);return}if(h=s(null,f.start.row,f.start.column,c,d),h=!h&&s(f.placeholder,f.start.row,f.start.column,c),h||l===0)return;d=!f.sameRow,c=f.end.column}s(null,u,o,c,d)},this.getNextFoldTo=function(s,u){for(var o,c,a=0;a<this.folds.length;a++){if(o=this.folds[a],c=o.range.compareEnd(s,u),c==-1)return{fold:o,kind:"after"};if(c===0)return{fold:o,kind:"inside"}}return null},this.addRemoveChars=function(s,u,o){var c=this.getNextFoldTo(s,u),a,f;if(c){if(a=c.fold,c.kind=="inside"&&a.start.column!=u&&a.start.row!=s)window.console&&window.console.log(s,u,a);else if(a.start.row==s){f=this.folds;var l=f.indexOf(a);for(l===0&&(this.start.column+=o),l;l<f.length;l++){if(a=f[l],a.start.column+=o,!a.sameRow)return;a.end.column+=o}this.end.column+=o}}},this.split=function(s,u){var o=this.getNextFoldTo(s,u);if(!o||o.kind=="inside")return null;var c=o.fold,a=this.folds,f=this.foldData,l=a.indexOf(c),h=a[l-1];this.end.row=h.end.row,this.end.column=h.end.column,a=a.splice(l,a.length-l);var d=new r(f,a);return f.splice(f.indexOf(this)+1,0,d),d},this.merge=function(s){for(var u=s.folds,o=0;o<u.length;o++)this.addFold(u[o]);var c=this.foldData;c.splice(c.indexOf(s),1)},this.toString=function(){var s=[this.range.toString()+": ["];return this.folds.forEach(function(u){s.push(" "+u.toString())}),s.push("]"),s.join(` -`)},this.idxToPosition=function(s){for(var u=0,o=0;o<this.folds.length;o++){var c=this.folds[o];if(s-=c.start.column-u,s<0)return{row:c.start.row,column:c.start.column+s};if(s-=c.placeholder.length,s<0)return c.start;u=c.end.column}return{row:this.end.row,column:this.end.column+s}}}).call(r.prototype),t.FoldLine=r});ace.define("ace/range_list",["require","exports","module","ace/range"],function(e,t,n){var i=e("./range").Range,r=i.comparePoints,s=function(){this.ranges=[]};(function(){this.comparePoints=r,this.pointIndex=function(u,o,c){for(var a=this.ranges,f=c||0;f<a.length;f++){var l=a[f],h=r(u,l.end);if(!(h>0)){var d=r(u,l.start);return h===0?o&&d!==0?-f-2:f:d>0||d===0&&!o?f:-f-1}}return-f-1},this.add=function(u){var o=!u.isEmpty(),c=this.pointIndex(u.start,o);c<0&&(c=-c-1);var a=this.pointIndex(u.end,o,c);return a<0?a=-a-1:a++,this.ranges.splice(c,a-c,u)},this.addList=function(u){for(var o=[],c=u.length;c--;)o.push.apply(o,this.add(u[c]));return o},this.substractPoint=function(u){var o=this.pointIndex(u);if(o>=0)return this.ranges.splice(o,1)},this.merge=function(){var u=[],o=this.ranges;o=o.sort(function(h,d){return r(h.start,d.start)});for(var c=o[0],a,f=1;f<o.length;f++){a=c,c=o[f];var l=r(a.end,c.start);l<0||l==0&&!a.isEmpty()&&!c.isEmpty()||(r(a.end,c.end)<0&&(a.end.row=c.end.row,a.end.column=c.end.column),o.splice(f,1),u.push(c),c=a,f--)}return this.ranges=o,u},this.contains=function(u,o){return this.pointIndex({row:u,column:o})>=0},this.containsPoint=function(u){return this.pointIndex(u)>=0},this.rangeAtPoint=function(u){var o=this.pointIndex(u);if(o>=0)return this.ranges[o]},this.clipRows=function(u,o){var c=this.ranges;if(c[0].start.row>o||c[c.length-1].start.row<u)return[];var a=this.pointIndex({row:u,column:0});a<0&&(a=-a-1);var f=this.pointIndex({row:o,column:0},a);f<0&&(f=-f-1);for(var l=[],h=a;h<f;h++)l.push(c[h]);return l},this.removeAll=function(){return this.ranges.splice(0,this.ranges.length)},this.attach=function(u){this.session&&this.detach(),this.session=u,this.onChange=this.$onChange.bind(this),this.session.on("change",this.onChange)},this.detach=function(){!this.session||(this.session.removeListener("change",this.onChange),this.session=null)},this.$onChange=function(u){if(u.action=="insert")var o=u.start,c=u.end;else var c=u.start,o=u.end;for(var a=o.row,f=c.row,l=f-a,h=-o.column+c.column,d=this.ranges,g=0,p=d.length;g<p;g++){var m=d[g];if(!(m.end.row<a)){if(m.start.row>a)break;if(m.start.row==a&&m.start.column>=o.column&&(m.start.column==o.column&&this.$insertRight||(m.start.column+=h,m.start.row+=l)),m.end.row==a&&m.end.column>=o.column){if(m.end.column==o.column&&this.$insertRight)continue;m.end.column==o.column&&h>0&&g<p-1&&m.end.column>m.start.column&&m.end.column==d[g+1].start.column&&(m.end.column-=h),m.end.column+=h,m.end.row+=l}}}if(l!=0&&g<p)for(;g<p;g++){var m=d[g];m.start.row+=l,m.end.row+=l}}}).call(s.prototype),t.RangeList=s});ace.define("ace/edit_session/fold",["require","exports","module","ace/range","ace/range_list","ace/lib/oop"],function(e,t,n){e("../range").Range;var i=e("../range_list").RangeList,r=e("../lib/oop"),s=t.Fold=function(f,l){this.foldLine=null,this.placeholder=l,this.range=f,this.start=f.start,this.end=f.end,this.sameRow=f.start.row==f.end.row,this.subFolds=this.ranges=[]};r.inherits(s,i),function(){this.toString=function(){return'"'+this.placeholder+'" '+this.range.toString()},this.setFoldLine=function(f){this.foldLine=f,this.subFolds.forEach(function(l){l.setFoldLine(f)})},this.clone=function(){var f=this.range.clone(),l=new s(f,this.placeholder);return this.subFolds.forEach(function(h){l.subFolds.push(h.clone())}),l.collapseChildren=this.collapseChildren,l},this.addSubFold=function(f){if(!this.range.isEqual(f)){if(!this.range.containsRange(f))throw new Error("A fold can't intersect already existing fold"+f.range+this.range);o(f,this.start);for(var g=f.start.row,p=f.start.column,l=0,h=-1;l<this.subFolds.length&&(h=this.subFolds[l].range.compare(g,p),h==1);l++);var d=this.subFolds[l];if(h==0)return d.addSubFold(f);for(var g=f.range.end.row,p=f.range.end.column,m=l,h=-1;m<this.subFolds.length&&(h=this.subFolds[m].range.compare(g,p),h==1);m++);if(this.subFolds[m],h==0)throw new Error("A fold can't intersect already existing fold"+f.range+this.range);return this.subFolds.splice(l,m-l,f),f.setFoldLine(this.foldLine),f}},this.restoreRange=function(f){return a(f,this.start)}}.call(s.prototype);function u(f,l){f.row-=l.row,f.row==0&&(f.column-=l.column)}function o(f,l){u(f.start,l),u(f.end,l)}function c(f,l){f.row==0&&(f.column+=l.column),f.row+=l.row}function a(f,l){c(f.start,l),c(f.end,l)}});ace.define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold","ace/token_iterator"],function(e,t,n){var i=e("../range").Range,r=e("./fold_line").FoldLine,s=e("./fold").Fold,u=e("../token_iterator").TokenIterator;function o(){this.getFoldAt=function(c,a,f){var l=this.getFoldLine(c);if(!l)return null;for(var h=l.folds,d=0;d<h.length;d++){var g=h[d];if(g.range.contains(c,a)){if(f==1&&g.range.isEnd(c,a))continue;if(f==-1&&g.range.isStart(c,a))continue;return g}}},this.getFoldsInRange=function(c){var a=c.start,f=c.end,l=this.$foldData,h=[];a.column+=1,f.column-=1;for(var d=0;d<l.length;d++){var g=l[d].range.compareRange(c);if(g!=2){if(g==-2)break;for(var p=l[d].folds,m=0;m<p.length;m++){var w=p[m];if(g=w.range.compareRange(c),g==-2)break;if(g==2)continue;if(g==42)break;h.push(w)}}}return a.column-=1,f.column+=1,h},this.getFoldsInRangeList=function(c){if(Array.isArray(c)){var a=[];c.forEach(function(f){a=a.concat(this.getFoldsInRange(f))},this)}else var a=this.getFoldsInRange(c);return a},this.getAllFolds=function(){for(var c=[],a=this.$foldData,f=0;f<a.length;f++)for(var l=0;l<a[f].folds.length;l++)c.push(a[f].folds[l]);return c},this.getFoldStringAt=function(c,a,f,l){if(l=l||this.getFoldLine(c),!l)return null;for(var h={end:{column:0}},d,g,p=0;p<l.folds.length;p++){g=l.folds[p];var m=g.range.compareEnd(c,a);if(m==-1){d=this.getLine(g.start.row).substring(h.end.column,g.start.column);break}else if(m===0)return null;h=g}return d||(d=this.getLine(g.start.row).substring(h.end.column)),f==-1?d.substring(0,a-h.end.column):f==1?d.substring(a-h.end.column):d},this.getFoldLine=function(c,a){var f=this.$foldData,l=0;for(a&&(l=f.indexOf(a)),l==-1&&(l=0),l;l<f.length;l++){var h=f[l];if(h.start.row<=c&&h.end.row>=c)return h;if(h.end.row>c)return null}return null},this.getNextFoldLine=function(c,a){var f=this.$foldData,l=0;for(a&&(l=f.indexOf(a)),l==-1&&(l=0),l;l<f.length;l++){var h=f[l];if(h.end.row>=c)return h}return null},this.getFoldedRowCount=function(c,a){for(var f=this.$foldData,l=a-c+1,h=0;h<f.length;h++){var d=f[h],g=d.end.row,p=d.start.row;if(g>=a){p<a&&(p>=c?l-=a-p:l=0);break}else g>=c&&(p>=c?l-=g-p:l-=g-c+1)}return l},this.$addFoldLine=function(c){return this.$foldData.push(c),this.$foldData.sort(function(a,f){return a.start.row-f.start.row}),c},this.addFold=function(c,a){var f=this.$foldData,l=!1,h;c instanceof s?h=c:(h=new s(a,c),h.collapseChildren=a.collapseChildren),this.$clipRangeToDocument(h.range);var d=h.start.row,g=h.start.column,p=h.end.row,m=h.end.column;if(!(d<p||d==p&&g<=m-2))throw new Error("The range has to be at least 2 characters width");var w=this.getFoldAt(d,g,1),v=this.getFoldAt(p,m,-1);if(w&&v==w)return w.addSubFold(h);w&&!w.range.isStart(d,g)&&this.removeFold(w),v&&!v.range.isEnd(p,m)&&this.removeFold(v);var A=this.getFoldsInRange(h.range);A.length>0&&(this.removeFolds(A),A.forEach(function(x){h.addSubFold(x)}));for(var _=0;_<f.length;_++){var E=f[_];if(p==E.start.row){E.addFold(h),l=!0;break}else if(d==E.end.row){if(E.addFold(h),l=!0,!h.sameRow){var b=f[_+1];if(b&&b.start.row==p){E.merge(b);break}}break}else if(p<=E.start.row)break}return l||(E=this.$addFoldLine(new r(this.$foldData,h))),this.$useWrapMode?this.$updateWrapData(E.start.row,E.start.row):this.$updateRowLengthCache(E.start.row,E.start.row),this.$modified=!0,this._signal("changeFold",{data:h,action:"add"}),h},this.addFolds=function(c){c.forEach(function(a){this.addFold(a)},this)},this.removeFold=function(c){var a=c.foldLine,f=a.start.row,l=a.end.row,h=this.$foldData,d=a.folds;if(d.length==1)h.splice(h.indexOf(a),1);else if(a.range.isEnd(c.end.row,c.end.column))d.pop(),a.end.row=d[d.length-1].end.row,a.end.column=d[d.length-1].end.column;else if(a.range.isStart(c.start.row,c.start.column))d.shift(),a.start.row=d[0].start.row,a.start.column=d[0].start.column;else if(c.sameRow)d.splice(d.indexOf(c),1);else{var g=a.split(c.start.row,c.start.column);d=g.folds,d.shift(),g.start.row=d[0].start.row,g.start.column=d[0].start.column}this.$updating||(this.$useWrapMode?this.$updateWrapData(f,l):this.$updateRowLengthCache(f,l)),this.$modified=!0,this._signal("changeFold",{data:c,action:"remove"})},this.removeFolds=function(c){for(var a=[],f=0;f<c.length;f++)a.push(c[f]);a.forEach(function(l){this.removeFold(l)},this),this.$modified=!0},this.expandFold=function(c){this.removeFold(c),c.subFolds.forEach(function(a){c.restoreRange(a),this.addFold(a)},this),c.collapseChildren>0&&this.foldAll(c.start.row+1,c.end.row,c.collapseChildren-1),c.subFolds=[]},this.expandFolds=function(c){c.forEach(function(a){this.expandFold(a)},this)},this.unfold=function(c,a){var f,l;if(c==null?(f=new i(0,0,this.getLength(),0),a=!0):typeof c=="number"?f=new i(c,0,c,this.getLine(c).length):"row"in c?f=i.fromPoints(c,c):f=c,l=this.getFoldsInRangeList(f),a)this.removeFolds(l);else for(var h=l;h.length;)this.expandFolds(h),h=this.getFoldsInRangeList(f);if(l.length)return l},this.isRowFolded=function(c,a){return!!this.getFoldLine(c,a)},this.getRowFoldEnd=function(c,a){var f=this.getFoldLine(c,a);return f?f.end.row:c},this.getRowFoldStart=function(c,a){var f=this.getFoldLine(c,a);return f?f.start.row:c},this.getFoldDisplayLine=function(c,a,f,l,h){l==null&&(l=c.start.row),h==null&&(h=0),a==null&&(a=c.end.row),f==null&&(f=this.getLine(a).length);var d=this.doc,g="";return c.walk(function(p,m,w,v){if(!(m<l)){if(m==l){if(w<h)return;v=Math.max(h,v)}p!=null?g+=p:g+=d.getLine(m).substring(v,w)}},a,f),g},this.getDisplayLine=function(c,a,f,l){var h=this.getFoldLine(c);if(h)return this.getFoldDisplayLine(h,c,a,f,l);var d;return d=this.doc.getLine(c),d.substring(l||0,a||d.length)},this.$cloneFoldData=function(){var c=[];return c=this.$foldData.map(function(a){var f=a.folds.map(function(l){return l.clone()});return new r(c,f)}),c},this.toggleFold=function(c){var a=this.selection,f=a.getRange(),l,h;if(f.isEmpty()){var d=f.start;if(l=this.getFoldAt(d.row,d.column),l){this.expandFold(l);return}else(h=this.findMatchingBracket(d))?f.comparePoint(h)==1?f.end=h:(f.start=h,f.start.column++,f.end.column--):(h=this.findMatchingBracket({row:d.row,column:d.column+1}))?(f.comparePoint(h)==1?f.end=h:f.start=h,f.start.column++):f=this.getCommentFoldRange(d.row,d.column)||f}else{var g=this.getFoldsInRange(f);if(c&&g.length){this.expandFolds(g);return}else g.length==1&&(l=g[0])}if(l||(l=this.getFoldAt(f.start.row,f.start.column)),l&&l.range.toString()==f.toString()){this.expandFold(l);return}var p="...";if(!f.isMultiLine()){if(p=this.getTextRange(f),p.length<4)return;p=p.trim().substring(0,2)+".."}this.addFold(p,f)},this.getCommentFoldRange=function(c,a,f){var l=new u(this,c,a),h=l.getCurrentToken(),d=h.type;if(h&&/^comment|string/.test(d)){d=d.match(/comment|string/)[0],d=="comment"&&(d+="|doc-start");var g=new RegExp(d),p=new i;if(f!=1){do h=l.stepBackward();while(h&&g.test(h.type));l.stepForward()}if(p.start.row=l.getCurrentTokenRow(),p.start.column=l.getCurrentTokenColumn()+2,l=new u(this,c,a),f!=-1){var m=-1;do if(h=l.stepForward(),m==-1){var w=this.getState(l.$row);g.test(w)||(m=l.$row)}else if(l.$row>m)break;while(h&&g.test(h.type));h=l.stepBackward()}else h=l.getCurrentToken();return p.end.row=l.getCurrentTokenRow(),p.end.column=l.getCurrentTokenColumn()+h.value.length-2,p}},this.foldAll=function(c,a,f){f==null&&(f=1e5);var l=this.foldWidgets;if(!!l){a=a||this.getLength(),c=c||0;for(var h=c;h<a;h++)if(l[h]==null&&(l[h]=this.getFoldWidget(h)),l[h]=="start"){var d=this.getFoldWidgetRange(h);if(d&&d.isMultiLine()&&d.end.row<=a&&d.start.row>=c){h=d.end.row;try{var g=this.addFold("...",d);g&&(g.collapseChildren=f)}catch{}}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(c){if(!this.$foldStyles[c])throw new Error("invalid fold style: "+c+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle!=c){this.$foldStyle=c,c=="manual"&&this.unfold();var a=this.$foldMode;this.$setFolding(null),this.$setFolding(a)}},this.$setFolding=function(c){if(this.$foldMode!=c){if(this.$foldMode=c,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation"),!c||this.$foldStyle=="manual"){this.foldWidgets=null;return}this.foldWidgets=[],this.getFoldWidget=c.getFoldWidget.bind(c,this,this.$foldStyle),this.getFoldWidgetRange=c.getFoldWidgetRange.bind(c,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)}},this.getParentFoldRangeData=function(c,a){var f=this.foldWidgets;if(!f||a&&f[c])return{};for(var l=c-1,h;l>=0;){var d=f[l];if(d==null&&(d=f[l]=this.getFoldWidget(l)),d=="start"){var g=this.getFoldWidgetRange(l);if(h||(h=g),g&&g.end.row>=c)break}l--}return{range:l!==-1&&g,firstRange:h}},this.onFoldWidgetClick=function(c,a){a=a.domEvent;var f={children:a.shiftKey,all:a.ctrlKey||a.metaKey,siblings:a.altKey},l=this.$toggleFoldWidget(c,f);if(!l){var h=a.target||a.srcElement;h&&/ace_fold-widget/.test(h.className)&&(h.className+=" ace_invalid")}},this.$toggleFoldWidget=function(c,a){if(!!this.getFoldWidget){var f=this.getFoldWidget(c),l=this.getLine(c),h=f==="end"?-1:1,d=this.getFoldAt(c,h===-1?0:l.length,h);if(d)return a.children||a.all?this.removeFold(d):this.expandFold(d),d;var g=this.getFoldWidgetRange(c,!0);if(g&&!g.isMultiLine()&&(d=this.getFoldAt(g.start.row,g.start.column,1),d&&g.isEqual(d.range)))return this.removeFold(d),d;if(a.siblings){var p=this.getParentFoldRangeData(c);if(p.range)var m=p.range.start.row+1,w=p.range.end.row;this.foldAll(m,w,a.all?1e4:0)}else a.children?(w=g?g.end.row:this.getLength(),this.foldAll(c+1,w,a.all?1e4:0)):g&&(a.all&&(g.collapseChildren=1e4),this.addFold("...",g));return g}},this.toggleFoldWidget=function(c){var a=this.selection.getCursor().row;a=this.getRowFoldStart(a);var f=this.$toggleFoldWidget(a,{});if(!f){var l=this.getParentFoldRangeData(a,!0);if(f=l.range||l.firstRange,f){a=f.start.row;var h=this.getFoldAt(a,this.getLine(a).length,1);h?this.removeFold(h):this.addFold("...",f)}}},this.updateFoldWidgets=function(c){var a=c.start.row,f=c.end.row-a;if(f===0)this.foldWidgets[a]=null;else if(c.action=="remove")this.foldWidgets.splice(a,f+1,null);else{var l=Array(f+1);l.unshift(a,1),this.foldWidgets.splice.apply(this.foldWidgets,l)}},this.tokenizerUpdateFoldWidgets=function(c){var a=c.data;a.first!=a.last&&this.foldWidgets.length>a.first&&this.foldWidgets.splice(a.first,this.foldWidgets.length)}}t.Folding=o});ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(e,t,n){var i=e("../token_iterator").TokenIterator,r=e("../range").Range;function s(){this.findMatchingBracket=function(u,o){if(u.column==0)return null;var c=o||this.getLine(u.row).charAt(u.column-1);if(c=="")return null;var a=c.match(/([\(\[\{])|([\)\]\}])/);return a?a[1]?this.$findClosingBracket(a[1],u):this.$findOpeningBracket(a[2],u):null},this.getBracketRange=function(u){var o=this.getLine(u.row),c=!0,a,f=o.charAt(u.column-1),l=f&&f.match(/([\(\[\{])|([\)\]\}])/);if(l||(f=o.charAt(u.column),u={row:u.row,column:u.column+1},l=f&&f.match(/([\(\[\{])|([\)\]\}])/),c=!1),!l)return null;if(l[1]){var h=this.$findClosingBracket(l[1],u);if(!h)return null;a=r.fromPoints(u,h),c||(a.end.column++,a.start.column--),a.cursor=a.end}else{var h=this.$findOpeningBracket(l[2],u);if(!h)return null;a=r.fromPoints(h,u),c||(a.start.column++,a.end.column--),a.cursor=a.start}return a},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(u,o,c){var a=this.$brackets[u],f=1,l=new i(this,o.row,o.column),h=l.getCurrentToken();if(h||(h=l.stepForward()),!!h){c||(c=new RegExp("(\\.?"+h.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));for(var d=o.column-l.getCurrentTokenColumn()-2,g=h.value;;){for(;d>=0;){var p=g.charAt(d);if(p==a){if(f-=1,f==0)return{row:l.getCurrentTokenRow(),column:d+l.getCurrentTokenColumn()}}else p==u&&(f+=1);d-=1}do h=l.stepBackward();while(h&&!c.test(h.type));if(h==null)break;g=h.value,d=g.length-1}return null}},this.$findClosingBracket=function(u,o,c){var a=this.$brackets[u],f=1,l=new i(this,o.row,o.column),h=l.getCurrentToken();if(h||(h=l.stepForward()),!!h){c||(c=new RegExp("(\\.?"+h.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));for(var d=o.column-l.getCurrentTokenColumn();;){for(var g=h.value,p=g.length;d<p;){var m=g.charAt(d);if(m==a){if(f-=1,f==0)return{row:l.getCurrentTokenRow(),column:d+l.getCurrentTokenColumn()}}else m==u&&(f+=1);d+=1}do h=l.stepForward();while(h&&!c.test(h.type));if(h==null)break;d=0}return null}}}t.BracketMatch=s});ace.define("ace/edit_session",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/bidihandler","ace/config","ace/lib/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/search_highlight","ace/edit_session/folding","ace/edit_session/bracket_match"],function(e,t,n){var i=e("./lib/oop"),r=e("./lib/lang"),s=e("./bidihandler").BidiHandler,u=e("./config"),o=e("./lib/event_emitter").EventEmitter,c=e("./selection").Selection,a=e("./mode/text").Mode,f=e("./range").Range,l=e("./document").Document,h=e("./background_tokenizer").BackgroundTokenizer,d=e("./search_highlight").SearchHighlight,g=function(p,m){this.$breakpoints=[],this.$decorations=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$undoSelect=!0,this.$foldData=[],this.id="session"+ ++g.$uid,this.$foldData.toString=function(){return this.join(` -`)},this.on("changeFold",this.onChangeFold.bind(this)),this.$onChange=this.onChange.bind(this),(typeof p!="object"||!p.getLine)&&(p=new l(p)),this.$bidiHandler=new s(this),this.setDocument(p),this.selection=new c(this),u.resetOptions(this),this.setMode(m),u._signal("session",this)};g.$uid=0,function(){i.implement(this,o),this.setDocument=function(y){this.doc&&this.doc.removeListener("change",this.$onChange),this.doc=y,y.on("change",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(y){if(!y){this.$docRowCache=[],this.$screenRowCache=[];return}var C=this.$docRowCache.length,B=this.$getRowCacheIndex(this.$docRowCache,y)+1;C>B&&(this.$docRowCache.splice(B,C),this.$screenRowCache.splice(B,C))},this.$getRowCacheIndex=function(y,C){for(var B=0,T=y.length-1;B<=T;){var M=B+T>>1,R=y[M];if(C>R)B=M+1;else if(C<R)T=M-1;else return M}return B-1},this.resetCaches=function(){this.$modified=!0,this.$wrapData=[],this.$rowLengthCache=[],this.$resetRowCache(0),this.bgTokenizer&&this.bgTokenizer.start(0)},this.onChangeFold=function(y){var C=y.data;this.$resetRowCache(C.start.row)},this.onChange=function(y){this.$modified=!0,this.$bidiHandler.onChange(y),this.$resetRowCache(y.start.row);var C=this.$updateInternalDataOnChange(y);!this.$fromUndo&&this.$undoManager&&!y.ignore&&(this.$deltasDoc.push(y),C&&C.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:C}),this.$informUndoManager.schedule()),this.bgTokenizer&&this.bgTokenizer.$updateOnChange(y),this._signal("change",y)},this.setValue=function(y){this.doc.setValue(y),this.selection.moveTo(0,0),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.setUndoManager(this.$undoManager),this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(y){return this.bgTokenizer.getState(y)},this.getTokens=function(y){return this.bgTokenizer.getTokens(y)},this.getTokenAt=function(y,C){var B=this.bgTokenizer.getTokens(y),T,M=0;if(C==null){var R=B.length-1;M=this.getLine(y).length}else for(var R=0;R<B.length&&(M+=B[R].value.length,!(M>=C));R++);return T=B[R],T?(T.index=R,T.start=M-T.value.length,T):null},this.setUndoManager=function(y){if(this.$undoManager=y,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel(),y){var C=this;this.$syncInformUndoManager=function(){C.$informUndoManager.cancel(),C.$deltasFold.length&&(C.$deltas.push({group:"fold",deltas:C.$deltasFold}),C.$deltasFold=[]),C.$deltasDoc.length&&(C.$deltas.push({group:"doc",deltas:C.$deltasDoc}),C.$deltasDoc=[]),C.$deltas.length>0&&y.execute({action:"aceupdate",args:[C.$deltas,C],merge:C.mergeUndoDeltas}),C.mergeUndoDeltas=!1,C.$deltas=[]},this.$informUndoManager=r.delayedCall(this.$syncInformUndoManager)}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?r.stringRepeat(" ",this.getTabSize()):" "},this.setUseSoftTabs=function(y){this.setOption("useSoftTabs",y)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(y){this.setOption("tabSize",y)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(y){return this.$useSoftTabs&&y.column%this.$tabSize===0},this.setNavigateWithinSoftTabs=function(y){this.setOption("navigateWithinSoftTabs",y)},this.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},this.$overwrite=!1,this.setOverwrite=function(y){this.setOption("overwrite",y)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(y,C){this.$decorations[y]||(this.$decorations[y]=""),this.$decorations[y]+=" "+C,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(y,C){this.$decorations[y]=(this.$decorations[y]||"").replace(" "+C,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(y){this.$breakpoints=[];for(var C=0;C<y.length;C++)this.$breakpoints[y[C]]="ace_breakpoint";this._signal("changeBreakpoint",{})},this.clearBreakpoints=function(){this.$breakpoints=[],this._signal("changeBreakpoint",{})},this.setBreakpoint=function(y,C){C===void 0&&(C="ace_breakpoint"),C?this.$breakpoints[y]=C:delete this.$breakpoints[y],this._signal("changeBreakpoint",{})},this.clearBreakpoint=function(y){delete this.$breakpoints[y],this._signal("changeBreakpoint",{})},this.addMarker=function(y,C,B,T){var M=this.$markerId++,R={range:y,type:B||"line",renderer:typeof B=="function"?B:null,clazz:C,inFront:!!T,id:M};return T?(this.$frontMarkers[M]=R,this._signal("changeFrontMarker")):(this.$backMarkers[M]=R,this._signal("changeBackMarker")),M},this.addDynamicMarker=function(y,C){if(!!y.update){var B=this.$markerId++;return y.id=B,y.inFront=!!C,C?(this.$frontMarkers[B]=y,this._signal("changeFrontMarker")):(this.$backMarkers[B]=y,this._signal("changeBackMarker")),y}},this.removeMarker=function(y){var C=this.$frontMarkers[y]||this.$backMarkers[y];if(!!C){var B=C.inFront?this.$frontMarkers:this.$backMarkers;C&&(delete B[y],this._signal(C.inFront?"changeFrontMarker":"changeBackMarker"))}},this.getMarkers=function(y){return y?this.$frontMarkers:this.$backMarkers},this.highlight=function(y){if(!this.$searchHighlight){var C=new d(null,"ace_selected-word","text");this.$searchHighlight=this.addDynamicMarker(C)}this.$searchHighlight.setRegexp(y)},this.highlightLines=function(y,C,B,T){typeof C!="number"&&(B=C,C=y),B||(B="ace_step");var M=new f(y,0,C,1/0);return M.id=this.addMarker(M,B,"fullLine",T),M},this.setAnnotations=function(y){this.$annotations=y,this._signal("changeAnnotation",{})},this.getAnnotations=function(){return this.$annotations||[]},this.clearAnnotations=function(){this.setAnnotations([])},this.$detectNewLine=function(y){var C=y.match(/^.*?(\r?\n)/m);C?this.$autoNewLine=C[1]:this.$autoNewLine=` -`},this.getWordRange=function(y,C){var B=this.getLine(y),T=!1;if(C>0&&(T=!!B.charAt(C-1).match(this.tokenRe)),T||(T=!!B.charAt(C).match(this.tokenRe)),T)var M=this.tokenRe;else if(/^\s+$/.test(B.slice(C-1,C+1)))var M=/\s/;else var M=this.nonTokenRe;var R=C;if(R>0){do R--;while(R>=0&&B.charAt(R).match(M));R++}for(var I=C;I<B.length&&B.charAt(I).match(M);)I++;return new f(y,R,y,I)},this.getAWordRange=function(y,C){for(var B=this.getWordRange(y,C),T=this.getLine(B.end.row);T.charAt(B.end.column).match(/[ \t]/);)B.end.column+=1;return B},this.setNewLineMode=function(y){this.doc.setNewLineMode(y)},this.getNewLineMode=function(){return this.doc.getNewLineMode()},this.setUseWorker=function(y){this.setOption("useWorker",y)},this.getUseWorker=function(){return this.$useWorker},this.onReloadTokenizer=function(y){var C=y.data;this.bgTokenizer.start(C.first),this._signal("tokenizerUpdate",y)},this.$modes={},this.$mode=null,this.$modeId=null,this.setMode=function(y,C){if(y&&typeof y=="object"){if(y.getTokenizer)return this.$onChangeMode(y);var B=y,T=B.path}else T=y||"ace/mode/text";if(this.$modes["ace/mode/text"]||(this.$modes["ace/mode/text"]=new a),this.$modes[T]&&!B){this.$onChangeMode(this.$modes[T]),C&&C();return}this.$modeId=T,u.loadModule(["mode",T],function(M){if(this.$modeId!==T)return C&&C();this.$modes[T]&&!B?this.$onChangeMode(this.$modes[T]):M&&M.Mode&&(M=new M.Mode(B),B||(this.$modes[T]=M,M.$id=T),this.$onChangeMode(M)),C&&C()}.bind(this)),this.$mode||this.$onChangeMode(this.$modes["ace/mode/text"],!0)},this.$onChangeMode=function(y,C){if(C||(this.$modeId=y.$id),this.$mode!==y){this.$mode=y,this.$stopWorker(),this.$useWorker&&this.$startWorker();var B=y.getTokenizer();if(B.addEventListener!==void 0){var T=this.onReloadTokenizer.bind(this);B.addEventListener("update",T)}if(this.bgTokenizer)this.bgTokenizer.setTokenizer(B);else{this.bgTokenizer=new h(B);var M=this;this.bgTokenizer.addEventListener("update",function(R){M._signal("tokenizerUpdate",R)})}this.bgTokenizer.setDocument(this.getDocument()),this.tokenRe=y.tokenRe,this.nonTokenRe=y.nonTokenRe,C||(y.attachToSession&&y.attachToSession(this),this.$options.wrapMethod.set.call(this,this.$wrapMethod),this.$setFolding(y.foldingRules),this.bgTokenizer.start(0),this._emit("changeMode"))}},this.$stopWorker=function(){this.$worker&&(this.$worker.terminate(),this.$worker=null)},this.$startWorker=function(){try{this.$worker=this.$mode.createWorker(this)}catch(y){u.warn("Could not load worker",y),this.$worker=null}},this.getMode=function(){return this.$mode},this.$scrollTop=0,this.setScrollTop=function(y){this.$scrollTop===y||isNaN(y)||(this.$scrollTop=y,this._signal("changeScrollTop",y))},this.getScrollTop=function(){return this.$scrollTop},this.$scrollLeft=0,this.setScrollLeft=function(y){this.$scrollLeft===y||isNaN(y)||(this.$scrollLeft=y,this._signal("changeScrollLeft",y))},this.getScrollLeft=function(){return this.$scrollLeft},this.getScreenWidth=function(){return this.$computeWidth(),this.lineWidgets?Math.max(this.getLineWidgetMaxWidth(),this.screenWidth):this.screenWidth},this.getLineWidgetMaxWidth=function(){if(this.lineWidgetsWidth!=null)return this.lineWidgetsWidth;var y=0;return this.lineWidgets.forEach(function(C){C&&C.screenWidth>y&&(y=C.screenWidth)}),this.lineWidgetWidth=y},this.$computeWidth=function(y){if(this.$modified||y){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var C=this.doc.getAllLines(),B=this.$rowLengthCache,T=0,M=0,R=this.$foldData[M],I=R?R.start.row:1/0,H=C.length,P=0;P<H;P++){if(P>I){if(P=R.end.row+1,P>=H)break;R=this.$foldData[M++],I=R?R.start.row:1/0}B[P]==null&&(B[P]=this.$getStringScreenWidth(C[P])[0]),B[P]>T&&(T=B[P])}this.screenWidth=T}},this.getLine=function(y){return this.doc.getLine(y)},this.getLines=function(y,C){return this.doc.getLines(y,C)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(y){return this.doc.getTextRange(y||this.selection.getRange())},this.insert=function(y,C){return this.doc.insert(y,C)},this.remove=function(y){return this.doc.remove(y)},this.removeFullLines=function(y,C){return this.doc.removeFullLines(y,C)},this.undoChanges=function(y,C){if(!!y.length){this.$fromUndo=!0;for(var B=null,T=y.length-1;T!=-1;T--){var M=y[T];M.group=="doc"?(this.doc.revertDeltas(M.deltas),B=this.$getUndoSelection(M.deltas,!0,B)):M.deltas.forEach(function(R){this.addFolds(R.folds)},this)}return this.$fromUndo=!1,B&&this.$undoSelect&&!C&&this.selection.setSelectionRange(B),B}},this.redoChanges=function(y,C){if(!!y.length){this.$fromUndo=!0;for(var B=null,T=0;T<y.length;T++){var M=y[T];M.group=="doc"&&(this.doc.applyDeltas(M.deltas),B=this.$getUndoSelection(M.deltas,!1,B))}return this.$fromUndo=!1,B&&this.$undoSelect&&!C&&this.selection.setSelectionRange(B),B}},this.setUndoSelect=function(y){this.$undoSelect=y},this.$getUndoSelection=function(y,C,B){function T(j){return C?j.action!=="insert":j.action==="insert"}var M=y[0],R,I;T(M)?R=f.fromPoints(M.start,M.end):R=f.fromPoints(M.start,M.start);for(var H=1;H<y.length;H++)M=y[H],T(M)?(I=M.start,R.compare(I.row,I.column)==-1&&R.setStart(I),I=M.end,R.compare(I.row,I.column)==1&&R.setEnd(I)):(I=M.start,R.compare(I.row,I.column)==-1&&(R=f.fromPoints(M.start,M.start)));if(B!=null){f.comparePoints(B.start,R.start)===0&&(B.start.column+=R.end.column-R.start.column,B.end.column+=R.end.column-R.start.column);var P=B.compareRange(R);P==1?R.setStart(B.start):P==-1&&R.setEnd(B.end)}return R},this.replace=function(y,C){return this.doc.replace(y,C)},this.moveText=function(y,C,B){var T=this.getTextRange(y),M=this.getFoldsInRange(y),R=f.fromPoints(C,C);if(!B){this.remove(y);var I=y.start.row-y.end.row,H=I?-y.end.column:y.start.column-y.end.column;H&&(R.start.row==y.end.row&&R.start.column>y.end.column&&(R.start.column+=H),R.end.row==y.end.row&&R.end.column>y.end.column&&(R.end.column+=H)),I&&R.start.row>=y.end.row&&(R.start.row+=I,R.end.row+=I)}if(R.end=this.insert(R.start,T),M.length){var P=y.start,j=R.start,I=j.row-P.row,H=j.column-P.column;this.addFolds(M.map(function(N){return N=N.clone(),N.start.row==P.row&&(N.start.column+=H),N.end.row==P.row&&(N.end.column+=H),N.start.row+=I,N.end.row+=I,N}))}return R},this.indentRows=function(y,C,B){B=B.replace(/\t/g,this.getTabString());for(var T=y;T<=C;T++)this.doc.insertInLine({row:T,column:0},B)},this.outdentRows=function(y){for(var C=y.collapseRows(),B=new f(0,0,0,0),T=this.getTabSize(),M=C.start.row;M<=C.end.row;++M){var R=this.getLine(M);B.start.row=M,B.end.row=M;for(var I=0;I<T&&R.charAt(I)==" ";++I);I<T&&R.charAt(I)==" "?(B.start.column=I,B.end.column=I+1):(B.start.column=0,B.end.column=I),this.remove(B)}},this.$moveLines=function(y,C,B){if(y=this.getRowFoldStart(y),C=this.getRowFoldEnd(C),B<0){var T=this.getRowFoldStart(y+B);if(T<0)return 0;var M=T-y}else if(B>0){var T=this.getRowFoldEnd(C+B);if(T>this.doc.getLength()-1)return 0;var M=T-C}else{y=this.$clipRowToDocument(y),C=this.$clipRowToDocument(C);var M=C-y+1}var R=new f(y,0,C,Number.MAX_VALUE),I=this.getFoldsInRange(R).map(function(P){return P=P.clone(),P.start.row+=M,P.end.row+=M,P}),H=B==0?this.doc.getLines(y,C):this.doc.removeFullLines(y,C);return this.doc.insertFullLines(y+M,H),I.length&&this.addFolds(I),M},this.moveLinesUp=function(y,C){return this.$moveLines(y,C,-1)},this.moveLinesDown=function(y,C){return this.$moveLines(y,C,1)},this.duplicateLines=function(y,C){return this.$moveLines(y,C,0)},this.$clipRowToDocument=function(y){return Math.max(0,Math.min(y,this.doc.getLength()-1))},this.$clipColumnToRow=function(y,C){return C<0?0:Math.min(this.doc.getLine(y).length,C)},this.$clipPositionToDocument=function(y,C){if(C=Math.max(0,C),y<0)y=0,C=0;else{var B=this.doc.getLength();y>=B?(y=B-1,C=this.doc.getLine(B-1).length):C=Math.min(this.doc.getLine(y).length,C)}return{row:y,column:C}},this.$clipRangeToDocument=function(y){y.start.row<0?(y.start.row=0,y.start.column=0):y.start.column=this.$clipColumnToRow(y.start.row,y.start.column);var C=this.doc.getLength()-1;return y.end.row>C?(y.end.row=C,y.end.column=this.doc.getLine(C).length):y.end.column=this.$clipColumnToRow(y.end.row,y.end.column),y},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(y){if(y!=this.$useWrapMode){if(this.$useWrapMode=y,this.$modified=!0,this.$resetRowCache(0),y){var C=this.getLength();this.$wrapData=Array(C),this.$updateWrapData(0,C-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(y,C){(this.$wrapLimitRange.min!==y||this.$wrapLimitRange.max!==C)&&(this.$wrapLimitRange={min:y,max:C},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},this.adjustWrapLimit=function(y,C){var B=this.$wrapLimitRange;B.max<0&&(B={min:C,max:C});var T=this.$constrainWrapLimit(y,B.min,B.max);return T!=this.$wrapLimit&&T>1?(this.$wrapLimit=T,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},this.$constrainWrapLimit=function(y,C,B){return C&&(y=Math.max(C,y)),B&&(y=Math.min(B,y)),y},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(y){this.setWrapLimitRange(y,y)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(y){var C=this.$useWrapMode,B=y.action,T=y.start,M=y.end,R=T.row,I=M.row,H=I-R,P=null;if(this.$updating=!0,H!=0)if(B==="remove"){this[C?"$wrapData":"$rowLengthCache"].splice(R,H);var j=this.$foldData;P=this.getFoldsInRange(y),this.removeFolds(P);var V=this.getFoldLine(M.row),K=0;if(V){V.addRemoveChars(M.row,M.column,T.column-M.column),V.shiftRow(-H);var N=this.getFoldLine(R);N&&N!==V&&(N.merge(V),V=N),K=j.indexOf(V)+1}for(K;K<j.length;K++){var V=j[K];V.start.row>=M.row&&V.shiftRow(-H)}I=R}else{var k=Array(H);k.unshift(R,0);var $=C?this.$wrapData:this.$rowLengthCache;$.splice.apply($,k);var j=this.$foldData,V=this.getFoldLine(R),K=0;if(V){var z=V.range.compareInside(T.row,T.column);z==0?(V=V.split(T.row,T.column),V&&(V.shiftRow(H),V.addRemoveChars(I,0,M.column-T.column))):z==-1&&(V.addRemoveChars(R,0,M.column-T.column),V.shiftRow(H)),K=j.indexOf(V)+1}for(K;K<j.length;K++){var V=j[K];V.start.row>=R&&V.shiftRow(H)}}else{H=Math.abs(y.start.column-y.end.column),B==="remove"&&(P=this.getFoldsInRange(y),this.removeFolds(P),H=-H);var V=this.getFoldLine(R);V&&V.addRemoveChars(R,T.column,H)}return C&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,C?this.$updateWrapData(R,I):this.$updateRowLengthCache(R,I),P},this.$updateRowLengthCache=function(y,C,B){this.$rowLengthCache[y]=null,this.$rowLengthCache[C]=null},this.$updateWrapData=function(y,C){var B=this.doc.getAllLines(),T=this.getTabSize(),M=this.$wrapData,R=this.$wrapLimit,I,H,P=y;for(C=Math.min(C,B.length-1);P<=C;)H=this.getFoldLine(P,H),H?(I=[],H.walk(function(j,V,K,N){var k;if(j!=null){k=this.$getDisplayTokens(j,I.length),k[0]=w;for(var $=1;$<k.length;$++)k[$]=v}else k=this.$getDisplayTokens(B[V].substring(N,K),I.length);I=I.concat(k)}.bind(this),H.end.row,B[H.end.row].length+1),M[H.start.row]=this.$computeWrapSplits(I,R,T),P=H.end.row+1):(I=this.$getDisplayTokens(B[P]),M[P]=this.$computeWrapSplits(I,R,T),P++)};var p=1,m=2,w=3,v=4,A=9,_=10,E=11,b=12;this.$computeWrapSplits=function(y,C,B){if(y.length==0)return[];var T=[],M=y.length,R=0,I=0,H=this.$wrapAsCode,P=this.$indentedSoftWrap,j=C<=Math.max(2*B,8)||P===!1?0:Math.floor(C/2);function V(){var z=0;if(j===0)return z;if(P)for(var U=0;U<y.length;U++){var G=y[U];if(G==_)z+=1;else if(G==E)z+=B;else{if(G==b)continue;break}}return H&&P!==!1&&(z+=B),Math.min(z,j)}function K(z){var U=y.slice(R,z),G=U.length;U.join("").replace(/12/g,function(){G-=1}).replace(/2/g,function(){G-=1}),T.length||(N=V(),T.indent=N),I+=G,T.push(I),R=z}for(var N=0;M-R>C-N;){var k=R+C-N;if(y[k-1]>=_&&y[k]>=_){K(k);continue}if(y[k]==w||y[k]==v){for(k;k!=R-1&&y[k]!=w;k--);if(k>R){K(k);continue}for(k=R+C,k;k<y.length&&y[k]==v;k++);if(k==y.length)break;K(k);continue}for(var $=Math.max(k-(C-(C>>2)),R-1);k>$&&y[k]<w;)k--;if(H){for(;k>$&&y[k]<w;)k--;for(;k>$&&y[k]==A;)k--}else for(;k>$&&y[k]<_;)k--;if(k>$){K(++k);continue}k=R+C,y[k]==m&&k--,K(k-N)}return T},this.$getDisplayTokens=function(y,C){var B=[],T;C=C||0;for(var M=0;M<y.length;M++){var R=y.charCodeAt(M);if(R==9){T=this.getScreenTabSize(B.length+C),B.push(E);for(var I=1;I<T;I++)B.push(b)}else R==32?B.push(_):R>39&&R<48||R>57&&R<64?B.push(A):R>=4352&&x(R)?B.push(p,m):B.push(p)}return B},this.$getStringScreenWidth=function(y,C,B){if(C==0)return[0,0];C==null&&(C=1/0),B=B||0;var T,M;for(M=0;M<y.length&&(T=y.charCodeAt(M),T==9?B+=this.getScreenTabSize(B):T>=4352&&x(T)?B+=2:B+=1,!(B>C));M++);return[B,M]},this.lineWidgets=null,this.getRowLength=function(y){if(this.lineWidgets)var C=this.lineWidgets[y]&&this.lineWidgets[y].rowCount||0;else C=0;return!this.$useWrapMode||!this.$wrapData[y]?1+C:this.$wrapData[y].length+1+C},this.getRowLineCount=function(y){return!this.$useWrapMode||!this.$wrapData[y]?1:this.$wrapData[y].length+1},this.getRowWrapIndent=function(y){if(this.$useWrapMode){var C=this.screenToDocumentPosition(y,Number.MAX_VALUE),B=this.$wrapData[C.row];return B.length&&B[0]<C.column?B.indent:0}else return 0},this.getScreenLastRowColumn=function(y){var C=this.screenToDocumentPosition(y,Number.MAX_VALUE);return this.documentToScreenColumn(C.row,C.column)},this.getDocumentLastRowColumn=function(y,C){var B=this.documentToScreenRow(y,C);return this.getScreenLastRowColumn(B)},this.getDocumentLastRowColumnPosition=function(y,C){var B=this.documentToScreenRow(y,C);return this.screenToDocumentPosition(B,Number.MAX_VALUE/10)},this.getRowSplitData=function(y){if(this.$useWrapMode)return this.$wrapData[y]},this.getScreenTabSize=function(y){return this.$tabSize-y%this.$tabSize},this.screenToDocumentRow=function(y,C){return this.screenToDocumentPosition(y,C).row},this.screenToDocumentColumn=function(y,C){return this.screenToDocumentPosition(y,C).column},this.screenToDocumentPosition=function(y,C,B){if(y<0)return{row:0,column:0};var T,M=0,R=0,I,H=0,P=0,j=this.$screenRowCache,V=this.$getRowCacheIndex(j,y),K=j.length;if(K&&V>=0)var H=j[V],M=this.$docRowCache[V],N=y>j[K-1];else var N=!K;for(var k=this.getLength()-1,$=this.getNextFoldLine(M),z=$?$.start.row:1/0;H<=y&&(P=this.getRowLength(M),!(H+P>y||M>=k));)H+=P,M++,M>z&&(M=$.end.row+1,$=this.getNextFoldLine(M,$),z=$?$.start.row:1/0),N&&(this.$docRowCache.push(M),this.$screenRowCache.push(H));if($&&$.start.row<=M)T=this.getFoldDisplayLine($),M=$.start.row;else{if(H+P<=y||M>k)return{row:k,column:this.getLine(k).length};T=this.getLine(M),$=null}var U=0,G=Math.floor(y-H);if(this.$useWrapMode){var Q=this.$wrapData[M];Q&&(I=Q[G],G>0&&Q.length&&(U=Q.indent,R=Q[G-1]||Q[Q.length-1],T=T.substring(R)))}return B!==void 0&&this.$bidiHandler.isBidiRow(H+G,M,G)&&(C=this.$bidiHandler.offsetToCol(B)),R+=this.$getStringScreenWidth(T,C-U)[1],this.$useWrapMode&&R>=I&&(R=I-1),$?$.idxToPosition(R):{row:M,column:R}},this.documentToScreenPosition=function(y,C){if(typeof C=="undefined")var B=this.$clipPositionToDocument(y.row,y.column);else B=this.$clipPositionToDocument(y,C);y=B.row,C=B.column;var T=0,M=null,R=null;R=this.getFoldAt(y,C,1),R&&(y=R.start.row,C=R.start.column);var I,H=0,P=this.$docRowCache,j=this.$getRowCacheIndex(P,y),V=P.length;if(V&&j>=0)var H=P[j],T=this.$screenRowCache[j],K=y>P[V-1];else var K=!V;for(var N=this.getNextFoldLine(H),k=N?N.start.row:1/0;H<y;){if(H>=k){if(I=N.end.row+1,I>y)break;N=this.getNextFoldLine(I,N),k=N?N.start.row:1/0}else I=H+1;T+=this.getRowLength(H),H=I,K&&(this.$docRowCache.push(H),this.$screenRowCache.push(T))}var $="";N&&H>=k?($=this.getFoldDisplayLine(N,y,C),M=N.start.row):($=this.getLine(y).substring(0,C),M=y);var z=0;if(this.$useWrapMode){var U=this.$wrapData[M];if(U){for(var G=0;$.length>=U[G];)T++,G++;$=$.substring(U[G-1]||0,$.length),z=G>0?U.indent:0}}return{row:T,column:z+this.$getStringScreenWidth($)[0]}},this.documentToScreenColumn=function(y,C){return this.documentToScreenPosition(y,C).column},this.documentToScreenRow=function(y,C){return this.documentToScreenPosition(y,C).row},this.getScreenLength=function(){var y=0,C=null;if(this.$useWrapMode)for(var M=this.$wrapData.length,R=0,T=0,C=this.$foldData[T++],I=C?C.start.row:1/0;R<M;){var H=this.$wrapData[R];y+=H?H.length+1:1,R++,R>I&&(R=C.end.row+1,C=this.$foldData[T++],I=C?C.start.row:1/0)}else{y=this.getLength();for(var B=this.$foldData,T=0;T<B.length;T++)C=B[T],y-=C.end.row-C.start.row}return this.lineWidgets&&(y+=this.$getWidgetScreenLength()),y},this.$setFontMetrics=function(y){!this.$enableVarChar||(this.$getStringScreenWidth=function(C,B,T){if(B===0)return[0,0];B||(B=1/0),T=T||0;var M,R;for(R=0;R<C.length&&(M=C.charAt(R),M===" "?T+=this.getScreenTabSize(T):T+=y.getCharacterWidth(M),!(T>B));R++);return[T,R]})},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()},this.isFullWidth=x;function x(y){return y<4352?!1:y>=4352&&y<=4447||y>=4515&&y<=4519||y>=4602&&y<=4607||y>=9001&&y<=9002||y>=11904&&y<=11929||y>=11931&&y<=12019||y>=12032&&y<=12245||y>=12272&&y<=12283||y>=12288&&y<=12350||y>=12353&&y<=12438||y>=12441&&y<=12543||y>=12549&&y<=12589||y>=12593&&y<=12686||y>=12688&&y<=12730||y>=12736&&y<=12771||y>=12784&&y<=12830||y>=12832&&y<=12871||y>=12880&&y<=13054||y>=13056&&y<=19903||y>=19968&&y<=42124||y>=42128&&y<=42182||y>=43360&&y<=43388||y>=44032&&y<=55203||y>=55216&&y<=55238||y>=55243&&y<=55291||y>=63744&&y<=64255||y>=65040&&y<=65049||y>=65072&&y<=65106||y>=65108&&y<=65126||y>=65128&&y<=65131||y>=65281&&y<=65376||y>=65504&&y<=65510}}.call(g.prototype),e("./edit_session/folding").Folding.call(g.prototype),e("./edit_session/bracket_match").BracketMatch.call(g.prototype),u.defineOptions(g.prototype,"session",{wrap:{set:function(p){if(!p||p=="off"?p=!1:p=="free"?p=!0:p=="printMargin"?p=-1:typeof p=="string"&&(p=parseInt(p,10)||!1),this.$wrap!=p)if(this.$wrap=p,!p)this.setUseWrapMode(!1);else{var m=typeof p=="number"?p:null;this.setWrapLimitRange(m,m),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(p){p=p=="auto"?this.$mode.type!="text":p!="text",p!=this.$wrapAsCode&&(this.$wrapAsCode=p,this.$useWrapMode&&(this.$modified=!0,this.$resetRowCache(0),this.$updateWrapData(0,this.getLength()-1)))},initialValue:"auto"},indentedSoftWrap:{initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(p){this.$useWorker=p,this.$stopWorker(),p&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(p){isNaN(p)||this.$tabSize===p||(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=p,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},overwrite:{set:function(p){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(p){this.doc.setNewLineMode(p)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(p){this.setMode(p)},get:function(){return this.$modeId}}}),t.EditSession=g});ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,n){var i=e("./lib/lang"),r=e("./lib/oop"),s=e("./range").Range,u=function(){this.$options={}};(function(){this.set=function(c){return r.mixin(this.$options,c),this},this.getOptions=function(){return i.copyObject(this.$options)},this.setOptions=function(c){this.$options=c},this.find=function(c){var a=this.$options,f=this.$matchIterator(c,a);if(!f)return!1;var l=null;return f.forEach(function(h,d,g,p){return l=new s(h,d,g,p),d==p&&a.start&&a.start.start&&a.skipCurrent!=!1&&l.isEqual(a.start)?(l=null,!1):!0}),l},this.findAll=function(c){var a=this.$options;if(!a.needle)return[];this.$assembleRegExp(a);var f=a.range,l=f?c.getLines(f.start.row,f.end.row):c.doc.getAllLines(),h=[],d=a.re;if(a.$isMultiLine){var g=d.length,p=l.length-g,m;e:for(var w=d.offset||0;w<=p;w++){for(var v=0;v<g;v++)if(l[w+v].search(d[v])==-1)continue e;var A=l[w],_=l[w+g-1],E=A.length-A.match(d[0])[0].length,b=_.match(d[g-1])[0].length;m&&m.end.row===w&&m.end.column>E||(h.push(m=new s(w,E,w+g-1,b)),g>2&&(w=w+g-2))}}else for(var x=0;x<l.length;x++)for(var y=i.getMatchOffsets(l[x],d),v=0;v<y.length;v++){var C=y[v];h.push(new s(x,C.offset,x,C.offset+C.length))}if(f){for(var B=f.start.column,T=f.start.column,x=0,v=h.length-1;x<v&&h[x].start.column<B&&h[x].start.row==f.start.row;)x++;for(;x<v&&h[v].end.column>T&&h[v].end.row==f.end.row;)v--;for(h=h.slice(x,v+1),x=0,v=h.length;x<v;x++)h[x].start.row+=f.start.row,h[x].end.row+=f.start.row}return h},this.replace=function(c,a){var f=this.$options,l=this.$assembleRegExp(f);if(f.$isMultiLine)return a;if(!!l){var h=l.exec(c);if(!h||h[0].length!=c.length)return null;if(a=c.replace(l,a),f.preserveCase){a=a.split("");for(var d=Math.min(c.length,c.length);d--;){var g=c[d];g&&g.toLowerCase()!=g?a[d]=a[d].toUpperCase():a[d]=a[d].toLowerCase()}a=a.join("")}return a}},this.$assembleRegExp=function(c,a){if(c.needle instanceof RegExp)return c.re=c.needle;var f=c.needle;if(!c.needle)return c.re=!1;c.regExp||(f=i.escapeRegExp(f)),c.wholeWord&&(f=o(f,c));var l=c.caseSensitive?"gm":"gmi";if(c.$isMultiLine=!a&&/[\n\r]/.test(f),c.$isMultiLine)return c.re=this.$assembleMultilineRegExp(f,l);try{var h=new RegExp(f,l)}catch{h=!1}return c.re=h},this.$assembleMultilineRegExp=function(c,a){for(var f=c.replace(/\r\n|\r|\n/g,`$ -^`).split(` -`),l=[],h=0;h<f.length;h++)try{l.push(new RegExp(f[h],a))}catch{return!1}return l},this.$matchIterator=function(c,a){var f=this.$assembleRegExp(a);if(!f)return!1;var l=a.backwards==!0,h=a.skipCurrent!=!1,d=a.range,g=a.start;g||(g=d?d[l?"end":"start"]:c.selection.getRange()),g.start&&(g=g[h!=l?"end":"start"]);var p=d?d.start.row:0,m=d?d.end.row:c.getLength()-1;if(l)var w=function(_){var E=g.row;if(!A(E,g.column,_)){for(E--;E>=p;E--)if(A(E,Number.MAX_VALUE,_))return;if(a.wrap!=!1){for(E=m,p=g.row;E>=p;E--)if(A(E,Number.MAX_VALUE,_))return}}};else var w=function(E){var b=g.row;if(!A(b,g.column,E)){for(b=b+1;b<=m;b++)if(A(b,0,E))return;if(a.wrap!=!1){for(b=p,m=g.row;b<=m;b++)if(A(b,0,E))return}}};if(a.$isMultiLine)var v=f.length,A=function(_,E,b){var x=l?_-v+1:_;if(!(x<0)){var y=c.getLine(x),C=y.search(f[0]);if(!(!l&&C<E||C===-1)){for(var B=1;B<v;B++)if(y=c.getLine(x+B),y.search(f[B])==-1)return;var T=y.match(f[v-1])[0].length;if(!(l&&T>E)&&b(x,C,x+v-1,T))return!0}}};else if(l)var A=function(E,b,x){var y=c.getLine(E),C=[],B,T=0;for(f.lastIndex=0;B=f.exec(y);){var M=B[0].length;if(T=B.index,!M){if(T>=y.length)break;f.lastIndex=T+=1}if(B.index+M>b)break;C.push(B.index,M)}for(var R=C.length-1;R>=0;R-=2){var I=C[R-1],M=C[R];if(x(E,I,E,I+M))return!0}};else var A=function(E,b,x){var y=c.getLine(E),C,B=b;for(f.lastIndex=b;C=f.exec(y);){var T=C[0].length;if(B=C.index,x(E,B,E,B+T))return!0;if(!T&&(f.lastIndex=B+=1,B>=y.length))return!1}};return{forEach:w}}}).call(u.prototype);function o(c,a){function f(l){return/\w/.test(l)||a.regExp?"\\b":""}return f(c[0])+c+f(c[c.length-1])}t.Search=u});ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,n){var i=e("../lib/keys"),r=e("../lib/useragent"),s=i.KEY_MODS;function u(c,a){this.platform=a||(r.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(c),this.$singleCommand=!0}function o(c,a){u.call(this,c,a),this.$singleCommand=!1}o.prototype=u.prototype,function(){this.addCommand=function(a){this.commands[a.name]&&this.removeCommand(a),this.commands[a.name]=a,a.bindKey&&this._buildKeyHash(a)},this.removeCommand=function(a,f){var l=a&&(typeof a=="string"?a:a.name);a=this.commands[l],f||delete this.commands[l];var h=this.commandKeyBinding;for(var d in h){var g=h[d];if(g==a)delete h[d];else if(Array.isArray(g)){var p=g.indexOf(a);p!=-1&&(g.splice(p,1),g.length==1&&(h[d]=g[0]))}}},this.bindKey=function(a,f,l){if(typeof a=="object"&&a&&(l==null&&(l=a.position),a=a[this.platform]),!!a){if(typeof f=="function")return this.addCommand({exec:f,bindKey:a,name:f.name||a});a.split("|").forEach(function(h){var d="";if(h.indexOf(" ")!=-1){var g=h.split(/\s+/);h=g.pop(),g.forEach(function(w){var v=this.parseKeys(w),A=s[v.hashId]+v.key;d+=(d?" ":"")+A,this._addCommandToBinding(d,"chainKeys")},this),d+=" "}var p=this.parseKeys(h),m=s[p.hashId]+p.key;this._addCommandToBinding(d+m,f,l)},this)}};function c(a){return typeof a=="object"&&a.bindKey&&a.bindKey.position||(a.isDefault?-100:0)}this._addCommandToBinding=function(a,f,l){var h=this.commandKeyBinding,d;if(!f)delete h[a];else if(!h[a]||this.$singleCommand)h[a]=f;else{Array.isArray(h[a])?(d=h[a].indexOf(f))!=-1&&h[a].splice(d,1):h[a]=[h[a]],typeof l!="number"&&(l=c(f));var g=h[a];for(d=0;d<g.length;d++){var p=g[d],m=c(p);if(m>l)break}g.splice(d,0,f)}},this.addCommands=function(a){a&&Object.keys(a).forEach(function(f){var l=a[f];if(!!l){if(typeof l=="string")return this.bindKey(l,f);typeof l=="function"&&(l={exec:l}),typeof l=="object"&&(l.name||(l.name=f),this.addCommand(l))}},this)},this.removeCommands=function(a){Object.keys(a).forEach(function(f){this.removeCommand(a[f])},this)},this.bindKeys=function(a){Object.keys(a).forEach(function(f){this.bindKey(f,a[f])},this)},this._buildKeyHash=function(a){this.bindKey(a.bindKey,a)},this.parseKeys=function(a){var f=a.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(m){return m}),l=f.pop(),h=i[l];if(i.FUNCTION_KEYS[h])l=i.FUNCTION_KEYS[h].toLowerCase();else if(f.length){if(f.length==1&&f[0]=="shift")return{key:l.toUpperCase(),hashId:-1}}else return{key:l,hashId:-1};for(var d=0,g=f.length;g--;){var p=i.KEY_MODS[f[g]];if(p==null)return typeof console!="undefined"&&console.error("invalid modifier "+f[g]+" in "+a),!1;d|=p}return{key:l,hashId:d}},this.findKeyCommand=function(f,l){var h=s[f]+l;return this.commandKeyBinding[h]},this.handleKeyboard=function(a,f,l,h){if(!(h<0)){var d=s[f]+l,g=this.commandKeyBinding[d];return a.$keyChain&&(a.$keyChain+=" "+d,g=this.commandKeyBinding[a.$keyChain]||g),g&&(g=="chainKeys"||g[g.length-1]=="chainKeys")?(a.$keyChain=a.$keyChain||d,{command:"null"}):(a.$keyChain&&((!f||f==4)&&l.length==1?a.$keyChain=a.$keyChain.slice(0,-d.length-1):(f==-1||h>0)&&(a.$keyChain="")),{command:g})}},this.getStatusText=function(a,f){return f.$keyChain||""}}.call(u.prototype),t.HashHandler=u,t.MultiHashHandler=o});ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(e,t,n){var i=e("../lib/oop"),r=e("../keyboard/hash_handler").MultiHashHandler,s=e("../lib/event_emitter").EventEmitter,u=function(o,c){r.call(this,c,o),this.byName=this.commands,this.setDefaultHandler("exec",function(a){return a.command.exec(a.editor,a.args||{})})};i.inherits(u,r),function(){i.implement(this,s),this.exec=function(o,c,a){if(Array.isArray(o)){for(var f=o.length;f--;)if(this.exec(o[f],c,a))return!0;return!1}if(typeof o=="string"&&(o=this.commands[o]),!o||c&&c.$readOnly&&!o.readOnly||o.isAvailable&&!o.isAvailable(c))return!1;var l={editor:c,command:o,args:a};return l.returnValue=this._emit("exec",l),this._signal("afterExec",l),l.returnValue!==!1},this.toggleRecording=function(o){if(!this.$inReplay)return o&&o._emit("changeStatus"),this.recording?(this.macro.pop(),this.removeEventListener("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(c){this.macro.push([c.command,c.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(o){if(!(this.$inReplay||!this.macro)){if(this.recording)return this.toggleRecording(o);try{this.$inReplay=!0,this.macro.forEach(function(c){typeof c=="string"?this.exec(c,o):this.exec(c[0],o,c[1])},this)}finally{this.$inReplay=!1}}},this.trimMacro=function(o){return o.map(function(c){return typeof c[0]!="string"&&(c[0]=c[0].name),c[1]||(c=c[0]),c})}}.call(u.prototype),t.CommandManager=u});ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(e,t,n){var i=e("../lib/lang"),r=e("../config"),s=e("../range").Range;function u(o,c){return{win:o,mac:c}}t.commands=[{name:"showSettingsMenu",bindKey:u("Ctrl-,","Command-,"),exec:function(o){r.loadModule("ace/ext/settings_menu",function(c){c.init(o),o.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",bindKey:u("Alt-E","F4"),exec:function(o){r.loadModule("ace/ext/error_marker",function(c){c.showErrorMarker(o,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",bindKey:u("Alt-Shift-E","Shift-F4"),exec:function(o){r.loadModule("ace/ext/error_marker",function(c){c.showErrorMarker(o,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",bindKey:u("Ctrl-A","Command-A"),exec:function(o){o.selectAll()},readOnly:!0},{name:"centerselection",bindKey:u(null,"Ctrl-L"),exec:function(o){o.centerSelection()},readOnly:!0},{name:"gotoline",bindKey:u("Ctrl-L","Command-L"),exec:function(o){var c=parseInt(prompt("Enter line number:"),10);isNaN(c)||o.gotoLine(c)},readOnly:!0},{name:"fold",bindKey:u("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(o){o.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:u("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(o){o.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",bindKey:u("F2","F2"),exec:function(o){o.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",bindKey:u("Alt-F2","Alt-F2"),exec:function(o){o.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",bindKey:u(null,"Ctrl-Command-Option-0"),exec:function(o){o.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",bindKey:u("Alt-0","Command-Option-0"),exec:function(o){o.session.foldAll(),o.session.unfold(o.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",bindKey:u("Alt-Shift-0","Command-Option-Shift-0"),exec:function(o){o.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",bindKey:u("Ctrl-K","Command-G"),exec:function(o){o.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",bindKey:u("Ctrl-Shift-K","Command-Shift-G"),exec:function(o){o.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",bindKey:u("Alt-K","Ctrl-G"),exec:function(o){o.selection.isEmpty()?o.selection.selectWord():o.findNext()},readOnly:!0},{name:"selectOrFindPrevious",bindKey:u("Alt-Shift-K","Ctrl-Shift-G"),exec:function(o){o.selection.isEmpty()?o.selection.selectWord():o.findPrevious()},readOnly:!0},{name:"find",bindKey:u("Ctrl-F","Command-F"),exec:function(o){r.loadModule("ace/ext/searchbox",function(c){c.Search(o)})},readOnly:!0},{name:"overwrite",bindKey:"Insert",exec:function(o){o.toggleOverwrite()},readOnly:!0},{name:"selecttostart",bindKey:u("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(o){o.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",bindKey:u("Ctrl-Home","Command-Home|Command-Up"),exec:function(o){o.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",bindKey:u("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(o){o.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",bindKey:u("Up","Up|Ctrl-P"),exec:function(o,c){o.navigateUp(c.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",bindKey:u("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(o){o.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",bindKey:u("Ctrl-End","Command-End|Command-Down"),exec:function(o){o.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",bindKey:u("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(o){o.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",bindKey:u("Down","Down|Ctrl-N"),exec:function(o,c){o.navigateDown(c.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",bindKey:u("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(o){o.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",bindKey:u("Ctrl-Left","Option-Left"),exec:function(o){o.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",bindKey:u("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(o){o.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",bindKey:u("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(o){o.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",bindKey:u("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(o){o.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",bindKey:u("Left","Left|Ctrl-B"),exec:function(o,c){o.navigateLeft(c.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",bindKey:u("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(o){o.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",bindKey:u("Ctrl-Right","Option-Right"),exec:function(o){o.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",bindKey:u("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(o){o.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",bindKey:u("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(o){o.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",bindKey:u("Shift-Right","Shift-Right"),exec:function(o){o.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",bindKey:u("Right","Right|Ctrl-F"),exec:function(o,c){o.navigateRight(c.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",bindKey:"Shift-PageDown",exec:function(o){o.selectPageDown()},readOnly:!0},{name:"pagedown",bindKey:u(null,"Option-PageDown"),exec:function(o){o.scrollPageDown()},readOnly:!0},{name:"gotopagedown",bindKey:u("PageDown","PageDown|Ctrl-V"),exec:function(o){o.gotoPageDown()},readOnly:!0},{name:"selectpageup",bindKey:"Shift-PageUp",exec:function(o){o.selectPageUp()},readOnly:!0},{name:"pageup",bindKey:u(null,"Option-PageUp"),exec:function(o){o.scrollPageUp()},readOnly:!0},{name:"gotopageup",bindKey:"PageUp",exec:function(o){o.gotoPageUp()},readOnly:!0},{name:"scrollup",bindKey:u("Ctrl-Up",null),exec:function(o){o.renderer.scrollBy(0,-2*o.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",bindKey:u("Ctrl-Down",null),exec:function(o){o.renderer.scrollBy(0,2*o.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",bindKey:"Shift-Home",exec:function(o){o.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",bindKey:"Shift-End",exec:function(o){o.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",bindKey:u("Ctrl-Alt-E","Command-Option-E"),exec:function(o){o.commands.toggleRecording(o)},readOnly:!0},{name:"replaymacro",bindKey:u("Ctrl-Shift-E","Command-Shift-E"),exec:function(o){o.commands.replay(o)},readOnly:!0},{name:"jumptomatching",bindKey:u("Ctrl-P","Ctrl-P"),exec:function(o){o.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",bindKey:u("Ctrl-Shift-P","Ctrl-Shift-P"),exec:function(o){o.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",bindKey:u("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(o){o.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",bindKey:u(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",exec:function(o){},readOnly:!0},{name:"cut",exec:function(o){var c=o.getSelectionRange();o._emit("cut",c),o.selection.isEmpty()||(o.session.remove(c),o.clearSelection())},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",exec:function(o,c){o.$handlePaste(c)},scrollIntoView:"cursor"},{name:"removeline",bindKey:u("Ctrl-D","Command-D"),exec:function(o){o.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",bindKey:u("Ctrl-Shift-D","Command-Shift-D"),exec:function(o){o.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",bindKey:u("Ctrl-Alt-S","Command-Alt-S"),exec:function(o){o.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",bindKey:u("Ctrl-/","Command-/"),exec:function(o){o.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",bindKey:u("Ctrl-Shift-/","Command-Shift-/"),exec:function(o){o.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",bindKey:u("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(o){o.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",bindKey:u("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(o){o.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",bindKey:u("Ctrl-H","Command-Option-F"),exec:function(o){r.loadModule("ace/ext/searchbox",function(c){c.Search(o,!0)})}},{name:"undo",bindKey:u("Ctrl-Z","Command-Z"),exec:function(o){o.undo()}},{name:"redo",bindKey:u("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(o){o.redo()}},{name:"copylinesup",bindKey:u("Alt-Shift-Up","Command-Option-Up"),exec:function(o){o.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",bindKey:u("Alt-Up","Option-Up"),exec:function(o){o.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",bindKey:u("Alt-Shift-Down","Command-Option-Down"),exec:function(o){o.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",bindKey:u("Alt-Down","Option-Down"),exec:function(o){o.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",bindKey:u("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(o){o.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",bindKey:u("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(o){o.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",bindKey:u("Shift-Delete",null),exec:function(o){if(o.selection.isEmpty())o.remove("left");else return!1},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",bindKey:u("Alt-Backspace","Command-Backspace"),exec:function(o){o.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",bindKey:u("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(o){o.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",bindKey:u("Ctrl-Shift-Backspace",null),exec:function(o){var c=o.selection.getRange();c.start.column=0,o.session.remove(c)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",bindKey:u("Ctrl-Shift-Delete",null),exec:function(o){var c=o.selection.getRange();c.end.column=Number.MAX_VALUE,o.session.remove(c)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",bindKey:u("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(o){o.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",bindKey:u("Ctrl-Delete","Alt-Delete"),exec:function(o){o.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",bindKey:u("Shift-Tab","Shift-Tab"),exec:function(o){o.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",bindKey:u("Tab","Tab"),exec:function(o){o.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",bindKey:u("Ctrl-[","Ctrl-["),exec:function(o){o.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",bindKey:u("Ctrl-]","Ctrl-]"),exec:function(o){o.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",exec:function(o,c){o.insert(c)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",exec:function(o,c){o.insert(i.stringRepeat(c.text||"",c.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",bindKey:u(null,"Ctrl-O"),exec:function(o){o.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",bindKey:u("Alt-Shift-X","Ctrl-T"),exec:function(o){o.transposeLetters()},multiSelectAction:function(o){o.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",bindKey:u("Ctrl-U","Ctrl-U"),exec:function(o){o.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",bindKey:u("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(o){o.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"expandtoline",bindKey:u("Ctrl-Shift-L","Command-Shift-L"),exec:function(o){var c=o.selection.getRange();c.start.column=c.end.column=0,c.end.row++,o.selection.setRange(c,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"joinlines",bindKey:u(null,null),exec:function(o){for(var c=o.selection.isBackwards(),a=c?o.selection.getSelectionLead():o.selection.getSelectionAnchor(),f=c?o.selection.getSelectionAnchor():o.selection.getSelectionLead(),l=o.session.doc.getLine(a.row).length,h=o.session.doc.getTextRange(o.selection.getRange()),d=h.replace(/\n\s*/," ").length,g=o.session.doc.getLine(a.row),p=a.row+1;p<=f.row+1;p++){var m=i.stringTrimLeft(i.stringTrimRight(o.session.doc.getLine(p)));m.length!==0&&(m=" "+m),g+=m}f.row+1<o.session.doc.getLength()-1&&(g+=o.session.doc.getNewLineCharacter()),o.clearSelection(),o.session.doc.replace(new s(a.row,0,f.row+2,0),g),d>0?(o.selection.moveCursorTo(a.row,a.column),o.selection.selectTo(a.row,a.column+d)):(l=o.session.doc.getLine(a.row).length>l?l+1:l,o.selection.moveCursorTo(a.row,l))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",bindKey:u(null,null),exec:function(o){var c=o.session.doc.getLength()-1,a=o.session.doc.getLine(c).length,f=o.selection.rangeList.ranges,l=[];f.length<1&&(f=[o.selection.getRange()]);for(var h=0;h<f.length;h++)h==f.length-1&&(f[h].end.row===c&&f[h].end.column===a||l.push(new s(f[h].end.row,f[h].end.column,c,a))),h===0?f[h].start.row===0&&f[h].start.column===0||l.push(new s(0,0,f[h].start.row,f[h].start.column)):l.push(new s(f[h-1].end.row,f[h-1].end.column,f[h].start.row,f[h].start.column));o.exitMultiSelectMode(),o.clearSelection();for(var h=0;h<l.length;h++)o.selection.addRange(l[h],!1)},readOnly:!0,scrollIntoView:"none"}]});ace.define("ace/editor",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/keyboard/textinput","ace/mouse/mouse_handler","ace/mouse/fold_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","ace/lib/event_emitter","ace/commands/command_manager","ace/commands/default_commands","ace/config","ace/token_iterator"],function(e,t,n){e("./lib/fixoldbrowsers");var i=e("./lib/oop"),r=e("./lib/dom"),s=e("./lib/lang"),u=e("./lib/useragent"),o=e("./keyboard/textinput").TextInput,c=e("./mouse/mouse_handler").MouseHandler,a=e("./mouse/fold_handler").FoldHandler,f=e("./keyboard/keybinding").KeyBinding,l=e("./edit_session").EditSession,h=e("./search").Search,d=e("./range").Range,g=e("./lib/event_emitter").EventEmitter,p=e("./commands/command_manager").CommandManager,m=e("./commands/default_commands").commands,w=e("./config"),v=e("./token_iterator").TokenIterator,A=function(_,E){var b=_.getContainerElement();this.container=b,this.renderer=_,this.id="editor"+ ++A.$uid,this.commands=new p(u.isMac?"mac":"win",m),typeof document=="object"&&(this.textInput=new o(_.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new c(this),new a(this)),this.keyBinding=new f(this),this.$blockScrolling=0,this.$search=new h().set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=s.delayedCall(function(){this._signal("input",{}),this.session&&this.session.bgTokenizer&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",function(x,y){y._$emitInputEvent.schedule(31)}),this.setSession(E||new l("")),w.resetOptions(this),w._signal("editor",this)};A.$uid=0,function(){i.implement(this,g),this.$initOperationListeners=function(){this.selections=[],this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=s.delayedCall(this.endOperation.bind(this)),this.on("change",function(){this.curOp||this.startOperation(),this.curOp.docChanged=!0}.bind(this),!0),this.on("changeSelection",function(){this.curOp||this.startOperation(),this.curOp.selectionChanged=!0}.bind(this),!0)},this.curOp=null,this.prevOp={},this.startOperation=function(_){if(this.curOp){if(!_||this.curOp.command)return;this.prevOp=this.curOp}_||(this.previousCommand=null,_={}),this.$opResetTimer.schedule(),this.curOp={command:_.command||{},args:_.args,scrollTop:this.renderer.scrollTop},this.curOp.command.name&&this.curOp.command.scrollIntoView!==void 0&&this.$blockScrolling++},this.endOperation=function(_){if(this.curOp){if(_&&_.returnValue===!1)return this.curOp=null;this._signal("beforeEndOperation");var E=this.curOp.command;E.name&&this.$blockScrolling>0&&this.$blockScrolling--;var b=E&&E.scrollIntoView;if(b){switch(b){case"center-animate":b="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var x=this.selection.getRange(),y=this.renderer.layerConfig;(x.start.row>=y.lastRow||x.end.row<=y.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break}b=="animate"&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(_){if(!!this.$mergeUndoDeltas){var E=this.prevOp,b=this.$mergeableCommands,x=E.command&&_.command.name==E.command.name;if(_.command.name=="insertstring"){var y=_.args;this.mergeNextCommand===void 0&&(this.mergeNextCommand=!0),x=x&&this.mergeNextCommand&&(!/\s/.test(y)||/\s/.test(E.args)),this.mergeNextCommand=!0}else x=x&&b.indexOf(_.command.name)!==-1;this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2e3&&(x=!1),x?this.session.mergeUndoDeltas=!0:b.indexOf(_.command.name)!==-1&&(this.sequenceStartTime=Date.now())}},this.setKeyboardHandler=function(_,E){if(_&&typeof _=="string"){this.$keybindingId=_;var b=this;w.loadModule(["keybinding",_],function(x){b.$keybindingId==_&&b.keyBinding.setKeyboardHandler(x&&x.handler),E&&E()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(_),E&&E()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(_){if(this.session!=_){this.curOp&&this.endOperation(),this.curOp={};var E=this.session;if(E){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var b=this.session.getSelection();b.off("changeCursor",this.$onCursorChange),b.off("changeSelection",this.$onSelectionChange)}this.session=_,_?(this.$onDocumentChange=this.onDocumentChange.bind(this),_.on("change",this.$onDocumentChange),this.renderer.setSession(_),this.$onChangeMode=this.onChangeMode.bind(this),_.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),_.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),_.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),_.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),_.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),_.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=_.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(_)),this._signal("changeSession",{session:_,oldSession:E}),this.curOp=null,E&&E._signal("changeEditor",{oldEditor:this}),_&&_._signal("changeEditor",{editor:this}),_&&_.bgTokenizer&&_.bgTokenizer.scheduleStart()}},this.getSession=function(){return this.session},this.setValue=function(_,E){return this.session.doc.setValue(_),E?E==1?this.navigateFileEnd():E==-1&&this.navigateFileStart():this.selectAll(),_},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(_){this.renderer.onResize(_)},this.setTheme=function(_,E){this.renderer.setTheme(_,E)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(_){this.renderer.setStyle(_)},this.unsetStyle=function(_){this.renderer.unsetStyle(_)},this.getFontSize=function(){return this.getOption("fontSize")||r.computedStyle(this.container,"fontSize")},this.setFontSize=function(_){this.setOption("fontSize",_)},this.$highlightBrackets=function(){if(this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null),!this.$highlightPending){var _=this;this.$highlightPending=!0,setTimeout(function(){_.$highlightPending=!1;var E=_.session;if(!(!E||!E.bgTokenizer)){var b=E.findMatchingBracket(_.getCursorPosition());if(b)var x=new d(b.row,b.column,b.row,b.column+1);else if(E.$mode.getMatching)var x=E.$mode.getMatching(_.session);x&&(E.$bracketHighlight=E.addMarker(x,"ace_bracket","text"))}},50)}},this.$highlightTags=function(){if(!this.$highlightTagPending){var _=this;this.$highlightTagPending=!0,setTimeout(function(){_.$highlightTagPending=!1;var E=_.session;if(!(!E||!E.bgTokenizer)){var b=_.getCursorPosition(),x=new v(_.session,b.row,b.column),y=x.getCurrentToken();if(!y||!/\b(?:tag-open|tag-name)/.test(y.type)){E.removeMarker(E.$tagHighlight),E.$tagHighlight=null;return}if(!(y.type.indexOf("tag-open")!=-1&&(y=x.stepForward(),!y))){var C=y.value,B=0,T=x.stepBackward();if(T.value=="<")do T=y,y=x.stepForward(),y&&y.value===C&&y.type.indexOf("tag-name")!==-1&&(T.value==="<"?B++:T.value==="</"&&B--);while(y&&B>=0);else{do y=T,T=x.stepBackward(),y&&y.value===C&&y.type.indexOf("tag-name")!==-1&&(T.value==="<"?B++:T.value==="</"&&B--);while(T&&B<=0);x.stepForward()}if(!y){E.removeMarker(E.$tagHighlight),E.$tagHighlight=null;return}var M=x.getCurrentTokenRow(),R=x.getCurrentTokenColumn(),I=new d(M,R,M,R+y.value.length),H=E.$backMarkers[E.$tagHighlight];E.$tagHighlight&&H!=null&&I.compareRange(H.range)!==0&&(E.removeMarker(E.$tagHighlight),E.$tagHighlight=null),I&&!E.$tagHighlight&&(E.$tagHighlight=E.addMarker(I,"ace_bracket","text"))}}},50)}},this.focus=function(){var _=this;setTimeout(function(){_.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(_){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",_))},this.onBlur=function(_){!this.$isFocused||(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",_))},this.$cursorChange=function(){this.renderer.updateCursor()},this.onDocumentChange=function(_){var E=this.session.$useWrapMode,b=_.start.row==_.end.row?_.end.row:1/0;this.renderer.updateLines(_.start.row,b,E),this._signal("change",_),this.$cursorChange(),this.$updateHighlightActiveLine()},this.onTokenizerUpdate=function(_){var E=_.data;this.renderer.updateLines(E.first,E.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.$cursorChange(),this.$blockScrolling||(w.warn("Automatically scrolling cursor into view after selection change","this will be disabled in the next version","set editor.$blockScrolling = Infinity to disable this message"),this.renderer.scrollCursorIntoView()),this.$highlightBrackets(),this.$highlightTags(),this.$updateHighlightActiveLine(),this._signal("changeSelection")},this.$updateHighlightActiveLine=function(){var _=this.getSession(),E;if(this.$highlightActiveLine&&((this.$selectionStyle!="line"||!this.selection.isMultiLine())&&(E=this.getCursorPosition()),this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(E=!1)),_.$highlightLineMarker&&!E)_.removeMarker(_.$highlightLineMarker.id),_.$highlightLineMarker=null;else if(!_.$highlightLineMarker&&E){var b=new d(E.row,E.column,E.row,1/0);b.id=_.addMarker(b,"ace_active-line","screenLine"),_.$highlightLineMarker=b}else E&&(_.$highlightLineMarker.start.row=E.row,_.$highlightLineMarker.end.row=E.row,_.$highlightLineMarker.start.column=E.column,_._signal("changeBackMarker"))},this.onSelectionChange=function(_){var E=this.session;if(E.$selectionMarker&&E.removeMarker(E.$selectionMarker),E.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var b=this.selection.getRange(),x=this.getSelectionStyle();E.$selectionMarker=E.addMarker(b,"ace_selection",x)}var y=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(y),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var _=this.session,E=this.getSelectionRange();if(!(E.isEmpty()||E.isMultiLine())){var b=E.start.column-1,x=E.end.column+1,y=_.getLine(E.start.row),C=y.length,B=y.substring(Math.max(b,0),Math.min(x,C));if(!(b>=0&&/^[\w\d]/.test(B)||x<=C&&/[\w\d]$/.test(B))&&(B=y.substring(E.start.column,E.end.column),!!/^[\w\d]+$/.test(B))){var T=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:B});return T}}},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(_){this.renderer.updateText(),this._emit("changeMode",_)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var _=this.getSelectedText();return this._signal("copy",_),_},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(_,E){var b={text:_,event:E};this.commands.exec("paste",this,b)},this.$handlePaste=function(_){typeof _=="string"&&(_={text:_}),this._signal("paste",_);var E=_.text;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)this.insert(E);else{var b=E.split(/\r\n|\r|\n/),x=this.selection.rangeList.ranges;if(b.length>x.length||b.length<2||!b[1])return this.commands.exec("insertstring",this,E);for(var y=x.length;y--;){var C=x[y];C.isEmpty()||this.session.remove(C),this.session.insert(C.start,b[y])}}},this.execCommand=function(_,E){return this.commands.exec(_,this,E)},this.insert=function(_,E){var b=this.session,x=b.getMode(),y=this.getCursorPosition();if(this.getBehavioursEnabled()&&!E){var C=x.transformAction(b.getState(y.row),"insertion",this,b,_);C&&(_!==C.text&&(this.session.mergeUndoDeltas=!1,this.$mergeNextCommand=!1),_=C.text)}if(_==" "&&(_=this.session.getTabString()),this.selection.isEmpty()){if(this.session.getOverwrite()&&_.indexOf(` -`)==-1){var B=new d.fromPoints(y,y);B.end.column+=_.length,this.session.remove(B)}}else{var B=this.getSelectionRange();y=this.session.remove(B),this.clearSelection()}if(_==` -`||_==`\r -`){var I=b.getLine(y.row);if(y.column>I.search(/\S|$/)){var T=I.substr(y.column).search(/\S|$/);b.doc.removeInLine(y.row,y.column,y.column+T)}}this.clearSelection();var M=y.column,R=b.getState(y.row),I=b.getLine(y.row),H=x.checkOutdent(R,I,_);if(b.insert(y,_),C&&C.selection&&(C.selection.length==2?this.selection.setSelectionRange(new d(y.row,M+C.selection[0],y.row,M+C.selection[1])):this.selection.setSelectionRange(new d(y.row+C.selection[0],C.selection[1],y.row+C.selection[2],C.selection[3]))),b.getDocument().isNewLine(_)){var P=x.getNextLineIndent(R,I.slice(0,y.column),b.getTabString());b.insert({row:y.row+1,column:0},P)}H&&x.autoOutdent(R,b,y.row)},this.onTextInput=function(_){this.keyBinding.onTextInput(_)},this.onCommandKey=function(_,E,b){this.keyBinding.onCommandKey(_,E,b)},this.setOverwrite=function(_){this.session.setOverwrite(_)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(_){this.setOption("scrollSpeed",_)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(_){this.setOption("dragDelay",_)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(_){this.setOption("selectionStyle",_)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(_){this.setOption("highlightActiveLine",_)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(_){this.setOption("highlightGutterLine",_)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(_){this.setOption("highlightSelectedWord",_)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(_){this.renderer.setAnimatedScroll(_)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(_){this.renderer.setShowInvisibles(_)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(_){this.renderer.setDisplayIndentGuides(_)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(_){this.renderer.setShowPrintMargin(_)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(_){this.renderer.setPrintMarginColumn(_)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(_){this.setOption("readOnly",_)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(_){this.setOption("behavioursEnabled",_)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(_){this.setOption("wrapBehavioursEnabled",_)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(_){this.setOption("showFoldWidgets",_)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(_){this.setOption("fadeFoldWidgets",_)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(_){this.selection.isEmpty()&&(_=="left"?this.selection.selectLeft():this.selection.selectRight());var E=this.getSelectionRange();if(this.getBehavioursEnabled()){var b=this.session,x=b.getState(E.start.row),y=b.getMode().transformAction(x,"deletion",this,b,E);if(E.end.column===0){var C=b.getTextRange(E);if(C[C.length-1]==` -`){var B=b.getLine(E.end.row);/^\s+$/.test(B)&&(E.end.column=B.length)}}y&&(E=y)}this.session.remove(E),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var _=this.getSelectionRange();_.start.column==_.end.column&&_.start.row==_.end.row&&(_.end.column=0,_.end.row++),this.session.remove(_),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var _=this.getCursorPosition();this.insert(` -`),this.moveCursorToPosition(_)},this.transposeLetters=function(){if(!!this.selection.isEmpty()){var _=this.getCursorPosition(),E=_.column;if(E!==0){var b=this.session.getLine(_.row),x,y;E<b.length?(x=b.charAt(E)+b.charAt(E-1),y=new d(_.row,E-1,_.row,E+1)):(x=b.charAt(E-1)+b.charAt(E-2),y=new d(_.row,E-2,_.row,E)),this.session.replace(y,x),this.session.selection.moveToPosition(y.end)}}},this.toLowerCase=function(){var _=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var E=this.getSelectionRange(),b=this.session.getTextRange(E);this.session.replace(E,b.toLowerCase()),this.selection.setSelectionRange(_)},this.toUpperCase=function(){var _=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var E=this.getSelectionRange(),b=this.session.getTextRange(E);this.session.replace(E,b.toUpperCase()),this.selection.setSelectionRange(_)},this.indent=function(){var _=this.session,E=this.getSelectionRange();if(E.start.row<E.end.row){var b=this.$getSelectedRows();_.indentRows(b.first,b.last," ");return}else if(E.start.column<E.end.column){var x=_.getTextRange(E);if(!/^\s+$/.test(x)){var b=this.$getSelectedRows();_.indentRows(b.first,b.last," ");return}}var y=_.getLine(E.start.row),C=E.start,B=_.getTabSize(),T=_.documentToScreenColumn(C.row,C.column);if(this.session.getUseSoftTabs())var M=B-T%B,R=s.stringRepeat(" ",M);else{for(var M=T%B;y[E.start.column-1]==" "&&M;)E.start.column--,M--;this.selection.setSelectionRange(E),R=" "}return this.insert(R)},this.blockIndent=function(){var _=this.$getSelectedRows();this.session.indentRows(_.first,_.last," ")},this.blockOutdent=function(){var _=this.session.getSelection();this.session.outdentRows(_.getRange())},this.sortLines=function(){for(var _=this.$getSelectedRows(),E=this.session,b=[],x=_.first;x<=_.last;x++)b.push(E.getLine(x));b.sort(function(B,T){return B.toLowerCase()<T.toLowerCase()?-1:B.toLowerCase()>T.toLowerCase()?1:0});for(var y=new d(0,0,0,0),x=_.first;x<=_.last;x++){var C=E.getLine(x);y.start.row=x,y.end.row=x,y.end.column=C.length,E.replace(y,b[x-_.first])}},this.toggleCommentLines=function(){var _=this.session.getState(this.getCursorPosition().row),E=this.$getSelectedRows();this.session.getMode().toggleCommentLines(_,this.session,E.first,E.last)},this.toggleBlockComment=function(){var _=this.getCursorPosition(),E=this.session.getState(_.row),b=this.getSelectionRange();this.session.getMode().toggleBlockComment(E,this.session,b,_)},this.getNumberAt=function(_,E){var b=/[\-]?[0-9]+(?:\.[0-9]+)?/g;b.lastIndex=0;for(var x=this.session.getLine(_);b.lastIndex<E;){var y=b.exec(x);if(y.index<=E&&y.index+y[0].length>=E){var C={value:y[0],start:y.index,end:y.index+y[0].length};return C}}return null},this.modifyNumber=function(_){var E=this.selection.getCursor().row,b=this.selection.getCursor().column,x=new d(E,b-1,E,b),y=this.session.getTextRange(x);if(!isNaN(parseFloat(y))&&isFinite(y)){var C=this.getNumberAt(E,b);if(C){var B=C.value.indexOf(".")>=0?C.start+C.value.indexOf(".")+1:C.end,T=C.start+C.value.length-B,M=parseFloat(C.value);M*=Math.pow(10,T),B!==C.end&&b<B?_*=Math.pow(10,C.end-b-1):_*=Math.pow(10,C.end-b),M+=_,M/=Math.pow(10,T);var R=M.toFixed(T),I=new d(E,C.start,E,C.end);this.session.replace(I,R),this.moveCursorTo(E,Math.max(C.start+1,b+R.length-C.value.length))}}},this.removeLines=function(){var _=this.$getSelectedRows();this.session.removeFullLines(_.first,_.last),this.clearSelection()},this.duplicateSelection=function(){var _=this.selection,E=this.session,b=_.getRange(),x=_.isBackwards();if(b.isEmpty()){var y=b.start.row;E.duplicateLines(y,y)}else{var C=x?b.start:b.end,B=E.insert(C,E.getTextRange(b),!1);b.start=C,b.end=B,_.setSelectionRange(b,x)}},this.moveLinesDown=function(){this.$moveLines(1,!1)},this.moveLinesUp=function(){this.$moveLines(-1,!1)},this.moveText=function(_,E,b){return this.session.moveText(_,E,b)},this.copyLinesUp=function(){this.$moveLines(-1,!0)},this.copyLinesDown=function(){this.$moveLines(1,!0)},this.$moveLines=function(_,E){var b,x,y=this.selection;if(!y.inMultiSelectMode||this.inVirtualSelectionMode){var C=y.toOrientedRange();b=this.$getSelectedRows(C),x=this.session.$moveLines(b.first,b.last,E?0:_),E&&_==-1&&(x=0),C.moveBy(x,0),y.fromOrientedRange(C)}else{var B=y.rangeList.ranges;y.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var T=0,M=0,R=B.length,I=0;I<R;I++){var H=I;B[I].moveBy(T,0),b=this.$getSelectedRows(B[I]);for(var P=b.first,j=b.last;++I<R;){M&&B[I].moveBy(M,0);var V=this.$getSelectedRows(B[I]);if(E&&V.first!=j)break;if(!E&&V.first>j+1)break;j=V.last}for(I--,T=this.session.$moveLines(P,j,E?0:_),E&&_==-1&&(H=I+1);H<=I;)B[H].moveBy(T,0),H++;E||(T=0),M+=T}y.fromOrientedRange(y.ranges[0]),y.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(_){return _=(_||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(_.start.row),last:this.session.getRowFoldEnd(_.end.row)}},this.onCompositionStart=function(_){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(_){this.renderer.setCompositionText(_)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(_){return _>=this.getFirstVisibleRow()&&_<=this.getLastVisibleRow()},this.isRowFullyVisible=function(_){return _>=this.renderer.getFirstFullyVisibleRow()&&_<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(_,E){var b=this.renderer,x=this.renderer.layerConfig,y=_*Math.floor(x.height/x.lineHeight);this.$blockScrolling++,E===!0?this.selection.$moveSelection(function(){this.moveCursorBy(y,0)}):E===!1&&(this.selection.moveCursorBy(y,0),this.selection.clearSelection()),this.$blockScrolling--;var C=b.scrollTop;b.scrollBy(0,y*x.lineHeight),E!=null&&b.scrollCursorIntoView(null,.5),b.animateScrolling(C)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(_){this.renderer.scrollToRow(_)},this.scrollToLine=function(_,E,b,x){this.renderer.scrollToLine(_,E,b,x)},this.centerSelection=function(){var _=this.getSelectionRange(),E={row:Math.floor(_.start.row+(_.end.row-_.start.row)/2),column:Math.floor(_.start.column+(_.end.column-_.start.column)/2)};this.renderer.alignCursor(E,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(_,E){this.selection.moveCursorTo(_,E)},this.moveCursorToPosition=function(_){this.selection.moveCursorToPosition(_)},this.jumpToMatching=function(_,E){var b=this.getCursorPosition(),x=new v(this.session,b.row,b.column),y=x.getCurrentToken(),C=y||x.stepForward();if(!!C){var B,T=!1,M={},R=b.column-C.start,I,H={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(C.value.match(/[{}()\[\]]/g)){for(;R<C.value.length&&!T;R++)if(!!H[C.value[R]])switch(I=H[C.value[R]]+"."+C.type.replace("rparen","lparen"),isNaN(M[I])&&(M[I]=0),C.value[R]){case"(":case"[":case"{":M[I]++;break;case")":case"]":case"}":M[I]--,M[I]===-1&&(B="bracket",T=!0);break}}else C&&C.type.indexOf("tag-name")!==-1&&(isNaN(M[C.value])&&(M[C.value]=0),y.value==="<"?M[C.value]++:y.value==="</"&&M[C.value]--,M[C.value]===-1&&(B="tag",T=!0));T||(y=C,C=x.stepForward(),R=0)}while(C&&!T);if(!!B){var P,j;if(B==="bracket")P=this.session.getBracketRange(b),P||(P=new d(x.getCurrentTokenRow(),x.getCurrentTokenColumn()+R-1,x.getCurrentTokenRow(),x.getCurrentTokenColumn()+R-1),j=P.start,(E||j.row===b.row&&Math.abs(j.column-b.column)<2)&&(P=this.session.getBracketRange(j)));else if(B==="tag"){if(C&&C.type.indexOf("tag-name")!==-1)var V=C.value;else return;if(P=new d(x.getCurrentTokenRow(),x.getCurrentTokenColumn()-2,x.getCurrentTokenRow(),x.getCurrentTokenColumn()-2),P.compare(b.row,b.column)===0){T=!1;do C=y,y=x.stepBackward(),y&&(y.type.indexOf("tag-close")!==-1&&P.setEnd(x.getCurrentTokenRow(),x.getCurrentTokenColumn()+1),C.value===V&&C.type.indexOf("tag-name")!==-1&&(y.value==="<"?M[V]++:y.value==="</"&&M[V]--,M[V]===0&&(T=!0)));while(y&&!T)}C&&C.type.indexOf("tag-name")&&(j=P.start,j.row==b.row&&Math.abs(j.column-b.column)<2&&(j=P.end))}j=P&&P.cursor||j,j&&(_?P&&E?this.selection.setRange(P):P&&P.isEqual(this.getSelectionRange())?this.clearSelection():this.selection.selectTo(j.row,j.column):this.selection.moveTo(j.row,j.column))}}},this.gotoLine=function(_,E,b){this.selection.clearSelection(),this.session.unfold({row:_-1,column:E||0}),this.$blockScrolling+=1,this.exitMultiSelectMode&&this.exitMultiSelectMode(),this.moveCursorTo(_-1,E||0),this.$blockScrolling-=1,this.isRowFullyVisible(_-1)||this.scrollToLine(_-1,!0,b)},this.navigateTo=function(_,E){this.selection.moveTo(_,E)},this.navigateUp=function(_){if(this.selection.isMultiLine()&&!this.selection.isBackwards()){var E=this.selection.anchor.getPosition();return this.moveCursorToPosition(E)}this.selection.clearSelection(),this.selection.moveCursorBy(-_||-1,0)},this.navigateDown=function(_){if(this.selection.isMultiLine()&&this.selection.isBackwards()){var E=this.selection.anchor.getPosition();return this.moveCursorToPosition(E)}this.selection.clearSelection(),this.selection.moveCursorBy(_||1,0)},this.navigateLeft=function(_){if(this.selection.isEmpty())for(_=_||1;_--;)this.selection.moveCursorLeft();else{var E=this.getSelectionRange().start;this.moveCursorToPosition(E)}this.clearSelection()},this.navigateRight=function(_){if(this.selection.isEmpty())for(_=_||1;_--;)this.selection.moveCursorRight();else{var E=this.getSelectionRange().end;this.moveCursorToPosition(E)}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(_,E){E&&this.$search.set(E);var b=this.$search.find(this.session),x=0;return b&&(this.$tryReplace(b,_)&&(x=1),b!==null&&(this.selection.setSelectionRange(b),this.renderer.scrollSelectionIntoView(b.start,b.end))),x},this.replaceAll=function(_,E){E&&this.$search.set(E);var b=this.$search.findAll(this.session),x=0;if(!b.length)return x;this.$blockScrolling+=1;var y=this.getSelectionRange();this.selection.moveTo(0,0);for(var C=b.length-1;C>=0;--C)this.$tryReplace(b[C],_)&&x++;return this.selection.setSelectionRange(y),this.$blockScrolling-=1,x},this.$tryReplace=function(_,E){var b=this.session.getTextRange(_);return E=this.$search.replace(b,E),E!==null?(_.end=this.session.replace(_,E),_):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(_,E,b){E||(E={}),typeof _=="string"||_ instanceof RegExp?E.needle=_:typeof _=="object"&&i.mixin(E,_);var x=this.selection.getRange();E.needle==null&&(_=this.session.getTextRange(x)||this.$search.$options.needle,_||(x=this.session.getWordRange(x.start.row,x.start.column),_=this.session.getTextRange(x)),this.$search.set({needle:_})),this.$search.set(E),E.start||this.$search.set({start:x});var y=this.$search.find(this.session);if(E.preventScroll)return y;if(y)return this.revealRange(y,b),y;E.backwards?x.start=x.end:x.end=x.start,this.selection.setRange(x)},this.findNext=function(_,E){this.find({skipCurrent:!0,backwards:!1},_,E)},this.findPrevious=function(_,E){this.find(_,{skipCurrent:!0,backwards:!0},E)},this.revealRange=function(_,E){this.$blockScrolling+=1,this.session.unfold(_),this.selection.setSelectionRange(_),this.$blockScrolling-=1;var b=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(_.start,_.end,.5),E!==!1&&this.renderer.animateScrolling(b)},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy()},this.setAutoScrollEditorIntoView=function(_){if(!!_){var E,b=this,x=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var y=this.$scrollAnchor;y.style.cssText="position:absolute",this.container.insertBefore(y,this.container.firstChild);var C=this.on("changeSelection",function(){x=!0}),B=this.renderer.on("beforeRender",function(){x&&(E=b.renderer.container.getBoundingClientRect())}),T=this.renderer.on("afterRender",function(){if(x&&E&&(b.isFocused()||b.searchBox&&b.searchBox.isFocused())){var M=b.renderer,R=M.$cursorLayer.$pixelPos,I=M.layerConfig,H=R.top-I.offset;R.top>=0&&H+E.top<0?x=!0:R.top<I.height&&R.top+E.top+I.lineHeight>window.innerHeight?x=!1:x=null,x!=null&&(y.style.top=H+"px",y.style.left=R.left+"px",y.style.height=I.lineHeight+"px",y.scrollIntoView(x)),x=E=null}});this.setAutoScrollEditorIntoView=function(M){M||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",C),this.renderer.off("afterRender",T),this.renderer.off("beforeRender",B))}}},this.$resetCursorStyle=function(){var _=this.$cursorStyle||"ace",E=this.renderer.$cursorLayer;!E||(E.setSmoothBlinking(/smooth/.test(_)),E.isBlinking=!this.$readOnly&&_!="wide",r.setCssClass(E.element,"ace_slim-cursors",/slim/.test(_)))}}.call(A.prototype),w.defineOptions(A.prototype,"editor",{selectionStyle:{set:function(_){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:_})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(_){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(_){this.$resetCursorStyle()},initialValue:!1},cursorStyle:{set:function(_){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},autoScrollEditorIntoView:{set:function(_){this.setAutoScrollEditorIntoView(_)}},keyboardHandler:{set:function(_){this.setKeyboardHandler(_)},get:function(){return this.keybindingId},handlesSet:!0},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",showLineNumbers:"renderer",showGutter:"renderer",displayIndentGuides:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"}),t.Editor=A});ace.define("ace/undomanager",["require","exports","module"],function(e,t,n){var i=function(){this.reset()};(function(){this.execute=function(o){var c=o.args[0];this.$doc=o.args[1],o.merge&&this.hasUndo()&&(this.dirtyCounter--,c=this.$undoStack.pop().concat(c)),this.$undoStack.push(c),this.$redoStack=[],this.dirtyCounter<0&&(this.dirtyCounter=NaN),this.dirtyCounter++},this.undo=function(o){var c=this.$undoStack.pop(),a=null;return c&&(a=this.$doc.undoChanges(c,o),this.$redoStack.push(c),this.dirtyCounter--),a},this.redo=function(o){var c=this.$redoStack.pop(),a=null;return c&&(a=this.$doc.redoChanges(this.$deserializeDeltas(c),o),this.$undoStack.push(c),this.dirtyCounter++),a},this.reset=function(){this.$undoStack=[],this.$redoStack=[],this.dirtyCounter=0},this.hasUndo=function(){return this.$undoStack.length>0},this.hasRedo=function(){return this.$redoStack.length>0},this.markClean=function(){this.dirtyCounter=0},this.isClean=function(){return this.dirtyCounter===0},this.$serializeDeltas=function(o){return u(o,r)},this.$deserializeDeltas=function(o){return u(o,s)};function r(o){return{action:o.action,start:o.start,end:o.end,lines:o.lines.length==1?null:o.lines,text:o.lines.length==1?o.lines[0]:null}}function s(o){return{action:o.action,start:o.start,end:o.end,lines:o.lines||[o.text]}}function u(o,c){for(var a=new Array(o.length),f=0;f<o.length;f++){for(var l=o[f],h={group:l.group,deltas:new Array(l.length)},d=0;d<l.deltas.length;d++){var g=l.deltas[d];h.deltas[d]=c(g)}a[f]=h}return a}}).call(i.prototype),t.UndoManager=i});ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter"],function(e,t,n){var i=e("../lib/dom"),r=e("../lib/oop"),s=e("../lib/lang"),u=e("../lib/event_emitter").EventEmitter,o=function(c){this.element=i.createElement("div"),this.element.className="ace_layer ace_gutter-layer",c.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$cells=[]};(function(){r.implement(this,u),this.setSession=function(c){this.session&&this.session.removeEventListener("change",this.$updateAnnotations),this.session=c,c&&c.on("change",this.$updateAnnotations)},this.addGutterDecoration=function(c,a){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(c,a)},this.removeGutterDecoration=function(c,a){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(c,a)},this.setAnnotations=function(c){this.$annotations=[];for(var a=0;a<c.length;a++){var f=c[a],l=f.row,h=this.$annotations[l];h||(h=this.$annotations[l]={text:[]});var d=f.text;d=d?s.escapeHTML(d):f.html||"",h.text.indexOf(d)===-1&&h.text.push(d);var g=f.type;g=="error"?h.className=" ace_error":g=="warning"&&h.className!=" ace_error"?h.className=" ace_warning":g=="info"&&!h.className&&(h.className=" ace_info")}},this.$updateAnnotations=function(c){if(!!this.$annotations.length){var a=c.start.row,f=c.end.row-a;if(f!==0)if(c.action=="remove")this.$annotations.splice(a,f+1,null);else{var l=new Array(f+1);l.unshift(a,1),this.$annotations.splice.apply(this.$annotations,l)}}},this.update=function(c){for(var a=this.session,f=c.firstRow,l=Math.min(c.lastRow+c.gutterOffset,a.getLength()-1),h=a.getNextFoldLine(f),d=h?h.start.row:1/0,g=this.$showFoldWidgets&&a.foldWidgets,p=a.$breakpoints,m=a.$decorations,w=a.$firstLineNumber,v=0,A=a.gutterRenderer||this.$renderer,_=null,E=-1,b=f;;){if(b>d&&(b=h.end.row+1,h=a.getNextFoldLine(b,h),d=h?h.start.row:1/0),b>l){for(;this.$cells.length>E+1;)_=this.$cells.pop(),this.element.removeChild(_.element);break}_=this.$cells[++E],_||(_={element:null,textNode:null,foldWidget:null},_.element=i.createElement("div"),_.textNode=document.createTextNode(""),_.element.appendChild(_.textNode),this.element.appendChild(_.element),this.$cells[E]=_);var x="ace_gutter-cell ";p[b]&&(x+=p[b]),m[b]&&(x+=m[b]),this.$annotations[b]&&(x+=this.$annotations[b].className),_.element.className!=x&&(_.element.className=x);var y=a.getRowLength(b)*c.lineHeight+"px";if(y!=_.element.style.height&&(_.element.style.height=y),g){var C=g[b];C==null&&(C=g[b]=a.getFoldWidget(b))}if(C){_.foldWidget||(_.foldWidget=i.createElement("span"),_.element.appendChild(_.foldWidget));var x="ace_fold-widget ace_"+C;C=="start"&&b==d&&b<h.end.row?x+=" ace_closed":x+=" ace_open",_.foldWidget.className!=x&&(_.foldWidget.className=x);var y=c.lineHeight+"px";_.foldWidget.style.height!=y&&(_.foldWidget.style.height=y)}else _.foldWidget&&(_.element.removeChild(_.foldWidget),_.foldWidget=null);var B=v=A?A.getText(a,b):b+w;B!==_.textNode.data&&(_.textNode.data=B),b++}this.element.style.height=c.minHeight+"px",(this.$fixedWidth||a.$useWrapMode)&&(v=a.getLength()+w);var T=A?A.getWidth(a,v,c):v.toString().length*c.characterWidth,M=this.$padding||this.$computePadding();T+=M.left+M.right,T!==this.gutterWidth&&!isNaN(T)&&(this.gutterWidth=T,this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._emit("changeGutterWidth",T))},this.$fixedWidth=!1,this.$showLineNumbers=!0,this.$renderer="",this.setShowLineNumbers=function(c){this.$renderer=!c&&{getWidth:function(){return""},getText:function(){return""}}},this.getShowLineNumbers=function(){return this.$showLineNumbers},this.$showFoldWidgets=!0,this.setShowFoldWidgets=function(c){c?i.addCssClass(this.element,"ace_folding-enabled"):i.removeCssClass(this.element,"ace_folding-enabled"),this.$showFoldWidgets=c,this.$padding=null},this.getShowFoldWidgets=function(){return this.$showFoldWidgets},this.$computePadding=function(){if(!this.element.firstChild)return{left:0,right:0};var c=i.computedStyle(this.element.firstChild);return this.$padding={},this.$padding.left=parseInt(c.paddingLeft)+1||0,this.$padding.right=parseInt(c.paddingRight)||0,this.$padding},this.getRegion=function(c){var a=this.$padding||this.$computePadding(),f=this.element.getBoundingClientRect();if(c.x<a.left+f.left)return"markers";if(this.$showFoldWidgets&&c.x>f.right-a.right)return"foldWidgets"}}).call(o.prototype),t.Gutter=o});ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(e,t,n){var i=e("../range").Range,r=e("../lib/dom"),s=function(u){this.element=r.createElement("div"),this.element.className="ace_layer ace_marker-layer",u.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(o){this.$padding=o},this.setSession=function(o){this.session=o},this.setMarkers=function(o){this.markers=o},this.update=function(o){if(!!o){this.config=o;var c=[];for(var a in this.markers){var f=this.markers[a];if(!f.range){f.update(c,this,this.session,o);continue}var l=f.range.clipRows(o.firstRow,o.lastRow);if(!l.isEmpty())if(l=l.toScreenRange(this.session),f.renderer){var h=this.$getTop(l.start.row,o),d=this.$padding+(this.session.$bidiHandler.isBidiRow(l.start.row)?this.session.$bidiHandler.getPosLeft(l.start.column):l.start.column*o.characterWidth);f.renderer(c,l,d,h,o)}else f.type=="fullLine"?this.drawFullLineMarker(c,l,f.clazz,o):f.type=="screenLine"?this.drawScreenLineMarker(c,l,f.clazz,o):l.isMultiLine()?f.type=="text"?this.drawTextMarker(c,l,f.clazz,o):this.drawMultiLineMarker(c,l,f.clazz,o):this.session.$bidiHandler.isBidiRow(l.start.row)?this.drawBidiSingleLineMarker(c,l,f.clazz+" ace_start ace_br15",o):this.drawSingleLineMarker(c,l,f.clazz+" ace_start ace_br15",o)}this.element.innerHTML=c.join("")}},this.$getTop=function(o,c){return(o-c.firstRowScreen)*c.lineHeight};function u(o,c,a,f){return(o?1:0)|(c?2:0)|(a?4:0)|(f?8:0)}this.drawTextMarker=function(o,c,a,f,l){for(var h=this.session,d=c.start.row,g=c.end.row,p=d,m=0,w=0,v=h.getScreenLastRowColumn(p),A=null,_=new i(p,c.start.column,p,w);p<=g;p++)_.start.row=_.end.row=p,_.start.column=p==d?c.start.column:h.getRowWrapIndent(p),_.end.column=v,m=w,w=v,v=p+1<g?h.getScreenLastRowColumn(p+1):p==g?0:c.end.column,A=a+(p==d?" ace_start":"")+" ace_br"+u(p==d||p==d+1&&c.start.column,m<w,w>v,p==g),this.session.$bidiHandler.isBidiRow(p)?this.drawBidiSingleLineMarker(o,_,A,f,p==g?0:1,l):this.drawSingleLineMarker(o,_,A,f,p==g?0:1,l)},this.drawMultiLineMarker=function(o,c,a,f,l){var h=this.$padding,d,g,p;if(l=l||"",this.session.$bidiHandler.isBidiRow(c.start.row)){var m=c.clone();m.end.row=m.start.row,m.end.column=this.session.getLine(m.start.row).length,this.drawBidiSingleLineMarker(o,m,a+" ace_br1 ace_start",f,null,l)}else d=f.lineHeight,g=this.$getTop(c.start.row,f),p=h+c.start.column*f.characterWidth,o.push("<div class='",a," ace_br1 ace_start' style='","height:",d,"px;","right:0;","top:",g,"px;","left:",p,"px;",l,"'></div>");if(this.session.$bidiHandler.isBidiRow(c.end.row)){var m=c.clone();m.start.row=m.end.row,m.start.column=0,this.drawBidiSingleLineMarker(o,m,a+" ace_br12",f,null,l)}else{var w=c.end.column*f.characterWidth;d=f.lineHeight,g=this.$getTop(c.end.row,f),o.push("<div class='",a," ace_br12' style='","height:",d,"px;","width:",w,"px;","top:",g,"px;","left:",h,"px;",l,"'></div>")}if(d=(c.end.row-c.start.row-1)*f.lineHeight,!(d<=0)){g=this.$getTop(c.start.row+1,f);var v=(c.start.column?1:0)|(c.end.column?0:8);o.push("<div class='",a,v?" ace_br"+v:"","' style='","height:",d,"px;","right:0;","top:",g,"px;","left:",h,"px;",l,"'></div>")}},this.drawSingleLineMarker=function(o,c,a,f,l,h){var d=f.lineHeight,g=(c.end.column+(l||0)-c.start.column)*f.characterWidth,p=this.$getTop(c.start.row,f),m=this.$padding+c.start.column*f.characterWidth;o.push("<div class='",a,"' style='","height:",d,"px;","width:",g,"px;","top:",p,"px;","left:",m,"px;",h||"","'></div>")},this.drawBidiSingleLineMarker=function(o,c,a,f,l,h){var d=f.lineHeight,g=this.$getTop(c.start.row,f),p=this.$padding,m=this.session.$bidiHandler.getSelections(c.start.column,c.end.column);m.forEach(function(w){o.push("<div class='",a,"' style='","height:",d,"px;","width:",w.width+(l||0),"px;","top:",g,"px;","left:",p+w.left,"px;",h||"","'></div>")})},this.drawFullLineMarker=function(o,c,a,f,l){var h=this.$getTop(c.start.row,f),d=f.lineHeight;c.start.row!=c.end.row&&(d+=this.$getTop(c.end.row,f)-h),o.push("<div class='",a,"' style='","height:",d,"px;","top:",h,"px;","left:0;right:0;",l||"","'></div>")},this.drawScreenLineMarker=function(o,c,a,f,l){var h=this.$getTop(c.start.row,f),d=f.lineHeight;o.push("<div class='",a,"' style='","height:",d,"px;","top:",h,"px;","left:0;right:0;",l||"","'></div>")}}).call(s.prototype),t.Marker=s});ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,n){var i=e("../lib/oop"),r=e("../lib/dom"),s=e("../lib/lang");e("../lib/useragent");var u=e("../lib/event_emitter").EventEmitter,o=function(c){this.element=r.createElement("div"),this.element.className="ace_layer ace_text-layer",c.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this)};(function(){i.implement(this,u),this.EOF_CHAR="\xB6",this.EOL_CHAR_LF="\xAC",this.EOL_CHAR_CRLF="\xA4",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="\u2014",this.SPACE_CHAR="\xB7",this.$padding=0,this.$updateEolChar=function(){var c=this.session.doc.getNewLineCharacter()==` -`?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=c)return this.EOL_CHAR=c,!0},this.setPadding=function(c){this.$padding=c,this.element.style.padding="0 "+c+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(c){this.$fontMetrics=c,this.$fontMetrics.on("changeCharacterSize",function(a){this._signal("changeCharacterSize",a)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(c){this.session=c,c&&this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(c){return this.showInvisibles==c?!1:(this.showInvisibles=c,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(c){return this.displayIndentGuides==c?!1:(this.displayIndentGuides=c,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var c=this.session.getTabSize();this.tabSize=c;for(var a=this.$tabStrings=[0],f=1;f<c+1;f++)this.showInvisibles?a.push("<span class='ace_invisible ace_invisible_tab'>"+s.stringRepeat(this.TAB_CHAR,f)+"</span>"):a.push(s.stringRepeat(" ",f));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var l="ace_indent-guide",h="",d="";if(this.showInvisibles){l+=" ace_invisible",h=" ace_invisible_space",d=" ace_invisible_tab";var g=s.stringRepeat(this.SPACE_CHAR,this.tabSize),p=s.stringRepeat(this.TAB_CHAR,this.tabSize)}else var g=s.stringRepeat(" ",this.tabSize),p=g;this.$tabStrings[" "]="<span class='"+l+h+"'>"+g+"</span>",this.$tabStrings[" "]="<span class='"+l+d+"'>"+p+"</span>"}},this.updateLines=function(c,a,f){(this.config.lastRow!=c.lastRow||this.config.firstRow!=c.firstRow)&&this.scrollLines(c),this.config=c;for(var l=Math.max(a,c.firstRow),h=Math.min(f,c.lastRow),d=this.element.childNodes,g=0,p=c.firstRow;p<l;p++){var m=this.session.getFoldLine(p);if(m)if(m.containsRow(l)){l=m.start.row;break}else p=m.end.row;g++}for(var p=l,m=this.session.getNextFoldLine(p),w=m?m.start.row:1/0;p>w&&(p=m.end.row+1,m=this.session.getNextFoldLine(p,m),w=m?m.start.row:1/0),!(p>h);){var v=d[g++];if(v){var A=[];this.$renderLine(A,p,!this.$useLineGroups(),p==w?m:!1),v.style.height=c.lineHeight*this.session.getRowLength(p)+"px",v.innerHTML=A.join("")}p++}},this.scrollLines=function(c){var a=this.config;if(this.config=c,!a||a.lastRow<c.firstRow)return this.update(c);if(c.lastRow<a.firstRow)return this.update(c);var f=this.element;if(a.firstRow<c.firstRow)for(var l=this.session.getFoldedRowCount(a.firstRow,c.firstRow-1);l>0;l--)f.removeChild(f.firstChild);if(a.lastRow>c.lastRow)for(var l=this.session.getFoldedRowCount(c.lastRow+1,a.lastRow);l>0;l--)f.removeChild(f.lastChild);if(c.firstRow<a.firstRow){var h=this.$renderLinesFragment(c,c.firstRow,a.firstRow-1);f.firstChild?f.insertBefore(h,f.firstChild):f.appendChild(h)}if(c.lastRow>a.lastRow){var h=this.$renderLinesFragment(c,a.lastRow+1,c.lastRow);f.appendChild(h)}},this.$renderLinesFragment=function(c,a,f){for(var l=this.element.ownerDocument.createDocumentFragment(),h=a,d=this.session.getNextFoldLine(h),g=d?d.start.row:1/0;h>g&&(h=d.end.row+1,d=this.session.getNextFoldLine(h,d),g=d?d.start.row:1/0),!(h>f);){var p=r.createElement("div"),m=[];if(this.$renderLine(m,h,!1,h==g?d:!1),p.innerHTML=m.join(""),this.$useLineGroups())p.className="ace_line_group",l.appendChild(p),p.style.height=c.lineHeight*this.session.getRowLength(h)+"px";else for(;p.firstChild;)l.appendChild(p.firstChild);h++}return l},this.update=function(c){this.config=c;for(var a=[],f=c.firstRow,l=c.lastRow,h=f,d=this.session.getNextFoldLine(h),g=d?d.start.row:1/0;h>g&&(h=d.end.row+1,d=this.session.getNextFoldLine(h,d),g=d?d.start.row:1/0),!(h>l);)this.$useLineGroups()&&a.push("<div class='ace_line_group' style='height:",c.lineHeight*this.session.getRowLength(h),"px'>"),this.$renderLine(a,h,!1,h==g?d:!1),this.$useLineGroups()&&a.push("</div>"),h++;this.element.innerHTML=a.join("")},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(c,a,f,l){var h=this,d=/\t|&|<|>|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF\uFFF9-\uFFFC])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,g=function(v,A,_,E,b){if(A)return h.showInvisibles?"<span class='ace_invisible ace_invisible_space'>"+s.stringRepeat(h.SPACE_CHAR,v.length)+"</span>":v;if(v=="&")return"&";if(v=="<")return"<";if(v==">")return">";if(v==" "){var x=h.session.getScreenTabSize(a+E);return a+=x-1,h.$tabStrings[x]}else if(v=="\u3000"){var y=h.showInvisibles?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",C=h.showInvisibles?h.SPACE_CHAR:"";return a+=1,"<span class='"+y+"' style='width:"+h.config.characterWidth*2+"px'>"+C+"</span>"}else return _?"<span class='ace_invisible ace_invisible_space ace_invalid'>"+h.SPACE_CHAR+"</span>":(a+=1,"<span class='ace_cjk' style='width:"+h.config.characterWidth*2+"px'>"+v+"</span>")},p=l.replace(d,g);if(this.$textToken[f.type])c.push(p);else{var m="ace_"+f.type.replace(/\./g," ace_"),w="";f.type=="fold"&&(w=" style='width:"+f.value.length*this.config.characterWidth+"px;' "),c.push("<span class='",m,"'",w,">",p,"</span>")}return a+l.length},this.renderIndentGuide=function(c,a,f){var l=a.search(this.$indentGuideRe);return l<=0||l>=f?a:a[0]==" "?(l-=l%this.tabSize,c.push(s.stringRepeat(this.$tabStrings[" "],l/this.tabSize)),a.substr(l)):a[0]==" "?(c.push(s.stringRepeat(this.$tabStrings[" "],l)),a.substr(l)):a},this.$renderWrappedLine=function(c,a,f,l){for(var h=0,d=0,g=f[0],p=0,m=0;m<a.length;m++){var w=a[m],v=w.value;if(m==0&&this.displayIndentGuides){if(h=v.length,v=this.renderIndentGuide(c,v,g),!v)continue;h-=v.length}if(h+v.length<g)p=this.$renderToken(c,p,w,v),h+=v.length;else{for(;h+v.length>=g;)p=this.$renderToken(c,p,w,v.substring(0,g-h)),v=v.substring(g-h),h=g,l||c.push("</div>","<div class='ace_line' style='height:",this.config.lineHeight,"px'>"),c.push(s.stringRepeat("\xA0",f.indent)),d++,p=0,g=f[d]||Number.MAX_VALUE;v.length!=0&&(h+=v.length,p=this.$renderToken(c,p,w,v))}}},this.$renderSimpleLine=function(c,a){var f=0,l=a[0],h=l.value;this.displayIndentGuides&&(h=this.renderIndentGuide(c,h)),h&&(f=this.$renderToken(c,f,l,h));for(var d=1;d<a.length;d++)l=a[d],h=l.value,f=this.$renderToken(c,f,l,h)},this.$renderLine=function(c,a,f,l){if(!l&&l!=!1&&(l=this.session.getFoldLine(a)),l)var h=this.$getFoldLineTokens(a,l);else var h=this.session.getTokens(a);if(f||c.push("<div class='ace_line' style='height:",this.config.lineHeight*(this.$useLineGroups()?1:this.session.getRowLength(a)),"px'>"),h.length){var d=this.session.getRowSplitData(a);d&&d.length?this.$renderWrappedLine(c,h,d,f):this.$renderSimpleLine(c,h)}this.showInvisibles&&(l&&(a=l.end.row),c.push("<span class='ace_invisible ace_invisible_eol'>",a==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"</span>")),f||c.push("</div>")},this.$getFoldLineTokens=function(c,a){var f=this.session,l=[];function h(g,p,m){for(var w=0,v=0;v+g[w].value.length<p;)if(v+=g[w].value.length,w++,w==g.length)return;if(v!=p){var A=g[w].value.substring(p-v);A.length>m-p&&(A=A.substring(0,m-p)),l.push({type:g[w].type,value:A}),v=p+A.length,w+=1}for(;v<m&&w<g.length;){var A=g[w].value;A.length+v>m?l.push({type:g[w].type,value:A.substring(0,m-v)}):l.push(g[w]),v+=A.length,w+=1}}var d=f.getTokens(c);return a.walk(function(g,p,m,w,v){g!=null?l.push({type:"fold",value:g}):(v&&(d=f.getTokens(p)),d.length&&h(d,w,m))},a.end.row,this.session.getLine(a.end.row).length),l},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(o.prototype),t.Text=o});ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,n){var i=e("../lib/dom"),r,s=function(u){this.element=i.createElement("div"),this.element.className="ace_layer ace_cursor-layer",u.appendChild(this.element),r===void 0&&(r=!("opacity"in this.element.style)),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),i.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=(r?this.$updateVisibility:this.$updateOpacity).bind(this)};(function(){this.$updateVisibility=function(u){for(var o=this.cursors,c=o.length;c--;)o[c].style.visibility=u?"":"hidden"},this.$updateOpacity=function(u){for(var o=this.cursors,c=o.length;c--;)o[c].style.opacity=u?"":"0"},this.$padding=0,this.setPadding=function(u){this.$padding=u},this.setSession=function(u){this.session=u},this.setBlinking=function(u){u!=this.isBlinking&&(this.isBlinking=u,this.restartTimer())},this.setBlinkInterval=function(u){u!=this.blinkInterval&&(this.blinkInterval=u,this.restartTimer())},this.setSmoothBlinking=function(u){u!=this.smoothBlinking&&!r&&(this.smoothBlinking=u,i.setCssClass(this.element,"ace_smooth-blinking",u),this.$updateCursors(!0),this.$updateCursors=this.$updateOpacity.bind(this),this.restartTimer())},this.addCursor=function(){var u=i.createElement("div");return u.className="ace_cursor",this.element.appendChild(u),this.cursors.push(u),u},this.removeCursor=function(){if(this.cursors.length>1){var u=this.cursors.pop();return u.parentNode.removeChild(u),u}},this.hideCursor=function(){this.isVisible=!1,i.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,i.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var u=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&i.removeCssClass(this.element,"ace_smooth-blinking"),u(!0),!(!this.isBlinking||!this.blinkInterval||!this.isVisible)){this.smoothBlinking&&setTimeout(function(){i.addCssClass(this.element,"ace_smooth-blinking")}.bind(this));var o=function(){this.timeoutId=setTimeout(function(){u(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){u(!0),o()},this.blinkInterval),o()}},this.getPixelPosition=function(u,o){if(!this.config||!this.session)return{left:0,top:0};u||(u=this.session.selection.getCursor());var c=this.session.documentToScreenPosition(u),a=this.$padding+(this.session.$bidiHandler.isBidiRow(c.row,u.row)?this.session.$bidiHandler.getPosLeft(c.column):c.column*this.config.characterWidth),f=(c.row-(o?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:a,top:f}},this.update=function(u){this.config=u;var o=this.session.$selectionMarkers,c=0,a=0;(o===void 0||o.length===0)&&(o=[{cursor:null}]);for(var c=0,f=o.length;c<f;c++){var l=this.getPixelPosition(o[c].cursor,!0);if(!((l.top>u.height+u.offset||l.top<0)&&c>1)){var h=(this.cursors[a++]||this.addCursor()).style;this.drawCursor?this.drawCursor(h,l,u,o[c],this.session):(h.left=l.left+"px",h.top=l.top+"px",h.width=u.characterWidth+"px",h.height=u.lineHeight+"px")}}for(;this.cursors.length>a;)this.removeCursor();var d=this.session.getOverwrite();this.$setOverwrite(d),this.$pixelPos=l,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(u){u!=this.overwrite&&(this.overwrite=u,u?i.addCssClass(this.element,"ace_overwrite-cursors"):i.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(s.prototype),t.Cursor=s});ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,n){var i=e("./lib/oop"),r=e("./lib/dom"),s=e("./lib/event"),u=e("./lib/event_emitter").EventEmitter,o=32768,c=function(l){this.element=r.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=r.createElement("div"),this.inner.className="ace_scrollbar-inner",this.element.appendChild(this.inner),l.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,s.addListener(this.element,"scroll",this.onScroll.bind(this)),s.addListener(this.element,"mousedown",s.preventDefault)};(function(){i.implement(this,u),this.setVisible=function(l){this.element.style.display=l?"":"none",this.isVisible=l,this.coeff=1}}).call(c.prototype);var a=function(l,h){c.call(this,l),this.scrollTop=0,this.scrollHeight=0,h.$scrollbarWidth=this.width=r.scrollbarWidth(l.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px",this.$minWidth=0};i.inherits(a,c),function(){this.classSuffix="-v",this.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,this.coeff!=1){var l=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-l)/(this.coeff-l)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},this.setHeight=function(l){this.element.style.height=l+"px"},this.setInnerHeight=this.setScrollHeight=function(l){this.scrollHeight=l,l>o?(this.coeff=o/l,l=o):this.coeff!=1&&(this.coeff=1),this.inner.style.height=l+"px"},this.setScrollTop=function(l){this.scrollTop!=l&&(this.skipEvent=!0,this.scrollTop=l,this.element.scrollTop=l*this.coeff)}}.call(a.prototype);var f=function(l,h){c.call(this,l),this.scrollLeft=0,this.height=h.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};i.inherits(f,c),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(l){this.element.style.width=l+"px"},this.setInnerWidth=function(l){this.inner.style.width=l+"px"},this.setScrollWidth=function(l){this.inner.style.width=l+"px"},this.setScrollLeft=function(l){this.scrollLeft!=l&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=l)}}.call(f.prototype),t.ScrollBar=a,t.ScrollBarV=a,t.ScrollBarH=f,t.VScrollBar=a,t.HScrollBar=f});ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t,n){var i=e("./lib/event"),r=function(s,u){this.onRender=s,this.pending=!1,this.changes=0,this.window=u||window};(function(){this.schedule=function(s){if(this.changes=this.changes|s,!this.pending&&this.changes){this.pending=!0;var u=this;i.nextFrame(function(){u.pending=!1;for(var o;o=u.changes;)u.changes=0,u.onRender(o)},this.window)}}}).call(r.prototype),t.RenderLoop=r});ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,n){var i=e("../lib/oop"),r=e("../lib/dom"),s=e("../lib/lang"),u=e("../lib/useragent"),o=e("../lib/event_emitter").EventEmitter,c=0,a=t.FontMetrics=function(f){this.el=r.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=r.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=r.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),f.appendChild(this.el),c||this.$testFractionalRect(),this.$measureNode.innerHTML=s.stringRepeat("X",c),this.$characterSize={width:0,height:0},this.checkForSizeChanges()};(function(){i.implement(this,o),this.$characterSize={width:0,height:0},this.$testFractionalRect=function(){var f=r.createElement("div");this.$setMeasureNodeStyles(f.style),f.style.width="0.2px",document.documentElement.appendChild(f);var l=f.getBoundingClientRect().width;l>0&&l<1?c=50:c=100,f.parentNode.removeChild(f)},this.$setMeasureNodeStyles=function(f,l){f.width=f.height="auto",f.left=f.top="0px",f.visibility="hidden",f.position="absolute",f.whiteSpace="pre",u.isIE<8?f["font-family"]="inherit":f.font="inherit",f.overflow=l?"hidden":"visible"},this.checkForSizeChanges=function(){var f=this.$measureSizes();if(f&&(this.$characterSize.width!==f.width||this.$characterSize.height!==f.height)){this.$measureNode.style.fontWeight="bold";var l=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=f,this.charSizes=Object.create(null),this.allowBoldFonts=l&&l.width===f.width&&l.height===f.height,this._emit("changeCharacterSize",{data:f})}},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer)return this.$pollSizeChangesTimer;var f=this;return this.$pollSizeChangesTimer=setInterval(function(){f.checkForSizeChanges()},500)},this.setPolling=function(f){f?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(){if(c===50){var f=null;try{f=this.$measureNode.getBoundingClientRect()}catch{f={width:0,height:0}}var l={height:f.height,width:f.width/c}}else var l={height:this.$measureNode.clientHeight,width:this.$measureNode.clientWidth/c};return l.width===0||l.height===0?null:l},this.$measureCharWidth=function(f){this.$main.innerHTML=s.stringRepeat(f,c);var l=this.$main.getBoundingClientRect();return l.width/c},this.getCharacterWidth=function(f){var l=this.charSizes[f];return l===void 0&&(l=this.charSizes[f]=this.$measureCharWidth(f)/this.$characterSize.width),l},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)}}).call(a.prototype)});ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/lib/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter"],function(e,t,n){var i=e("./lib/oop"),r=e("./lib/dom"),s=e("./config"),u=e("./lib/useragent"),o=e("./layer/gutter").Gutter,c=e("./layer/marker").Marker,a=e("./layer/text").Text,f=e("./layer/cursor").Cursor,l=e("./scrollbar").HScrollBar,h=e("./scrollbar").VScrollBar,d=e("./renderloop").RenderLoop,g=e("./layer/font_metrics").FontMetrics,p=e("./lib/event_emitter").EventEmitter,m=`.ace_editor {position: relative;overflow: hidden;font: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;direction: ltr;text-align: left;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);}.ace_scroller {position: absolute;overflow: hidden;top: 0;bottom: 0;background-color: inherit;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;cursor: text;}.ace_content {position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;min-width: 100%;}.ace_dragging .ace_scroller:before{position: absolute;top: 0;left: 0;right: 0;bottom: 0;content: '';background: rgba(250, 250, 250, 0.01);z-index: 1000;}.ace_dragging.ace_dark .ace_scroller:before{background: rgba(0, 0, 0, 0.01);}.ace_selecting, .ace_selecting * {cursor: text !important;}.ace_gutter {position: absolute;overflow : hidden;width: auto;top: 0;bottom: 0;left: 0;cursor: default;z-index: 4;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;}.ace_gutter-active-line {position: absolute;left: 0;right: 0;}.ace_scroller.ace_scroll-left {box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;}.ace_gutter-cell {padding-left: 19px;padding-right: 6px;background-repeat: no-repeat;}.ace_gutter-cell.ace_error {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: 2px center;}.ace_gutter-cell.ace_warning {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");background-position: 2px center;}.ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");background-position: 2px center;}.ace_dark .ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");}.ace_scrollbar {position: absolute;right: 0;bottom: 0;z-index: 6;}.ace_scrollbar-inner {position: absolute;cursor: text;left: 0;top: 0;}.ace_scrollbar-v{overflow-x: hidden;overflow-y: scroll;top: 0;}.ace_scrollbar-h {overflow-x: scroll;overflow-y: hidden;left: 0;}.ace_print-margin {position: absolute;height: 100%;}.ace_text-input {position: absolute;z-index: 0;width: 0.5em;height: 1em;opacity: 0;background: transparent;-moz-appearance: none;appearance: none;border: none;resize: none;outline: none;overflow: hidden;font: inherit;padding: 0 1px;margin: 0 -1px;text-indent: -1em;-ms-user-select: text;-moz-user-select: text;-webkit-user-select: text;user-select: text;white-space: pre!important;}.ace_text-input.ace_composition {background: inherit;color: inherit;z-index: 1000;opacity: 1;text-indent: 0;}.ace_layer {z-index: 1;position: absolute;overflow: hidden;word-wrap: normal;white-space: pre;height: 100%;width: 100%;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;pointer-events: none;}.ace_gutter-layer {position: relative;width: auto;text-align: right;pointer-events: auto;}.ace_text-layer {font: inherit !important;}.ace_cjk {display: inline-block;text-align: center;}.ace_cursor-layer {z-index: 4;}.ace_cursor {z-index: 4;position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;border-left: 2px solid;transform: translatez(0);}.ace_multiselect .ace_cursor {border-left-width: 1px;}.ace_slim-cursors .ace_cursor {border-left-width: 1px;}.ace_overwrite-cursors .ace_cursor {border-left-width: 0;border-bottom: 1px solid;}.ace_hidden-cursors .ace_cursor {opacity: 0.2;}.ace_smooth-blinking .ace_cursor {-webkit-transition: opacity 0.18s;transition: opacity 0.18s;}.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {position: absolute;z-index: 3;}.ace_marker-layer .ace_selection {position: absolute;z-index: 5;}.ace_marker-layer .ace_bracket {position: absolute;z-index: 6;}.ace_marker-layer .ace_active-line {position: absolute;z-index: 2;}.ace_marker-layer .ace_selected-word {position: absolute;z-index: 4;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;}.ace_line .ace_fold {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;display: inline-block;height: 11px;margin-top: -2px;vertical-align: middle;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");background-repeat: no-repeat, repeat-x;background-position: center center, top left;color: transparent;border: 1px solid black;border-radius: 2px;cursor: pointer;pointer-events: auto;}.ace_dark .ace_fold {}.ace_fold:hover{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");}.ace_tooltip {background-color: #FFF;background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));border: 1px solid gray;border-radius: 1px;box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);color: black;max-width: 100%;padding: 3px 4px;position: fixed;z-index: 999999;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;cursor: default;white-space: pre;word-wrap: break-word;line-height: normal;font-style: normal;font-weight: normal;letter-spacing: normal;pointer-events: none;}.ace_folding-enabled > .ace_gutter-cell {padding-right: 13px;}.ace_fold-widget {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0 -12px 0 1px;display: none;width: 11px;vertical-align: top;background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: center;border-radius: 3px;border: 1px solid transparent;cursor: pointer;}.ace_folding-enabled .ace_fold-widget {display: inline-block; }.ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");}.ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");}.ace_fold-widget:hover {border: 1px solid rgba(0, 0, 0, 0.3);background-color: rgba(255, 255, 255, 0.2);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);}.ace_fold-widget:active {border: 1px solid rgba(0, 0, 0, 0.4);background-color: rgba(0, 0, 0, 0.05);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);}.ace_dark .ace_fold-widget {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");}.ace_dark .ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget:hover {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);background-color: rgba(255, 255, 255, 0.1);}.ace_dark .ace_fold-widget:active {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);}.ace_fold-widget.ace_invalid {background-color: #FFB4B4;border-color: #DE5555;}.ace_fade-fold-widgets .ace_fold-widget {-webkit-transition: opacity 0.4s ease 0.05s;transition: opacity 0.4s ease 0.05s;opacity: 0;}.ace_fade-fold-widgets:hover .ace_fold-widget {-webkit-transition: opacity 0.05s ease 0.05s;transition: opacity 0.05s ease 0.05s;opacity:1;}.ace_underline {text-decoration: underline;}.ace_bold {font-weight: bold;}.ace_nobold .ace_bold {font-weight: normal;}.ace_italic {font-style: italic;}.ace_error-marker {background-color: rgba(255, 0, 0,0.2);position: absolute;z-index: 9;}.ace_highlight-marker {background-color: rgba(255, 255, 0,0.2);position: absolute;z-index: 8;}.ace_br1 {border-top-left-radius : 3px;}.ace_br2 {border-top-right-radius : 3px;}.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}.ace_br4 {border-bottom-right-radius: 3px;}.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}.ace_br8 {border-bottom-left-radius : 3px;}.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_text-input-ios {position: absolute !important;top: -100000px !important;left: -100000px !important;}`;r.importCssString(m,"ace_editor.css");var w=function(v,A){var _=this;this.container=v||r.createElement("div"),this.$keepTextAreaAtCursor=!u.isOldIE,r.addCssClass(this.container,"ace_editor"),this.setTheme(A),this.$gutter=r.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=r.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=r.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new o(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new c(this.content);var E=this.$textLayer=new a(this.content);this.canvas=E.element,this.$markerFront=new c(this.content),this.$cursorLayer=new f(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new h(this.container,this),this.scrollBarH=new l(this.container,this),this.scrollBarV.addEventListener("scroll",function(b){_.$scrollAnimation||_.session.setScrollTop(b.data-_.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(b){_.$scrollAnimation||_.session.setScrollLeft(b.data-_.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new g(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.addEventListener("changeCharacterSize",function(b){_.updateCharacterSize(),_.onResize(!0,_.gutterWidth,_.$size.width,_.$size.height),_._signal("changeCharacterSize",b)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$loop=new d(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),s.resetOptions(this),s._emit("renderer",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,i.implement(this,p),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin()},this.setSession=function(v){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=v,v&&this.scrollMargin.top&&v.getScrollTop()<=0&&v.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(v),this.$markerBack.setSession(v),this.$markerFront.setSession(v),this.$gutterLayer.setSession(v),this.$textLayer.setSession(v),v&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},this.updateLines=function(v,A,_){if(A===void 0&&(A=1/0),this.$changedLines?(this.$changedLines.firstRow>v&&(this.$changedLines.firstRow=v),this.$changedLines.lastRow<A&&(this.$changedLines.lastRow=A)):this.$changedLines={firstRow:v,lastRow:A},this.$changedLines.lastRow<this.layerConfig.firstRow)if(_)this.$changedLines.lastRow=this.layerConfig.lastRow;else return;this.$changedLines.firstRow>this.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(v){v?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(v,A,_,E){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=v?1:0;var b=this.container;E||(E=b.clientHeight||b.scrollHeight),_||(_=b.clientWidth||b.scrollWidth);var x=this.$updateCachedSize(v,A,_,E);if(!this.$size.scrollerHeight||!_&&!E)return this.resizing=0;v&&(this.$gutterLayer.$padding=null),v?this.$renderChanges(x|this.$changes,!0):this.$loop.schedule(x|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null}},this.$updateCachedSize=function(v,A,_,E){E-=this.$extraHeight||0;var b=0,x=this.$size,y={width:x.width,height:x.height,scrollerHeight:x.scrollerHeight,scrollerWidth:x.scrollerWidth};return E&&(v||x.height!=E)&&(x.height=E,b|=this.CHANGE_SIZE,x.scrollerHeight=x.height,this.$horizScroll&&(x.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",b=b|this.CHANGE_SCROLL),_&&(v||x.width!=_)&&(b|=this.CHANGE_SIZE,x.width=_,A==null&&(A=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=A,this.scrollBarH.element.style.left=this.scroller.style.left=A+"px",x.scrollerWidth=Math.max(0,_-A-this.scrollBarV.getWidth()),this.scrollBarH.element.style.right=this.scroller.style.right=this.scrollBarV.getWidth()+"px",this.scroller.style.bottom=this.scrollBarH.getHeight()+"px",(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||v)&&(b|=this.CHANGE_FULL)),x.$dirty=!_||!E,b&&this._signal("resize",y),b},this.onGutterResize=function(){var v=this.$showGutter?this.$gutter.offsetWidth:0;v!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,v,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):(this.$computeLayerConfig(),this.$loop.schedule(this.CHANGE_MARKER))},this.adjustWrapLimit=function(){var v=this.$size.scrollerWidth-this.$padding*2,A=Math.floor(v/this.characterWidth);return this.session.adjustWrapLimit(A,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(v){this.setOption("animatedScroll",v)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(v){this.setOption("showInvisibles",v),this.session.$bidiHandler.setShowInvisibles(v)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(v){this.setOption("displayIndentGuides",v)},this.setShowPrintMargin=function(v){this.setOption("showPrintMargin",v)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(v){this.setOption("printMarginColumn",v)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(v){return this.setOption("showGutter",v)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(v){this.setOption("fadeFoldWidgets",v)},this.setHighlightGutterLine=function(v){this.setOption("highlightGutterLine",v)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updateGutterLineHighlight=function(){var v=this.$cursorLayer.$pixelPos,A=this.layerConfig.lineHeight;if(this.session.getUseWrapMode()){var _=this.session.selection.getCursor();_.column=0,v=this.$cursorLayer.getPixelPosition(_,!0),A*=this.session.getRowLength(_.row)}this.$gutterLineHighlight.style.top=v.top-this.layerConfig.offset+"px",this.$gutterLineHighlight.style.height=A+"px"},this.$updatePrintMargin=function(){if(!(!this.$showPrintMargin&&!this.$printMarginEl)){if(!this.$printMarginEl){var v=r.createElement("div");v.className="ace_layer ace_print-margin-layer",this.$printMarginEl=r.createElement("div"),this.$printMarginEl.className="ace_print-margin",v.appendChild(this.$printMarginEl),this.content.insertBefore(v,this.content.firstChild)}var A=this.$printMarginEl.style;A.left=this.characterWidth*this.$printMarginColumn+this.$padding+"px",A.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()}},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(!!this.$keepTextAreaAtCursor){var v=this.layerConfig,A=this.$cursorLayer.$pixelPos.top,_=this.$cursorLayer.$pixelPos.left;A-=v.offset;var E=this.textarea.style,b=this.lineHeight;if(A<0||A>v.height-b){E.top=E.left="0";return}var x=this.characterWidth;if(this.$composition){var y=this.textarea.value.replace(/^\x01+/,"");x*=this.session.$getStringScreenWidth(y)[0]+2,b+=2}_-=this.scrollLeft,_>this.$size.scrollerWidth-x&&(_=this.$size.scrollerWidth-x),_+=this.gutterWidth,E.height=b+"px",E.width=x+"px",E.left=Math.min(_,this.$size.scrollerWidth-x)+"px",E.top=Math.min(A,this.$size.height-b)+"px"}},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},this.getLastFullyVisibleRow=function(){var v=this.layerConfig,A=v.lastRow,_=this.session.documentToScreenRow(A,0)*v.lineHeight;return _-this.session.getScrollTop()>v.height-v.lineHeight?A-1:A},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(v){this.$padding=v,this.$textLayer.setPadding(v),this.$cursorLayer.setPadding(v),this.$markerFront.setPadding(v),this.$markerBack.setPadding(v),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(v,A,_,E){var b=this.scrollMargin;b.top=v|0,b.bottom=A|0,b.right=E|0,b.left=_|0,b.v=b.top+b.bottom,b.h=b.left+b.right,b.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-b.top),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(v){this.setOption("hScrollBarAlwaysVisible",v)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(v){this.setOption("vScrollBarAlwaysVisible",v)},this.$updateScrollBarV=function(){var v=this.layerConfig.maxHeight,A=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(v-=(A-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>v-A&&(v=this.scrollTop+A,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(v+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(v,A){if(this.$changes&&(v|=this.$changes,this.$changes=0),!this.session||!this.container.offsetWidth||this.$frozen||!v&&!A){this.$changes|=v;return}if(this.$size.$dirty)return this.$changes|=v,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender"),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var _=this.layerConfig;if(v&this.CHANGE_FULL||v&this.CHANGE_SIZE||v&this.CHANGE_TEXT||v&this.CHANGE_LINES||v&this.CHANGE_SCROLL||v&this.CHANGE_H_SCROLL){if(v|=this.$computeLayerConfig(),_.firstRow!=this.layerConfig.firstRow&&_.firstRowScreen==this.layerConfig.firstRowScreen){var E=this.scrollTop+(_.firstRow-this.layerConfig.firstRow)*this.lineHeight;E>0&&(this.scrollTop=E,v=v|this.CHANGE_SCROLL,v|=this.$computeLayerConfig())}_=this.layerConfig,this.$updateScrollBarV(),v&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),this.$gutterLayer.element.style.marginTop=-_.offset+"px",this.content.style.marginTop=-_.offset+"px",this.content.style.width=_.width+2*this.$padding+"px",this.content.style.height=_.minHeight+"px"}if(v&this.CHANGE_H_SCROLL&&(this.content.style.marginLeft=-this.scrollLeft+"px",this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left"),v&this.CHANGE_FULL){this.$textLayer.update(_),this.$showGutter&&this.$gutterLayer.update(_),this.$markerBack.update(_),this.$markerFront.update(_),this.$cursorLayer.update(_),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this._signal("afterRender");return}if(v&this.CHANGE_SCROLL){v&this.CHANGE_TEXT||v&this.CHANGE_LINES?this.$textLayer.update(_):this.$textLayer.scrollLines(_),this.$showGutter&&this.$gutterLayer.update(_),this.$markerBack.update(_),this.$markerFront.update(_),this.$cursorLayer.update(_),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this.$moveTextAreaToCursor(),this._signal("afterRender");return}v&this.CHANGE_TEXT?(this.$textLayer.update(_),this.$showGutter&&this.$gutterLayer.update(_)):v&this.CHANGE_LINES?(this.$updateLines()||v&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(_):(v&this.CHANGE_TEXT||v&this.CHANGE_GUTTER)&&this.$showGutter&&this.$gutterLayer.update(_),v&this.CHANGE_CURSOR&&(this.$cursorLayer.update(_),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),v&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(_),v&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(_),this._signal("afterRender")},this.$autosize=function(){var v=this.session.getScreenLength()*this.lineHeight,A=this.$maxLines*this.lineHeight,_=Math.min(A,Math.max((this.$minLines||1)*this.lineHeight,v))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(_+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&_>this.$maxPixelHeight&&(_=this.$maxPixelHeight);var E=v>A;if(_!=this.desiredHeight||this.$size.height!=this.desiredHeight||E!=this.$vScroll){E!=this.$vScroll&&(this.$vScroll=E,this.scrollBarV.setVisible(E));var b=this.container.clientWidth;this.container.style.height=_+"px",this.$updateCachedSize(!0,this.$gutterWidth,b,_),this.desiredHeight=_,this._signal("autosize")}},this.$computeLayerConfig=function(){var v=this.session,A=this.$size,_=A.height<=2*this.lineHeight,E=this.session.getScreenLength(),b=E*this.lineHeight,x=this.$getLongestLine(),y=!_&&(this.$hScrollBarAlwaysVisible||A.scrollerWidth-x-2*this.$padding<0),C=this.$horizScroll!==y;C&&(this.$horizScroll=y,this.scrollBarH.setVisible(y));var B=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var T=this.scrollTop%this.lineHeight,M=A.scrollerHeight+this.lineHeight,R=!this.$maxLines&&this.$scrollPastEnd?(A.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;b+=R;var I=this.scrollMargin;this.session.setScrollTop(Math.max(-I.top,Math.min(this.scrollTop,b-A.scrollerHeight+I.bottom))),this.session.setScrollLeft(Math.max(-I.left,Math.min(this.scrollLeft,x+2*this.$padding-A.scrollerWidth+I.right)));var H=!_&&(this.$vScrollBarAlwaysVisible||A.scrollerHeight-b+R<0||this.scrollTop>I.top),P=B!==H;P&&(this.$vScroll=H,this.scrollBarV.setVisible(H));var j=Math.ceil(M/this.lineHeight)-1,V=Math.max(0,Math.round((this.scrollTop-T)/this.lineHeight)),K=V+j,N,k,$=this.lineHeight;V=v.screenToDocumentRow(V,0);var z=v.getFoldLine(V);z&&(V=z.start.row),N=v.documentToScreenRow(V,0),k=v.getRowLength(V)*$,K=Math.min(v.screenToDocumentRow(K,0),v.getLength()-1),M=A.scrollerHeight+v.getRowLength(K)*$+k,T=this.scrollTop-N*$;var U=0;return this.layerConfig.width!=x&&(U=this.CHANGE_H_SCROLL),(C||P)&&(U=this.$updateCachedSize(!0,this.gutterWidth,A.width,A.height),this._signal("scrollbarVisibilityChanged"),P&&(x=this.$getLongestLine())),this.layerConfig={width:x,padding:this.$padding,firstRow:V,firstRowScreen:N,lastRow:K,lineHeight:$,characterWidth:this.characterWidth,minHeight:M,maxHeight:b,offset:T,gutterOffset:$?Math.max(0,Math.ceil((T+A.height-A.scrollerHeight)/$)):0,height:this.$size.scrollerHeight},U},this.$updateLines=function(){if(!!this.$changedLines){var v=this.$changedLines.firstRow,A=this.$changedLines.lastRow;this.$changedLines=null;var _=this.layerConfig;if(!(v>_.lastRow+1)&&!(A<_.firstRow)){if(A===1/0){this.$showGutter&&this.$gutterLayer.update(_),this.$textLayer.update(_);return}return this.$textLayer.updateLines(_,v,A),!0}}},this.$getLongestLine=function(){var v=this.session.getScreenWidth();return this.showInvisibles&&!this.session.$useWrapMode&&(v+=1),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(v*this.characterWidth))},this.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},this.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},this.addGutterDecoration=function(v,A){this.$gutterLayer.addGutterDecoration(v,A)},this.removeGutterDecoration=function(v,A){this.$gutterLayer.removeGutterDecoration(v,A)},this.updateBreakpoints=function(v){this.$loop.schedule(this.CHANGE_GUTTER)},this.setAnnotations=function(v){this.$gutterLayer.setAnnotations(v),this.$loop.schedule(this.CHANGE_GUTTER)},this.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},this.hideCursor=function(){this.$cursorLayer.hideCursor()},this.showCursor=function(){this.$cursorLayer.showCursor()},this.scrollSelectionIntoView=function(v,A,_){this.scrollCursorIntoView(v,_),this.scrollCursorIntoView(A,_)},this.scrollCursorIntoView=function(v,A,_){if(this.$size.scrollerHeight!==0){var E=this.$cursorLayer.getPixelPosition(v),b=E.left,x=E.top,y=_&&_.top||0,C=_&&_.bottom||0,B=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;B+y>x?(A&&B+y>x+this.lineHeight&&(x-=A*this.$size.scrollerHeight),x===0&&(x=-this.scrollMargin.top),this.session.setScrollTop(x)):B+this.$size.scrollerHeight-C<x+this.lineHeight&&(A&&B+this.$size.scrollerHeight-C<x-this.lineHeight&&(x+=A*this.$size.scrollerHeight),this.session.setScrollTop(x+this.lineHeight-this.$size.scrollerHeight));var T=this.scrollLeft;T>b?(b<this.$padding+2*this.layerConfig.characterWidth&&(b=-this.scrollMargin.left),this.session.setScrollLeft(b)):T+this.$size.scrollerWidth<b+this.characterWidth?this.session.setScrollLeft(Math.round(b+this.characterWidth-this.$size.scrollerWidth)):T<=this.$padding&&b-T<this.characterWidth&&this.session.setScrollLeft(0)}},this.getScrollTop=function(){return this.session.getScrollTop()},this.getScrollLeft=function(){return this.session.getScrollLeft()},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},this.scrollToRow=function(v){this.session.setScrollTop(v*this.lineHeight)},this.alignCursor=function(v,A){typeof v=="number"&&(v={row:v,column:0});var _=this.$cursorLayer.getPixelPosition(v),E=this.$size.scrollerHeight-this.lineHeight,b=_.top-E*(A||0);return this.session.setScrollTop(b),b},this.STEPS=8,this.$calcSteps=function(v,A){var _=0,E=this.STEPS,b=[],x=function(y,C,B){return B*(Math.pow(y-1,3)+1)+C};for(_=0;_<E;++_)b.push(x(_/this.STEPS,v,A-v));return b},this.scrollToLine=function(v,A,_,E){var b=this.$cursorLayer.getPixelPosition({row:v,column:0}),x=b.top;A&&(x-=this.$size.scrollerHeight/2);var y=this.scrollTop;this.session.setScrollTop(x),_!==!1&&this.animateScrolling(y,E)},this.animateScrolling=function(v,A){var _=this.scrollTop;if(!!this.$animatedScroll){var E=this;if(v!=_){if(this.$scrollAnimation){var b=this.$scrollAnimation.steps;if(b.length&&(v=b[0],v==_))return}var x=E.$calcSteps(v,_);this.$scrollAnimation={from:v,to:_,steps:x},clearInterval(this.$timer),E.session.setScrollTop(x.shift()),E.session.$scrollTop=_,this.$timer=setInterval(function(){x.length?(E.session.setScrollTop(x.shift()),E.session.$scrollTop=_):_!=null?(E.session.$scrollTop=-1,E.session.setScrollTop(_),_=null):(E.$timer=clearInterval(E.$timer),E.$scrollAnimation=null,A&&A())},10)}}},this.scrollToY=function(v){this.scrollTop!==v&&(this.$loop.schedule(this.CHANGE_SCROLL),this.scrollTop=v)},this.scrollToX=function(v){this.scrollLeft!==v&&(this.scrollLeft=v),this.$loop.schedule(this.CHANGE_H_SCROLL)},this.scrollTo=function(v,A){this.session.setScrollTop(A),this.session.setScrollLeft(A)},this.scrollBy=function(v,A){A&&this.session.setScrollTop(this.session.getScrollTop()+A),v&&this.session.setScrollLeft(this.session.getScrollLeft()+v)},this.isScrollableBy=function(v,A){if(A<0&&this.session.getScrollTop()>=1-this.scrollMargin.top||A>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||v<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||v>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},this.pixelToScreenCoordinates=function(v,A){var _=this.scroller.getBoundingClientRect(),E=v+this.scrollLeft-_.left-this.$padding,b=E/this.characterWidth,x=Math.floor((A+this.scrollTop-_.top)/this.lineHeight),y=Math.round(b);return{row:x,column:y,side:b-y>0?1:-1,offsetX:E}},this.screenToTextCoordinates=function(v,A){var _=this.scroller.getBoundingClientRect(),E=v+this.scrollLeft-_.left-this.$padding,b=Math.round(E/this.characterWidth),x=(A+this.scrollTop-_.top)/this.lineHeight;return this.session.screenToDocumentPosition(x,Math.max(b,0),E)},this.textToScreenCoordinates=function(v,A){var _=this.scroller.getBoundingClientRect(),E=this.session.documentToScreenPosition(v,A),b=this.$padding+(this.session.$bidiHandler.isBidiRow(E.row,v)?this.session.$bidiHandler.getPosLeft(E.column):Math.round(E.column*this.characterWidth)),x=E.row*this.lineHeight;return{pageX:_.left+b-this.scrollLeft,pageY:_.top+x-this.scrollTop}},this.visualizeFocus=function(){r.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){r.removeCssClass(this.container,"ace_focus")},this.showComposition=function(v){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,r.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor()},this.setCompositionText=function(v){this.$moveTextAreaToCursor()},this.hideComposition=function(){!this.$composition||(r.removeCssClass(this.textarea,"ace_composition"),this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor,this.textarea.style.cssText=this.$composition.cssText,this.$composition=null)},this.setTheme=function(v,A){var _=this;if(this.$themeId=v,_._dispatchEvent("themeChange",{theme:v}),!v||typeof v=="string"){var E=v||this.$options.theme.initialValue;s.loadModule(["theme",E],b)}else b(v);function b(x){if(_.$themeId!=v)return A&&A();if(!x||!x.cssClass)throw new Error("couldn't load module "+v+" or it didn't call define");r.importCssString(x.cssText,x.cssClass,_.container.ownerDocument),_.theme&&r.removeCssClass(_.container,_.theme.cssClass);var y="padding"in x?x.padding:"padding"in(_.theme||{})?4:_.$padding;_.$padding&&y!=_.$padding&&_.setPadding(y),_.$theme=x.cssClass,_.theme=x,r.addCssClass(_.container,x.cssClass),r.setCssClass(_.container,"ace_dark",x.isDark),_.$size&&(_.$size.width=0,_.$updateSizeAsync()),_._dispatchEvent("themeLoaded",{theme:x}),A&&A()}},this.getTheme=function(){return this.$themeId},this.setStyle=function(v,A){r.setCssClass(this.container,v,A!==!1)},this.unsetStyle=function(v){r.removeCssClass(this.container,v)},this.setCursorStyle=function(v){this.scroller.style.cursor!=v&&(this.scroller.style.cursor=v)},this.setMouseCursor=function(v){this.scroller.style.cursor=v},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(w.prototype),s.defineOptions(w.prototype,"renderer",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(v){this.$textLayer.setShowInvisibles(v)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(v){typeof v=="number"&&(this.$printMarginColumn=v),this.$showPrintMargin=!!v,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(v){this.$gutter.style.display=v?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(v){r.setCssClass(this.$gutter,"ace_fade-fold-widgets",v)},initialValue:!1},showFoldWidgets:{set:function(v){this.$gutterLayer.setShowFoldWidgets(v)},initialValue:!0},showLineNumbers:{set:function(v){this.$gutterLayer.setShowLineNumbers(v),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(v){this.$textLayer.setDisplayIndentGuides(v)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(v){if(!this.$gutterLineHighlight){this.$gutterLineHighlight=r.createElement("div"),this.$gutterLineHighlight.className="ace_gutter-active-line",this.$gutter.appendChild(this.$gutterLineHighlight);return}this.$gutterLineHighlight.style.display=v?"":"none",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight()},initialValue:!1,value:!0},hScrollBarAlwaysVisible:{set:function(v){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(v){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(v){typeof v=="number"&&(v=v+"px"),this.container.style.fontSize=v,this.updateFontSize()},initialValue:12},fontFamily:{set:function(v){this.container.style.fontFamily=v,this.updateFontSize()}},maxLines:{set:function(v){this.updateFull()}},minLines:{set:function(v){this.updateFull()}},maxPixelHeight:{set:function(v){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(v){v=+v||0,this.$scrollPastEnd!=v&&(this.$scrollPastEnd=v,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(v){this.$gutterLayer.$fixedWidth=!!v,this.$loop.schedule(this.CHANGE_GUTTER)}},theme:{set:function(v){this.setTheme(v)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0}}),t.VirtualRenderer=w});ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(e,t,n){var i=e("../lib/oop"),r=e("../lib/net"),s=e("../lib/event_emitter").EventEmitter,u=e("../config");function o(l,h){var d=h.src;""+r.qualifyURL(l);try{return new Blob([d],{type:"application/javascript"})}catch{var g=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,p=new g;return p.append(d),p.getBlob("application/javascript")}}function c(l,h){var d=o(l,h),g=window.URL||window.webkitURL,p=g.createObjectURL(d);return new Worker(p)}var a=function(l,h,d,g,p){if(this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl),u.get("packaged")||!e.toUrl)g=g||u.moduleUrl(h.id,"worker");else{var m=this.$normalizePath;g=g||m(e.toUrl("ace/worker/worker.js",null,"_"));var w={};l.forEach(function(v){w[v]=m(e.toUrl(v,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}this.$worker=c(g,h),p&&this.send("importScripts",p),this.$worker.postMessage({init:!0,tlns:w,module:h.id,classname:d}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){i.implement(this,s),this.onMessage=function(l){var h=l.data;switch(h.type){case"event":this._signal(h.name,{data:h.data});break;case"call":var d=this.callbacks[h.id];d&&(d(h.data),delete this.callbacks[h.id]);break;case"error":this.reportError(h.data);break;case"log":window.console&&console.log&&console.log.apply(console,h.data);break}},this.reportError=function(l){window.console&&console.error&&console.error(l)},this.$normalizePath=function(l){return r.qualifyURL(l)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(l,h){this.$worker.postMessage({command:l,args:h})},this.call=function(l,h,d){if(d){var g=this.callbackId++;this.callbacks[g]=d,h.push(g)}this.send(l,h)},this.emit=function(l,h){try{this.$worker.postMessage({event:l,data:{data:h.data}})}catch(d){console.error(d.stack)}},this.attachToDocument=function(l){this.$doc&&this.terminate(),this.$doc=l,this.call("setValue",[l.getValue()]),l.on("change",this.changeListener)},this.changeListener=function(l){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),l.action=="insert"?this.deltaQueue.push(l.start,l.lines):this.deltaQueue.push(l.start,l.end)},this.$sendDeltaQueue=function(){var l=this.deltaQueue;!l||(this.deltaQueue=null,l.length>50&&l.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:l}))}}).call(a.prototype);var f=function(l,h,d){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var g=null,p=!1,m=Object.create(s),w=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(A){w.messageBuffer.push(A),g&&(p?setTimeout(v):v())},this.setEmitSync=function(A){p=A};var v=function(){var A=w.messageBuffer.shift();A.command?g[A.command].apply(g,A.args):A.event&&m._signal(A.event,A.data)};m.postMessage=function(A){w.onMessage({data:A})},m.callback=function(A,_){this.postMessage({type:"call",id:_,data:A})},m.emit=function(A,_){this.postMessage({type:"event",name:A,data:_})},u.loadModule(["worker",h],function(A){for(g=new A[d](m);w.messageBuffer.length;)v()})};f.prototype=a.prototype,t.UIWorkerClient=f,t.WorkerClient=a,t.createWorker=c});ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t,n){var i=e("./range").Range,r=e("./lib/event_emitter").EventEmitter,s=e("./lib/oop"),u=function(o,c,a,f,l,h){var d=this;this.length=c,this.session=o,this.doc=o.getDocument(),this.mainClass=l,this.othersClass=h,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=f,this.$onCursorChange=function(){setTimeout(function(){d.onCursorChange()})},this.$pos=a;var g=o.getUndoManager().$undoStack||o.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=g.length,this.setup(),o.selection.on("changeCursor",this.$onCursorChange)};(function(){s.implement(this,r),this.setup=function(){var o=this,c=this.doc,a=this.session;this.selectionBefore=a.selection.toJSON(),a.selection.inMultiSelectMode&&a.selection.toSingleRange(),this.pos=c.createAnchor(this.$pos.row,this.$pos.column);var f=this.pos;f.$insertRight=!0,f.detach(),f.markerId=a.addMarker(new i(f.row,f.column,f.row,f.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(l){var h=c.createAnchor(l.row,l.column);h.$insertRight=!0,h.detach(),o.others.push(h)}),a.setUndoSelect(!1)},this.showOtherMarkers=function(){if(!this.othersActive){var o=this.session,c=this;this.othersActive=!0,this.others.forEach(function(a){a.markerId=o.addMarker(new i(a.row,a.column,a.row,a.column+c.length),c.othersClass,null,!1)})}},this.hideOtherMarkers=function(){if(!!this.othersActive){this.othersActive=!1;for(var o=0;o<this.others.length;o++)this.session.removeMarker(this.others[o].markerId)}},this.onUpdate=function(o){if(this.$updating)return this.updateAnchors(o);var c=o;if(c.start.row===c.end.row&&c.start.row===this.pos.row){this.$updating=!0;var a=o.action==="insert"?c.end.column-c.start.column:c.start.column-c.end.column,f=c.start.column>=this.pos.column&&c.start.column<=this.pos.column+this.length+1,l=c.start.column-this.pos.column;if(this.updateAnchors(o),f&&(this.length+=a),f&&!this.session.$fromUndo){if(o.action==="insert")for(var h=this.others.length-1;h>=0;h--){var d=this.others[h],g={row:d.row,column:d.column+l};this.doc.insertMergedLines(g,o.lines)}else if(o.action==="remove")for(var h=this.others.length-1;h>=0;h--){var d=this.others[h],g={row:d.row,column:d.column+l};this.doc.remove(new i(g.row,g.column,g.row,g.column-a))}}this.$updating=!1,this.updateMarkers()}},this.updateAnchors=function(o){this.pos.onChange(o);for(var c=this.others.length;c--;)this.others[c].onChange(o);this.updateMarkers()},this.updateMarkers=function(){if(!this.$updating){var o=this,c=this.session,a=function(l,h){c.removeMarker(l.markerId),l.markerId=c.addMarker(new i(l.row,l.column,l.row,l.column+o.length),h,null,!1)};a(this.pos,this.mainClass);for(var f=this.others.length;f--;)a(this.others[f],this.othersClass)}},this.onCursorChange=function(o){if(!(this.$updating||!this.session)){var c=this.session.selection.getCursor();c.row===this.pos.row&&c.column>=this.pos.column&&c.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",o)):(this.hideOtherMarkers(),this._emit("cursorLeave",o))}},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(this.$undoStackDepth!==-1){for(var o=this.session.getUndoManager(),c=(o.$undoStack||o.$undostack).length-this.$undoStackDepth,a=0;a<c;a++)o.undo(!0);this.selectionBefore&&this.session.selection.fromJSON(this.selectionBefore)}}}).call(u.prototype),t.PlaceHolder=u});ace.define("ace/mouse/multi_select_handler",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,n){var i=e("../lib/event"),r=e("../lib/useragent");function s(o,c){return o.row==c.row&&o.column==c.column}function u(o){var c=o.domEvent,a=c.altKey,f=c.shiftKey,l=c.ctrlKey,h=o.getAccelKey(),d=o.getButton();if(l&&r.isMac&&(d=c.button),o.editor.inMultiSelectMode&&d==2){o.editor.textInput.onContextMenu(o.domEvent);return}if(!l&&!a&&!h){d===0&&o.editor.inMultiSelectMode&&o.editor.exitMultiSelectMode();return}if(d===0){var g=o.editor,p=g.selection,m=g.inMultiSelectMode,w=o.getDocumentPosition(),v=p.getCursor(),A=o.inSelection()||p.isEmpty()&&s(w,v),_=o.x,E=o.y,b=function(K){_=K.clientX,E=K.clientY},x=g.session,y=g.renderer.pixelToScreenCoordinates(_,E),C=y,B;if(g.$mouseHandler.$enableJumpToDef)l&&a||h&&a?B=f?"block":"add":a&&g.$blockSelectEnabled&&(B="block");else if(h&&!a){if(B="add",!m&&f)return}else a&&g.$blockSelectEnabled&&(B="block");if(B&&r.isMac&&c.ctrlKey&&g.$mouseHandler.cancelContextMenu(),B=="add"){if(!m&&A)return;if(!m){var T=p.toOrientedRange();g.addSelectionMarker(T)}var M=p.rangeList.rangeAtPoint(w);g.$blockScrolling++,g.inVirtualSelectionMode=!0,f&&(M=null,T=p.ranges[0]||T,g.removeSelectionMarker(T)),g.once("mouseup",function(){var K=p.toOrientedRange();M&&K.isEmpty()&&s(M.cursor,K.cursor)?p.substractPoint(K.cursor):(f?p.substractPoint(T.cursor):T&&(g.removeSelectionMarker(T),p.addRange(T)),p.addRange(K)),g.$blockScrolling--,g.inVirtualSelectionMode=!1})}else if(B=="block"){o.stop(),g.inVirtualSelectionMode=!0;var R,I=[],H=function(){var K=g.renderer.pixelToScreenCoordinates(_,E),N=x.screenToDocumentPosition(K.row,K.column,K.offsetX);s(C,K)&&s(N,p.lead)||(C=K,g.$blockScrolling++,g.selection.moveToPosition(N),g.renderer.scrollCursorIntoView(),g.removeSelectionMarkers(I),I=p.rectangularRangeBlock(C,y),g.$mouseHandler.$clickSelection&&I.length==1&&I[0].isEmpty()&&(I[0]=g.$mouseHandler.$clickSelection.clone()),I.forEach(g.addSelectionMarker,g),g.updateSelectionMarkers(),g.$blockScrolling--)};g.$blockScrolling++,m&&!h?p.toSingleRange():!m&&h&&(R=p.toOrientedRange(),g.addSelectionMarker(R)),f?y=x.documentToScreenPosition(p.lead):p.moveToPosition(w),g.$blockScrolling--,C={row:-1,column:-1};var P=function(K){clearInterval(V),g.removeSelectionMarkers(I),I.length||(I=[p.toOrientedRange()]),g.$blockScrolling++,R&&(g.removeSelectionMarker(R),p.toSingleRange(R));for(var N=0;N<I.length;N++)p.addRange(I[N]);g.inVirtualSelectionMode=!1,g.$mouseHandler.$clickSelection=null,g.$blockScrolling--},j=H;i.capture(g.container,b,P);var V=setInterval(function(){j()},20);return o.preventDefault()}}}t.onMouseDown=u});ace.define("ace/commands/multi_select_commands",["require","exports","module","ace/keyboard/hash_handler"],function(e,t,n){t.defaultCommands=[{name:"addCursorAbove",exec:function(r){r.selectMoreLines(-1)},bindKey:{win:"Ctrl-Alt-Up",mac:"Ctrl-Alt-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelow",exec:function(r){r.selectMoreLines(1)},bindKey:{win:"Ctrl-Alt-Down",mac:"Ctrl-Alt-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorAboveSkipCurrent",exec:function(r){r.selectMoreLines(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Up",mac:"Ctrl-Alt-Shift-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelowSkipCurrent",exec:function(r){r.selectMoreLines(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Down",mac:"Ctrl-Alt-Shift-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreBefore",exec:function(r){r.selectMore(-1)},bindKey:{win:"Ctrl-Alt-Left",mac:"Ctrl-Alt-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreAfter",exec:function(r){r.selectMore(1)},bindKey:{win:"Ctrl-Alt-Right",mac:"Ctrl-Alt-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextBefore",exec:function(r){r.selectMore(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Left",mac:"Ctrl-Alt-Shift-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextAfter",exec:function(r){r.selectMore(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Right",mac:"Ctrl-Alt-Shift-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"splitIntoLines",exec:function(r){r.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"alignCursors",exec:function(r){r.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",exec:function(r){r.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],t.multiSelectCommands=[{name:"singleSelection",bindKey:"esc",exec:function(r){r.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(r){return r&&r.inMultiSelectMode}}];var i=e("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new i(t.multiSelectCommands)});ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],function(e,t,n){var i=e("./range_list").RangeList,r=e("./range").Range,s=e("./selection").Selection,u=e("./mouse/multi_select_handler").onMouseDown,o=e("./lib/event"),c=e("./lib/lang"),a=e("./commands/multi_select_commands");t.commands=a.defaultCommands.concat(a.multiSelectCommands);var f=e("./search").Search,l=new f;function h(v,A,_){return l.$options.wrap=!0,l.$options.needle=A,l.$options.backwards=_==-1,l.find(v)}var d=e("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(d.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(v,A){if(!!v){if(!this.inMultiSelectMode&&this.rangeCount===0){var _=this.toOrientedRange();if(this.rangeList.add(_),this.rangeList.add(v),this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),A||this.fromOrientedRange(v);this.rangeList.removeAll(),this.rangeList.add(_),this.$onAddRange(_)}v.cursor||(v.cursor=v.end);var E=this.rangeList.add(v);return this.$onAddRange(v),E.length&&this.$onRemoveRange(E),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),A||this.fromOrientedRange(v)}},this.toSingleRange=function(v){v=v||this.ranges[0];var A=this.rangeList.removeAll();A.length&&this.$onRemoveRange(A),v&&this.fromOrientedRange(v)},this.substractPoint=function(v){var A=this.rangeList.substractPoint(v);if(A)return this.$onRemoveRange(A),A[0]},this.mergeOverlappingRanges=function(){var v=this.rangeList.merge();v.length?this.$onRemoveRange(v):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(v){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(v),this._signal("addRange",{range:v})},this.$onRemoveRange=function(v){if(this.rangeCount=this.rangeList.ranges.length,this.rangeCount==1&&this.inMultiSelectMode){var A=this.rangeList.ranges.pop();v.push(A),this.rangeCount=0}for(var _=v.length;_--;){var E=this.ranges.indexOf(v[_]);this.ranges.splice(E,1)}this._signal("removeRange",{ranges:v}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),A=A||this.ranges[0],A&&!A.isEqual(this.getRange())&&this.fromOrientedRange(A)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new i,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){if(this.rangeCount>1){var v=this.rangeList.ranges,A=v[v.length-1],_=r.fromPoints(v[0].start,A.end);this.toSingleRange(),this.setSelectionRange(_,A.cursor==A.start)}else{var _=this.getRange(),E=this.isBackwards(),b=_.start.row,x=_.end.row;if(b==x){if(E)var y=_.end,C=_.start;else var y=_.start,C=_.end;this.addRange(r.fromPoints(C,C)),this.addRange(r.fromPoints(y,y));return}var B=[],T=this.getLineRange(b,!0);T.start.column=_.start.column,B.push(T);for(var M=b+1;M<x;M++)B.push(this.getLineRange(M,!0));T=this.getLineRange(x,!0),T.end.column=_.end.column,B.push(T),B.forEach(this.addRange,this)}},this.toggleBlockSelection=function(){if(this.rangeCount>1){var v=this.rangeList.ranges,A=v[v.length-1],_=r.fromPoints(v[0].start,A.end);this.toSingleRange(),this.setSelectionRange(_,A.cursor==A.start)}else{var E=this.session.documentToScreenPosition(this.selectionLead),b=this.session.documentToScreenPosition(this.selectionAnchor),x=this.rectangularRangeBlock(E,b);x.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(v,A,_){var E=[],b=v.column<A.column;if(b)var x=v.column,y=A.column,C=v.offsetX,B=A.offsetX;else var x=A.column,y=v.column,C=A.offsetX,B=v.offsetX;var T=v.row<A.row;if(T)var M=v.row,R=A.row;else var M=A.row,R=v.row;x<0&&(x=0),M<0&&(M=0),M==R&&(_=!0);for(var I=M;I<=R;I++){var H=r.fromPoints(this.session.screenToDocumentPosition(I,x,C),this.session.screenToDocumentPosition(I,y,B));if(H.isEmpty()){if(P&&p(H.end,P))break;var P=H.end}H.cursor=b?H.start:H.end,E.push(H)}if(T&&E.reverse(),!_){for(var j=E.length-1;E[j].isEmpty()&&j>0;)j--;if(j>0)for(var V=0;E[V].isEmpty();)V++;for(var K=j;K>=V;K--)E[K].isEmpty()&&E.splice(K,1)}return E}}.call(s.prototype);var g=e("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(v){v.cursor||(v.cursor=v.end);var A=this.getSelectionStyle();return v.marker=this.session.addMarker(v,"ace_selection",A),this.session.$selectionMarkers.push(v),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,v},this.removeSelectionMarker=function(v){if(!!v.marker){this.session.removeMarker(v.marker);var A=this.session.$selectionMarkers.indexOf(v);A!=-1&&this.session.$selectionMarkers.splice(A,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(v){for(var A=this.session.$selectionMarkers,_=v.length;_--;){var E=v[_];if(!!E.marker){this.session.removeMarker(E.marker);var b=A.indexOf(E);b!=-1&&A.splice(b,1)}}this.session.selectionMarkerCount=A.length},this.$onAddRange=function(v){this.addSelectionMarker(v.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(v){this.removeSelectionMarkers(v.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(v){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(a.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(v){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(a.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(v){var A=v.command,_=v.editor;if(!!_.multiSelect){if(A.multiSelectAction)A.multiSelectAction=="forEach"?E=_.forEachSelection(A,v.args):A.multiSelectAction=="forEachLine"?E=_.forEachSelection(A,v.args,!0):A.multiSelectAction=="single"?(_.exitMultiSelectMode(),E=A.exec(_,v.args||{})):E=A.multiSelectAction(_,v.args||{});else{var E=A.exec(_,v.args||{});_.multiSelect.addRange(_.multiSelect.toOrientedRange()),_.multiSelect.mergeOverlappingRanges()}return E}},this.forEachSelection=function(v,A,_){if(!this.inVirtualSelectionMode){var E=_&&_.keepOrder,b=_==!0||_&&_.$byLines,x=this.session,y=this.selection,C=y.rangeList,B=(E?y:C).ranges,T;if(!B.length)return v.exec?v.exec(this,A||{}):v(this,A||{});var M=y._eventRegistry;y._eventRegistry={};var R=new s(x);this.inVirtualSelectionMode=!0;for(var I=B.length;I--;){if(b)for(;I>0&&B[I].start.row==B[I-1].end.row;)I--;R.fromOrientedRange(B[I]),R.index=I,this.selection=x.selection=R;var H=v.exec?v.exec(this,A||{}):v(this,A||{});!T&&H!==void 0&&(T=H),R.toOrientedRange(B[I])}R.detach(),this.selection=x.selection=y,this.inVirtualSelectionMode=!1,y._eventRegistry=M,y.mergeOverlappingRanges();var P=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),P&&P.from==P.to&&this.renderer.animateScrolling(P.from),T}},this.exitMultiSelectMode=function(){!this.inMultiSelectMode||this.inVirtualSelectionMode||this.multiSelect.toSingleRange()},this.getSelectedText=function(){var v="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var A=this.multiSelect.rangeList.ranges,_=[],E=0;E<A.length;E++)_.push(this.session.getTextRange(A[E]));var b=this.session.getDocument().getNewLineCharacter();v=_.join(b),v.length==(_.length-1)*b.length&&(v="")}else this.selection.isEmpty()||(v=this.session.getTextRange(this.getSelectionRange()));return v},this.$checkMultiselectChange=function(v,A){if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var _=this.multiSelect.ranges[0];if(this.multiSelect.isEmpty()&&A==this.multiSelect.anchor)return;var E=A==this.multiSelect.anchor?_.cursor==_.start?_.end:_.start:_.cursor;(E.row!=A.row||this.session.$clipPositionToDocument(E.row,E.column).column!=A.column)&&this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange())}},this.findAll=function(v,A,_){if(A=A||{},A.needle=v||A.needle,A.needle==null){var E=this.selection.isEmpty()?this.selection.getWordRange():this.selection.getRange();A.needle=this.session.getTextRange(E)}this.$search.set(A);var b=this.$search.findAll(this.session);if(!b.length)return 0;this.$blockScrolling+=1;var x=this.multiSelect;_||x.toSingleRange(b[0]);for(var y=b.length;y--;)x.addRange(b[y],!0);return E&&x.rangeList.rangeAtPoint(E.start)&&x.addRange(E,!0),this.$blockScrolling-=1,b.length},this.selectMoreLines=function(v,A){var _=this.selection.toOrientedRange(),E=_.cursor==_.end,b=this.session.documentToScreenPosition(_.cursor);this.selection.$desiredColumn&&(b.column=this.selection.$desiredColumn);var x=this.session.screenToDocumentPosition(b.row+v,b.column);if(_.isEmpty())var C=x;else var y=this.session.documentToScreenPosition(E?_.end:_.start),C=this.session.screenToDocumentPosition(y.row+v,y.column);if(E){var B=r.fromPoints(x,C);B.cursor=B.start}else{var B=r.fromPoints(C,x);B.cursor=B.end}if(B.desiredColumn=b.column,!this.selection.inMultiSelectMode)this.selection.addRange(_);else if(A)var T=_.cursor;this.selection.addRange(B),T&&this.selection.substractPoint(T)},this.transposeSelections=function(v){for(var A=this.session,_=A.multiSelect,E=_.ranges,b=E.length;b--;){var x=E[b];if(x.isEmpty()){var y=A.getWordRange(x.start.row,x.start.column);x.start.row=y.start.row,x.start.column=y.start.column,x.end.row=y.end.row,x.end.column=y.end.column}}_.mergeOverlappingRanges();for(var C=[],b=E.length;b--;){var x=E[b];C.unshift(A.getTextRange(x))}v<0?C.unshift(C.pop()):C.push(C.shift());for(var b=E.length;b--;){var x=E[b],y=x.clone();A.replace(x,C[b]),x.start.row=y.start.row,x.start.column=y.start.column}},this.selectMore=function(v,A,_){var E=this.session,b=E.multiSelect,x=b.toOrientedRange();if(!(x.isEmpty()&&(x=E.getWordRange(x.start.row,x.start.column),x.cursor=v==-1?x.start:x.end,this.multiSelect.addRange(x),_))){var y=E.getTextRange(x),C=h(E,y,v);C&&(C.cursor=v==-1?C.start:C.end,this.$blockScrolling+=1,this.session.unfold(C),this.multiSelect.addRange(C),this.$blockScrolling-=1,this.renderer.scrollCursorIntoView(null,.5)),A&&this.multiSelect.substractPoint(x.cursor)}},this.alignCursors=function(){var v=this.session,A=v.multiSelect,_=A.ranges,E=-1,b=_.filter(function(j){if(j.cursor.row==E)return!0;E=j.cursor.row});if(!_.length||b.length==_.length-1){var x=this.selection.getRange(),y=x.start.row,C=x.end.row,B=y==C;if(B){var T=this.session.getLength(),M;do M=this.session.getLine(C);while(/[=:]/.test(M)&&++C<T);do M=this.session.getLine(y);while(/[=:]/.test(M)&&--y>0);y<0&&(y=0),C>=T&&(C=T-1)}var R=this.session.removeFullLines(y,C);R=this.$reAlignText(R,B),this.session.insert({row:y,column:0},R.join(` -`)+` -`),B||(x.start.column=0,x.end.column=R[R.length-1].length),this.selection.setRange(x)}else{b.forEach(function(j){A.substractPoint(j.cursor)});var I=0,H=1/0,P=_.map(function(j){var V=j.cursor,K=v.getLine(V.row),N=K.substr(V.column).search(/\S/g);return N==-1&&(N=0),V.column>I&&(I=V.column),N<H&&(H=N),N});_.forEach(function(j,V){var K=j.cursor,N=I-K.column,k=P[V]-H;N>k?v.insert(K,c.stringRepeat(" ",N-k)):v.remove(new r(K.row,K.column,K.row,K.column-N+k)),j.start.column=j.end.column=I,j.start.row=j.end.row=K.row,j.cursor=j.end}),A.fromOrientedRange(_[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(v,A){var _=!0,E=!0,b,x,y;return v.map(function(R){var I=R.match(/(\s*)(.*?)(\s*)([=:].*)/);return I?b==null?(b=I[1].length,x=I[2].length,y=I[3].length,I):(b+x+y!=I[1].length+I[2].length+I[3].length&&(E=!1),b!=I[1].length&&(_=!1),b>I[1].length&&(b=I[1].length),x<I[2].length&&(x=I[2].length),y>I[3].length&&(y=I[3].length),I):[R]}).map(A?B:_?E?T:B:M);function C(R){return c.stringRepeat(" ",R)}function B(R){return R[2]?C(b)+R[2]+C(x-R[2].length+y)+R[4].replace(/^([=:])\s+/,"$1 "):R[0]}function T(R){return R[2]?C(b+x-R[2].length)+R[2]+C(y)+R[4].replace(/^([=:])\s+/,"$1 "):R[0]}function M(R){return R[2]?C(b)+R[2]+C(y)+R[4].replace(/^([=:])\s+/,"$1 "):R[0]}}}).call(g.prototype);function p(v,A){return v.row==A.row&&v.column==A.column}t.onSessionChange=function(v){var A=v.session;A&&!A.multiSelect&&(A.$selectionMarkers=[],A.selection.$initRangeList(),A.multiSelect=A.selection),this.multiSelect=A&&A.multiSelect;var _=v.oldSession;_&&(_.multiSelect.off("addRange",this.$onAddRange),_.multiSelect.off("removeRange",this.$onRemoveRange),_.multiSelect.off("multiSelect",this.$onMultiSelect),_.multiSelect.off("singleSelect",this.$onSingleSelect),_.multiSelect.lead.off("change",this.$checkMultiselectChange),_.multiSelect.anchor.off("change",this.$checkMultiselectChange)),A&&(A.multiSelect.on("addRange",this.$onAddRange),A.multiSelect.on("removeRange",this.$onRemoveRange),A.multiSelect.on("multiSelect",this.$onMultiSelect),A.multiSelect.on("singleSelect",this.$onSingleSelect),A.multiSelect.lead.on("change",this.$checkMultiselectChange),A.multiSelect.anchor.on("change",this.$checkMultiselectChange)),A&&this.inMultiSelectMode!=A.selection.inMultiSelectMode&&(A.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())};function m(v){v.$multiselectOnSessionChange||(v.$onAddRange=v.$onAddRange.bind(v),v.$onRemoveRange=v.$onRemoveRange.bind(v),v.$onMultiSelect=v.$onMultiSelect.bind(v),v.$onSingleSelect=v.$onSingleSelect.bind(v),v.$multiselectOnSessionChange=t.onSessionChange.bind(v),v.$checkMultiselectChange=v.$checkMultiselectChange.bind(v),v.$multiselectOnSessionChange(v),v.on("changeSession",v.$multiselectOnSessionChange),v.on("mousedown",u),v.commands.addCommands(a.defaultCommands),w(v))}function w(v){var A=v.textInput.getElement(),_=!1;o.addListener(A,"keydown",function(b){var x=b.keyCode==18&&!(b.ctrlKey||b.shiftKey||b.metaKey);v.$blockSelectEnabled&&x?_||(v.renderer.setMouseCursor("crosshair"),_=!0):_&&E()}),o.addListener(A,"keyup",E),o.addListener(A,"blur",E);function E(b){_&&(v.renderer.setMouseCursor(""),_=!1)}}t.MultiSelect=m,e("./config").defineOptions(g.prototype,"editor",{enableMultiselect:{set:function(v){m(this),v?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",u)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",u))},value:!0},enableBlockSelect:{set:function(v){this.$blockSelectEnabled=v},value:!0}})});ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(e,t,n){var i=e("../../range").Range,r=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(s,u,o){var c=s.getLine(o);return this.foldingStartMarker.test(c)?"start":u=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(c)?"end":""},this.getFoldWidgetRange=function(s,u,o){return null},this.indentationBlock=function(s,u,o){var c=/\S/,a=s.getLine(u),f=a.search(c);if(f!=-1){for(var l=o||a.length,h=s.getLength(),d=u,g=u;++u<h;){var p=s.getLine(u).search(c);if(p!=-1){if(p<=f)break;g=u}}if(g>d){var m=s.getLine(g).length;return new i(d,l,g,m)}}},this.openingBracketBlock=function(s,u,o,c,a){var f={row:o,column:c+1},l=s.$findClosingBracket(u,f,a);if(!!l){var h=s.foldWidgets[l.row];return h==null&&(h=s.getFoldWidget(l.row)),h=="start"&&l.row>f.row&&(l.row--,l.column=s.getLine(l.row).length),i.fromPoints(f,l)}},this.closingBracketBlock=function(s,u,o,c,a){var f={row:o,column:c},l=s.$findOpeningBracket(u,f);if(!!l)return l.column++,f.column--,i.fromPoints(l,f)}}).call(r.prototype)});ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-tm",t.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}';var i=e("../lib/dom");i.importCssString(t.cssText,t.cssClass)});ace.define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"],function(e,t,n){e("./lib/oop");var i=e("./lib/dom");e("./range").Range;function r(s){this.session=s,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeFold",this.updateOnFold),this.session.on("changeEditor",this.$onChangeEditor)}(function(){this.getRowLength=function(s){var u;return this.lineWidgets?u=this.lineWidgets[s]&&this.lineWidgets[s].rowCount||0:u=0,!this.$useWrapMode||!this.$wrapData[s]?1+u:this.$wrapData[s].length+1+u},this.$getWidgetScreenLength=function(){var s=0;return this.lineWidgets.forEach(function(u){u&&u.rowCount&&!u.hidden&&(s+=u.rowCount)}),s},this.$onChangeEditor=function(s){this.attach(s.editor)},this.attach=function(s){s&&s.widgetManager&&s.widgetManager!=this&&s.widgetManager.detach(),this.editor!=s&&(this.detach(),this.editor=s,s&&(s.widgetManager=this,s.renderer.on("beforeRender",this.measureWidgets),s.renderer.on("afterRender",this.renderWidgets)))},this.detach=function(s){var u=this.editor;if(!!u){this.editor=null,u.widgetManager=null,u.renderer.off("beforeRender",this.measureWidgets),u.renderer.off("afterRender",this.renderWidgets);var o=this.session.lineWidgets;o&&o.forEach(function(c){c&&c.el&&c.el.parentNode&&(c._inDocument=!1,c.el.parentNode.removeChild(c.el))})}},this.updateOnFold=function(s,u){var o=u.lineWidgets;if(!(!o||!s.action)){for(var c=s.data,a=c.start.row,f=c.end.row,l=s.action=="add",h=a+1;h<f;h++)o[h]&&(o[h].hidden=l);o[f]&&(l?o[a]?o[f].hidden=l:o[a]=o[f]:(o[a]==o[f]&&(o[a]=void 0),o[f].hidden=l))}},this.updateOnChange=function(s){var u=this.session.lineWidgets;if(!!u){var o=s.start.row,c=s.end.row-o;if(c!==0)if(s.action=="remove"){var a=u.splice(o+1,c);a.forEach(function(l){l&&this.removeLineWidget(l)},this),this.$updateRows()}else{var f=new Array(c);f.unshift(o,0),u.splice.apply(u,f),this.$updateRows()}}},this.$updateRows=function(){var s=this.session.lineWidgets;if(!!s){var u=!0;s.forEach(function(o,c){if(o)for(u=!1,o.row=c;o.$oldWidget;)o.$oldWidget.row=c,o=o.$oldWidget}),u&&(this.session.lineWidgets=null)}},this.addLineWidget=function(s){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var u=this.session.lineWidgets[s.row];u&&(s.$oldWidget=u,u.el&&u.el.parentNode&&(u.el.parentNode.removeChild(u.el),u._inDocument=!1)),this.session.lineWidgets[s.row]=s,s.session=this.session;var o=this.editor.renderer;s.html&&!s.el&&(s.el=i.createElement("div"),s.el.innerHTML=s.html),s.el&&(i.addCssClass(s.el,"ace_lineWidgetContainer"),s.el.style.position="absolute",s.el.style.zIndex=5,o.container.appendChild(s.el),s._inDocument=!0),s.coverGutter||(s.el.style.zIndex=3),s.pixelHeight==null&&(s.pixelHeight=s.el.offsetHeight),s.rowCount==null&&(s.rowCount=s.pixelHeight/o.layerConfig.lineHeight);var c=this.session.getFoldAt(s.row,0);if(s.$fold=c,c){var a=this.session.lineWidgets;s.row==c.end.row&&!a[c.start.row]?a[c.start.row]=s:s.hidden=!0}return this.session._emit("changeFold",{data:{start:{row:s.row}}}),this.$updateRows(),this.renderWidgets(null,o),this.onWidgetChanged(s),s},this.removeLineWidget=function(s){if(s._inDocument=!1,s.session=null,s.el&&s.el.parentNode&&s.el.parentNode.removeChild(s.el),s.editor&&s.editor.destroy)try{s.editor.destroy()}catch{}if(this.session.lineWidgets){var u=this.session.lineWidgets[s.row];if(u==s)this.session.lineWidgets[s.row]=s.$oldWidget,s.$oldWidget&&this.onWidgetChanged(s.$oldWidget);else for(;u;){if(u.$oldWidget==s){u.$oldWidget=s.$oldWidget;break}u=u.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:s.row}}}),this.$updateRows()},this.getWidgetsAtRow=function(s){for(var u=this.session.lineWidgets,o=u&&u[s],c=[];o;)c.push(o),o=o.$oldWidget;return c},this.onWidgetChanged=function(s){this.session._changedWidgets.push(s),this.editor&&this.editor.renderer.updateFull()},this.measureWidgets=function(s,u){var o=this.session._changedWidgets,c=u.layerConfig;if(!(!o||!o.length)){for(var a=1/0,f=0;f<o.length;f++){var l=o[f];if(!(!l||!l.el)&&l.session==this.session){if(!l._inDocument){if(this.session.lineWidgets[l.row]!=l)continue;l._inDocument=!0,u.container.appendChild(l.el)}l.h=l.el.offsetHeight,l.fixedWidth||(l.w=l.el.offsetWidth,l.screenWidth=Math.ceil(l.w/c.characterWidth));var h=l.h/c.lineHeight;l.coverLine&&(h-=this.session.getRowLineCount(l.row),h<0&&(h=0)),l.rowCount!=h&&(l.rowCount=h,l.row<a&&(a=l.row))}}a!=1/0&&(this.session._emit("changeFold",{data:{start:{row:a}}}),this.session.lineWidgetWidth=null),this.session._changedWidgets=[]}},this.renderWidgets=function(s,u){var o=u.layerConfig,c=this.session.lineWidgets;if(!!c){for(var a=Math.min(this.firstRow,o.firstRow),f=Math.max(this.lastRow,o.lastRow,c.length);a>0&&!c[a];)a--;this.firstRow=o.firstRow,this.lastRow=o.lastRow,u.$cursorLayer.config=o;for(var l=a;l<=f;l++){var h=c[l];if(!(!h||!h.el)){if(h.hidden){h.el.style.top=-100-(h.pixelHeight||0)+"px";continue}h._inDocument||(h._inDocument=!0,u.container.appendChild(h.el));var d=u.$cursorLayer.getPixelPosition({row:l,column:0},!0).top;h.coverLine||(d+=o.lineHeight*this.session.getRowLineCount(h.row)),h.el.style.top=d-o.offset+"px";var g=h.coverGutter?0:u.gutterWidth;h.fixedWidth||(g-=u.scrollLeft),h.el.style.left=g+"px",h.fullWidth&&h.screenWidth&&(h.el.style.minWidth=o.width+2*o.padding+"px"),h.fixedWidth?h.el.style.right=u.scrollBar.getWidth()+"px":h.el.style.right=""}}}}}).call(r.prototype),t.LineWidgets=r});ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],function(e,t,n){var i=e("../line_widgets").LineWidgets,r=e("../lib/dom"),s=e("../range").Range;function u(c,a,f){for(var l=0,h=c.length-1;l<=h;){var d=l+h>>1,g=f(a,c[d]);if(g>0)l=d+1;else if(g<0)h=d-1;else return d}return-(l+1)}function o(c,a,f){var l=c.getAnnotations().sort(s.comparePoints);if(!!l.length){var h=u(l,{row:a,column:-1},s.comparePoints);h<0&&(h=-h-1),h>=l.length?h=f>0?0:l.length-1:h===0&&f<0&&(h=l.length-1);var d=l[h];if(!(!d||!f)){if(d.row===a){do d=l[h+=f];while(d&&d.row===a);if(!d)return l.slice()}var g=[];a=d.row;do g[f<0?"unshift":"push"](d),d=l[h+=f];while(d&&d.row==a);return g.length&&g}}}t.showErrorMarker=function(c,a){var f=c.session;f.widgetManager||(f.widgetManager=new i(f),f.widgetManager.attach(c));var l=c.getCursorPosition(),h=l.row,d=f.widgetManager.getWidgetsAtRow(h).filter(function(b){return b.type=="errorMarker"})[0];d?d.destroy():h-=a;var g=o(f,h,a),p;if(g){var m=g[0];l.column=(m.pos&&typeof m.column!="number"?m.pos.sc:m.column)||0,l.row=m.row,p=c.renderer.$gutterLayer.$annotations[l.row]}else{if(d)return;p={text:["Looks good!"],className:"ace_ok"}}c.session.unfold(l.row),c.selection.moveToPosition(l);var w={row:l.row,fixedWidth:!0,coverGutter:!0,el:r.createElement("div"),type:"errorMarker"},v=w.el.appendChild(r.createElement("div")),A=w.el.appendChild(r.createElement("div"));A.className="error_widget_arrow "+p.className;var _=c.renderer.$cursorLayer.getPixelPosition(l).left;A.style.left=_+c.renderer.gutterWidth-5+"px",w.el.className="error_widget_wrapper",v.className="error_widget "+p.className,v.innerHTML=p.text.join("<br>"),v.appendChild(r.createElement("div"));var E=function(b,x,y){if(x===0&&(y==="esc"||y==="return"))return w.destroy(),{command:"null"}};w.destroy=function(){c.$mouseHandler.isMousePressed||(c.keyBinding.removeKeyboardHandler(E),f.widgetManager.removeLineWidget(w),c.off("changeSelection",w.destroy),c.off("changeSession",w.destroy),c.off("mouseup",w.destroy),c.off("change",w.destroy))},c.keyBinding.addKeyboardHandler(E),c.on("changeSelection",w.destroy),c.on("changeSession",w.destroy),c.on("mouseup",w.destroy),c.on("change",w.destroy),c.session.widgetManager.addLineWidget(w),w.el.onmousedown=c.focus.bind(c),c.renderer.scrollCursorIntoView(null,.5,{bottom:w.el.offsetHeight})},r.importCssString(" .error_widget_wrapper { background: inherit; color: inherit; border:none } .error_widget { border-top: solid 2px; border-bottom: solid 2px; margin: 5px 0; padding: 10px 40px; white-space: pre-wrap; } .error_widget.ace_error, .error_widget_arrow.ace_error{ border-color: #ff5a5a } .error_widget.ace_warning, .error_widget_arrow.ace_warning{ border-color: #F1D817 } .error_widget.ace_info, .error_widget_arrow.ace_info{ border-color: #5a5a5a } .error_widget.ace_ok, .error_widget_arrow.ace_ok{ border-color: #5aaa5a } .error_widget_arrow { position: absolute; border: solid 5px; border-top-color: transparent!important; border-right-color: transparent!important; border-left-color: transparent!important; top: -5px; }","")});ace.define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config"],function(e,t,n){e("./lib/fixoldbrowsers");var i=e("./lib/dom"),r=e("./lib/event"),s=e("./editor").Editor,u=e("./edit_session").EditSession,o=e("./undomanager").UndoManager,c=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.acequire=e,t.edit=function(a){if(typeof a=="string"){var f=a;if(a=document.getElementById(f),!a)throw new Error("ace.edit can't find div #"+f)}if(a&&a.env&&a.env.editor instanceof s)return a.env.editor;var l="";if(a&&/input|textarea/i.test(a.tagName)){var h=a;l=h.value,a=i.createElement("pre"),h.parentNode.replaceChild(a,h)}else a&&(l=i.getInnerText(a),a.innerHTML="");var d=t.createEditSession(l),g=new s(new c(a));g.setSession(d);var p={document:d,editor:g,onResize:g.resize.bind(g,null)};return h&&(p.textarea=h),r.addListener(window,"resize",p.onResize),g.on("destroy",function(){r.removeListener(window,"resize",p.onResize),p.editor.container.env=null}),g.container.env=g.env=p,g},t.createEditSession=function(a,f){var l=new u(a,f);return l.setUndoManager(new o),l},t.EditSession=u,t.UndoManager=o,t.version="1.2.9"});(function(){ace.acequire(["ace/ace"],function(e){e&&(e.config.init(!0),e.define=ace.define),window.ace||(window.ace=e);for(var t in e)e.hasOwnProperty(t)&&(window.ace[t]=e[t])})})();var Y2=window.ace.acequire("ace/ace"),rc={};rc.id="ace/mode/json_worker";rc.src=`"no use strict";!function(window){function resolveModuleId(id,paths){for(var testPath=id,tail="";testPath;){var alias=paths[testPath];if("string"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,"/")+(tail||alias.main||alias.name);if(alias===!1)return"";var i=testPath.lastIndexOf("/");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:"error",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf("!")){var chunks=moduleName.split("!");return window.normalizeModule(parentId,chunks[0])+"!"+window.normalizeModule(parentId,chunks[1])}if("."==moduleName.charAt(0)){var base=parentId.split("/").slice(0,-1).join("/");for(moduleName=(base?base+"/":"")+moduleName;-1!==moduleName.indexOf(".")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,"").replace(/\\/\\.\\//,"/").replace(/[^\\/]+\\/\\.\\.\\//,"")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error("worker.js acequire() accepts only (parentId, id) as arguments");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log("unable to load "+id);var path=resolveModuleId(id,window.acequire.tlns);return".js"!=path.slice(-3)&&(path+=".js"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,"string"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),"function"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=["require","exports","module"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case"require":return req;case"exports":return module.exports;case"module":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire("ace/lib/event_emitter").EventEmitter,oop=window.acequire("ace/lib/oop"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:"call",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:"event",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error("Unknown command:"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire("ace/lib/es5-shim"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}}(this),ace.define("ace/lib/oop",["require","exports","module"],function(acequire,exports){"use strict";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define("ace/range",["require","exports","module"],function(acequire,exports){"use strict";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){"object"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){"object"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define("ace/apply_delta",["require","exports","module"],function(acequire,exports){"use strict";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||"";switch(delta.action){case"insert":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case"remove":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(acequire,exports){"use strict";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){"object"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?"unshift":"push"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),EventEmitter=acequire("./lib/event_emitter").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.column<point2.column;return point1.row<point2.row||point1.row==point2.row&&bColIsAfter}function $getTransformedPoint(delta,point,moveIfEqual){var deltaIsInsert="insert"==delta.action,deltaRowShift=(deltaIsInsert?1:-1)*(delta.end.row-delta.start.row),deltaColShift=(deltaIsInsert?1:-1)*(delta.end.column-delta.start.column),deltaStart=delta.start,deltaEnd=deltaIsInsert?deltaStart:delta.end;return $pointsInOrder(point,deltaStart,moveIfEqual)?{row:point.row,column:point.column}:$pointsInOrder(deltaEnd,point,!moveIfEqual)?{row:point.row+deltaRowShift,column:point.column+(point.row==deltaEnd.row?deltaColShift:0)}:{row:deltaStart.row,column:deltaStart.column}}oop.implement(this,EventEmitter),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(delta){if(!(delta.start.row==delta.end.row&&delta.start.row!=this.row||delta.start.row>this.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal("change",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),applyDelta=acequire("./apply_delta").applyDelta,EventEmitter=acequire("./lib/event_emitter").EventEmitter,Range=acequire("./range").Range,Anchor=acequire("./anchor").Anchor,Document=function(textOrLines){this.$lines=[""],0===textOrLines.length?this.$lines=[""]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==="aaa".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,"\\n").split("\\n")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:"\\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\\r\\n";case"unix":return"\\n";default:return this.$autoNewLine||"\\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return"\\r\\n"==text||"\\r"==text||"\\n"==text},this.getLine=function(row){return this.$lines[row]||""},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||"").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(position,["",""])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:"insert",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([""]),column=0):(lines=[""].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:"insert",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:"remove",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:"remove",lines:["",""]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert="insert"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal("change",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(""),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:"insert"==delta.action?"remove":"insert",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define("ace/lib/lang",["require","exports","module"],function(acequire,exports){"use strict";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split("").reverse().join("")},exports.stringRepeat=function(string,count){for(var result="";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,"")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,"")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&"object"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if("object"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if("[object Object]"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^\${}()|[\\]\\/\\\\])/g,"\\\\$1")},exports.escapeHTML=function(str){return str.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<")},exports.getMatchOffsets=function(string,regExp){var matches=[];return string.replace(regExp,function(str){matches.push({offset:arguments[arguments.length-2],length:str.length})}),matches},exports.deferredCall=function(fcn){var timer=null,callback=function(){timer=null,fcn()},deferred=function(timeout){return deferred.cancel(),timer=setTimeout(callback,timeout||0),deferred};return deferred.schedule=deferred,deferred.call=function(){return this.cancel(),fcn(),deferred},deferred.cancel=function(){return clearTimeout(timer),timer=null,deferred},deferred.isPending=function(){return timer},deferred},exports.delayedCall=function(fcn,defaultTimeout){var timer=null,callback=function(){timer=null,fcn()},_self=function(timeout){null==timer&&(timer=setTimeout(callback,timeout||defaultTimeout))};return _self.delay=function(timeout){timer&&clearTimeout(timer),timer=setTimeout(callback,timeout||defaultTimeout)},_self.schedule=_self,_self.call=function(){this.cancel(),fcn()},_self.cancel=function(){timer&&clearTimeout(timer),timer=null},_self.isPending=function(){return timer},_self}}),ace.define("ace/worker/mirror",["require","exports","module","ace/range","ace/document","ace/lib/lang"],function(acequire,exports){"use strict";acequire("../range").Range;var Document=acequire("../document").Document,lang=acequire("../lib/lang"),Mirror=exports.Mirror=function(sender){this.sender=sender;var doc=this.doc=new Document(""),deferredUpdate=this.deferredUpdate=lang.delayedCall(this.onUpdate.bind(this)),_self=this;sender.on("change",function(e){var data=e.data;if(data[0].start)doc.applyDeltas(data);else for(var i=0;data.length>i;i+=2){if(Array.isArray(data[i+1]))var d={action:"insert",start:data[i],lines:data[i+1]};else var d={action:"remove",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define("ace/mode/json/json_parse",["require","exports","module"],function(){"use strict";var at,ch,text,value,escapee={'"':'"',"\\\\":"\\\\","/":"/",b:"\\b",f:"\\f",n:"\\n",r:"\\r",t:" "},error=function(m){throw{name:"SyntaxError",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error("Expected '"+c+"' instead of '"+ch+"'"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string="";for("-"===ch&&(string="-",next("-"));ch>="0"&&"9">=ch;)string+=ch,next();if("."===ch)for(string+=".";next()&&ch>="0"&&"9">=ch;)string+=ch;if("e"===ch||"E"===ch)for(string+=ch,next(),("-"===ch||"+"===ch)&&(string+=ch,next());ch>="0"&&"9">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error("Bad number"),void 0):number},string=function(){var hex,i,uffff,string="";if('"'===ch)for(;next();){if('"'===ch)return next(),string;if("\\\\"===ch)if(next(),"u"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if("string"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error("Bad string")},white=function(){for(;ch&&" ">=ch;)next()},word=function(){switch(ch){case"t":return next("t"),next("r"),next("u"),next("e"),!0;case"f":return next("f"),next("a"),next("l"),next("s"),next("e"),!1;case"n":return next("n"),next("u"),next("l"),next("l"),null}error("Unexpected '"+ch+"'")},array=function(){var array=[];if("["===ch){if(next("["),white(),"]"===ch)return next("]"),array;for(;ch;){if(array.push(value()),white(),"]"===ch)return next("]"),array;next(","),white()}}error("Bad array")},object=function(){var key,object={};if("{"===ch){if(next("{"),white(),"}"===ch)return next("}"),object;for(;ch;){if(key=string(),white(),next(":"),Object.hasOwnProperty.call(object,key)&&error('Duplicate key "'+key+'"'),object[key]=value(),white(),"}"===ch)return next("}"),object;next(","),white()}}error("Bad object")};return value=function(){switch(white(),ch){case"{":return object();case"[":return array();case'"':return string();case"-":return number();default:return ch>="0"&&"9">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=" ",result=value(),white(),ch&&error("Syntax error"),"function"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&"object"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({"":result},""):result}}),ace.define("ace/mode/json_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/json/json_parse"],function(acequire,exports){"use strict";var oop=acequire("../lib/oop"),Mirror=acequire("../worker/mirror").Mirror,parse=acequire("./json/json_parse"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:"error"})}this.sender.emit("annotate",errors)}}.call(JsonWorker.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,"sentinel",{}),"sentinel"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError("Function.prototype.bind called on incompatible "+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,"__defineGetter__"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,"XXX"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0 -}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return"[object Array]"==_toString(obj)});var boxedString=Object("a"),splitString="a"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,thisp=arguments[1],i=-1,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=[],thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError("reduce of empty array with no initial value")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError("reduceRight of empty array with no initial value")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(object,property){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if("object"!=typeof prototype)throw new TypeError("typeof prototype["+typeof prototype+"] != 'object'");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom="undefined"==typeof document||doesDefinePropertyWork(document.createElement("div"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR="Property description must be an object: ",ERR_NON_OBJECT_TARGET="Object.defineProperty called on non-object: ",ERR_ACCESSORS_NOT_SUPPORTED="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(object,property,descriptor){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if("object"!=typeof descriptor&&"function"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,"value"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,"get")&&defineGetter(object,property,descriptor.get),owns(descriptor,"set")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return"function"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name="";owns(object,name);)name+="?";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError("Object.keys called on a non-object");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=" \\n\v\\f\\r \xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\\u2028\\u2029\uFEFF";if(!String.prototype.trim||ws.trim()){ws="["+ws+"]";var trimBeginRegexp=RegExp("^"+ws+ws+"*"),trimEndRegexp=RegExp(ws+ws+"*$");String.prototype.trim=function(){return(this+"").replace(trimBeginRegexp,"").replace(trimEndRegexp,"")}}var toObject=function(o){if(null==o)throw new TypeError("can't convert "+o+" to object");return Object(o)}});`;ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var i=e("../lib/oop"),r=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};i.inherits(s,r),t.JsonHighlightRules=s});ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var i=e("../range").Range,r=function(){};(function(){this.checkOutdent=function(s,u){return/^\s+$/.test(s)?/^\s*\}/.test(u):!1},this.autoOutdent=function(s,u){var o=s.getLine(u),c=o.match(/^(\s*\})/);if(!c)return 0;var a=c[1].length,f=s.findMatchingBracket({row:u,column:a});if(!f||f.row==u)return 0;var l=this.$getIndent(s.getLine(f.row));s.replace(new i(u,0,u,a-1),l)},this.$getIndent=function(s){return s.match(/^\s*/)[0]}}).call(r.prototype),t.MatchingBraceOutdent=r});ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var i=e("../../lib/oop"),r=e("../../range").Range,s=e("./fold_mode").FoldMode,u=t.FoldMode=function(o){o&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+o.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+o.end)))};i.inherits(u,s),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(o,c,a){var f=o.getLine(a);if(this.singleLineBlockCommentRe.test(f)&&!this.startRegionRe.test(f)&&!this.tripleStarBlockCommentRe.test(f))return"";var l=this._getFoldWidgetBase(o,c,a);return!l&&this.startRegionRe.test(f)?"start":l},this.getFoldWidgetRange=function(o,c,a,f){var l=o.getLine(a);if(this.startRegionRe.test(l))return this.getCommentRegionBlock(o,l,a);var g=l.match(this.foldingStartMarker);if(g){var h=g.index;if(g[1])return this.openingBracketBlock(o,g[1],a,h);var d=o.getCommentFoldRange(a,h+g[0].length,1);return d&&!d.isMultiLine()&&(f?d=this.getSectionRange(o,a):c!="all"&&(d=null)),d}if(c!=="markbegin"){var g=l.match(this.foldingStopMarker);if(g){var h=g.index+g[0].length;return g[1]?this.closingBracketBlock(o,g[1],a,h):o.getCommentFoldRange(a,h,-1)}}},this.getSectionRange=function(o,c){var a=o.getLine(c),f=a.search(/\S/),l=c,h=a.length;c=c+1;for(var d=c,g=o.getLength();++c<g;){a=o.getLine(c);var p=a.search(/\S/);if(p!==-1){if(f>p)break;var m=this.getFoldWidgetRange(o,"all",c);if(m){if(m.start.row<=l)break;if(m.isMultiLine())c=m.end.row;else if(f==p)break}d=c}}return new r(l,h,d,o.getLine(d).length)},this.getCommentRegionBlock=function(o,c,a){for(var f=c.search(/\s*$/),l=o.getLength(),h=a,d=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,g=1;++a<l;){c=o.getLine(a);var p=d.exec(c);if(!!p&&(p[1]?g--:g++,!g))break}var m=a;if(m>h)return new r(h,f,m,c.length)}}.call(u.prototype)});ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(e,t,n){var i=e("../lib/oop"),r=e("./text").Mode,s=e("./json_highlight_rules").JsonHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,o=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,a=e("../worker/worker_client").WorkerClient,f=function(){this.HighlightRules=s,this.$outdent=new u,this.$behaviour=new o,this.foldingRules=new c};i.inherits(f,r),function(){this.getNextLineIndent=function(l,h,d){var g=this.$getIndent(h);if(l=="start"){var p=h.match(/^.*[\{\(\[]\s*$/);p&&(g+=d)}return g},this.checkOutdent=function(l,h,d){return this.$outdent.checkOutdent(h,d)},this.autoOutdent=function(l,h,d){this.$outdent.autoOutdent(h,d)},this.createWorker=function(l){var h=new a(["ace"],rc,"JsonWorker");return h.attachToDocument(l.getDocument()),h.on("annotate",function(d){l.setAnnotations(d.data)}),h.on("terminate",function(){l.clearAnnotations()}),h},this.$id="ace/mode/json"}.call(f.prototype),t.Mode=f});ace.define("ace/mode/yaml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var i=e("../lib/oop"),r=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"list.markup",regex:/^(?:-{3}|\.{3})\s*(?=#|$)/},{token:"list.markup",regex:/^\s*[\-?](?:$|\s)/},{token:"constant",regex:"!![\\w//]+"},{token:"constant.language",regex:"[&\\*][a-zA-Z0-9-_]+"},{token:["meta.tag","keyword"],regex:/^(\s*\w.*?)(:(?=\s|$))/},{token:["meta.tag","keyword"],regex:/(\w+?)(\s*:(?=\s|$))/},{token:"keyword.operator",regex:"<<\\w*:\\w*"},{token:"keyword.operator",regex:"-\\s*(?=[{])"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:/[|>][-+\d\s]*$/,onMatch:function(u,o,c,a){var f=/^\s*/.exec(a)[0];return c.length<1?c.push(this.next):c[0]="mlString",c.length<2?c.push(f.length):c[1]=f.length,this.token},next:"mlString"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:/(\b|[+\-\.])[\d_]+(?:(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)(?=[^\d-\w]|$)/},{token:"constant.numeric",regex:/[+\-]?\.inf\b|NaN\b|0x[\dA-Fa-f_]+|0b[10_]+/},{token:"constant.language.boolean",regex:"\\b(?:true|false|TRUE|FALSE|True|False|yes|no)\\b"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:/[^\s,:\[\]\{\}]+/}],mlString:[{token:"indent",regex:/^\s*$/},{token:"indent",regex:/^\s*/,onMatch:function(u,o,c){var a=c[1];return a>=u.length?(this.next="start",c.splice(0)):this.next="mlString",this.token},next:"mlString"},{token:"string",regex:".+"}]},this.normalizeRules()};i.inherits(s,r),t.YamlHighlightRules=s});ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var i=e("../range").Range,r=function(){};(function(){this.checkOutdent=function(s,u){return/^\s+$/.test(s)?/^\s*\}/.test(u):!1},this.autoOutdent=function(s,u){var o=s.getLine(u),c=o.match(/^(\s*\})/);if(!c)return 0;var a=c[1].length,f=s.findMatchingBracket({row:u,column:a});if(!f||f.row==u)return 0;var l=this.$getIndent(s.getLine(f.row));s.replace(new i(u,0,u,a-1),l)},this.$getIndent=function(s){return s.match(/^\s*/)[0]}}).call(r.prototype),t.MatchingBraceOutdent=r});ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){var i=e("../../lib/oop"),r=e("./fold_mode").FoldMode,s=e("../../range").Range,u=t.FoldMode=function(){};i.inherits(u,r),function(){this.getFoldWidgetRange=function(o,c,a){var f=this.indentationBlock(o,a);if(f)return f;var l=/\S/,h=o.getLine(a),d=h.search(l);if(!(d==-1||h[d]!="#")){for(var g=h.length,p=o.getLength(),m=a,w=a;++a<p;){h=o.getLine(a);var v=h.search(l);if(v!=-1){if(h[v]!="#")break;w=a}}if(w>m){var A=o.getLine(w).length;return new s(m,g,w,A)}}},this.getFoldWidget=function(o,c,a){var f=o.getLine(a),l=f.search(/\S/),h=o.getLine(a+1),d=o.getLine(a-1),g=d.search(/\S/),p=h.search(/\S/);if(l==-1)return o.foldWidgets[a-1]=g!=-1&&g<p?"start":"","";if(g==-1){if(l==p&&f[l]=="#"&&h[l]=="#")return o.foldWidgets[a-1]="",o.foldWidgets[a+1]="","start"}else if(g==l&&f[l]=="#"&&d[l]=="#"&&o.getLine(a-2).search(/\S/)==-1)return o.foldWidgets[a-1]="start",o.foldWidgets[a+1]="","";return g!=-1&&g<l?o.foldWidgets[a-1]="start":o.foldWidgets[a-1]="",l<p?"start":""}}.call(u.prototype)});ace.define("ace/mode/yaml",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/yaml_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/coffee"],function(e,t,n){var i=e("../lib/oop"),r=e("./text").Mode,s=e("./yaml_highlight_rules").YamlHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,o=e("./folding/coffee").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new u,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};i.inherits(c,r),function(){this.lineCommentStart=["#","//"],this.getNextLineIndent=function(a,f,l){var h=this.$getIndent(f);if(a=="start"){var d=f.match(/^.*[\{\(\[]\s*$/);d&&(h+=l)}return h},this.checkOutdent=function(a,f,l){return this.$outdent.checkOutdent(f,l)},this.autoOutdent=function(a,f,l){this.$outdent.autoOutdent(f,l)},this.$id="ace/mode/yaml"}.call(c.prototype),t.Mode=c});var np={exports:{}};(function(e,t){(function(i,r){e.exports=r()})(tn,function(){return function(n){var i={};function r(s){if(i[s])return i[s].exports;var u=i[s]={exports:{},id:s,loaded:!1};return n[s].call(u.exports,u,u.exports,r),u.loaded=!0,u.exports}return r.m=n,r.c=i,r.p="",r(0)}([function(n,i,r){Object.defineProperty(i,"__esModule",{value:!0});var s=r(1),u=r(3),o=r(8),c=r(15);function a(g,p,m){var w=null,v=function(B,T){m&&m(B,T),w&&w.visit(B,T)},A=typeof m=="function"?v:null,_=!1;if(p){_=typeof p.comment=="boolean"&&p.comment;var E=typeof p.attachComment=="boolean"&&p.attachComment;(_||E)&&(w=new s.CommentHandler,w.attach=E,p.comment=!0,A=v)}var b=!1;p&&typeof p.sourceType=="string"&&(b=p.sourceType==="module");var x;p&&typeof p.jsx=="boolean"&&p.jsx?x=new u.JSXParser(g,p,A):x=new o.Parser(g,p,A);var y=b?x.parseModule():x.parseScript(),C=y;return _&&w&&(C.comments=w.comments),x.config.tokens&&(C.tokens=x.tokens),x.config.tolerant&&(C.errors=x.errorHandler.errors),C}i.parse=a;function f(g,p,m){var w=p||{};return w.sourceType="module",a(g,w,m)}i.parseModule=f;function l(g,p,m){var w=p||{};return w.sourceType="script",a(g,w,m)}i.parseScript=l;function h(g,p,m){var w=new c.Tokenizer(g,p),v;v=[];try{for(;;){var A=w.getNextToken();if(!A)break;m&&(A=m(A)),v.push(A)}}catch(_){w.errorHandler.tolerate(_)}return w.errorHandler.tolerant&&(v.errors=w.errors()),v}i.tokenize=h;var d=r(2);i.Syntax=d.Syntax,i.version="4.0.1"},function(n,i,r){Object.defineProperty(i,"__esModule",{value:!0});var s=r(2),u=function(){function o(){this.attach=!1,this.comments=[],this.stack=[],this.leading=[],this.trailing=[]}return o.prototype.insertInnerComments=function(c,a){if(c.type===s.Syntax.BlockStatement&&c.body.length===0){for(var f=[],l=this.leading.length-1;l>=0;--l){var h=this.leading[l];a.end.offset>=h.start&&(f.unshift(h.comment),this.leading.splice(l,1),this.trailing.splice(l,1))}f.length&&(c.innerComments=f)}},o.prototype.findTrailingComments=function(c){var a=[];if(this.trailing.length>0){for(var f=this.trailing.length-1;f>=0;--f){var l=this.trailing[f];l.start>=c.end.offset&&a.unshift(l.comment)}return this.trailing.length=0,a}var h=this.stack[this.stack.length-1];if(h&&h.node.trailingComments){var d=h.node.trailingComments[0];d&&d.range[0]>=c.end.offset&&(a=h.node.trailingComments,delete h.node.trailingComments)}return a},o.prototype.findLeadingComments=function(c){for(var a=[],f;this.stack.length>0;){var l=this.stack[this.stack.length-1];if(l&&l.start>=c.start.offset)f=l.node,this.stack.pop();else break}if(f){for(var h=f.leadingComments?f.leadingComments.length:0,d=h-1;d>=0;--d){var g=f.leadingComments[d];g.range[1]<=c.start.offset&&(a.unshift(g),f.leadingComments.splice(d,1))}return f.leadingComments&&f.leadingComments.length===0&&delete f.leadingComments,a}for(var d=this.leading.length-1;d>=0;--d){var l=this.leading[d];l.start<=c.start.offset&&(a.unshift(l.comment),this.leading.splice(d,1))}return a},o.prototype.visitNode=function(c,a){if(!(c.type===s.Syntax.Program&&c.body.length>0)){this.insertInnerComments(c,a);var f=this.findTrailingComments(a),l=this.findLeadingComments(a);l.length>0&&(c.leadingComments=l),f.length>0&&(c.trailingComments=f),this.stack.push({node:c,start:a.start.offset})}},o.prototype.visitComment=function(c,a){var f=c.type[0]==="L"?"Line":"Block",l={type:f,value:c.value};if(c.range&&(l.range=c.range),c.loc&&(l.loc=c.loc),this.comments.push(l),this.attach){var h={comment:{type:f,value:c.value,range:[a.start.offset,a.end.offset]},start:a.start.offset};c.loc&&(h.comment.loc=c.loc),c.type=f,this.leading.push(h),this.trailing.push(h)}},o.prototype.visit=function(c,a){c.type==="LineComment"?this.visitComment(c,a):c.type==="BlockComment"?this.visitComment(c,a):this.attach&&this.visitNode(c,a)},o}();i.CommentHandler=u},function(n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.Syntax={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForOfStatement:"ForOfStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"}},function(n,i,r){var s=this&&this.__extends||function(){var p=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(m,w){m.__proto__=w}||function(m,w){for(var v in w)w.hasOwnProperty(v)&&(m[v]=w[v])};return function(m,w){p(m,w);function v(){this.constructor=m}m.prototype=w===null?Object.create(w):(v.prototype=w.prototype,new v)}}();Object.defineProperty(i,"__esModule",{value:!0});var u=r(4),o=r(5),c=r(6),a=r(7),f=r(8),l=r(13),h=r(14);l.TokenName[100]="JSXIdentifier",l.TokenName[101]="JSXText";function d(p){var m;switch(p.type){case c.JSXSyntax.JSXIdentifier:var w=p;m=w.name;break;case c.JSXSyntax.JSXNamespacedName:var v=p;m=d(v.namespace)+":"+d(v.name);break;case c.JSXSyntax.JSXMemberExpression:var A=p;m=d(A.object)+"."+d(A.property);break}return m}var g=function(p){s(m,p);function m(w,v,A){return p.call(this,w,v,A)||this}return m.prototype.parsePrimaryExpression=function(){return this.match("<")?this.parseJSXRoot():p.prototype.parsePrimaryExpression.call(this)},m.prototype.startJSX=function(){this.scanner.index=this.startMarker.index,this.scanner.lineNumber=this.startMarker.line,this.scanner.lineStart=this.startMarker.index-this.startMarker.column},m.prototype.finishJSX=function(){this.nextToken()},m.prototype.reenterJSX=function(){this.startJSX(),this.expectJSX("}"),this.config.tokens&&this.tokens.pop()},m.prototype.createJSXNode=function(){return this.collectComments(),{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},m.prototype.createJSXChildNode=function(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},m.prototype.scanXHTMLEntity=function(w){for(var v="&",A=!0,_=!1,E=!1,b=!1;!this.scanner.eof()&&A&&!_;){var x=this.scanner.source[this.scanner.index];if(x===w)break;if(_=x===";",v+=x,++this.scanner.index,!_)switch(v.length){case 2:E=x==="#";break;case 3:E&&(b=x==="x",A=b||u.Character.isDecimalDigit(x.charCodeAt(0)),E=E&&!b);break;default:A=A&&!(E&&!u.Character.isDecimalDigit(x.charCodeAt(0))),A=A&&!(b&&!u.Character.isHexDigit(x.charCodeAt(0)));break}}if(A&&_&&v.length>2){var y=v.substr(1,v.length-2);E&&y.length>1?v=String.fromCharCode(parseInt(y.substr(1),10)):b&&y.length>2?v=String.fromCharCode(parseInt("0"+y.substr(1),16)):!E&&!b&&h.XHTMLEntities[y]&&(v=h.XHTMLEntities[y])}return v},m.prototype.lexJSX=function(){var w=this.scanner.source.charCodeAt(this.scanner.index);if(w===60||w===62||w===47||w===58||w===61||w===123||w===125){var v=this.scanner.source[this.scanner.index++];return{type:7,value:v,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index}}if(w===34||w===39){for(var A=this.scanner.index,_=this.scanner.source[this.scanner.index++],E="";!this.scanner.eof();){var b=this.scanner.source[this.scanner.index++];if(b===_)break;b==="&"?E+=this.scanXHTMLEntity(_):E+=b}return{type:8,value:E,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:A,end:this.scanner.index}}if(w===46){var x=this.scanner.source.charCodeAt(this.scanner.index+1),y=this.scanner.source.charCodeAt(this.scanner.index+2),v=x===46&&y===46?"...":".",A=this.scanner.index;return this.scanner.index+=v.length,{type:7,value:v,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:A,end:this.scanner.index}}if(w===96)return{type:10,value:"",lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index,end:this.scanner.index};if(u.Character.isIdentifierStart(w)&&w!==92){var A=this.scanner.index;for(++this.scanner.index;!this.scanner.eof();){var b=this.scanner.source.charCodeAt(this.scanner.index);if(u.Character.isIdentifierPart(b)&&b!==92)++this.scanner.index;else if(b===45)++this.scanner.index;else break}var C=this.scanner.source.slice(A,this.scanner.index);return{type:100,value:C,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:A,end:this.scanner.index}}return this.scanner.lex()},m.prototype.nextJSXToken=function(){this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;var w=this.lexJSX();return this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.config.tokens&&this.tokens.push(this.convertToken(w)),w},m.prototype.nextJSXText=function(){this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;for(var w=this.scanner.index,v="";!this.scanner.eof();){var A=this.scanner.source[this.scanner.index];if(A==="{"||A==="<")break;++this.scanner.index,v+=A,u.Character.isLineTerminator(A.charCodeAt(0))&&(++this.scanner.lineNumber,A==="\r"&&this.scanner.source[this.scanner.index]===` -`&&++this.scanner.index,this.scanner.lineStart=this.scanner.index)}this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart;var _={type:101,value:v,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:w,end:this.scanner.index};return v.length>0&&this.config.tokens&&this.tokens.push(this.convertToken(_)),_},m.prototype.peekJSXToken=function(){var w=this.scanner.saveState();this.scanner.scanComments();var v=this.lexJSX();return this.scanner.restoreState(w),v},m.prototype.expectJSX=function(w){var v=this.nextJSXToken();(v.type!==7||v.value!==w)&&this.throwUnexpectedToken(v)},m.prototype.matchJSX=function(w){var v=this.peekJSXToken();return v.type===7&&v.value===w},m.prototype.parseJSXIdentifier=function(){var w=this.createJSXNode(),v=this.nextJSXToken();return v.type!==100&&this.throwUnexpectedToken(v),this.finalize(w,new o.JSXIdentifier(v.value))},m.prototype.parseJSXElementName=function(){var w=this.createJSXNode(),v=this.parseJSXIdentifier();if(this.matchJSX(":")){var A=v;this.expectJSX(":");var _=this.parseJSXIdentifier();v=this.finalize(w,new o.JSXNamespacedName(A,_))}else if(this.matchJSX("."))for(;this.matchJSX(".");){var E=v;this.expectJSX(".");var b=this.parseJSXIdentifier();v=this.finalize(w,new o.JSXMemberExpression(E,b))}return v},m.prototype.parseJSXAttributeName=function(){var w=this.createJSXNode(),v,A=this.parseJSXIdentifier();if(this.matchJSX(":")){var _=A;this.expectJSX(":");var E=this.parseJSXIdentifier();v=this.finalize(w,new o.JSXNamespacedName(_,E))}else v=A;return v},m.prototype.parseJSXStringLiteralAttribute=function(){var w=this.createJSXNode(),v=this.nextJSXToken();v.type!==8&&this.throwUnexpectedToken(v);var A=this.getTokenRaw(v);return this.finalize(w,new a.Literal(v.value,A))},m.prototype.parseJSXExpressionAttribute=function(){var w=this.createJSXNode();this.expectJSX("{"),this.finishJSX(),this.match("}")&&this.tolerateError("JSX attributes must only be assigned a non-empty expression");var v=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(w,new o.JSXExpressionContainer(v))},m.prototype.parseJSXAttributeValue=function(){return this.matchJSX("{")?this.parseJSXExpressionAttribute():this.matchJSX("<")?this.parseJSXElement():this.parseJSXStringLiteralAttribute()},m.prototype.parseJSXNameValueAttribute=function(){var w=this.createJSXNode(),v=this.parseJSXAttributeName(),A=null;return this.matchJSX("=")&&(this.expectJSX("="),A=this.parseJSXAttributeValue()),this.finalize(w,new o.JSXAttribute(v,A))},m.prototype.parseJSXSpreadAttribute=function(){var w=this.createJSXNode();this.expectJSX("{"),this.expectJSX("..."),this.finishJSX();var v=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(w,new o.JSXSpreadAttribute(v))},m.prototype.parseJSXAttributes=function(){for(var w=[];!this.matchJSX("/")&&!this.matchJSX(">");){var v=this.matchJSX("{")?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute();w.push(v)}return w},m.prototype.parseJSXOpeningElement=function(){var w=this.createJSXNode();this.expectJSX("<");var v=this.parseJSXElementName(),A=this.parseJSXAttributes(),_=this.matchJSX("/");return _&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(w,new o.JSXOpeningElement(v,_,A))},m.prototype.parseJSXBoundaryElement=function(){var w=this.createJSXNode();if(this.expectJSX("<"),this.matchJSX("/")){this.expectJSX("/");var v=this.parseJSXElementName();return this.expectJSX(">"),this.finalize(w,new o.JSXClosingElement(v))}var A=this.parseJSXElementName(),_=this.parseJSXAttributes(),E=this.matchJSX("/");return E&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(w,new o.JSXOpeningElement(A,E,_))},m.prototype.parseJSXEmptyExpression=function(){var w=this.createJSXChildNode();return this.collectComments(),this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.finalize(w,new o.JSXEmptyExpression)},m.prototype.parseJSXExpressionContainer=function(){var w=this.createJSXNode();this.expectJSX("{");var v;return this.matchJSX("}")?(v=this.parseJSXEmptyExpression(),this.expectJSX("}")):(this.finishJSX(),v=this.parseAssignmentExpression(),this.reenterJSX()),this.finalize(w,new o.JSXExpressionContainer(v))},m.prototype.parseJSXChildren=function(){for(var w=[];!this.scanner.eof();){var v=this.createJSXChildNode(),A=this.nextJSXText();if(A.start<A.end){var _=this.getTokenRaw(A),E=this.finalize(v,new o.JSXText(A.value,_));w.push(E)}if(this.scanner.source[this.scanner.index]==="{"){var b=this.parseJSXExpressionContainer();w.push(b)}else break}return w},m.prototype.parseComplexJSXElement=function(w){for(var v=[];!this.scanner.eof();){w.children=w.children.concat(this.parseJSXChildren());var A=this.createJSXChildNode(),_=this.parseJSXBoundaryElement();if(_.type===c.JSXSyntax.JSXOpeningElement){var E=_;if(E.selfClosing){var b=this.finalize(A,new o.JSXElement(E,[],null));w.children.push(b)}else v.push(w),w={node:A,opening:E,closing:null,children:[]}}if(_.type===c.JSXSyntax.JSXClosingElement){w.closing=_;var x=d(w.opening.name),y=d(w.closing.name);if(x!==y&&this.tolerateError("Expected corresponding JSX closing tag for %0",x),v.length>0){var b=this.finalize(w.node,new o.JSXElement(w.opening,w.children,w.closing));w=v[v.length-1],w.children.push(b),v.pop()}else break}}return w},m.prototype.parseJSXElement=function(){var w=this.createJSXNode(),v=this.parseJSXOpeningElement(),A=[],_=null;if(!v.selfClosing){var E=this.parseComplexJSXElement({node:w,opening:v,closing:_,children:A});A=E.children,_=E.closing}return this.finalize(w,new o.JSXElement(v,A,_))},m.prototype.parseJSXRoot=function(){this.config.tokens&&this.tokens.pop(),this.startJSX();var w=this.parseJSXElement();return this.finishJSX(),w},m.prototype.isStartOfExpression=function(){return p.prototype.isStartOfExpression.call(this)||this.match("<")},m}(f.Parser);i.JSXParser=g},function(n,i){Object.defineProperty(i,"__esModule",{value:!0});var r={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/};i.Character={fromCodePoint:function(s){return s<65536?String.fromCharCode(s):String.fromCharCode(55296+(s-65536>>10))+String.fromCharCode(56320+(s-65536&1023))},isWhiteSpace:function(s){return s===32||s===9||s===11||s===12||s===160||s>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(s)>=0},isLineTerminator:function(s){return s===10||s===13||s===8232||s===8233},isIdentifierStart:function(s){return s===36||s===95||s>=65&&s<=90||s>=97&&s<=122||s===92||s>=128&&r.NonAsciiIdentifierStart.test(i.Character.fromCodePoint(s))},isIdentifierPart:function(s){return s===36||s===95||s>=65&&s<=90||s>=97&&s<=122||s>=48&&s<=57||s===92||s>=128&&r.NonAsciiIdentifierPart.test(i.Character.fromCodePoint(s))},isDecimalDigit:function(s){return s>=48&&s<=57},isHexDigit:function(s){return s>=48&&s<=57||s>=65&&s<=70||s>=97&&s<=102},isOctalDigit:function(s){return s>=48&&s<=55}}},function(n,i,r){Object.defineProperty(i,"__esModule",{value:!0});var s=r(6),u=function(){function w(v){this.type=s.JSXSyntax.JSXClosingElement,this.name=v}return w}();i.JSXClosingElement=u;var o=function(){function w(v,A,_){this.type=s.JSXSyntax.JSXElement,this.openingElement=v,this.children=A,this.closingElement=_}return w}();i.JSXElement=o;var c=function(){function w(){this.type=s.JSXSyntax.JSXEmptyExpression}return w}();i.JSXEmptyExpression=c;var a=function(){function w(v){this.type=s.JSXSyntax.JSXExpressionContainer,this.expression=v}return w}();i.JSXExpressionContainer=a;var f=function(){function w(v){this.type=s.JSXSyntax.JSXIdentifier,this.name=v}return w}();i.JSXIdentifier=f;var l=function(){function w(v,A){this.type=s.JSXSyntax.JSXMemberExpression,this.object=v,this.property=A}return w}();i.JSXMemberExpression=l;var h=function(){function w(v,A){this.type=s.JSXSyntax.JSXAttribute,this.name=v,this.value=A}return w}();i.JSXAttribute=h;var d=function(){function w(v,A){this.type=s.JSXSyntax.JSXNamespacedName,this.namespace=v,this.name=A}return w}();i.JSXNamespacedName=d;var g=function(){function w(v,A,_){this.type=s.JSXSyntax.JSXOpeningElement,this.name=v,this.selfClosing=A,this.attributes=_}return w}();i.JSXOpeningElement=g;var p=function(){function w(v){this.type=s.JSXSyntax.JSXSpreadAttribute,this.argument=v}return w}();i.JSXSpreadAttribute=p;var m=function(){function w(v,A){this.type=s.JSXSyntax.JSXText,this.value=v,this.raw=A}return w}();i.JSXText=m},function(n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.JSXSyntax={JSXAttribute:"JSXAttribute",JSXClosingElement:"JSXClosingElement",JSXElement:"JSXElement",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXIdentifier:"JSXIdentifier",JSXMemberExpression:"JSXMemberExpression",JSXNamespacedName:"JSXNamespacedName",JSXOpeningElement:"JSXOpeningElement",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText"}},function(n,i,r){Object.defineProperty(i,"__esModule",{value:!0});var s=r(2),u=function(){function Y(Z){this.type=s.Syntax.ArrayExpression,this.elements=Z}return Y}();i.ArrayExpression=u;var o=function(){function Y(Z){this.type=s.Syntax.ArrayPattern,this.elements=Z}return Y}();i.ArrayPattern=o;var c=function(){function Y(Z,ne,Le){this.type=s.Syntax.ArrowFunctionExpression,this.id=null,this.params=Z,this.body=ne,this.generator=!1,this.expression=Le,this.async=!1}return Y}();i.ArrowFunctionExpression=c;var a=function(){function Y(Z,ne,Le){this.type=s.Syntax.AssignmentExpression,this.operator=Z,this.left=ne,this.right=Le}return Y}();i.AssignmentExpression=a;var f=function(){function Y(Z,ne){this.type=s.Syntax.AssignmentPattern,this.left=Z,this.right=ne}return Y}();i.AssignmentPattern=f;var l=function(){function Y(Z,ne,Le){this.type=s.Syntax.ArrowFunctionExpression,this.id=null,this.params=Z,this.body=ne,this.generator=!1,this.expression=Le,this.async=!0}return Y}();i.AsyncArrowFunctionExpression=l;var h=function(){function Y(Z,ne,Le){this.type=s.Syntax.FunctionDeclaration,this.id=Z,this.params=ne,this.body=Le,this.generator=!1,this.expression=!1,this.async=!0}return Y}();i.AsyncFunctionDeclaration=h;var d=function(){function Y(Z,ne,Le){this.type=s.Syntax.FunctionExpression,this.id=Z,this.params=ne,this.body=Le,this.generator=!1,this.expression=!1,this.async=!0}return Y}();i.AsyncFunctionExpression=d;var g=function(){function Y(Z){this.type=s.Syntax.AwaitExpression,this.argument=Z}return Y}();i.AwaitExpression=g;var p=function(){function Y(Z,ne,Le){var It=Z==="||"||Z==="&&";this.type=It?s.Syntax.LogicalExpression:s.Syntax.BinaryExpression,this.operator=Z,this.left=ne,this.right=Le}return Y}();i.BinaryExpression=p;var m=function(){function Y(Z){this.type=s.Syntax.BlockStatement,this.body=Z}return Y}();i.BlockStatement=m;var w=function(){function Y(Z){this.type=s.Syntax.BreakStatement,this.label=Z}return Y}();i.BreakStatement=w;var v=function(){function Y(Z,ne){this.type=s.Syntax.CallExpression,this.callee=Z,this.arguments=ne}return Y}();i.CallExpression=v;var A=function(){function Y(Z,ne){this.type=s.Syntax.CatchClause,this.param=Z,this.body=ne}return Y}();i.CatchClause=A;var _=function(){function Y(Z){this.type=s.Syntax.ClassBody,this.body=Z}return Y}();i.ClassBody=_;var E=function(){function Y(Z,ne,Le){this.type=s.Syntax.ClassDeclaration,this.id=Z,this.superClass=ne,this.body=Le}return Y}();i.ClassDeclaration=E;var b=function(){function Y(Z,ne,Le){this.type=s.Syntax.ClassExpression,this.id=Z,this.superClass=ne,this.body=Le}return Y}();i.ClassExpression=b;var x=function(){function Y(Z,ne){this.type=s.Syntax.MemberExpression,this.computed=!0,this.object=Z,this.property=ne}return Y}();i.ComputedMemberExpression=x;var y=function(){function Y(Z,ne,Le){this.type=s.Syntax.ConditionalExpression,this.test=Z,this.consequent=ne,this.alternate=Le}return Y}();i.ConditionalExpression=y;var C=function(){function Y(Z){this.type=s.Syntax.ContinueStatement,this.label=Z}return Y}();i.ContinueStatement=C;var B=function(){function Y(){this.type=s.Syntax.DebuggerStatement}return Y}();i.DebuggerStatement=B;var T=function(){function Y(Z,ne){this.type=s.Syntax.ExpressionStatement,this.expression=Z,this.directive=ne}return Y}();i.Directive=T;var M=function(){function Y(Z,ne){this.type=s.Syntax.DoWhileStatement,this.body=Z,this.test=ne}return Y}();i.DoWhileStatement=M;var R=function(){function Y(){this.type=s.Syntax.EmptyStatement}return Y}();i.EmptyStatement=R;var I=function(){function Y(Z){this.type=s.Syntax.ExportAllDeclaration,this.source=Z}return Y}();i.ExportAllDeclaration=I;var H=function(){function Y(Z){this.type=s.Syntax.ExportDefaultDeclaration,this.declaration=Z}return Y}();i.ExportDefaultDeclaration=H;var P=function(){function Y(Z,ne,Le){this.type=s.Syntax.ExportNamedDeclaration,this.declaration=Z,this.specifiers=ne,this.source=Le}return Y}();i.ExportNamedDeclaration=P;var j=function(){function Y(Z,ne){this.type=s.Syntax.ExportSpecifier,this.exported=ne,this.local=Z}return Y}();i.ExportSpecifier=j;var V=function(){function Y(Z){this.type=s.Syntax.ExpressionStatement,this.expression=Z}return Y}();i.ExpressionStatement=V;var K=function(){function Y(Z,ne,Le){this.type=s.Syntax.ForInStatement,this.left=Z,this.right=ne,this.body=Le,this.each=!1}return Y}();i.ForInStatement=K;var N=function(){function Y(Z,ne,Le){this.type=s.Syntax.ForOfStatement,this.left=Z,this.right=ne,this.body=Le}return Y}();i.ForOfStatement=N;var k=function(){function Y(Z,ne,Le,It){this.type=s.Syntax.ForStatement,this.init=Z,this.test=ne,this.update=Le,this.body=It}return Y}();i.ForStatement=k;var $=function(){function Y(Z,ne,Le,It){this.type=s.Syntax.FunctionDeclaration,this.id=Z,this.params=ne,this.body=Le,this.generator=It,this.expression=!1,this.async=!1}return Y}();i.FunctionDeclaration=$;var z=function(){function Y(Z,ne,Le,It){this.type=s.Syntax.FunctionExpression,this.id=Z,this.params=ne,this.body=Le,this.generator=It,this.expression=!1,this.async=!1}return Y}();i.FunctionExpression=z;var U=function(){function Y(Z){this.type=s.Syntax.Identifier,this.name=Z}return Y}();i.Identifier=U;var G=function(){function Y(Z,ne,Le){this.type=s.Syntax.IfStatement,this.test=Z,this.consequent=ne,this.alternate=Le}return Y}();i.IfStatement=G;var Q=function(){function Y(Z,ne){this.type=s.Syntax.ImportDeclaration,this.specifiers=Z,this.source=ne}return Y}();i.ImportDeclaration=Q;var X=function(){function Y(Z){this.type=s.Syntax.ImportDefaultSpecifier,this.local=Z}return Y}();i.ImportDefaultSpecifier=X;var te=function(){function Y(Z){this.type=s.Syntax.ImportNamespaceSpecifier,this.local=Z}return Y}();i.ImportNamespaceSpecifier=te;var le=function(){function Y(Z,ne){this.type=s.Syntax.ImportSpecifier,this.local=Z,this.imported=ne}return Y}();i.ImportSpecifier=le;var ye=function(){function Y(Z,ne){this.type=s.Syntax.LabeledStatement,this.label=Z,this.body=ne}return Y}();i.LabeledStatement=ye;var ve=function(){function Y(Z,ne){this.type=s.Syntax.Literal,this.value=Z,this.raw=ne}return Y}();i.Literal=ve;var ee=function(){function Y(Z,ne){this.type=s.Syntax.MetaProperty,this.meta=Z,this.property=ne}return Y}();i.MetaProperty=ee;var ce=function(){function Y(Z,ne,Le,It,Yo){this.type=s.Syntax.MethodDefinition,this.key=Z,this.computed=ne,this.value=Le,this.kind=It,this.static=Yo}return Y}();i.MethodDefinition=ce;var he=function(){function Y(Z){this.type=s.Syntax.Program,this.body=Z,this.sourceType="module"}return Y}();i.Module=he;var je=function(){function Y(Z,ne){this.type=s.Syntax.NewExpression,this.callee=Z,this.arguments=ne}return Y}();i.NewExpression=je;var Ve=function(){function Y(Z){this.type=s.Syntax.ObjectExpression,this.properties=Z}return Y}();i.ObjectExpression=Ve;var ge=function(){function Y(Z){this.type=s.Syntax.ObjectPattern,this.properties=Z}return Y}();i.ObjectPattern=ge;var Tt=function(){function Y(Z,ne,Le,It,Yo,gg){this.type=s.Syntax.Property,this.key=ne,this.computed=Le,this.value=It,this.kind=Z,this.method=Yo,this.shorthand=gg}return Y}();i.Property=Tt;var Re=function(){function Y(Z,ne,Le,It){this.type=s.Syntax.Literal,this.value=Z,this.raw=ne,this.regex={pattern:Le,flags:It}}return Y}();i.RegexLiteral=Re;var Te=function(){function Y(Z){this.type=s.Syntax.RestElement,this.argument=Z}return Y}();i.RestElement=Te;var bt=function(){function Y(Z){this.type=s.Syntax.ReturnStatement,this.argument=Z}return Y}();i.ReturnStatement=bt;var ue=function(){function Y(Z){this.type=s.Syntax.Program,this.body=Z,this.sourceType="script"}return Y}();i.Script=ue;var Ft=function(){function Y(Z){this.type=s.Syntax.SequenceExpression,this.expressions=Z}return Y}();i.SequenceExpression=Ft;var ln=function(){function Y(Z){this.type=s.Syntax.SpreadElement,this.argument=Z}return Y}();i.SpreadElement=ln;var re=function(){function Y(Z,ne){this.type=s.Syntax.MemberExpression,this.computed=!1,this.object=Z,this.property=ne}return Y}();i.StaticMemberExpression=re;var me=function(){function Y(){this.type=s.Syntax.Super}return Y}();i.Super=me;var L=function(){function Y(Z,ne){this.type=s.Syntax.SwitchCase,this.test=Z,this.consequent=ne}return Y}();i.SwitchCase=L;var F=function(){function Y(Z,ne){this.type=s.Syntax.SwitchStatement,this.discriminant=Z,this.cases=ne}return Y}();i.SwitchStatement=F;var D=function(){function Y(Z,ne){this.type=s.Syntax.TaggedTemplateExpression,this.tag=Z,this.quasi=ne}return Y}();i.TaggedTemplateExpression=D;var O=function(){function Y(Z,ne){this.type=s.Syntax.TemplateElement,this.value=Z,this.tail=ne}return Y}();i.TemplateElement=O;var W=function(){function Y(Z,ne){this.type=s.Syntax.TemplateLiteral,this.quasis=Z,this.expressions=ne}return Y}();i.TemplateLiteral=W;var J=function(){function Y(){this.type=s.Syntax.ThisExpression}return Y}();i.ThisExpression=J;var q=function(){function Y(Z){this.type=s.Syntax.ThrowStatement,this.argument=Z}return Y}();i.ThrowStatement=q;var ke=function(){function Y(Z,ne,Le){this.type=s.Syntax.TryStatement,this.block=Z,this.handler=ne,this.finalizer=Le}return Y}();i.TryStatement=ke;var Ge=function(){function Y(Z,ne){this.type=s.Syntax.UnaryExpression,this.operator=Z,this.argument=ne,this.prefix=!0}return Y}();i.UnaryExpression=Ge;var We=function(){function Y(Z,ne,Le){this.type=s.Syntax.UpdateExpression,this.operator=Z,this.argument=ne,this.prefix=Le}return Y}();i.UpdateExpression=We;var Ze=function(){function Y(Z,ne){this.type=s.Syntax.VariableDeclaration,this.declarations=Z,this.kind=ne}return Y}();i.VariableDeclaration=Ze;var Ne=function(){function Y(Z,ne){this.type=s.Syntax.VariableDeclarator,this.id=Z,this.init=ne}return Y}();i.VariableDeclarator=Ne;var de=function(){function Y(Z,ne){this.type=s.Syntax.WhileStatement,this.test=Z,this.body=ne}return Y}();i.WhileStatement=de;var Ke=function(){function Y(Z,ne){this.type=s.Syntax.WithStatement,this.object=Z,this.body=ne}return Y}();i.WithStatement=Ke;var ui=function(){function Y(Z,ne){this.type=s.Syntax.YieldExpression,this.argument=Z,this.delegate=ne}return Y}();i.YieldExpression=ui},function(n,i,r){Object.defineProperty(i,"__esModule",{value:!0});var s=r(9),u=r(10),o=r(11),c=r(7),a=r(12),f=r(2),l=r(13),h="ArrowParameterPlaceHolder",d=function(){function g(p,m,w){m===void 0&&(m={}),this.config={range:typeof m.range=="boolean"&&m.range,loc:typeof m.loc=="boolean"&&m.loc,source:null,tokens:typeof m.tokens=="boolean"&&m.tokens,comment:typeof m.comment=="boolean"&&m.comment,tolerant:typeof m.tolerant=="boolean"&&m.tolerant},this.config.loc&&m.source&&m.source!==null&&(this.config.source=String(m.source)),this.delegate=w,this.errorHandler=new u.ErrorHandler,this.errorHandler.tolerant=this.config.tolerant,this.scanner=new a.Scanner(p,this.errorHandler),this.scanner.trackComment=this.config.comment,this.operatorPrecedence={")":0,";":0,",":0,"=":0,"]":0,"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":11,"/":11,"%":11},this.lookahead={type:2,value:"",lineNumber:this.scanner.lineNumber,lineStart:0,start:0,end:0},this.hasLineTerminator=!1,this.context={isModule:!1,await:!1,allowIn:!0,allowStrictDirective:!0,allowYield:!0,firstCoverInitializedNameError:null,isAssignmentTarget:!1,isBindingElement:!1,inFunctionBody:!1,inIteration:!1,inSwitch:!1,labelSet:{},strict:!1},this.tokens=[],this.startMarker={index:0,line:this.scanner.lineNumber,column:0},this.lastMarker={index:0,line:this.scanner.lineNumber,column:0},this.nextToken(),this.lastMarker={index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}return g.prototype.throwError=function(p){for(var m=[],w=1;w<arguments.length;w++)m[w-1]=arguments[w];var v=Array.prototype.slice.call(arguments,1),A=p.replace(/%(\d)/g,function(x,y){return s.assert(y<v.length,"Message reference must be in range"),v[y]}),_=this.lastMarker.index,E=this.lastMarker.line,b=this.lastMarker.column+1;throw this.errorHandler.createError(_,E,b,A)},g.prototype.tolerateError=function(p){for(var m=[],w=1;w<arguments.length;w++)m[w-1]=arguments[w];var v=Array.prototype.slice.call(arguments,1),A=p.replace(/%(\d)/g,function(x,y){return s.assert(y<v.length,"Message reference must be in range"),v[y]}),_=this.lastMarker.index,E=this.scanner.lineNumber,b=this.lastMarker.column+1;this.errorHandler.tolerateError(_,E,b,A)},g.prototype.unexpectedTokenError=function(p,m){var w=m||o.Messages.UnexpectedToken,v;if(p?(m||(w=p.type===2?o.Messages.UnexpectedEOS:p.type===3?o.Messages.UnexpectedIdentifier:p.type===6?o.Messages.UnexpectedNumber:p.type===8?o.Messages.UnexpectedString:p.type===10?o.Messages.UnexpectedTemplate:o.Messages.UnexpectedToken,p.type===4&&(this.scanner.isFutureReservedWord(p.value)?w=o.Messages.UnexpectedReserved:this.context.strict&&this.scanner.isStrictModeReservedWord(p.value)&&(w=o.Messages.StrictReservedWord))),v=p.value):v="ILLEGAL",w=w.replace("%0",v),p&&typeof p.lineNumber=="number"){var A=p.start,_=p.lineNumber,E=this.lastMarker.index-this.lastMarker.column,b=p.start-E+1;return this.errorHandler.createError(A,_,b,w)}else{var A=this.lastMarker.index,_=this.lastMarker.line,b=this.lastMarker.column+1;return this.errorHandler.createError(A,_,b,w)}},g.prototype.throwUnexpectedToken=function(p,m){throw this.unexpectedTokenError(p,m)},g.prototype.tolerateUnexpectedToken=function(p,m){this.errorHandler.tolerate(this.unexpectedTokenError(p,m))},g.prototype.collectComments=function(){if(!this.config.comment)this.scanner.scanComments();else{var p=this.scanner.scanComments();if(p.length>0&&this.delegate)for(var m=0;m<p.length;++m){var w=p[m],v=void 0;v={type:w.multiLine?"BlockComment":"LineComment",value:this.scanner.source.slice(w.slice[0],w.slice[1])},this.config.range&&(v.range=w.range),this.config.loc&&(v.loc=w.loc);var A={start:{line:w.loc.start.line,column:w.loc.start.column,offset:w.range[0]},end:{line:w.loc.end.line,column:w.loc.end.column,offset:w.range[1]}};this.delegate(v,A)}}},g.prototype.getTokenRaw=function(p){return this.scanner.source.slice(p.start,p.end)},g.prototype.convertToken=function(p){var m={type:l.TokenName[p.type],value:this.getTokenRaw(p)};if(this.config.range&&(m.range=[p.start,p.end]),this.config.loc&&(m.loc={start:{line:this.startMarker.line,column:this.startMarker.column},end:{line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}),p.type===9){var w=p.pattern,v=p.flags;m.regex={pattern:w,flags:v}}return m},g.prototype.nextToken=function(){var p=this.lookahead;this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.collectComments(),this.scanner.index!==this.startMarker.index&&(this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart);var m=this.scanner.lex();return this.hasLineTerminator=p.lineNumber!==m.lineNumber,m&&this.context.strict&&m.type===3&&this.scanner.isStrictModeReservedWord(m.value)&&(m.type=4),this.lookahead=m,this.config.tokens&&m.type!==2&&this.tokens.push(this.convertToken(m)),p},g.prototype.nextRegexToken=function(){this.collectComments();var p=this.scanner.scanRegExp();return this.config.tokens&&(this.tokens.pop(),this.tokens.push(this.convertToken(p))),this.lookahead=p,this.nextToken(),p},g.prototype.createNode=function(){return{index:this.startMarker.index,line:this.startMarker.line,column:this.startMarker.column}},g.prototype.startNode=function(p,m){m===void 0&&(m=0);var w=p.start-p.lineStart,v=p.lineNumber;return w<0&&(w+=m,v--),{index:p.start,line:v,column:w}},g.prototype.finalize=function(p,m){if(this.config.range&&(m.range=[p.index,this.lastMarker.index]),this.config.loc&&(m.loc={start:{line:p.line,column:p.column},end:{line:this.lastMarker.line,column:this.lastMarker.column}},this.config.source&&(m.loc.source=this.config.source)),this.delegate){var w={start:{line:p.line,column:p.column,offset:p.index},end:{line:this.lastMarker.line,column:this.lastMarker.column,offset:this.lastMarker.index}};this.delegate(m,w)}return m},g.prototype.expect=function(p){var m=this.nextToken();(m.type!==7||m.value!==p)&&this.throwUnexpectedToken(m)},g.prototype.expectCommaSeparator=function(){if(this.config.tolerant){var p=this.lookahead;p.type===7&&p.value===","?this.nextToken():p.type===7&&p.value===";"?(this.nextToken(),this.tolerateUnexpectedToken(p)):this.tolerateUnexpectedToken(p,o.Messages.UnexpectedToken)}else this.expect(",")},g.prototype.expectKeyword=function(p){var m=this.nextToken();(m.type!==4||m.value!==p)&&this.throwUnexpectedToken(m)},g.prototype.match=function(p){return this.lookahead.type===7&&this.lookahead.value===p},g.prototype.matchKeyword=function(p){return this.lookahead.type===4&&this.lookahead.value===p},g.prototype.matchContextualKeyword=function(p){return this.lookahead.type===3&&this.lookahead.value===p},g.prototype.matchAssign=function(){if(this.lookahead.type!==7)return!1;var p=this.lookahead.value;return p==="="||p==="*="||p==="**="||p==="/="||p==="%="||p==="+="||p==="-="||p==="<<="||p===">>="||p===">>>="||p==="&="||p==="^="||p==="|="},g.prototype.isolateCoverGrammar=function(p){var m=this.context.isBindingElement,w=this.context.isAssignmentTarget,v=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var A=p.call(this);return this.context.firstCoverInitializedNameError!==null&&this.throwUnexpectedToken(this.context.firstCoverInitializedNameError),this.context.isBindingElement=m,this.context.isAssignmentTarget=w,this.context.firstCoverInitializedNameError=v,A},g.prototype.inheritCoverGrammar=function(p){var m=this.context.isBindingElement,w=this.context.isAssignmentTarget,v=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var A=p.call(this);return this.context.isBindingElement=this.context.isBindingElement&&m,this.context.isAssignmentTarget=this.context.isAssignmentTarget&&w,this.context.firstCoverInitializedNameError=v||this.context.firstCoverInitializedNameError,A},g.prototype.consumeSemicolon=function(){this.match(";")?this.nextToken():this.hasLineTerminator||(this.lookahead.type!==2&&!this.match("}")&&this.throwUnexpectedToken(this.lookahead),this.lastMarker.index=this.startMarker.index,this.lastMarker.line=this.startMarker.line,this.lastMarker.column=this.startMarker.column)},g.prototype.parsePrimaryExpression=function(){var p=this.createNode(),m,w,v;switch(this.lookahead.type){case 3:(this.context.isModule||this.context.await)&&this.lookahead.value==="await"&&this.tolerateUnexpectedToken(this.lookahead),m=this.matchAsyncFunction()?this.parseFunctionExpression():this.finalize(p,new c.Identifier(this.nextToken().value));break;case 6:case 8:this.context.strict&&this.lookahead.octal&&this.tolerateUnexpectedToken(this.lookahead,o.Messages.StrictOctalLiteral),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,w=this.nextToken(),v=this.getTokenRaw(w),m=this.finalize(p,new c.Literal(w.value,v));break;case 1:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,w=this.nextToken(),v=this.getTokenRaw(w),m=this.finalize(p,new c.Literal(w.value==="true",v));break;case 5:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,w=this.nextToken(),v=this.getTokenRaw(w),m=this.finalize(p,new c.Literal(null,v));break;case 10:m=this.parseTemplateLiteral();break;case 7:switch(this.lookahead.value){case"(":this.context.isBindingElement=!1,m=this.inheritCoverGrammar(this.parseGroupExpression);break;case"[":m=this.inheritCoverGrammar(this.parseArrayInitializer);break;case"{":m=this.inheritCoverGrammar(this.parseObjectInitializer);break;case"/":case"/=":this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.scanner.index=this.startMarker.index,w=this.nextRegexToken(),v=this.getTokenRaw(w),m=this.finalize(p,new c.RegexLiteral(w.regex,v,w.pattern,w.flags));break;default:m=this.throwUnexpectedToken(this.nextToken())}break;case 4:!this.context.strict&&this.context.allowYield&&this.matchKeyword("yield")?m=this.parseIdentifierName():!this.context.strict&&this.matchKeyword("let")?m=this.finalize(p,new c.Identifier(this.nextToken().value)):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.matchKeyword("function")?m=this.parseFunctionExpression():this.matchKeyword("this")?(this.nextToken(),m=this.finalize(p,new c.ThisExpression)):this.matchKeyword("class")?m=this.parseClassExpression():m=this.throwUnexpectedToken(this.nextToken()));break;default:m=this.throwUnexpectedToken(this.nextToken())}return m},g.prototype.parseSpreadElement=function(){var p=this.createNode();this.expect("...");var m=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(p,new c.SpreadElement(m))},g.prototype.parseArrayInitializer=function(){var p=this.createNode(),m=[];for(this.expect("[");!this.match("]");)if(this.match(","))this.nextToken(),m.push(null);else if(this.match("...")){var w=this.parseSpreadElement();this.match("]")||(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.expect(",")),m.push(w)}else m.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.match("]")||this.expect(",");return this.expect("]"),this.finalize(p,new c.ArrayExpression(m))},g.prototype.parsePropertyMethod=function(p){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var m=this.context.strict,w=this.context.allowStrictDirective;this.context.allowStrictDirective=p.simple;var v=this.isolateCoverGrammar(this.parseFunctionSourceElements);return this.context.strict&&p.firstRestricted&&this.tolerateUnexpectedToken(p.firstRestricted,p.message),this.context.strict&&p.stricted&&this.tolerateUnexpectedToken(p.stricted,p.message),this.context.strict=m,this.context.allowStrictDirective=w,v},g.prototype.parsePropertyMethodFunction=function(){var p=!1,m=this.createNode(),w=this.context.allowYield;this.context.allowYield=!0;var v=this.parseFormalParameters(),A=this.parsePropertyMethod(v);return this.context.allowYield=w,this.finalize(m,new c.FunctionExpression(null,v.params,A,p))},g.prototype.parsePropertyMethodAsyncFunction=function(){var p=this.createNode(),m=this.context.allowYield,w=this.context.await;this.context.allowYield=!1,this.context.await=!0;var v=this.parseFormalParameters(),A=this.parsePropertyMethod(v);return this.context.allowYield=m,this.context.await=w,this.finalize(p,new c.AsyncFunctionExpression(null,v.params,A))},g.prototype.parseObjectPropertyKey=function(){var p=this.createNode(),m=this.nextToken(),w;switch(m.type){case 8:case 6:this.context.strict&&m.octal&&this.tolerateUnexpectedToken(m,o.Messages.StrictOctalLiteral);var v=this.getTokenRaw(m);w=this.finalize(p,new c.Literal(m.value,v));break;case 3:case 1:case 5:case 4:w=this.finalize(p,new c.Identifier(m.value));break;case 7:m.value==="["?(w=this.isolateCoverGrammar(this.parseAssignmentExpression),this.expect("]")):w=this.throwUnexpectedToken(m);break;default:w=this.throwUnexpectedToken(m)}return w},g.prototype.isPropertyKey=function(p,m){return p.type===f.Syntax.Identifier&&p.name===m||p.type===f.Syntax.Literal&&p.value===m},g.prototype.parseObjectProperty=function(p){var m=this.createNode(),w=this.lookahead,v,A=null,_=null,E=!1,b=!1,x=!1,y=!1;if(w.type===3){var C=w.value;this.nextToken(),E=this.match("["),y=!this.hasLineTerminator&&C==="async"&&!this.match(":")&&!this.match("(")&&!this.match("*")&&!this.match(","),A=y?this.parseObjectPropertyKey():this.finalize(m,new c.Identifier(C))}else this.match("*")?this.nextToken():(E=this.match("["),A=this.parseObjectPropertyKey());var B=this.qualifiedPropertyName(this.lookahead);if(w.type===3&&!y&&w.value==="get"&&B)v="get",E=this.match("["),A=this.parseObjectPropertyKey(),this.context.allowYield=!1,_=this.parseGetterMethod();else if(w.type===3&&!y&&w.value==="set"&&B)v="set",E=this.match("["),A=this.parseObjectPropertyKey(),_=this.parseSetterMethod();else if(w.type===7&&w.value==="*"&&B)v="init",E=this.match("["),A=this.parseObjectPropertyKey(),_=this.parseGeneratorMethod(),b=!0;else if(A||this.throwUnexpectedToken(this.lookahead),v="init",this.match(":")&&!y)!E&&this.isPropertyKey(A,"__proto__")&&(p.value&&this.tolerateError(o.Messages.DuplicateProtoProperty),p.value=!0),this.nextToken(),_=this.inheritCoverGrammar(this.parseAssignmentExpression);else if(this.match("("))_=y?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),b=!0;else if(w.type===3){var C=this.finalize(m,new c.Identifier(w.value));if(this.match("=")){this.context.firstCoverInitializedNameError=this.lookahead,this.nextToken(),x=!0;var T=this.isolateCoverGrammar(this.parseAssignmentExpression);_=this.finalize(m,new c.AssignmentPattern(C,T))}else x=!0,_=C}else this.throwUnexpectedToken(this.nextToken());return this.finalize(m,new c.Property(v,A,E,_,b,x))},g.prototype.parseObjectInitializer=function(){var p=this.createNode();this.expect("{");for(var m=[],w={value:!1};!this.match("}");)m.push(this.parseObjectProperty(w)),this.match("}")||this.expectCommaSeparator();return this.expect("}"),this.finalize(p,new c.ObjectExpression(m))},g.prototype.parseTemplateHead=function(){s.assert(this.lookahead.head,"Template literal must start with a template head");var p=this.createNode(),m=this.nextToken(),w=m.value,v=m.cooked;return this.finalize(p,new c.TemplateElement({raw:w,cooked:v},m.tail))},g.prototype.parseTemplateElement=function(){this.lookahead.type!==10&&this.throwUnexpectedToken();var p=this.createNode(),m=this.nextToken(),w=m.value,v=m.cooked;return this.finalize(p,new c.TemplateElement({raw:w,cooked:v},m.tail))},g.prototype.parseTemplateLiteral=function(){var p=this.createNode(),m=[],w=[],v=this.parseTemplateHead();for(w.push(v);!v.tail;)m.push(this.parseExpression()),v=this.parseTemplateElement(),w.push(v);return this.finalize(p,new c.TemplateLiteral(w,m))},g.prototype.reinterpretExpressionAsPattern=function(p){switch(p.type){case f.Syntax.Identifier:case f.Syntax.MemberExpression:case f.Syntax.RestElement:case f.Syntax.AssignmentPattern:break;case f.Syntax.SpreadElement:p.type=f.Syntax.RestElement,this.reinterpretExpressionAsPattern(p.argument);break;case f.Syntax.ArrayExpression:p.type=f.Syntax.ArrayPattern;for(var m=0;m<p.elements.length;m++)p.elements[m]!==null&&this.reinterpretExpressionAsPattern(p.elements[m]);break;case f.Syntax.ObjectExpression:p.type=f.Syntax.ObjectPattern;for(var m=0;m<p.properties.length;m++)this.reinterpretExpressionAsPattern(p.properties[m].value);break;case f.Syntax.AssignmentExpression:p.type=f.Syntax.AssignmentPattern,delete p.operator,this.reinterpretExpressionAsPattern(p.left);break}},g.prototype.parseGroupExpression=function(){var p;if(this.expect("("),this.match(")"))this.nextToken(),this.match("=>")||this.expect("=>"),p={type:h,params:[],async:!1};else{var m=this.lookahead,w=[];if(this.match("..."))p=this.parseRestElement(w),this.expect(")"),this.match("=>")||this.expect("=>"),p={type:h,params:[p],async:!1};else{var v=!1;if(this.context.isBindingElement=!0,p=this.inheritCoverGrammar(this.parseAssignmentExpression),this.match(",")){var A=[];for(this.context.isAssignmentTarget=!1,A.push(p);this.lookahead.type!==2&&this.match(",");){if(this.nextToken(),this.match(")")){this.nextToken();for(var _=0;_<A.length;_++)this.reinterpretExpressionAsPattern(A[_]);v=!0,p={type:h,params:A,async:!1}}else if(this.match("...")){this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),A.push(this.parseRestElement(w)),this.expect(")"),this.match("=>")||this.expect("=>"),this.context.isBindingElement=!1;for(var _=0;_<A.length;_++)this.reinterpretExpressionAsPattern(A[_]);v=!0,p={type:h,params:A,async:!1}}else A.push(this.inheritCoverGrammar(this.parseAssignmentExpression));if(v)break}v||(p=this.finalize(this.startNode(m),new c.SequenceExpression(A)))}if(!v){if(this.expect(")"),this.match("=>")&&(p.type===f.Syntax.Identifier&&p.name==="yield"&&(v=!0,p={type:h,params:[p],async:!1}),!v)){if(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),p.type===f.Syntax.SequenceExpression)for(var _=0;_<p.expressions.length;_++)this.reinterpretExpressionAsPattern(p.expressions[_]);else this.reinterpretExpressionAsPattern(p);var E=p.type===f.Syntax.SequenceExpression?p.expressions:[p];p={type:h,params:E,async:!1}}this.context.isBindingElement=!1}}}return p},g.prototype.parseArguments=function(){this.expect("(");var p=[];if(!this.match(")"))for(;;){var m=this.match("...")?this.parseSpreadElement():this.isolateCoverGrammar(this.parseAssignmentExpression);if(p.push(m),this.match(")")||(this.expectCommaSeparator(),this.match(")")))break}return this.expect(")"),p},g.prototype.isIdentifierName=function(p){return p.type===3||p.type===4||p.type===1||p.type===5},g.prototype.parseIdentifierName=function(){var p=this.createNode(),m=this.nextToken();return this.isIdentifierName(m)||this.throwUnexpectedToken(m),this.finalize(p,new c.Identifier(m.value))},g.prototype.parseNewExpression=function(){var p=this.createNode(),m=this.parseIdentifierName();s.assert(m.name==="new","New expression must start with `new`");var w;if(this.match("."))if(this.nextToken(),this.lookahead.type===3&&this.context.inFunctionBody&&this.lookahead.value==="target"){var v=this.parseIdentifierName();w=new c.MetaProperty(m,v)}else this.throwUnexpectedToken(this.lookahead);else{var A=this.isolateCoverGrammar(this.parseLeftHandSideExpression),_=this.match("(")?this.parseArguments():[];w=new c.NewExpression(A,_),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return this.finalize(p,w)},g.prototype.parseAsyncArgument=function(){var p=this.parseAssignmentExpression();return this.context.firstCoverInitializedNameError=null,p},g.prototype.parseAsyncArguments=function(){this.expect("(");var p=[];if(!this.match(")"))for(;;){var m=this.match("...")?this.parseSpreadElement():this.isolateCoverGrammar(this.parseAsyncArgument);if(p.push(m),this.match(")")||(this.expectCommaSeparator(),this.match(")")))break}return this.expect(")"),p},g.prototype.parseLeftHandSideExpressionAllowCall=function(){var p=this.lookahead,m=this.matchContextualKeyword("async"),w=this.context.allowIn;this.context.allowIn=!0;var v;for(this.matchKeyword("super")&&this.context.inFunctionBody?(v=this.createNode(),this.nextToken(),v=this.finalize(v,new c.Super),!this.match("(")&&!this.match(".")&&!this.match("[")&&this.throwUnexpectedToken(this.lookahead)):v=this.inheritCoverGrammar(this.matchKeyword("new")?this.parseNewExpression:this.parsePrimaryExpression);;)if(this.match(".")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect(".");var A=this.parseIdentifierName();v=this.finalize(this.startNode(p),new c.StaticMemberExpression(v,A))}else if(this.match("(")){var _=m&&p.lineNumber===this.lookahead.lineNumber;this.context.isBindingElement=!1,this.context.isAssignmentTarget=!1;var E=_?this.parseAsyncArguments():this.parseArguments();if(v=this.finalize(this.startNode(p),new c.CallExpression(v,E)),_&&this.match("=>")){for(var b=0;b<E.length;++b)this.reinterpretExpressionAsPattern(E[b]);v={type:h,params:E,async:!0}}}else if(this.match("[")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect("[");var A=this.isolateCoverGrammar(this.parseExpression);this.expect("]"),v=this.finalize(this.startNode(p),new c.ComputedMemberExpression(v,A))}else if(this.lookahead.type===10&&this.lookahead.head){var x=this.parseTemplateLiteral();v=this.finalize(this.startNode(p),new c.TaggedTemplateExpression(v,x))}else break;return this.context.allowIn=w,v},g.prototype.parseSuper=function(){var p=this.createNode();return this.expectKeyword("super"),!this.match("[")&&!this.match(".")&&this.throwUnexpectedToken(this.lookahead),this.finalize(p,new c.Super)},g.prototype.parseLeftHandSideExpression=function(){s.assert(this.context.allowIn,"callee of new expression always allow in keyword.");for(var p=this.startNode(this.lookahead),m=this.matchKeyword("super")&&this.context.inFunctionBody?this.parseSuper():this.inheritCoverGrammar(this.matchKeyword("new")?this.parseNewExpression:this.parsePrimaryExpression);;)if(this.match("[")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect("[");var w=this.isolateCoverGrammar(this.parseExpression);this.expect("]"),m=this.finalize(p,new c.ComputedMemberExpression(m,w))}else if(this.match(".")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect(".");var w=this.parseIdentifierName();m=this.finalize(p,new c.StaticMemberExpression(m,w))}else if(this.lookahead.type===10&&this.lookahead.head){var v=this.parseTemplateLiteral();m=this.finalize(p,new c.TaggedTemplateExpression(m,v))}else break;return m},g.prototype.parseUpdateExpression=function(){var p,m=this.lookahead;if(this.match("++")||this.match("--")){var w=this.startNode(m),v=this.nextToken();p=this.inheritCoverGrammar(this.parseUnaryExpression),this.context.strict&&p.type===f.Syntax.Identifier&&this.scanner.isRestrictedWord(p.name)&&this.tolerateError(o.Messages.StrictLHSPrefix),this.context.isAssignmentTarget||this.tolerateError(o.Messages.InvalidLHSInAssignment);var A=!0;p=this.finalize(w,new c.UpdateExpression(v.value,p,A)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}else if(p=this.inheritCoverGrammar(this.parseLeftHandSideExpressionAllowCall),!this.hasLineTerminator&&this.lookahead.type===7&&(this.match("++")||this.match("--"))){this.context.strict&&p.type===f.Syntax.Identifier&&this.scanner.isRestrictedWord(p.name)&&this.tolerateError(o.Messages.StrictLHSPostfix),this.context.isAssignmentTarget||this.tolerateError(o.Messages.InvalidLHSInAssignment),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var _=this.nextToken().value,A=!1;p=this.finalize(this.startNode(m),new c.UpdateExpression(_,p,A))}return p},g.prototype.parseAwaitExpression=function(){var p=this.createNode();this.nextToken();var m=this.parseUnaryExpression();return this.finalize(p,new c.AwaitExpression(m))},g.prototype.parseUnaryExpression=function(){var p;if(this.match("+")||this.match("-")||this.match("~")||this.match("!")||this.matchKeyword("delete")||this.matchKeyword("void")||this.matchKeyword("typeof")){var m=this.startNode(this.lookahead),w=this.nextToken();p=this.inheritCoverGrammar(this.parseUnaryExpression),p=this.finalize(m,new c.UnaryExpression(w.value,p)),this.context.strict&&p.operator==="delete"&&p.argument.type===f.Syntax.Identifier&&this.tolerateError(o.Messages.StrictDelete),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}else this.context.await&&this.matchContextualKeyword("await")?p=this.parseAwaitExpression():p=this.parseUpdateExpression();return p},g.prototype.parseExponentiationExpression=function(){var p=this.lookahead,m=this.inheritCoverGrammar(this.parseUnaryExpression);if(m.type!==f.Syntax.UnaryExpression&&this.match("**")){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var w=m,v=this.isolateCoverGrammar(this.parseExponentiationExpression);m=this.finalize(this.startNode(p),new c.BinaryExpression("**",w,v))}return m},g.prototype.binaryPrecedence=function(p){var m=p.value,w;return p.type===7?w=this.operatorPrecedence[m]||0:p.type===4?w=m==="instanceof"||this.context.allowIn&&m==="in"?7:0:w=0,w},g.prototype.parseBinaryExpression=function(){var p=this.lookahead,m=this.inheritCoverGrammar(this.parseExponentiationExpression),w=this.lookahead,v=this.binaryPrecedence(w);if(v>0){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;for(var A=[p,this.lookahead],_=m,E=this.isolateCoverGrammar(this.parseExponentiationExpression),b=[_,w.value,E],x=[v];v=this.binaryPrecedence(this.lookahead),!(v<=0);){for(;b.length>2&&v<=x[x.length-1];){E=b.pop();var y=b.pop();x.pop(),_=b.pop(),A.pop();var C=this.startNode(A[A.length-1]);b.push(this.finalize(C,new c.BinaryExpression(y,_,E)))}b.push(this.nextToken().value),x.push(v),A.push(this.lookahead),b.push(this.isolateCoverGrammar(this.parseExponentiationExpression))}var B=b.length-1;m=b[B];for(var T=A.pop();B>1;){var M=A.pop(),R=T&&T.lineStart,C=this.startNode(M,R),y=b[B-1];m=this.finalize(C,new c.BinaryExpression(y,b[B-2],m)),B-=2,T=M}}return m},g.prototype.parseConditionalExpression=function(){var p=this.lookahead,m=this.inheritCoverGrammar(this.parseBinaryExpression);if(this.match("?")){this.nextToken();var w=this.context.allowIn;this.context.allowIn=!0;var v=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=w,this.expect(":");var A=this.isolateCoverGrammar(this.parseAssignmentExpression);m=this.finalize(this.startNode(p),new c.ConditionalExpression(m,v,A)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return m},g.prototype.checkPatternParam=function(p,m){switch(m.type){case f.Syntax.Identifier:this.validateParam(p,m,m.name);break;case f.Syntax.RestElement:this.checkPatternParam(p,m.argument);break;case f.Syntax.AssignmentPattern:this.checkPatternParam(p,m.left);break;case f.Syntax.ArrayPattern:for(var w=0;w<m.elements.length;w++)m.elements[w]!==null&&this.checkPatternParam(p,m.elements[w]);break;case f.Syntax.ObjectPattern:for(var w=0;w<m.properties.length;w++)this.checkPatternParam(p,m.properties[w].value);break}p.simple=p.simple&&m instanceof c.Identifier},g.prototype.reinterpretAsCoverFormalsList=function(p){var m=[p],w,v=!1;switch(p.type){case f.Syntax.Identifier:break;case h:m=p.params,v=p.async;break;default:return null}w={simple:!0,paramSet:{}};for(var A=0;A<m.length;++A){var _=m[A];_.type===f.Syntax.AssignmentPattern?_.right.type===f.Syntax.YieldExpression&&(_.right.argument&&this.throwUnexpectedToken(this.lookahead),_.right.type=f.Syntax.Identifier,_.right.name="yield",delete _.right.argument,delete _.right.delegate):v&&_.type===f.Syntax.Identifier&&_.name==="await"&&this.throwUnexpectedToken(this.lookahead),this.checkPatternParam(w,_),m[A]=_}if(this.context.strict||!this.context.allowYield)for(var A=0;A<m.length;++A){var _=m[A];_.type===f.Syntax.YieldExpression&&this.throwUnexpectedToken(this.lookahead)}if(w.message===o.Messages.StrictParamDupe){var E=this.context.strict?w.stricted:w.firstRestricted;this.throwUnexpectedToken(E,w.message)}return{simple:w.simple,params:m,stricted:w.stricted,firstRestricted:w.firstRestricted,message:w.message}},g.prototype.parseAssignmentExpression=function(){var p;if(!this.context.allowYield&&this.matchKeyword("yield"))p=this.parseYieldExpression();else{var m=this.lookahead,w=m;if(p=this.parseConditionalExpression(),w.type===3&&w.lineNumber===this.lookahead.lineNumber&&w.value==="async"&&(this.lookahead.type===3||this.matchKeyword("yield"))){var v=this.parsePrimaryExpression();this.reinterpretExpressionAsPattern(v),p={type:h,params:[v],async:!0}}if(p.type===h||this.match("=>")){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var A=p.async,_=this.reinterpretAsCoverFormalsList(p);if(_){this.hasLineTerminator&&this.tolerateUnexpectedToken(this.lookahead),this.context.firstCoverInitializedNameError=null;var E=this.context.strict,b=this.context.allowStrictDirective;this.context.allowStrictDirective=_.simple;var x=this.context.allowYield,y=this.context.await;this.context.allowYield=!0,this.context.await=A;var C=this.startNode(m);this.expect("=>");var B=void 0;if(this.match("{")){var T=this.context.allowIn;this.context.allowIn=!0,B=this.parseFunctionSourceElements(),this.context.allowIn=T}else B=this.isolateCoverGrammar(this.parseAssignmentExpression);var M=B.type!==f.Syntax.BlockStatement;this.context.strict&&_.firstRestricted&&this.throwUnexpectedToken(_.firstRestricted,_.message),this.context.strict&&_.stricted&&this.tolerateUnexpectedToken(_.stricted,_.message),p=A?this.finalize(C,new c.AsyncArrowFunctionExpression(_.params,B,M)):this.finalize(C,new c.ArrowFunctionExpression(_.params,B,M)),this.context.strict=E,this.context.allowStrictDirective=b,this.context.allowYield=x,this.context.await=y}}else if(this.matchAssign()){if(this.context.isAssignmentTarget||this.tolerateError(o.Messages.InvalidLHSInAssignment),this.context.strict&&p.type===f.Syntax.Identifier){var R=p;this.scanner.isRestrictedWord(R.name)&&this.tolerateUnexpectedToken(w,o.Messages.StrictLHSAssignment),this.scanner.isStrictModeReservedWord(R.name)&&this.tolerateUnexpectedToken(w,o.Messages.StrictReservedWord)}this.match("=")?this.reinterpretExpressionAsPattern(p):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1),w=this.nextToken();var I=w.value,H=this.isolateCoverGrammar(this.parseAssignmentExpression);p=this.finalize(this.startNode(m),new c.AssignmentExpression(I,p,H)),this.context.firstCoverInitializedNameError=null}}return p},g.prototype.parseExpression=function(){var p=this.lookahead,m=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){var w=[];for(w.push(m);this.lookahead.type!==2&&this.match(",");)this.nextToken(),w.push(this.isolateCoverGrammar(this.parseAssignmentExpression));m=this.finalize(this.startNode(p),new c.SequenceExpression(w))}return m},g.prototype.parseStatementListItem=function(){var p;if(this.context.isAssignmentTarget=!0,this.context.isBindingElement=!0,this.lookahead.type===4)switch(this.lookahead.value){case"export":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,o.Messages.IllegalExportDeclaration),p=this.parseExportDeclaration();break;case"import":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,o.Messages.IllegalImportDeclaration),p=this.parseImportDeclaration();break;case"const":p=this.parseLexicalDeclaration({inFor:!1});break;case"function":p=this.parseFunctionDeclaration();break;case"class":p=this.parseClassDeclaration();break;case"let":p=this.isLexicalDeclaration()?this.parseLexicalDeclaration({inFor:!1}):this.parseStatement();break;default:p=this.parseStatement();break}else p=this.parseStatement();return p},g.prototype.parseBlock=function(){var p=this.createNode();this.expect("{");for(var m=[];!this.match("}");)m.push(this.parseStatementListItem());return this.expect("}"),this.finalize(p,new c.BlockStatement(m))},g.prototype.parseLexicalBinding=function(p,m){var w=this.createNode(),v=[],A=this.parsePattern(v,p);this.context.strict&&A.type===f.Syntax.Identifier&&this.scanner.isRestrictedWord(A.name)&&this.tolerateError(o.Messages.StrictVarName);var _=null;return p==="const"?!this.matchKeyword("in")&&!this.matchContextualKeyword("of")&&(this.match("=")?(this.nextToken(),_=this.isolateCoverGrammar(this.parseAssignmentExpression)):this.throwError(o.Messages.DeclarationMissingInitializer,"const")):(!m.inFor&&A.type!==f.Syntax.Identifier||this.match("="))&&(this.expect("="),_=this.isolateCoverGrammar(this.parseAssignmentExpression)),this.finalize(w,new c.VariableDeclarator(A,_))},g.prototype.parseBindingList=function(p,m){for(var w=[this.parseLexicalBinding(p,m)];this.match(",");)this.nextToken(),w.push(this.parseLexicalBinding(p,m));return w},g.prototype.isLexicalDeclaration=function(){var p=this.scanner.saveState();this.scanner.scanComments();var m=this.scanner.lex();return this.scanner.restoreState(p),m.type===3||m.type===7&&m.value==="["||m.type===7&&m.value==="{"||m.type===4&&m.value==="let"||m.type===4&&m.value==="yield"},g.prototype.parseLexicalDeclaration=function(p){var m=this.createNode(),w=this.nextToken().value;s.assert(w==="let"||w==="const","Lexical declaration must be either let or const");var v=this.parseBindingList(w,p);return this.consumeSemicolon(),this.finalize(m,new c.VariableDeclaration(v,w))},g.prototype.parseBindingRestElement=function(p,m){var w=this.createNode();this.expect("...");var v=this.parsePattern(p,m);return this.finalize(w,new c.RestElement(v))},g.prototype.parseArrayPattern=function(p,m){var w=this.createNode();this.expect("[");for(var v=[];!this.match("]");)if(this.match(","))this.nextToken(),v.push(null);else{if(this.match("...")){v.push(this.parseBindingRestElement(p,m));break}else v.push(this.parsePatternWithDefault(p,m));this.match("]")||this.expect(",")}return this.expect("]"),this.finalize(w,new c.ArrayPattern(v))},g.prototype.parsePropertyPattern=function(p,m){var w=this.createNode(),v=!1,A=!1,_=!1,E,b;if(this.lookahead.type===3){var x=this.lookahead;E=this.parseVariableIdentifier();var y=this.finalize(w,new c.Identifier(x.value));if(this.match("=")){p.push(x),A=!0,this.nextToken();var C=this.parseAssignmentExpression();b=this.finalize(this.startNode(x),new c.AssignmentPattern(y,C))}else this.match(":")?(this.expect(":"),b=this.parsePatternWithDefault(p,m)):(p.push(x),A=!0,b=y)}else v=this.match("["),E=this.parseObjectPropertyKey(),this.expect(":"),b=this.parsePatternWithDefault(p,m);return this.finalize(w,new c.Property("init",E,v,b,_,A))},g.prototype.parseObjectPattern=function(p,m){var w=this.createNode(),v=[];for(this.expect("{");!this.match("}");)v.push(this.parsePropertyPattern(p,m)),this.match("}")||this.expect(",");return this.expect("}"),this.finalize(w,new c.ObjectPattern(v))},g.prototype.parsePattern=function(p,m){var w;return this.match("[")?w=this.parseArrayPattern(p,m):this.match("{")?w=this.parseObjectPattern(p,m):(this.matchKeyword("let")&&(m==="const"||m==="let")&&this.tolerateUnexpectedToken(this.lookahead,o.Messages.LetInLexicalBinding),p.push(this.lookahead),w=this.parseVariableIdentifier(m)),w},g.prototype.parsePatternWithDefault=function(p,m){var w=this.lookahead,v=this.parsePattern(p,m);if(this.match("=")){this.nextToken();var A=this.context.allowYield;this.context.allowYield=!0;var _=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowYield=A,v=this.finalize(this.startNode(w),new c.AssignmentPattern(v,_))}return v},g.prototype.parseVariableIdentifier=function(p){var m=this.createNode(),w=this.nextToken();return w.type===4&&w.value==="yield"?this.context.strict?this.tolerateUnexpectedToken(w,o.Messages.StrictReservedWord):this.context.allowYield||this.throwUnexpectedToken(w):w.type!==3?this.context.strict&&w.type===4&&this.scanner.isStrictModeReservedWord(w.value)?this.tolerateUnexpectedToken(w,o.Messages.StrictReservedWord):(this.context.strict||w.value!=="let"||p!=="var")&&this.throwUnexpectedToken(w):(this.context.isModule||this.context.await)&&w.type===3&&w.value==="await"&&this.tolerateUnexpectedToken(w),this.finalize(m,new c.Identifier(w.value))},g.prototype.parseVariableDeclaration=function(p){var m=this.createNode(),w=[],v=this.parsePattern(w,"var");this.context.strict&&v.type===f.Syntax.Identifier&&this.scanner.isRestrictedWord(v.name)&&this.tolerateError(o.Messages.StrictVarName);var A=null;return this.match("=")?(this.nextToken(),A=this.isolateCoverGrammar(this.parseAssignmentExpression)):v.type!==f.Syntax.Identifier&&!p.inFor&&this.expect("="),this.finalize(m,new c.VariableDeclarator(v,A))},g.prototype.parseVariableDeclarationList=function(p){var m={inFor:p.inFor},w=[];for(w.push(this.parseVariableDeclaration(m));this.match(",");)this.nextToken(),w.push(this.parseVariableDeclaration(m));return w},g.prototype.parseVariableStatement=function(){var p=this.createNode();this.expectKeyword("var");var m=this.parseVariableDeclarationList({inFor:!1});return this.consumeSemicolon(),this.finalize(p,new c.VariableDeclaration(m,"var"))},g.prototype.parseEmptyStatement=function(){var p=this.createNode();return this.expect(";"),this.finalize(p,new c.EmptyStatement)},g.prototype.parseExpressionStatement=function(){var p=this.createNode(),m=this.parseExpression();return this.consumeSemicolon(),this.finalize(p,new c.ExpressionStatement(m))},g.prototype.parseIfClause=function(){return this.context.strict&&this.matchKeyword("function")&&this.tolerateError(o.Messages.StrictFunction),this.parseStatement()},g.prototype.parseIfStatement=function(){var p=this.createNode(),m,w=null;this.expectKeyword("if"),this.expect("(");var v=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),m=this.finalize(this.createNode(),new c.EmptyStatement)):(this.expect(")"),m=this.parseIfClause(),this.matchKeyword("else")&&(this.nextToken(),w=this.parseIfClause())),this.finalize(p,new c.IfStatement(v,m,w))},g.prototype.parseDoWhileStatement=function(){var p=this.createNode();this.expectKeyword("do");var m=this.context.inIteration;this.context.inIteration=!0;var w=this.parseStatement();this.context.inIteration=m,this.expectKeyword("while"),this.expect("(");var v=this.parseExpression();return!this.match(")")&&this.config.tolerant?this.tolerateUnexpectedToken(this.nextToken()):(this.expect(")"),this.match(";")&&this.nextToken()),this.finalize(p,new c.DoWhileStatement(w,v))},g.prototype.parseWhileStatement=function(){var p=this.createNode(),m;this.expectKeyword("while"),this.expect("(");var w=this.parseExpression();if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),m=this.finalize(this.createNode(),new c.EmptyStatement);else{this.expect(")");var v=this.context.inIteration;this.context.inIteration=!0,m=this.parseStatement(),this.context.inIteration=v}return this.finalize(p,new c.WhileStatement(w,m))},g.prototype.parseForStatement=function(){var p=null,m=null,w=null,v=!0,A,_,E=this.createNode();if(this.expectKeyword("for"),this.expect("("),this.match(";"))this.nextToken();else if(this.matchKeyword("var")){p=this.createNode(),this.nextToken();var b=this.context.allowIn;this.context.allowIn=!1;var x=this.parseVariableDeclarationList({inFor:!0});if(this.context.allowIn=b,x.length===1&&this.matchKeyword("in")){var y=x[0];y.init&&(y.id.type===f.Syntax.ArrayPattern||y.id.type===f.Syntax.ObjectPattern||this.context.strict)&&this.tolerateError(o.Messages.ForInOfLoopInitializer,"for-in"),p=this.finalize(p,new c.VariableDeclaration(x,"var")),this.nextToken(),A=p,_=this.parseExpression(),p=null}else x.length===1&&x[0].init===null&&this.matchContextualKeyword("of")?(p=this.finalize(p,new c.VariableDeclaration(x,"var")),this.nextToken(),A=p,_=this.parseAssignmentExpression(),p=null,v=!1):(p=this.finalize(p,new c.VariableDeclaration(x,"var")),this.expect(";"))}else if(this.matchKeyword("const")||this.matchKeyword("let")){p=this.createNode();var C=this.nextToken().value;if(!this.context.strict&&this.lookahead.value==="in")p=this.finalize(p,new c.Identifier(C)),this.nextToken(),A=p,_=this.parseExpression(),p=null;else{var b=this.context.allowIn;this.context.allowIn=!1;var x=this.parseBindingList(C,{inFor:!0});this.context.allowIn=b,x.length===1&&x[0].init===null&&this.matchKeyword("in")?(p=this.finalize(p,new c.VariableDeclaration(x,C)),this.nextToken(),A=p,_=this.parseExpression(),p=null):x.length===1&&x[0].init===null&&this.matchContextualKeyword("of")?(p=this.finalize(p,new c.VariableDeclaration(x,C)),this.nextToken(),A=p,_=this.parseAssignmentExpression(),p=null,v=!1):(this.consumeSemicolon(),p=this.finalize(p,new c.VariableDeclaration(x,C)))}}else{var B=this.lookahead,b=this.context.allowIn;if(this.context.allowIn=!1,p=this.inheritCoverGrammar(this.parseAssignmentExpression),this.context.allowIn=b,this.matchKeyword("in"))(!this.context.isAssignmentTarget||p.type===f.Syntax.AssignmentExpression)&&this.tolerateError(o.Messages.InvalidLHSInForIn),this.nextToken(),this.reinterpretExpressionAsPattern(p),A=p,_=this.parseExpression(),p=null;else if(this.matchContextualKeyword("of"))(!this.context.isAssignmentTarget||p.type===f.Syntax.AssignmentExpression)&&this.tolerateError(o.Messages.InvalidLHSInForLoop),this.nextToken(),this.reinterpretExpressionAsPattern(p),A=p,_=this.parseAssignmentExpression(),p=null,v=!1;else{if(this.match(",")){for(var T=[p];this.match(",");)this.nextToken(),T.push(this.isolateCoverGrammar(this.parseAssignmentExpression));p=this.finalize(this.startNode(B),new c.SequenceExpression(T))}this.expect(";")}}typeof A=="undefined"&&(this.match(";")||(m=this.parseExpression()),this.expect(";"),this.match(")")||(w=this.parseExpression()));var M;if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),M=this.finalize(this.createNode(),new c.EmptyStatement);else{this.expect(")");var R=this.context.inIteration;this.context.inIteration=!0,M=this.isolateCoverGrammar(this.parseStatement),this.context.inIteration=R}return typeof A=="undefined"?this.finalize(E,new c.ForStatement(p,m,w,M)):v?this.finalize(E,new c.ForInStatement(A,_,M)):this.finalize(E,new c.ForOfStatement(A,_,M))},g.prototype.parseContinueStatement=function(){var p=this.createNode();this.expectKeyword("continue");var m=null;if(this.lookahead.type===3&&!this.hasLineTerminator){var w=this.parseVariableIdentifier();m=w;var v="$"+w.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,v)||this.throwError(o.Messages.UnknownLabel,w.name)}return this.consumeSemicolon(),m===null&&!this.context.inIteration&&this.throwError(o.Messages.IllegalContinue),this.finalize(p,new c.ContinueStatement(m))},g.prototype.parseBreakStatement=function(){var p=this.createNode();this.expectKeyword("break");var m=null;if(this.lookahead.type===3&&!this.hasLineTerminator){var w=this.parseVariableIdentifier(),v="$"+w.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,v)||this.throwError(o.Messages.UnknownLabel,w.name),m=w}return this.consumeSemicolon(),m===null&&!this.context.inIteration&&!this.context.inSwitch&&this.throwError(o.Messages.IllegalBreak),this.finalize(p,new c.BreakStatement(m))},g.prototype.parseReturnStatement=function(){this.context.inFunctionBody||this.tolerateError(o.Messages.IllegalReturn);var p=this.createNode();this.expectKeyword("return");var m=!this.match(";")&&!this.match("}")&&!this.hasLineTerminator&&this.lookahead.type!==2||this.lookahead.type===8||this.lookahead.type===10,w=m?this.parseExpression():null;return this.consumeSemicolon(),this.finalize(p,new c.ReturnStatement(w))},g.prototype.parseWithStatement=function(){this.context.strict&&this.tolerateError(o.Messages.StrictModeWith);var p=this.createNode(),m;this.expectKeyword("with"),this.expect("(");var w=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),m=this.finalize(this.createNode(),new c.EmptyStatement)):(this.expect(")"),m=this.parseStatement()),this.finalize(p,new c.WithStatement(w,m))},g.prototype.parseSwitchCase=function(){var p=this.createNode(),m;this.matchKeyword("default")?(this.nextToken(),m=null):(this.expectKeyword("case"),m=this.parseExpression()),this.expect(":");for(var w=[];!(this.match("}")||this.matchKeyword("default")||this.matchKeyword("case"));)w.push(this.parseStatementListItem());return this.finalize(p,new c.SwitchCase(m,w))},g.prototype.parseSwitchStatement=function(){var p=this.createNode();this.expectKeyword("switch"),this.expect("(");var m=this.parseExpression();this.expect(")");var w=this.context.inSwitch;this.context.inSwitch=!0;var v=[],A=!1;for(this.expect("{");!this.match("}");){var _=this.parseSwitchCase();_.test===null&&(A&&this.throwError(o.Messages.MultipleDefaultsInSwitch),A=!0),v.push(_)}return this.expect("}"),this.context.inSwitch=w,this.finalize(p,new c.SwitchStatement(m,v))},g.prototype.parseLabelledStatement=function(){var p=this.createNode(),m=this.parseExpression(),w;if(m.type===f.Syntax.Identifier&&this.match(":")){this.nextToken();var v=m,A="$"+v.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,A)&&this.throwError(o.Messages.Redeclaration,"Label",v.name),this.context.labelSet[A]=!0;var _=void 0;if(this.matchKeyword("class"))this.tolerateUnexpectedToken(this.lookahead),_=this.parseClassDeclaration();else if(this.matchKeyword("function")){var E=this.lookahead,b=this.parseFunctionDeclaration();this.context.strict?this.tolerateUnexpectedToken(E,o.Messages.StrictFunction):b.generator&&this.tolerateUnexpectedToken(E,o.Messages.GeneratorInLegacyContext),_=b}else _=this.parseStatement();delete this.context.labelSet[A],w=new c.LabeledStatement(v,_)}else this.consumeSemicolon(),w=new c.ExpressionStatement(m);return this.finalize(p,w)},g.prototype.parseThrowStatement=function(){var p=this.createNode();this.expectKeyword("throw"),this.hasLineTerminator&&this.throwError(o.Messages.NewlineAfterThrow);var m=this.parseExpression();return this.consumeSemicolon(),this.finalize(p,new c.ThrowStatement(m))},g.prototype.parseCatchClause=function(){var p=this.createNode();this.expectKeyword("catch"),this.expect("("),this.match(")")&&this.throwUnexpectedToken(this.lookahead);for(var m=[],w=this.parsePattern(m),v={},A=0;A<m.length;A++){var _="$"+m[A].value;Object.prototype.hasOwnProperty.call(v,_)&&this.tolerateError(o.Messages.DuplicateBinding,m[A].value),v[_]=!0}this.context.strict&&w.type===f.Syntax.Identifier&&this.scanner.isRestrictedWord(w.name)&&this.tolerateError(o.Messages.StrictCatchVariable),this.expect(")");var E=this.parseBlock();return this.finalize(p,new c.CatchClause(w,E))},g.prototype.parseFinallyClause=function(){return this.expectKeyword("finally"),this.parseBlock()},g.prototype.parseTryStatement=function(){var p=this.createNode();this.expectKeyword("try");var m=this.parseBlock(),w=this.matchKeyword("catch")?this.parseCatchClause():null,v=this.matchKeyword("finally")?this.parseFinallyClause():null;return!w&&!v&&this.throwError(o.Messages.NoCatchOrFinally),this.finalize(p,new c.TryStatement(m,w,v))},g.prototype.parseDebuggerStatement=function(){var p=this.createNode();return this.expectKeyword("debugger"),this.consumeSemicolon(),this.finalize(p,new c.DebuggerStatement)},g.prototype.parseStatement=function(){var p;switch(this.lookahead.type){case 1:case 5:case 6:case 8:case 10:case 9:p=this.parseExpressionStatement();break;case 7:var m=this.lookahead.value;m==="{"?p=this.parseBlock():m==="("?p=this.parseExpressionStatement():m===";"?p=this.parseEmptyStatement():p=this.parseExpressionStatement();break;case 3:p=this.matchAsyncFunction()?this.parseFunctionDeclaration():this.parseLabelledStatement();break;case 4:switch(this.lookahead.value){case"break":p=this.parseBreakStatement();break;case"continue":p=this.parseContinueStatement();break;case"debugger":p=this.parseDebuggerStatement();break;case"do":p=this.parseDoWhileStatement();break;case"for":p=this.parseForStatement();break;case"function":p=this.parseFunctionDeclaration();break;case"if":p=this.parseIfStatement();break;case"return":p=this.parseReturnStatement();break;case"switch":p=this.parseSwitchStatement();break;case"throw":p=this.parseThrowStatement();break;case"try":p=this.parseTryStatement();break;case"var":p=this.parseVariableStatement();break;case"while":p=this.parseWhileStatement();break;case"with":p=this.parseWithStatement();break;default:p=this.parseExpressionStatement();break}break;default:p=this.throwUnexpectedToken(this.lookahead)}return p},g.prototype.parseFunctionSourceElements=function(){var p=this.createNode();this.expect("{");var m=this.parseDirectivePrologues(),w=this.context.labelSet,v=this.context.inIteration,A=this.context.inSwitch,_=this.context.inFunctionBody;for(this.context.labelSet={},this.context.inIteration=!1,this.context.inSwitch=!1,this.context.inFunctionBody=!0;this.lookahead.type!==2&&!this.match("}");)m.push(this.parseStatementListItem());return this.expect("}"),this.context.labelSet=w,this.context.inIteration=v,this.context.inSwitch=A,this.context.inFunctionBody=_,this.finalize(p,new c.BlockStatement(m))},g.prototype.validateParam=function(p,m,w){var v="$"+w;this.context.strict?(this.scanner.isRestrictedWord(w)&&(p.stricted=m,p.message=o.Messages.StrictParamName),Object.prototype.hasOwnProperty.call(p.paramSet,v)&&(p.stricted=m,p.message=o.Messages.StrictParamDupe)):p.firstRestricted||(this.scanner.isRestrictedWord(w)?(p.firstRestricted=m,p.message=o.Messages.StrictParamName):this.scanner.isStrictModeReservedWord(w)?(p.firstRestricted=m,p.message=o.Messages.StrictReservedWord):Object.prototype.hasOwnProperty.call(p.paramSet,v)&&(p.stricted=m,p.message=o.Messages.StrictParamDupe)),typeof Object.defineProperty=="function"?Object.defineProperty(p.paramSet,v,{value:!0,enumerable:!0,writable:!0,configurable:!0}):p.paramSet[v]=!0},g.prototype.parseRestElement=function(p){var m=this.createNode();this.expect("...");var w=this.parsePattern(p);return this.match("=")&&this.throwError(o.Messages.DefaultRestParameter),this.match(")")||this.throwError(o.Messages.ParameterAfterRestParameter),this.finalize(m,new c.RestElement(w))},g.prototype.parseFormalParameter=function(p){for(var m=[],w=this.match("...")?this.parseRestElement(m):this.parsePatternWithDefault(m),v=0;v<m.length;v++)this.validateParam(p,m[v],m[v].value);p.simple=p.simple&&w instanceof c.Identifier,p.params.push(w)},g.prototype.parseFormalParameters=function(p){var m;if(m={simple:!0,params:[],firstRestricted:p},this.expect("("),!this.match(")"))for(m.paramSet={};this.lookahead.type!==2&&(this.parseFormalParameter(m),!(this.match(")")||(this.expect(","),this.match(")")))););return this.expect(")"),{simple:m.simple,params:m.params,stricted:m.stricted,firstRestricted:m.firstRestricted,message:m.message}},g.prototype.matchAsyncFunction=function(){var p=this.matchContextualKeyword("async");if(p){var m=this.scanner.saveState();this.scanner.scanComments();var w=this.scanner.lex();this.scanner.restoreState(m),p=m.lineNumber===w.lineNumber&&w.type===4&&w.value==="function"}return p},g.prototype.parseFunctionDeclaration=function(p){var m=this.createNode(),w=this.matchContextualKeyword("async");w&&this.nextToken(),this.expectKeyword("function");var v=w?!1:this.match("*");v&&this.nextToken();var A,_=null,E=null;if(!p||!this.match("(")){var b=this.lookahead;_=this.parseVariableIdentifier(),this.context.strict?this.scanner.isRestrictedWord(b.value)&&this.tolerateUnexpectedToken(b,o.Messages.StrictFunctionName):this.scanner.isRestrictedWord(b.value)?(E=b,A=o.Messages.StrictFunctionName):this.scanner.isStrictModeReservedWord(b.value)&&(E=b,A=o.Messages.StrictReservedWord)}var x=this.context.await,y=this.context.allowYield;this.context.await=w,this.context.allowYield=!v;var C=this.parseFormalParameters(E),B=C.params,T=C.stricted;E=C.firstRestricted,C.message&&(A=C.message);var M=this.context.strict,R=this.context.allowStrictDirective;this.context.allowStrictDirective=C.simple;var I=this.parseFunctionSourceElements();return this.context.strict&&E&&this.throwUnexpectedToken(E,A),this.context.strict&&T&&this.tolerateUnexpectedToken(T,A),this.context.strict=M,this.context.allowStrictDirective=R,this.context.await=x,this.context.allowYield=y,w?this.finalize(m,new c.AsyncFunctionDeclaration(_,B,I)):this.finalize(m,new c.FunctionDeclaration(_,B,I,v))},g.prototype.parseFunctionExpression=function(){var p=this.createNode(),m=this.matchContextualKeyword("async");m&&this.nextToken(),this.expectKeyword("function");var w=m?!1:this.match("*");w&&this.nextToken();var v,A=null,_,E=this.context.await,b=this.context.allowYield;if(this.context.await=m,this.context.allowYield=!w,!this.match("(")){var x=this.lookahead;A=!this.context.strict&&!w&&this.matchKeyword("yield")?this.parseIdentifierName():this.parseVariableIdentifier(),this.context.strict?this.scanner.isRestrictedWord(x.value)&&this.tolerateUnexpectedToken(x,o.Messages.StrictFunctionName):this.scanner.isRestrictedWord(x.value)?(_=x,v=o.Messages.StrictFunctionName):this.scanner.isStrictModeReservedWord(x.value)&&(_=x,v=o.Messages.StrictReservedWord)}var y=this.parseFormalParameters(_),C=y.params,B=y.stricted;_=y.firstRestricted,y.message&&(v=y.message);var T=this.context.strict,M=this.context.allowStrictDirective;this.context.allowStrictDirective=y.simple;var R=this.parseFunctionSourceElements();return this.context.strict&&_&&this.throwUnexpectedToken(_,v),this.context.strict&&B&&this.tolerateUnexpectedToken(B,v),this.context.strict=T,this.context.allowStrictDirective=M,this.context.await=E,this.context.allowYield=b,m?this.finalize(p,new c.AsyncFunctionExpression(A,C,R)):this.finalize(p,new c.FunctionExpression(A,C,R,w))},g.prototype.parseDirective=function(){var p=this.lookahead,m=this.createNode(),w=this.parseExpression(),v=w.type===f.Syntax.Literal?this.getTokenRaw(p).slice(1,-1):null;return this.consumeSemicolon(),this.finalize(m,v?new c.Directive(w,v):new c.ExpressionStatement(w))},g.prototype.parseDirectivePrologues=function(){for(var p=null,m=[];;){var w=this.lookahead;if(w.type!==8)break;var v=this.parseDirective();m.push(v);var A=v.directive;if(typeof A!="string")break;A==="use strict"?(this.context.strict=!0,p&&this.tolerateUnexpectedToken(p,o.Messages.StrictOctalLiteral),this.context.allowStrictDirective||this.tolerateUnexpectedToken(w,o.Messages.IllegalLanguageModeDirective)):!p&&w.octal&&(p=w)}return m},g.prototype.qualifiedPropertyName=function(p){switch(p.type){case 3:case 8:case 1:case 5:case 6:case 4:return!0;case 7:return p.value==="["}return!1},g.prototype.parseGetterMethod=function(){var p=this.createNode(),m=!1,w=this.context.allowYield;this.context.allowYield=!m;var v=this.parseFormalParameters();v.params.length>0&&this.tolerateError(o.Messages.BadGetterArity);var A=this.parsePropertyMethod(v);return this.context.allowYield=w,this.finalize(p,new c.FunctionExpression(null,v.params,A,m))},g.prototype.parseSetterMethod=function(){var p=this.createNode(),m=!1,w=this.context.allowYield;this.context.allowYield=!m;var v=this.parseFormalParameters();v.params.length!==1?this.tolerateError(o.Messages.BadSetterArity):v.params[0]instanceof c.RestElement&&this.tolerateError(o.Messages.BadSetterRestParameter);var A=this.parsePropertyMethod(v);return this.context.allowYield=w,this.finalize(p,new c.FunctionExpression(null,v.params,A,m))},g.prototype.parseGeneratorMethod=function(){var p=this.createNode(),m=!0,w=this.context.allowYield;this.context.allowYield=!0;var v=this.parseFormalParameters();this.context.allowYield=!1;var A=this.parsePropertyMethod(v);return this.context.allowYield=w,this.finalize(p,new c.FunctionExpression(null,v.params,A,m))},g.prototype.isStartOfExpression=function(){var p=!0,m=this.lookahead.value;switch(this.lookahead.type){case 7:p=m==="["||m==="("||m==="{"||m==="+"||m==="-"||m==="!"||m==="~"||m==="++"||m==="--"||m==="/"||m==="/=";break;case 4:p=m==="class"||m==="delete"||m==="function"||m==="let"||m==="new"||m==="super"||m==="this"||m==="typeof"||m==="void"||m==="yield";break}return p},g.prototype.parseYieldExpression=function(){var p=this.createNode();this.expectKeyword("yield");var m=null,w=!1;if(!this.hasLineTerminator){var v=this.context.allowYield;this.context.allowYield=!1,w=this.match("*"),w?(this.nextToken(),m=this.parseAssignmentExpression()):this.isStartOfExpression()&&(m=this.parseAssignmentExpression()),this.context.allowYield=v}return this.finalize(p,new c.YieldExpression(m,w))},g.prototype.parseClassElement=function(p){var m=this.lookahead,w=this.createNode(),v="",A=null,_=null,E=!1,b=!1,x=!1,y=!1;if(this.match("*"))this.nextToken();else{E=this.match("["),A=this.parseObjectPropertyKey();var C=A;if(C.name==="static"&&(this.qualifiedPropertyName(this.lookahead)||this.match("*"))&&(m=this.lookahead,x=!0,E=this.match("["),this.match("*")?this.nextToken():A=this.parseObjectPropertyKey()),m.type===3&&!this.hasLineTerminator&&m.value==="async"){var B=this.lookahead.value;B!==":"&&B!=="("&&B!=="*"&&(y=!0,m=this.lookahead,A=this.parseObjectPropertyKey(),m.type===3&&m.value==="constructor"&&this.tolerateUnexpectedToken(m,o.Messages.ConstructorIsAsync))}}var T=this.qualifiedPropertyName(this.lookahead);return m.type===3?m.value==="get"&&T?(v="get",E=this.match("["),A=this.parseObjectPropertyKey(),this.context.allowYield=!1,_=this.parseGetterMethod()):m.value==="set"&&T&&(v="set",E=this.match("["),A=this.parseObjectPropertyKey(),_=this.parseSetterMethod()):m.type===7&&m.value==="*"&&T&&(v="init",E=this.match("["),A=this.parseObjectPropertyKey(),_=this.parseGeneratorMethod(),b=!0),!v&&A&&this.match("(")&&(v="init",_=y?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),b=!0),v||this.throwUnexpectedToken(this.lookahead),v==="init"&&(v="method"),E||(x&&this.isPropertyKey(A,"prototype")&&this.throwUnexpectedToken(m,o.Messages.StaticPrototype),!x&&this.isPropertyKey(A,"constructor")&&((v!=="method"||!b||_&&_.generator)&&this.throwUnexpectedToken(m,o.Messages.ConstructorSpecialMethod),p.value?this.throwUnexpectedToken(m,o.Messages.DuplicateConstructor):p.value=!0,v="constructor")),this.finalize(w,new c.MethodDefinition(A,E,_,v,x))},g.prototype.parseClassElementList=function(){var p=[],m={value:!1};for(this.expect("{");!this.match("}");)this.match(";")?this.nextToken():p.push(this.parseClassElement(m));return this.expect("}"),p},g.prototype.parseClassBody=function(){var p=this.createNode(),m=this.parseClassElementList();return this.finalize(p,new c.ClassBody(m))},g.prototype.parseClassDeclaration=function(p){var m=this.createNode(),w=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var v=p&&this.lookahead.type!==3?null:this.parseVariableIdentifier(),A=null;this.matchKeyword("extends")&&(this.nextToken(),A=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var _=this.parseClassBody();return this.context.strict=w,this.finalize(m,new c.ClassDeclaration(v,A,_))},g.prototype.parseClassExpression=function(){var p=this.createNode(),m=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var w=this.lookahead.type===3?this.parseVariableIdentifier():null,v=null;this.matchKeyword("extends")&&(this.nextToken(),v=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var A=this.parseClassBody();return this.context.strict=m,this.finalize(p,new c.ClassExpression(w,v,A))},g.prototype.parseModule=function(){this.context.strict=!0,this.context.isModule=!0,this.scanner.isModule=!0;for(var p=this.createNode(),m=this.parseDirectivePrologues();this.lookahead.type!==2;)m.push(this.parseStatementListItem());return this.finalize(p,new c.Module(m))},g.prototype.parseScript=function(){for(var p=this.createNode(),m=this.parseDirectivePrologues();this.lookahead.type!==2;)m.push(this.parseStatementListItem());return this.finalize(p,new c.Script(m))},g.prototype.parseModuleSpecifier=function(){var p=this.createNode();this.lookahead.type!==8&&this.throwError(o.Messages.InvalidModuleSpecifier);var m=this.nextToken(),w=this.getTokenRaw(m);return this.finalize(p,new c.Literal(m.value,w))},g.prototype.parseImportSpecifier=function(){var p=this.createNode(),m,w;return this.lookahead.type===3?(m=this.parseVariableIdentifier(),w=m,this.matchContextualKeyword("as")&&(this.nextToken(),w=this.parseVariableIdentifier())):(m=this.parseIdentifierName(),w=m,this.matchContextualKeyword("as")?(this.nextToken(),w=this.parseVariableIdentifier()):this.throwUnexpectedToken(this.nextToken())),this.finalize(p,new c.ImportSpecifier(w,m))},g.prototype.parseNamedImports=function(){this.expect("{");for(var p=[];!this.match("}");)p.push(this.parseImportSpecifier()),this.match("}")||this.expect(",");return this.expect("}"),p},g.prototype.parseImportDefaultSpecifier=function(){var p=this.createNode(),m=this.parseIdentifierName();return this.finalize(p,new c.ImportDefaultSpecifier(m))},g.prototype.parseImportNamespaceSpecifier=function(){var p=this.createNode();this.expect("*"),this.matchContextualKeyword("as")||this.throwError(o.Messages.NoAsAfterImportNamespace),this.nextToken();var m=this.parseIdentifierName();return this.finalize(p,new c.ImportNamespaceSpecifier(m))},g.prototype.parseImportDeclaration=function(){this.context.inFunctionBody&&this.throwError(o.Messages.IllegalImportDeclaration);var p=this.createNode();this.expectKeyword("import");var m,w=[];if(this.lookahead.type===8)m=this.parseModuleSpecifier();else{if(this.match("{")?w=w.concat(this.parseNamedImports()):this.match("*")?w.push(this.parseImportNamespaceSpecifier()):this.isIdentifierName(this.lookahead)&&!this.matchKeyword("default")?(w.push(this.parseImportDefaultSpecifier()),this.match(",")&&(this.nextToken(),this.match("*")?w.push(this.parseImportNamespaceSpecifier()):this.match("{")?w=w.concat(this.parseNamedImports()):this.throwUnexpectedToken(this.lookahead))):this.throwUnexpectedToken(this.nextToken()),!this.matchContextualKeyword("from")){var v=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause;this.throwError(v,this.lookahead.value)}this.nextToken(),m=this.parseModuleSpecifier()}return this.consumeSemicolon(),this.finalize(p,new c.ImportDeclaration(w,m))},g.prototype.parseExportSpecifier=function(){var p=this.createNode(),m=this.parseIdentifierName(),w=m;return this.matchContextualKeyword("as")&&(this.nextToken(),w=this.parseIdentifierName()),this.finalize(p,new c.ExportSpecifier(m,w))},g.prototype.parseExportDeclaration=function(){this.context.inFunctionBody&&this.throwError(o.Messages.IllegalExportDeclaration);var p=this.createNode();this.expectKeyword("export");var m;if(this.matchKeyword("default"))if(this.nextToken(),this.matchKeyword("function")){var w=this.parseFunctionDeclaration(!0);m=this.finalize(p,new c.ExportDefaultDeclaration(w))}else if(this.matchKeyword("class")){var w=this.parseClassDeclaration(!0);m=this.finalize(p,new c.ExportDefaultDeclaration(w))}else if(this.matchContextualKeyword("async")){var w=this.matchAsyncFunction()?this.parseFunctionDeclaration(!0):this.parseAssignmentExpression();m=this.finalize(p,new c.ExportDefaultDeclaration(w))}else{this.matchContextualKeyword("from")&&this.throwError(o.Messages.UnexpectedToken,this.lookahead.value);var w=this.match("{")?this.parseObjectInitializer():this.match("[")?this.parseArrayInitializer():this.parseAssignmentExpression();this.consumeSemicolon(),m=this.finalize(p,new c.ExportDefaultDeclaration(w))}else if(this.match("*")){if(this.nextToken(),!this.matchContextualKeyword("from")){var v=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause;this.throwError(v,this.lookahead.value)}this.nextToken();var A=this.parseModuleSpecifier();this.consumeSemicolon(),m=this.finalize(p,new c.ExportAllDeclaration(A))}else if(this.lookahead.type===4){var w=void 0;switch(this.lookahead.value){case"let":case"const":w=this.parseLexicalDeclaration({inFor:!1});break;case"var":case"class":case"function":w=this.parseStatementListItem();break;default:this.throwUnexpectedToken(this.lookahead)}m=this.finalize(p,new c.ExportNamedDeclaration(w,[],null))}else if(this.matchAsyncFunction()){var w=this.parseFunctionDeclaration();m=this.finalize(p,new c.ExportNamedDeclaration(w,[],null))}else{var _=[],E=null,b=!1;for(this.expect("{");!this.match("}");)b=b||this.matchKeyword("default"),_.push(this.parseExportSpecifier()),this.match("}")||this.expect(",");if(this.expect("}"),this.matchContextualKeyword("from"))this.nextToken(),E=this.parseModuleSpecifier(),this.consumeSemicolon();else if(b){var v=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause;this.throwError(v,this.lookahead.value)}else this.consumeSemicolon();m=this.finalize(p,new c.ExportNamedDeclaration(null,_,E))}return m},g}();i.Parser=d},function(n,i){Object.defineProperty(i,"__esModule",{value:!0});function r(s,u){if(!s)throw new Error("ASSERT: "+u)}i.assert=r},function(n,i){Object.defineProperty(i,"__esModule",{value:!0});var r=function(){function s(){this.errors=[],this.tolerant=!1}return s.prototype.recordError=function(u){this.errors.push(u)},s.prototype.tolerate=function(u){if(this.tolerant)this.recordError(u);else throw u},s.prototype.constructError=function(u,o){var c=new Error(u);try{throw c}catch(a){Object.create&&Object.defineProperty&&(c=Object.create(a),Object.defineProperty(c,"column",{value:o}))}return c},s.prototype.createError=function(u,o,c,a){var f="Line "+o+": "+a,l=this.constructError(f,c);return l.index=u,l.lineNumber=o,l.description=a,l},s.prototype.throwError=function(u,o,c,a){throw this.createError(u,o,c,a)},s.prototype.tolerateError=function(u,o,c,a){var f=this.createError(u,o,c,a);if(this.tolerant)this.recordError(f);else throw f},s}();i.ErrorHandler=r},function(n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.Messages={BadGetterArity:"Getter must not have any formal parameters",BadSetterArity:"Setter must have exactly one formal parameter",BadSetterRestParameter:"Setter function argument must not be a rest parameter",ConstructorIsAsync:"Class constructor may not be an async method",ConstructorSpecialMethod:"Class constructor may not be an accessor",DeclarationMissingInitializer:"Missing initializer in %0 declaration",DefaultRestParameter:"Unexpected token =",DuplicateBinding:"Duplicate binding %0",DuplicateConstructor:"A class may only have one constructor",DuplicateProtoProperty:"Duplicate __proto__ fields are not allowed in object literals",ForInOfLoopInitializer:"%0 loop variable declaration may not have an initializer",GeneratorInLegacyContext:"Generator declarations are not allowed in legacy contexts",IllegalBreak:"Illegal break statement",IllegalContinue:"Illegal continue statement",IllegalExportDeclaration:"Unexpected token",IllegalImportDeclaration:"Unexpected token",IllegalLanguageModeDirective:"Illegal 'use strict' directive in function with non-simple parameter list",IllegalReturn:"Illegal return statement",InvalidEscapedReservedWord:"Keyword must not contain escaped characters",InvalidHexEscapeSequence:"Invalid hexadecimal escape sequence",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",InvalidLHSInForLoop:"Invalid left-hand side in for-loop",InvalidModuleSpecifier:"Unexpected token",InvalidRegExp:"Invalid regular expression",LetInLexicalBinding:"let is disallowed as a lexically bound name",MissingFromClause:"Unexpected token",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NewlineAfterThrow:"Illegal newline after throw",NoAsAfterImportNamespace:"Unexpected token",NoCatchOrFinally:"Missing catch or finally after try",ParameterAfterRestParameter:"Rest parameter must be last formal parameter",Redeclaration:"%0 '%1' has already been declared",StaticPrototype:"Classes may not have static property named prototype",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictFunction:"In strict mode code, functions can only be declared at top level or inside a block",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictModeWith:"Strict mode code may not include a with statement",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",TemplateOctalLiteral:"Octal literals are not allowed in template strings.",UnexpectedEOS:"Unexpected end of input",UnexpectedIdentifier:"Unexpected identifier",UnexpectedNumber:"Unexpected number",UnexpectedReserved:"Unexpected reserved word",UnexpectedString:"Unexpected string",UnexpectedTemplate:"Unexpected quasi %0",UnexpectedToken:"Unexpected token %0",UnexpectedTokenIllegal:"Unexpected token ILLEGAL",UnknownLabel:"Undefined label '%0'",UnterminatedRegExp:"Invalid regular expression: missing /"}},function(n,i,r){Object.defineProperty(i,"__esModule",{value:!0});var s=r(9),u=r(4),o=r(11);function c(l){return"0123456789abcdef".indexOf(l.toLowerCase())}function a(l){return"01234567".indexOf(l)}var f=function(){function l(h,d){this.source=h,this.errorHandler=d,this.trackComment=!1,this.isModule=!1,this.length=h.length,this.index=0,this.lineNumber=h.length>0?1:0,this.lineStart=0,this.curlyStack=[]}return l.prototype.saveState=function(){return{index:this.index,lineNumber:this.lineNumber,lineStart:this.lineStart}},l.prototype.restoreState=function(h){this.index=h.index,this.lineNumber=h.lineNumber,this.lineStart=h.lineStart},l.prototype.eof=function(){return this.index>=this.length},l.prototype.throwUnexpectedToken=function(h){return h===void 0&&(h=o.Messages.UnexpectedTokenIllegal),this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,h)},l.prototype.tolerateUnexpectedToken=function(h){h===void 0&&(h=o.Messages.UnexpectedTokenIllegal),this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,h)},l.prototype.skipSingleLineComment=function(h){var d=[],g,p;for(this.trackComment&&(d=[],g=this.index-h,p={start:{line:this.lineNumber,column:this.index-this.lineStart-h},end:{}});!this.eof();){var m=this.source.charCodeAt(this.index);if(++this.index,u.Character.isLineTerminator(m)){if(this.trackComment){p.end={line:this.lineNumber,column:this.index-this.lineStart-1};var w={multiLine:!1,slice:[g+h,this.index-1],range:[g,this.index-1],loc:p};d.push(w)}return m===13&&this.source.charCodeAt(this.index)===10&&++this.index,++this.lineNumber,this.lineStart=this.index,d}}if(this.trackComment){p.end={line:this.lineNumber,column:this.index-this.lineStart};var w={multiLine:!1,slice:[g+h,this.index],range:[g,this.index],loc:p};d.push(w)}return d},l.prototype.skipMultiLineComment=function(){var h=[],d,g;for(this.trackComment&&(h=[],d=this.index-2,g={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}});!this.eof();){var p=this.source.charCodeAt(this.index);if(u.Character.isLineTerminator(p))p===13&&this.source.charCodeAt(this.index+1)===10&&++this.index,++this.lineNumber,++this.index,this.lineStart=this.index;else if(p===42){if(this.source.charCodeAt(this.index+1)===47){if(this.index+=2,this.trackComment){g.end={line:this.lineNumber,column:this.index-this.lineStart};var m={multiLine:!0,slice:[d+2,this.index-2],range:[d,this.index],loc:g};h.push(m)}return h}++this.index}else++this.index}if(this.trackComment){g.end={line:this.lineNumber,column:this.index-this.lineStart};var m={multiLine:!0,slice:[d+2,this.index],range:[d,this.index],loc:g};h.push(m)}return this.tolerateUnexpectedToken(),h},l.prototype.scanComments=function(){var h;this.trackComment&&(h=[]);for(var d=this.index===0;!this.eof();){var g=this.source.charCodeAt(this.index);if(u.Character.isWhiteSpace(g))++this.index;else if(u.Character.isLineTerminator(g))++this.index,g===13&&this.source.charCodeAt(this.index)===10&&++this.index,++this.lineNumber,this.lineStart=this.index,d=!0;else if(g===47)if(g=this.source.charCodeAt(this.index+1),g===47){this.index+=2;var p=this.skipSingleLineComment(2);this.trackComment&&(h=h.concat(p)),d=!0}else if(g===42){this.index+=2;var p=this.skipMultiLineComment();this.trackComment&&(h=h.concat(p))}else break;else if(d&&g===45)if(this.source.charCodeAt(this.index+1)===45&&this.source.charCodeAt(this.index+2)===62){this.index+=3;var p=this.skipSingleLineComment(3);this.trackComment&&(h=h.concat(p))}else break;else if(g===60&&!this.isModule)if(this.source.slice(this.index+1,this.index+4)==="!--"){this.index+=4;var p=this.skipSingleLineComment(4);this.trackComment&&(h=h.concat(p))}else break;else break}return h},l.prototype.isFutureReservedWord=function(h){switch(h){case"enum":case"export":case"import":case"super":return!0;default:return!1}},l.prototype.isStrictModeReservedWord=function(h){switch(h){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}},l.prototype.isRestrictedWord=function(h){return h==="eval"||h==="arguments"},l.prototype.isKeyword=function(h){switch(h.length){case 2:return h==="if"||h==="in"||h==="do";case 3:return h==="var"||h==="for"||h==="new"||h==="try"||h==="let";case 4:return h==="this"||h==="else"||h==="case"||h==="void"||h==="with"||h==="enum";case 5:return h==="while"||h==="break"||h==="catch"||h==="throw"||h==="const"||h==="yield"||h==="class"||h==="super";case 6:return h==="return"||h==="typeof"||h==="delete"||h==="switch"||h==="export"||h==="import";case 7:return h==="default"||h==="finally"||h==="extends";case 8:return h==="function"||h==="continue"||h==="debugger";case 10:return h==="instanceof";default:return!1}},l.prototype.codePointAt=function(h){var d=this.source.charCodeAt(h);if(d>=55296&&d<=56319){var g=this.source.charCodeAt(h+1);if(g>=56320&&g<=57343){var p=d;d=(p-55296)*1024+g-56320+65536}}return d},l.prototype.scanHexEscape=function(h){for(var d=h==="u"?4:2,g=0,p=0;p<d;++p)if(!this.eof()&&u.Character.isHexDigit(this.source.charCodeAt(this.index)))g=g*16+c(this.source[this.index++]);else return null;return String.fromCharCode(g)},l.prototype.scanUnicodeCodePointEscape=function(){var h=this.source[this.index],d=0;for(h==="}"&&this.throwUnexpectedToken();!this.eof()&&(h=this.source[this.index++],!!u.Character.isHexDigit(h.charCodeAt(0)));)d=d*16+c(h);return(d>1114111||h!=="}")&&this.throwUnexpectedToken(),u.Character.fromCodePoint(d)},l.prototype.getIdentifier=function(){for(var h=this.index++;!this.eof();){var d=this.source.charCodeAt(this.index);if(d===92)return this.index=h,this.getComplexIdentifier();if(d>=55296&&d<57343)return this.index=h,this.getComplexIdentifier();if(u.Character.isIdentifierPart(d))++this.index;else break}return this.source.slice(h,this.index)},l.prototype.getComplexIdentifier=function(){var h=this.codePointAt(this.index),d=u.Character.fromCodePoint(h);this.index+=d.length;var g;for(h===92&&(this.source.charCodeAt(this.index)!==117&&this.throwUnexpectedToken(),++this.index,this.source[this.index]==="{"?(++this.index,g=this.scanUnicodeCodePointEscape()):(g=this.scanHexEscape("u"),(g===null||g==="\\"||!u.Character.isIdentifierStart(g.charCodeAt(0)))&&this.throwUnexpectedToken()),d=g);!this.eof()&&(h=this.codePointAt(this.index),!!u.Character.isIdentifierPart(h));)g=u.Character.fromCodePoint(h),d+=g,this.index+=g.length,h===92&&(d=d.substr(0,d.length-1),this.source.charCodeAt(this.index)!==117&&this.throwUnexpectedToken(),++this.index,this.source[this.index]==="{"?(++this.index,g=this.scanUnicodeCodePointEscape()):(g=this.scanHexEscape("u"),(g===null||g==="\\"||!u.Character.isIdentifierPart(g.charCodeAt(0)))&&this.throwUnexpectedToken()),d+=g);return d},l.prototype.octalToDecimal=function(h){var d=h!=="0",g=a(h);return!this.eof()&&u.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(d=!0,g=g*8+a(this.source[this.index++]),"0123".indexOf(h)>=0&&!this.eof()&&u.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(g=g*8+a(this.source[this.index++]))),{code:g,octal:d}},l.prototype.scanIdentifier=function(){var h,d=this.index,g=this.source.charCodeAt(d)===92?this.getComplexIdentifier():this.getIdentifier();if(g.length===1?h=3:this.isKeyword(g)?h=4:g==="null"?h=5:g==="true"||g==="false"?h=1:h=3,h!==3&&d+g.length!==this.index){var p=this.index;this.index=d,this.tolerateUnexpectedToken(o.Messages.InvalidEscapedReservedWord),this.index=p}return{type:h,value:g,lineNumber:this.lineNumber,lineStart:this.lineStart,start:d,end:this.index}},l.prototype.scanPunctuator=function(){var h=this.index,d=this.source[this.index];switch(d){case"(":case"{":d==="{"&&this.curlyStack.push("{"),++this.index;break;case".":++this.index,this.source[this.index]==="."&&this.source[this.index+1]==="."&&(this.index+=2,d="...");break;case"}":++this.index,this.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++this.index;break;default:d=this.source.substr(this.index,4),d===">>>="?this.index+=4:(d=d.substr(0,3),d==="==="||d==="!=="||d===">>>"||d==="<<="||d===">>="||d==="**="?this.index+=3:(d=d.substr(0,2),d==="&&"||d==="||"||d==="=="||d==="!="||d==="+="||d==="-="||d==="*="||d==="/="||d==="++"||d==="--"||d==="<<"||d===">>"||d==="&="||d==="|="||d==="^="||d==="%="||d==="<="||d===">="||d==="=>"||d==="**"?this.index+=2:(d=this.source[this.index],"<>=!+-*%&|^/".indexOf(d)>=0&&++this.index)))}return this.index===h&&this.throwUnexpectedToken(),{type:7,value:d,lineNumber:this.lineNumber,lineStart:this.lineStart,start:h,end:this.index}},l.prototype.scanHexLiteral=function(h){for(var d="";!this.eof()&&u.Character.isHexDigit(this.source.charCodeAt(this.index));)d+=this.source[this.index++];return d.length===0&&this.throwUnexpectedToken(),u.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:6,value:parseInt("0x"+d,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:h,end:this.index}},l.prototype.scanBinaryLiteral=function(h){for(var d="",g;!this.eof()&&(g=this.source[this.index],!(g!=="0"&&g!=="1"));)d+=this.source[this.index++];return d.length===0&&this.throwUnexpectedToken(),this.eof()||(g=this.source.charCodeAt(this.index),(u.Character.isIdentifierStart(g)||u.Character.isDecimalDigit(g))&&this.throwUnexpectedToken()),{type:6,value:parseInt(d,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:h,end:this.index}},l.prototype.scanOctalLiteral=function(h,d){var g="",p=!1;for(u.Character.isOctalDigit(h.charCodeAt(0))?(p=!0,g="0"+this.source[this.index++]):++this.index;!this.eof()&&u.Character.isOctalDigit(this.source.charCodeAt(this.index));)g+=this.source[this.index++];return!p&&g.length===0&&this.throwUnexpectedToken(),(u.Character.isIdentifierStart(this.source.charCodeAt(this.index))||u.Character.isDecimalDigit(this.source.charCodeAt(this.index)))&&this.throwUnexpectedToken(),{type:6,value:parseInt(g,8),octal:p,lineNumber:this.lineNumber,lineStart:this.lineStart,start:d,end:this.index}},l.prototype.isImplicitOctalLiteral=function(){for(var h=this.index+1;h<this.length;++h){var d=this.source[h];if(d==="8"||d==="9")return!1;if(!u.Character.isOctalDigit(d.charCodeAt(0)))return!0}return!0},l.prototype.scanNumericLiteral=function(){var h=this.index,d=this.source[h];s.assert(u.Character.isDecimalDigit(d.charCodeAt(0))||d===".","Numeric literal must start with a decimal digit or a decimal point");var g="";if(d!=="."){if(g=this.source[this.index++],d=this.source[this.index],g==="0"){if(d==="x"||d==="X")return++this.index,this.scanHexLiteral(h);if(d==="b"||d==="B")return++this.index,this.scanBinaryLiteral(h);if(d==="o"||d==="O")return this.scanOctalLiteral(d,h);if(d&&u.Character.isOctalDigit(d.charCodeAt(0))&&this.isImplicitOctalLiteral())return this.scanOctalLiteral(d,h)}for(;u.Character.isDecimalDigit(this.source.charCodeAt(this.index));)g+=this.source[this.index++];d=this.source[this.index]}if(d==="."){for(g+=this.source[this.index++];u.Character.isDecimalDigit(this.source.charCodeAt(this.index));)g+=this.source[this.index++];d=this.source[this.index]}if(d==="e"||d==="E")if(g+=this.source[this.index++],d=this.source[this.index],(d==="+"||d==="-")&&(g+=this.source[this.index++]),u.Character.isDecimalDigit(this.source.charCodeAt(this.index)))for(;u.Character.isDecimalDigit(this.source.charCodeAt(this.index));)g+=this.source[this.index++];else this.throwUnexpectedToken();return u.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:6,value:parseFloat(g),lineNumber:this.lineNumber,lineStart:this.lineStart,start:h,end:this.index}},l.prototype.scanStringLiteral=function(){var h=this.index,d=this.source[h];s.assert(d==="'"||d==='"',"String literal must starts with a quote"),++this.index;for(var g=!1,p="";!this.eof();){var m=this.source[this.index++];if(m===d){d="";break}else if(m==="\\")if(m=this.source[this.index++],!m||!u.Character.isLineTerminator(m.charCodeAt(0)))switch(m){case"u":if(this.source[this.index]==="{")++this.index,p+=this.scanUnicodeCodePointEscape();else{var w=this.scanHexEscape(m);w===null&&this.throwUnexpectedToken(),p+=w}break;case"x":var v=this.scanHexEscape(m);v===null&&this.throwUnexpectedToken(o.Messages.InvalidHexEscapeSequence),p+=v;break;case"n":p+=` -`;break;case"r":p+="\r";break;case"t":p+=" ";break;case"b":p+="\b";break;case"f":p+="\f";break;case"v":p+="\v";break;case"8":case"9":p+=m,this.tolerateUnexpectedToken();break;default:if(m&&u.Character.isOctalDigit(m.charCodeAt(0))){var A=this.octalToDecimal(m);g=A.octal||g,p+=String.fromCharCode(A.code)}else p+=m;break}else++this.lineNumber,m==="\r"&&this.source[this.index]===` -`&&++this.index,this.lineStart=this.index;else{if(u.Character.isLineTerminator(m.charCodeAt(0)))break;p+=m}}return d!==""&&(this.index=h,this.throwUnexpectedToken()),{type:8,value:p,octal:g,lineNumber:this.lineNumber,lineStart:this.lineStart,start:h,end:this.index}},l.prototype.scanTemplate=function(){var h="",d=!1,g=this.index,p=this.source[g]==="`",m=!1,w=2;for(++this.index;!this.eof();){var v=this.source[this.index++];if(v==="`"){w=1,m=!0,d=!0;break}else if(v==="$"){if(this.source[this.index]==="{"){this.curlyStack.push("${"),++this.index,d=!0;break}h+=v}else if(v==="\\")if(v=this.source[this.index++],u.Character.isLineTerminator(v.charCodeAt(0)))++this.lineNumber,v==="\r"&&this.source[this.index]===` -`&&++this.index,this.lineStart=this.index;else switch(v){case"n":h+=` -`;break;case"r":h+="\r";break;case"t":h+=" ";break;case"u":if(this.source[this.index]==="{")++this.index,h+=this.scanUnicodeCodePointEscape();else{var A=this.index,_=this.scanHexEscape(v);_!==null?h+=_:(this.index=A,h+=v)}break;case"x":var E=this.scanHexEscape(v);E===null&&this.throwUnexpectedToken(o.Messages.InvalidHexEscapeSequence),h+=E;break;case"b":h+="\b";break;case"f":h+="\f";break;case"v":h+="\v";break;default:v==="0"?(u.Character.isDecimalDigit(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(o.Messages.TemplateOctalLiteral),h+="\0"):u.Character.isOctalDigit(v.charCodeAt(0))?this.throwUnexpectedToken(o.Messages.TemplateOctalLiteral):h+=v;break}else u.Character.isLineTerminator(v.charCodeAt(0))?(++this.lineNumber,v==="\r"&&this.source[this.index]===` -`&&++this.index,this.lineStart=this.index,h+=` -`):h+=v}return d||this.throwUnexpectedToken(),p||this.curlyStack.pop(),{type:10,value:this.source.slice(g+1,this.index-w),cooked:h,head:p,tail:m,lineNumber:this.lineNumber,lineStart:this.lineStart,start:g,end:this.index}},l.prototype.testRegExp=function(h,d){var g="\uFFFF",p=h,m=this;d.indexOf("u")>=0&&(p=p.replace(/\\u\{([0-9a-fA-F]+)\}|\\u([a-fA-F0-9]{4})/g,function(w,v,A){var _=parseInt(v||A,16);return _>1114111&&m.throwUnexpectedToken(o.Messages.InvalidRegExp),_<=65535?String.fromCharCode(_):g}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,g));try{RegExp(p)}catch{this.throwUnexpectedToken(o.Messages.InvalidRegExp)}try{return new RegExp(h,d)}catch{return null}},l.prototype.scanRegExpBody=function(){var h=this.source[this.index];s.assert(h==="/","Regular expression literal must start with a slash");for(var d=this.source[this.index++],g=!1,p=!1;!this.eof();)if(h=this.source[this.index++],d+=h,h==="\\")h=this.source[this.index++],u.Character.isLineTerminator(h.charCodeAt(0))&&this.throwUnexpectedToken(o.Messages.UnterminatedRegExp),d+=h;else if(u.Character.isLineTerminator(h.charCodeAt(0)))this.throwUnexpectedToken(o.Messages.UnterminatedRegExp);else if(g)h==="]"&&(g=!1);else if(h==="/"){p=!0;break}else h==="["&&(g=!0);return p||this.throwUnexpectedToken(o.Messages.UnterminatedRegExp),d.substr(1,d.length-2)},l.prototype.scanRegExpFlags=function(){for(var h="",d="";!this.eof();){var g=this.source[this.index];if(!u.Character.isIdentifierPart(g.charCodeAt(0)))break;if(++this.index,g==="\\"&&!this.eof())if(g=this.source[this.index],g==="u"){++this.index;var p=this.index,m=this.scanHexEscape("u");if(m!==null)for(d+=m,h+="\\u";p<this.index;++p)h+=this.source[p];else this.index=p,d+="u",h+="\\u";this.tolerateUnexpectedToken()}else h+="\\",this.tolerateUnexpectedToken();else d+=g,h+=g}return d},l.prototype.scanRegExp=function(){var h=this.index,d=this.scanRegExpBody(),g=this.scanRegExpFlags(),p=this.testRegExp(d,g);return{type:9,value:"",pattern:d,flags:g,regex:p,lineNumber:this.lineNumber,lineStart:this.lineStart,start:h,end:this.index}},l.prototype.lex=function(){if(this.eof())return{type:2,value:"",lineNumber:this.lineNumber,lineStart:this.lineStart,start:this.index,end:this.index};var h=this.source.charCodeAt(this.index);return u.Character.isIdentifierStart(h)?this.scanIdentifier():h===40||h===41||h===59?this.scanPunctuator():h===39||h===34?this.scanStringLiteral():h===46?u.Character.isDecimalDigit(this.source.charCodeAt(this.index+1))?this.scanNumericLiteral():this.scanPunctuator():u.Character.isDecimalDigit(h)?this.scanNumericLiteral():h===96||h===125&&this.curlyStack[this.curlyStack.length-1]==="${"?this.scanTemplate():h>=55296&&h<57343&&u.Character.isIdentifierStart(this.codePointAt(this.index))?this.scanIdentifier():this.scanPunctuator()},l}();i.Scanner=f},function(n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.TokenName={},i.TokenName[1]="Boolean",i.TokenName[2]="<end>",i.TokenName[3]="Identifier",i.TokenName[4]="Keyword",i.TokenName[5]="Null",i.TokenName[6]="Numeric",i.TokenName[7]="Punctuator",i.TokenName[8]="String",i.TokenName[9]="RegularExpression",i.TokenName[10]="Template"},function(n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.XHTMLEntities={quot:'"',amp:"&",apos:"'",gt:">",nbsp:"\xA0",iexcl:"\xA1",cent:"\xA2",pound:"\xA3",curren:"\xA4",yen:"\xA5",brvbar:"\xA6",sect:"\xA7",uml:"\xA8",copy:"\xA9",ordf:"\xAA",laquo:"\xAB",not:"\xAC",shy:"\xAD",reg:"\xAE",macr:"\xAF",deg:"\xB0",plusmn:"\xB1",sup2:"\xB2",sup3:"\xB3",acute:"\xB4",micro:"\xB5",para:"\xB6",middot:"\xB7",cedil:"\xB8",sup1:"\xB9",ordm:"\xBA",raquo:"\xBB",frac14:"\xBC",frac12:"\xBD",frac34:"\xBE",iquest:"\xBF",Agrave:"\xC0",Aacute:"\xC1",Acirc:"\xC2",Atilde:"\xC3",Auml:"\xC4",Aring:"\xC5",AElig:"\xC6",Ccedil:"\xC7",Egrave:"\xC8",Eacute:"\xC9",Ecirc:"\xCA",Euml:"\xCB",Igrave:"\xCC",Iacute:"\xCD",Icirc:"\xCE",Iuml:"\xCF",ETH:"\xD0",Ntilde:"\xD1",Ograve:"\xD2",Oacute:"\xD3",Ocirc:"\xD4",Otilde:"\xD5",Ouml:"\xD6",times:"\xD7",Oslash:"\xD8",Ugrave:"\xD9",Uacute:"\xDA",Ucirc:"\xDB",Uuml:"\xDC",Yacute:"\xDD",THORN:"\xDE",szlig:"\xDF",agrave:"\xE0",aacute:"\xE1",acirc:"\xE2",atilde:"\xE3",auml:"\xE4",aring:"\xE5",aelig:"\xE6",ccedil:"\xE7",egrave:"\xE8",eacute:"\xE9",ecirc:"\xEA",euml:"\xEB",igrave:"\xEC",iacute:"\xED",icirc:"\xEE",iuml:"\xEF",eth:"\xF0",ntilde:"\xF1",ograve:"\xF2",oacute:"\xF3",ocirc:"\xF4",otilde:"\xF5",ouml:"\xF6",divide:"\xF7",oslash:"\xF8",ugrave:"\xF9",uacute:"\xFA",ucirc:"\xFB",uuml:"\xFC",yacute:"\xFD",thorn:"\xFE",yuml:"\xFF",OElig:"\u0152",oelig:"\u0153",Scaron:"\u0160",scaron:"\u0161",Yuml:"\u0178",fnof:"\u0192",circ:"\u02C6",tilde:"\u02DC",Alpha:"\u0391",Beta:"\u0392",Gamma:"\u0393",Delta:"\u0394",Epsilon:"\u0395",Zeta:"\u0396",Eta:"\u0397",Theta:"\u0398",Iota:"\u0399",Kappa:"\u039A",Lambda:"\u039B",Mu:"\u039C",Nu:"\u039D",Xi:"\u039E",Omicron:"\u039F",Pi:"\u03A0",Rho:"\u03A1",Sigma:"\u03A3",Tau:"\u03A4",Upsilon:"\u03A5",Phi:"\u03A6",Chi:"\u03A7",Psi:"\u03A8",Omega:"\u03A9",alpha:"\u03B1",beta:"\u03B2",gamma:"\u03B3",delta:"\u03B4",epsilon:"\u03B5",zeta:"\u03B6",eta:"\u03B7",theta:"\u03B8",iota:"\u03B9",kappa:"\u03BA",lambda:"\u03BB",mu:"\u03BC",nu:"\u03BD",xi:"\u03BE",omicron:"\u03BF",pi:"\u03C0",rho:"\u03C1",sigmaf:"\u03C2",sigma:"\u03C3",tau:"\u03C4",upsilon:"\u03C5",phi:"\u03C6",chi:"\u03C7",psi:"\u03C8",omega:"\u03C9",thetasym:"\u03D1",upsih:"\u03D2",piv:"\u03D6",ensp:"\u2002",emsp:"\u2003",thinsp:"\u2009",zwnj:"\u200C",zwj:"\u200D",lrm:"\u200E",rlm:"\u200F",ndash:"\u2013",mdash:"\u2014",lsquo:"\u2018",rsquo:"\u2019",sbquo:"\u201A",ldquo:"\u201C",rdquo:"\u201D",bdquo:"\u201E",dagger:"\u2020",Dagger:"\u2021",bull:"\u2022",hellip:"\u2026",permil:"\u2030",prime:"\u2032",Prime:"\u2033",lsaquo:"\u2039",rsaquo:"\u203A",oline:"\u203E",frasl:"\u2044",euro:"\u20AC",image:"\u2111",weierp:"\u2118",real:"\u211C",trade:"\u2122",alefsym:"\u2135",larr:"\u2190",uarr:"\u2191",rarr:"\u2192",darr:"\u2193",harr:"\u2194",crarr:"\u21B5",lArr:"\u21D0",uArr:"\u21D1",rArr:"\u21D2",dArr:"\u21D3",hArr:"\u21D4",forall:"\u2200",part:"\u2202",exist:"\u2203",empty:"\u2205",nabla:"\u2207",isin:"\u2208",notin:"\u2209",ni:"\u220B",prod:"\u220F",sum:"\u2211",minus:"\u2212",lowast:"\u2217",radic:"\u221A",prop:"\u221D",infin:"\u221E",ang:"\u2220",and:"\u2227",or:"\u2228",cap:"\u2229",cup:"\u222A",int:"\u222B",there4:"\u2234",sim:"\u223C",cong:"\u2245",asymp:"\u2248",ne:"\u2260",equiv:"\u2261",le:"\u2264",ge:"\u2265",sub:"\u2282",sup:"\u2283",nsub:"\u2284",sube:"\u2286",supe:"\u2287",oplus:"\u2295",otimes:"\u2297",perp:"\u22A5",sdot:"\u22C5",lceil:"\u2308",rceil:"\u2309",lfloor:"\u230A",rfloor:"\u230B",loz:"\u25CA",spades:"\u2660",clubs:"\u2663",hearts:"\u2665",diams:"\u2666",lang:"\u27E8",rang:"\u27E9"}},function(n,i,r){Object.defineProperty(i,"__esModule",{value:!0});var s=r(10),u=r(12),o=r(13),c=function(){function f(){this.values=[],this.curly=this.paren=-1}return f.prototype.beforeFunctionExpression=function(l){return["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","**","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="].indexOf(l)>=0},f.prototype.isRegexStart=function(){var l=this.values[this.values.length-1],h=l!==null;switch(l){case"this":case"]":h=!1;break;case")":var d=this.values[this.paren-1];h=d==="if"||d==="while"||d==="for"||d==="with";break;case"}":if(h=!1,this.values[this.curly-3]==="function"){var g=this.values[this.curly-4];h=g?!this.beforeFunctionExpression(g):!1}else if(this.values[this.curly-4]==="function"){var g=this.values[this.curly-5];h=g?!this.beforeFunctionExpression(g):!0}break}return h},f.prototype.push=function(l){l.type===7||l.type===4?(l.value==="{"?this.curly=this.values.length:l.value==="("&&(this.paren=this.values.length),this.values.push(l.value)):this.values.push(null)},f}(),a=function(){function f(l,h){this.errorHandler=new s.ErrorHandler,this.errorHandler.tolerant=h?typeof h.tolerant=="boolean"&&h.tolerant:!1,this.scanner=new u.Scanner(l,this.errorHandler),this.scanner.trackComment=h?typeof h.comment=="boolean"&&h.comment:!1,this.trackRange=h?typeof h.range=="boolean"&&h.range:!1,this.trackLoc=h?typeof h.loc=="boolean"&&h.loc:!1,this.buffer=[],this.reader=new c}return f.prototype.errors=function(){return this.errorHandler.errors},f.prototype.getNextToken=function(){if(this.buffer.length===0){var l=this.scanner.scanComments();if(this.scanner.trackComment)for(var h=0;h<l.length;++h){var d=l[h],g=this.scanner.source.slice(d.slice[0],d.slice[1]),p={type:d.multiLine?"BlockComment":"LineComment",value:g};this.trackRange&&(p.range=d.range),this.trackLoc&&(p.loc=d.loc),this.buffer.push(p)}if(!this.scanner.eof()){var m=void 0;this.trackLoc&&(m={start:{line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart},end:{}});var w=this.scanner.source[this.scanner.index]==="/"&&this.reader.isRegexStart(),v=w?this.scanner.scanRegExp():this.scanner.lex();this.reader.push(v);var A={type:o.TokenName[v.type],value:this.scanner.source.slice(v.start,v.end)};if(this.trackRange&&(A.range=[v.start,v.end]),this.trackLoc&&(m.end={line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart},A.loc=m),v.type===9){var _=v.pattern,E=v.flags;A.regex={pattern:_,flags:E}}this.buffer.push(A)}}return this.buffer.shift()},f}();i.Tokenizer=a}])})})(np);var Et={},ip={},Wo={};Wo.byteLength=Q2;Wo.toByteArray=tE;Wo.fromByteArray=rE;var mn=[],Vt=[],Z2=typeof Uint8Array!="undefined"?Uint8Array:Array,Ba="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var Pi=0,q2=Ba.length;Pi<q2;++Pi)mn[Pi]=Ba[Pi],Vt[Ba.charCodeAt(Pi)]=Pi;Vt["-".charCodeAt(0)]=62;Vt["_".charCodeAt(0)]=63;function rp(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");n===-1&&(n=t);var i=n===t?0:4-n%4;return[n,i]}function Q2(e){var t=rp(e),n=t[0],i=t[1];return(n+i)*3/4-i}function eE(e,t,n){return(t+n)*3/4-n}function tE(e){var t,n=rp(e),i=n[0],r=n[1],s=new Z2(eE(e,i,r)),u=0,o=r>0?i-4:i,c;for(c=0;c<o;c+=4)t=Vt[e.charCodeAt(c)]<<18|Vt[e.charCodeAt(c+1)]<<12|Vt[e.charCodeAt(c+2)]<<6|Vt[e.charCodeAt(c+3)],s[u++]=t>>16&255,s[u++]=t>>8&255,s[u++]=t&255;return r===2&&(t=Vt[e.charCodeAt(c)]<<2|Vt[e.charCodeAt(c+1)]>>4,s[u++]=t&255),r===1&&(t=Vt[e.charCodeAt(c)]<<10|Vt[e.charCodeAt(c+1)]<<4|Vt[e.charCodeAt(c+2)]>>2,s[u++]=t>>8&255,s[u++]=t&255),s}function nE(e){return mn[e>>18&63]+mn[e>>12&63]+mn[e>>6&63]+mn[e&63]}function iE(e,t,n){for(var i,r=[],s=t;s<n;s+=3)i=(e[s]<<16&16711680)+(e[s+1]<<8&65280)+(e[s+2]&255),r.push(nE(i));return r.join("")}function rE(e){for(var t,n=e.length,i=n%3,r=[],s=16383,u=0,o=n-i;u<o;u+=s)r.push(iE(e,u,u+s>o?o:u+s));return i===1?(t=e[n-1],r.push(mn[t>>2]+mn[t<<4&63]+"==")):i===2&&(t=(e[n-2]<<8)+e[n-1],r.push(mn[t>>10]+mn[t>>4&63]+mn[t<<2&63]+"=")),r.join("")}var sc={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */sc.read=function(e,t,n,i,r){var s,u,o=r*8-i-1,c=(1<<o)-1,a=c>>1,f=-7,l=n?r-1:0,h=n?-1:1,d=e[t+l];for(l+=h,s=d&(1<<-f)-1,d>>=-f,f+=o;f>0;s=s*256+e[t+l],l+=h,f-=8);for(u=s&(1<<-f)-1,s>>=-f,f+=i;f>0;u=u*256+e[t+l],l+=h,f-=8);if(s===0)s=1-a;else{if(s===c)return u?NaN:(d?-1:1)*(1/0);u=u+Math.pow(2,i),s=s-a}return(d?-1:1)*u*Math.pow(2,s-i)};sc.write=function(e,t,n,i,r,s){var u,o,c,a=s*8-r-1,f=(1<<a)-1,l=f>>1,h=r===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=i?0:s-1,g=i?1:-1,p=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(o=isNaN(t)?1:0,u=f):(u=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-u))<1&&(u--,c*=2),u+l>=1?t+=h/c:t+=h*Math.pow(2,1-l),t*c>=2&&(u++,c/=2),u+l>=f?(o=0,u=f):u+l>=1?(o=(t*c-1)*Math.pow(2,r),u=u+l):(o=t*Math.pow(2,l-1)*Math.pow(2,r),u=0));r>=8;e[n+d]=o&255,d+=g,o/=256,r-=8);for(u=u<<r|o,a+=r;a>0;e[n+d]=u&255,d+=g,u/=256,a-=8);e[n+d-g]|=p*128};/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh <https://feross.org> - * @license MIT - */(function(e){const t=Wo,n=sc,i=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=o,e.SlowBuffer=v,e.INSPECT_MAX_BYTES=50;const r=2147483647;e.kMaxLength=r,o.TYPED_ARRAY_SUPPORT=s(),!o.TYPED_ARRAY_SUPPORT&&typeof console!="undefined"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function s(){try{const L=new Uint8Array(1),F={foo:function(){return 42}};return Object.setPrototypeOf(F,Uint8Array.prototype),Object.setPrototypeOf(L,F),L.foo()===42}catch{return!1}}Object.defineProperty(o.prototype,"parent",{enumerable:!0,get:function(){if(!!o.isBuffer(this))return this.buffer}}),Object.defineProperty(o.prototype,"offset",{enumerable:!0,get:function(){if(!!o.isBuffer(this))return this.byteOffset}});function u(L){if(L>r)throw new RangeError('The value "'+L+'" is invalid for option "size"');const F=new Uint8Array(L);return Object.setPrototypeOf(F,o.prototype),F}function o(L,F,D){if(typeof L=="number"){if(typeof F=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return l(L)}return c(L,F,D)}o.poolSize=8192;function c(L,F,D){if(typeof L=="string")return h(L,F);if(ArrayBuffer.isView(L))return g(L);if(L==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof L);if(ue(L,ArrayBuffer)||L&&ue(L.buffer,ArrayBuffer)||typeof SharedArrayBuffer!="undefined"&&(ue(L,SharedArrayBuffer)||L&&ue(L.buffer,SharedArrayBuffer)))return p(L,F,D);if(typeof L=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const O=L.valueOf&&L.valueOf();if(O!=null&&O!==L)return o.from(O,F,D);const W=m(L);if(W)return W;if(typeof Symbol!="undefined"&&Symbol.toPrimitive!=null&&typeof L[Symbol.toPrimitive]=="function")return o.from(L[Symbol.toPrimitive]("string"),F,D);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof L)}o.from=function(L,F,D){return c(L,F,D)},Object.setPrototypeOf(o.prototype,Uint8Array.prototype),Object.setPrototypeOf(o,Uint8Array);function a(L){if(typeof L!="number")throw new TypeError('"size" argument must be of type number');if(L<0)throw new RangeError('The value "'+L+'" is invalid for option "size"')}function f(L,F,D){return a(L),L<=0?u(L):F!==void 0?typeof D=="string"?u(L).fill(F,D):u(L).fill(F):u(L)}o.alloc=function(L,F,D){return f(L,F,D)};function l(L){return a(L),u(L<0?0:w(L)|0)}o.allocUnsafe=function(L){return l(L)},o.allocUnsafeSlow=function(L){return l(L)};function h(L,F){if((typeof F!="string"||F==="")&&(F="utf8"),!o.isEncoding(F))throw new TypeError("Unknown encoding: "+F);const D=A(L,F)|0;let O=u(D);const W=O.write(L,F);return W!==D&&(O=O.slice(0,W)),O}function d(L){const F=L.length<0?0:w(L.length)|0,D=u(F);for(let O=0;O<F;O+=1)D[O]=L[O]&255;return D}function g(L){if(ue(L,Uint8Array)){const F=new Uint8Array(L);return p(F.buffer,F.byteOffset,F.byteLength)}return d(L)}function p(L,F,D){if(F<0||L.byteLength<F)throw new RangeError('"offset" is outside of buffer bounds');if(L.byteLength<F+(D||0))throw new RangeError('"length" is outside of buffer bounds');let O;return F===void 0&&D===void 0?O=new Uint8Array(L):D===void 0?O=new Uint8Array(L,F):O=new Uint8Array(L,F,D),Object.setPrototypeOf(O,o.prototype),O}function m(L){if(o.isBuffer(L)){const F=w(L.length)|0,D=u(F);return D.length===0||L.copy(D,0,0,F),D}if(L.length!==void 0)return typeof L.length!="number"||Ft(L.length)?u(0):d(L);if(L.type==="Buffer"&&Array.isArray(L.data))return d(L.data)}function w(L){if(L>=r)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r.toString(16)+" bytes");return L|0}function v(L){return+L!=L&&(L=0),o.alloc(+L)}o.isBuffer=function(F){return F!=null&&F._isBuffer===!0&&F!==o.prototype},o.compare=function(F,D){if(ue(F,Uint8Array)&&(F=o.from(F,F.offset,F.byteLength)),ue(D,Uint8Array)&&(D=o.from(D,D.offset,D.byteLength)),!o.isBuffer(F)||!o.isBuffer(D))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(F===D)return 0;let O=F.length,W=D.length;for(let J=0,q=Math.min(O,W);J<q;++J)if(F[J]!==D[J]){O=F[J],W=D[J];break}return O<W?-1:W<O?1:0},o.isEncoding=function(F){switch(String(F).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},o.concat=function(F,D){if(!Array.isArray(F))throw new TypeError('"list" argument must be an Array of Buffers');if(F.length===0)return o.alloc(0);let O;if(D===void 0)for(D=0,O=0;O<F.length;++O)D+=F[O].length;const W=o.allocUnsafe(D);let J=0;for(O=0;O<F.length;++O){let q=F[O];if(ue(q,Uint8Array))J+q.length>W.length?(o.isBuffer(q)||(q=o.from(q)),q.copy(W,J)):Uint8Array.prototype.set.call(W,q,J);else if(o.isBuffer(q))q.copy(W,J);else throw new TypeError('"list" argument must be an Array of Buffers');J+=q.length}return W};function A(L,F){if(o.isBuffer(L))return L.length;if(ArrayBuffer.isView(L)||ue(L,ArrayBuffer))return L.byteLength;if(typeof L!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof L);const D=L.length,O=arguments.length>2&&arguments[2]===!0;if(!O&&D===0)return 0;let W=!1;for(;;)switch(F){case"ascii":case"latin1":case"binary":return D;case"utf8":case"utf-8":return ge(L).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return D*2;case"hex":return D>>>1;case"base64":return Te(L).length;default:if(W)return O?-1:ge(L).length;F=(""+F).toLowerCase(),W=!0}}o.byteLength=A;function _(L,F,D){let O=!1;if((F===void 0||F<0)&&(F=0),F>this.length||((D===void 0||D>this.length)&&(D=this.length),D<=0)||(D>>>=0,F>>>=0,D<=F))return"";for(L||(L="utf8");;)switch(L){case"hex":return K(this,F,D);case"utf8":case"utf-8":return I(this,F,D);case"ascii":return j(this,F,D);case"latin1":case"binary":return V(this,F,D);case"base64":return R(this,F,D);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return N(this,F,D);default:if(O)throw new TypeError("Unknown encoding: "+L);L=(L+"").toLowerCase(),O=!0}}o.prototype._isBuffer=!0;function E(L,F,D){const O=L[F];L[F]=L[D],L[D]=O}o.prototype.swap16=function(){const F=this.length;if(F%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let D=0;D<F;D+=2)E(this,D,D+1);return this},o.prototype.swap32=function(){const F=this.length;if(F%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let D=0;D<F;D+=4)E(this,D,D+3),E(this,D+1,D+2);return this},o.prototype.swap64=function(){const F=this.length;if(F%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let D=0;D<F;D+=8)E(this,D,D+7),E(this,D+1,D+6),E(this,D+2,D+5),E(this,D+3,D+4);return this},o.prototype.toString=function(){const F=this.length;return F===0?"":arguments.length===0?I(this,0,F):_.apply(this,arguments)},o.prototype.toLocaleString=o.prototype.toString,o.prototype.equals=function(F){if(!o.isBuffer(F))throw new TypeError("Argument must be a Buffer");return this===F?!0:o.compare(this,F)===0},o.prototype.inspect=function(){let F="";const D=e.INSPECT_MAX_BYTES;return F=this.toString("hex",0,D).replace(/(.{2})/g,"$1 ").trim(),this.length>D&&(F+=" ... "),"<Buffer "+F+">"},i&&(o.prototype[i]=o.prototype.inspect),o.prototype.compare=function(F,D,O,W,J){if(ue(F,Uint8Array)&&(F=o.from(F,F.offset,F.byteLength)),!o.isBuffer(F))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof F);if(D===void 0&&(D=0),O===void 0&&(O=F?F.length:0),W===void 0&&(W=0),J===void 0&&(J=this.length),D<0||O>F.length||W<0||J>this.length)throw new RangeError("out of range index");if(W>=J&&D>=O)return 0;if(W>=J)return-1;if(D>=O)return 1;if(D>>>=0,O>>>=0,W>>>=0,J>>>=0,this===F)return 0;let q=J-W,ke=O-D;const Ge=Math.min(q,ke),We=this.slice(W,J),Ze=F.slice(D,O);for(let Ne=0;Ne<Ge;++Ne)if(We[Ne]!==Ze[Ne]){q=We[Ne],ke=Ze[Ne];break}return q<ke?-1:ke<q?1:0};function b(L,F,D,O,W){if(L.length===0)return-1;if(typeof D=="string"?(O=D,D=0):D>2147483647?D=2147483647:D<-2147483648&&(D=-2147483648),D=+D,Ft(D)&&(D=W?0:L.length-1),D<0&&(D=L.length+D),D>=L.length){if(W)return-1;D=L.length-1}else if(D<0)if(W)D=0;else return-1;if(typeof F=="string"&&(F=o.from(F,O)),o.isBuffer(F))return F.length===0?-1:x(L,F,D,O,W);if(typeof F=="number")return F=F&255,typeof Uint8Array.prototype.indexOf=="function"?W?Uint8Array.prototype.indexOf.call(L,F,D):Uint8Array.prototype.lastIndexOf.call(L,F,D):x(L,[F],D,O,W);throw new TypeError("val must be string, number or Buffer")}function x(L,F,D,O,W){let J=1,q=L.length,ke=F.length;if(O!==void 0&&(O=String(O).toLowerCase(),O==="ucs2"||O==="ucs-2"||O==="utf16le"||O==="utf-16le")){if(L.length<2||F.length<2)return-1;J=2,q/=2,ke/=2,D/=2}function Ge(Ze,Ne){return J===1?Ze[Ne]:Ze.readUInt16BE(Ne*J)}let We;if(W){let Ze=-1;for(We=D;We<q;We++)if(Ge(L,We)===Ge(F,Ze===-1?0:We-Ze)){if(Ze===-1&&(Ze=We),We-Ze+1===ke)return Ze*J}else Ze!==-1&&(We-=We-Ze),Ze=-1}else for(D+ke>q&&(D=q-ke),We=D;We>=0;We--){let Ze=!0;for(let Ne=0;Ne<ke;Ne++)if(Ge(L,We+Ne)!==Ge(F,Ne)){Ze=!1;break}if(Ze)return We}return-1}o.prototype.includes=function(F,D,O){return this.indexOf(F,D,O)!==-1},o.prototype.indexOf=function(F,D,O){return b(this,F,D,O,!0)},o.prototype.lastIndexOf=function(F,D,O){return b(this,F,D,O,!1)};function y(L,F,D,O){D=Number(D)||0;const W=L.length-D;O?(O=Number(O),O>W&&(O=W)):O=W;const J=F.length;O>J/2&&(O=J/2);let q;for(q=0;q<O;++q){const ke=parseInt(F.substr(q*2,2),16);if(Ft(ke))return q;L[D+q]=ke}return q}function C(L,F,D,O){return bt(ge(F,L.length-D),L,D,O)}function B(L,F,D,O){return bt(Tt(F),L,D,O)}function T(L,F,D,O){return bt(Te(F),L,D,O)}function M(L,F,D,O){return bt(Re(F,L.length-D),L,D,O)}o.prototype.write=function(F,D,O,W){if(D===void 0)W="utf8",O=this.length,D=0;else if(O===void 0&&typeof D=="string")W=D,O=this.length,D=0;else if(isFinite(D))D=D>>>0,isFinite(O)?(O=O>>>0,W===void 0&&(W="utf8")):(W=O,O=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const J=this.length-D;if((O===void 0||O>J)&&(O=J),F.length>0&&(O<0||D<0)||D>this.length)throw new RangeError("Attempt to write outside buffer bounds");W||(W="utf8");let q=!1;for(;;)switch(W){case"hex":return y(this,F,D,O);case"utf8":case"utf-8":return C(this,F,D,O);case"ascii":case"latin1":case"binary":return B(this,F,D,O);case"base64":return T(this,F,D,O);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return M(this,F,D,O);default:if(q)throw new TypeError("Unknown encoding: "+W);W=(""+W).toLowerCase(),q=!0}},o.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function R(L,F,D){return F===0&&D===L.length?t.fromByteArray(L):t.fromByteArray(L.slice(F,D))}function I(L,F,D){D=Math.min(L.length,D);const O=[];let W=F;for(;W<D;){const J=L[W];let q=null,ke=J>239?4:J>223?3:J>191?2:1;if(W+ke<=D){let Ge,We,Ze,Ne;switch(ke){case 1:J<128&&(q=J);break;case 2:Ge=L[W+1],(Ge&192)===128&&(Ne=(J&31)<<6|Ge&63,Ne>127&&(q=Ne));break;case 3:Ge=L[W+1],We=L[W+2],(Ge&192)===128&&(We&192)===128&&(Ne=(J&15)<<12|(Ge&63)<<6|We&63,Ne>2047&&(Ne<55296||Ne>57343)&&(q=Ne));break;case 4:Ge=L[W+1],We=L[W+2],Ze=L[W+3],(Ge&192)===128&&(We&192)===128&&(Ze&192)===128&&(Ne=(J&15)<<18|(Ge&63)<<12|(We&63)<<6|Ze&63,Ne>65535&&Ne<1114112&&(q=Ne))}}q===null?(q=65533,ke=1):q>65535&&(q-=65536,O.push(q>>>10&1023|55296),q=56320|q&1023),O.push(q),W+=ke}return P(O)}const H=4096;function P(L){const F=L.length;if(F<=H)return String.fromCharCode.apply(String,L);let D="",O=0;for(;O<F;)D+=String.fromCharCode.apply(String,L.slice(O,O+=H));return D}function j(L,F,D){let O="";D=Math.min(L.length,D);for(let W=F;W<D;++W)O+=String.fromCharCode(L[W]&127);return O}function V(L,F,D){let O="";D=Math.min(L.length,D);for(let W=F;W<D;++W)O+=String.fromCharCode(L[W]);return O}function K(L,F,D){const O=L.length;(!F||F<0)&&(F=0),(!D||D<0||D>O)&&(D=O);let W="";for(let J=F;J<D;++J)W+=ln[L[J]];return W}function N(L,F,D){const O=L.slice(F,D);let W="";for(let J=0;J<O.length-1;J+=2)W+=String.fromCharCode(O[J]+O[J+1]*256);return W}o.prototype.slice=function(F,D){const O=this.length;F=~~F,D=D===void 0?O:~~D,F<0?(F+=O,F<0&&(F=0)):F>O&&(F=O),D<0?(D+=O,D<0&&(D=0)):D>O&&(D=O),D<F&&(D=F);const W=this.subarray(F,D);return Object.setPrototypeOf(W,o.prototype),W};function k(L,F,D){if(L%1!==0||L<0)throw new RangeError("offset is not uint");if(L+F>D)throw new RangeError("Trying to access beyond buffer length")}o.prototype.readUintLE=o.prototype.readUIntLE=function(F,D,O){F=F>>>0,D=D>>>0,O||k(F,D,this.length);let W=this[F],J=1,q=0;for(;++q<D&&(J*=256);)W+=this[F+q]*J;return W},o.prototype.readUintBE=o.prototype.readUIntBE=function(F,D,O){F=F>>>0,D=D>>>0,O||k(F,D,this.length);let W=this[F+--D],J=1;for(;D>0&&(J*=256);)W+=this[F+--D]*J;return W},o.prototype.readUint8=o.prototype.readUInt8=function(F,D){return F=F>>>0,D||k(F,1,this.length),this[F]},o.prototype.readUint16LE=o.prototype.readUInt16LE=function(F,D){return F=F>>>0,D||k(F,2,this.length),this[F]|this[F+1]<<8},o.prototype.readUint16BE=o.prototype.readUInt16BE=function(F,D){return F=F>>>0,D||k(F,2,this.length),this[F]<<8|this[F+1]},o.prototype.readUint32LE=o.prototype.readUInt32LE=function(F,D){return F=F>>>0,D||k(F,4,this.length),(this[F]|this[F+1]<<8|this[F+2]<<16)+this[F+3]*16777216},o.prototype.readUint32BE=o.prototype.readUInt32BE=function(F,D){return F=F>>>0,D||k(F,4,this.length),this[F]*16777216+(this[F+1]<<16|this[F+2]<<8|this[F+3])},o.prototype.readBigUInt64LE=re(function(F){F=F>>>0,ce(F,"offset");const D=this[F],O=this[F+7];(D===void 0||O===void 0)&&he(F,this.length-8);const W=D+this[++F]*2**8+this[++F]*2**16+this[++F]*2**24,J=this[++F]+this[++F]*2**8+this[++F]*2**16+O*2**24;return BigInt(W)+(BigInt(J)<<BigInt(32))}),o.prototype.readBigUInt64BE=re(function(F){F=F>>>0,ce(F,"offset");const D=this[F],O=this[F+7];(D===void 0||O===void 0)&&he(F,this.length-8);const W=D*2**24+this[++F]*2**16+this[++F]*2**8+this[++F],J=this[++F]*2**24+this[++F]*2**16+this[++F]*2**8+O;return(BigInt(W)<<BigInt(32))+BigInt(J)}),o.prototype.readIntLE=function(F,D,O){F=F>>>0,D=D>>>0,O||k(F,D,this.length);let W=this[F],J=1,q=0;for(;++q<D&&(J*=256);)W+=this[F+q]*J;return J*=128,W>=J&&(W-=Math.pow(2,8*D)),W},o.prototype.readIntBE=function(F,D,O){F=F>>>0,D=D>>>0,O||k(F,D,this.length);let W=D,J=1,q=this[F+--W];for(;W>0&&(J*=256);)q+=this[F+--W]*J;return J*=128,q>=J&&(q-=Math.pow(2,8*D)),q},o.prototype.readInt8=function(F,D){return F=F>>>0,D||k(F,1,this.length),this[F]&128?(255-this[F]+1)*-1:this[F]},o.prototype.readInt16LE=function(F,D){F=F>>>0,D||k(F,2,this.length);const O=this[F]|this[F+1]<<8;return O&32768?O|4294901760:O},o.prototype.readInt16BE=function(F,D){F=F>>>0,D||k(F,2,this.length);const O=this[F+1]|this[F]<<8;return O&32768?O|4294901760:O},o.prototype.readInt32LE=function(F,D){return F=F>>>0,D||k(F,4,this.length),this[F]|this[F+1]<<8|this[F+2]<<16|this[F+3]<<24},o.prototype.readInt32BE=function(F,D){return F=F>>>0,D||k(F,4,this.length),this[F]<<24|this[F+1]<<16|this[F+2]<<8|this[F+3]},o.prototype.readBigInt64LE=re(function(F){F=F>>>0,ce(F,"offset");const D=this[F],O=this[F+7];(D===void 0||O===void 0)&&he(F,this.length-8);const W=this[F+4]+this[F+5]*2**8+this[F+6]*2**16+(O<<24);return(BigInt(W)<<BigInt(32))+BigInt(D+this[++F]*2**8+this[++F]*2**16+this[++F]*2**24)}),o.prototype.readBigInt64BE=re(function(F){F=F>>>0,ce(F,"offset");const D=this[F],O=this[F+7];(D===void 0||O===void 0)&&he(F,this.length-8);const W=(D<<24)+this[++F]*2**16+this[++F]*2**8+this[++F];return(BigInt(W)<<BigInt(32))+BigInt(this[++F]*2**24+this[++F]*2**16+this[++F]*2**8+O)}),o.prototype.readFloatLE=function(F,D){return F=F>>>0,D||k(F,4,this.length),n.read(this,F,!0,23,4)},o.prototype.readFloatBE=function(F,D){return F=F>>>0,D||k(F,4,this.length),n.read(this,F,!1,23,4)},o.prototype.readDoubleLE=function(F,D){return F=F>>>0,D||k(F,8,this.length),n.read(this,F,!0,52,8)},o.prototype.readDoubleBE=function(F,D){return F=F>>>0,D||k(F,8,this.length),n.read(this,F,!1,52,8)};function $(L,F,D,O,W,J){if(!o.isBuffer(L))throw new TypeError('"buffer" argument must be a Buffer instance');if(F>W||F<J)throw new RangeError('"value" argument is out of bounds');if(D+O>L.length)throw new RangeError("Index out of range")}o.prototype.writeUintLE=o.prototype.writeUIntLE=function(F,D,O,W){if(F=+F,D=D>>>0,O=O>>>0,!W){const ke=Math.pow(2,8*O)-1;$(this,F,D,O,ke,0)}let J=1,q=0;for(this[D]=F&255;++q<O&&(J*=256);)this[D+q]=F/J&255;return D+O},o.prototype.writeUintBE=o.prototype.writeUIntBE=function(F,D,O,W){if(F=+F,D=D>>>0,O=O>>>0,!W){const ke=Math.pow(2,8*O)-1;$(this,F,D,O,ke,0)}let J=O-1,q=1;for(this[D+J]=F&255;--J>=0&&(q*=256);)this[D+J]=F/q&255;return D+O},o.prototype.writeUint8=o.prototype.writeUInt8=function(F,D,O){return F=+F,D=D>>>0,O||$(this,F,D,1,255,0),this[D]=F&255,D+1},o.prototype.writeUint16LE=o.prototype.writeUInt16LE=function(F,D,O){return F=+F,D=D>>>0,O||$(this,F,D,2,65535,0),this[D]=F&255,this[D+1]=F>>>8,D+2},o.prototype.writeUint16BE=o.prototype.writeUInt16BE=function(F,D,O){return F=+F,D=D>>>0,O||$(this,F,D,2,65535,0),this[D]=F>>>8,this[D+1]=F&255,D+2},o.prototype.writeUint32LE=o.prototype.writeUInt32LE=function(F,D,O){return F=+F,D=D>>>0,O||$(this,F,D,4,4294967295,0),this[D+3]=F>>>24,this[D+2]=F>>>16,this[D+1]=F>>>8,this[D]=F&255,D+4},o.prototype.writeUint32BE=o.prototype.writeUInt32BE=function(F,D,O){return F=+F,D=D>>>0,O||$(this,F,D,4,4294967295,0),this[D]=F>>>24,this[D+1]=F>>>16,this[D+2]=F>>>8,this[D+3]=F&255,D+4};function z(L,F,D,O,W){ee(F,O,W,L,D,7);let J=Number(F&BigInt(4294967295));L[D++]=J,J=J>>8,L[D++]=J,J=J>>8,L[D++]=J,J=J>>8,L[D++]=J;let q=Number(F>>BigInt(32)&BigInt(4294967295));return L[D++]=q,q=q>>8,L[D++]=q,q=q>>8,L[D++]=q,q=q>>8,L[D++]=q,D}function U(L,F,D,O,W){ee(F,O,W,L,D,7);let J=Number(F&BigInt(4294967295));L[D+7]=J,J=J>>8,L[D+6]=J,J=J>>8,L[D+5]=J,J=J>>8,L[D+4]=J;let q=Number(F>>BigInt(32)&BigInt(4294967295));return L[D+3]=q,q=q>>8,L[D+2]=q,q=q>>8,L[D+1]=q,q=q>>8,L[D]=q,D+8}o.prototype.writeBigUInt64LE=re(function(F,D=0){return z(this,F,D,BigInt(0),BigInt("0xffffffffffffffff"))}),o.prototype.writeBigUInt64BE=re(function(F,D=0){return U(this,F,D,BigInt(0),BigInt("0xffffffffffffffff"))}),o.prototype.writeIntLE=function(F,D,O,W){if(F=+F,D=D>>>0,!W){const Ge=Math.pow(2,8*O-1);$(this,F,D,O,Ge-1,-Ge)}let J=0,q=1,ke=0;for(this[D]=F&255;++J<O&&(q*=256);)F<0&&ke===0&&this[D+J-1]!==0&&(ke=1),this[D+J]=(F/q>>0)-ke&255;return D+O},o.prototype.writeIntBE=function(F,D,O,W){if(F=+F,D=D>>>0,!W){const Ge=Math.pow(2,8*O-1);$(this,F,D,O,Ge-1,-Ge)}let J=O-1,q=1,ke=0;for(this[D+J]=F&255;--J>=0&&(q*=256);)F<0&&ke===0&&this[D+J+1]!==0&&(ke=1),this[D+J]=(F/q>>0)-ke&255;return D+O},o.prototype.writeInt8=function(F,D,O){return F=+F,D=D>>>0,O||$(this,F,D,1,127,-128),F<0&&(F=255+F+1),this[D]=F&255,D+1},o.prototype.writeInt16LE=function(F,D,O){return F=+F,D=D>>>0,O||$(this,F,D,2,32767,-32768),this[D]=F&255,this[D+1]=F>>>8,D+2},o.prototype.writeInt16BE=function(F,D,O){return F=+F,D=D>>>0,O||$(this,F,D,2,32767,-32768),this[D]=F>>>8,this[D+1]=F&255,D+2},o.prototype.writeInt32LE=function(F,D,O){return F=+F,D=D>>>0,O||$(this,F,D,4,2147483647,-2147483648),this[D]=F&255,this[D+1]=F>>>8,this[D+2]=F>>>16,this[D+3]=F>>>24,D+4},o.prototype.writeInt32BE=function(F,D,O){return F=+F,D=D>>>0,O||$(this,F,D,4,2147483647,-2147483648),F<0&&(F=4294967295+F+1),this[D]=F>>>24,this[D+1]=F>>>16,this[D+2]=F>>>8,this[D+3]=F&255,D+4},o.prototype.writeBigInt64LE=re(function(F,D=0){return z(this,F,D,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),o.prototype.writeBigInt64BE=re(function(F,D=0){return U(this,F,D,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function G(L,F,D,O,W,J){if(D+O>L.length)throw new RangeError("Index out of range");if(D<0)throw new RangeError("Index out of range")}function Q(L,F,D,O,W){return F=+F,D=D>>>0,W||G(L,F,D,4),n.write(L,F,D,O,23,4),D+4}o.prototype.writeFloatLE=function(F,D,O){return Q(this,F,D,!0,O)},o.prototype.writeFloatBE=function(F,D,O){return Q(this,F,D,!1,O)};function X(L,F,D,O,W){return F=+F,D=D>>>0,W||G(L,F,D,8),n.write(L,F,D,O,52,8),D+8}o.prototype.writeDoubleLE=function(F,D,O){return X(this,F,D,!0,O)},o.prototype.writeDoubleBE=function(F,D,O){return X(this,F,D,!1,O)},o.prototype.copy=function(F,D,O,W){if(!o.isBuffer(F))throw new TypeError("argument should be a Buffer");if(O||(O=0),!W&&W!==0&&(W=this.length),D>=F.length&&(D=F.length),D||(D=0),W>0&&W<O&&(W=O),W===O||F.length===0||this.length===0)return 0;if(D<0)throw new RangeError("targetStart out of bounds");if(O<0||O>=this.length)throw new RangeError("Index out of range");if(W<0)throw new RangeError("sourceEnd out of bounds");W>this.length&&(W=this.length),F.length-D<W-O&&(W=F.length-D+O);const J=W-O;return this===F&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(D,O,W):Uint8Array.prototype.set.call(F,this.subarray(O,W),D),J},o.prototype.fill=function(F,D,O,W){if(typeof F=="string"){if(typeof D=="string"?(W=D,D=0,O=this.length):typeof O=="string"&&(W=O,O=this.length),W!==void 0&&typeof W!="string")throw new TypeError("encoding must be a string");if(typeof W=="string"&&!o.isEncoding(W))throw new TypeError("Unknown encoding: "+W);if(F.length===1){const q=F.charCodeAt(0);(W==="utf8"&&q<128||W==="latin1")&&(F=q)}}else typeof F=="number"?F=F&255:typeof F=="boolean"&&(F=Number(F));if(D<0||this.length<D||this.length<O)throw new RangeError("Out of range index");if(O<=D)return this;D=D>>>0,O=O===void 0?this.length:O>>>0,F||(F=0);let J;if(typeof F=="number")for(J=D;J<O;++J)this[J]=F;else{const q=o.isBuffer(F)?F:o.from(F,W),ke=q.length;if(ke===0)throw new TypeError('The value "'+F+'" is invalid for argument "value"');for(J=0;J<O-D;++J)this[J+D]=q[J%ke]}return this};const te={};function le(L,F,D){te[L]=class extends D{constructor(){super(),Object.defineProperty(this,"message",{value:F.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${L}]`,this.stack,delete this.name}get code(){return L}set code(W){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:W,writable:!0})}toString(){return`${this.name} [${L}]: ${this.message}`}}}le("ERR_BUFFER_OUT_OF_BOUNDS",function(L){return L?`${L} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),le("ERR_INVALID_ARG_TYPE",function(L,F){return`The "${L}" argument must be of type number. Received type ${typeof F}`},TypeError),le("ERR_OUT_OF_RANGE",function(L,F,D){let O=`The value of "${L}" is out of range.`,W=D;return Number.isInteger(D)&&Math.abs(D)>2**32?W=ye(String(D)):typeof D=="bigint"&&(W=String(D),(D>BigInt(2)**BigInt(32)||D<-(BigInt(2)**BigInt(32)))&&(W=ye(W)),W+="n"),O+=` It must be ${F}. Received ${W}`,O},RangeError);function ye(L){let F="",D=L.length;const O=L[0]==="-"?1:0;for(;D>=O+4;D-=3)F=`_${L.slice(D-3,D)}${F}`;return`${L.slice(0,D)}${F}`}function ve(L,F,D){ce(F,"offset"),(L[F]===void 0||L[F+D]===void 0)&&he(F,L.length-(D+1))}function ee(L,F,D,O,W,J){if(L>D||L<F){const q=typeof F=="bigint"?"n":"";let ke;throw J>3?F===0||F===BigInt(0)?ke=`>= 0${q} and < 2${q} ** ${(J+1)*8}${q}`:ke=`>= -(2${q} ** ${(J+1)*8-1}${q}) and < 2 ** ${(J+1)*8-1}${q}`:ke=`>= ${F}${q} and <= ${D}${q}`,new te.ERR_OUT_OF_RANGE("value",ke,L)}ve(O,W,J)}function ce(L,F){if(typeof L!="number")throw new te.ERR_INVALID_ARG_TYPE(F,"number",L)}function he(L,F,D){throw Math.floor(L)!==L?(ce(L,D),new te.ERR_OUT_OF_RANGE(D||"offset","an integer",L)):F<0?new te.ERR_BUFFER_OUT_OF_BOUNDS:new te.ERR_OUT_OF_RANGE(D||"offset",`>= ${D?1:0} and <= ${F}`,L)}const je=/[^+/0-9A-Za-z-_]/g;function Ve(L){if(L=L.split("=")[0],L=L.trim().replace(je,""),L.length<2)return"";for(;L.length%4!==0;)L=L+"=";return L}function ge(L,F){F=F||1/0;let D;const O=L.length;let W=null;const J=[];for(let q=0;q<O;++q){if(D=L.charCodeAt(q),D>55295&&D<57344){if(!W){if(D>56319){(F-=3)>-1&&J.push(239,191,189);continue}else if(q+1===O){(F-=3)>-1&&J.push(239,191,189);continue}W=D;continue}if(D<56320){(F-=3)>-1&&J.push(239,191,189),W=D;continue}D=(W-55296<<10|D-56320)+65536}else W&&(F-=3)>-1&&J.push(239,191,189);if(W=null,D<128){if((F-=1)<0)break;J.push(D)}else if(D<2048){if((F-=2)<0)break;J.push(D>>6|192,D&63|128)}else if(D<65536){if((F-=3)<0)break;J.push(D>>12|224,D>>6&63|128,D&63|128)}else if(D<1114112){if((F-=4)<0)break;J.push(D>>18|240,D>>12&63|128,D>>6&63|128,D&63|128)}else throw new Error("Invalid code point")}return J}function Tt(L){const F=[];for(let D=0;D<L.length;++D)F.push(L.charCodeAt(D)&255);return F}function Re(L,F){let D,O,W;const J=[];for(let q=0;q<L.length&&!((F-=2)<0);++q)D=L.charCodeAt(q),O=D>>8,W=D%256,J.push(W),J.push(O);return J}function Te(L){return t.toByteArray(Ve(L))}function bt(L,F,D,O){let W;for(W=0;W<O&&!(W+D>=F.length||W>=L.length);++W)F[W+D]=L[W];return W}function ue(L,F){return L instanceof F||L!=null&&L.constructor!=null&&L.constructor.name!=null&&L.constructor.name===F.name}function Ft(L){return L!==L}const ln=function(){const L="0123456789abcdef",F=new Array(256);for(let D=0;D<16;++D){const O=D*16;for(let W=0;W<16;++W)F[O+W]=L[D]+L[W]}return F}();function re(L){return typeof BigInt=="undefined"?me:L}function me(){throw new Error("BigInt not supported")}})(ip);function sE(e){return Array.isArray?Array.isArray(e):Vo(e)==="[object Array]"}Et.isArray=sE;function oE(e){return typeof e=="boolean"}Et.isBoolean=oE;function aE(e){return e===null}Et.isNull=aE;function lE(e){return e==null}Et.isNullOrUndefined=lE;function cE(e){return typeof e=="number"}Et.isNumber=cE;function uE(e){return typeof e=="string"}Et.isString=uE;function hE(e){return typeof e=="symbol"}Et.isSymbol=hE;function fE(e){return e===void 0}Et.isUndefined=fE;function dE(e){return Vo(e)==="[object RegExp]"}Et.isRegExp=dE;function pE(e){return typeof e=="object"&&e!==null}Et.isObject=pE;function gE(e){return Vo(e)==="[object Date]"}Et.isDate=gE;function mE(e){return Vo(e)==="[object Error]"||e instanceof Error}Et.isError=mE;function vE(e){return typeof e=="function"}Et.isFunction=vE;function wE(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"||typeof e=="symbol"||typeof e=="undefined"}Et.isPrimitive=wE;Et.isBuffer=ip.Buffer.isBuffer;function Vo(e){return Object.prototype.toString.call(e)}const sp=32,br=7,Rh=256,Ih=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9];let we;const Oh=e=>e<1e5?e<100?e<10?0:1:e<1e4?e<1e3?2:3:4:e<1e7?e<1e6?5:6:e<1e9?e<1e8?7:8:9;function Nh(e,t){if(e===t)return 0;if(~~e===e&&~~t===t){if(e===0||t===0)return e<t?-1:1;if(e<0||t<0){if(t>=0)return-1;if(e>=0)return 1;e=-e,t=-t}const r=Oh(e),s=Oh(t);let u=0;return r<s?(e*=Ih[s-r-1],t/=10,u=-1):r>s&&(t*=Ih[r-s-1],e/=10,u=1),e===t?u:e<t?-1:1}const n=String(e),i=String(t);return n===i?0:n<i?-1:1}function _E(e){let t=0;for(;e>=sp;)t|=e&1,e>>=1;return e+t}function Ph(e,t,n,i){let r=t+1;if(r===n)return 1;if(i(e[r++],e[t])<0){for(;r<n&&i(e[r],e[r-1])<0;)r++;zh(e,t,r),zh(we,t,r)}else for(;r<n&&i(e[r],e[r-1])>=0;)r++;return r-t}function zh(e,t,n){for(n--;t<n;){const i=e[t];e[t++]=e[n],e[n--]=i}}function Uh(e,t,n,i,r){for(i===t&&i++;i<n;i++){const s=e[i],u=we[i];let o=t,c=i;for(;o<c;){const f=o+c>>>1;r(s,e[f])<0?c=f:o=f+1}let a=i-o;switch(a){case 3:e[o+3]=e[o+2],we[o+3]=we[o+2];case 2:e[o+2]=e[o+1],we[o+2]=we[o+1];case 1:e[o+1]=e[o],we[o+1]=we[o];break;default:for(;a>0;)e[o+a]=e[o+a-1],we[o+a]=we[o+a-1],a--}e[o]=s,we[o]=u}}function Ta(e,t,n,i,r,s){let u=0,o=0,c=1;if(s(e,t[n+r])>0){for(o=i-r;c<o&&s(e,t[n+r+c])>0;)u=c,c=(c<<1)+1,c<=0&&(c=o);c>o&&(c=o),u+=r,c+=r}else{for(o=r+1;c<o&&s(e,t[n+r-c])<=0;)u=c,c=(c<<1)+1,c<=0&&(c=o);c>o&&(c=o);const a=u;u=r-c,c=r-a}for(u++;u<c;){const a=u+(c-u>>>1);s(e,t[n+a])>0?u=a+1:c=a}return c}function La(e,t,n,i,r,s){let u=0,o=0,c=1;if(s(e,t[n+r])<0){for(o=r+1;c<o&&s(e,t[n+r-c])<0;)u=c,c=(c<<1)+1,c<=0&&(c=o);c>o&&(c=o);const a=u;u=r-c,c=r-a}else{for(o=i-r;c<o&&s(e,t[n+r+c])>=0;)u=c,c=(c<<1)+1,c<=0&&(c=o);c>o&&(c=o),u+=r,c+=r}for(u++;u<c;){const a=u+(c-u>>>1);s(e,t[n+a])<0?c=a:u=a+1}return c}class AE{constructor(t,n){this.array=t,this.compare=n;const{length:i}=t;this.length=i,this.minGallop=br,this.tmpStorageLength=i<2*Rh?i>>>1:Rh,this.tmp=new Array(this.tmpStorageLength),this.tmpIndex=new Array(this.tmpStorageLength),this.stackLength=i<120?5:i<1542?10:i<119151?19:40,this.runStart=new Array(this.stackLength),this.runLength=new Array(this.stackLength),this.stackSize=0}pushRun(t,n){this.runStart[this.stackSize]=t,this.runLength[this.stackSize]=n,this.stackSize+=1}mergeRuns(){for(;this.stackSize>1;){let t=this.stackSize-2;if(t>=1&&this.runLength[t-1]<=this.runLength[t]+this.runLength[t+1]||t>=2&&this.runLength[t-2]<=this.runLength[t]+this.runLength[t-1])this.runLength[t-1]<this.runLength[t+1]&&t--;else if(this.runLength[t]>this.runLength[t+1])break;this.mergeAt(t)}}forceMergeRuns(){for(;this.stackSize>1;){let t=this.stackSize-2;t>0&&this.runLength[t-1]<this.runLength[t+1]&&t--,this.mergeAt(t)}}mergeAt(t){const{compare:n}=this,{array:i}=this;let r=this.runStart[t],s=this.runLength[t];const u=this.runStart[t+1];let o=this.runLength[t+1];this.runLength[t]=s+o,t===this.stackSize-3&&(this.runStart[t+1]=this.runStart[t+2],this.runLength[t+1]=this.runLength[t+2]),this.stackSize--;const c=La(i[u],i,r,s,0,n);r+=c,s-=c,s!==0&&(o=Ta(i[r+s-1],i,u,o,o-1,n),o!==0&&(s<=o?this.mergeLow(r,s,u,o):this.mergeHigh(r,s,u,o)))}mergeLow(t,n,i,r){const{compare:s}=this,{array:u}=this,{tmp:o}=this,{tmpIndex:c}=this;let a=0;for(a=0;a<n;a++)o[a]=u[t+a],c[a]=we[t+a];let f=0,l=i,h=t;if(u[h]=u[l],we[h]=we[l],h++,l++,--r===0){for(a=0;a<n;a++)u[h+a]=o[f+a],we[h+a]=c[f+a];return}if(n===1){for(a=0;a<r;a++)u[h+a]=u[l+a],we[h+a]=we[l+a];u[h+r]=o[f],we[h+r]=c[f];return}let{minGallop:d}=this;for(;;){let g=0,p=0,m=!1;do if(s(u[l],o[f])<0){if(u[h]=u[l],we[h]=we[l],h++,l++,p++,g=0,--r===0){m=!0;break}}else if(u[h]=o[f],we[h]=c[f],h++,f++,g++,p=0,--n===1){m=!0;break}while((g|p)<d);if(m)break;do{if(g=La(u[l],o,f,n,0,s),g!==0){for(a=0;a<g;a++)u[h+a]=o[f+a],we[h+a]=c[f+a];if(h+=g,f+=g,n-=g,n<=1){m=!0;break}}if(u[h]=u[l],we[h]=we[l],h++,l++,--r===0){m=!0;break}if(p=Ta(o[f],u,l,r,0,s),p!==0){for(a=0;a<p;a++)u[h+a]=u[l+a],we[h+a]=we[l+a];if(h+=p,l+=p,r-=p,r===0){m=!0;break}}if(u[h]=o[f],we[h]=c[f],h++,f++,--n===1){m=!0;break}d--}while(g>=br||p>=br);if(m)break;d<0&&(d=0),d+=2}if(this.minGallop=d,d<1&&(this.minGallop=1),n===1){for(a=0;a<r;a++)u[h+a]=u[l+a],we[h+a]=we[l+a];u[h+r]=o[f],we[h+r]=c[f]}else{if(n===0)throw new Error("mergeLow preconditions were not respected");for(a=0;a<n;a++)u[h+a]=o[f+a],we[h+a]=c[f+a]}}mergeHigh(t,n,i,r){const{compare:s}=this,{array:u}=this,{tmp:o}=this,{tmpIndex:c}=this;let a=0;for(a=0;a<r;a++)o[a]=u[i+a],c[a]=we[i+a];let f=t+n-1,l=r-1,h=i+r-1,d=0,g=0;if(u[h]=u[f],we[h]=we[f],h--,f--,--n===0){for(d=h-(r-1),a=0;a<r;a++)u[d+a]=o[a],we[d+a]=c[a];return}if(r===1){for(h-=n,f-=n,g=h+1,d=f+1,a=n-1;a>=0;a--)u[g+a]=u[d+a],we[g+a]=we[d+a];u[h]=o[l],we[h]=c[l];return}let{minGallop:p}=this;for(;;){let m=0,w=0,v=!1;do if(s(o[l],u[f])<0){if(u[h]=u[f],we[h]=we[f],h--,f--,m++,w=0,--n===0){v=!0;break}}else if(u[h]=o[l],we[h]=c[l],h--,l--,w++,m=0,--r===1){v=!0;break}while((m|w)<p);if(v)break;do{if(m=n-La(o[l],u,t,n,n-1,s),m!==0){for(h-=m,f-=m,n-=m,g=h+1,d=f+1,a=m-1;a>=0;a--)u[g+a]=u[d+a],we[g+a]=we[d+a];if(n===0){v=!0;break}}if(u[h]=o[l],we[h]=c[l],h--,l--,--r===1){v=!0;break}if(w=r-Ta(u[f],o,0,r,r-1,s),w!==0){for(h-=w,l-=w,r-=w,g=h+1,d=l+1,a=0;a<w;a++)u[g+a]=o[d+a],we[g+a]=c[d+a];if(r<=1){v=!0;break}}if(u[h]=u[f],we[h]=we[f],h--,f--,--n===0){v=!0;break}p--}while(m>=br||w>=br);if(v)break;p<0&&(p=0),p+=2}if(this.minGallop=p,p<1&&(this.minGallop=1),r===1){for(h-=n,f-=n,g=h+1,d=f+1,a=n-1;a>=0;a--)u[g+a]=u[d+a],we[g+a]=we[d+a];u[h]=o[l],we[h]=c[l]}else{if(r===0)throw new Error("mergeHigh preconditions were not respected");for(d=h-(r-1),a=0;a<r;a++)u[d+a]=o[a],we[d+a]=c[a]}}}function yE(e,t,n,i){if(!Array.isArray(e))throw new TypeError(`The "array" argument must be an array. Received ${e}`);we=[];const{length:r}=e;let s=0;for(;s<r;)we[s]=s++;t?typeof t!="function"&&(i=n,n=t,t=Nh):t=Nh,n||(n=0),i||(i=r);let u=i-n;if(u<2)return we;let o=0;if(u<sp)return o=Ph(e,n,i,t),Uh(e,n,i,n+o,t),we;const c=new AE(e,t),a=_E(u);do{if(o=Ph(e,n,i,t),o<a){let f=u;f>a&&(f=a),Uh(e,n,n+f,n+o,t),o=f}c.pushRun(n,o),c.mergeRuns(),u-=o,n+=o}while(u!==0);return c.forceMergeRuns(),we}var EE={sort:yE};const bE=Object.prototype.hasOwnProperty;var xE=(e,t)=>bE.call(e,t);const oc=xE,{isObject:Hh,isArray:CE}=Et,ac="before",op="after-prop",ap="after-colon",lp="after-value",cp="after",up="before-all",hp="after-all",FE="[",SE="]",DE="{",kE="}",BE=",",TE="",LE="-",lc=[ac,op,ap,lp,cp],$E=[ac,up,hp].map(Symbol.for),fp=":",jh=void 0,as=(e,t)=>Symbol.for(e+fp+t),Go=(e,t,n)=>Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0}),Cl=(e,t,n,i,r,s)=>{const u=as(r,i);if(!oc(t,u))return;const o=n===i?u:as(r,n);Go(e,o,t[u]),s&&delete t[u]},dp=(e,t,n,i,r)=>{lc.forEach(s=>{Cl(e,t,n,i,s,r)})},ME=(e,t,n)=>{t!==n&&lc.forEach(i=>{const r=as(i,n);if(!oc(e,r)){Cl(e,e,n,t,i,!0);return}const s=e[r];delete e[r],Cl(e,e,n,t,i,!0),Go(e,as(i,t),s)})},$a=(e,t)=>{$E.forEach(n=>{const i=t[n];i&&Go(e,n,i)})},RE=(e,t,n)=>(n.forEach(i=>{!oc(t,i)||(e[i]=t[i],dp(e,t,i,i))}),e);var Ko={SYMBOL_PREFIXES:lc,PREFIX_BEFORE:ac,PREFIX_AFTER_PROP:op,PREFIX_AFTER_COLON:ap,PREFIX_AFTER_VALUE:lp,PREFIX_AFTER:cp,PREFIX_BEFORE_ALL:up,PREFIX_AFTER_ALL:hp,BRACKET_OPEN:FE,BRACKET_CLOSE:SE,CURLY_BRACKET_OPEN:DE,CURLY_BRACKET_CLOSE:kE,COLON:fp,COMMA:BE,MINUS:LE,EMPTY:TE,UNDEFINED:jh,symbol:as,define:Go,copy_comments:dp,swap_comments:ME,assign_non_prop_comments:$a,assign(e,t,n){if(!Hh(e))throw new TypeError("Cannot convert undefined or null to object");if(!Hh(t))return e;if(n===jh)n=Object.keys(t),$a(e,t);else if(CE(n))n.length===0&&$a(e,t);else throw new TypeError("keys must be array or undefined");return RE(e,t,n)}};const{isArray:IE}=Et,{sort:OE}=EE,{SYMBOL_PREFIXES:NE,UNDEFINED:Wh,symbol:PE,copy_comments:zE,swap_comments:pp}=Ko,UE=e=>{const{length:t}=e;let n=0;const i=t/2;for(;n<i;n++)pp(e,n,t-n-1)},Vh=(e,t,n,i,r)=>{zE(e,t,n+i,n,r)},zi=(e,t,n,i,r,s)=>{if(r>0){let o=i;for(;o-- >0;)Vh(e,t,n+o,r,s);return}let u=0;for(;u<i;){const o=u++;Vh(e,t,n+o,r,s)}},Gh=(e,t)=>{NE.forEach(n=>{const i=PE(n,t);delete e[i]})},HE=(e,t)=>{let n=t;for(;n in e;)n=e[n];return n};class wo extends Array{splice(...t){const{length:n}=this,i=super.splice(...t);let[r,s,...u]=t;r<0&&(r+=n),arguments.length===1?s=n-r:s=Math.min(n-r,s);const{length:o}=u,c=o-s,a=r+s,f=n-a;return zi(this,this,a,f,c,!0),i}slice(...t){const{length:n}=this,i=super.slice(...t);if(!i.length)return new wo;let[r,s]=t;return s===Wh?s=n:s<0&&(s+=n),r<0?r+=n:r===Wh&&(r=0),zi(i,this,r,s-r,-r),i}unshift(...t){const{length:n}=this,i=super.unshift(...t),{length:r}=t;return r>0&&zi(this,this,0,n,r,!0),i}shift(){const t=super.shift(),{length:n}=this;return Gh(this,0),zi(this,this,1,n,-1,!0),t}reverse(){return super.reverse(),UE(this),this}pop(){const t=super.pop();return Gh(this,this.length),t}concat(...t){let{length:n}=this;const i=super.concat(...t);return t.length&&(zi(i,this,0,this.length,0),t.forEach(r=>{const s=n;n+=IE(r)?r.length:1,r instanceof wo&&zi(i,r,0,r.length,s)})),i}sort(...t){const n=OE(this,...t.slice(0,1)),i=Object.create(null);return n.forEach((r,s)=>{if(r===s)return;const u=HE(i,r);u!==s&&(i[s]=u,pp(this,s,u))}),this}}var gp={CommentArray:wo};const jE=np.exports,{CommentArray:WE}=gp,{PREFIX_BEFORE:_o,PREFIX_AFTER_PROP:VE,PREFIX_AFTER_COLON:GE,PREFIX_AFTER_VALUE:mp,PREFIX_AFTER:cc,PREFIX_BEFORE_ALL:KE,PREFIX_AFTER_ALL:XE,BRACKET_OPEN:JE,BRACKET_CLOSE:Kh,CURLY_BRACKET_OPEN:YE,CURLY_BRACKET_CLOSE:Xh,COLON:vp,COMMA:wp,MINUS:Jh,EMPTY:ZE,UNDEFINED:Xo,define:uc,assign_non_prop_comments:qE}=Ko,_p=e=>jE.tokenize(e,{comment:!0,loc:!0}),hc=[];let li=null,vn=null;const fc=[];let ci,Ap=!1,yp=!1,ls=null,cs=null,St=null,Ep,Ao=null;const bp=()=>{fc.length=hc.length=0,cs=null,ci=Xo},QE=()=>{bp(),ls.length=0,vn=li=ls=cs=St=Ao=null},dc=e=>Symbol.for(ci!==Xo?e+vp+ci:e),pc=(e,t)=>Ao?Ao(e,t):t,xp=()=>{const e=new SyntaxError(`Unexpected token ${St.value.slice(0,1)}`);throw Object.assign(e,St.loc.start),e},Cp=()=>{const e=new SyntaxError("Unexpected end of JSON input");throw Object.assign(e,cs?cs.loc.end:{line:1,column:0}),e},Gt=()=>{const e=ls[++Ep];yp=St&&e&&St.loc.end.line===e.loc.start.line||!1,cs=St,St=e},Fl=()=>(St||Cp(),St.type==="Punctuator"?St.value:St.type),Fi=e=>Fl()===e,eo=e=>{Fi(e)||xp()},gc=e=>{hc.push(li),li=e},mc=()=>{li=hc.pop()},Fp=()=>{if(!vn)return;const e=[];for(const n of vn)if(n.inline)e.push(n);else break;const{length:t}=e;!t||(t===vn.length?vn=null:vn.splice(0,t),uc(li,dc(cc),e))},Zn=e=>{!vn||(uc(li,dc(e),vn),vn=null)},wn=e=>{const t=[];for(;St&&(Fi("LineComment")||Fi("BlockComment"));){const n=tt(Ce({},St),{inline:yp});t.push(n),Gt()}if(!Ap&&!!t.length){if(e){uc(li,dc(e),t);return}vn=t}},yo=(e,t)=>{t&&fc.push(ci),ci=e},Sp=()=>{ci=fc.pop()},eb=()=>{const e={};gc(e),yo(Xo,!0);let t=!1,n;for(wn();!Fi(Xh)&&!(t&&(Zn(mp),eo(wp),Gt(),wn(),Fp(),Fi(Xh)));)t=!0,eo("String"),n=JSON.parse(St.value),yo(n),Zn(_o),Gt(),wn(VE),eo(vp),Gt(),wn(GE),e[n]=pc(n,vc()),wn();return t&&Zn(cc),Gt(),ci=void 0,t||Zn(_o),mc(),Sp(),e},tb=()=>{const e=new WE;gc(e),yo(Xo,!0);let t=!1,n=0;for(wn();!Fi(Kh)&&!(t&&(Zn(mp),eo(wp),Gt(),wn(),Fp(),Fi(Kh)));)t=!0,yo(n),Zn(_o),e[n]=pc(n,vc()),n++,wn();return t&&Zn(cc),Gt(),ci=void 0,t||Zn(_o),mc(),Sp(),e};function vc(){let e=Fl();if(e===YE)return Gt(),eb();if(e===JE)return Gt(),tb();let t=ZE;e===Jh&&(Gt(),e=Fl(),t=Jh);let n;switch(e){case"String":case"Boolean":case"Null":case"Numeric":return n=St.value,Gt(),JSON.parse(t+n)}}const nb=e=>Object(e)===e,ib=(e,t,n)=>{bp(),ls=_p(e),Ao=t,Ap=n,ls.length||Cp(),Ep=-1,Gt(),gc({}),wn(KE);let i=vc();return wn(XE),St&&xp(),!n&&i!==null&&(nb(i)||(i=new Object(i)),qE(i,li)),mc(),i=pc("",i),QE(),i};var rb={parse:ib,tokenize:_p};/*! - * repeat-string <https://github.com/jonschlinkert/repeat-string> - * - * Copyright (c) 2014-2015, Jon Schlinkert. - * Licensed under the MIT License. - */var Cn="",Ma,sb=ob;function ob(e,t){if(typeof e!="string")throw new TypeError("expected a string");if(t===1)return e;if(t===2)return e+e;var n=e.length*t;if(Ma!==e||typeof Ma=="undefined")Ma=e,Cn="";else if(Cn.length>=n)return Cn.substr(0,n);for(;n>Cn.length&&t>1;)t&1&&(Cn+=e),t>>=1,e+=e;return Cn+=e,Cn=Cn.substr(0,n),Cn}const{isArray:wc,isObject:Dp,isFunction:Sl,isNumber:ab,isString:lb}=Et,cb=sb,{PREFIX_BEFORE_ALL:ub,PREFIX_BEFORE:kp,PREFIX_AFTER_PROP:hb,PREFIX_AFTER_COLON:fb,PREFIX_AFTER_VALUE:db,PREFIX_AFTER:_c,PREFIX_AFTER_ALL:pb,BRACKET_OPEN:gb,BRACKET_CLOSE:mb,CURLY_BRACKET_OPEN:vb,CURLY_BRACKET_CLOSE:wb,COLON:_b,COMMA:Bp,EMPTY:Ht,UNDEFINED:Ab}=Ko,Ra=/[\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,Ac=" ",wi=` -`,Tp="null",Lp=e=>`${kp}:${e}`,yb=e=>`${hb}:${e}`,Eb=e=>`${fb}:${e}`,$p=e=>`${db}:${e}`,Mp=e=>`${_c}:${e}`,bb={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},xb=e=>(Ra.lastIndex=0,Ra.test(e)?e.replace(Ra,t=>{const n=bb[t];return typeof n=="string"?n:t}):e),Rp=e=>`"${xb(e)}"`,Cb=(e,t)=>t?`//${e}`:`/*${e}*/`,zt=(e,t,n,i)=>{const r=e[Symbol.for(t)];if(!r||!r.length)return Ht;let s=!1;const u=r.reduce((o,{inline:c,type:a,value:f})=>{const l=c?Ac:wi+n;return s=a==="LineComment",o+l+Cb(f,s)},Ht);return i||s?u+wi+n:u};let hr=null,Fs=Ht;const Fb=()=>{hr=null,Fs=Ht},us=(e,t,n)=>e?t?e+t.trim()+wi+n:e.trimRight()+wi+n:t?t.trimRight()+wi+n:Ht,Ip=(e,t,n)=>{const i=zt(t,kp,n+Fs,!0);return us(i,e,n)},Sb=(e,t)=>{const n=t+Fs,{length:i}=e;let r=Ht,s=Ht;for(let u=0;u<i;u++)u!==0&&(r+=Bp),r+=us(s,zt(e,Lp(u),n),n)||wi+n,r+=yc(u,e,n)||Tp,r+=zt(e,$p(u),n),s=zt(e,Mp(u),n);return r+=us(s,zt(e,_c,n),n),gb+Ip(r,e,t)+mb},Db=(e,t)=>{if(!e)return"null";const n=t+Fs;let i=Ht,r=Ht,s=!0;const u=wc(hr)?hr:Object.keys(e),o=c=>{const a=yc(c,e,n);if(a===Ab)return;s||(i+=Bp),s=!1,i+=us(r,zt(e,Lp(c),n),n)||wi+n,i+=Rp(c)+zt(e,yb(c),n)+_b+zt(e,Eb(c),n)+Ac+a+zt(e,$p(c),n),r=zt(e,Mp(c),n)};return u.forEach(o),i+=us(r,zt(e,_c,n),n),vb+Ip(i,e,t)+wb};function yc(e,t,n){let i=t[e];switch(Dp(i)&&Sl(i.toJSON)&&(i=i.toJSON(e)),Sl(hr)&&(i=hr.call(t,e,i)),typeof i){case"string":return Rp(i);case"number":return Number.isFinite(i)?String(i):Tp;case"boolean":case"null":return String(i);case"object":return wc(i)?Sb(i,n):Db(i,n)}}const kb=e=>lb(e)?e:ab(e)?cb(Ac,e):Ht,{toString:Bb}=Object.prototype,Tb=["[object Number]","[object String]","[object Boolean]"],Lb=e=>{if(typeof e!="object")return!1;const t=Bb.call(e);return Tb.includes(t)};var $b=(e,t,n)=>{const i=kb(n);if(!i)return JSON.stringify(e,t);!Sl(t)&&!wc(t)&&(t=null),hr=t,Fs=i;const r=Lb(e)?JSON.stringify(e):yc("",{"":e},Ht);return Fb(),Dp(e)?zt(e,ub,Ht).trimLeft()+r+zt(e,pb,Ht).trimRight():r};const{parse:Mb,tokenize:Rb}=rb,Ib=$b,{CommentArray:Ob}=gp,{assign:Nb}=Ko;var Yh={parse:Mb,stringify:Ib,tokenize:Rb,CommentArray:Ob,assign:Nb};function to(e,t){return e.schema.hook(Pb,new ae.ModelPath(e),e.data,{blockStates:t})}const Pb={base({},e,t){return t},choice({switchNode:e},t,n,i){return e.hook(this,t,n,i)},list({children:e},t,n,i){if(!Array.isArray(n))return n;const r=n.map((s,u)=>e.hook(this,t.push(u),s.node,i));for(const s of Object.getOwnPropertySymbols(n))r[s]=n[s];return r},map({children:e,config:t},n,i,r){var o,c;if(i===void 0)return;const s=((o=t.validation)==null?void 0:o.validator)==="block_state_map"?(c=r.blockStates)==null?void 0:c[ae.relativePath(n,t.validation.params.id).get()]:null,u={};Object.keys(i).forEach(a=>{var f;s&&!Object.keys((f=s.properties)!=null?f:{}).includes(a)||(u[a]=e.hook(this,n.push(a),i[a],r))});for(const a of Object.getOwnPropertySymbols(i))u[a]=i[a];return u},object({getActiveFields:e},t,n,i){if(n==null||typeof n!="object")return n;const r={},s=e(t);Object.keys(s).filter(u=>s[u].enabled(t)).forEach(u=>{const o=s[u].hook(this,t.push(u),n[u],i);o!=null&&(r[u]=o)});for(const u of Object.getOwnPropertySymbols(n))r[u]=n[u];return r}},Ia={"2_spaces":2,"4_spaces":4,tabs:" ",minified:void 0},Oa={json:{parse:Yh.parse,stringify:(e,t)=>Yh.stringify(e,null,t)+` -`},yaml:{parse:Ya.load,stringify:(e,t)=>Ya.dump(e,{flowLevel:t===void 0?0:-1,indent:typeof t=="string"?4:t})}};function zb({name:e,model:t,blockStates:n,doCopy:i,doDownload:r,doImport:s,copySuccess:u,onError:o}){const{locale:c}=rt(),[a,f]=oe(_t.getIndent()),[l,h]=oe(_t.getFormat()),[d,g]=oe(_t.getHighlighting()),p=Xe(null),m=Xe(),w=Xe(),v=Xe(),A=Xe(),_=At((y,C)=>{const B=to(y,C);return Oa[l].stringify(B,Ia[a])},[a,l]);xe(()=>{m.current=()=>{if(!(!t||!n))try{const y=_(t,n);A.current.setValue(y)}catch(y){y instanceof Error?(y.message=`Error getting JSON output: ${y.message}`,o(y)):o(`Error getting JSON output: ${Xt(y)}`),console.error(y),A.current.setValue("")}},w.current=()=>{const y=A.current.getValue();if(y.length!==0)try{const C=Oa[l].parse(y);t==null||t.reset(ae.DataModel.wrapLists(C),!1)}catch(C){C instanceof Error?(C.message=`Error importing: ${C.message}`,o(C)):o(`Error importing: ${Xt(C)}`),console.error(C)}}},[t,n,a,l,d]),xe(()=>{if(d){const y=Y2.edit("editor");y.setOptions({fontSize:14,showFoldWidgets:!1,highlightSelectedWord:!1}),y.$blockScrolling=1/0,y.on("blur",C=>w.current(C)),y.getSession().setMode("ace/mode/json"),A.current={getValue(){return y.getSession().getValue()},setValue(C){y.getSession().setValue(C)},configure(C,B){y.setOption("useSoftTabs",C!=="tabs"),y.setOption("tabSize",C==="tabs"?4:Ia[C]),y.getSession().setMode(`ace/mode/${B}`)},select(){y.selectAll()}}}else A.current={getValue(){return v.current.value},setValue(y){v.current.value=y},configure(){},select(){}}},[d]),Mo(t,()=>{m.current()}),xe(()=>{t&&m.current()},[t]),xe(()=>{A.current.configure(a,l),m.current()},[a,l,d]),xe(()=>{i&&t&&n&&navigator.clipboard.writeText(_(t,n)).then(()=>{u()})},[i]),xe(()=>{if(r&&t&&n&&p.current){const y=encodeURIComponent(_(t,n));p.current.setAttribute("href",`data:text/json;charset=utf-8,${y}`),p.current.setAttribute("download",`${e}.${l}`),p.current.click()}},[r]),xe(()=>{s&&A.current&&(A.current.setValue(""),A.current.select())},[s]);const E=y=>{_t.setIndent(y),f(y)},b=y=>{_t.setFormat(y),h(y)},x=y=>{_t.setHighlighting(y),g(y)};return S(De,null,S("div",{class:"controls source-controls"},S($t,{icon:"gear",tooltip:c("output_settings"),"data-cy":"source-controls"},Object.entries(Ia).map(([y])=>S(Ee,{label:c(`indentation.${y}`),active:a===y,onClick:()=>E(y)})),S("hr",null),Object.keys(Oa).map(y=>S(Ee,{label:c(`format.${y}`),active:l===y,onClick:()=>b(y)})),S("hr",null),S(Ee,{icon:d?"square_fill":"square",label:c("highlighting"),onClick:()=>x(!d)}))),d?S("pre",{id:"editor",class:"source"}):S("textarea",{ref:v,class:"source",spellcheck:!1,autocorrect:"off",onBlur:w.current}),S("a",{ref:p,style:"display: none;"}))}function Op(e,t){for(var n in t)e[n]=t[n];return e}function Dl(e,t){for(var n in e)if(n!=="__source"&&!(n in t))return!0;for(var i in t)if(i!=="__source"&&e[i]!==t[i])return!0;return!1}function kl(e){this.props=e}function Np(e,t){function n(r){var s=this.props.ref,u=s==r.ref;return!u&&s&&(s.call?s(null):s.current=null),t?!t(this.props,r)||!u:Dl(this.props,r)}function i(r){return this.shouldComponentUpdate=n,S(e,r)}return i.displayName="Memo("+(e.displayName||e.name)+")",i.prototype.isReactComponent=!0,i.__f=!0,i}(kl.prototype=new nn).isPureReactComponent=!0,kl.prototype.shouldComponentUpdate=function(e,t){return Dl(this.props,e)||Dl(this.state,t)};var Zh=_e.__b;_e.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),Zh&&Zh(e)};var Ub=typeof Symbol!="undefined"&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function Hb(e){function t(n,i){var r=Op({},n);return delete r.ref,e(r,(i=n.ref||i)&&(typeof i!="object"||"current"in i)?i:null)}return t.$$typeof=Ub,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(e.displayName||e.name)+")",t}var qh=function(e,t){return e==null?null:rn(rn(e).map(t))},jb={map:qh,forEach:qh,count:function(e){return e?rn(e).length:0},only:function(e){var t=rn(e);if(t.length!==1)throw"Children.only";return t[0]},toArray:rn},Wb=_e.__e;_e.__e=function(e,t,n){if(e.then){for(var i,r=t;r=r.__;)if((i=r.__c)&&i.__c)return t.__e==null&&(t.__e=n.__e,t.__k=n.__k),i.__c(e,t)}Wb(e,t,n)};var Qh=_e.unmount;function no(){this.__u=0,this.t=null,this.__b=null}function Pp(e){var t=e.__.__c;return t&&t.__e&&t.__e(e)}function Vb(e){var t,n,i;function r(s){if(t||(t=e()).then(function(u){n=u.default||u},function(u){i=u}),i)throw i;if(!n)throw t;return S(n,s)}return r.displayName="Lazy",r.__f=!0,r}function Br(){this.u=null,this.o=null}_e.unmount=function(e){var t=e.__c;t&&t.__R&&t.__R(),t&&e.__h===!0&&(e.type=null),Qh&&Qh(e)},(no.prototype=new nn).__c=function(e,t){var n=t.__c,i=this;i.t==null&&(i.t=[]),i.t.push(n);var r=Pp(i.__v),s=!1,u=function(){s||(s=!0,n.__R=null,r?r(o):o())};n.__R=u;var o=function(){if(!--i.__u){if(i.state.__e){var a=i.state.__e;i.__v.__k[0]=function l(h,d,g){return h&&(h.__v=null,h.__k=h.__k&&h.__k.map(function(p){return l(p,d,g)}),h.__c&&h.__c.__P===d&&(h.__e&&g.insertBefore(h.__e,h.__d),h.__c.__e=!0,h.__c.__P=g)),h}(a,a.__c.__P,a.__c.__O)}var f;for(i.setState({__e:i.__b=null});f=i.t.pop();)f.forceUpdate()}},c=t.__h===!0;i.__u++||c||i.setState({__e:i.__b=i.__v.__k[0]}),e.then(u,u)},no.prototype.componentWillUnmount=function(){this.t=[]},no.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var n=document.createElement("div"),i=this.__v.__k[0].__c;this.__v.__k[0]=function s(u,o,c){return u&&(u.__c&&u.__c.__H&&(u.__c.__H.__.forEach(function(a){typeof a.__c=="function"&&a.__c()}),u.__c.__H=null),(u=Op({},u)).__c!=null&&(u.__c.__P===c&&(u.__c.__P=o),u.__c=null),u.__k=u.__k&&u.__k.map(function(a){return s(a,o,c)})),u}(this.__b,n,i.__O=i.__P)}this.__b=null}var r=t.__e&&S(De,null,e.fallback);return r&&(r.__h=null),[S(De,null,t.__e?null:e.children),r]};var ef=function(e,t,n){if(++n[1]===n[0]&&e.o.delete(t),e.props.revealOrder&&(e.props.revealOrder[0]!=="t"||!e.o.size))for(n=e.u;n;){for(;n.length>3;)n.pop()();if(n[1]<n[0])break;e.u=n=n[2]}};function Gb(e){return this.getChildContext=function(){return e.context},e.children}function Kb(e){var t=this,n=e.i;t.componentWillUnmount=function(){Qi(null,t.l),t.l=null,t.i=null},t.i&&t.i!==n&&t.componentWillUnmount(),e.__v?(t.l||(t.i=n,t.l={nodeType:1,parentNode:n,childNodes:[],appendChild:function(i){this.childNodes.push(i),t.i.appendChild(i)},insertBefore:function(i,r){this.childNodes.push(i),t.i.appendChild(i)},removeChild:function(i){this.childNodes.splice(this.childNodes.indexOf(i)>>>1,1),t.i.removeChild(i)}}),Qi(S(Gb,{context:t.context},e.__v),t.l)):t.l&&t.componentWillUnmount()}function Xb(e,t){return S(Kb,{__v:e,i:t})}(Br.prototype=new nn).__e=function(e){var t=this,n=Pp(t.__v),i=t.o.get(e);return i[0]++,function(r){var s=function(){t.props.revealOrder?(i.push(r),ef(t,e,i)):r()};n?n(s):s()}},Br.prototype.render=function(e){this.u=null,this.o=new Map;var t=rn(e.children);e.revealOrder&&e.revealOrder[0]==="b"&&t.reverse();for(var n=t.length;n--;)this.o.set(t[n],this.u=[1,0,this.u]);return e.children},Br.prototype.componentDidUpdate=Br.prototype.componentDidMount=function(){var e=this;this.o.forEach(function(t,n){ef(e,n,t)})};var zp=typeof Symbol!="undefined"&&Symbol.for&&Symbol.for("react.element")||60103,Jb=/^(?: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]/,Yb=function(e){return(typeof Symbol!="undefined"&&typeof Symbol()=="symbol"?/fil|che|rad/i:/fil|che|ra/i).test(e)};function Zb(e,t,n){return t.__k==null&&(t.textContent=""),Qi(e,t),typeof n=="function"&&n(),e?e.__c:null}function qb(e,t,n){return zf(e,t),typeof n=="function"&&n(),e?e.__c:null}nn.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(e){Object.defineProperty(nn.prototype,e,{configurable:!0,get:function(){return this["UNSAFE_"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})});var tf=_e.event;function Qb(){}function ex(){return this.cancelBubble}function tx(){return this.defaultPrevented}_e.event=function(e){return tf&&(e=tf(e)),e.persist=Qb,e.isPropagationStopped=ex,e.isDefaultPrevented=tx,e.nativeEvent=e};var Up,nf={configurable:!0,get:function(){return this.class}},rf=_e.vnode;_e.vnode=function(e){var t=e.type,n=e.props,i=n;if(typeof t=="string"){for(var r in i={},n){var s=n[r];r==="value"&&"defaultValue"in n&&s==null||(r==="defaultValue"&&"value"in n&&n.value==null?r="value":r==="download"&&s===!0?s="":/ondoubleclick/i.test(r)?r="ondblclick":/^onchange(textarea|input)/i.test(r+t)&&!Yb(n.type)?r="oninput":/^on(Ani|Tra|Tou|BeforeInp)/.test(r)?r=r.toLowerCase():Jb.test(r)?r=r.replace(/[A-Z0-9]/,"-$&").toLowerCase():s===null&&(s=void 0),i[r]=s)}t=="select"&&i.multiple&&Array.isArray(i.value)&&(i.value=rn(n.children).forEach(function(u){u.props.selected=i.value.indexOf(u.props.value)!=-1})),t=="select"&&i.defaultValue!=null&&(i.value=rn(n.children).forEach(function(u){u.props.selected=i.multiple?i.defaultValue.indexOf(u.props.value)!=-1:i.defaultValue==u.props.value})),e.props=i}t&&n.class!=n.className&&(nf.enumerable="className"in n,n.className!=null&&(i.class=n.className),Object.defineProperty(i,"className",nf)),e.$$typeof=zp,rf&&rf(e)};var sf=_e.__r;_e.__r=function(e){sf&&sf(e),Up=e.__c};var nx={ReactCurrentDispatcher:{current:{readContext:function(e){return Up.__n[e.__c].props.value}}}};typeof performance=="object"&&typeof performance.now=="function"&&performance.now.bind(performance);function ix(e){return S.bind(null,e)}function Hp(e){return!!e&&e.$$typeof===zp}function rx(e){return Hp(e)?Uf.apply(null,arguments):e}function sx(e){return!!e.__k&&(Qi(null,e),!0)}function ox(e){return e&&(e.base||e.nodeType===1&&e)||null}var ax=function(e,t){return e(t)},Bl={useState:oe,useReducer:Xf,useEffect:xe,useLayoutEffect:Jf,useRef:Xe,useImperativeHandle:Ng,useMemo:Qe,useCallback:At,useContext:pr,useDebugValue:Pg,version:"16.8.0",Children:jb,render:Zb,hydrate:qb,unmountComponentAtNode:sx,createPortal:Xb,createElement:S,createContext:fr,createFactory:ix,cloneElement:rx,createRef:yg,Fragment:De,isValidElement:Hp,findDOMNode:ox,Component:nn,PureComponent:kl,memo:Np,forwardRef:Hb,unstable_batchedUpdates:ax,StrictMode:De,Suspense:no,SuspenseList:Br,lazy:Vb,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:nx};class jp extends ae.DataModel{constructor(t,n,i,r){super(t),this.mapper=n,this.getter=i,this.setter=r}map(t){return this.mapper(t)}get(t){return this.getter(t)}set(t,n,i){return this.setter(t,n,i)}}const lx=["loot_table.type","loot_entry.type","function.function","condition.condition","criterion.trigger","recipe.type","dimension.generator.type","dimension.generator.biome_source.type","dimension.generator.biome_source.preset","carver.type","feature.type","decorator.type","feature.tree.minimum_size.type","block_state_provider.type","trunk_placer.type","foliage_placer.type","tree_decorator.type","int_provider.type","float_provider.type","height_provider.type","structure_feature.type","surface_builder.type","processor.processor_type","rule_test.predicate_type","pos_rule_test.predicate_type","template_element.element_type","block_placer.type","block_predicate.type","material_rule.type","material_condition.type","structure_placement.type","density_function.type","root_placer.type","entity.type_specific.cat.variant","entity.type_specific.frog.variant"],cx=["number_provider.type","score_provider.type","nbt_provider.type","int_provider.type","float_provider.type","height_provider.type"],ux=["feature.config","decorator.config","int_provider.value","float_provider.value","block_state_provider.simple_state_provider.state","block_state_provider.rotated_block_provider.state","block_state_provider.weighted_state_provider.entries.entry.data","rule_test.block_state","structure_feature.config","surface_builder.config","template_pool.elements.entry.element","decorator.block_survives_filter.state","material_rule.block.result_state"],hx=["loot_entry.type","function.function","condition.condition","criterion.trigger","dimension.generator.type","dimension.generator.biome_source.type","feature.type","decorator.type","block_state_provider.type","feature.tree.minimum_size.type","trunk_placer.type","foliage_placer.type","tree_decorator.type","block_placer.type","rule_test.predicate_type","processor.processor_type","template_element.element_type","nbt_operation.op","number_provider.value","score_provider.name","score_provider.target","nbt_provider.source","nbt_provider.target","generator_biome.biome","block_predicate.type","material_rule.type","material_condition.type","density_function.type","root_placer.type","entity.type_specific.type"],fx=["function.set_nbt.tag","advancement.display.icon.nbt","text_component_object.nbt","entity.nbt","block.nbt","item.nbt"],dx=["generator_biome.parameters.temperature","generator_biome.parameters.humidity","generator_biome.parameters.continentalness","generator_biome.parameters.erosion","generator_biome.parameters.depth","generator_biome.parameters.weirdness","feature.end_spike.crystal_beam_target","feature.end_gateway.exit","decorator.block_filter.offset","block_predicate.matching_blocks.offset","block_predicate.matching_fluids.offset","model_element.from","model_element.to","model_element.rotation.origin","model_element.faces.uv","item_transform.rotation","item_transform.translation","item_transform.scale","generator_structure.random_spread.locate_offset"],of=["noise_settings.surface_rule","noise_settings.noise.terrain_shaper"],px=["density_function.argument","density_function.argument1","density_function.argument2","density_function.input","density_function.when_in_range","density_function.when_out_of_range"],gx=e=>He.generators.find(t=>t.id===e.replace(/^\$/,"")),mx=new ae.DataModel(ae.MapNode(ae.StringNode(),ae.StringNode()),{historyMax:0});function vx({model:e,lang:t,version:n,blockStates:i}){var c;const r=new ae.ModelPath(e),[s,u,o]=e.schema.hook(Wp,r,$o(e.data),t,n,i,{});return(c=u==null?void 0:u.props)!=null&&c.children.some(a=>a)?S("div",{class:`node ${e.schema.type(r)}-node`,"data-category":e.schema.category(r)},S("div",{class:"node-header"},s,u),S("div",{class:"node-body"},o)):o}const Wp={base(){return[null,null,null]},boolean(e,t,n,i,r,s,u){return[null,S(wx,Ce({},tt(Ce({},e),{path:t,value:n,lang:i,version:r,states:s,ctx:u}))),null]},choice({choices:e,config:t,switchNode:n},i,r,s,u,o,c){const a=n.activeCase(i,!0),f=t!=null&&t.context?new ae.ModelPath(i.getModel(),new ae.Path(i.getArray(),[t.context])):i,[l,h,d]=a.node.hook(this,f,r,s,u,o,c);if(e.length===1)return[l,h,d];const g=t!=null&&t.choiceContext?new ae.Path([],[t.choiceContext]):t!=null&&t.context?new ae.Path([],[t.context]):i,p=w=>{var E;const v=(E=e.find(b=>b.type===w))!=null?E:a,A=v.node.default(),_=v.change?v.change(ae.DataModel.unwrapLists(r)):t.choiceContext==="feature"&&(A==null?void 0:A.type)==="minecraft:decorated"?A.config.feature:A;i.model.set(i,ae.DataModel.wrapLists(_))},m=S("select",{value:a.type,onChange:w=>p(w.target.value)},e.map(w=>S("option",{value:w.type},Eo(s,g.contextPush(w.type)))));return[l,S(De,null,m,h),d]},list({children:e,config:t},n,i,r,s,u,o){const{expand:c,collapse:a,isToggled:f}=Na(),[l,h]=oe(50),d=n.getContext().join(".");if(dx.includes(d)){const v=S(De,null,[...Array(t.maxLength)].map((_,E)=>S(Tr,{lang:r,path:n.modelPush(E)})),S("div",{class:"fixed-list"})),A=S(De,null,[...Array(t.maxLength)].map((_,E)=>{var x;return e.hook(this,n.modelPush(E),(x=i==null?void 0:i[E])==null?void 0:x.node,r,s,u,o)[1]}));return[v,A,null]}const g=()=>{Array.isArray(i)||(i=[]);const v=ae.DataModel.wrapLists(e.default());n.model.set(n,[{node:v,id:vi()},...i])},p=()=>{Array.isArray(i)||(i=[]);const v=ae.DataModel.wrapLists(e.default());n.model.set(n,[...i,{node:v,id:vi()}])},m=S("button",{class:"add tooltipped tip-se","aria-label":Oe(r,"add_top"),onClick:g},$e.plus_circle),w=S(De,null,i&&Array.isArray(i)&&i.map(({node:v,id:A},_)=>{if(_===l)return S("div",{class:"node node-header"},S("label",null,Oe(r,"entries_hidden",`${i.length-l}`)),S("button",{onClick:()=>h(Math.min(l+50,i.length))},Oe(r,"entries_hidden.more","50")),S("button",{onClick:()=>h(i.length)},Oe(r,"entries_hidden.all")));if(_>l)return null;const E=n.push(_).contextPush("entry"),b=e.type(E)==="object",x=f(A);if(b&&(x===!1||x===void 0&&i.length>20))return S("div",{class:"node node-header","data-category":e.category(E)},S(Tr,{lang:r,path:E,nested:!0}),S("button",{class:"toggle tooltipped tip-se","aria-label":`${Oe(r,"expand")} -${Oe(r,"expand_all","Ctrl")}`,onClick:c(A)},$e.chevron_right),S("label",null,Eo(r,E,`${_}`)),S(af,{key:A,path:E,value:v,schema:e}));const y=()=>E.set(void 0),C=()=>{const M=[...n.get()];[M[_-1],M[_]]=[M[_],M[_-1]],n.model.set(n,M)},B=()=>{const M=[...n.get()];[M[_+1],M[_]]=[M[_],M[_+1]],n.model.set(n,M)};return S(Pa,{key:A,path:E,schema:e,value:v,lang:r,version:s,states:u,actions:[{icon:"duplicate",label:"duplicate",onSelect:()=>{const M=[...n.get()];M.splice(_,0,{id:vi(),node:$o(v)}),n.model.set(n,M)}}],ctx:tt(Ce({},o),{index:(_===0?1:0)+(_===i.length-1?2:0)})},b&&S("button",{class:"toggle tooltipped tip-se","aria-label":`${Oe(r,"collapse")} -${Oe(r,"collapse_all","Ctrl")}`,onClick:a(A)},$e.chevron_down),S("button",{class:"remove tooltipped tip-se","aria-label":Oe(r,"remove"),onClick:y},$e.trashcan),i.length>1&&S("div",{class:"node-move"},S("button",{class:"move tooltipped tip-se","aria-label":Oe(r,"move_up"),onClick:C,disabled:_===0},$e.chevron_up),S("button",{class:"move tooltipped tip-se","aria-label":Oe(r,"move_down"),onClick:B,disabled:_===i.length-1},$e.chevron_down)))}),i&&i.length>0&&i.length<=l&&S("div",{class:"node node-header"},S("button",{class:"add tooltipped tip-se","aria-label":Oe(r,"add_bottom"),onClick:p},$e.plus_circle)));return[null,m,w]},map({children:e,keys:t,config:n},i,r,s,u,o,c){var v,A,_,E,b;const{expand:a,collapse:f,isToggled:l}=Na(),h=new ae.ModelPath(mx,new ae.Path([Ex(i.toString())])),d=()=>{const x=h.get();i.model.set(i.push(x),ae.DataModel.wrapLists(e.default()))},g=((v=n.validation)==null?void 0:v.validator)==="block_state_map"?o==null?void 0:o[ae.relativePath(i,n.validation.params.id).get()]:null,p=g!=null&&g.properties?ae.StringNode(null,{enum:Object.keys((A=g.properties)!=null?A:{})}):t;if(g&&i.last()==="Properties"){typeof r!="object"&&(r={});const x=Object.entries((_=g.properties)!=null?_:{}).map(([y,C])=>[y,ae.StringNode(null,{enum:C})]);return Object.entries((E=g.properties)!=null?E:{}).forEach(([y,C])=>{typeof r[y]!="string"?i.model.errors.add(i.push(y),"error.expected_string"):C.includes(r[y])||i.model.errors.add(i.push(y),"error.invalid_enum_option",r[y])}),ae.ObjectNode(Object.fromEntries(x)).hook(this,i,r,s,u,o,c)}const m=S(De,null,p.hook(this,h,(b=h.get())!=null?b:"",s,u,o,c)[1],S("button",{class:"add tooltipped tip-se","aria-label":Oe(s,"add"),onClick:d},$e.plus_circle)),w=S(De,null,typeof r=="object"&&Object.entries(r).map(([x,y])=>{var I,H,P,j;const C=i.modelPush(x),B=e.type(C)==="object",T=l(x);if(B&&(T===!1||T===void 0&&r.length>20))return S("div",{class:"node node-header","data-category":e.category(C)},S(Tr,{lang:s,path:C,nested:!0}),S("button",{class:"toggle tooltipped tip-se","aria-label":`${Oe(s,"expand")} -${Oe(s,"expand_all","Ctrl")}`,onClick:a(x)},$e.chevron_right),S("label",null,x),S(af,{key:x,path:C,value:y,schema:e}));const M=g?ae.StringNode(null,{enum:(H=(I=g.properties)==null?void 0:I[x])!=null?H:[]}):e;((P=g==null?void 0:g.properties)==null?void 0:P[x])&&typeof y=="string"&&!((j=g.properties)!=null&&j[x].includes(y))&&i.model.errors.add(C,"error.invalid_enum_option",y);const R=()=>C.set(void 0);return S(Pa,{key:x,schema:M,path:C,value:y,lang:s,version:u,states:o,ctx:c,label:x},B&&S("button",{class:"toggle tooltipped tip-se","aria-label":`${Oe(s,"collapse")} -${Oe(s,"collapse_all","Ctrl")}`,onClick:f(x)},$e.chevron_down),S("button",{class:"remove tooltipped tip-se","aria-label":Oe(s,"remove"),onClick:R},$e.trashcan))}));return[null,m,w]},number(e,t,n,i,r,s,u){return[null,S(_x,Ce({},tt(Ce({},e),{path:t,value:n,lang:i,version:r,states:s,ctx:u}))),null]},object({node:e,config:t,getActiveFields:n,getChildModelPath:i},r,s,u,o,c,a){var v;const{expand:f,collapse:l,isToggled:h}=Na();if(r.getArray().length==0&&bx(t.context,s)){const{wrapper:A,fields:_}=xx(n(r),r,s);s=A.data,n=()=>_,i=(E,b)=>new ae.ModelPath(A,new ae.Path(E.getArray(),["feature"])).push(b)}let d=null,g=null;if(e.optional())if(s===void 0){const A=()=>r.set(ae.DataModel.wrapLists(e.default()));g=S("button",{class:"collapse closed tooltipped tip-se","aria-label":Oe(u,"expand"),onClick:A},$e.plus_circle)}else{const A=()=>r.set(void 0);g=S("button",{class:"collapse open tooltipped tip-se","aria-label":Oe(u,"remove"),onClick:A},$e.trashcan)}const p=r.getContext().join(".");if(px.includes(p)||of.includes(p)){const A=h(""),_=of.includes(p)?A:!A;if(d=S(De,null,S("button",{class:"toggle tooltipped tip-se","aria-label":Oe(u,_?"collapse":"expand"),onClick:A?l(""):f("")},_?$e.chevron_down:$e.chevron_right)),!_)return[d,g,null]}const m=typeof s=="object"&&s!==null&&((v=e.default())==null?void 0:v.pools)?tt(Ce({},a),{loot:s==null?void 0:s.type}):a,w=S(De,null,typeof s=="object"&&s!==null&&!(e.optional()&&s===void 0)&&Object.entries(n(r)).filter(([A,_])=>_.enabled(r)).map(([A,_])=>{const E=i(r,A),b=E.getContext().join(".");if(cx.includes(b))return null;const[x,y,C]=_.hook(this,E,s[A],u,o,c,m),B=_.type(E)==="object"&&ux.includes(b),T=hx.includes(b);return B||T?(d=S(De,null,d,S(Tr,{lang:u,path:E}),S(Vp,{lang:u,path:E}),x),g=S(De,null,g,y),B?C:null):S(Pa,{key:A,schema:_,path:E,value:s[A],lang:u,version:o,states:c,ctx:m})}));return[d,g,w]},string(e,t,n,i,r,s,u){return[null,S(Ax,Ce({},tt(Ce({},e),{path:t,value:n,lang:i,version:r,states:s,ctx:u}))),null]}};function af({path:e,value:t}){var i,r,s,u,o;switch(e.getContext().join(".")){case"loot_table.pools.entry":return S("label",null,(r=(i=t==null?void 0:t.entries)==null?void 0:i.length)!=null?r:0," entries");case"function.set_contents.entries.entry":case"loot_pool.entries.entry":return S("label",null,(o=(s=t==null?void 0:t.name)==null?void 0:s.replace(/^minecraft:/,""))!=null?o:(u=t==null?void 0:t.type)==null?void 0:u.replace(/^minecraft:/,""))}for(const c of Object.values(t!=null?t:{}))if(typeof c=="string")return S("label",null,c.replace(/^minecraft:/,""));return null}function Na(){const[e,t]=oe(new Map),[n,i]=oe(void 0);return{expand:o=>c=>{c.ctrlKey?(t(new Map),i(!0)):t(a=>new Map(a.set(o,!0)))},collapse:o=>c=>{c.ctrlKey?(t(new Map),i(!1)):t(a=>new Map(a.set(o,!1)))},isToggled:o=>{var c;return e instanceof Map?(c=e.get(o))!=null?c:n:!1}}}function wx({path:e,node:t,value:n,lang:i}){const r=s=>{e.model.set(e,t.optional()&&n===s?void 0:s)};return S(De,null,S("button",{class:n===!1?"selected":"",onClick:()=>r(!1)},Oe(i,"false")),S("button",{class:n===!0?"selected":"",onClick:()=>r(!0)},Oe(i,"true")))}function _x({path:e,config:t,integer:n,value:i,lang:r}){var o;const s=c=>{const a=c.target.value,f=n?parseInt(a):parseFloat(a);e.model.set(e,f)},u=c=>{const a=c.target.value,f=parseInt(a.slice(1),16);e.model.set(e,f)};return S(De,null,S("input",{type:"text",value:i!=null?i:"",onBlur:s,onKeyDown:c=>{c.key==="Enter"&&s(c)}}),(t==null?void 0:t.color)&&S("input",{type:"color",value:"#"+((o=i==null?void 0:i.toString(16).padStart(6,"0"))!=null?o:"000000"),onChange:u}),["dimension.generator.seed","dimension.generator.biome_source.seed","world_settings.seed","structure_placement.salt"].includes(e.getContext().join("."))&&S("button",{onClick:()=>Pd(e.model),class:"tooltipped tip-se","aria-label":Oe(r,"generate_new_seed")},$e.sync))}function Ax({path:e,getValues:t,config:n,node:i,value:r,lang:s,version:u,states:o}){var h;const c=d=>{d.stopPropagation();const g=d.target.value;g!==r&&e.model.set(e,g.length===0?void 0:g)},a=t(),f=e.getContext().join("."),l=!xr(n)&&(n==null?void 0:n.validator)==="resource"&&typeof n.params.pool=="string"?n.params.pool:void 0;if(fx.includes(f))return S("textarea",{value:r!=null?r:"",onBlur:c});if(xr(n)&&!n.additional||lx.includes(f)){let d=new ae.Path([]);return xr(n)&&typeof n.enum=="string"?d=d.contextPush(n.enum):l?d=d.contextPush(l):xr(n)&&(d=e),S("select",{value:r!=null?r:"",onChange:c},i.optional()&&S("option",{value:""},Oe(s,"unset")),a.map(g=>S("option",{value:g},Eo(s,d.contextPush(g.replace(/^minecraft:/,""))))))}else if(!xr(n)&&(n==null?void 0:n.validator)==="block_state_key"){const d=o==null?void 0:o[ae.relativePath(e,n.params.id).get()],g=Object.keys((h=d==null?void 0:d.properties)!=null?h:{});return S("select",{value:r!=null?r:"",onChange:c},g.map(p=>S("option",null,p)))}else{const d=vi(),g=l?gx(l):void 0;return S(De,null,S("input",{value:r!=null?r:"",onBlur:c,onKeyDown:p=>{p.key==="Enter"&&c(p)},list:a.length>0?d:""}),a.length>0&&S("datalist",{id:d},a.map(p=>S("option",{value:p}))),g&&a.includes(r)&&r.startsWith("minecraft:")&&S("a",{href:`/${g.url}/?version=${u}&preset=${r.replace(/^minecraft:/,"")}`,class:"tooltipped tip-se","aria-label":Oe(s,"follow_reference")},$e.link_external))}}function yx({label:e,schema:t,path:n,value:i,lang:r,version:s,states:u,ctx:o,actions:c,children:a}){var _;const f=t.type(n),l=t.category(n),h=n.getContext().join("."),[d,g]=jl(),p=E=>{E.preventDefault(),g()},m=tt(Ce({},o),{depth:((_=o.depth)!=null?_:0)+1});delete m.index;const[w,v,A]=t.hook(Wp,n,i,r,s,u,m);return S("div",{class:`node ${f}-node`,"data-category":l},S("div",{class:"node-header",onContextMenu:p},S(Tr,{lang:r,path:n}),S(Vp,{lang:r,path:n}),a,w,S("label",null,e!=null?e:Eo(r,n,`${n.last()}`),d&&S("div",{class:"node-menu"},c==null?void 0:c.map(E=>{var b;return S("div",{key:E.label,class:"menu-item"},S(Ee,{icon:E.icon,tooltip:Oe(r,E.label),tooltipLoc:"se",onClick:()=>E.onSelect()}),S("span",null,(b=E.description)!=null?b:Oe(r,E.label)))}),S("div",{class:"menu-item"},S(Ee,{icon:"clippy",tooltip:Oe(r,"copy_context"),tooltipLoc:"se",onClick:()=>navigator.clipboard.writeText(h)}),S("span",null,h)))),v),A&&S("div",{class:"node-body"},A))}const Pa=Np(yx,(e,t)=>e.schema===t.schema&&e.lang===t.lang&&e.path.equals(t.path)&&yi(e.ctx,t.ctx)&&yi(e.value,t.value));function xr(e){return!!(e!=null&&e.enum)}function Ex(e){var t=0,n,i;for(n=0;n<e.length;n++)i=e.charCodeAt(n),t=(t<<5)-t+i,t|=0;return t}function Eo(e,t,...n){const i=t.getContext();for(let r=0;r<i.length;r+=1){const s=i.slice(r).join("."),u=Oe(e,s,...n);if(s!==u)return u}return i[i.length-1]}function Tr({lang:e,path:t,nested:n}){var s;t.model instanceof jp&&(t=t.model.map(t).withModel(t.model));const i=n?t.model.errors.getAll().filter(u=>u.path.startsWith(t)):t.model.errors.get(t,!0);if(i.length===0)return null;const r=Oe(e,i[0].error,...(s=i[0].params)!=null?s:[]);return Gp("node-error","issue_opened",r)}function Vp({lang:e,path:t}){const n=t.contextPush("help").getContext().join("."),i=Oe(e,n);return i===n?null:Gp("node-help","info",i)}const Gp=(e,t,n)=>{const[i,r]=jl();return S("div",{class:`node-icon ${e}${i?" show":""}`,onClick:r},$e[t],S("span",{class:"icon-popup"},n))};function bx(e,t){var n;return e==="feature"&&((n=t==null?void 0:t.type)==null?void 0:n.replace(/^minecraft:/,""))==="decorated"&&Di(t==null?void 0:t.config)}function xx(e,t,n){const i=[],r=Lr(n,i),s={type:e.type,config:ae.ObjectNode({decorators:ae.ListNode(Jd),feature:Yd},{context:"feature.decorated"})},u=ae.ObjectNode(s,{context:"feature"}),o=new ae.Path(["config","feature"]),c=new ae.Path(["config","decorators"]),a=t.getModel(),f=new jp(u,l=>{if(l.startsWith(o))return new ae.Path([...[...Array(i.length-1)].flatMap(()=>["config","feature"]),...l.modelArr]);if(l.startsWith(c)){if(l.modelArr.length===2)return new ae.Path([]);const h=l.modelArr[2];if(typeof h=="number")return new ae.Path([...[...Array(h)].flatMap(()=>["config","feature"]),"config","decorator",...l.modelArr.slice(3)])}return l},l=>{if(l.equals(c)){const h=[];return Lr(a.data,h),h}return a.get(f.map(l))},(l,h,d)=>{if(l.startsWith(o)){const g=[];Lr(a.data,g);const p=new ae.Path([...[...Array(g.length-1)].flatMap(()=>["config","feature"]),...l.modelArr]);return a.set(p,h,d)}else if(l.startsWith(c)){const g=l.modelArr[2];if(l.modelArr.length===2){const p=f.get(o);return a.set(new ae.Path,Tl(p,h),d)}else if(typeof g=="number")if(l.modelArr.length===3&&h===void 0){const p=f.get(o),m=[];Lr(a.data,m),m.splice(g,1);const w=Tl(p,m);return a.set(new ae.Path,w,d)}else{const p=new ae.Path([...[...Array(g)].flatMap(()=>["config","feature"]),"config","decorator",...l.modelArr.slice(3)]);return a.set(p,h,d)}}a.set(l,h,d)});return f.data={type:a.data.type,config:{decorators:i,feature:r}},f.errors=a.errors,{fields:s,wrapper:f}}function Lr(e,t){var n,i;return((n=e==null?void 0:e.type)==null?void 0:n.replace(/^minecraft:/,""))!=="decorated"||!Di(e==null?void 0:e.config)?e:(t.push({id:t.length,node:e.config.decorator}),Lr((i=e.config.feature)!=null?i:"",t))}function Tl(e,t){return t.length===0?e:{type:"minecraft:decorated",config:{decorator:t.shift().node,feature:Tl(e,t)}}}function Cx({version:e,model:t,blockStates:n,onError:i}){const{lang:r}=rt();if(!t||!n||r==="none")return S(De,null);const[s]=Yf(o=>{i(`Error rendering the tree: ${o.message}`),console.error(o)});if(s)return S(De,null);const[,u]=oe(0);return Mo(t,()=>{u(o=>o+1)}),S("div",{class:"tree","data-cy":"tree"},S(vx,{model:t,lang:r,version:e,blockStates:n}))}var Fx=Object.defineProperty,Sx=Object.defineProperties,Dx=Object.getOwnPropertyDescriptors,lf=Object.getOwnPropertySymbols,kx=Object.prototype.hasOwnProperty,Bx=Object.prototype.propertyIsEnumerable,cf=(e,t,n)=>t in e?Fx(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Kp=(e,t)=>{for(var n in t||(t={}))kx.call(t,n)&&cf(e,n,t[n]);if(lf)for(var n of lf(t))Bx.call(t,n)&&cf(e,n,t[n]);return e};const uf="Please consider reporting this error at https://github.com/laymonage/giscus/issues/new.";function Ns(e){return`[giscus] An error occurred. Error message: "${e}".`}function hf(e){const t=document.querySelector(`meta[property='og:${e}'],meta[name='${e}']`);return t?t.content:""}function Tx(){const e=document.getElementById("giscus-css")||document.createElement("style");e.id="giscus-css",e.textContent=` - .giscus, .giscus-frame { - width: 100%; - } - .giscus-frame { - border: none; - color-scheme: normal; - } - `,document.head.prepend(e)}function Lx(e){const[t,n]=oe(""),i=function({repo:u,repoId:o,category:c="",categoryId:a="",mapping:f,term:l="",theme:h="light",reactionsEnabled:d="1",emitMetadata:g="0",inputPosition:p="bottom",lang:m="en",session:w,origin:v}){const A=new URL(location.href);A.searchParams.delete("giscus");const _=A.toString(),E={origin:v=v||_,session:w,theme:h,reactionsEnabled:d,emitMetadata:g,inputPosition:p,repo:u,repoId:o,category:c,categoryId:a,description:hf("description")};switch(f){case"url":E.term=_;break;case"title":E.term=document.title;break;case"og:title":E.term=hf("title");break;case"specific":E.term=l;break;case"number":E.number=l;break;case"pathname":default:E.term=location.pathname.length<2?"index":location.pathname.substring(1).replace(/\.\w+$/,"")}return`https://giscus.app/${m}/widget?${new URLSearchParams(E)}`}((r=Kp({},e),Sx(r,Dx({session:t}))));var r;const s=Xe(null);return xe(()=>{const u=location.href,o=new URL(u),c=localStorage.getItem("giscus-session"),a=o.searchParams.get("giscus")||"";if(a)return localStorage.setItem("giscus-session",JSON.stringify(a)),n(a),o.searchParams.delete("giscus"),void history.replaceState(void 0,document.title,o.toString());if(c)try{n(JSON.parse(c||"")||"")}catch(f){n(""),localStorage.removeItem("giscus-session"),console.warn(`${Ns(f==null?void 0:f.message)} Session has been cleared.`)}},[]),xe(Tx,[]),xe(()=>{const u=function(o,c=null){return function(a){if(a.origin!=="https://giscus.app")return;const{data:f}=a;if(typeof f!="object"||!f.giscus||(c&&f.giscus.resizeHeight&&(c.style.height=`${f.giscus.resizeHeight}px`),!f.giscus.error))return;const l=f.giscus.error;if(l.includes("Bad credentials")||l.includes("Invalid state value")){if(localStorage.getItem("giscus-session")!==null)return localStorage.removeItem("giscus-session"),o(),void console.warn(`${Ns(l)} Session has been cleared.`);console.error(`${Ns(l)} No session is stored initially. ${uf}`)}l.includes("Discussion not found")?console.warn(`[giscus] ${l}. A new discussion will be created if a comment/reaction is submitted.`):console.error(`${Ns(l)} ${uf}`)}}(()=>n(""),s.current);return window.addEventListener("message",u),()=>window.removeEventListener("message",u)},[]),Bl.createElement("div",{className:"giscus"},Bl.createElement("iframe",{className:"giscus-frame",title:"Comments",scrolling:"no",src:i,ref:s}))}function $x(e){const[t,n]=oe(!1);return xe(()=>n(!0),[]),t?Bl.createElement(Lx,Kp({},e)):null}function Ec({term:e}){const{actualTheme:t}=s0(),n=t==="light"?"-burn":"",i=`${location.protocol}//${location.host}/assets/giscus${n}.css`;return S($x,{repo:"misode/misode.github.io",repoId:"MDEwOlJlcG9zaXRvcnkxOTIyNTQyMzA=",category:"Site",categoryId:"DIC_kwDOC3WRFs4COB8r",mapping:e?"specific":"pathname",term:e,reactionsEnabled:"1",emitMetadata:"0",inputPosition:"top",theme:i,lang:"en"})}function Xp(){return{baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}let Ar=Xp();function Mx(e){Ar=e}const Rx=/[&<>"']/,Ix=/[&<>"']/g,Ox=/[<>"']|&(?!#?\w+;)/,Nx=/[<>"']|&(?!#?\w+;)/g,Px={"&":"&","<":"<",">":">",'"':""","'":"'"},ff=e=>Px[e];function wt(e,t){if(t){if(Rx.test(e))return e.replace(Ix,ff)}else if(Ox.test(e))return e.replace(Nx,ff);return e}const zx=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;function Jp(e){return e.replace(zx,(t,n)=>(n=n.toLowerCase(),n==="colon"?":":n.charAt(0)==="#"?n.charAt(1)==="x"?String.fromCharCode(parseInt(n.substring(2),16)):String.fromCharCode(+n.substring(1)):""))}const Ux=/(^|[^\[])\^/g;function Ye(e,t){e=e.source||e,t=t||"";const n={replace:(i,r)=>(r=r.source||r,r=r.replace(Ux,"$1"),e=e.replace(i,r),n),getRegex:()=>new RegExp(e,t)};return n}const Hx=/[^\w:]/g,jx=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function df(e,t,n){if(e){let i;try{i=decodeURIComponent(Jp(n)).replace(Hx,"").toLowerCase()}catch{return null}if(i.indexOf("javascript:")===0||i.indexOf("vbscript:")===0||i.indexOf("data:")===0)return null}t&&!jx.test(n)&&(n=Kx(t,n));try{n=encodeURI(n).replace(/%25/g,"%")}catch{return null}return n}const Ps={},Wx=/^[^:]+:\/*[^/]*$/,Vx=/^([^:]+:)[\s\S]*$/,Gx=/^([^:]+:\/*[^/]*)[\s\S]*$/;function Kx(e,t){Ps[" "+e]||(Wx.test(e)?Ps[" "+e]=e+"/":Ps[" "+e]=io(e,"/",!0)),e=Ps[" "+e];const n=e.indexOf(":")===-1;return t.substring(0,2)==="//"?n?t:e.replace(Vx,"$1")+t:t.charAt(0)==="/"?n?t:e.replace(Gx,"$1")+t:e+t}const bo={exec:function(){}};function an(e){let t=1,n,i;for(;t<arguments.length;t++){n=arguments[t];for(i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e}function pf(e,t){const n=e.replace(/\|/g,(s,u,o)=>{let c=!1,a=u;for(;--a>=0&&o[a]==="\\";)c=!c;return c?"|":" |"}),i=n.split(/ \|/);let r=0;if(i[0].trim()||i.shift(),i[i.length-1].trim()||i.pop(),i.length>t)i.splice(t);else for(;i.length<t;)i.push("");for(;r<i.length;r++)i[r]=i[r].trim().replace(/\\\|/g,"|");return i}function io(e,t,n){const i=e.length;if(i===0)return"";let r=0;for(;r<i;){const s=e.charAt(i-r-1);if(s===t&&!n)r++;else if(s!==t&&n)r++;else break}return e.substr(0,i-r)}function Xx(e,t){if(e.indexOf(t[1])===-1)return-1;const n=e.length;let i=0,r=0;for(;r<n;r++)if(e[r]==="\\")r++;else if(e[r]===t[0])i++;else if(e[r]===t[1]&&(i--,i<0))return r;return-1}function Yp(e){e&&e.sanitize&&!e.silent&&console.warn("marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options")}function gf(e,t){if(t<1)return"";let n="";for(;t>1;)t&1&&(n+=e),t>>=1,e+=e;return n+e}function mf(e,t,n,i){const r=t.href,s=t.title?wt(t.title):null,u=e[1].replace(/\\([\[\]])/g,"$1");if(e[0].charAt(0)!=="!"){i.state.inLink=!0;const o={type:"link",raw:n,href:r,title:s,text:u,tokens:i.inlineTokens(u,[])};return i.state.inLink=!1,o}else return{type:"image",raw:n,href:r,title:s,text:wt(u)}}function Jx(e,t){const n=e.match(/^(\s+)(?:```)/);if(n===null)return t;const i=n[1];return t.split(` -`).map(r=>{const s=r.match(/^\s+/);if(s===null)return r;const[u]=s;return u.length>=i.length?r.slice(i.length):r}).join(` -`)}class bc{constructor(t){this.options=t||Ar}space(t){const n=this.rules.block.newline.exec(t);if(n&&n[0].length>0)return{type:"space",raw:n[0]}}code(t){const n=this.rules.block.code.exec(t);if(n){const i=n[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:n[0],codeBlockStyle:"indented",text:this.options.pedantic?i:io(i,` -`)}}}fences(t){const n=this.rules.block.fences.exec(t);if(n){const i=n[0],r=Jx(i,n[3]||"");return{type:"code",raw:i,lang:n[2]?n[2].trim():n[2],text:r}}}heading(t){const n=this.rules.block.heading.exec(t);if(n){let i=n[2].trim();if(/#$/.test(i)){const s=io(i,"#");(this.options.pedantic||!s||/ $/.test(s))&&(i=s.trim())}const r={type:"heading",raw:n[0],depth:n[1].length,text:i,tokens:[]};return this.lexer.inline(r.text,r.tokens),r}}hr(t){const n=this.rules.block.hr.exec(t);if(n)return{type:"hr",raw:n[0]}}blockquote(t){const n=this.rules.block.blockquote.exec(t);if(n){const i=n[0].replace(/^ *> ?/gm,"");return{type:"blockquote",raw:n[0],tokens:this.lexer.blockTokens(i,[]),text:i}}}list(t){let n=this.rules.block.list.exec(t);if(n){let i,r,s,u,o,c,a,f,l,h,d,g,p=n[1].trim();const m=p.length>1,w={type:"list",raw:"",ordered:m,start:m?+p.slice(0,-1):"",loose:!1,items:[]};p=m?`\\d{1,9}\\${p.slice(-1)}`:`\\${p}`,this.options.pedantic&&(p=m?p:"[*+-]");const v=new RegExp(`^( {0,3}${p})((?: [^\\n]*)?(?:\\n|$))`);for(;t&&(g=!1,!(!(n=v.exec(t))||this.rules.block.hr.test(t)));){if(i=n[0],t=t.substring(i.length),f=n[2].split(` -`,1)[0],l=t.split(` -`,1)[0],this.options.pedantic?(u=2,d=f.trimLeft()):(u=n[2].search(/[^ ]/),u=u>4?1:u,d=f.slice(u),u+=n[1].length),c=!1,!f&&/^ *$/.test(l)&&(i+=l+` -`,t=t.substring(l.length+1),g=!0),!g){const _=new RegExp(`^ {0,${Math.min(3,u-1)}}(?:[*+-]|\\d{1,9}[.)])`);for(;t&&(h=t.split(` -`,1)[0],f=h,this.options.pedantic&&(f=f.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),!_.test(f));){if(f.search(/[^ ]/)>=u||!f.trim())d+=` -`+f.slice(u);else if(!c)d+=` -`+f;else break;!c&&!f.trim()&&(c=!0),i+=h+` -`,t=t.substring(h.length+1)}}w.loose||(a?w.loose=!0:/\n *\n *$/.test(i)&&(a=!0)),this.options.gfm&&(r=/^\[[ xX]\] /.exec(d),r&&(s=r[0]!=="[ ] ",d=d.replace(/^\[[ xX]\] +/,""))),w.items.push({type:"list_item",raw:i,task:!!r,checked:s,loose:!1,text:d}),w.raw+=i}w.items[w.items.length-1].raw=i.trimRight(),w.items[w.items.length-1].text=d.trimRight(),w.raw=w.raw.trimRight();const A=w.items.length;for(o=0;o<A;o++){this.lexer.state.top=!1,w.items[o].tokens=this.lexer.blockTokens(w.items[o].text,[]);const _=w.items[o].tokens.filter(b=>b.type==="space"),E=_.every(b=>{const x=b.raw.split("");let y=0;for(const C of x)if(C===` -`&&(y+=1),y>1)return!0;return!1});!w.loose&&_.length&&E&&(w.loose=!0,w.items[o].loose=!0)}return w}}html(t){const n=this.rules.block.html.exec(t);if(n){const i={type:"html",raw:n[0],pre:!this.options.sanitizer&&(n[1]==="pre"||n[1]==="script"||n[1]==="style"),text:n[0]};return this.options.sanitize&&(i.type="paragraph",i.text=this.options.sanitizer?this.options.sanitizer(n[0]):wt(n[0]),i.tokens=[],this.lexer.inline(i.text,i.tokens)),i}}def(t){const n=this.rules.block.def.exec(t);if(n){n[3]&&(n[3]=n[3].substring(1,n[3].length-1));const i=n[1].toLowerCase().replace(/\s+/g," ");return{type:"def",tag:i,raw:n[0],href:n[2],title:n[3]}}}table(t){const n=this.rules.block.table.exec(t);if(n){const i={type:"table",header:pf(n[1]).map(r=>({text:r})),align:n[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:n[3]?n[3].replace(/\n[ \t]*$/,"").split(` -`):[]};if(i.header.length===i.align.length){i.raw=n[0];let r=i.align.length,s,u,o,c;for(s=0;s<r;s++)/^ *-+: *$/.test(i.align[s])?i.align[s]="right":/^ *:-+: *$/.test(i.align[s])?i.align[s]="center":/^ *:-+ *$/.test(i.align[s])?i.align[s]="left":i.align[s]=null;for(r=i.rows.length,s=0;s<r;s++)i.rows[s]=pf(i.rows[s],i.header.length).map(a=>({text:a}));for(r=i.header.length,u=0;u<r;u++)i.header[u].tokens=[],this.lexer.inlineTokens(i.header[u].text,i.header[u].tokens);for(r=i.rows.length,u=0;u<r;u++)for(c=i.rows[u],o=0;o<c.length;o++)c[o].tokens=[],this.lexer.inlineTokens(c[o].text,c[o].tokens);return i}}}lheading(t){const n=this.rules.block.lheading.exec(t);if(n){const i={type:"heading",raw:n[0],depth:n[2].charAt(0)==="="?1:2,text:n[1],tokens:[]};return this.lexer.inline(i.text,i.tokens),i}}paragraph(t){const n=this.rules.block.paragraph.exec(t);if(n){const i={type:"paragraph",raw:n[0],text:n[1].charAt(n[1].length-1)===` -`?n[1].slice(0,-1):n[1],tokens:[]};return this.lexer.inline(i.text,i.tokens),i}}text(t){const n=this.rules.block.text.exec(t);if(n){const i={type:"text",raw:n[0],text:n[0],tokens:[]};return this.lexer.inline(i.text,i.tokens),i}}escape(t){const n=this.rules.inline.escape.exec(t);if(n)return{type:"escape",raw:n[0],text:wt(n[1])}}tag(t){const n=this.rules.inline.tag.exec(t);if(n)return!this.lexer.state.inLink&&/^<a /i.test(n[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&/^<\/a>/i.test(n[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(n[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(n[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:n[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(n[0]):wt(n[0]):n[0]}}link(t){const n=this.rules.inline.link.exec(t);if(n){const i=n[2].trim();if(!this.options.pedantic&&/^</.test(i)){if(!/>$/.test(i))return;const u=io(i.slice(0,-1),"\\");if((i.length-u.length)%2===0)return}else{const u=Xx(n[2],"()");if(u>-1){const c=(n[0].indexOf("!")===0?5:4)+n[1].length+u;n[2]=n[2].substring(0,u),n[0]=n[0].substring(0,c).trim(),n[3]=""}}let r=n[2],s="";if(this.options.pedantic){const u=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(r);u&&(r=u[1],s=u[3])}else s=n[3]?n[3].slice(1,-1):"";return r=r.trim(),/^</.test(r)&&(this.options.pedantic&&!/>$/.test(i)?r=r.slice(1):r=r.slice(1,-1)),mf(n,{href:r&&r.replace(this.rules.inline._escapes,"$1"),title:s&&s.replace(this.rules.inline._escapes,"$1")},n[0],this.lexer)}}reflink(t,n){let i;if((i=this.rules.inline.reflink.exec(t))||(i=this.rules.inline.nolink.exec(t))){let r=(i[2]||i[1]).replace(/\s+/g," ");if(r=n[r.toLowerCase()],!r||!r.href){const s=i[0].charAt(0);return{type:"text",raw:s,text:s}}return mf(i,r,i[0],this.lexer)}}emStrong(t,n,i=""){let r=this.rules.inline.emStrong.lDelim.exec(t);if(!r||r[3]&&i.match(/[\p{L}\p{N}]/u))return;const s=r[1]||r[2]||"";if(!s||s&&(i===""||this.rules.inline.punctuation.exec(i))){const u=r[0].length-1;let o,c,a=u,f=0;const l=r[0][0]==="*"?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(l.lastIndex=0,n=n.slice(-1*t.length+u);(r=l.exec(n))!=null;){if(o=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!o)continue;if(c=o.length,r[3]||r[4]){a+=c;continue}else if((r[5]||r[6])&&u%3&&!((u+c)%3)){f+=c;continue}if(a-=c,a>0)continue;if(c=Math.min(c,c+a+f),Math.min(u,c)%2){const d=t.slice(1,u+r.index+c);return{type:"em",raw:t.slice(0,u+r.index+c+1),text:d,tokens:this.lexer.inlineTokens(d,[])}}const h=t.slice(2,u+r.index+c-1);return{type:"strong",raw:t.slice(0,u+r.index+c+1),text:h,tokens:this.lexer.inlineTokens(h,[])}}}}codespan(t){const n=this.rules.inline.code.exec(t);if(n){let i=n[2].replace(/\n/g," ");const r=/[^ ]/.test(i),s=/^ /.test(i)&&/ $/.test(i);return r&&s&&(i=i.substring(1,i.length-1)),i=wt(i,!0),{type:"codespan",raw:n[0],text:i}}}br(t){const n=this.rules.inline.br.exec(t);if(n)return{type:"br",raw:n[0]}}del(t){const n=this.rules.inline.del.exec(t);if(n)return{type:"del",raw:n[0],text:n[2],tokens:this.lexer.inlineTokens(n[2],[])}}autolink(t,n){const i=this.rules.inline.autolink.exec(t);if(i){let r,s;return i[2]==="@"?(r=wt(this.options.mangle?n(i[1]):i[1]),s="mailto:"+r):(r=wt(i[1]),s=r),{type:"link",raw:i[0],text:r,href:s,tokens:[{type:"text",raw:r,text:r}]}}}url(t,n){let i;if(i=this.rules.inline.url.exec(t)){let r,s;if(i[2]==="@")r=wt(this.options.mangle?n(i[0]):i[0]),s="mailto:"+r;else{let u;do u=i[0],i[0]=this.rules.inline._backpedal.exec(i[0])[0];while(u!==i[0]);r=wt(i[0]),i[1]==="www."?s="http://"+r:s=r}return{type:"link",raw:i[0],text:r,href:s,tokens:[{type:"text",raw:r,text:r}]}}}inlineText(t,n){const i=this.rules.inline.text.exec(t);if(i){let r;return this.lexer.state.inRawBlock?r=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(i[0]):wt(i[0]):i[0]:r=wt(this.options.smartypants?n(i[0]):i[0]),{type:"text",raw:i[0],text:r}}}}const Ae={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)( [^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?<?([^\s>]+)>?(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:bo,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/};Ae._label=/(?!\s*\])(?:\\.|[^\[\]\\])+/;Ae._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/;Ae.def=Ye(Ae.def).replace("label",Ae._label).replace("title",Ae._title).getRegex();Ae.bullet=/(?:[*+-]|\d{1,9}[.)])/;Ae.listItemStart=Ye(/^( *)(bull) */).replace("bull",Ae.bullet).getRegex();Ae.list=Ye(Ae.list).replace(/bull/g,Ae.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+Ae.def.source+")").getRegex();Ae._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul";Ae._comment=/<!--(?!-?>)[\s\S]*?(?:-->|$)/;Ae.html=Ye(Ae.html,"i").replace("comment",Ae._comment).replace("tag",Ae._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex();Ae.paragraph=Ye(Ae._paragraph).replace("hr",Ae.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Ae._tag).getRegex();Ae.blockquote=Ye(Ae.blockquote).replace("paragraph",Ae.paragraph).getRegex();Ae.normal=an({},Ae);Ae.gfm=an({},Ae.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"});Ae.gfm.table=Ye(Ae.gfm.table).replace("hr",Ae.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Ae._tag).getRegex();Ae.gfm.paragraph=Ye(Ae._paragraph).replace("hr",Ae.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",Ae.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Ae._tag).getRegex();Ae.pedantic=an({},Ae.normal,{html:Ye(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",Ae._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:bo,paragraph:Ye(Ae.normal._paragraph).replace("hr",Ae.hr).replace("heading",` *#{1,6} *[^ -]`).replace("lheading",Ae.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});const fe={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:bo,tag:"^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:bo,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,punctuation:/^([\spunctuation])/};fe._punctuation="!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~";fe.punctuation=Ye(fe.punctuation).replace(/punctuation/g,fe._punctuation).getRegex();fe.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g;fe.escapedEmSt=/\\\*|\\_/g;fe._comment=Ye(Ae._comment).replace("(?:-->|$)","-->").getRegex();fe.emStrong.lDelim=Ye(fe.emStrong.lDelim).replace(/punct/g,fe._punctuation).getRegex();fe.emStrong.rDelimAst=Ye(fe.emStrong.rDelimAst,"g").replace(/punct/g,fe._punctuation).getRegex();fe.emStrong.rDelimUnd=Ye(fe.emStrong.rDelimUnd,"g").replace(/punct/g,fe._punctuation).getRegex();fe._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g;fe._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;fe._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;fe.autolink=Ye(fe.autolink).replace("scheme",fe._scheme).replace("email",fe._email).getRegex();fe._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/;fe.tag=Ye(fe.tag).replace("comment",fe._comment).replace("attribute",fe._attribute).getRegex();fe._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/;fe._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/;fe._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/;fe.link=Ye(fe.link).replace("label",fe._label).replace("href",fe._href).replace("title",fe._title).getRegex();fe.reflink=Ye(fe.reflink).replace("label",fe._label).replace("ref",Ae._label).getRegex();fe.nolink=Ye(fe.nolink).replace("ref",Ae._label).getRegex();fe.reflinkSearch=Ye(fe.reflinkSearch,"g").replace("reflink",fe.reflink).replace("nolink",fe.nolink).getRegex();fe.normal=an({},fe);fe.pedantic=an({},fe.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:Ye(/^!?\[(label)\]\((.*?)\)/).replace("label",fe._label).getRegex(),reflink:Ye(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",fe._label).getRegex()});fe.gfm=an({},fe.normal,{escape:Ye(fe.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/});fe.gfm.url=Ye(fe.gfm.url,"i").replace("email",fe.gfm._extended_email).getRegex();fe.breaks=an({},fe.gfm,{br:Ye(fe.br).replace("{2,}","*").getRegex(),text:Ye(fe.gfm.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()});function Yx(e){return e.replace(/---/g,"\u2014").replace(/--/g,"\u2013").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1\u2018").replace(/'/g,"\u2019").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1\u201C").replace(/"/g,"\u201D").replace(/\.{3}/g,"\u2026")}function vf(e){let t="",n,i;const r=e.length;for(n=0;n<r;n++)i=e.charCodeAt(n),Math.random()>.5&&(i="x"+i.toString(16)),t+="&#"+i+";";return t}class Pn{constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||Ar,this.options.tokenizer=this.options.tokenizer||new bc,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};const n={block:Ae.normal,inline:fe.normal};this.options.pedantic?(n.block=Ae.pedantic,n.inline=fe.pedantic):this.options.gfm&&(n.block=Ae.gfm,this.options.breaks?n.inline=fe.breaks:n.inline=fe.gfm),this.tokenizer.rules=n}static get rules(){return{block:Ae,inline:fe}}static lex(t,n){return new Pn(n).lex(t)}static lexInline(t,n){return new Pn(n).inlineTokens(t)}lex(t){t=t.replace(/\r\n|\r/g,` -`).replace(/\t/g," "),this.blockTokens(t,this.tokens);let n;for(;n=this.inlineQueue.shift();)this.inlineTokens(n.src,n.tokens);return this.tokens}blockTokens(t,n=[]){this.options.pedantic&&(t=t.replace(/^ +$/gm,""));let i,r,s,u;for(;t;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(o=>(i=o.call({lexer:this},t,n))?(t=t.substring(i.raw.length),n.push(i),!0):!1))){if(i=this.tokenizer.space(t)){t=t.substring(i.raw.length),i.raw.length===1&&n.length>0?n[n.length-1].raw+=` -`:n.push(i);continue}if(i=this.tokenizer.code(t)){t=t.substring(i.raw.length),r=n[n.length-1],r&&(r.type==="paragraph"||r.type==="text")?(r.raw+=` -`+i.raw,r.text+=` -`+i.text,this.inlineQueue[this.inlineQueue.length-1].src=r.text):n.push(i);continue}if(i=this.tokenizer.fences(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.heading(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.hr(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.blockquote(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.list(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.html(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.def(t)){t=t.substring(i.raw.length),r=n[n.length-1],r&&(r.type==="paragraph"||r.type==="text")?(r.raw+=` -`+i.raw,r.text+=` -`+i.raw,this.inlineQueue[this.inlineQueue.length-1].src=r.text):this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title});continue}if(i=this.tokenizer.table(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.lheading(t)){t=t.substring(i.raw.length),n.push(i);continue}if(s=t,this.options.extensions&&this.options.extensions.startBlock){let o=1/0;const c=t.slice(1);let a;this.options.extensions.startBlock.forEach(function(f){a=f.call({lexer:this},c),typeof a=="number"&&a>=0&&(o=Math.min(o,a))}),o<1/0&&o>=0&&(s=t.substring(0,o+1))}if(this.state.top&&(i=this.tokenizer.paragraph(s))){r=n[n.length-1],u&&r.type==="paragraph"?(r.raw+=` -`+i.raw,r.text+=` -`+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):n.push(i),u=s.length!==t.length,t=t.substring(i.raw.length);continue}if(i=this.tokenizer.text(t)){t=t.substring(i.raw.length),r=n[n.length-1],r&&r.type==="text"?(r.raw+=` -`+i.raw,r.text+=` -`+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):n.push(i);continue}if(t){const o="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(o);break}else throw new Error(o)}}return this.state.top=!0,n}inline(t,n){this.inlineQueue.push({src:t,tokens:n})}inlineTokens(t,n=[]){let i,r,s,u=t,o,c,a;if(this.tokens.links){const f=Object.keys(this.tokens.links);if(f.length>0)for(;(o=this.tokenizer.rules.inline.reflinkSearch.exec(u))!=null;)f.includes(o[0].slice(o[0].lastIndexOf("[")+1,-1))&&(u=u.slice(0,o.index)+"["+gf("a",o[0].length-2)+"]"+u.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(o=this.tokenizer.rules.inline.blockSkip.exec(u))!=null;)u=u.slice(0,o.index)+"["+gf("a",o[0].length-2)+"]"+u.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(o=this.tokenizer.rules.inline.escapedEmSt.exec(u))!=null;)u=u.slice(0,o.index)+"++"+u.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);for(;t;)if(c||(a=""),c=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(f=>(i=f.call({lexer:this},t,n))?(t=t.substring(i.raw.length),n.push(i),!0):!1))){if(i=this.tokenizer.escape(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.tag(t)){t=t.substring(i.raw.length),r=n[n.length-1],r&&i.type==="text"&&r.type==="text"?(r.raw+=i.raw,r.text+=i.text):n.push(i);continue}if(i=this.tokenizer.link(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(i.raw.length),r=n[n.length-1],r&&i.type==="text"&&r.type==="text"?(r.raw+=i.raw,r.text+=i.text):n.push(i);continue}if(i=this.tokenizer.emStrong(t,u,a)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.codespan(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.br(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.del(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.autolink(t,vf)){t=t.substring(i.raw.length),n.push(i);continue}if(!this.state.inLink&&(i=this.tokenizer.url(t,vf))){t=t.substring(i.raw.length),n.push(i);continue}if(s=t,this.options.extensions&&this.options.extensions.startInline){let f=1/0;const l=t.slice(1);let h;this.options.extensions.startInline.forEach(function(d){h=d.call({lexer:this},l),typeof h=="number"&&h>=0&&(f=Math.min(f,h))}),f<1/0&&f>=0&&(s=t.substring(0,f+1))}if(i=this.tokenizer.inlineText(s,Yx)){t=t.substring(i.raw.length),i.raw.slice(-1)!=="_"&&(a=i.raw.slice(-1)),c=!0,r=n[n.length-1],r&&r.type==="text"?(r.raw+=i.raw,r.text+=i.text):n.push(i);continue}if(t){const f="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(f);break}else throw new Error(f)}}return n}}class xc{constructor(t){this.options=t||Ar}code(t,n,i){const r=(n||"").match(/\S*/)[0];if(this.options.highlight){const s=this.options.highlight(t,r);s!=null&&s!==t&&(i=!0,t=s)}return t=t.replace(/\n$/,"")+` -`,r?'<pre><code class="'+this.options.langPrefix+wt(r,!0)+'">'+(i?t:wt(t,!0))+`</code></pre> -`:"<pre><code>"+(i?t:wt(t,!0))+`</code></pre> -`}blockquote(t){return`<blockquote> -`+t+`</blockquote> -`}html(t){return t}heading(t,n,i,r){return this.options.headerIds?"<h"+n+' id="'+this.options.headerPrefix+r.slug(i)+'">'+t+"</h"+n+`> -`:"<h"+n+">"+t+"</h"+n+`> -`}hr(){return this.options.xhtml?`<hr/> -`:`<hr> -`}list(t,n,i){const r=n?"ol":"ul",s=n&&i!==1?' start="'+i+'"':"";return"<"+r+s+`> -`+t+"</"+r+`> -`}listitem(t){return"<li>"+t+`</li> -`}checkbox(t){return"<input "+(t?'checked="" ':"")+'disabled="" type="checkbox"'+(this.options.xhtml?" /":"")+"> "}paragraph(t){return"<p>"+t+`</p> -`}table(t,n){return n&&(n="<tbody>"+n+"</tbody>"),`<table> -<thead> -`+t+`</thead> -`+n+`</table> -`}tablerow(t){return`<tr> -`+t+`</tr> -`}tablecell(t,n){const i=n.header?"th":"td";return(n.align?"<"+i+' align="'+n.align+'">':"<"+i+">")+t+"</"+i+`> -`}strong(t){return"<strong>"+t+"</strong>"}em(t){return"<em>"+t+"</em>"}codespan(t){return"<code>"+t+"</code>"}br(){return this.options.xhtml?"<br/>":"<br>"}del(t){return"<del>"+t+"</del>"}link(t,n,i){if(t=df(this.options.sanitize,this.options.baseUrl,t),t===null)return i;let r='<a href="'+wt(t)+'"';return n&&(r+=' title="'+n+'"'),r+=">"+i+"</a>",r}image(t,n,i){if(t=df(this.options.sanitize,this.options.baseUrl,t),t===null)return i;let r='<img src="'+t+'" alt="'+i+'"';return n&&(r+=' title="'+n+'"'),r+=this.options.xhtml?"/>":">",r}text(t){return t}}class Zp{strong(t){return t}em(t){return t}codespan(t){return t}del(t){return t}html(t){return t}text(t){return t}link(t,n,i){return""+i}image(t,n,i){return""+i}br(){return""}}class qp{constructor(){this.seen={}}serialize(t){return t.toLowerCase().trim().replace(/<[!\/a-z].*?>/ig,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")}getNextSafeSlug(t,n){let i=t,r=0;if(this.seen.hasOwnProperty(i)){r=this.seen[t];do r++,i=t+"-"+r;while(this.seen.hasOwnProperty(i))}return n||(this.seen[t]=r,this.seen[i]=0),i}slug(t,n={}){const i=this.serialize(t);return this.getNextSafeSlug(i,n.dryrun)}}class zn{constructor(t){this.options=t||Ar,this.options.renderer=this.options.renderer||new xc,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new Zp,this.slugger=new qp}static parse(t,n){return new zn(n).parse(t)}static parseInline(t,n){return new zn(n).parseInline(t)}parse(t,n=!0){let i="",r,s,u,o,c,a,f,l,h,d,g,p,m,w,v,A,_,E,b;const x=t.length;for(r=0;r<x;r++){if(d=t[r],this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[d.type]&&(b=this.options.extensions.renderers[d.type].call({parser:this},d),b!==!1||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(d.type))){i+=b||"";continue}switch(d.type){case"space":continue;case"hr":{i+=this.renderer.hr();continue}case"heading":{i+=this.renderer.heading(this.parseInline(d.tokens),d.depth,Jp(this.parseInline(d.tokens,this.textRenderer)),this.slugger);continue}case"code":{i+=this.renderer.code(d.text,d.lang,d.escaped);continue}case"table":{for(l="",f="",o=d.header.length,s=0;s<o;s++)f+=this.renderer.tablecell(this.parseInline(d.header[s].tokens),{header:!0,align:d.align[s]});for(l+=this.renderer.tablerow(f),h="",o=d.rows.length,s=0;s<o;s++){for(a=d.rows[s],f="",c=a.length,u=0;u<c;u++)f+=this.renderer.tablecell(this.parseInline(a[u].tokens),{header:!1,align:d.align[u]});h+=this.renderer.tablerow(f)}i+=this.renderer.table(l,h);continue}case"blockquote":{h=this.parse(d.tokens),i+=this.renderer.blockquote(h);continue}case"list":{for(g=d.ordered,p=d.start,m=d.loose,o=d.items.length,h="",s=0;s<o;s++)v=d.items[s],A=v.checked,_=v.task,w="",v.task&&(E=this.renderer.checkbox(A),m?v.tokens.length>0&&v.tokens[0].type==="paragraph"?(v.tokens[0].text=E+" "+v.tokens[0].text,v.tokens[0].tokens&&v.tokens[0].tokens.length>0&&v.tokens[0].tokens[0].type==="text"&&(v.tokens[0].tokens[0].text=E+" "+v.tokens[0].tokens[0].text)):v.tokens.unshift({type:"text",text:E}):w+=E),w+=this.parse(v.tokens,m),h+=this.renderer.listitem(w,_,A);i+=this.renderer.list(h,g,p);continue}case"html":{i+=this.renderer.html(d.text);continue}case"paragraph":{i+=this.renderer.paragraph(this.parseInline(d.tokens));continue}case"text":{for(h=d.tokens?this.parseInline(d.tokens):d.text;r+1<x&&t[r+1].type==="text";)d=t[++r],h+=` -`+(d.tokens?this.parseInline(d.tokens):d.text);i+=n?this.renderer.paragraph(h):h;continue}default:{const y='Token with "'+d.type+'" type was not found.';if(this.options.silent){console.error(y);return}else throw new Error(y)}}}return i}parseInline(t,n){n=n||this.renderer;let i="",r,s,u;const o=t.length;for(r=0;r<o;r++){if(s=t[r],this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[s.type]&&(u=this.options.extensions.renderers[s.type].call({parser:this},s),u!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(s.type))){i+=u||"";continue}switch(s.type){case"escape":{i+=n.text(s.text);break}case"html":{i+=n.html(s.text);break}case"link":{i+=n.link(s.href,s.title,this.parseInline(s.tokens,n));break}case"image":{i+=n.image(s.href,s.title,s.text);break}case"strong":{i+=n.strong(this.parseInline(s.tokens,n));break}case"em":{i+=n.em(this.parseInline(s.tokens,n));break}case"codespan":{i+=n.codespan(s.text);break}case"br":{i+=n.br();break}case"del":{i+=n.del(this.parseInline(s.tokens,n));break}case"text":{i+=n.text(s.text);break}default:{const c='Token with "'+s.type+'" type was not found.';if(this.options.silent){console.error(c);return}else throw new Error(c)}}}return i}}function Se(e,t,n){if(typeof e=="undefined"||e===null)throw new Error("marked(): input parameter is undefined or null");if(typeof e!="string")throw new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected");if(typeof t=="function"&&(n=t,t=null),t=an({},Se.defaults,t||{}),Yp(t),n){const i=t.highlight;let r;try{r=Pn.lex(e,t)}catch(o){return n(o)}const s=function(o){let c;if(!o)try{t.walkTokens&&Se.walkTokens(r,t.walkTokens),c=zn.parse(r,t)}catch(a){o=a}return t.highlight=i,o?n(o):n(null,c)};if(!i||i.length<3||(delete t.highlight,!r.length))return s();let u=0;Se.walkTokens(r,function(o){o.type==="code"&&(u++,setTimeout(()=>{i(o.text,o.lang,function(c,a){if(c)return s(c);a!=null&&a!==o.text&&(o.text=a,o.escaped=!0),u--,u===0&&s()})},0))}),u===0&&s();return}try{const i=Pn.lex(e,t);return t.walkTokens&&Se.walkTokens(i,t.walkTokens),zn.parse(i,t)}catch(i){if(i.message+=` -Please report this to https://github.com/markedjs/marked.`,t.silent)return"<p>An error occurred:</p><pre>"+wt(i.message+"",!0)+"</pre>";throw i}}Se.options=Se.setOptions=function(e){return an(Se.defaults,e),Mx(Se.defaults),Se};Se.getDefaults=Xp;Se.defaults=Ar;Se.use=function(...e){const t=an({},...e),n=Se.defaults.extensions||{renderers:{},childTokens:{}};let i;e.forEach(r=>{if(r.extensions&&(i=!0,r.extensions.forEach(s=>{if(!s.name)throw new Error("extension name required");if(s.renderer){const u=n.renderers?n.renderers[s.name]:null;u?n.renderers[s.name]=function(...o){let c=s.renderer.apply(this,o);return c===!1&&(c=u.apply(this,o)),c}:n.renderers[s.name]=s.renderer}if(s.tokenizer){if(!s.level||s.level!=="block"&&s.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");n[s.level]?n[s.level].unshift(s.tokenizer):n[s.level]=[s.tokenizer],s.start&&(s.level==="block"?n.startBlock?n.startBlock.push(s.start):n.startBlock=[s.start]:s.level==="inline"&&(n.startInline?n.startInline.push(s.start):n.startInline=[s.start]))}s.childTokens&&(n.childTokens[s.name]=s.childTokens)})),r.renderer){const s=Se.defaults.renderer||new xc;for(const u in r.renderer){const o=s[u];s[u]=(...c)=>{let a=r.renderer[u].apply(s,c);return a===!1&&(a=o.apply(s,c)),a}}t.renderer=s}if(r.tokenizer){const s=Se.defaults.tokenizer||new bc;for(const u in r.tokenizer){const o=s[u];s[u]=(...c)=>{let a=r.tokenizer[u].apply(s,c);return a===!1&&(a=o.apply(s,c)),a}}t.tokenizer=s}if(r.walkTokens){const s=Se.defaults.walkTokens;t.walkTokens=function(u){r.walkTokens.call(this,u),s&&s.call(this,u)}}i&&(t.extensions=n),Se.setOptions(t)})};Se.walkTokens=function(e,t){for(const n of e)switch(t.call(Se,n),n.type){case"table":{for(const i of n.header)Se.walkTokens(i.tokens,t);for(const i of n.rows)for(const r of i)Se.walkTokens(r.tokens,t);break}case"list":{Se.walkTokens(n.items,t);break}default:Se.defaults.extensions&&Se.defaults.extensions.childTokens&&Se.defaults.extensions.childTokens[n.type]?Se.defaults.extensions.childTokens[n.type].forEach(function(i){Se.walkTokens(n[i],t)}):n.tokens&&Se.walkTokens(n.tokens,t)}};Se.parseInline=function(e,t){if(typeof e=="undefined"||e===null)throw new Error("marked.parseInline(): input parameter is undefined or null");if(typeof e!="string")throw new Error("marked.parseInline(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected");t=an({},Se.defaults,t||{}),Yp(t);try{const n=Pn.lexInline(e,t);return t.walkTokens&&Se.walkTokens(n,t.walkTokens),zn.parseInline(n,t)}catch(n){if(n.message+=` -Please report this to https://github.com/markedjs/marked.`,t.silent)return"<p>An error occurred:</p><pre>"+wt(n.message+"",!0)+"</pre>";throw n}};Se.Parser=zn;Se.parser=zn.parse;Se.Renderer=xc;Se.TextRenderer=Zp;Se.Lexer=Pn;Se.lexer=Pn.lex;Se.Tokenizer=bc;Se.Slugger=qp;Se.parse=Se;zn.parse;Pn.lex;function Zx({change:e,activeTags:t,toggleTag:n}){return S("div",{class:"changelog-entry"},S("div",{class:"changelog-version"},S(wf,Ce({},e.version)),S(wf,Ce({},e.group))),S("div",{class:"changelog-tags"},e.tags.map(i=>S(Ss,{label:i,onClick:n?()=>n(i):void 0,active:t==null?void 0:t.includes(i)}))),S("div",{class:"changelog-content",dangerouslySetInnerHTML:{__html:Se(e.content)}}))}function wf({id:e,article:t}){return t===null?S("span",null,e):S("a",{href:`https://www.minecraft.net/en-us/article/${t}`,target:"_blank"},e)}function Ss({label:e,active:t,onClick:n}){const i=e==="breaking"?5:zd(e)%360;return S("div",{class:`changelog-tag${t?" active":""}${n?" clickable":""}`,style:`--tint: ${i}`,onClick:n},e==="breaking"&&$e.alert,e)}function Qp({changes:e,defaultOrder:t}){const{locale:n}=rt(),[i,r]=oe(""),[s,u]=oe([]),o=h=>{s.includes(h)?u(s.filter(d=>d!==h)):u([...s,h])},c=Qe(()=>{const h=i.split(" ").map(d=>d.trim().toLowerCase()).filter(d=>d.length>0);return h.length===0&&s.length===0?e:e==null?void 0:e.filter(d=>{if(!s.every(p=>d.tags.includes(p)))return!1;const g=d.tags.join(" ")+" "+d.content.toLowerCase();return h.every(p=>p.startsWith("!")?p.length===1||!g.includes(p.slice(1)):g.includes(p))})},[e,i,s]),[a,f]=oe(t==="desc"),l=Qe(()=>c==null?void 0:c.sort((h,d)=>a?d.order-h.order:h.order-d.order),[c,a]);return S(De,null,S("div",{class:"changelog-query"},S(Ei,{class:"btn btn-input changelog-search",list:"sound-list",placeholder:n("changelog.search"),value:i,onChange:r}),S(Ee,{icon:a?"sort_desc":"sort_asc",label:a?"Newest first":"Oldest first",onClick:()=>f(!a)})),s.length>0&&S("div",{class:"changelog-tags"},s.map(h=>S(Ss,{label:h,onClick:()=>u(s.filter(d=>d!==h))}))),S("div",{class:"changelog-list"},l===void 0?S("span",{class:"note"},n("loading")):l.length===0?S("span",{class:"note"},n("changelog.no_results")):l.map(h=>S(Zx,{change:h,activeTags:s,toggleTag:o}))))}function qx({version:e}){const{locale:t}=rt(),[n,i]=oe("changelog"),[r,s]=oe(void 0);xe(()=>{Vd().then(o=>s(o.map(c=>tt(Ce({},c),{tags:c.tags.filter(a=>a!==c.group.id)})))).catch(o=>console.error(o))},[]);const u=Qe(()=>r==null?void 0:r.filter(o=>o.version.id===e.id||o.group.id===e.id),[e.id,r]);return S(De,null,S("div",{class:"version-detail"},S("h2",null,e.name),S("div",{class:"version-info"},S(Ln,{label:t("versions.released"),value:eg(e)}),S(Ln,{label:t("versions.release_target"),value:e.release_target,link:e.id!==e.release_target?`/versions/?id=${e.release_target}`:void 0}),S(Ln,{label:t("versions.data_version"),value:e.data_version}),S(Ln,{label:t("versions.protocol_version"),value:e.protocol_version}),S(Ln,{label:t("versions.data_pack_format"),value:e.data_pack_version}),S(Ln,{label:t("versions.resource_pack_format"),value:e.resource_pack_version})),S("div",{class:"version-tabs"},S("span",{class:n==="changelog"?"selected":"",onClick:()=>i("changelog")},t("versions.technical_changes")),S("span",{class:n==="discussion"?"selected":"",onClick:()=>i("discussion")},t("versions.discussion"))),S("div",{class:"version-tab"},n==="changelog"&&S(Qp,{changes:u,defaultOrder:"asc"}),n==="discussion"&&S(Ec,{term:`version/${e.id}`}))))}function eg(e){return new Date(e.release_time).toLocaleDateString(void 0,{day:"numeric",month:"short",year:"numeric"})}function Qx({version:e,link:t}){const{locale:n}=rt();return S("a",{class:"version-entry",href:t},S("span",{class:"version-id"},e.id),S(Ln,{label:n("versions.released"),value:eg(e),compact:!0}),S(Ln,{label:n("versions.data_version"),value:e.data_version,optional:!0}),S(Ln,{label:n("versions.pack_format"),value:e.data_pack_version,optional:!0}))}function eC({versions:e,link:t}){const{locale:n}=rt(),[i,r]=oe(!0),[s,u]=oe(""),o=Qe(()=>e.filter(c=>c.type==="snapshot"&&!i?!1:c.id.includes(s)),[e,i,s]);return S(De,null,S("div",{class:"versions-controls"},S(Ei,{class:"btn btn-input version-search",placeholder:n("versions.search"),value:s,onChange:u}),S(vw,{label:"Include snapshots",value:i,onChange:r})),S("div",{class:"version-list"},o.map(c=>S(Qx,{version:c,link:t==null?void 0:t(c.id)})),o.length===0&&S("span",null,n("versions.no_results"))))}function Ln({label:e,value:t,link:n,compact:i,optional:r}){return S("div",{class:`version-metadata${r?" version-metadata-hide":""}`},S("span",{class:i?"version-metadata-hide":void 0},e,": "),S("span",{class:"version-metadata-value"},t),n&&S("a",{href:n,class:"version-metadata-link"},$e.link_external))}function tC({title:e,link:t,versions:n,tags:i,activeTags:r,toggleTag:s}){const u=o=>c=>{s&&s(o),c.preventDefault(),c.stopImmediatePropagation()};return S("a",{class:"guide-card",href:t},S("span",{class:"guide-versions"},n.join(" \u2022 ")),S("h3",null,e),S("div",{class:"guide-tags"},i.sort().map(o=>S(Ss,{label:o,onClick:u(o),active:r==null?void 0:r.includes(o)}))))}const _f={system:"device_desktop",dark:"moon",light:"sun"};function nC(){const{lang:e,locale:t,changeLanguage:n}=rt(),{theme:i,changeTheme:r}=s0(),{version:s}=vr(),{title:u}=on(),o=Ud(er());return S("header",null,S("div",{class:"title"},S(Kf,{class:"home-link",href:"/","aria-label":t("home"),"data-cy":"home-link"},tg.home),S("h1",null,u),o&&S($t,{icon:"chevron_down",tooltip:t("switch_generator"),"data-cy":"generator-switcher"},He.generators.filter(c=>c.category===(o==null?void 0:o.category)&&Mt(s,c.minVersion)).map(c=>S(Ee,{label:t(c.id),active:c.id===o.id,onClick:()=>ri(Nn(c.url))})))),S("nav",null,S("ul",null,S("li",{"data-cy":"language-switcher"},S($t,{icon:"globe",tooltip:t("language")},He.languages.map(({code:c,name:a})=>S(Ee,{label:a,active:c===e,onClick:()=>n(c)})))),S("li",{"data-cy":"theme-switcher"},S($t,{icon:_f[i],tooltip:t("theme")},Object.entries(_f).map(([c,a])=>S(Ee,{icon:a,label:t(`theme.${c}`),active:c===i,onClick:()=>r(c)})))),S("li",{class:"dimmed"},S("a",{href:"https://github.com/misode/misode.github.io",target:"_blank",rel:"noreferrer",class:"tooltipped tip-sw","aria-label":t("github")},$e.mark_github)))))}const tg={home:S("svg",{width:"32",height:"28",viewBox:"0 0 32 28",fill:"none",xmlns:"http://www.w3.org/2000/svg"},S("rect",{width:"26",height:"6",rx:"3",fill:"#7CB45C"}),S("rect",{x:"8",width:"18",height:"6",rx:"3",fill:"#4BA041"}),S("rect",{y:"11",width:"32",height:"6",rx:"3",fill:"#AAA8A8"}),S("rect",{x:"11",y:"11",width:"21",height:"6",rx:"3",fill:"#91908F"}),S("rect",{x:"11",y:"22",width:"21",height:"6",rx:"3",fill:"#70B5C3"}),S("rect",{x:"17",y:"22",width:"15",height:"6",rx:"3",fill:"#4D989B"})),report:S("svg",{width:"30",height:"36",viewBox:"0 0 30 36",xmlns:"http://www.w3.org/2000/svg"},S("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"}),S("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"}),S("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"}),S("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"}),S("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"}),S("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:S("svg",{width:"20",height:"20",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},S("circle",{cx:"10",cy:"10",r:"10",fill:"#451475"}),S("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"}))};var ng={};/*! - * howler.js v2.2.3 - * howlerjs.com - * - * (c) 2013-2020, James Simpson of GoldFire Studios - * goldfirestudios.com - * - * MIT License - */(function(e){(function(){var t=function(){this.init()};t.prototype={init:function(){var l=this||n;return l._counter=1e3,l._html5AudioPool=[],l.html5PoolSize=10,l._codecs={},l._howls=[],l._muted=!1,l._volume=1,l._canPlayEvent="canplaythrough",l._navigator=typeof window!="undefined"&&window.navigator?window.navigator:null,l.masterGain=null,l.noAudio=!1,l.usingWebAudio=!0,l.autoSuspend=!0,l.ctx=null,l.autoUnlock=!0,l._setup(),l},volume:function(l){var h=this||n;if(l=parseFloat(l),h.ctx||f(),typeof l!="undefined"&&l>=0&&l<=1){if(h._volume=l,h._muted)return h;h.usingWebAudio&&h.masterGain.gain.setValueAtTime(l,n.ctx.currentTime);for(var d=0;d<h._howls.length;d++)if(!h._howls[d]._webAudio)for(var g=h._howls[d]._getSoundIds(),p=0;p<g.length;p++){var m=h._howls[d]._soundById(g[p]);m&&m._node&&(m._node.volume=m._volume*l)}return h}return h._volume},mute:function(l){var h=this||n;h.ctx||f(),h._muted=l,h.usingWebAudio&&h.masterGain.gain.setValueAtTime(l?0:h._volume,n.ctx.currentTime);for(var d=0;d<h._howls.length;d++)if(!h._howls[d]._webAudio)for(var g=h._howls[d]._getSoundIds(),p=0;p<g.length;p++){var m=h._howls[d]._soundById(g[p]);m&&m._node&&(m._node.muted=l?!0:m._muted)}return h},stop:function(){for(var l=this||n,h=0;h<l._howls.length;h++)l._howls[h].stop();return l},unload:function(){for(var l=this||n,h=l._howls.length-1;h>=0;h--)l._howls[h].unload();return l.usingWebAudio&&l.ctx&&typeof l.ctx.close!="undefined"&&(l.ctx.close(),l.ctx=null,f()),l},codecs:function(l){return(this||n)._codecs[l.replace(/^x-/,"")]},_setup:function(){var l=this||n;if(l.state=l.ctx&&l.ctx.state||"suspended",l._autoSuspend(),!l.usingWebAudio)if(typeof Audio!="undefined")try{var h=new Audio;typeof h.oncanplaythrough=="undefined"&&(l._canPlayEvent="canplay")}catch{l.noAudio=!0}else l.noAudio=!0;try{var h=new Audio;h.muted&&(l.noAudio=!0)}catch{}return l.noAudio||l._setupCodecs(),l},_setupCodecs:function(){var l=this||n,h=null;try{h=typeof Audio!="undefined"?new Audio:null}catch{return l}if(!h||typeof h.canPlayType!="function")return l;var d=h.canPlayType("audio/mpeg;").replace(/^no$/,""),g=l._navigator?l._navigator.userAgent:"",p=g.match(/OPR\/([0-6].)/g),m=p&&parseInt(p[0].split("/")[1],10)<33,w=g.indexOf("Safari")!==-1&&g.indexOf("Chrome")===-1,v=g.match(/Version\/(.*?) /),A=w&&v&&parseInt(v[1],10)<15;return l._codecs={mp3:!!(!m&&(d||h.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!d,opus:!!h.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!h.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!h.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(h.canPlayType('audio/wav; codecs="1"')||h.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!h.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!h.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(h.canPlayType("audio/x-m4a;")||h.canPlayType("audio/m4a;")||h.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(h.canPlayType("audio/x-m4b;")||h.canPlayType("audio/m4b;")||h.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(h.canPlayType("audio/x-mp4;")||h.canPlayType("audio/mp4;")||h.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!A&&h.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!A&&h.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!h.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(h.canPlayType("audio/x-flac;")||h.canPlayType("audio/flac;")).replace(/^no$/,"")},l},_unlockAudio:function(){var l=this||n;if(!(l._audioUnlocked||!l.ctx)){l._audioUnlocked=!1,l.autoUnlock=!1,!l._mobileUnloaded&&l.ctx.sampleRate!==44100&&(l._mobileUnloaded=!0,l.unload()),l._scratchBuffer=l.ctx.createBuffer(1,1,22050);var h=function(d){for(;l._html5AudioPool.length<l.html5PoolSize;)try{var g=new Audio;g._unlocked=!0,l._releaseHtml5Audio(g)}catch{l.noAudio=!0;break}for(var p=0;p<l._howls.length;p++)if(!l._howls[p]._webAudio)for(var m=l._howls[p]._getSoundIds(),w=0;w<m.length;w++){var v=l._howls[p]._soundById(m[w]);v&&v._node&&!v._node._unlocked&&(v._node._unlocked=!0,v._node.load())}l._autoResume();var A=l.ctx.createBufferSource();A.buffer=l._scratchBuffer,A.connect(l.ctx.destination),typeof A.start=="undefined"?A.noteOn(0):A.start(0),typeof l.ctx.resume=="function"&&l.ctx.resume(),A.onended=function(){A.disconnect(0),l._audioUnlocked=!0,document.removeEventListener("touchstart",h,!0),document.removeEventListener("touchend",h,!0),document.removeEventListener("click",h,!0),document.removeEventListener("keydown",h,!0);for(var _=0;_<l._howls.length;_++)l._howls[_]._emit("unlock")}};return document.addEventListener("touchstart",h,!0),document.addEventListener("touchend",h,!0),document.addEventListener("click",h,!0),document.addEventListener("keydown",h,!0),l}},_obtainHtml5Audio:function(){var l=this||n;if(l._html5AudioPool.length)return l._html5AudioPool.pop();var h=new Audio().play();return h&&typeof Promise!="undefined"&&(h instanceof Promise||typeof h.then=="function")&&h.catch(function(){console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.")}),new Audio},_releaseHtml5Audio:function(l){var h=this||n;return l._unlocked&&h._html5AudioPool.push(l),h},_autoSuspend:function(){var l=this;if(!(!l.autoSuspend||!l.ctx||typeof l.ctx.suspend=="undefined"||!n.usingWebAudio)){for(var h=0;h<l._howls.length;h++)if(l._howls[h]._webAudio){for(var d=0;d<l._howls[h]._sounds.length;d++)if(!l._howls[h]._sounds[d]._paused)return l}return l._suspendTimer&&clearTimeout(l._suspendTimer),l._suspendTimer=setTimeout(function(){if(!!l.autoSuspend){l._suspendTimer=null,l.state="suspending";var g=function(){l.state="suspended",l._resumeAfterSuspend&&(delete l._resumeAfterSuspend,l._autoResume())};l.ctx.suspend().then(g,g)}},3e4),l}},_autoResume:function(){var l=this;if(!(!l.ctx||typeof l.ctx.resume=="undefined"||!n.usingWebAudio))return l.state==="running"&&l.ctx.state!=="interrupted"&&l._suspendTimer?(clearTimeout(l._suspendTimer),l._suspendTimer=null):l.state==="suspended"||l.state==="running"&&l.ctx.state==="interrupted"?(l.ctx.resume().then(function(){l.state="running";for(var h=0;h<l._howls.length;h++)l._howls[h]._emit("resume")}),l._suspendTimer&&(clearTimeout(l._suspendTimer),l._suspendTimer=null)):l.state==="suspending"&&(l._resumeAfterSuspend=!0),l}};var n=new t,i=function(l){var h=this;if(!l.src||l.src.length===0){console.error("An array of source files must be passed with any new Howl.");return}h.init(l)};i.prototype={init:function(l){var h=this;return n.ctx||f(),h._autoplay=l.autoplay||!1,h._format=typeof l.format!="string"?l.format:[l.format],h._html5=l.html5||!1,h._muted=l.mute||!1,h._loop=l.loop||!1,h._pool=l.pool||5,h._preload=typeof l.preload=="boolean"||l.preload==="metadata"?l.preload:!0,h._rate=l.rate||1,h._sprite=l.sprite||{},h._src=typeof l.src!="string"?l.src:[l.src],h._volume=l.volume!==void 0?l.volume:1,h._xhr={method:l.xhr&&l.xhr.method?l.xhr.method:"GET",headers:l.xhr&&l.xhr.headers?l.xhr.headers:null,withCredentials:l.xhr&&l.xhr.withCredentials?l.xhr.withCredentials:!1},h._duration=0,h._state="unloaded",h._sounds=[],h._endTimers={},h._queue=[],h._playLock=!1,h._onend=l.onend?[{fn:l.onend}]:[],h._onfade=l.onfade?[{fn:l.onfade}]:[],h._onload=l.onload?[{fn:l.onload}]:[],h._onloaderror=l.onloaderror?[{fn:l.onloaderror}]:[],h._onplayerror=l.onplayerror?[{fn:l.onplayerror}]:[],h._onpause=l.onpause?[{fn:l.onpause}]:[],h._onplay=l.onplay?[{fn:l.onplay}]:[],h._onstop=l.onstop?[{fn:l.onstop}]:[],h._onmute=l.onmute?[{fn:l.onmute}]:[],h._onvolume=l.onvolume?[{fn:l.onvolume}]:[],h._onrate=l.onrate?[{fn:l.onrate}]:[],h._onseek=l.onseek?[{fn:l.onseek}]:[],h._onunlock=l.onunlock?[{fn:l.onunlock}]:[],h._onresume=[],h._webAudio=n.usingWebAudio&&!h._html5,typeof n.ctx!="undefined"&&n.ctx&&n.autoUnlock&&n._unlockAudio(),n._howls.push(h),h._autoplay&&h._queue.push({event:"play",action:function(){h.play()}}),h._preload&&h._preload!=="none"&&h.load(),h},load:function(){var l=this,h=null;if(n.noAudio){l._emit("loaderror",null,"No audio support.");return}typeof l._src=="string"&&(l._src=[l._src]);for(var d=0;d<l._src.length;d++){var g,p;if(l._format&&l._format[d])g=l._format[d];else{if(p=l._src[d],typeof p!="string"){l._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}g=/^data:audio\/([^;,]+);/i.exec(p),g||(g=/\.([^.]+)$/.exec(p.split("?",1)[0])),g&&(g=g[1].toLowerCase())}if(g||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),g&&n.codecs(g)){h=l._src[d];break}}if(!h){l._emit("loaderror",null,"No codec support for selected audio sources.");return}return l._src=h,l._state="loading",window.location.protocol==="https:"&&h.slice(0,5)==="http:"&&(l._html5=!0,l._webAudio=!1),new r(l),l._webAudio&&u(l),l},play:function(l,h){var d=this,g=null;if(typeof l=="number")g=l,l=null;else{if(typeof l=="string"&&d._state==="loaded"&&!d._sprite[l])return null;if(typeof l=="undefined"&&(l="__default",!d._playLock)){for(var p=0,m=0;m<d._sounds.length;m++)d._sounds[m]._paused&&!d._sounds[m]._ended&&(p++,g=d._sounds[m]._id);p===1?l=null:g=null}}var w=g?d._soundById(g):d._inactiveSound();if(!w)return null;if(g&&!l&&(l=w._sprite||"__default"),d._state!=="loaded"){w._sprite=l,w._ended=!1;var v=w._id;return d._queue.push({event:"play",action:function(){d.play(v)}}),v}if(g&&!w._paused)return h||d._loadQueue("play"),w._id;d._webAudio&&n._autoResume();var A=Math.max(0,w._seek>0?w._seek:d._sprite[l][0]/1e3),_=Math.max(0,(d._sprite[l][0]+d._sprite[l][1])/1e3-A),E=_*1e3/Math.abs(w._rate),b=d._sprite[l][0]/1e3,x=(d._sprite[l][0]+d._sprite[l][1])/1e3;w._sprite=l,w._ended=!1;var y=function(){w._paused=!1,w._seek=A,w._start=b,w._stop=x,w._loop=!!(w._loop||d._sprite[l][2])};if(A>=x){d._ended(w);return}var C=w._node;if(d._webAudio){var B=function(){d._playLock=!1,y(),d._refreshBuffer(w);var I=w._muted||d._muted?0:w._volume;C.gain.setValueAtTime(I,n.ctx.currentTime),w._playStart=n.ctx.currentTime,typeof C.bufferSource.start=="undefined"?w._loop?C.bufferSource.noteGrainOn(0,A,86400):C.bufferSource.noteGrainOn(0,A,_):w._loop?C.bufferSource.start(0,A,86400):C.bufferSource.start(0,A,_),E!==1/0&&(d._endTimers[w._id]=setTimeout(d._ended.bind(d,w),E)),h||setTimeout(function(){d._emit("play",w._id),d._loadQueue()},0)};n.state==="running"&&n.ctx.state!=="interrupted"?B():(d._playLock=!0,d.once("resume",B),d._clearTimer(w._id))}else{var T=function(){C.currentTime=A,C.muted=w._muted||d._muted||n._muted||C.muted,C.volume=w._volume*n.volume(),C.playbackRate=w._rate;try{var I=C.play();if(I&&typeof Promise!="undefined"&&(I instanceof Promise||typeof I.then=="function")?(d._playLock=!0,y(),I.then(function(){d._playLock=!1,C._unlocked=!0,h?d._loadQueue():d._emit("play",w._id)}).catch(function(){d._playLock=!1,d._emit("playerror",w._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),w._ended=!0,w._paused=!0})):h||(d._playLock=!1,y(),d._emit("play",w._id)),C.playbackRate=w._rate,C.paused){d._emit("playerror",w._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");return}l!=="__default"||w._loop?d._endTimers[w._id]=setTimeout(d._ended.bind(d,w),E):(d._endTimers[w._id]=function(){d._ended(w),C.removeEventListener("ended",d._endTimers[w._id],!1)},C.addEventListener("ended",d._endTimers[w._id],!1))}catch(H){d._emit("playerror",w._id,H)}};C.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(C.src=d._src,C.load());var M=window&&window.ejecta||!C.readyState&&n._navigator.isCocoonJS;if(C.readyState>=3||M)T();else{d._playLock=!0,d._state="loading";var R=function(){d._state="loaded",T(),C.removeEventListener(n._canPlayEvent,R,!1)};C.addEventListener(n._canPlayEvent,R,!1),d._clearTimer(w._id)}}return w._id},pause:function(l){var h=this;if(h._state!=="loaded"||h._playLock)return h._queue.push({event:"pause",action:function(){h.pause(l)}}),h;for(var d=h._getSoundIds(l),g=0;g<d.length;g++){h._clearTimer(d[g]);var p=h._soundById(d[g]);if(p&&!p._paused&&(p._seek=h.seek(d[g]),p._rateSeek=0,p._paused=!0,h._stopFade(d[g]),p._node))if(h._webAudio){if(!p._node.bufferSource)continue;typeof p._node.bufferSource.stop=="undefined"?p._node.bufferSource.noteOff(0):p._node.bufferSource.stop(0),h._cleanBuffer(p._node)}else(!isNaN(p._node.duration)||p._node.duration===1/0)&&p._node.pause();arguments[1]||h._emit("pause",p?p._id:null)}return h},stop:function(l,h){var d=this;if(d._state!=="loaded"||d._playLock)return d._queue.push({event:"stop",action:function(){d.stop(l)}}),d;for(var g=d._getSoundIds(l),p=0;p<g.length;p++){d._clearTimer(g[p]);var m=d._soundById(g[p]);m&&(m._seek=m._start||0,m._rateSeek=0,m._paused=!0,m._ended=!0,d._stopFade(g[p]),m._node&&(d._webAudio?m._node.bufferSource&&(typeof m._node.bufferSource.stop=="undefined"?m._node.bufferSource.noteOff(0):m._node.bufferSource.stop(0),d._cleanBuffer(m._node)):(!isNaN(m._node.duration)||m._node.duration===1/0)&&(m._node.currentTime=m._start||0,m._node.pause(),m._node.duration===1/0&&d._clearSound(m._node))),h||d._emit("stop",m._id))}return d},mute:function(l,h){var d=this;if(d._state!=="loaded"||d._playLock)return d._queue.push({event:"mute",action:function(){d.mute(l,h)}}),d;if(typeof h=="undefined")if(typeof l=="boolean")d._muted=l;else return d._muted;for(var g=d._getSoundIds(h),p=0;p<g.length;p++){var m=d._soundById(g[p]);m&&(m._muted=l,m._interval&&d._stopFade(m._id),d._webAudio&&m._node?m._node.gain.setValueAtTime(l?0:m._volume,n.ctx.currentTime):m._node&&(m._node.muted=n._muted?!0:l),d._emit("mute",m._id))}return d},volume:function(){var l=this,h=arguments,d,g;if(h.length===0)return l._volume;if(h.length===1||h.length===2&&typeof h[1]=="undefined"){var p=l._getSoundIds(),m=p.indexOf(h[0]);m>=0?g=parseInt(h[0],10):d=parseFloat(h[0])}else h.length>=2&&(d=parseFloat(h[0]),g=parseInt(h[1],10));var w;if(typeof d!="undefined"&&d>=0&&d<=1){if(l._state!=="loaded"||l._playLock)return l._queue.push({event:"volume",action:function(){l.volume.apply(l,h)}}),l;typeof g=="undefined"&&(l._volume=d),g=l._getSoundIds(g);for(var v=0;v<g.length;v++)w=l._soundById(g[v]),w&&(w._volume=d,h[2]||l._stopFade(g[v]),l._webAudio&&w._node&&!w._muted?w._node.gain.setValueAtTime(d,n.ctx.currentTime):w._node&&!w._muted&&(w._node.volume=d*n.volume()),l._emit("volume",w._id))}else return w=g?l._soundById(g):l._sounds[0],w?w._volume:0;return l},fade:function(l,h,d,g){var p=this;if(p._state!=="loaded"||p._playLock)return p._queue.push({event:"fade",action:function(){p.fade(l,h,d,g)}}),p;l=Math.min(Math.max(0,parseFloat(l)),1),h=Math.min(Math.max(0,parseFloat(h)),1),d=parseFloat(d),p.volume(l,g);for(var m=p._getSoundIds(g),w=0;w<m.length;w++){var v=p._soundById(m[w]);if(v){if(g||p._stopFade(m[w]),p._webAudio&&!v._muted){var A=n.ctx.currentTime,_=A+d/1e3;v._volume=l,v._node.gain.setValueAtTime(l,A),v._node.gain.linearRampToValueAtTime(h,_)}p._startFadeInterval(v,l,h,d,m[w],typeof g=="undefined")}}return p},_startFadeInterval:function(l,h,d,g,p,m){var w=this,v=h,A=d-h,_=Math.abs(A/.01),E=Math.max(4,_>0?g/_:g),b=Date.now();l._fadeTo=d,l._interval=setInterval(function(){var x=(Date.now()-b)/g;b=Date.now(),v+=A*x,v=Math.round(v*100)/100,A<0?v=Math.max(d,v):v=Math.min(d,v),w._webAudio?l._volume=v:w.volume(v,l._id,!0),m&&(w._volume=v),(d<h&&v<=d||d>h&&v>=d)&&(clearInterval(l._interval),l._interval=null,l._fadeTo=null,w.volume(d,l._id),w._emit("fade",l._id))},E)},_stopFade:function(l){var h=this,d=h._soundById(l);return d&&d._interval&&(h._webAudio&&d._node.gain.cancelScheduledValues(n.ctx.currentTime),clearInterval(d._interval),d._interval=null,h.volume(d._fadeTo,l),d._fadeTo=null,h._emit("fade",l)),h},loop:function(){var l=this,h=arguments,d,g,p;if(h.length===0)return l._loop;if(h.length===1)if(typeof h[0]=="boolean")d=h[0],l._loop=d;else return p=l._soundById(parseInt(h[0],10)),p?p._loop:!1;else h.length===2&&(d=h[0],g=parseInt(h[1],10));for(var m=l._getSoundIds(g),w=0;w<m.length;w++)p=l._soundById(m[w]),p&&(p._loop=d,l._webAudio&&p._node&&p._node.bufferSource&&(p._node.bufferSource.loop=d,d&&(p._node.bufferSource.loopStart=p._start||0,p._node.bufferSource.loopEnd=p._stop,l.playing(m[w])&&(l.pause(m[w],!0),l.play(m[w],!0)))));return l},rate:function(){var l=this,h=arguments,d,g;if(h.length===0)g=l._sounds[0]._id;else if(h.length===1){var p=l._getSoundIds(),m=p.indexOf(h[0]);m>=0?g=parseInt(h[0],10):d=parseFloat(h[0])}else h.length===2&&(d=parseFloat(h[0]),g=parseInt(h[1],10));var w;if(typeof d=="number"){if(l._state!=="loaded"||l._playLock)return l._queue.push({event:"rate",action:function(){l.rate.apply(l,h)}}),l;typeof g=="undefined"&&(l._rate=d),g=l._getSoundIds(g);for(var v=0;v<g.length;v++)if(w=l._soundById(g[v]),w){l.playing(g[v])&&(w._rateSeek=l.seek(g[v]),w._playStart=l._webAudio?n.ctx.currentTime:w._playStart),w._rate=d,l._webAudio&&w._node&&w._node.bufferSource?w._node.bufferSource.playbackRate.setValueAtTime(d,n.ctx.currentTime):w._node&&(w._node.playbackRate=d);var A=l.seek(g[v]),_=(l._sprite[w._sprite][0]+l._sprite[w._sprite][1])/1e3-A,E=_*1e3/Math.abs(w._rate);(l._endTimers[g[v]]||!w._paused)&&(l._clearTimer(g[v]),l._endTimers[g[v]]=setTimeout(l._ended.bind(l,w),E)),l._emit("rate",w._id)}}else return w=l._soundById(g),w?w._rate:l._rate;return l},seek:function(){var l=this,h=arguments,d,g;if(h.length===0)l._sounds.length&&(g=l._sounds[0]._id);else if(h.length===1){var p=l._getSoundIds(),m=p.indexOf(h[0]);m>=0?g=parseInt(h[0],10):l._sounds.length&&(g=l._sounds[0]._id,d=parseFloat(h[0]))}else h.length===2&&(d=parseFloat(h[0]),g=parseInt(h[1],10));if(typeof g=="undefined")return 0;if(typeof d=="number"&&(l._state!=="loaded"||l._playLock))return l._queue.push({event:"seek",action:function(){l.seek.apply(l,h)}}),l;var w=l._soundById(g);if(w)if(typeof d=="number"&&d>=0){var v=l.playing(g);v&&l.pause(g,!0),w._seek=d,w._ended=!1,l._clearTimer(g),!l._webAudio&&w._node&&!isNaN(w._node.duration)&&(w._node.currentTime=d);var A=function(){v&&l.play(g,!0),l._emit("seek",g)};if(v&&!l._webAudio){var _=function(){l._playLock?setTimeout(_,0):A()};setTimeout(_,0)}else A()}else if(l._webAudio){var E=l.playing(g)?n.ctx.currentTime-w._playStart:0,b=w._rateSeek?w._rateSeek-w._seek:0;return w._seek+(b+E*Math.abs(w._rate))}else return w._node.currentTime;return l},playing:function(l){var h=this;if(typeof l=="number"){var d=h._soundById(l);return d?!d._paused:!1}for(var g=0;g<h._sounds.length;g++)if(!h._sounds[g]._paused)return!0;return!1},duration:function(l){var h=this,d=h._duration,g=h._soundById(l);return g&&(d=h._sprite[g._sprite][1]/1e3),d},state:function(){return this._state},unload:function(){for(var l=this,h=l._sounds,d=0;d<h.length;d++)h[d]._paused||l.stop(h[d]._id),l._webAudio||(l._clearSound(h[d]._node),h[d]._node.removeEventListener("error",h[d]._errorFn,!1),h[d]._node.removeEventListener(n._canPlayEvent,h[d]._loadFn,!1),h[d]._node.removeEventListener("ended",h[d]._endFn,!1),n._releaseHtml5Audio(h[d]._node)),delete h[d]._node,l._clearTimer(h[d]._id);var g=n._howls.indexOf(l);g>=0&&n._howls.splice(g,1);var p=!0;for(d=0;d<n._howls.length;d++)if(n._howls[d]._src===l._src||l._src.indexOf(n._howls[d]._src)>=0){p=!1;break}return s&&p&&delete s[l._src],n.noAudio=!1,l._state="unloaded",l._sounds=[],l=null,null},on:function(l,h,d,g){var p=this,m=p["_on"+l];return typeof h=="function"&&m.push(g?{id:d,fn:h,once:g}:{id:d,fn:h}),p},off:function(l,h,d){var g=this,p=g["_on"+l],m=0;if(typeof h=="number"&&(d=h,h=null),h||d)for(m=0;m<p.length;m++){var w=d===p[m].id;if(h===p[m].fn&&w||!h&&w){p.splice(m,1);break}}else if(l)g["_on"+l]=[];else{var v=Object.keys(g);for(m=0;m<v.length;m++)v[m].indexOf("_on")===0&&Array.isArray(g[v[m]])&&(g[v[m]]=[])}return g},once:function(l,h,d){var g=this;return g.on(l,h,d,1),g},_emit:function(l,h,d){for(var g=this,p=g["_on"+l],m=p.length-1;m>=0;m--)(!p[m].id||p[m].id===h||l==="load")&&(setTimeout(function(w){w.call(this,h,d)}.bind(g,p[m].fn),0),p[m].once&&g.off(l,p[m].fn,p[m].id));return g._loadQueue(l),g},_loadQueue:function(l){var h=this;if(h._queue.length>0){var d=h._queue[0];d.event===l&&(h._queue.shift(),h._loadQueue()),l||d.action()}return h},_ended:function(l){var h=this,d=l._sprite;if(!h._webAudio&&l._node&&!l._node.paused&&!l._node.ended&&l._node.currentTime<l._stop)return setTimeout(h._ended.bind(h,l),100),h;var g=!!(l._loop||h._sprite[d][2]);if(h._emit("end",l._id),!h._webAudio&&g&&h.stop(l._id,!0).play(l._id),h._webAudio&&g){h._emit("play",l._id),l._seek=l._start||0,l._rateSeek=0,l._playStart=n.ctx.currentTime;var p=(l._stop-l._start)*1e3/Math.abs(l._rate);h._endTimers[l._id]=setTimeout(h._ended.bind(h,l),p)}return h._webAudio&&!g&&(l._paused=!0,l._ended=!0,l._seek=l._start||0,l._rateSeek=0,h._clearTimer(l._id),h._cleanBuffer(l._node),n._autoSuspend()),!h._webAudio&&!g&&h.stop(l._id,!0),h},_clearTimer:function(l){var h=this;if(h._endTimers[l]){if(typeof h._endTimers[l]!="function")clearTimeout(h._endTimers[l]);else{var d=h._soundById(l);d&&d._node&&d._node.removeEventListener("ended",h._endTimers[l],!1)}delete h._endTimers[l]}return h},_soundById:function(l){for(var h=this,d=0;d<h._sounds.length;d++)if(l===h._sounds[d]._id)return h._sounds[d];return null},_inactiveSound:function(){var l=this;l._drain();for(var h=0;h<l._sounds.length;h++)if(l._sounds[h]._ended)return l._sounds[h].reset();return new r(l)},_drain:function(){var l=this,h=l._pool,d=0,g=0;if(!(l._sounds.length<h)){for(g=0;g<l._sounds.length;g++)l._sounds[g]._ended&&d++;for(g=l._sounds.length-1;g>=0;g--){if(d<=h)return;l._sounds[g]._ended&&(l._webAudio&&l._sounds[g]._node&&l._sounds[g]._node.disconnect(0),l._sounds.splice(g,1),d--)}}},_getSoundIds:function(l){var h=this;if(typeof l=="undefined"){for(var d=[],g=0;g<h._sounds.length;g++)d.push(h._sounds[g]._id);return d}else return[l]},_refreshBuffer:function(l){var h=this;return l._node.bufferSource=n.ctx.createBufferSource(),l._node.bufferSource.buffer=s[h._src],l._panner?l._node.bufferSource.connect(l._panner):l._node.bufferSource.connect(l._node),l._node.bufferSource.loop=l._loop,l._loop&&(l._node.bufferSource.loopStart=l._start||0,l._node.bufferSource.loopEnd=l._stop||0),l._node.bufferSource.playbackRate.setValueAtTime(l._rate,n.ctx.currentTime),h},_cleanBuffer:function(l){var h=this,d=n._navigator&&n._navigator.vendor.indexOf("Apple")>=0;if(n._scratchBuffer&&l.bufferSource&&(l.bufferSource.onended=null,l.bufferSource.disconnect(0),d))try{l.bufferSource.buffer=n._scratchBuffer}catch{}return l.bufferSource=null,h},_clearSound:function(l){var h=/MSIE |Trident\//.test(n._navigator&&n._navigator.userAgent);h||(l.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var r=function(l){this._parent=l,this.init()};r.prototype={init:function(){var l=this,h=l._parent;return l._muted=h._muted,l._loop=h._loop,l._volume=h._volume,l._rate=h._rate,l._seek=0,l._paused=!0,l._ended=!0,l._sprite="__default",l._id=++n._counter,h._sounds.push(l),l.create(),l},create:function(){var l=this,h=l._parent,d=n._muted||l._muted||l._parent._muted?0:l._volume;return h._webAudio?(l._node=typeof n.ctx.createGain=="undefined"?n.ctx.createGainNode():n.ctx.createGain(),l._node.gain.setValueAtTime(d,n.ctx.currentTime),l._node.paused=!0,l._node.connect(n.masterGain)):n.noAudio||(l._node=n._obtainHtml5Audio(),l._errorFn=l._errorListener.bind(l),l._node.addEventListener("error",l._errorFn,!1),l._loadFn=l._loadListener.bind(l),l._node.addEventListener(n._canPlayEvent,l._loadFn,!1),l._endFn=l._endListener.bind(l),l._node.addEventListener("ended",l._endFn,!1),l._node.src=h._src,l._node.preload=h._preload===!0?"auto":h._preload,l._node.volume=d*n.volume(),l._node.load()),l},reset:function(){var l=this,h=l._parent;return l._muted=h._muted,l._loop=h._loop,l._volume=h._volume,l._rate=h._rate,l._seek=0,l._rateSeek=0,l._paused=!0,l._ended=!0,l._sprite="__default",l._id=++n._counter,l},_errorListener:function(){var l=this;l._parent._emit("loaderror",l._id,l._node.error?l._node.error.code:0),l._node.removeEventListener("error",l._errorFn,!1)},_loadListener:function(){var l=this,h=l._parent;h._duration=Math.ceil(l._node.duration*10)/10,Object.keys(h._sprite).length===0&&(h._sprite={__default:[0,h._duration*1e3]}),h._state!=="loaded"&&(h._state="loaded",h._emit("load"),h._loadQueue()),l._node.removeEventListener(n._canPlayEvent,l._loadFn,!1)},_endListener:function(){var l=this,h=l._parent;h._duration===1/0&&(h._duration=Math.ceil(l._node.duration*10)/10,h._sprite.__default[1]===1/0&&(h._sprite.__default[1]=h._duration*1e3),h._ended(l)),l._node.removeEventListener("ended",l._endFn,!1)}};var s={},u=function(l){var h=l._src;if(s[h]){l._duration=s[h].duration,a(l);return}if(/^data:[^;]+;base64,/.test(h)){for(var d=atob(h.split(",")[1]),g=new Uint8Array(d.length),p=0;p<d.length;++p)g[p]=d.charCodeAt(p);c(g.buffer,l)}else{var m=new XMLHttpRequest;m.open(l._xhr.method,h,!0),m.withCredentials=l._xhr.withCredentials,m.responseType="arraybuffer",l._xhr.headers&&Object.keys(l._xhr.headers).forEach(function(w){m.setRequestHeader(w,l._xhr.headers[w])}),m.onload=function(){var w=(m.status+"")[0];if(w!=="0"&&w!=="2"&&w!=="3"){l._emit("loaderror",null,"Failed loading audio file with status: "+m.status+".");return}c(m.response,l)},m.onerror=function(){l._webAudio&&(l._html5=!0,l._webAudio=!1,l._sounds=[],delete s[h],l.load())},o(m)}},o=function(l){try{l.send()}catch{l.onerror()}},c=function(l,h){var d=function(){h._emit("loaderror",null,"Decoding audio data failed.")},g=function(p){p&&h._sounds.length>0?(s[h._src]=p,a(h,p)):d()};typeof Promise!="undefined"&&n.ctx.decodeAudioData.length===1?n.ctx.decodeAudioData(l).then(g).catch(d):n.ctx.decodeAudioData(l,g,d)},a=function(l,h){h&&!l._duration&&(l._duration=h.duration),Object.keys(l._sprite).length===0&&(l._sprite={__default:[0,l._duration*1e3]}),l._state!=="loaded"&&(l._state="loaded",l._emit("load"),l._loadQueue())},f=function(){if(!!n.usingWebAudio){try{typeof AudioContext!="undefined"?n.ctx=new AudioContext:typeof webkitAudioContext!="undefined"?n.ctx=new webkitAudioContext:n.usingWebAudio=!1}catch{n.usingWebAudio=!1}n.ctx||(n.usingWebAudio=!1);var l=/iP(hone|od|ad)/.test(n._navigator&&n._navigator.platform),h=n._navigator&&n._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),d=h?parseInt(h[1],10):null;if(l&&d&&d<9){var g=/safari/.test(n._navigator&&n._navigator.userAgent.toLowerCase());n._navigator&&!g&&(n.usingWebAudio=!1)}n.usingWebAudio&&(n.masterGain=typeof n.ctx.createGain=="undefined"?n.ctx.createGainNode():n.ctx.createGain(),n.masterGain.gain.setValueAtTime(n._muted?0:n._volume,n.ctx.currentTime),n.masterGain.connect(n.ctx.destination)),n._setup()}};e.Howler=n,e.Howl=i,typeof tn!="undefined"?(tn.HowlerGlobal=t,tn.Howler=n,tn.Howl=i,tn.Sound=r):typeof window!="undefined"&&(window.HowlerGlobal=t,window.Howler=n,window.Howl=i,window.Sound=r)})();/*! - * Spatial Plugin - Adds support for stereo and 3D audio where Web Audio is supported. - * - * howler.js v2.2.3 - * howlerjs.com - * - * (c) 2013-2020, James Simpson of GoldFire Studios - * goldfirestudios.com - * - * MIT License - */(function(){HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(n){var i=this;if(!i.ctx||!i.ctx.listener)return i;for(var r=i._howls.length-1;r>=0;r--)i._howls[r].stereo(n);return i},HowlerGlobal.prototype.pos=function(n,i,r){var s=this;if(!s.ctx||!s.ctx.listener)return s;if(i=typeof i!="number"?s._pos[1]:i,r=typeof r!="number"?s._pos[2]:r,typeof n=="number")s._pos=[n,i,r],typeof s.ctx.listener.positionX!="undefined"?(s.ctx.listener.positionX.setTargetAtTime(s._pos[0],Howler.ctx.currentTime,.1),s.ctx.listener.positionY.setTargetAtTime(s._pos[1],Howler.ctx.currentTime,.1),s.ctx.listener.positionZ.setTargetAtTime(s._pos[2],Howler.ctx.currentTime,.1)):s.ctx.listener.setPosition(s._pos[0],s._pos[1],s._pos[2]);else return s._pos;return s},HowlerGlobal.prototype.orientation=function(n,i,r,s,u,o){var c=this;if(!c.ctx||!c.ctx.listener)return c;var a=c._orientation;if(i=typeof i!="number"?a[1]:i,r=typeof r!="number"?a[2]:r,s=typeof s!="number"?a[3]:s,u=typeof u!="number"?a[4]:u,o=typeof o!="number"?a[5]:o,typeof n=="number")c._orientation=[n,i,r,s,u,o],typeof c.ctx.listener.forwardX!="undefined"?(c.ctx.listener.forwardX.setTargetAtTime(n,Howler.ctx.currentTime,.1),c.ctx.listener.forwardY.setTargetAtTime(i,Howler.ctx.currentTime,.1),c.ctx.listener.forwardZ.setTargetAtTime(r,Howler.ctx.currentTime,.1),c.ctx.listener.upX.setTargetAtTime(s,Howler.ctx.currentTime,.1),c.ctx.listener.upY.setTargetAtTime(u,Howler.ctx.currentTime,.1),c.ctx.listener.upZ.setTargetAtTime(o,Howler.ctx.currentTime,.1)):c.ctx.listener.setOrientation(n,i,r,s,u,o);else return a;return c},Howl.prototype.init=function(n){return function(i){var r=this;return r._orientation=i.orientation||[1,0,0],r._stereo=i.stereo||null,r._pos=i.pos||null,r._pannerAttr={coneInnerAngle:typeof i.coneInnerAngle!="undefined"?i.coneInnerAngle:360,coneOuterAngle:typeof i.coneOuterAngle!="undefined"?i.coneOuterAngle:360,coneOuterGain:typeof i.coneOuterGain!="undefined"?i.coneOuterGain:0,distanceModel:typeof i.distanceModel!="undefined"?i.distanceModel:"inverse",maxDistance:typeof i.maxDistance!="undefined"?i.maxDistance:1e4,panningModel:typeof i.panningModel!="undefined"?i.panningModel:"HRTF",refDistance:typeof i.refDistance!="undefined"?i.refDistance:1,rolloffFactor:typeof i.rolloffFactor!="undefined"?i.rolloffFactor:1},r._onstereo=i.onstereo?[{fn:i.onstereo}]:[],r._onpos=i.onpos?[{fn:i.onpos}]:[],r._onorientation=i.onorientation?[{fn:i.onorientation}]:[],n.call(this,i)}}(Howl.prototype.init),Howl.prototype.stereo=function(n,i){var r=this;if(!r._webAudio)return r;if(r._state!=="loaded")return r._queue.push({event:"stereo",action:function(){r.stereo(n,i)}}),r;var s=typeof Howler.ctx.createStereoPanner=="undefined"?"spatial":"stereo";if(typeof i=="undefined")if(typeof n=="number")r._stereo=n,r._pos=[n,0,0];else return r._stereo;for(var u=r._getSoundIds(i),o=0;o<u.length;o++){var c=r._soundById(u[o]);if(c)if(typeof n=="number")c._stereo=n,c._pos=[n,0,0],c._node&&(c._pannerAttr.panningModel="equalpower",(!c._panner||!c._panner.pan)&&t(c,s),s==="spatial"?typeof c._panner.positionX!="undefined"?(c._panner.positionX.setValueAtTime(n,Howler.ctx.currentTime),c._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),c._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):c._panner.setPosition(n,0,0):c._panner.pan.setValueAtTime(n,Howler.ctx.currentTime)),r._emit("stereo",c._id);else return c._stereo}return r},Howl.prototype.pos=function(n,i,r,s){var u=this;if(!u._webAudio)return u;if(u._state!=="loaded")return u._queue.push({event:"pos",action:function(){u.pos(n,i,r,s)}}),u;if(i=typeof i!="number"?0:i,r=typeof r!="number"?-.5:r,typeof s=="undefined")if(typeof n=="number")u._pos=[n,i,r];else return u._pos;for(var o=u._getSoundIds(s),c=0;c<o.length;c++){var a=u._soundById(o[c]);if(a)if(typeof n=="number")a._pos=[n,i,r],a._node&&((!a._panner||a._panner.pan)&&t(a,"spatial"),typeof a._panner.positionX!="undefined"?(a._panner.positionX.setValueAtTime(n,Howler.ctx.currentTime),a._panner.positionY.setValueAtTime(i,Howler.ctx.currentTime),a._panner.positionZ.setValueAtTime(r,Howler.ctx.currentTime)):a._panner.setPosition(n,i,r)),u._emit("pos",a._id);else return a._pos}return u},Howl.prototype.orientation=function(n,i,r,s){var u=this;if(!u._webAudio)return u;if(u._state!=="loaded")return u._queue.push({event:"orientation",action:function(){u.orientation(n,i,r,s)}}),u;if(i=typeof i!="number"?u._orientation[1]:i,r=typeof r!="number"?u._orientation[2]:r,typeof s=="undefined")if(typeof n=="number")u._orientation=[n,i,r];else return u._orientation;for(var o=u._getSoundIds(s),c=0;c<o.length;c++){var a=u._soundById(o[c]);if(a)if(typeof n=="number")a._orientation=[n,i,r],a._node&&(a._panner||(a._pos||(a._pos=u._pos||[0,0,-.5]),t(a,"spatial")),typeof a._panner.orientationX!="undefined"?(a._panner.orientationX.setValueAtTime(n,Howler.ctx.currentTime),a._panner.orientationY.setValueAtTime(i,Howler.ctx.currentTime),a._panner.orientationZ.setValueAtTime(r,Howler.ctx.currentTime)):a._panner.setOrientation(n,i,r)),u._emit("orientation",a._id);else return a._orientation}return u},Howl.prototype.pannerAttr=function(){var n=this,i=arguments,r,s,u;if(!n._webAudio)return n;if(i.length===0)return n._pannerAttr;if(i.length===1)if(typeof i[0]=="object")r=i[0],typeof s=="undefined"&&(r.pannerAttr||(r.pannerAttr={coneInnerAngle:r.coneInnerAngle,coneOuterAngle:r.coneOuterAngle,coneOuterGain:r.coneOuterGain,distanceModel:r.distanceModel,maxDistance:r.maxDistance,refDistance:r.refDistance,rolloffFactor:r.rolloffFactor,panningModel:r.panningModel}),n._pannerAttr={coneInnerAngle:typeof r.pannerAttr.coneInnerAngle!="undefined"?r.pannerAttr.coneInnerAngle:n._coneInnerAngle,coneOuterAngle:typeof r.pannerAttr.coneOuterAngle!="undefined"?r.pannerAttr.coneOuterAngle:n._coneOuterAngle,coneOuterGain:typeof r.pannerAttr.coneOuterGain!="undefined"?r.pannerAttr.coneOuterGain:n._coneOuterGain,distanceModel:typeof r.pannerAttr.distanceModel!="undefined"?r.pannerAttr.distanceModel:n._distanceModel,maxDistance:typeof r.pannerAttr.maxDistance!="undefined"?r.pannerAttr.maxDistance:n._maxDistance,refDistance:typeof r.pannerAttr.refDistance!="undefined"?r.pannerAttr.refDistance:n._refDistance,rolloffFactor:typeof r.pannerAttr.rolloffFactor!="undefined"?r.pannerAttr.rolloffFactor:n._rolloffFactor,panningModel:typeof r.pannerAttr.panningModel!="undefined"?r.pannerAttr.panningModel:n._panningModel});else return u=n._soundById(parseInt(i[0],10)),u?u._pannerAttr:n._pannerAttr;else i.length===2&&(r=i[0],s=parseInt(i[1],10));for(var o=n._getSoundIds(s),c=0;c<o.length;c++)if(u=n._soundById(o[c]),u){var a=u._pannerAttr;a={coneInnerAngle:typeof r.coneInnerAngle!="undefined"?r.coneInnerAngle:a.coneInnerAngle,coneOuterAngle:typeof r.coneOuterAngle!="undefined"?r.coneOuterAngle:a.coneOuterAngle,coneOuterGain:typeof r.coneOuterGain!="undefined"?r.coneOuterGain:a.coneOuterGain,distanceModel:typeof r.distanceModel!="undefined"?r.distanceModel:a.distanceModel,maxDistance:typeof r.maxDistance!="undefined"?r.maxDistance:a.maxDistance,refDistance:typeof r.refDistance!="undefined"?r.refDistance:a.refDistance,rolloffFactor:typeof r.rolloffFactor!="undefined"?r.rolloffFactor:a.rolloffFactor,panningModel:typeof r.panningModel!="undefined"?r.panningModel:a.panningModel};var f=u._panner;f?(f.coneInnerAngle=a.coneInnerAngle,f.coneOuterAngle=a.coneOuterAngle,f.coneOuterGain=a.coneOuterGain,f.distanceModel=a.distanceModel,f.maxDistance=a.maxDistance,f.refDistance=a.refDistance,f.rolloffFactor=a.rolloffFactor,f.panningModel=a.panningModel):(u._pos||(u._pos=n._pos||[0,0,-.5]),t(u,"spatial"))}return n},Sound.prototype.init=function(n){return function(){var i=this,r=i._parent;i._orientation=r._orientation,i._stereo=r._stereo,i._pos=r._pos,i._pannerAttr=r._pannerAttr,n.call(this),i._stereo?r.stereo(i._stereo):i._pos&&r.pos(i._pos[0],i._pos[1],i._pos[2],i._id)}}(Sound.prototype.init),Sound.prototype.reset=function(n){return function(){var i=this,r=i._parent;return i._orientation=r._orientation,i._stereo=r._stereo,i._pos=r._pos,i._pannerAttr=r._pannerAttr,i._stereo?r.stereo(i._stereo):i._pos?r.pos(i._pos[0],i._pos[1],i._pos[2],i._id):i._panner&&(i._panner.disconnect(0),i._panner=void 0,r._refreshBuffer(i)),n.call(this)}}(Sound.prototype.reset);var t=function(n,i){i=i||"spatial",i==="spatial"?(n._panner=Howler.ctx.createPanner(),n._panner.coneInnerAngle=n._pannerAttr.coneInnerAngle,n._panner.coneOuterAngle=n._pannerAttr.coneOuterAngle,n._panner.coneOuterGain=n._pannerAttr.coneOuterGain,n._panner.distanceModel=n._pannerAttr.distanceModel,n._panner.maxDistance=n._pannerAttr.maxDistance,n._panner.refDistance=n._pannerAttr.refDistance,n._panner.rolloffFactor=n._pannerAttr.rolloffFactor,n._panner.panningModel=n._pannerAttr.panningModel,typeof n._panner.positionX!="undefined"?(n._panner.positionX.setValueAtTime(n._pos[0],Howler.ctx.currentTime),n._panner.positionY.setValueAtTime(n._pos[1],Howler.ctx.currentTime),n._panner.positionZ.setValueAtTime(n._pos[2],Howler.ctx.currentTime)):n._panner.setPosition(n._pos[0],n._pos[1],n._pos[2]),typeof n._panner.orientationX!="undefined"?(n._panner.orientationX.setValueAtTime(n._orientation[0],Howler.ctx.currentTime),n._panner.orientationY.setValueAtTime(n._orientation[1],Howler.ctx.currentTime),n._panner.orientationZ.setValueAtTime(n._orientation[2],Howler.ctx.currentTime)):n._panner.setOrientation(n._orientation[0],n._orientation[1],n._orientation[2])):(n._panner=Howler.ctx.createStereoPanner(),n._panner.pan.setValueAtTime(n._stereo,Howler.ctx.currentTime)),n._panner.connect(n._node),n._paused||n._parent.pause(n._id,!0).play(n._id,!0)}})()})(ng);function iC({sounds:e,sound:t,delay:n,pitch:i,volume:r,onEdit:s,onDelete:u,delayedPlay:o}){const{locale:c}=rt(),{version:a}=vr(),[f,l]=oe(!0),[h,d]=oe(!1),[g,p]=oe(!1),m=Xe([]),w=`playsound minecraft:${t} master @s ~ ~ ~ ${r} ${i}`;xe(()=>{var C,B,T;const y=e[t];p(((B=(C=y==null?void 0:y.sounds)==null?void 0:C.length)!=null?B:0)===0),m.current.forEach(M=>M.stop()),m.current=((T=y==null?void 0:y.sounds)!=null?T:[]).map(M=>{const R=typeof M=="string"?M:M.name,I=Sw(a,R),H=new ng.Howl({src:[I],format:["ogg"],volume:r,rate:i});H.on("end",()=>{d(!1)});const P=()=>{f&&m.current.every(j=>j.state()==="loaded")&&l(!1)};return H.state()==="loaded"?setTimeout(()=>P()):H.on("load",()=>{P()}),H}),l(!0)},[t,e]),xe(()=>{m.current.forEach(y=>y.rate(i))},[i]),xe(()=>{m.current.forEach(y=>y.volume(r))},[r]);const v=()=>{if(f||g)return;A();const y=Math.floor(Math.random()*m.current.length);m.current[y].play(),d(!0)},A=()=>{m.current.forEach(y=>y.stop())};xe(()=>{o&&setTimeout(()=>v(),n*50)},[o]),xe(()=>()=>A(),[]);const[_,E]=oe(!1),b=Xe(void 0),x=()=>{navigator.clipboard.writeText(w),E(!0),b.current!==void 0&&clearTimeout(b.current),b.current=setTimeout(()=>{E(!1)},2e3)};return S("div",{class:`sound-config${f?" loading":h?" playing":""}${g?" invalid":""}`},S(Ee,{class:"play",icon:g?"alert":f?"sync":"play",label:c("sounds.play"),onClick:v,tooltip:c(g?"sounds.unknown_sound":f?"sounds.loading_sound":"sounds.play_sound"),tooltipLoc:"se"}),S(Ei,{class:"btn btn-input sound",list:"sound-list",spellcheck:!1,value:t,onChange:y=>s({sound:y})}),S("label",{class:"delay-label"},c("sounds.delay"),": "),S(ww,{class:"btn btn-input delay",min:0,value:n,onChange:y=>s({delay:y})}),S("label",{class:"pitch-label"},c("sounds.pitch"),": "),S(gu,{class:"pitch tooltipped tip-s",min:.5,max:2,step:.01,"aria-label":i.toFixed(2),style:`--x: ${(i-.5)*(100/1.5)}%`,value:i,onChange:y=>s({pitch:y})}),S("label",{class:"volume-label"},c("sounds.volume"),": "),S(gu,{class:"volume tooltipped tip-s",min:0,max:1,step:.01,"aria-label":r.toFixed(2),style:`--x: ${r*100}%`,value:r,onChange:y=>s({volume:y})}),S(Ee,{class:`copy${_?" active":""}`,icon:_?"check":"terminal",label:c("copy"),tooltip:c(_?"copied":"sounds.copy_command"),onClick:x}),S(Ee,{class:"remove",icon:"trashcan",tooltip:c("sounds.remove_sound"),onClick:()=>{u(),A()}}))}function jt({title:e,desc:t,link:n,icon:i,children:r}){const s=S(De,null,S("div",{class:"tool-head"},i&&tg[i],S("div",null,S("h3",null,e),S("p",null,t))),r&&S("div",{class:"tool-body"},r));return n?S("a",{class:"tool-card",href:n},s):S("div",{class:"tool-card"},s)}const Af="/";function ig({entries:e,onSelect:t,indent:n}){const i=Qe(()=>{var a;const c={};for(const f of e){const l=f.indexOf(Af);if(l>=0){const h=f.slice(0,l);((a=c[h])!=null?a:c[h]=[]).push(f.slice(l+1))}}return Object.entries(c)},e),r=Qe(()=>e.filter(c=>!c.includes(Af)),e),[s,u]=oe(new Set),o=c=>{s.has(c)?s.delete(c):s.add(c),u(new Set(s))};return S("div",{class:"tree-view",style:`--indent: ${n!=null?n:0};`},i.map(([c,a])=>S("div",null,S(yf,{icon:s.has(c)?"chevron_right":"chevron_down",key:c,label:c,onClick:()=>o(c)}),!s.has(c)&&S(ig,{entries:a,onSelect:f=>t(`${c}/${f}`),indent:(n!=null?n:0)+1}))),r.map(c=>S(yf,{icon:"file",key:c,label:c,onClick:()=>t(c)})))}function yf({icon:e,label:t,onClick:n}){return S("div",{class:"entry",onClick:n},$e[e],t)}function Ef({category:e}){const{locale:t}=rt();return on(t("title.generator_category",t(e))),S("main",null,S("div",{class:"category"},He.generators.filter(n=>n.category===e).map(n=>S(jt,{title:t(n.id),link:Nn(n.url)}))))}function rC({}){const{locale:e}=rt(),[t,n]=oe(null);on(e("title.changelog"));const[i,r]=oe([]);return xe(()=>{Vd().then(s=>r(s)).catch(s=>{console.error(s),n(s)})},[]),S("main",null,S(ps,{type:"text",id:"changelog"}),t&&S(Xi,{error:t,onDismiss:()=>n(null)}),S("div",{class:"changelog"},S(Qp,{changes:i,defaultOrder:"desc"})))}function sC({}){var Ne;const{locale:e}=rt(),{version:t,changeVersion:n,changeTargetVersion:i}=vr(),{project:r,file:s,updateFile:u,openFile:o,closeFile:c}=i0(),[a,f]=oe(null),[l,h]=Yf();if(l)return l.message=`Something went wrong rendering the generator: ${l.message}`,S("main",null,S(Xi,{error:l,onDismiss:h}));const d=Ud(er());if(!d)return S("main",null,S(Xi,{error:`Cannot find generator "${er()}"`}));const g=Qe(()=>He.versions.filter(de=>Mt(de.id,d.minVersion,d.maxVersion)).map(de=>de.id).reverse(),[d.minVersion,d.maxVersion]);on(e("title.generator",e(d.id)),g),Mt(t,d.minVersion)||f(`The minimum version for this generator is ${d.minVersion}`),Mt(t,void 0,d.maxVersion)||f(`This generator is not available in versions above ${d.maxVersion}`);const[p,m]=Gr("preset"),[w,v]=Gr(Za),A=Xe(!1);xe(()=>{x&&p?le(p).then(de=>{A.current=!0,x.reset(ae.DataModel.wrapLists(de),!1),v(void 0)}):x&&w&&Au(w).then(de=>_(x,de))},[p,w]);const _=(de,Ke)=>{if(Ke.version&&Ke.version!==t&&n(Ke.version,!1),Ke.type&&Ke.type!==d.id){const ui=He.generators.find(Y=>Y.id===Ke.type);ui&&ri(`${Nn(ui.url)}?${Za}=${Ke.id}`)}Ke.show_preview&&!q&&(ke(!0),Te(!1)),de.reset(ae.DataModel.wrapLists(Ke.data),!1)},E=Qe(()=>_t.getBackup(d.id),[d.id]),b=()=>{E!==void 0&&(x==null||x.reset(ae.DataModel.wrapLists(E),!1))},[x,y]=oe(null),[C,B]=oe(null);xe(()=>{f(null),y(null),Rw(t).then(de=>B(de)),$w(t,d.id).then(async de=>{if(lt.setGenerator(d.id),p){const Ke=await le(p);de.reset(ae.DataModel.wrapLists(Ke),!1)}else if(w){const Ke=await Au(w);_(de,Ke)}y(de)}).catch(de=>{console.error(de),f(de)})},[t,d.id]);const[T,M]=oe(!1);Mo(x,()=>{A.current||(m(void 0,!0),v(void 0,!0)),A.current=!1,_t.setBackup(d.id,ae.DataModel.unwrapLists(x==null?void 0:x.data)),f(null),M(!0)},[d.id,m,v]);const[R,I]=oe(""),[H,P]=Cr(),[j,V]=Cr(),K=()=>{if(R!==(s==null?void 0:s.id)&&R&&x&&C){const de=to(x,C);u(d.id,s==null?void 0:s.id,{id:R,data:de})?P():(V(),s&&I(s==null?void 0:s.id))}else s&&I(s==null?void 0:s.id)},N=()=>{s&&u(d.id,s.id,{})};xe(()=>{s&&I(s.id)},[s]),xe(()=>{var de;x&&(I((de=s==null?void 0:s.id)!=null?de:""),s&&d.id===s.type&&x.reset(ae.DataModel.wrapLists(s.data)),M(!1))},[s,x]);const k=()=>{lt.generatorEvent("reset"),x==null||x.reset(ae.DataModel.wrapLists(x.schema.default()),!0)},$=de=>{de.stopPropagation(),lt.generatorEvent("undo","Menu"),x==null||x.undo()},z=de=>{de.stopPropagation(),lt.generatorEvent("redo","Menu"),x==null||x.redo()},U=de=>{de.ctrlKey&&de.key==="z"?(lt.generatorEvent("undo","Hotkey"),x==null||x.undo()):de.ctrlKey&&de.key==="y"&&(lt.generatorEvent("redo","Hotkey"),x==null||x.redo())},G=de=>{if(de.ctrlKey&&de.key==="s"&&(de.preventDefault(),x&&C&&s)){lt.generatorEvent("save","Hotkey");const Ke=to(x,C);u(d.id,s==null?void 0:s.id,{id:s==null?void 0:s.id,data:Ke}),M(!1),P()}};xe(()=>(document.addEventListener("keyup",U),document.addEventListener("keydown",G),()=>{document.removeEventListener("keyup",U),document.removeEventListener("keydown",G)}),[x,C,s]);const[Q,X]=oe([]);xe(()=>{Mw(t).then(de=>{X(de.get(d.id).map(Ke=>Ke.slice(10)))}).catch(de=>{console.error(de),f(de)})},[t,d.id]);const te=de=>{lt.generatorEvent("load-preset",de),v(void 0,!0),i(t,!0),m(de)},le=async de=>{var Ke,ui,Y;try{const Z=await Kd(t,(Ke=d.path)!=null?Ke:d.id,de),ne=x==null?void 0:x.get(new ae.Path(["generator","seed"]));return((ui=Z==null?void 0:Z.generator)==null?void 0:ui.seed)!==void 0&&ne!==void 0&&(Z.generator.seed=ne,((Y=Z.generator.biome_source)==null?void 0:Y.seed)!==void 0&&(Z.generator.biome_source.seed=ne)),Z}catch{f(`Cannot load preset ${de} in ${t}`),m(void 0,!0)}},ye=de=>{v(void 0,!0),n(de)},[ve,ee]=oe(void 0),[ce,he]=oe(!1),[je,Ve]=Cr({cooldown:3e3}),ge=()=>{if(ce){he(!1);return}if(p)ee(`${location.origin}/${d.url}/?version=${t}&preset=${p}`),he(!0),Tt();else if(x&&C){const de=to(x,C);yi(de,x.schema.default())?(ee(`${location.origin}/${d.url}/?version=${t}`),he(!0)):Ow(d.id,t,de,q).then(Ke=>{ee(Ke),he(!0)}).catch(Ke=>{Ke instanceof Error&&f(Ke)})}},Tt=()=>{navigator.clipboard.writeText(ve!=null?ve:""),Ve()};xe(()=>{je||(ee(void 0),he(!1))},[je]);const[Re,Te]=oe(window.innerWidth>820),[bt,ue]=oe(0),[Ft,ln]=oe(0),[re,me]=oe(0),L=()=>{lt.generatorEvent("copy"),ue(bt+1)},F=()=>{lt.generatorEvent("download"),ln(Ft+1)},D=()=>{lt.generatorEvent("import"),Te(!0),me(re+1)},O=()=>{lt.generatorEvent("toggle-output",Re?"hidden":"visible"),Te(!Re),ue(0),ln(0),me(0)},[W,J]=Cr(),[q,ke]=oe(!1),Ge=X2.includes(d.id)&&!(d.id==="worldgen/configured_feature"&&Mt(t,"1.18"));q&&!Ge&&ke(!1);let We=2;Ge&&(We+=1),Re&&(We+=2);const Ze=()=>{lt.generatorEvent("toggle-preview",q?"hidden":"visible"),ke(!q),!q&&Re&&Te(!1)};return S(De,null,S("main",{class:q?"has-preview":""},S(ps,{id:"data-pack-generator",type:"text"}),S("div",{class:"controls"},S("div",{class:`project-controls ${s&&"has-file"}`},S("div",{class:"btn-row"},S($t,{icon:"repo",label:r.name,relative:!1},S(Ee,{icon:"arrow_left",label:e("project.go_to"),onClick:()=>ri("/project")}),s&&S(Ee,{icon:"file",label:e("project.new_file"),onClick:c}),E!==void 0&&S(Ee,{icon:"history",label:e("restore_backup"),onClick:b}),S(mu,{searchPlaceholder:e(r.name==="Drafts"?"project.search_drafts":"project.search"),noResults:e("project.no_files"),values:r.files.filter(de=>de.type===d.id).map(de=>de.id),onSelect:de=>o(d.id,de)})),S(Ei,{class:"btn btn-input",placeholder:e("project.unsaved_file"),value:R,onChange:I,onEnter:K,onBlur:K}),s&&S(Ee,{icon:"trashcan",tooltip:e("project.delete_file"),onClick:N})),T?S("div",{class:"status-icon"},$e.dot_fill):H?S("div",{class:"status-icon active"},$e.check):j&&S("div",{class:"status-icon danger"},$e.x)),S("div",{class:"generator-controls"},S(Ee,{icon:"upload",label:e("import"),onClick:D}),S($t,{icon:"archive",label:e("presets"),relative:!1},S(mu,{searchPlaceholder:e("search"),noResults:e("no_presets"),values:Q,onSelect:te})),S($t,{icon:"tag",label:t,tooltip:e("switch_version"),"data-cy":"version-switcher"},g.map(de=>S(Ee,{label:de,active:de===t,onClick:()=>ye(de)}))),S($t,{icon:"kebab_horizontal",tooltip:e("more")},S(Ee,{icon:"history",label:e("reset"),onClick:k}),S(Ee,{icon:"arrow_left",label:e("undo"),onClick:$}),S(Ee,{icon:"arrow_right",label:e("redo"),onClick:z})))),a&&S(Xi,{error:a,onDismiss:()=>f(null)}),S(Cx,{model:x,version:t,blockStates:C,onError:f})),S("div",{class:"popup-actions",style:`--offset: -${8+We*50}px;`},S("div",{class:`popup-action action-preview${Ge?" shown":""} tooltipped tip-nw`,"aria-label":e(q?"hide_preview":"show_preview"),onClick:Ze},q?$e.x_circle:$e.play),S("div",{class:"popup-action action-share shown tooltipped tip-nw","aria-label":e("share"),onClick:ge},$e.link),S("div",{class:`popup-action action-download${Re?" shown":""} tooltipped tip-nw`,"aria-label":e("download"),onClick:F},$e.download),S("div",{class:`popup-action action-copy${Re?" shown":""}${W?" active":""} tooltipped tip-nw`,"aria-label":e(W?"copied":"copy"),onClick:L},W?$e.check:$e.clippy),S("div",{class:"popup-action action-code shown tooltipped tip-nw","aria-label":e(Re?"hide_output":"show_output"),onClick:O},Re?$e.chevron_right:$e.code)),S("div",{class:`popup-preview${q?" shown":""}`},S(J2,{model:x,version:t,id:d.id,shown:q,onError:f})),S("div",{class:`popup-source${Re?" shown":""}`},S(zb,{model:x,blockStates:C,doCopy:bt,doDownload:Ft,doImport:re,name:(Ne=d.schema)!=null?Ne:"data",copySuccess:J,onError:f})),S("div",{class:`popup-share${ce?" shown":""}`},S(Ei,{value:ve,readonly:!0}),S(Ee,{icon:je?"check":"clippy",onClick:Tt,tooltip:e(je?"copied":"copy_share"),tooltipLoc:"nw",active:je,showTooltip:je})))}var Cc={exports:{}};function Fc(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(function(t){var n=e[t];typeof n=="object"&&!Object.isFrozen(n)&&Fc(n)}),e}Cc.exports=Fc;Cc.exports.default=Fc;var oC=Cc.exports;class bf{constructor(t){t.data===void 0&&(t.data={}),this.data=t.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function rg(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function qn(e,...t){const n=Object.create(null);for(const i in e)n[i]=e[i];return t.forEach(function(i){for(const r in i)n[r]=i[r]}),n}const aC="</span>",xf=e=>!!e.kind,lC=(e,{prefix:t})=>{if(e.includes(".")){const n=e.split(".");return[`${t}${n.shift()}`,...n.map((i,r)=>`${i}${"_".repeat(r+1)}`)].join(" ")}return`${t}${e}`};class cC{constructor(t,n){this.buffer="",this.classPrefix=n.classPrefix,t.walk(this)}addText(t){this.buffer+=rg(t)}openNode(t){if(!xf(t))return;let n=t.kind;t.sublanguage?n=`language-${n}`:n=lC(n,{prefix:this.classPrefix}),this.span(n)}closeNode(t){!xf(t)||(this.buffer+=aC)}value(){return this.buffer}span(t){this.buffer+=`<span class="${t}">`}}class Sc{constructor(){this.rootNode={children:[]},this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(t){this.top.children.push(t)}openNode(t){const n={kind:t,children:[]};this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(t){return this.constructor._walk(t,this.rootNode)}static _walk(t,n){return typeof n=="string"?t.addText(n):n.children&&(t.openNode(n),n.children.forEach(i=>this._walk(t,i)),t.closeNode(n)),t}static _collapse(t){typeof t!="string"&&(!t.children||(t.children.every(n=>typeof n=="string")?t.children=[t.children.join("")]:t.children.forEach(n=>{Sc._collapse(n)})))}}class uC extends Sc{constructor(t){super(),this.options=t}addKeyword(t,n){t!==""&&(this.openNode(n),this.addText(t),this.closeNode())}addText(t){t!==""&&this.add(t)}addSublanguage(t,n){const i=t.root;i.kind=n,i.sublanguage=!0,this.add(i)}toHTML(){return new cC(this,this.options).value()}finalize(){return!0}}function hs(e){return e?typeof e=="string"?e:e.source:null}function sg(e){return Bi("(?=",e,")")}function hC(e){return Bi("(?:",e,")*")}function fC(e){return Bi("(?:",e,")?")}function Bi(...e){return e.map(n=>hs(n)).join("")}function dC(e){const t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function Dc(...e){const t=dC(e);return"("+(t.capture?"":"?:")+e.map(i=>hs(i)).join("|")+")"}function og(e){return new RegExp(e.toString()+"|").exec("").length-1}function pC(e,t){const n=e&&e.exec(t);return n&&n.index===0}const gC=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function kc(e,{joinWith:t}){let n=0;return e.map(i=>{n+=1;const r=n;let s=hs(i),u="";for(;s.length>0;){const o=gC.exec(s);if(!o){u+=s;break}u+=s.substring(0,o.index),s=s.substring(o.index+o[0].length),o[0][0]==="\\"&&o[1]?u+="\\"+String(Number(o[1])+r):(u+=o[0],o[0]==="("&&n++)}return u}).map(i=>`(${i})`).join(t)}const mC=/\b\B/,ag="[a-zA-Z]\\w*",Bc="[a-zA-Z_]\\w*",lg="\\b\\d+(\\.\\d+)?",cg="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",ug="\\b(0b[01]+)",vC="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",wC=(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=Bi(t,/.*\b/,e.binary,/\b.*/)),qn({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(n,i)=>{n.index!==0&&i.ignoreMatch()}},e)},fs={begin:"\\\\[\\s\\S]",relevance:0},_C={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[fs]},AC={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[fs]},yC={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},Jo=function(e,t,n={}){const i=qn({scope:"comment",begin:e,end:t,contains:[]},n);i.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const r=Dc("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return i.contains.push({begin:Bi(/[ ]+/,"(",r,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),i},EC=Jo("//","$"),bC=Jo("/\\*","\\*/"),xC=Jo("#","$"),CC={scope:"number",begin:lg,relevance:0},FC={scope:"number",begin:cg,relevance:0},SC={scope:"number",begin:ug,relevance:0},DC={begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[fs,{begin:/\[/,end:/\]/,relevance:0,contains:[fs]}]}]},kC={scope:"title",begin:ag,relevance:0},BC={scope:"title",begin:Bc,relevance:0},TC={begin:"\\.\\s*"+Bc,relevance:0},LC=function(e){return Object.assign(e,{"on:begin":(t,n)=>{n.data._beginMatch=t[1]},"on:end":(t,n)=>{n.data._beginMatch!==t[1]&&n.ignoreMatch()}})};var zs=Object.freeze({__proto__:null,MATCH_NOTHING_RE:mC,IDENT_RE:ag,UNDERSCORE_IDENT_RE:Bc,NUMBER_RE:lg,C_NUMBER_RE:cg,BINARY_NUMBER_RE:ug,RE_STARTERS_RE:vC,SHEBANG:wC,BACKSLASH_ESCAPE:fs,APOS_STRING_MODE:_C,QUOTE_STRING_MODE:AC,PHRASAL_WORDS_MODE:yC,COMMENT:Jo,C_LINE_COMMENT_MODE:EC,C_BLOCK_COMMENT_MODE:bC,HASH_COMMENT_MODE:xC,NUMBER_MODE:CC,C_NUMBER_MODE:FC,BINARY_NUMBER_MODE:SC,REGEXP_MODE:DC,TITLE_MODE:kC,UNDERSCORE_TITLE_MODE:BC,METHOD_GUARD:TC,END_SAME_AS_BEGIN:LC});function $C(e,t){e.input[e.index-1]==="."&&t.ignoreMatch()}function MC(e,t){e.className!==void 0&&(e.scope=e.className,delete e.className)}function RC(e,t){!t||!e.beginKeywords||(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=$C,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function IC(e,t){!Array.isArray(e.illegal)||(e.illegal=Dc(...e.illegal))}function OC(e,t){if(!!e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function NC(e,t){e.relevance===void 0&&(e.relevance=1)}const PC=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const n=Object.assign({},e);Object.keys(e).forEach(i=>{delete e[i]}),e.keywords=n.keywords,e.begin=Bi(n.beforeMatch,sg(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},zC=["of","and","for","in","not","or","if","then","parent","list","value"],UC="keyword";function hg(e,t,n=UC){const i=Object.create(null);return typeof e=="string"?r(n,e.split(" ")):Array.isArray(e)?r(n,e):Object.keys(e).forEach(function(s){Object.assign(i,hg(e[s],t,s))}),i;function r(s,u){t&&(u=u.map(o=>o.toLowerCase())),u.forEach(function(o){const c=o.split("|");i[c[0]]=[s,HC(c[0],c[1])]})}}function HC(e,t){return t?Number(t):jC(e)?0:1}function jC(e){return zC.includes(e.toLowerCase())}const Cf={},_i=e=>{console.error(e)},Ff=(e,...t)=>{console.log(`WARN: ${e}`,...t)},Ui=(e,t)=>{Cf[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),Cf[`${e}/${t}`]=!0)},xo=new Error;function fg(e,t,{key:n}){let i=0;const r=e[n],s={},u={};for(let o=1;o<=t.length;o++)u[o+i]=r[o],s[o+i]=!0,i+=og(t[o-1]);e[n]=u,e[n]._emit=s,e[n]._multi=!0}function WC(e){if(!!Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw _i("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),xo;if(typeof e.beginScope!="object"||e.beginScope===null)throw _i("beginScope must be object"),xo;fg(e,e.begin,{key:"beginScope"}),e.begin=kc(e.begin,{joinWith:""})}}function VC(e){if(!!Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw _i("skip, excludeEnd, returnEnd not compatible with endScope: {}"),xo;if(typeof e.endScope!="object"||e.endScope===null)throw _i("endScope must be object"),xo;fg(e,e.end,{key:"endScope"}),e.end=kc(e.end,{joinWith:""})}}function GC(e){e.scope&&typeof e.scope=="object"&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function KC(e){GC(e),typeof e.beginScope=="string"&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope=="string"&&(e.endScope={_wrap:e.endScope}),WC(e),VC(e)}function XC(e){function t(u,o){return new RegExp(hs(u),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(o?"g":""))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(o,c){c.position=this.position++,this.matchIndexes[this.matchAt]=c,this.regexes.push([c,o]),this.matchAt+=og(o)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const o=this.regexes.map(c=>c[1]);this.matcherRe=t(kc(o,{joinWith:"|"}),!0),this.lastIndex=0}exec(o){this.matcherRe.lastIndex=this.lastIndex;const c=this.matcherRe.exec(o);if(!c)return null;const a=c.findIndex((l,h)=>h>0&&l!==void 0),f=this.matchIndexes[a];return c.splice(0,a),Object.assign(c,f)}}class i{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(o){if(this.multiRegexes[o])return this.multiRegexes[o];const c=new n;return this.rules.slice(o).forEach(([a,f])=>c.addRule(a,f)),c.compile(),this.multiRegexes[o]=c,c}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(o,c){this.rules.push([o,c]),c.type==="begin"&&this.count++}exec(o){const c=this.getMatcher(this.regexIndex);c.lastIndex=this.lastIndex;let a=c.exec(o);if(this.resumingScanAtSamePosition()&&!(a&&a.index===this.lastIndex)){const f=this.getMatcher(0);f.lastIndex=this.lastIndex+1,a=f.exec(o)}return a&&(this.regexIndex+=a.position+1,this.regexIndex===this.count&&this.considerAll()),a}}function r(u){const o=new i;return u.contains.forEach(c=>o.addRule(c.begin,{rule:c,type:"begin"})),u.terminatorEnd&&o.addRule(u.terminatorEnd,{type:"end"}),u.illegal&&o.addRule(u.illegal,{type:"illegal"}),o}function s(u,o){const c=u;if(u.isCompiled)return c;[MC,OC,KC,PC].forEach(f=>f(u,o)),e.compilerExtensions.forEach(f=>f(u,o)),u.__beforeBegin=null,[RC,IC,NC].forEach(f=>f(u,o)),u.isCompiled=!0;let a=null;return typeof u.keywords=="object"&&u.keywords.$pattern&&(u.keywords=Object.assign({},u.keywords),a=u.keywords.$pattern,delete u.keywords.$pattern),a=a||/\w+/,u.keywords&&(u.keywords=hg(u.keywords,e.case_insensitive)),c.keywordPatternRe=t(a,!0),o&&(u.begin||(u.begin=/\B|\b/),c.beginRe=t(c.begin),!u.end&&!u.endsWithParent&&(u.end=/\B|\b/),u.end&&(c.endRe=t(c.end)),c.terminatorEnd=hs(c.end)||"",u.endsWithParent&&o.terminatorEnd&&(c.terminatorEnd+=(u.end?"|":"")+o.terminatorEnd)),u.illegal&&(c.illegalRe=t(u.illegal)),u.contains||(u.contains=[]),u.contains=[].concat(...u.contains.map(function(f){return JC(f==="self"?u:f)})),u.contains.forEach(function(f){s(f,c)}),u.starts&&s(u.starts,o),c.matcher=r(c),c}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=qn(e.classNameAliases||{}),s(e)}function dg(e){return e?e.endsWithParent||dg(e.starts):!1}function JC(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return qn(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:dg(e)?qn(e,{starts:e.starts?qn(e.starts):null}):Object.isFrozen(e)?qn(e):e}var YC="11.5.1";class ZC extends Error{constructor(t,n){super(t),this.name="HTMLInjectionError",this.html=n}}const za=rg,Sf=qn,Df=Symbol("nomatch"),qC=7,QC=function(e){const t=Object.create(null),n=Object.create(null),i=[];let r=!0;const s="Could not find the language '{}', did you forget to load/include a language module?",u={disableAutodetect:!0,name:"Plain text",contains:[]};let o={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:uC};function c(P){return o.noHighlightRe.test(P)}function a(P){let j=P.className+" ";j+=P.parentNode?P.parentNode.className:"";const V=o.languageDetectRe.exec(j);if(V){const K=C(V[1]);return K||(Ff(s.replace("{}",V[1])),Ff("Falling back to no-highlight mode for this block.",P)),K?V[1]:"no-highlight"}return j.split(/\s+/).find(K=>c(K)||C(K))}function f(P,j,V){let K="",N="";typeof j=="object"?(K=P,V=j.ignoreIllegals,N=j.language):(Ui("10.7.0","highlight(lang, code, ...args) has been deprecated."),Ui("10.7.0",`Please use highlight(code, options) instead. -https://github.com/highlightjs/highlight.js/issues/2277`),N=P,K=j),V===void 0&&(V=!0);const k={code:K,language:N};I("before:highlight",k);const $=k.result?k.result:l(k.language,k.code,V);return $.code=k.code,I("after:highlight",$),$}function l(P,j,V,K){const N=Object.create(null);function k(re,me){return re.keywords[me]}function $(){if(!ge.keywords){Re.addText(Te);return}let re=0;ge.keywordPatternRe.lastIndex=0;let me=ge.keywordPatternRe.exec(Te),L="";for(;me;){L+=Te.substring(re,me.index);const F=he.case_insensitive?me[0].toLowerCase():me[0],D=k(ge,F);if(D){const[O,W]=D;if(Re.addText(L),L="",N[F]=(N[F]||0)+1,N[F]<=qC&&(bt+=W),O.startsWith("_"))L+=me[0];else{const J=he.classNameAliases[O]||O;Re.addKeyword(me[0],J)}}else L+=me[0];re=ge.keywordPatternRe.lastIndex,me=ge.keywordPatternRe.exec(Te)}L+=Te.substr(re),Re.addText(L)}function z(){if(Te==="")return;let re=null;if(typeof ge.subLanguage=="string"){if(!t[ge.subLanguage]){Re.addText(Te);return}re=l(ge.subLanguage,Te,!0,Tt[ge.subLanguage]),Tt[ge.subLanguage]=re._top}else re=d(Te,ge.subLanguage.length?ge.subLanguage:null);ge.relevance>0&&(bt+=re.relevance),Re.addSublanguage(re._emitter,re.language)}function U(){ge.subLanguage!=null?z():$(),Te=""}function G(re,me){let L=1;const F=me.length-1;for(;L<=F;){if(!re._emit[L]){L++;continue}const D=he.classNameAliases[re[L]]||re[L],O=me[L];D?Re.addKeyword(O,D):(Te=O,$(),Te=""),L++}}function Q(re,me){return re.scope&&typeof re.scope=="string"&&Re.openNode(he.classNameAliases[re.scope]||re.scope),re.beginScope&&(re.beginScope._wrap?(Re.addKeyword(Te,he.classNameAliases[re.beginScope._wrap]||re.beginScope._wrap),Te=""):re.beginScope._multi&&(G(re.beginScope,me),Te="")),ge=Object.create(re,{parent:{value:ge}}),ge}function X(re,me,L){let F=pC(re.endRe,L);if(F){if(re["on:end"]){const D=new bf(re);re["on:end"](me,D),D.isMatchIgnored&&(F=!1)}if(F){for(;re.endsParent&&re.parent;)re=re.parent;return re}}if(re.endsWithParent)return X(re.parent,me,L)}function te(re){return ge.matcher.regexIndex===0?(Te+=re[0],1):(ln=!0,0)}function le(re){const me=re[0],L=re.rule,F=new bf(L),D=[L.__beforeBegin,L["on:begin"]];for(const O of D)if(!!O&&(O(re,F),F.isMatchIgnored))return te(me);return L.skip?Te+=me:(L.excludeBegin&&(Te+=me),U(),!L.returnBegin&&!L.excludeBegin&&(Te=me)),Q(L,re),L.returnBegin?0:me.length}function ye(re){const me=re[0],L=j.substr(re.index),F=X(ge,re,L);if(!F)return Df;const D=ge;ge.endScope&&ge.endScope._wrap?(U(),Re.addKeyword(me,ge.endScope._wrap)):ge.endScope&&ge.endScope._multi?(U(),G(ge.endScope,re)):D.skip?Te+=me:(D.returnEnd||D.excludeEnd||(Te+=me),U(),D.excludeEnd&&(Te=me));do ge.scope&&Re.closeNode(),!ge.skip&&!ge.subLanguage&&(bt+=ge.relevance),ge=ge.parent;while(ge!==F.parent);return F.starts&&Q(F.starts,re),D.returnEnd?0:me.length}function ve(){const re=[];for(let me=ge;me!==he;me=me.parent)me.scope&&re.unshift(me.scope);re.forEach(me=>Re.openNode(me))}let ee={};function ce(re,me){const L=me&&me[0];if(Te+=re,L==null)return U(),0;if(ee.type==="begin"&&me.type==="end"&&ee.index===me.index&&L===""){if(Te+=j.slice(me.index,me.index+1),!r){const F=new Error(`0 width match regex (${P})`);throw F.languageName=P,F.badRule=ee.rule,F}return 1}if(ee=me,me.type==="begin")return le(me);if(me.type==="illegal"&&!V){const F=new Error('Illegal lexeme "'+L+'" for mode "'+(ge.scope||"<unnamed>")+'"');throw F.mode=ge,F}else if(me.type==="end"){const F=ye(me);if(F!==Df)return F}if(me.type==="illegal"&&L==="")return 1;if(Ft>1e5&&Ft>me.index*3)throw new Error("potential infinite loop, way more iterations than matches");return Te+=L,L.length}const he=C(P);if(!he)throw _i(s.replace("{}",P)),new Error('Unknown language: "'+P+'"');const je=XC(he);let Ve="",ge=K||je;const Tt={},Re=new o.__emitter(o);ve();let Te="",bt=0,ue=0,Ft=0,ln=!1;try{for(ge.matcher.considerAll();;){Ft++,ln?ln=!1:ge.matcher.considerAll(),ge.matcher.lastIndex=ue;const re=ge.matcher.exec(j);if(!re)break;const me=j.substring(ue,re.index),L=ce(me,re);ue=re.index+L}return ce(j.substr(ue)),Re.closeAllNodes(),Re.finalize(),Ve=Re.toHTML(),{language:P,value:Ve,relevance:bt,illegal:!1,_emitter:Re,_top:ge}}catch(re){if(re.message&&re.message.includes("Illegal"))return{language:P,value:za(j),illegal:!0,relevance:0,_illegalBy:{message:re.message,index:ue,context:j.slice(ue-100,ue+100),mode:re.mode,resultSoFar:Ve},_emitter:Re};if(r)return{language:P,value:za(j),illegal:!1,relevance:0,errorRaised:re,_emitter:Re,_top:ge};throw re}}function h(P){const j={value:za(P),illegal:!1,relevance:0,_top:u,_emitter:new o.__emitter(o)};return j._emitter.addText(P),j}function d(P,j){j=j||o.languages||Object.keys(t);const V=h(P),K=j.filter(C).filter(T).map(U=>l(U,P,!1));K.unshift(V);const N=K.sort((U,G)=>{if(U.relevance!==G.relevance)return G.relevance-U.relevance;if(U.language&&G.language){if(C(U.language).supersetOf===G.language)return 1;if(C(G.language).supersetOf===U.language)return-1}return 0}),[k,$]=N,z=k;return z.secondBest=$,z}function g(P,j,V){const K=j&&n[j]||V;P.classList.add("hljs"),P.classList.add(`language-${K}`)}function p(P){let j=null;const V=a(P);if(c(V))return;if(I("before:highlightElement",{el:P,language:V}),P.children.length>0&&(o.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(P)),o.throwUnescapedHTML))throw new ZC("One of your code blocks includes unescaped HTML.",P.innerHTML);j=P;const K=j.textContent,N=V?f(K,{language:V,ignoreIllegals:!0}):d(K);P.innerHTML=N.value,g(P,V,N.language),P.result={language:N.language,re:N.relevance,relevance:N.relevance},N.secondBest&&(P.secondBest={language:N.secondBest.language,relevance:N.secondBest.relevance}),I("after:highlightElement",{el:P,result:N,text:K})}function m(P){o=Sf(o,P)}const w=()=>{_(),Ui("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function v(){_(),Ui("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let A=!1;function _(){if(document.readyState==="loading"){A=!0;return}document.querySelectorAll(o.cssSelector).forEach(p)}function E(){A&&_()}typeof window!="undefined"&&window.addEventListener&&window.addEventListener("DOMContentLoaded",E,!1);function b(P,j){let V=null;try{V=j(e)}catch(K){if(_i("Language definition for '{}' could not be registered.".replace("{}",P)),r)_i(K);else throw K;V=u}V.name||(V.name=P),t[P]=V,V.rawDefinition=j.bind(null,e),V.aliases&&B(V.aliases,{languageName:P})}function x(P){delete t[P];for(const j of Object.keys(n))n[j]===P&&delete n[j]}function y(){return Object.keys(t)}function C(P){return P=(P||"").toLowerCase(),t[P]||t[n[P]]}function B(P,{languageName:j}){typeof P=="string"&&(P=[P]),P.forEach(V=>{n[V.toLowerCase()]=j})}function T(P){const j=C(P);return j&&!j.disableAutodetect}function M(P){P["before:highlightBlock"]&&!P["before:highlightElement"]&&(P["before:highlightElement"]=j=>{P["before:highlightBlock"](Object.assign({block:j.el},j))}),P["after:highlightBlock"]&&!P["after:highlightElement"]&&(P["after:highlightElement"]=j=>{P["after:highlightBlock"](Object.assign({block:j.el},j))})}function R(P){M(P),i.push(P)}function I(P,j){const V=P;i.forEach(function(K){K[V]&&K[V](j)})}function H(P){return Ui("10.7.0","highlightBlock will be removed entirely in v12.0"),Ui("10.7.0","Please use highlightElement now."),p(P)}Object.assign(e,{highlight:f,highlightAuto:d,highlightAll:_,highlightElement:p,highlightBlock:H,configure:m,initHighlighting:w,initHighlightingOnLoad:v,registerLanguage:b,unregisterLanguage:x,listLanguages:y,getLanguage:C,registerAliases:B,autoDetection:T,inherit:Sf,addPlugin:R}),e.debugMode=function(){r=!1},e.safeMode=function(){r=!0},e.versionString=YC,e.regex={concat:Bi,lookahead:sg,either:Dc,optional:fC,anyNumberOfTimes:hC};for(const P in zs)typeof zs[P]=="object"&&oC(zs[P]);return Object.assign(e,zs),e};var ds=QC({}),eF=ds;ds.HighlightJS=ds;ds.default=ds;var pg=eF;function tF(e){const t={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},n={match:/[{}[\],:]/,className:"punctuation",relevance:0},i={beginKeywords:["true","false","null"].join(" ")};return{name:"JSON",contains:[t,n,e.QUOTE_STRING_MODE,i,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}const nF='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M6.368 1.01a.75.75 0 01.623.859L6.57 4.5h3.98l.46-2.868a.75.75 0 011.48.237L12.07 4.5h2.18a.75.75 0 010 1.5h-2.42l-.64 4h2.56a.75.75 0 010 1.5h-2.8l-.46 2.869a.75.75 0 01-1.48-.237l.42-2.632H5.45l-.46 2.869a.75.75 0 01-1.48-.237l.42-2.632H1.75a.75.75 0 010-1.5h2.42l.64-4H2.25a.75.75 0 010-1.5h2.8l.46-2.868a.75.75 0 01.858-.622zM9.67 10l.64-4H6.33l-.64 4h3.98z"></path></svg>';pg.registerLanguage("json",tF);Se.use({highlight:(e,t)=>{if(t!=="")return pg.highlight(e,{language:t}).value}});function iF({id:e}){const{locale:t}=rt(),{version:n,changeVersion:i}=vr(),{changeTitle:r}=on(),[s,u]=oe(void 0),o=Qe(()=>{if(!s)return;const E=hw(s);return r(E==null?void 0:E.title,E==null?void 0:E.versions),E},[s]),c=Qe(()=>{var b;const E=He.versions.map(x=>x.id);return(b=o==null?void 0:o.versions)==null?void 0:b.sort((x,y)=>E.indexOf(y)-E.indexOf(x))},[o==null?void 0:o.versions]),a=Qe(()=>!c||c.includes(n)?n:c[0],[n,o==null?void 0:o.versions]),f=Qe(()=>{if(!s)return;const E=s.substring(s.indexOf("---",3)+3);return fw(E,a)},[a,s]),l=Qe(()=>{if(!!f)return Se.use({renderer:{link(E,b,x){if(E===null)return x;const y=b?` title="${b}"`:"",C=E!=null&&E.match(/^https?:\/\//)?' target="_blank"':"";return`<a href="${E}"${y}${C}>${x}</a>`},heading(E,b,x,y){const C=y.slug(x),B=`<span id="guide-${C}" href="?version=${n}#${C}">${nF}</span>`;return`<h${b}>${B}${E}</h${b}>`}}}),Se(f,{version:"1.19"})},[f]),[h,d]=mw(),g=At(()=>{if(!l)return;const E=document.querySelector(`[id=guide-${h.slice(1)}]`);if(E){const b=E.getBoundingClientRect().top+window.scrollY;window.scrollTo({top:b-68,behavior:"smooth"})}},[l,h]);xe(()=>{g()},[l===void 0,h]);const p=At(E=>{if(!(E.target instanceof HTMLSpanElement))return;const b="#"+E.target.id.replace(/^guide-/,"");i(n,!1,!0),d(b),b===h&&g()},[g,h,n]);xe(()=>{(async()=>{const b=await(await fetch(`../../guides/${e}.md`)).text();u(b)})()},[e]);const[m,w]=Cr(),v=At(()=>{const E=`${location.origin}/guides/${e}/?version=${n}`;navigator.clipboard.writeText(E),w()},[e,n]),A=E=>{ri(`/guides/?tags=${E}`)},[_]=oe(window.innerWidth>600);return S("main",null,S("div",{class:"guide"},S("div",{class:"navigation"},S("a",{class:"btn btn-link",href:"/guides/"},$e.arrow_left,t("guides.all")),S(Ee,{icon:m?"check":"link",label:t("share"),onClick:v,active:m,tooltip:t(m?"copied":"copy_share"),class:"guide-share"}),c&&S($t,{icon:"tag",label:a,tooltip:t("switch_version")},c.map(E=>S(Ee,{label:E,active:E===a,onClick:()=>i(E)})))),(o==null?void 0:o.tags)&&o.tags.length>0&&S("div",{class:"guide-tags"},o.tags.map(E=>S(Ss,{label:E,active:!0,onClick:()=>A(E)}))),l&&S(De,null,S(ps,{id:"guide",type:_?"image":"text"}),S("div",{class:"guide-content",dangerouslySetInnerHTML:{__html:l},onClick:p}),S(Ec,null))))}const rF="tags",Ua="|";function sF({}){const{locale:e}=rt(),{version:t,changeVersion:n}=vr();on(e("title.guides"));const[i,r]=oe(""),[s,u]=Gr(rF),o=Qe(()=>{var d;return(d=s==null?void 0:s.split(Ua))!=null?d:[]},[s]),c=d=>{o.includes(d)?u(o.filter(g=>g!==d).join(Ua)):u([...o,d].sort().join(Ua))},[a,f]=oe(!1),l=Qe(()=>a===!1?[{id:"adding-custom-structures",title:"Adding custom structures",versions:["1.18.2","1.19"],tags:["worldgen","structures"]}]:[{id:"adding-custom-structures",title:"Adding custom structures",versions:["1.18.2","1.19"],tags:["worldgen","structures"]}].filter(d=>{var g;return(g=d.versions)==null?void 0:g.includes(t)}),[t,a]),h=Qe(()=>{const d=i.split(" ").map(g=>g.trim().toLowerCase()).filter(g=>g.length>0);return l.filter(g=>{var m;if(!o.every(w=>{var v;return(v=g.tags)==null?void 0:v.includes(w)}))return!1;const p=((m=g.tags)==null?void 0:m.join(" "))+" "+g.title.toLowerCase();return d.every(w=>w.startsWith("!")?w.length===1||!p.includes(w.slice(1)):p.includes(w))})},[l,i,s]);return S("main",null,S("div",{class:"guides"},S("div",{class:"changelog-query"},S(Ei,{class:"btn btn-input changelog-search",placeholder:e("guides.search"),value:i,onChange:r}),S($t,{icon:"tag",label:a?t:e("any_version"),tooltip:e("switch_version")},S(Ee,{label:e("any_version"),active:!a,onClick:()=>f(!a)}),He.versions.slice().reverse().map(d=>S(Ee,{label:d.id,active:a&&d.id===t,onClick:()=>{n(d.id),f(!0)}})))),o.length>0&&S("div",{class:"changelog-tags"},o.map(d=>S(Ss,{label:d,onClick:()=>c(d)}))),l.length===0?S(De,null,S("span",{class:"note"},e("guides.no_results.version"))):h.length===0?S(De,null,S("span",{class:"note"},e("guides.no_results.query"))):h.map(d=>{var g,p;return S(tC,{title:d.title,link:`/guides/${d.id}/`,tags:(g=d.tags)!=null?g:[],versions:(p=d.versions)!=null?p:[],activeTags:o,toggleTag:c})})))}function oF({}){const{locale:e}=rt();return on(e("title.home")),S("main",null,S("div",{class:"home"},S(jt,{title:"Data packs"},He.generators.filter(t=>!t.category).map(t=>S(jt,{title:e(t.id),link:Nn(t.url)})),S(jt,{title:e("worldgen"),link:"/worldgen/"})),S(jt,{title:"Resource packs"},He.generators.filter(t=>t.category==="assets").map(t=>S(jt,{title:e(t.id),link:Nn(t.url)}))),S(jt,{title:"Report Inspector",icon:"report",link:"https://misode.github.io/report/",desc:"Analyse your performance reports"}),S(jt,{title:"Minecraft Sounds",icon:"sounds",link:"/sounds/",desc:"Browse through and mix all the vanilla sounds"}),S(jt,{title:"Data Pack Upgrader",link:"https://misode.github.io/upgrader/",desc:"Convert your data packs from 1.16 to 1.17 to 1.18"}),S(jt,{title:"Technical Changelog",link:"/changelog/"}),S(jt,{title:"Minecraft Versions",link:"/versions/"}),S(jt,{title:"Data Pack Guides",link:"/guides/"}),S(Ec,null)))}function aF({}){const{locale:e}=rt(),{project:t,openFile:n}=i0();on(e("title.project",t.name));const i=Qe(()=>t.files.map(Ww),t.files),r=s=>{const[,u,o,...c]=s.split("/");n(o,`${u}:${c}`)};return S("main",null,S(ps,{id:"data-pack-project",type:"text"}),S("div",{class:"project"},S("h2",null,t.name),S("div",{class:"file-view"},S(ig,{entries:i,onSelect:r}))))}function lF({}){const{locale:e}=rt(),{version:t,changeVersion:n}=vr(),[i,r]=oe(null);on(e("title.sounds"));const[s,u]=oe({}),o=Object.keys(s!=null?s:{});xe(()=>{Fw(t).then(u).catch(_=>{console.error(_),r(_)})},[t]);const[c,a]=oe(""),[f,l]=oe([]),h=()=>{l([{id:vi(),sound:c,delay:0,pitch:1,volume:1},...f])},d=_=>E=>{l(f.map(b=>b.id===_?Ce(Ce({},b),E):b))},g=_=>()=>{l(f.filter(E=>E.id!==_))},[p,m]=oe(0),w=()=>{m(p+1)},v=Xe(null),A=()=>{const _=f.some(b=>b.delay>0),E=f.sort((b,x)=>b.delay-x.delay).map(b=>`${_?`execute if score @s delay matches ${b.delay} run `:""}playsound minecraft:${b.sound} master @s ~ ~ ~ ${b.volume} ${b.pitch}`).join(` -`);v.current.setAttribute("href","data:text/plain;charset=utf-8,"+E+"%0A"),v.current.setAttribute("download","sounds.mcfunction"),v.current.click()};return S("main",null,i&&S(Xi,{error:i,onDismiss:()=>r(null)}),o.length>0&&S(De,null,S("div",{class:"controls sounds-controls"},S("div",{class:"sound-search-group"},S(Ei,{class:"btn btn-input sound-search",list:"sound-list",placeholder:e("sounds.search"),value:c,onChange:a,onEnter:h}),S(Ee,{icon:"plus",tooltip:e("sounds.add_sound"),class:"add-sound",onClick:h})),f.length>1&&S(Ee,{icon:"play",label:e("sounds.play_all"),class:"play-all-sounds",onClick:w}),S("div",{class:"spacer"}),S(Ee,{icon:"download",label:e("download"),tooltip:e("sounds.download_function"),class:"download-sounds",onClick:A}),S($t,{icon:"tag",label:t,tooltip:e("switch_version")},He.versions.slice().reverse().map(_=>S(Ee,{label:_.id,active:_.id===t,onClick:()=>n(_.id)})))),S("div",{class:"sounds"},f.map(_=>S(iC,tt(Ce({key:_.id},_),{sounds:s,delayedPlay:p,onEdit:d(_.id),onDelete:g(_.id)})))),S("a",{ref:v,style:"display: none;"})),S("datalist",{id:"sound-list"},o.map(_=>S("option",{key:_,value:_}))))}function cF({}){const{locale:e}=rt(),[t,n]=oe(null);on(e("title.versions"));const[i,r]=oe([]);xe(()=>{Dw().then(a=>r(a)).catch(a=>{console.error(a),n(a)})},[]);const[s]=Gr("id"),u=i.find(a=>a.id===s);on(u?u.name:"Versions Explorer",u?[]:void 0);const o=u&&kf(i,u,-1),c=u&&kf(i,u,1);return S("main",null,S(ps,{type:"text",id:"versions"}),t&&S(Xi,{error:t,onDismiss:()=>n(null)}),S("div",{class:"versions"},s?S(De,null,S("div",{class:"navigation"},S("a",{class:"btn btn-link",href:"/versions/"},$e.three_bars,e("versions.all")),S("a",Ce({class:"btn btn-link"},c?{href:`/versions/?id=${c.id}`}:{disabled:!0}),$e.arrow_left,e("versions.previous")),S("a",Ce({class:"btn btn-link"},o?{href:`/versions/?id=${o.id}`}:{disabled:!0}),e("versions.next"),$e.arrow_right)),u?S(qx,{version:u}):S("div",{class:"version-detail"},S("h2",null,s),S("div",{class:"version-info"},S("p",null,"This version does not exist. Only versions since 1.14 are tracked, or it may be too recent.")))):S(eC,{versions:i,link:a=>`/versions/?id=${a}`})))}function kf(e,t,n){const r=e.findIndex(s=>s.id===t.id)+n;if(!(r<0||r>=e.length))return e[r]}function uF(){return S(De,null,S(nC,null),S(In,{onChange:t=>{window.dispatchEvent(new CustomEvent("replacestate")),setTimeout(()=>lt.pageview(Nn(t.url)))}},S(oF,{path:"/"}),S(Ef,{path:"/worldgen",category:"worldgen"}),S(Ef,{path:"/assets",category:"assets"}),S(lF,{path:"/sounds"}),S(rC,{path:"/changelog"}),S(cF,{path:"/versions"}),S(aF,{path:"/project"}),S(sF,{path:"/guides/"}),S(iF,{path:"/guides/:id"}),S(sC,{default:!0})))}function hF(){return S(Hw,null,S(Vw,null,S(Jw,null,S(Kw,null,S(jw,null,S(uF,null))))))}Qi(S(hF,null),document.body);export{tn as c,ae as l}; -//# sourceMappingURL=index.36354f76.js.map diff --git a/assets/index.36354f76.js.map b/assets/index.36354f76.js.map deleted file mode 100644 index a6793da8..00000000 --- a/assets/index.36354f76.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"mappings":"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","names":["p","n","u","i","t","o","r","f","e","v","d","_","b","c","I","T","y","g","x","L","z","w","C","P","H","$","M","m","j","A","s","a","N","O","k","EMPTY$1","rank","EMPTY","toChildArray","this$1","assign","cloneElement","Component","createElement","h","l","useEffect","Path_1","Errors_1","escapeString","dec2hex","hexId","DataModel_1","require$$0","require$$1","utils_1","require$$2","BooleanNode_1","Node_1","ListNode_1","SwitchNode_1","MapNode_1","require$$3","require$$4","Reference_1","StringNode_1","isEnum","Registries","this","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","common","isObject","repeat","YAMLException","Mark","Type","Schema","isNull","isBoolean","json","core","_require","require","_hasOwnProperty","_toString","isUndefined","isRegExp","esprima","isFunction","DEFAULT_SAFE_SCHEMA","DEFAULT_FULL_SCHEMA","State","load","loader","dumper","jsYaml","deprecated","Path","cleanUrl","yaml","hashString","rfdc","useRef","useState","useCallback","mapStackTrace","useMemo","Versions","ChoiceNode","StringNode","Reference","DataModel","createContext","useContext","Project","HASH","COMMENT","toString","crypt","cryptModule","md5","md5Module","B","F","V","D","U","E","G","Y","X","Z","q","K","Q","et","st","nt","it","bt","tt","ot","Ut","ie","W","R","at","wasm","LAYERS","cacheState","getCached","FixedBiome","Identifier","NormalNoise","LegacyRandom","PerlinNoise","J","OldNoiseChunkGenerator","ChunkPos","BlockPos","DensityFunction","clampedMap","XoroshiroRandom","NoiseSettings","NoiseRouter","NoiseParameters","Registry","WorldgenRegistries","NoiseGeneratorSettings","NoiseChunkGenerator","deepslate18.FixedBiome","deepslate18.NoiseChunkGenerator","Chunk","define","ieee754","isArray","isNumber","isString","sort","PREFIX_BEFORE","PREFIX_AFTER_PROP","PREFIX_AFTER_COLON","PREFIX_AFTER_VALUE","PREFIX_AFTER","PREFIX_BEFORE_ALL","PREFIX_AFTER_ALL","BRACKET_OPEN","BRACKET_CLOSE","CURLY_BRACKET_OPEN","CURLY_BRACKET_CLOSE","COMMA","MINUS","SYMBOL_PREFIXES","COLON","UNDEFINED","symbol","copy_comments","swap_comments","assign_non_prop_comments","remove_comments","CommentArray","tokenize","inline","clean","parse","repeatString","escape","stringify","ModelPath","relativePath","MapNode","ObjectNode","memo","ListNode","useErrorBoundary","unescape","global","Howl","Response","hljs","render"],"sources":["../../vite/modulepreload-polyfill","../../node_modules/preact/dist/preact.module.js","../../node_modules/preact-router/dist/preact-router.es.js","../../src/app/Analytics.ts","../../node_modules/preact/hooks/dist/hooks.module.js","../../src/app/components/Ad.tsx","../../src/app/components/Btn.tsx","../../node_modules/@mcschema/core/lib/model/Path.js","../../node_modules/@mcschema/core/lib/model/Errors.js","../../node_modules/@mcschema/core/lib/utils.js","../../node_modules/@mcschema/core/lib/model/DataModel.js","../../node_modules/@mcschema/core/lib/nodes/Node.js","../../node_modules/@mcschema/core/lib/nodes/BooleanNode.js","../../node_modules/@mcschema/core/lib/nodes/ListNode.js","../../node_modules/@mcschema/core/lib/nodes/SwitchNode.js","../../node_modules/@mcschema/core/lib/nodes/ChoiceNode.js","../../node_modules/@mcschema/core/lib/nodes/MapNode.js","../../node_modules/@mcschema/core/lib/nodes/NumberNode.js","../../node_modules/@mcschema/core/lib/nodes/ObjectNode.js","../../node_modules/@mcschema/core/lib/nodes/Reference.js","../../node_modules/@mcschema/core/lib/nodes/StringNode.js","../../node_modules/@mcschema/core/lib/Hook.js","../../node_modules/@mcschema/core/lib/Registries.js","../../node_modules/@mcschema/core/lib/ValidationOption.js","../../node_modules/@mcschema/core/lib/index.js","../../node_modules/js-yaml/lib/js-yaml/common.js","../../node_modules/js-yaml/lib/js-yaml/exception.js","../../node_modules/js-yaml/lib/js-yaml/mark.js","../../node_modules/js-yaml/lib/js-yaml/type.js","../../node_modules/js-yaml/lib/js-yaml/schema.js","../../node_modules/js-yaml/lib/js-yaml/type/str.js","../../node_modules/js-yaml/lib/js-yaml/type/seq.js","../../node_modules/js-yaml/lib/js-yaml/type/map.js","../../node_modules/js-yaml/lib/js-yaml/schema/failsafe.js","../../node_modules/js-yaml/lib/js-yaml/type/null.js","../../node_modules/js-yaml/lib/js-yaml/type/bool.js","../../node_modules/js-yaml/lib/js-yaml/type/int.js","../../node_modules/js-yaml/lib/js-yaml/type/float.js","../../node_modules/js-yaml/lib/js-yaml/schema/json.js","../../node_modules/js-yaml/lib/js-yaml/schema/core.js","../../node_modules/js-yaml/lib/js-yaml/type/timestamp.js","../../node_modules/js-yaml/lib/js-yaml/type/merge.js","../../node_modules/js-yaml/lib/js-yaml/type/binary.js","../../node_modules/js-yaml/lib/js-yaml/type/omap.js","../../node_modules/js-yaml/lib/js-yaml/type/pairs.js","../../node_modules/js-yaml/lib/js-yaml/type/set.js","../../node_modules/js-yaml/lib/js-yaml/schema/default_safe.js","../../node_modules/js-yaml/lib/js-yaml/type/js/undefined.js","../../node_modules/js-yaml/lib/js-yaml/type/js/regexp.js","../../node_modules/js-yaml/lib/js-yaml/type/js/function.js","../../node_modules/js-yaml/lib/js-yaml/schema/default_full.js","../../node_modules/js-yaml/lib/js-yaml/loader.js","../../node_modules/js-yaml/lib/js-yaml/dumper.js","../../node_modules/js-yaml/lib/js-yaml.js","../../node_modules/js-yaml/index.js","../../node_modules/rfdc/index.js","../../src/app/Utils.ts","../../src/app/components/BtnInput.tsx","../../src/app/hooks/useActiveTimout.ts","../../src/app/hooks/useCanvas.ts","../../src/app/hooks/useFocus.ts","../../src/app/hooks/useHash.ts","../../src/app/hooks/useMediaQuery.ts","../../src/app/hooks/useModel.ts","../../src/app/hooks/useSearchParam.ts","../../src/app/components/BtnMenu.tsx","../../node_modules/sourcemapped-stacktrace/dist/sourcemapped-stacktrace.js","../../src/app/components/Octicon.tsx","../../src/app/components/ErrorPanel.tsx","../../src/app/components/forms/Checkbox.tsx","../../src/app/components/forms/Input.tsx","../../src/app/components/forms/SearchList.tsx","../../src/app/services/Changelogs.ts","../../src/app/services/DataFetcher.ts","../../vite/preload-helper","../../src/app/services/Schemas.ts","../../node_modules/lz-string/libs/lz-string.js","../../src/app/services/Sharing.ts","../../src/app/Store.ts","../../src/app/contexts/Locale.tsx","../../src/app/contexts/Project.tsx","../../src/app/contexts/Theme.tsx","../../src/app/contexts/Title.tsx","../../src/app/contexts/Version.tsx","../../node_modules/pako/dist/pako.esm.mjs","../../node_modules/crypt/crypt.js","../../node_modules/charenc/charenc.js","../../node_modules/is-buffer/index.js","../../node_modules/md5/md5.js","../../node_modules/deepslate/dist/deepslate.esm.js","../../node_modules/deepslate-rs/deepslate_rs.js","../../node_modules/deepslate-rs/deepslate_rs_bg.wasm?url","../../src/app/previews/BiomeSource.ts","../../src/app/previews/Decorator.ts","../../node_modules/deepslate-1.18/dist/deepslate.esm.js","../../src/app/previews/noise/NoiseChunkGenerator.ts","../../src/app/previews/NoiseSettings.ts","../../src/app/previews/NormalNoise.ts","../../src/app/components/previews/BiomeSourcePreview.tsx","../../src/app/components/previews/DecoratorPreview.tsx","../../src/app/components/previews/DensityFunctionPreview.tsx","../../src/app/components/previews/NoisePreview.tsx","../../src/app/components/previews/NoiseSettingsPreview.tsx","../../src/app/components/generator/PreviewPanel.tsx","../../node_modules/brace/index.js","../../node_modules/brace/worker/json.js","../../node_modules/brace/mode/json.js","../../node_modules/brace/mode/yaml.js","../../node_modules/esprima/dist/esprima.js","../../node_modules/base64-js/index.js","../../node_modules/ieee754/index.js","../../node_modules/buffer/index.js","../../node_modules/core-util-is/lib/util.js","../../node_modules/array-timsort/src/index.js","../../node_modules/has-own-prop/index.js","../../node_modules/comment-json/src/common.js","../../node_modules/comment-json/src/array.js","../../node_modules/comment-json/src/parse.js","../../node_modules/repeat-string/index.js","../../node_modules/comment-json/src/stringify.js","../../node_modules/comment-json/src/index.js","../../src/app/schema/transformOutput.ts","../../src/app/components/generator/SourcePanel.tsx","../../node_modules/preact/compat/dist/compat.module.js","../../src/app/schema/ModelWrapper.ts","../../src/app/schema/renderHtml.tsx","../../src/app/components/generator/Tree.tsx","../../node_modules/@giscus/react/dist/index.es.js","../../src/app/components/Giscus.tsx","../../node_modules/marked/lib/marked.esm.js","../../src/app/components/versions/ChangelogEntry.tsx","../../src/app/components/versions/ChangelogTag.tsx","../../src/app/components/versions/ChangelogList.tsx","../../src/app/components/versions/VersionDetail.tsx","../../src/app/components/versions/VersionEntry.tsx","../../src/app/components/versions/VersionList.tsx","../../src/app/components/versions/VersionMetaData.tsx","../../src/app/components/GuideCard.tsx","../../src/app/components/Header.tsx","../../src/app/components/Icons.tsx","../../node_modules/howler/dist/howler.js","../../src/app/components/sounds/SoundConfig.tsx","../../src/app/components/ToolCard.tsx","../../src/app/components/TreeView.tsx","../../src/app/pages/Category.tsx","../../src/app/pages/Changelog.tsx","../../src/app/pages/Generator.tsx","../../node_modules/highlight.js/lib/core.js","../../node_modules/highlight.js/es/languages/json.js","../../src/app/pages/Guide.tsx","../../src/app/pages/Guides.tsx","../../src/app/pages/Home.tsx","../../src/app/pages/Project.tsx","../../src/app/pages/Sounds.tsx","../../src/app/pages/Versions.tsx","../../src/app/App.tsx","../../src/app/Main.tsx"],"sourcesContent":["const p = function polyfill() {\n const relList = document.createElement('link').relList;\n if (relList && relList.supports && relList.supports('modulepreload')) {\n return;\n }\n for (const link of document.querySelectorAll('link[rel=\"modulepreload\"]')) {\n processPreload(link);\n }\n new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.type !== 'childList') {\n continue;\n }\n for (const node of mutation.addedNodes) {\n if (node.tagName === 'LINK' && node.rel === 'modulepreload')\n processPreload(node);\n }\n }\n }).observe(document, { childList: true, subtree: true });\n function getFetchOpts(script) {\n const fetchOpts = {};\n if (script.integrity)\n fetchOpts.integrity = script.integrity;\n if (script.referrerpolicy)\n fetchOpts.referrerPolicy = script.referrerpolicy;\n if (script.crossorigin === 'use-credentials')\n fetchOpts.credentials = 'include';\n else if (script.crossorigin === 'anonymous')\n fetchOpts.credentials = 'omit';\n else\n fetchOpts.credentials = 'same-origin';\n return fetchOpts;\n }\n function processPreload(link) {\n if (link.ep)\n // ep marker = processed\n return;\n link.ep = true;\n // prepopulate the load record\n const fetchOpts = getFetchOpts(link);\n fetch(link.href, fetchOpts);\n }\n};__VITE_IS_MODERN__&&p();","var n,l,u,i,t,o,r={},f=[],e=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function c(n,l){for(var u in l)n[u]=l[u];return n}function s(n){var l=n.parentNode;l&&l.removeChild(n)}function a(n,l,u){var i,t,o,r=arguments,f={};for(o in l)\"key\"==o?i=l[o]:\"ref\"==o?t=l[o]:f[o]=l[o];if(arguments.length>3)for(u=[u],o=3;o<arguments.length;o++)u.push(r[o]);if(null!=u&&(f.children=u),\"function\"==typeof n&&null!=n.defaultProps)for(o in n.defaultProps)void 0===f[o]&&(f[o]=n.defaultProps[o]);return v(n,f,i,t,null)}function v(l,u,i,t,o){var r={type:l,props:u,key:i,ref:t,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++n.__v:o};return null!=n.vnode&&n.vnode(r),r}function h(){return{current:null}}function y(n){return n.children}function p(n,l){this.props=n,this.context=l}function d(n,l){if(null==l)return n.__?d(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?d(n):null}function _(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return _(n)}}function k(l){(!l.__d&&(l.__d=!0)&&u.push(l)&&!b.__r++||t!==n.debounceRendering)&&((t=n.debounceRendering)||i)(b)}function b(){for(var n;b.__r=u.length;)n=u.sort(function(n,l){return n.__v.__b-l.__v.__b}),u=[],n.some(function(n){var l,u,i,t,o,r;n.__d&&(o=(t=(l=n).__v).__e,(r=l.__P)&&(u=[],(i=c({},t)).__v=t.__v+1,I(r,t,i,l.__n,void 0!==r.ownerSVGElement,null!=t.__h?[o]:null,u,null==o?d(t):o,t.__h),T(u,t),t.__e!=o&&_(t)))})}function m(n,l,u,i,t,o,e,c,s,a){var h,p,_,k,b,m,w,A=i&&i.__k||f,P=A.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(k=u.__k[h]=null==(k=l[h])||\"boolean\"==typeof k?null:\"string\"==typeof k||\"number\"==typeof k||\"bigint\"==typeof k?v(null,k,null,null,k):Array.isArray(k)?v(y,{children:k},null,null,null):k.__b>0?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;p<P;p++){if((_=A[p])&&k.key==_.key&&k.type===_.type){A[p]=void 0;break}_=null}I(n,k,_=_||r,t,o,e,c,s,a),b=k.__e,(p=k.ref)&&_.ref!=p&&(w||(w=[]),_.ref&&w.push(_.ref,null,k),w.push(p,k.__c||b,k)),null!=b?(null==m&&(m=b),\"function\"==typeof k.type&&null!=k.__k&&k.__k===_.__k?k.__d=s=g(k,s,n):s=x(n,k,_,A,b,s),a||\"option\"!==u.type?\"function\"==typeof u.type&&(u.__d=s):n.value=\"\"):s&&_.__e==s&&s.parentNode!=n&&(s=d(_))}for(u.__e=m,h=P;h--;)null!=A[h]&&(\"function\"==typeof u.type&&null!=A[h].__e&&A[h].__e==u.__d&&(u.__d=d(i,h+1)),L(A[h],A[h]));if(w)for(h=0;h<w.length;h++)z(w[h],w[++h],w[++h])}function g(n,l,u){var i,t;for(i=0;i<n.__k.length;i++)(t=n.__k[i])&&(t.__=n,l=\"function\"==typeof t.type?g(t,l,u):x(u,t,t,n.__k,t.__e,l));return l}function w(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(Array.isArray(n)?n.some(function(n){w(n,l)}):l.push(n)),l}function x(n,l,u,i,t,o){var r,f,e;if(void 0!==l.__d)r=l.__d,l.__d=void 0;else if(null==u||t!=o||null==t.parentNode)n:if(null==o||o.parentNode!==n)n.appendChild(t),r=null;else{for(f=o,e=0;(f=f.nextSibling)&&e<i.length;e+=2)if(f==t)break n;n.insertBefore(t,o),r=o}return void 0!==r?r:t.nextSibling}function A(n,l,u,i,t){var o;for(o in u)\"children\"===o||\"key\"===o||o in l||C(n,o,null,u[o],i);for(o in l)t&&\"function\"!=typeof l[o]||\"children\"===o||\"key\"===o||\"value\"===o||\"checked\"===o||u[o]===l[o]||C(n,o,l[o],u[o],i)}function P(n,l,u){\"-\"===l[0]?n.setProperty(l,u):n[l]=null==u?\"\":\"number\"!=typeof u||e.test(l)?u:u+\"px\"}function C(n,l,u,i,t){var o;n:if(\"style\"===l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof i&&(n.style.cssText=i=\"\"),i)for(l in i)u&&l in u||P(n.style,l,\"\");if(u)for(l in u)i&&u[l]===i[l]||P(n.style,l,u[l])}else if(\"o\"===l[0]&&\"n\"===l[1])o=l!==(l=l.replace(/Capture$/,\"\")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?i||n.addEventListener(l,o?H:$,o):n.removeEventListener(l,o?H:$,o);else if(\"dangerouslySetInnerHTML\"!==l){if(t)l=l.replace(/xlink[H:h]/,\"h\").replace(/sName$/,\"s\");else if(\"href\"!==l&&\"list\"!==l&&\"form\"!==l&&\"tabIndex\"!==l&&\"download\"!==l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null!=u&&(!1!==u||\"a\"===l[0]&&\"r\"===l[1])?n.setAttribute(l,u):n.removeAttribute(l))}}function $(l){this.l[l.type+!1](n.event?n.event(l):l)}function H(l){this.l[l.type+!0](n.event?n.event(l):l)}function I(l,u,i,t,o,r,f,e,s){var a,v,h,d,_,k,b,g,w,x,A,P=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(s=i.__h,e=u.__e=i.__e,u.__h=null,r=[e]),(a=n.__b)&&a(u);try{n:if(\"function\"==typeof P){if(g=u.props,w=(a=P.contextType)&&t[a.__c],x=a?w?w.props.value:a.__:t,i.__c?b=(v=u.__c=i.__c).__=v.__E:(\"prototype\"in P&&P.prototype.render?u.__c=v=new P(g,x):(u.__c=v=new p(g,x),v.constructor=P,v.render=M),w&&w.sub(v),v.props=g,v.state||(v.state={}),v.context=x,v.__n=t,h=v.__d=!0,v.__h=[]),null==v.__s&&(v.__s=v.state),null!=P.getDerivedStateFromProps&&(v.__s==v.state&&(v.__s=c({},v.__s)),c(v.__s,P.getDerivedStateFromProps(g,v.__s))),d=v.props,_=v.state,h)null==P.getDerivedStateFromProps&&null!=v.componentWillMount&&v.componentWillMount(),null!=v.componentDidMount&&v.__h.push(v.componentDidMount);else{if(null==P.getDerivedStateFromProps&&g!==d&&null!=v.componentWillReceiveProps&&v.componentWillReceiveProps(g,x),!v.__e&&null!=v.shouldComponentUpdate&&!1===v.shouldComponentUpdate(g,v.__s,x)||u.__v===i.__v){v.props=g,v.state=v.__s,u.__v!==i.__v&&(v.__d=!1),v.__v=u,u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u)}),v.__h.length&&f.push(v);break n}null!=v.componentWillUpdate&&v.componentWillUpdate(g,v.__s,x),null!=v.componentDidUpdate&&v.__h.push(function(){v.componentDidUpdate(d,_,k)})}v.context=x,v.props=g,v.state=v.__s,(a=n.__r)&&a(u),v.__d=!1,v.__v=u,v.__P=l,a=v.render(v.props,v.state,v.context),v.state=v.__s,null!=v.getChildContext&&(t=c(c({},t),v.getChildContext())),h||null==v.getSnapshotBeforeUpdate||(k=v.getSnapshotBeforeUpdate(d,_)),A=null!=a&&a.type===y&&null==a.key?a.props.children:a,m(l,Array.isArray(A)?A:[A],u,i,t,o,r,f,e,s),v.base=u.__e,u.__h=null,v.__h.length&&f.push(v),b&&(v.__E=v.__=null),v.__e=!1}else null==r&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=j(i.__e,u,i,t,o,r,f,s);(a=n.diffed)&&a(u)}catch(l){u.__v=null,(s||null!=r)&&(u.__e=e,u.__h=!!s,r[r.indexOf(e)]=null),n.__e(l,u,i)}}function T(l,u){n.__c&&n.__c(u,l),l.some(function(u){try{l=u.__h,u.__h=[],l.some(function(n){n.call(u)})}catch(l){n.__e(l,u.__v)}})}function j(n,l,u,i,t,o,e,c){var a,v,h,y,p=u.props,d=l.props,_=l.type,k=0;if(\"svg\"===_&&(t=!0),null!=o)for(;k<o.length;k++)if((a=o[k])&&(a===n||(_?a.localName==_:3==a.nodeType))){n=a,o[k]=null;break}if(null==n){if(null===_)return document.createTextNode(d);n=t?document.createElementNS(\"http://www.w3.org/2000/svg\",_):document.createElement(_,d.is&&d),o=null,c=!1}if(null===_)p===d||c&&n.data===d||(n.data=d);else{if(o=o&&f.slice.call(n.childNodes),v=(p=u.props||r).dangerouslySetInnerHTML,h=d.dangerouslySetInnerHTML,!c){if(null!=o)for(p={},y=0;y<n.attributes.length;y++)p[n.attributes[y].name]=n.attributes[y].value;(h||v)&&(h&&(v&&h.__html==v.__html||h.__html===n.innerHTML)||(n.innerHTML=h&&h.__html||\"\"))}if(A(n,d,p,t,c),h)l.__k=[];else if(k=l.props.children,m(n,Array.isArray(k)?k:[k],l,u,i,t&&\"foreignObject\"!==_,o,e,n.firstChild,c),null!=o)for(k=o.length;k--;)null!=o[k]&&s(o[k]);c||(\"value\"in d&&void 0!==(k=d.value)&&(k!==n.value||\"progress\"===_&&!k)&&C(n,\"value\",k,p.value,!1),\"checked\"in d&&void 0!==(k=d.checked)&&k!==n.checked&&C(n,\"checked\",k,p.checked,!1))}return n}function z(l,u,i){try{\"function\"==typeof l?l(u):l.current=u}catch(l){n.__e(l,i)}}function L(l,u,i){var t,o,r;if(n.unmount&&n.unmount(l),(t=l.ref)&&(t.current&&t.current!==l.__e||z(t,null,u)),i||\"function\"==typeof l.type||(i=null!=(o=l.__e)),l.__e=l.__d=void 0,null!=(t=l.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount()}catch(l){n.__e(l,u)}t.base=t.__P=null}if(t=l.__k)for(r=0;r<t.length;r++)t[r]&&L(t[r],u,i);null!=o&&s(o)}function M(n,l,u){return this.constructor(n,u)}function N(l,u,i){var t,o,e;n.__&&n.__(l,u),o=(t=\"function\"==typeof i)?null:i&&i.__k||u.__k,e=[],I(u,l=(!t&&i||u).__k=a(y,null,[l]),o||r,r,void 0!==u.ownerSVGElement,!t&&i?[i]:o?null:u.firstChild?f.slice.call(u.childNodes):null,e,!t&&i?i:o?o.__e:u.firstChild,t),T(e,l)}function O(n,l){N(n,l,O)}function S(n,l,u){var i,t,o,r=arguments,f=c({},n.props);for(o in l)\"key\"==o?i=l[o]:\"ref\"==o?t=l[o]:f[o]=l[o];if(arguments.length>3)for(u=[u],o=3;o<arguments.length;o++)u.push(r[o]);return null!=u&&(f.children=u),v(n.type,f,i||n.key,t||n.ref,null)}function q(n,l){var u={__c:l=\"__cC\"+o++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(k)},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n={__e:function(n,l){for(var u,i,t;l=l.__;)if((u=l.__c)&&!u.__)try{if((i=u.constructor)&&null!=i.getDerivedStateFromError&&(u.setState(i.getDerivedStateFromError(n)),t=u.__d),null!=u.componentDidCatch&&(u.componentDidCatch(n),t=u.__d),t)return u.__E=u}catch(l){n=l}throw n},__v:0},l=function(n){return null!=n&&void 0===n.constructor},p.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=c({},this.state),\"function\"==typeof n&&(n=n(c({},u),this.props)),n&&c(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),k(this))},p.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),k(this))},p.prototype.render=y,u=[],i=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,b.__r=0,o=0;export{N as render,O as hydrate,a as createElement,a as h,y as Fragment,h as createRef,l as isValidElement,p as Component,S as cloneElement,q as createContext,w as toChildArray,n as options};\n//# sourceMappingURL=preact.module.js.map\n","import { Component, cloneElement, createElement, toChildArray } from 'preact';\n\nvar EMPTY$1 = {};\n\nfunction assign(obj, props) {\n\t// eslint-disable-next-line guard-for-in\n\tfor (var i in props) {\n\t\tobj[i] = props[i];\n\t}\n\treturn obj;\n}\n\nfunction exec(url, route, opts) {\n\tvar reg = /(?:\\?([^#]*))?(#.*)?$/,\n\t\tc = url.match(reg),\n\t\tmatches = {},\n\t\tret;\n\tif (c && c[1]) {\n\t\tvar p = c[1].split('&');\n\t\tfor (var i=0; i<p.length; i++) {\n\t\t\tvar r = p[i].split('=');\n\t\t\tmatches[decodeURIComponent(r[0])] = decodeURIComponent(r.slice(1).join('='));\n\t\t}\n\t}\n\turl = segmentize(url.replace(reg, ''));\n\troute = segmentize(route || '');\n\tvar max = Math.max(url.length, route.length);\n\tfor (var i$1=0; i$1<max; i$1++) {\n\t\tif (route[i$1] && route[i$1].charAt(0)===':') {\n\t\t\tvar param = route[i$1].replace(/(^:|[+*?]+$)/g, ''),\n\t\t\t\tflags = (route[i$1].match(/[+*?]+$/) || EMPTY$1)[0] || '',\n\t\t\t\tplus = ~flags.indexOf('+'),\n\t\t\t\tstar = ~flags.indexOf('*'),\n\t\t\t\tval = url[i$1] || '';\n\t\t\tif (!val && !star && (flags.indexOf('?')<0 || plus)) {\n\t\t\t\tret = false;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatches[param] = decodeURIComponent(val);\n\t\t\tif (plus || star) {\n\t\t\t\tmatches[param] = url.slice(i$1).map(decodeURIComponent).join('/');\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\telse if (route[i$1]!==url[i$1]) {\n\t\t\tret = false;\n\t\t\tbreak;\n\t\t}\n\t}\n\tif (opts.default!==true && ret===false) { return false; }\n\treturn matches;\n}\n\nfunction pathRankSort(a, b) {\n\treturn (\n\t\t(a.rank < b.rank) ? 1 :\n\t\t\t(a.rank > 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<ROUTERS.length; i++) {\n\t\tif (ROUTERS[i].routeTo(url)===true) {\n\t\t\tdidRoute = true;\n\t\t}\n\t}\n\tfor (var i$1=subscribers.length; i$1--; ) {\n\t\tsubscribers[i$1](url);\n\t}\n\treturn didRoute;\n}\n\n\nfunction routeFromLink(node) {\n\t// only valid elements\n\tif (!node || !node.getAttribute) { return; }\n\n\tvar href = node.getAttribute('href'),\n\t\ttarget = node.getAttribute('target');\n\n\t// ignore links with targets and non-path URLs\n\tif (!href || !href.match(/^\\//g) || (target && !target.match(/^_?self$/i))) { return; }\n\n\t// attempt to route, if no match simply cede control to browser\n\treturn route(href);\n}\n\n\nfunction handleLinkClick(e) {\n\tif (e.ctrlKey || e.metaKey || e.altKey || e.shiftKey || e.button!==0) { return; }\n\trouteFromLink(e.currentTarget || e.target || this);\n\treturn prevent(e);\n}\n\n\nfunction prevent(e) {\n\tif (e) {\n\t\tif (e.stopImmediatePropagation) { e.stopImmediatePropagation(); }\n\t\tif (e.stopPropagation) { e.stopPropagation(); }\n\t\te.preventDefault();\n\t}\n\treturn false;\n}\n\n\nfunction delegateLinkHandler(e) {\n\t// ignore events the browser takes care of already:\n\tif (e.ctrlKey || e.metaKey || e.altKey || e.shiftKey || e.button!==0) { return; }\n\n\tvar t = e.target;\n\tdo {\n\t\tif (String(t.nodeName).toUpperCase()==='A' && t.getAttribute('href')) {\n\t\t\tif (t.hasAttribute('native')) { return; }\n\t\t\t// if link is handled by the router, prevent browser defaults\n\t\t\tif (routeFromLink(t)) {\n\t\t\t\treturn prevent(e);\n\t\t\t}\n\t\t}\n\t} while ((t=t.parentNode));\n}\n\n\nvar eventListenersInitialized = false;\n\nfunction initEventListeners() {\n\tif (eventListenersInitialized) { return; }\n\n\tif (typeof addEventListener==='function') {\n\t\tif (!customHistory) {\n\t\t\taddEventListener('popstate', function () {\n\t\t\t\trouteTo(getCurrentUrl());\n\t\t\t});\n\t\t}\n\t\taddEventListener('click', delegateLinkHandler);\n\t}\n\teventListenersInitialized = true;\n}\n\n\nvar Router = (function (Component$$1) {\n\tfunction Router(props) {\n\t\tComponent$$1.call(this, props);\n\t\tif (props.history) {\n\t\t\tcustomHistory = props.history;\n\t\t}\n\n\t\tthis.state = {\n\t\t\turl: props.url || getCurrentUrl()\n\t\t};\n\n\t\tinitEventListeners();\n\t}\n\n\tif ( Component$$1 ) Router.__proto__ = Component$$1;\n\tRouter.prototype = Object.create( Component$$1 && Component$$1.prototype );\n\tRouter.prototype.constructor = Router;\n\n\tRouter.prototype.shouldComponentUpdate = function shouldComponentUpdate (props) {\n\t\tif (props.static!==true) { return true; }\n\t\treturn props.url!==this.props.url || props.onChange!==this.props.onChange;\n\t};\n\n\t/** Check if the given URL can be matched against any children */\n\tRouter.prototype.canRoute = function canRoute (url) {\n\t\tvar children = toChildArray(this.props.children);\n\t\treturn this.getMatchingChildren(children, url, false).length > 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","export namespace Analytics {\n\tconst ID_SITE = 'Site'\n\tconst ID_GENERATOR = 'Generator'\n\n\tconst DIM_THEME = 1\n\tconst DIM_VERSION = 3\n\tconst DIM_LANGUAGE = 4\n\tconst DIM_PREVIEW = 5\n\tconst DIM_GENERATOR = 6\n\tconst DIM_PREFERS_COLOR_SCHEME = 7\n\n\tfunction event(category: string, action: string, label?: string) {\n\t\tga('send', 'event', category, action, label)\n\t}\n\n\tfunction dimension(index: number, value: string) {\n\t\tga('set', `dimension${index}`, value)\n\t}\n\n\texport function pageview(page: string) {\n\t\tga('set', 'page', page)\n\t\tga('send', 'pageview')\n\t}\n\n\texport function setLanguage(language: string) {\n\t\tdimension(DIM_LANGUAGE, language)\n\t\tevent(ID_SITE, 'set-language', language)\n\t}\n\n\texport function setTheme(theme: string) {\n\t\tdimension(DIM_THEME, theme)\n\t\tevent(ID_SITE, 'set-theme', theme)\n\t}\n\n\texport function setVersion(version: string) {\n\t\tdimension(DIM_VERSION, version)\n\t\tevent(ID_GENERATOR, 'set-version', version)\n\t}\n\n\texport function setPreview(preview: string) {\n\t\tdimension(DIM_PREVIEW, preview)\n\t\tevent(ID_GENERATOR, 'set-preview', preview)\n\t}\n\n\texport function setGenerator(generator: string) {\n\t\tdimension(DIM_GENERATOR, generator)\n\t}\n\n\texport function setPrefersColorScheme(colorScheme: string) {\n\t\tdimension(DIM_PREFERS_COLOR_SCHEME, colorScheme)\n\t}\n\n\texport function generatorEvent(action: string, label?: string) {\n\t\tevent(ID_GENERATOR, action, label)\n\t}\n}\n","import{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","import { useEffect } from 'preact/hooks'\n\ndeclare const ethicalads: any\n\ntype AdProps = {\n\ttype: 'text' | 'image',\n\tid: string,\n}\nexport function Ad({ type, id }: AdProps) {\n\tuseEffect(() => {\n\t\tdocument.getElementById('ad-placeholder')?.remove()\n\t\tif ('ethicalads' in window) {\n\t\t\tethicalads.load()\n\t\t}\n\t}, [])\n\n\treturn <div data-ea-publisher=\"misode-github-io\" data-ea-type={type} class=\"ad dark flat\" id={id}></div>\n}\n","import { Octicon } from '.'\n\ntype BtnProps = {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\tactive?: boolean,\n\ttooltip?: string,\n\ttooltipLoc?: 'se' | 'sw' | 'nw',\n\tshowTooltip?: boolean,\n\tclass?: string,\n\tonClick?: (event: MouseEvent) => unknown,\n}\nexport function Btn({ icon, label, active, class: clazz, tooltip, tooltipLoc, onClick }: BtnProps) {\n\treturn <div class={`btn${active ? ' active' : ''}${clazz ? ` ${clazz}` : ''}${tooltip ? ` tooltipped tip-${tooltipLoc ?? 'sw'}` : ''}${active ? ' tip-shown' : ''}`} onClick={onClick} aria-label={tooltip}>\n\t\t{icon && Octicon[icon]}\n\t\t{label && <span>{label}</span>}\n\t</div>\n}\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: (0, 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: (0, utils_1.hexId)() };\r\n }\r\n else {\r\n node[path.last()] = value;\r\n }\r\n if (silent)\r\n return;\r\n if (this.verbose) {\r\n console.log('Set', path.toString(), JSON.stringify(value));\r\n }\r\n this.validate(true);\r\n this.invalidate();\r\n }\r\n /**\r\n * Go one step back in history\r\n */\r\n undo() {\r\n if (this.historyIndex > 0) {\r\n this.historyIndex -= 1;\r\n this.data = JSON.parse(this.history[this.historyIndex]);\r\n this.validate(false);\r\n this.silentInvalidate();\r\n }\r\n }\r\n /**\r\n * Go one step forward in history.\r\n */\r\n redo() {\r\n if (this.historyIndex < this.history.length - 1) {\r\n this.historyIndex += 1;\r\n this.data = JSON.parse(this.history[this.historyIndex]);\r\n this.validate(false);\r\n this.silentInvalidate();\r\n }\r\n }\r\n /**\r\n * Uses the schema to check whether the data is valid\r\n */\r\n validate(loose) {\r\n var _a;\r\n const path = new Path_1.Path().withModel(this);\r\n this.errors.clear();\r\n this.data = (_a = this.schema.validate(path, this.data, this.errors, { loose, wrapLists: this.wrapLists })) !== null && _a !== void 0 ? _a : {};\r\n }\r\n error(path, error, ...params) {\r\n const tempErrors = new Errors_1.Errors();\r\n tempErrors.add(path, error, params);\r\n this.listeners.forEach(l => {\r\n if (l.errors)\r\n l.errors(tempErrors);\r\n });\r\n }\r\n static wrapLists(value) {\r\n if (Array.isArray(value)) {\r\n const res = value.map(v => ({\r\n node: this.wrapLists(v),\r\n id: (0, utils_1.hexId)(),\r\n }));\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else if (typeof value === 'object' && value !== null) {\r\n const res = {};\r\n Object.entries(value).map(([k, v]) => {\r\n res[k] = this.wrapLists(v);\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n static unwrapLists(value) {\r\n if (Array.isArray(value)) {\r\n const res = value.map(v => this.unwrapLists(v.node));\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else if (typeof value === 'object' && value !== null) {\r\n const res = {};\r\n Object.entries(value).map(([k, v]) => {\r\n res[k] = this.unwrapLists(v);\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n}\r\nexports.DataModel = DataModel;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Keep = exports.Opt = exports.Has = exports.Mod = exports.Base = void 0;\r\nexports.Base = ({\r\n type: () => 'base',\r\n category: () => undefined,\r\n default: () => undefined,\r\n enabled: () => true,\r\n keep: () => false,\r\n optional: () => false,\r\n navigate() { return this; },\r\n pathPush: (p) => p,\r\n suggest: () => [],\r\n validate: (_, v) => v,\r\n validationOption: () => undefined,\r\n hook(hook, path, ...args) { return hook.base({ node: this }, path, ...args); },\r\n canUpdate: () => false,\r\n update: () => []\r\n});\r\nconst Mod = (node, mods) => ({\r\n ...node, ...(typeof mods === 'function' ? mods(node) : mods)\r\n});\r\nexports.Mod = Mod;\r\nconst Has = (key, node) => (0, exports.Mod)(node, {\r\n enabled: (p) => p.push(key).get() !== undefined\r\n});\r\nexports.Has = Has;\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\nconst 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\nexports.BooleanNode = BooleanNode;\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\nconst ListNode = (children, config) => {\r\n var _a, _b;\r\n const min = (_a = config === null || config === void 0 ? void 0 : config.minLength) !== null && _a !== void 0 ? _a : 0;\r\n const max = (_b = config === null || config === void 0 ? void 0 : config.maxLength) !== null && _b !== void 0 ? _b : Infinity;\r\n const between = (config === null || config === void 0 ? void 0 : config.minLength) && (config === null || config === void 0 ? void 0 : config.maxLength);\r\n return ({\r\n ...Node_1.Base,\r\n type: () => 'list',\r\n default: () => (config === null || config === void 0 ? void 0 : config.minLength) ? [...Array(min)].map(_ => children.default()) : [],\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n return children.navigate(path, nextIndex);\r\n },\r\n pathPush(path, index) {\r\n return path.push(parseInt(index.toString())).contextPush('entry');\r\n },\r\n validate(path, value, errors, options) {\r\n if (options.loose && !Array.isArray(value)) {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (!Array.isArray(value)) {\r\n errors.add(path, 'error.expected_list');\r\n return value;\r\n }\r\n else if (between && (value.length < min || value.length > max)) {\r\n if (min === max) {\r\n errors.add(path, 'error.invalid_list_range.exact', value.length, min);\r\n }\r\n else {\r\n errors.add(path, 'error.invalid_list_range.between', value.length, min, max);\r\n }\r\n }\r\n else if (value.length < min) {\r\n errors.add(path, 'error.invalid_list_range.smaller', value.length, min);\r\n }\r\n else if (value.length > max) {\r\n errors.add(path, 'error.invalid_list_range.larger', value.length, max);\r\n }\r\n const res = value.map((obj, index) => {\r\n const newObj = children.validate(path.push(index), options.wrapLists ? obj.node : obj, errors, options);\r\n return options.wrapLists ? { node: newObj, id: obj.id } : newObj;\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.list) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, children, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n });\r\n};\r\nexports.ListNode = ListNode;\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\nconst 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\nexports.SwitchNode = SwitchNode;\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\nconst 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 = (0, 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\nexports.ChoiceNode = ChoiceNode;\r\nconst XOrList = (x) => ((node, config) => {\r\n return (0, 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: (0, 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\nconst ObjectOrPreset = (presetNode, objectNode, presets) => {\r\n return (0, 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\nexports.ObjectOrPreset = ObjectOrPreset;\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\nconst MapNode = (keys, children, config) => {\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'map',\r\n default: () => ({}),\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n return children.navigate(path, nextIndex);\r\n },\r\n pathPush(path, key) {\r\n return path.modelPush(key);\r\n },\r\n suggest: (path) => keys.suggest(path, ''),\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'object') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (value === null || typeof value !== 'object') {\r\n errors.add(path, 'error.expected_object');\r\n return value;\r\n }\r\n const res = {};\r\n Object.keys(value).forEach(k => {\r\n keys.validate(path, k, errors, options);\r\n res[k] = children.validate(path.push(k), value[k], errors, options);\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n },\r\n validationOption(path) {\r\n var _a;\r\n return (_a = config === null || config === void 0 ? void 0 : config.validation) !== null && _a !== void 0 ? _a : keys.validationOption(path.push(''));\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.map) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, keys, children, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n };\r\n};\r\nexports.MapNode = MapNode;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NumberEnum = exports.NumberNode = void 0;\r\nconst __1 = require(\"..\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst Node_1 = require(\"./Node\");\r\nconst NumberNode = (config) => {\r\n var _a, _b, _c;\r\n const integer = (config === null || config === void 0 ? void 0 : config.color) ? true : (_a = config === null || config === void 0 ? void 0 : config.integer) !== null && _a !== void 0 ? _a : false;\r\n const min = (config === null || config === void 0 ? void 0 : config.color) ? 0 : (_b = config === null || config === void 0 ? void 0 : config.min) !== null && _b !== void 0 ? _b : -Infinity;\r\n const max = (config === null || config === void 0 ? void 0 : config.color) ? 16777215 : (_c = config === null || config === void 0 ? void 0 : config.max) !== null && _c !== void 0 ? _c : Infinity;\r\n const between = (config === null || config === void 0 ? void 0 : config.min) !== undefined && (config === null || config === void 0 ? void 0 : config.max) !== undefined;\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'number',\r\n default: () => min > 0 ? min : 0,\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'number') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (typeof value !== 'number') {\r\n errors.add(path, 'error.expected_number');\r\n }\r\n else if (integer && !Number.isInteger(value)) {\r\n errors.add(path, 'error.expected_integer');\r\n }\r\n else if (between && (value < min || value > max)) {\r\n errors.add(path, 'error.invalid_number_range.between', value, min, max);\r\n }\r\n else if (value < min) {\r\n errors.add(path, 'error.invalid_number_range.smaller', value, min);\r\n }\r\n else if (value > max) {\r\n errors.add(path, 'error.invalid_number_range.larger', value, max);\r\n }\r\n return value;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.number) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, integer, min, max, between, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n };\r\n};\r\nexports.NumberNode = NumberNode;\r\nconst NumberEnum = ({ integer, values }) => (0, __1.Mod)((0, exports.NumberNode)({ integer }), node => ({\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if (!values.includes(value)) {\r\n errors.add(path, 'error.invalid_number_enum', values.join(', '));\r\n }\r\n return value;\r\n }\r\n}));\r\nexports.NumberEnum = NumberEnum;\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\nconst 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 = (0, 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 ? (0, 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 = (0, Path_1.relativePath)(path, filter);\r\n let switchValue = filterPath.get();\r\n if (path.equals(filterPath.pop())) {\r\n const filterField = filterPath.last();\r\n switchValue = defaultFields[filterField].validate(path.push(filterField), value[filterField], new Errors_1.Errors(), options);\r\n }\r\n activeFields = { ...activeFields, ...cases[switchValue] };\r\n }\r\n const activeKeys = Object.keys(activeFields);\r\n const forcedKeys = activeKeys.filter(k => !activeFields[k].optional());\r\n const keys = new Set([...forcedKeys, ...Object.keys(value)]);\r\n const res = {};\r\n keys.forEach(k => {\r\n if (activeKeys.includes(k)) {\r\n if (!activeFields[k].enabled(path))\r\n return;\r\n const newValue = activeFields[k].validate(path.push(k), value[k], errors, options);\r\n if (!activeFields[k].keep() && activeFields[k].optional()\r\n && (newValue === undefined\r\n || (Array.isArray(newValue) && newValue.length === 0)\r\n || (newValue.constructor === Object && Object.keys(newValue).length === 0))) {\r\n delete res[k];\r\n }\r\n else {\r\n res[k] = newValue;\r\n path.getModel().set(path.push(k), newValue, true);\r\n }\r\n }\r\n else {\r\n res[k] = value[k];\r\n }\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.object) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, fields: defaultFields, config: config !== null && config !== void 0 ? config : {}, filter, cases, getActiveFields, getChildModelPath }, path, ...args);\r\n }\r\n });\r\n};\r\nexports.ObjectNode = ObjectNode;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Reference = void 0;\r\nconst 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\nexports.Reference = Reference;\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 return !!(value === null || value === void 0 ? void 0 : value.enum);\r\n};\r\nconst isValidator = (value) => {\r\n return !!(value === null || value === void 0 ? void 0 : value.validator);\r\n};\r\n/**\r\n * Simple string node with one text field\r\n */\r\nconst StringNode = (collections, config) => {\r\n const getValues = () => {\r\n var _a, _b, _c, _d;\r\n if (isEnum(config)) {\r\n if (typeof config.enum === 'string') {\r\n return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.enum)) !== null && _a !== void 0 ? _a : [];\r\n }\r\n return config.enum;\r\n }\r\n if ((config === null || config === void 0 ? void 0 : config.validator) === 'resource') {\r\n if (typeof config.params.pool === 'string') {\r\n if (config.params.requireTag) {\r\n return (_b = collections === null || collections === void 0 ? void 0 : collections.get(`tag/${config.params.pool}`).map(e => `#${e}`)) !== null && _b !== void 0 ? _b : [];\r\n }\r\n const registry = config.params.pool.replace(/^\\$/, '');\r\n return [\r\n ...config.params.allowTag ? (_c = collections === null || collections === void 0 ? void 0 : collections.get(`tag/${registry}`).map(e => `#${e}`)) !== null && _c !== void 0 ? _c : [] : [],\r\n ...(_d = collections === null || collections === void 0 ? void 0 : collections.get(registry)) !== null && _d !== void 0 ? _d : [],\r\n ];\r\n }\r\n return config.params.pool;\r\n }\r\n return [];\r\n };\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'string',\r\n default: () => '',\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'string') {\r\n value = (options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default()) || undefined;\r\n }\r\n if (typeof value !== 'string') {\r\n errors.add(path, 'error.expected_string');\r\n return value;\r\n }\r\n if (isValidator(config)) {\r\n if (config.validator === 'resource' && value.length > 0 && !value.includes(':')) {\r\n value = value.startsWith('#')\r\n ? '#minecraft:' + value.slice(1)\r\n : 'minecraft:' + value;\r\n }\r\n if (config.validator === 'resource' && typeof value == 'string') {\r\n let id = value;\r\n if (value.startsWith('#')) {\r\n if (typeof config.params.pool === 'string' && config.params.pool.startsWith('$tag/')) {\r\n errors.add(path, 'error.disallowed_tag_prefix');\r\n return value;\r\n }\r\n else if (!config.params.allowTag && !config.params.requireTag) {\r\n errors.add(path, 'error.disallowed_tag');\r\n return value;\r\n }\r\n id = id.slice(1);\r\n }\r\n else if (config.params.requireTag) {\r\n errors.add(path, 'error.expected_tag');\r\n return value;\r\n }\r\n if (!id.match(/^(?:[_\\-a-z0-9.]*:)?[_\\-a-z0-9/.]*$/g)) {\r\n errors.add(path, 'error.invalid_resource_location');\r\n return value;\r\n }\r\n }\r\n if (config.validator === 'resource' && ((typeof config.params.pool === 'string' && config.params.pool.startsWith('$')) ||\r\n ((config.params.allowTag || config.params.requireTag) && value.startsWith('#')) ||\r\n config.params.isDefinition ||\r\n config.params.allowUnknown)) {\r\n return value;\r\n }\r\n }\r\n if ((isEnum(config) && config.additional)) {\r\n return value;\r\n }\r\n const values = getValues();\r\n if (values.length > 0 && !values.includes(value)) {\r\n errors.add(path, 'error.invalid_enum_option', value);\r\n }\r\n return value;\r\n },\r\n suggest: () => getValues().map(utils_1.quoteString),\r\n validationOption() {\r\n return isValidator(config) ? config : undefined;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.string) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, getValues, config }, path, ...args);\r\n }\r\n };\r\n};\r\nexports.StringNode = StringNode;\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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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\" && !Object.prototype.hasOwnProperty.call(exports, 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';\n\n\nfunction isNothing(subject) {\n return (typeof subject === 'undefined') || (subject === null);\n}\n\n\nfunction isObject(subject) {\n return (typeof subject === 'object') && (subject !== null);\n}\n\n\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n\n return [ sequence ];\n}\n\n\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n\n if (source) {\n sourceKeys = Object.keys(source);\n\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n\nfunction repeat(string, count) {\n var result = '', cycle;\n\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n\n return result;\n}\n\n\nfunction isNegativeZero(number) {\n return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);\n}\n\n\nmodule.exports.isNothing = isNothing;\nmodule.exports.isObject = isObject;\nmodule.exports.toArray = toArray;\nmodule.exports.repeat = repeat;\nmodule.exports.isNegativeZero = isNegativeZero;\nmodule.exports.extend = extend;\n","// YAML error class. http://stackoverflow.com/questions/8458984\n//\n'use strict';\n\nfunction YAMLException(reason, mark) {\n // Super constructor\n Error.call(this);\n\n this.name = 'YAMLException';\n this.reason = reason;\n this.mark = mark;\n this.message = (this.reason || '(unknown reason)') + (this.mark ? ' ' + this.mark.toString() : '');\n\n // Include stack trace in error object\n if (Error.captureStackTrace) {\n // Chrome and NodeJS\n Error.captureStackTrace(this, this.constructor);\n } else {\n // FF, IE 10+ and Safari 6+. Fallback for others\n this.stack = (new Error()).stack || '';\n }\n}\n\n\n// Inherit from Error\nYAMLException.prototype = Object.create(Error.prototype);\nYAMLException.prototype.constructor = YAMLException;\n\n\nYAMLException.prototype.toString = function toString(compact) {\n var result = this.name + ': ';\n\n result += this.reason || '(unknown reason)';\n\n if (!compact && this.mark) {\n result += ' ' + this.mark.toString();\n }\n\n return result;\n};\n\n\nmodule.exports = YAMLException;\n","'use strict';\n\n\nvar common = require('./common');\n\n\nfunction Mark(name, buffer, position, line, column) {\n this.name = name;\n this.buffer = buffer;\n this.position = position;\n this.line = line;\n this.column = column;\n}\n\n\nMark.prototype.getSnippet = function getSnippet(indent, maxLength) {\n var head, start, tail, end, snippet;\n\n if (!this.buffer) return null;\n\n indent = indent || 4;\n maxLength = maxLength || 75;\n\n head = '';\n start = this.position;\n\n while (start > 0 && '\\x00\\r\\n\\x85\\u2028\\u2029'.indexOf(this.buffer.charAt(start - 1)) === -1) {\n start -= 1;\n if (this.position - start > (maxLength / 2 - 1)) {\n head = ' ... ';\n start += 5;\n break;\n }\n }\n\n tail = '';\n end = this.position;\n\n while (end < this.buffer.length && '\\x00\\r\\n\\x85\\u2028\\u2029'.indexOf(this.buffer.charAt(end)) === -1) {\n end += 1;\n if (end - this.position > (maxLength / 2 - 1)) {\n tail = ' ... ';\n end -= 5;\n break;\n }\n }\n\n snippet = this.buffer.slice(start, end);\n\n return common.repeat(' ', indent) + head + snippet + tail + '\\n' +\n common.repeat(' ', indent + this.position - start + head.length) + '^';\n};\n\n\nMark.prototype.toString = function toString(compact) {\n var snippet, where = '';\n\n if (this.name) {\n where += 'in \"' + this.name + '\" ';\n }\n\n where += 'at line ' + (this.line + 1) + ', column ' + (this.column + 1);\n\n if (!compact) {\n snippet = this.getSnippet();\n\n if (snippet) {\n where += ':\\n' + snippet;\n }\n }\n\n return where;\n};\n\n\nmodule.exports = Mark;\n","'use strict';\n\nvar YAMLException = require('./exception');\n\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n 'kind',\n 'resolve',\n 'construct',\n 'instanceOf',\n 'predicate',\n 'represent',\n 'defaultStyle',\n 'styleAliases'\n];\n\nvar YAML_NODE_KINDS = [\n 'scalar',\n 'sequence',\n 'mapping'\n];\n\nfunction compileStyleAliases(map) {\n var result = {};\n\n if (map !== null) {\n Object.keys(map).forEach(function (style) {\n map[style].forEach(function (alias) {\n result[String(alias)] = style;\n });\n });\n }\n\n return result;\n}\n\nfunction Type(tag, options) {\n options = options || {};\n\n Object.keys(options).forEach(function (name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new YAMLException('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n\n // TODO: Add tag format check.\n this.tag = tag;\n this.kind = options['kind'] || null;\n this.resolve = options['resolve'] || function () { return true; };\n this.construct = options['construct'] || function (data) { return data; };\n this.instanceOf = options['instanceOf'] || null;\n this.predicate = options['predicate'] || null;\n this.represent = options['represent'] || null;\n this.defaultStyle = options['defaultStyle'] || null;\n this.styleAliases = compileStyleAliases(options['styleAliases'] || null);\n\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new YAMLException('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\n\nmodule.exports = Type;\n","'use strict';\n\n/*eslint-disable max-len*/\n\nvar common = require('./common');\nvar YAMLException = require('./exception');\nvar Type = require('./type');\n\n\nfunction compileList(schema, name, result) {\n var exclude = [];\n\n schema.include.forEach(function (includedSchema) {\n result = compileList(includedSchema, name, result);\n });\n\n schema[name].forEach(function (currentType) {\n result.forEach(function (previousType, previousIndex) {\n if (previousType.tag === currentType.tag && previousType.kind === currentType.kind) {\n exclude.push(previousIndex);\n }\n });\n\n result.push(currentType);\n });\n\n return result.filter(function (type, index) {\n return exclude.indexOf(index) === -1;\n });\n}\n\n\nfunction compileMap(/* lists... */) {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {}\n }, index, length;\n\n function collectType(type) {\n result[type.kind][type.tag] = result['fallback'][type.tag] = type;\n }\n\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\n\n\nfunction Schema(definition) {\n this.include = definition.include || [];\n this.implicit = definition.implicit || [];\n this.explicit = definition.explicit || [];\n\n this.implicit.forEach(function (type) {\n if (type.loadKind && type.loadKind !== 'scalar') {\n throw new YAMLException('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');\n }\n });\n\n this.compiledImplicit = compileList(this, 'implicit', []);\n this.compiledExplicit = compileList(this, 'explicit', []);\n this.compiledTypeMap = compileMap(this.compiledImplicit, this.compiledExplicit);\n}\n\n\nSchema.DEFAULT = null;\n\n\nSchema.create = function createSchema() {\n var schemas, types;\n\n switch (arguments.length) {\n case 1:\n schemas = Schema.DEFAULT;\n types = arguments[0];\n break;\n\n case 2:\n schemas = arguments[0];\n types = arguments[1];\n break;\n\n default:\n throw new YAMLException('Wrong number of arguments for Schema.create function');\n }\n\n schemas = common.toArray(schemas);\n types = common.toArray(types);\n\n if (!schemas.every(function (schema) { return schema instanceof Schema; })) {\n throw new YAMLException('Specified list of super schemas (or a single Schema object) contains a non-Schema object.');\n }\n\n if (!types.every(function (type) { return type instanceof Type; })) {\n throw new YAMLException('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n\n return new Schema({\n include: schemas,\n explicit: types\n });\n};\n\n\nmodule.exports = Schema;\n","'use strict';\n\nvar Type = require('../type');\n\nmodule.exports = new Type('tag:yaml.org,2002:str', {\n kind: 'scalar',\n construct: function (data) { return data !== null ? data : ''; }\n});\n","'use strict';\n\nvar Type = require('../type');\n\nmodule.exports = new Type('tag:yaml.org,2002:seq', {\n kind: 'sequence',\n construct: function (data) { return data !== null ? data : []; }\n});\n","'use strict';\n\nvar Type = require('../type');\n\nmodule.exports = new Type('tag:yaml.org,2002:map', {\n kind: 'mapping',\n construct: function (data) { return data !== null ? data : {}; }\n});\n","// Standard YAML's Failsafe schema.\n// http://www.yaml.org/spec/1.2/spec.html#id2802346\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n explicit: [\n require('../type/str'),\n require('../type/seq'),\n require('../type/map')\n ]\n});\n","'use strict';\n\nvar Type = require('../type');\n\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n\n var max = data.length;\n\n return (max === 1 && data === '~') ||\n (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));\n}\n\nfunction constructYamlNull() {\n return null;\n}\n\nfunction isNull(object) {\n return object === null;\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:null', {\n kind: 'scalar',\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function () { return '~'; },\n lowercase: function () { return 'null'; },\n uppercase: function () { return 'NULL'; },\n camelcase: function () { return 'Null'; }\n },\n defaultStyle: 'lowercase'\n});\n","'use strict';\n\nvar Type = require('../type');\n\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n\n var max = data.length;\n\n return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||\n (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));\n}\n\nfunction constructYamlBoolean(data) {\n return data === 'true' ||\n data === 'True' ||\n data === 'TRUE';\n}\n\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === '[object Boolean]';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:bool', {\n kind: 'scalar',\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function (object) { return object ? 'true' : 'false'; },\n uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },\n camelcase: function (object) { return object ? 'True' : 'False'; }\n },\n defaultStyle: 'lowercase'\n});\n","'use strict';\n\nvar common = require('../common');\nvar Type = require('../type');\n\nfunction isHexCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||\n ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||\n ((0x61/* a */ <= c) && (c <= 0x66/* f */));\n}\n\nfunction isOctCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));\n}\n\nfunction isDecCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));\n}\n\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n\n var max = data.length,\n index = 0,\n hasDigits = false,\n ch;\n\n if (!max) return false;\n\n ch = data[index];\n\n // sign\n if (ch === '-' || ch === '+') {\n ch = data[++index];\n }\n\n if (ch === '0') {\n // 0\n if (index + 1 === max) return true;\n ch = data[++index];\n\n // base 2, base 8, base 16\n\n if (ch === 'b') {\n // base 2\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch !== '0' && ch !== '1') return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'x') {\n // base 16\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n // base 8\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n // base 10 (except 0) or base 60\n\n // value should not start with `_`;\n if (ch === '_') return false;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch === ':') break;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n\n // Should have digits and should not end with `_`\n if (!hasDigits || ch === '_') return false;\n\n // if !base60 - done;\n if (ch !== ':') return true;\n\n // base60 almost not used, no needs to optimize\n return /^(:[0-5]?[0-9])+$/.test(data.slice(index));\n}\n\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch, base, digits = [];\n\n if (value.indexOf('_') !== -1) {\n value = value.replace(/_/g, '');\n }\n\n ch = value[0];\n\n if (ch === '-' || ch === '+') {\n if (ch === '-') sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n\n if (value === '0') return 0;\n\n if (ch === '0') {\n if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);\n if (value[1] === 'x') return sign * parseInt(value, 16);\n return sign * parseInt(value, 8);\n }\n\n if (value.indexOf(':') !== -1) {\n value.split(':').forEach(function (v) {\n digits.unshift(parseInt(v, 10));\n });\n\n value = 0;\n base = 1;\n\n digits.forEach(function (d) {\n value += (d * base);\n base *= 60;\n });\n\n return sign * value;\n\n }\n\n return sign * parseInt(value, 10);\n}\n\nfunction isInteger(object) {\n return (Object.prototype.toString.call(object)) === '[object Number]' &&\n (object % 1 === 0 && !common.isNegativeZero(object));\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:int', {\n kind: 'scalar',\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },\n octal: function (obj) { return obj >= 0 ? '0' + obj.toString(8) : '-0' + obj.toString(8).slice(1); },\n decimal: function (obj) { return obj.toString(10); },\n /* eslint-disable max-len */\n hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }\n },\n defaultStyle: 'decimal',\n styleAliases: {\n binary: [ 2, 'bin' ],\n octal: [ 8, 'oct' ],\n decimal: [ 10, 'dec' ],\n hexadecimal: [ 16, 'hex' ]\n }\n});\n","'use strict';\n\nvar common = require('../common');\nvar Type = require('../type');\n\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n '^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +\n // .2e4, .2\n // special case, seems not from spec\n '|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +\n // 20:59\n '|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\\\.[0-9_]*' +\n // .inf\n '|[-+]?\\\\.(?:inf|Inf|INF)' +\n // .nan\n '|\\\\.(?:nan|NaN|NAN))$');\n\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n\n if (!YAML_FLOAT_PATTERN.test(data) ||\n // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === '_') {\n return false;\n }\n\n return true;\n}\n\nfunction constructYamlFloat(data) {\n var value, sign, base, digits;\n\n value = data.replace(/_/g, '').toLowerCase();\n sign = value[0] === '-' ? -1 : 1;\n digits = [];\n\n if ('+-'.indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n\n if (value === '.inf') {\n return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\n } else if (value === '.nan') {\n return NaN;\n\n } else if (value.indexOf(':') >= 0) {\n value.split(':').forEach(function (v) {\n digits.unshift(parseFloat(v, 10));\n });\n\n value = 0.0;\n base = 1;\n\n digits.forEach(function (d) {\n value += d * base;\n base *= 60;\n });\n\n return sign * value;\n\n }\n return sign * parseFloat(value, 10);\n}\n\n\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\n\nfunction representYamlFloat(object, style) {\n var res;\n\n if (isNaN(object)) {\n switch (style) {\n case 'lowercase': return '.nan';\n case 'uppercase': return '.NAN';\n case 'camelcase': return '.NaN';\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '.inf';\n case 'uppercase': return '.INF';\n case 'camelcase': return '.Inf';\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '-.inf';\n case 'uppercase': return '-.INF';\n case 'camelcase': return '-.Inf';\n }\n } else if (common.isNegativeZero(object)) {\n return '-0.0';\n }\n\n res = object.toString(10);\n\n // JS stringifier can build scientific format without dots: 5e-100,\n // while YAML requres dot: 5.e-100. Fix it with simple hack\n\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;\n}\n\nfunction isFloat(object) {\n return (Object.prototype.toString.call(object) === '[object Number]') &&\n (object % 1 !== 0 || common.isNegativeZero(object));\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:float', {\n kind: 'scalar',\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: 'lowercase'\n});\n","// Standard YAML's JSON schema.\n// http://www.yaml.org/spec/1.2/spec.html#id2803231\n//\n// NOTE: JS-YAML does not support schema-specific tag resolution restrictions.\n// So, this schema is not such strict as defined in the YAML specification.\n// It allows numbers in binary notaion, use `Null` and `NULL` as `null`, etc.\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n include: [\n require('./failsafe')\n ],\n implicit: [\n require('../type/null'),\n require('../type/bool'),\n require('../type/int'),\n require('../type/float')\n ]\n});\n","// Standard YAML's Core schema.\n// http://www.yaml.org/spec/1.2/spec.html#id2804923\n//\n// NOTE: JS-YAML does not support schema-specific tag resolution restrictions.\n// So, Core schema has no distinctions from JSON schema is JS-YAML.\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n include: [\n require('./json')\n ]\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar YAML_DATE_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9])' + // [2] month\n '-([0-9][0-9])$'); // [3] day\n\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9]?)' + // [2] month\n '-([0-9][0-9]?)' + // [3] day\n '(?:[Tt]|[ \\\\t]+)' + // ...\n '([0-9][0-9]?)' + // [4] hour\n ':([0-9][0-9])' + // [5] minute\n ':([0-9][0-9])' + // [6] second\n '(?:\\\\.([0-9]*))?' + // [7] fraction\n '(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour\n '(?::([0-9][0-9]))?))?$'); // [11] tz_minute\n\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\n\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0,\n delta = null, tz_hour, tz_minute, date;\n\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n\n if (match === null) throw new Error('Date resolve error');\n\n // match: [1] year [2] month [3] day\n\n year = +(match[1]);\n month = +(match[2]) - 1; // JS month starts with 0\n day = +(match[3]);\n\n if (!match[4]) { // no hour\n return new Date(Date.UTC(year, month, day));\n }\n\n // match: [4] hour [5] minute [6] second [7] fraction\n\n hour = +(match[4]);\n minute = +(match[5]);\n second = +(match[6]);\n\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) { // milli-seconds\n fraction += '0';\n }\n fraction = +fraction;\n }\n\n // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute\n\n if (match[9]) {\n tz_hour = +(match[10]);\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds\n if (match[9] === '-') delta = -delta;\n }\n\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n\n if (delta) date.setTime(date.getTime() - delta);\n\n return date;\n}\n\nfunction representYamlTimestamp(object /*, style*/) {\n return object.toISOString();\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:timestamp', {\n kind: 'scalar',\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\n","'use strict';\n\nvar Type = require('../type');\n\nfunction resolveYamlMerge(data) {\n return data === '<<' || data === null;\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:merge', {\n kind: 'scalar',\n resolve: resolveYamlMerge\n});\n","'use strict';\n\n/*eslint-disable no-bitwise*/\n\nvar NodeBuffer;\n\ntry {\n // A trick for browserified version, to not include `Buffer` shim\n var _require = require;\n NodeBuffer = _require('buffer').Buffer;\n} catch (__) {}\n\nvar Type = require('../type');\n\n\n// [ 64, 65, 66 ] -> [ padding, CR, LF ]\nvar BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r';\n\n\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n\n var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;\n\n // Convert one by one.\n for (idx = 0; idx < max; idx++) {\n code = map.indexOf(data.charAt(idx));\n\n // Skip CR/LF\n if (code > 64) continue;\n\n // Fail on illegal characters\n if (code < 0) return false;\n\n bitlen += 6;\n }\n\n // If there are any bits left, source was corrupted\n return (bitlen % 8) === 0;\n}\n\nfunction constructYamlBinary(data) {\n var idx, tailbits,\n input = data.replace(/[\\r\\n=]/g, ''), // remove CR/LF & padding to simplify scan\n max = input.length,\n map = BASE64_MAP,\n bits = 0,\n result = [];\n\n // Collect by 6*4 bits (3 bytes)\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 4 === 0) && idx) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n }\n\n bits = (bits << 6) | map.indexOf(input.charAt(idx));\n }\n\n // Dump tail\n\n tailbits = (max % 4) * 6;\n\n if (tailbits === 0) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n } else if (tailbits === 18) {\n result.push((bits >> 10) & 0xFF);\n result.push((bits >> 2) & 0xFF);\n } else if (tailbits === 12) {\n result.push((bits >> 4) & 0xFF);\n }\n\n // Wrap into Buffer for NodeJS and leave Array for browser\n if (NodeBuffer) {\n // Support node 6.+ Buffer API when available\n return NodeBuffer.from ? NodeBuffer.from(result) : new NodeBuffer(result);\n }\n\n return result;\n}\n\nfunction representYamlBinary(object /*, style*/) {\n var result = '', bits = 0, idx, tail,\n max = object.length,\n map = BASE64_MAP;\n\n // Convert every three bytes to 4 ASCII characters.\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 3 === 0) && idx) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n }\n\n bits = (bits << 8) + object[idx];\n }\n\n // Dump tail\n\n tail = max % 3;\n\n if (tail === 0) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n } else if (tail === 2) {\n result += map[(bits >> 10) & 0x3F];\n result += map[(bits >> 4) & 0x3F];\n result += map[(bits << 2) & 0x3F];\n result += map[64];\n } else if (tail === 1) {\n result += map[(bits >> 2) & 0x3F];\n result += map[(bits << 4) & 0x3F];\n result += map[64];\n result += map[64];\n }\n\n return result;\n}\n\nfunction isBinary(object) {\n return NodeBuffer && NodeBuffer.isBuffer(object);\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:binary', {\n kind: 'scalar',\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\nvar _toString = Object.prototype.toString;\n\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n\n var objectKeys = [], index, length, pair, pairKey, pairHasKey,\n object = data;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n\n if (_toString.call(pair) !== '[object Object]') return false;\n\n for (pairKey in pair) {\n if (_hasOwnProperty.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n\n if (!pairHasKey) return false;\n\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n\n return true;\n}\n\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:omap', {\n kind: 'sequence',\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar _toString = Object.prototype.toString;\n\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n if (_toString.call(pair) !== '[object Object]') return false;\n\n keys = Object.keys(pair);\n\n if (keys.length !== 1) return false;\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return true;\n}\n\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n keys = Object.keys(pair);\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return result;\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:pairs', {\n kind: 'sequence',\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n\n var key, object = data;\n\n for (key in object) {\n if (_hasOwnProperty.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n\n return true;\n}\n\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:set', {\n kind: 'mapping',\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\n","// JS-YAML's default schema for `safeLoad` function.\n// It is not described in the YAML specification.\n//\n// This schema is based on standard YAML's Core schema and includes most of\n// extra types described at YAML tag repository. (http://yaml.org/type/)\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n include: [\n require('./core')\n ],\n implicit: [\n require('../type/timestamp'),\n require('../type/merge')\n ],\n explicit: [\n require('../type/binary'),\n require('../type/omap'),\n require('../type/pairs'),\n require('../type/set')\n ]\n});\n","'use strict';\n\nvar Type = require('../../type');\n\nfunction resolveJavascriptUndefined() {\n return true;\n}\n\nfunction constructJavascriptUndefined() {\n /*eslint-disable no-undefined*/\n return undefined;\n}\n\nfunction representJavascriptUndefined() {\n return '';\n}\n\nfunction isUndefined(object) {\n return typeof object === 'undefined';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:js/undefined', {\n kind: 'scalar',\n resolve: resolveJavascriptUndefined,\n construct: constructJavascriptUndefined,\n predicate: isUndefined,\n represent: representJavascriptUndefined\n});\n","'use strict';\n\nvar Type = require('../../type');\n\nfunction resolveJavascriptRegExp(data) {\n if (data === null) return false;\n if (data.length === 0) return false;\n\n var regexp = data,\n tail = /\\/([gim]*)$/.exec(data),\n modifiers = '';\n\n // if regexp starts with '/' it can have modifiers and must be properly closed\n // `/foo/gim` - modifiers tail can be maximum 3 chars\n if (regexp[0] === '/') {\n if (tail) modifiers = tail[1];\n\n if (modifiers.length > 3) return false;\n // if expression starts with /, is should be properly terminated\n if (regexp[regexp.length - modifiers.length - 1] !== '/') return false;\n }\n\n return true;\n}\n\nfunction constructJavascriptRegExp(data) {\n var regexp = data,\n tail = /\\/([gim]*)$/.exec(data),\n modifiers = '';\n\n // `/foo/gim` - tail can be maximum 4 chars\n if (regexp[0] === '/') {\n if (tail) modifiers = tail[1];\n regexp = regexp.slice(1, regexp.length - modifiers.length - 1);\n }\n\n return new RegExp(regexp, modifiers);\n}\n\nfunction representJavascriptRegExp(object /*, style*/) {\n var result = '/' + object.source + '/';\n\n if (object.global) result += 'g';\n if (object.multiline) result += 'm';\n if (object.ignoreCase) result += 'i';\n\n return result;\n}\n\nfunction isRegExp(object) {\n return Object.prototype.toString.call(object) === '[object RegExp]';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:js/regexp', {\n kind: 'scalar',\n resolve: resolveJavascriptRegExp,\n construct: constructJavascriptRegExp,\n predicate: isRegExp,\n represent: representJavascriptRegExp\n});\n","'use strict';\n\nvar esprima;\n\n// Browserified version does not have esprima\n//\n// 1. For node.js just require module as deps\n// 2. For browser try to require mudule via external AMD system.\n// If not found - try to fallback to window.esprima. If not\n// found too - then fail to parse.\n//\ntry {\n // workaround to exclude package from browserify list.\n var _require = require;\n esprima = _require('esprima');\n} catch (_) {\n /* eslint-disable no-redeclare */\n /* global window */\n if (typeof window !== 'undefined') esprima = window.esprima;\n}\n\nvar Type = require('../../type');\n\nfunction resolveJavascriptFunction(data) {\n if (data === null) return false;\n\n try {\n var source = '(' + data + ')',\n ast = esprima.parse(source, { range: true });\n\n if (ast.type !== 'Program' ||\n ast.body.length !== 1 ||\n ast.body[0].type !== 'ExpressionStatement' ||\n (ast.body[0].expression.type !== 'ArrowFunctionExpression' &&\n ast.body[0].expression.type !== 'FunctionExpression')) {\n return false;\n }\n\n return true;\n } catch (err) {\n return false;\n }\n}\n\nfunction constructJavascriptFunction(data) {\n /*jslint evil:true*/\n\n var source = '(' + data + ')',\n ast = esprima.parse(source, { range: true }),\n params = [],\n body;\n\n if (ast.type !== 'Program' ||\n ast.body.length !== 1 ||\n ast.body[0].type !== 'ExpressionStatement' ||\n (ast.body[0].expression.type !== 'ArrowFunctionExpression' &&\n ast.body[0].expression.type !== 'FunctionExpression')) {\n throw new Error('Failed to resolve function');\n }\n\n ast.body[0].expression.params.forEach(function (param) {\n params.push(param.name);\n });\n\n body = ast.body[0].expression.body.range;\n\n // Esprima's ranges include the first '{' and the last '}' characters on\n // function expressions. So cut them out.\n if (ast.body[0].expression.body.type === 'BlockStatement') {\n /*eslint-disable no-new-func*/\n return new Function(params, source.slice(body[0] + 1, body[1] - 1));\n }\n // ES6 arrow functions can omit the BlockStatement. In that case, just return\n // the body.\n /*eslint-disable no-new-func*/\n return new Function(params, 'return ' + source.slice(body[0], body[1]));\n}\n\nfunction representJavascriptFunction(object /*, style*/) {\n return object.toString();\n}\n\nfunction isFunction(object) {\n return Object.prototype.toString.call(object) === '[object Function]';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:js/function', {\n kind: 'scalar',\n resolve: resolveJavascriptFunction,\n construct: constructJavascriptFunction,\n predicate: isFunction,\n represent: representJavascriptFunction\n});\n","// JS-YAML's default schema for `load` function.\n// It is not described in the YAML specification.\n//\n// This schema is based on JS-YAML's default safe schema and includes\n// JavaScript-specific types: !!js/undefined, !!js/regexp and !!js/function.\n//\n// Also this schema is used as default base schema at `Schema.create` function.\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = Schema.DEFAULT = new Schema({\n include: [\n require('./default_safe')\n ],\n explicit: [\n require('../type/js/undefined'),\n require('../type/js/regexp'),\n require('../type/js/function')\n ]\n});\n","'use strict';\n\n/*eslint-disable max-len,no-use-before-define*/\n\nvar common = require('./common');\nvar YAMLException = require('./exception');\nvar Mark = require('./mark');\nvar DEFAULT_SAFE_SCHEMA = require('./schema/default_safe');\nvar DEFAULT_FULL_SCHEMA = require('./schema/default_full');\n\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\n\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\n\n\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\n\n\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction is_EOL(c) {\n return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);\n}\n\nfunction is_WHITE_SPACE(c) {\n return (c === 0x09/* Tab */) || (c === 0x20/* Space */);\n}\n\nfunction is_WS_OR_EOL(c) {\n return (c === 0x09/* Tab */) ||\n (c === 0x20/* Space */) ||\n (c === 0x0A/* LF */) ||\n (c === 0x0D/* CR */);\n}\n\nfunction is_FLOW_INDICATOR(c) {\n return c === 0x2C/* , */ ||\n c === 0x5B/* [ */ ||\n c === 0x5D/* ] */ ||\n c === 0x7B/* { */ ||\n c === 0x7D/* } */;\n}\n\nfunction fromHexCode(c) {\n var lc;\n\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n /*eslint-disable no-bitwise*/\n lc = c | 0x20;\n\n if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {\n return lc - 0x61 + 10;\n }\n\n return -1;\n}\n\nfunction escapedHexLen(c) {\n if (c === 0x78/* x */) { return 2; }\n if (c === 0x75/* u */) { return 4; }\n if (c === 0x55/* U */) { return 8; }\n return 0;\n}\n\nfunction fromDecimalCode(c) {\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n return -1;\n}\n\nfunction simpleEscapeSequence(c) {\n /* eslint-disable indent */\n return (c === 0x30/* 0 */) ? '\\x00' :\n (c === 0x61/* a */) ? '\\x07' :\n (c === 0x62/* b */) ? '\\x08' :\n (c === 0x74/* t */) ? '\\x09' :\n (c === 0x09/* Tab */) ? '\\x09' :\n (c === 0x6E/* n */) ? '\\x0A' :\n (c === 0x76/* v */) ? '\\x0B' :\n (c === 0x66/* f */) ? '\\x0C' :\n (c === 0x72/* r */) ? '\\x0D' :\n (c === 0x65/* e */) ? '\\x1B' :\n (c === 0x20/* Space */) ? ' ' :\n (c === 0x22/* \" */) ? '\\x22' :\n (c === 0x2F/* / */) ? '/' :\n (c === 0x5C/* \\ */) ? '\\x5C' :\n (c === 0x4E/* N */) ? '\\x85' :\n (c === 0x5F/* _ */) ? '\\xA0' :\n (c === 0x4C/* L */) ? '\\u2028' :\n (c === 0x50/* P */) ? '\\u2029' : '';\n}\n\nfunction charFromCodepoint(c) {\n if (c <= 0xFFFF) {\n return String.fromCharCode(c);\n }\n // Encode UTF-16 surrogate pair\n // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF\n return String.fromCharCode(\n ((c - 0x010000) >> 10) + 0xD800,\n ((c - 0x010000) & 0x03FF) + 0xDC00\n );\n}\n\nvar simpleEscapeCheck = new Array(256); // integer, for fast access\nvar simpleEscapeMap = new Array(256);\nfor (var i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\n\n\nfunction State(input, options) {\n this.input = input;\n\n this.filename = options['filename'] || null;\n this.schema = options['schema'] || DEFAULT_FULL_SCHEMA;\n this.onWarning = options['onWarning'] || null;\n this.legacy = options['legacy'] || false;\n this.json = options['json'] || false;\n this.listener = options['listener'] || null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n\n this.documents = [];\n\n /*\n this.version;\n this.checkLineBreaks;\n this.tagMap;\n this.anchorMap;\n this.tag;\n this.anchor;\n this.kind;\n this.result;*/\n\n}\n\n\nfunction generateError(state, message) {\n return new YAMLException(\n message,\n new Mark(state.filename, state.input, state.position, state.line, (state.position - state.lineStart)));\n}\n\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\n\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\n\n\nvar directiveHandlers = {\n\n YAML: function handleYamlDirective(state, name, args) {\n\n var match, major, minor;\n\n if (state.version !== null) {\n throwError(state, 'duplication of %YAML directive');\n }\n\n if (args.length !== 1) {\n throwError(state, 'YAML directive accepts exactly one argument');\n }\n\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n\n if (match === null) {\n throwError(state, 'ill-formed argument of the YAML directive');\n }\n\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n\n if (major !== 1) {\n throwError(state, 'unacceptable YAML version of the document');\n }\n\n state.version = args[0];\n state.checkLineBreaks = (minor < 2);\n\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, 'unsupported YAML version of the document');\n }\n },\n\n TAG: function handleTagDirective(state, name, args) {\n\n var handle, prefix;\n\n if (args.length !== 2) {\n throwError(state, 'TAG directive accepts exactly two arguments');\n }\n\n handle = args[0];\n prefix = args[1];\n\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');\n }\n\n if (_hasOwnProperty.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');\n }\n\n state.tagMap[handle] = prefix;\n }\n};\n\n\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n\n if (start < end) {\n _result = state.input.slice(start, end);\n\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 0x09 ||\n (0x20 <= _character && _character <= 0x10FFFF))) {\n throwError(state, 'expected valid JSON character');\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, 'the stream contains non-printable characters');\n }\n\n state.result += _result;\n }\n}\n\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n\n if (!common.isObject(source)) {\n throwError(state, 'cannot merge mappings; the provided source object is unacceptable');\n }\n\n sourceKeys = Object.keys(source);\n\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n\n if (!_hasOwnProperty.call(destination, key)) {\n destination[key] = source[key];\n overridableKeys[key] = true;\n }\n }\n}\n\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startPos) {\n var index, quantity;\n\n // The output is a plain object here, so keys can only be strings.\n // We need to convert keyNode to a string, but doing so can hang the process\n // (deeply nested arrays that explode exponentially using aliases).\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state, 'nested arrays are not supported inside keys');\n }\n\n if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {\n keyNode[index] = '[object Object]';\n }\n }\n }\n\n // Avoid code execution in load() via toString property\n // (still use its own toString for arrays, timestamps,\n // and whatever user schema extensions happen to have @@toStringTag)\n if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {\n keyNode = '[object Object]';\n }\n\n\n keyNode = String(keyNode);\n\n if (_result === null) {\n _result = {};\n }\n\n if (keyTag === 'tag:yaml.org,2002:merge') {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state.json &&\n !_hasOwnProperty.call(overridableKeys, keyNode) &&\n _hasOwnProperty.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.position = startPos || state.position;\n throwError(state, 'duplicated mapping key');\n }\n _result[keyNode] = valueNode;\n delete overridableKeys[keyNode];\n }\n\n return _result;\n}\n\nfunction readLineBreak(state) {\n var ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x0A/* LF */) {\n state.position++;\n } else if (ch === 0x0D/* CR */) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {\n state.position++;\n }\n } else {\n throwError(state, 'a line break is expected');\n }\n\n state.line += 1;\n state.lineStart = state.position;\n}\n\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0,\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (allowComments && ch === 0x23/* # */) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);\n }\n\n if (is_EOL(ch)) {\n readLineBreak(state);\n\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n\n while (ch === 0x20/* Space */) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, 'deficient indentation');\n }\n\n return lineBreaks;\n}\n\nfunction testDocumentSeparator(state) {\n var _position = state.position,\n ch;\n\n ch = state.input.charCodeAt(_position);\n\n // Condition state.position === state.lineStart is tested\n // in parent on each call, for efficiency. No needs to test here again.\n if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&\n ch === state.input.charCodeAt(_position + 1) &&\n ch === state.input.charCodeAt(_position + 2)) {\n\n _position += 3;\n\n ch = state.input.charCodeAt(_position);\n\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction writeFoldedLines(state, count) {\n if (count === 1) {\n state.result += ' ';\n } else if (count > 1) {\n state.result += common.repeat('\\n', count - 1);\n }\n}\n\n\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding,\n following,\n captureStart,\n captureEnd,\n hasPendingContent,\n _line,\n _lineStart,\n _lineIndent,\n _kind = state.kind,\n _result = state.result,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (is_WS_OR_EOL(ch) ||\n is_FLOW_INDICATOR(ch) ||\n ch === 0x23/* # */ ||\n ch === 0x26/* & */ ||\n ch === 0x2A/* * */ ||\n ch === 0x21/* ! */ ||\n ch === 0x7C/* | */ ||\n ch === 0x3E/* > */ ||\n ch === 0x27/* ' */ ||\n ch === 0x22/* \" */ ||\n ch === 0x25/* % */ ||\n ch === 0x40/* @ */ ||\n ch === 0x60/* ` */) {\n return false;\n }\n\n if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n\n state.kind = 'scalar';\n state.result = '';\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n\n while (ch !== 0) {\n if (ch === 0x3A/* : */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n\n } else if (ch === 0x23/* # */) {\n preceding = state.input.charCodeAt(state.position - 1);\n\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n\n } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||\n withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, captureEnd, false);\n\n if (state.result) {\n return true;\n }\n\n state.kind = _kind;\n state.result = _result;\n return false;\n}\n\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch,\n captureStart, captureEnd;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x27/* ' */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x27/* ' */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x27/* ' */) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a single quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a single quoted scalar');\n}\n\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart,\n captureEnd,\n hexLength,\n hexResult,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x22/* \" */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x22/* \" */) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n\n } else if (ch === 0x5C/* \\ */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n\n // TODO: rework to inline fn with no type cast?\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n\n } else {\n throwError(state, 'expected hexadecimal character');\n }\n }\n\n state.result += charFromCodepoint(hexResult);\n\n state.position++;\n\n } else {\n throwError(state, 'unknown escape sequence');\n }\n\n captureStart = captureEnd = state.position;\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a double quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a double quoted scalar');\n}\n\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true,\n _line,\n _tag = state.tag,\n _result,\n _anchor = state.anchor,\n following,\n terminator,\n isPair,\n isExplicitPair,\n isMapping,\n overridableKeys = {},\n keyNode,\n keyTag,\n valueNode,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x5B/* [ */) {\n terminator = 0x5D;/* ] */\n isMapping = false;\n _result = [];\n } else if (ch === 0x7B/* { */) {\n terminator = 0x7D;/* } */\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? 'mapping' : 'sequence';\n state.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state, 'missed comma between flow collection entries');\n }\n\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n\n if (ch === 0x3F/* ? */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n\n if (isMapping) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode);\n } else if (isPair) {\n _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode));\n } else {\n _result.push(keyNode);\n }\n\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x2C/* , */) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a flow collection');\n}\n\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart,\n folding,\n chomping = CHOMPING_CLIP,\n didReadContent = false,\n detectedIndent = false,\n textIndent = nodeIndent,\n emptyLines = 0,\n atMoreIndented = false,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x7C/* | */) {\n folding = false;\n } else if (ch === 0x3E/* > */) {\n folding = true;\n } else {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {\n if (CHOMPING_CLIP === chomping) {\n chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, 'repeat of a chomping mode identifier');\n }\n\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state, 'repeat of an indentation width identifier');\n }\n\n } else {\n break;\n }\n }\n\n if (is_WHITE_SPACE(ch)) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (is_WHITE_SPACE(ch));\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (!is_EOL(ch) && (ch !== 0));\n }\n }\n\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n\n ch = state.input.charCodeAt(state.position);\n\n while ((!detectedIndent || state.lineIndent < textIndent) &&\n (ch === 0x20/* Space */)) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n\n // End of the scalar.\n if (state.lineIndent < textIndent) {\n\n // Perform the chomping.\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) { // i.e. only if the scalar is not empty.\n state.result += '\\n';\n }\n }\n\n // Break this `while` cycle and go to the funciton's epilogue.\n break;\n }\n\n // Folded style: use fancy rules to handle line breaks.\n if (folding) {\n\n // Lines starting with white space characters (more-indented lines) are not folded.\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n // except for the first content line (cf. Example 8.1)\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n\n // End of more-indented block.\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat('\\n', emptyLines + 1);\n\n // Just one line break - perceive as the same line.\n } else if (emptyLines === 0) {\n if (didReadContent) { // i.e. only if we have already read some scalar content.\n state.result += ' ';\n }\n\n // Several line breaks - perceive as different lines.\n } else {\n state.result += common.repeat('\\n', emptyLines);\n }\n\n // Literal style: just add exact number of line breaks between content lines.\n } else {\n // Keep all line breaks except the header line break.\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n }\n\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n\n while (!is_EOL(ch) && (ch !== 0)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, state.position, false);\n }\n\n return true;\n}\n\nfunction readBlockSequence(state, nodeIndent) {\n var _line,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = [],\n following,\n detected = false,\n ch;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n\n if (ch !== 0x2D/* - */) {\n break;\n }\n\n following = state.input.charCodeAt(state.position + 1);\n\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n\n detected = true;\n state.position++;\n\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a sequence entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'sequence';\n state.result = _result;\n return true;\n }\n return false;\n}\n\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following,\n allowCompact,\n _line,\n _pos,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = {},\n overridableKeys = {},\n keyTag = null,\n keyNode = null,\n valueNode = null,\n atExplicitKey = false,\n detected = false,\n ch;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line; // Save the current line.\n _pos = state.position;\n\n //\n // Explicit notation case. There are two separate blocks:\n // first for the key (denoted by \"?\") and second for the value (denoted by \":\")\n //\n if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {\n\n if (ch === 0x3F/* ? */) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n\n } else if (atExplicitKey) {\n // i.e. 0x3A/* : */ === character after the explicit key.\n atExplicitKey = false;\n allowCompact = true;\n\n } else {\n throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');\n }\n\n state.position += 1;\n ch = following;\n\n //\n // Implicit notation case. Flow-style node as the key first, then \":\", and the value.\n //\n } else if (composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x3A/* : */) {\n ch = state.input.charCodeAt(++state.position);\n\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');\n }\n\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n\n } else if (detected) {\n throwError(state, 'can not read an implicit mapping pair; a colon is missed');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else if (detected) {\n throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else {\n break; // Reading is done. Go to the epilogue.\n }\n\n //\n // Common reading code for both explicit and implicit notations.\n //\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n } else {\n valueNode = state.result;\n }\n }\n\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _pos);\n keyTag = keyNode = valueNode = null;\n }\n\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n\n if (state.lineIndent > nodeIndent && (ch !== 0)) {\n throwError(state, 'bad indentation of a mapping entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n //\n // Epilogue.\n //\n\n // Special case: last mapping's node contains only the key in explicit notation.\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);\n }\n\n // Expose the resulting mapping.\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'mapping';\n state.result = _result;\n }\n\n return detected;\n}\n\nfunction readTagProperty(state) {\n var _position,\n isVerbatim = false,\n isNamed = false,\n tagHandle,\n tagName,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x21/* ! */) return false;\n\n if (state.tag !== null) {\n throwError(state, 'duplication of a tag property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x3C/* < */) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n\n } else if (ch === 0x21/* ! */) {\n isNamed = true;\n tagHandle = '!!';\n ch = state.input.charCodeAt(++state.position);\n\n } else {\n tagHandle = '!';\n }\n\n _position = state.position;\n\n if (isVerbatim) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && ch !== 0x3E/* > */);\n\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else {\n throwError(state, 'unexpected end of the stream within a verbatim tag');\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n\n if (ch === 0x21/* ! */) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, 'named tag handle cannot contain such characters');\n }\n\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, 'tag suffix cannot contain exclamation marks');\n }\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n tagName = state.input.slice(_position, state.position);\n\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, 'tag suffix cannot contain flow indicator characters');\n }\n }\n\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, 'tag name cannot contain such characters: ' + tagName);\n }\n\n if (isVerbatim) {\n state.tag = tagName;\n\n } else if (_hasOwnProperty.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n\n } else if (tagHandle === '!') {\n state.tag = '!' + tagName;\n\n } else if (tagHandle === '!!') {\n state.tag = 'tag:yaml.org,2002:' + tagName;\n\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n\n return true;\n}\n\nfunction readAnchorProperty(state) {\n var _position,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x26/* & */) return false;\n\n if (state.anchor !== null) {\n throwError(state, 'duplication of an anchor property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an anchor node must contain at least one character');\n }\n\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\n\nfunction readAlias(state) {\n var _position, alias,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x2A/* * */) return false;\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an alias node must contain at least one character');\n }\n\n alias = state.input.slice(_position, state.position);\n\n if (!_hasOwnProperty.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\n\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles,\n allowBlockScalars,\n allowBlockCollections,\n indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this<parent\n atNewLine = false,\n hasContent = false,\n typeIndex,\n typeQuantity,\n type,\n flowIndent,\n blockIndent;\n\n if (state.listener !== null) {\n state.listener('open', state);\n }\n\n state.tag = null;\n state.anchor = null;\n state.kind = null;\n state.result = null;\n\n allowBlockStyles = allowBlockScalars = allowBlockCollections =\n CONTEXT_BLOCK_OUT === nodeContext ||\n CONTEXT_BLOCK_IN === nodeContext;\n\n if (allowToSeek) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n\n blockIndent = state.position - state.lineStart;\n\n if (indentStatus === 1) {\n if (allowBlockCollections &&\n (readBlockSequence(state, blockIndent) ||\n readBlockMapping(state, blockIndent, flowIndent)) ||\n readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||\n readSingleQuotedScalar(state, flowIndent) ||\n readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n\n } else if (readAlias(state)) {\n hasContent = true;\n\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, 'alias node should not have any properties');\n }\n\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n\n if (state.tag === null) {\n state.tag = '?';\n }\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n // Special case: block sequences are allowed to have same indentation level as the parent.\n // http://www.yaml.org/spec/1.2/spec.html#id2799784\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n\n if (state.tag !== null && state.tag !== '!') {\n if (state.tag === '?') {\n // Implicit resolving is not allowed for non-scalar types, and '?'\n // non-specific tag is only automatically assigned to plain scalars.\n //\n // We only need to check kind conformity in case user explicitly assigns '?'\n // tag, for example like this: \"!<?> [0]\"\n //\n if (state.result !== null && state.kind !== 'scalar') {\n throwError(state, 'unacceptable node kind for !<?> tag; it should be \"scalar\", not \"' + state.kind + '\"');\n }\n\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type = state.implicitTypes[typeIndex];\n\n if (type.resolve(state.result)) { // `state.result` updated in resolver if matched\n state.result = type.construct(state.result);\n state.tag = type.tag;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n } else if (_hasOwnProperty.call(state.typeMap[state.kind || 'fallback'], state.tag)) {\n type = state.typeMap[state.kind || 'fallback'][state.tag];\n\n if (state.result !== null && type.kind !== state.kind) {\n throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be \"' + type.kind + '\", not \"' + state.kind + '\"');\n }\n\n if (!type.resolve(state.result)) { // `state.result` updated in resolver if matched\n throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');\n } else {\n state.result = type.construct(state.result);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else {\n throwError(state, 'unknown tag !<' + state.tag + '>');\n }\n }\n\n if (state.listener !== null) {\n state.listener('close', state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\n\nfunction readDocument(state) {\n var documentStart = state.position,\n _position,\n directiveName,\n directiveArgs,\n hasDirectives = false,\n ch;\n\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = {};\n state.anchorMap = {};\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if (state.lineIndent > 0 || ch !== 0x25/* % */) {\n break;\n }\n\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n\n if (directiveName.length < 1) {\n throwError(state, 'directive name must not be less than one character in length');\n }\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && !is_EOL(ch));\n break;\n }\n\n if (is_EOL(ch)) break;\n\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n\n if (ch !== 0) readLineBreak(state);\n\n if (_hasOwnProperty.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n } else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n\n skipSeparationSpace(state, true, -1);\n\n if (state.lineIndent === 0 &&\n state.input.charCodeAt(state.position) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n\n } else if (hasDirectives) {\n throwError(state, 'directives end mark is expected');\n }\n\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n\n if (state.checkLineBreaks &&\n PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, 'non-ASCII line breaks are interpreted as content');\n }\n\n state.documents.push(state.result);\n\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n\n if (state.input.charCodeAt(state.position) === 0x2E/* . */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n\n if (state.position < (state.length - 1)) {\n throwError(state, 'end of the stream or a document separator is expected');\n } else {\n return;\n }\n}\n\n\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n\n if (input.length !== 0) {\n\n // Add tailing `\\n` if not exists\n if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&\n input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {\n input += '\\n';\n }\n\n // Strip BOM\n if (input.charCodeAt(0) === 0xFEFF) {\n input = input.slice(1);\n }\n }\n\n var state = new State(input, options);\n\n var nullpos = input.indexOf('\\0');\n\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, 'null byte is not allowed in input');\n }\n\n // Use 0 as string terminator. That significantly simplifies bounds check.\n state.input += '\\0';\n\n while (state.input.charCodeAt(state.position) === 0x20/* Space */) {\n state.lineIndent += 1;\n state.position += 1;\n }\n\n while (state.position < (state.length - 1)) {\n readDocument(state);\n }\n\n return state.documents;\n}\n\n\nfunction loadAll(input, iterator, options) {\n if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n var documents = loadDocuments(input, options);\n\n if (typeof iterator !== 'function') {\n return documents;\n }\n\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\n\n\nfunction load(input, options) {\n var documents = loadDocuments(input, options);\n\n if (documents.length === 0) {\n /*eslint-disable no-undefined*/\n return undefined;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new YAMLException('expected a single document in the stream, but found more');\n}\n\n\nfunction safeLoadAll(input, iterator, options) {\n if (typeof iterator === 'object' && iterator !== null && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n return loadAll(input, iterator, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options));\n}\n\n\nfunction safeLoad(input, options) {\n return load(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options));\n}\n\n\nmodule.exports.loadAll = loadAll;\nmodule.exports.load = load;\nmodule.exports.safeLoadAll = safeLoadAll;\nmodule.exports.safeLoad = safeLoad;\n","'use strict';\n\n/*eslint-disable no-use-before-define*/\n\nvar common = require('./common');\nvar YAMLException = require('./exception');\nvar DEFAULT_FULL_SCHEMA = require('./schema/default_full');\nvar DEFAULT_SAFE_SCHEMA = require('./schema/default_safe');\n\nvar _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar CHAR_TAB = 0x09; /* Tab */\nvar CHAR_LINE_FEED = 0x0A; /* LF */\nvar CHAR_CARRIAGE_RETURN = 0x0D; /* CR */\nvar CHAR_SPACE = 0x20; /* Space */\nvar CHAR_EXCLAMATION = 0x21; /* ! */\nvar CHAR_DOUBLE_QUOTE = 0x22; /* \" */\nvar CHAR_SHARP = 0x23; /* # */\nvar CHAR_PERCENT = 0x25; /* % */\nvar CHAR_AMPERSAND = 0x26; /* & */\nvar CHAR_SINGLE_QUOTE = 0x27; /* ' */\nvar CHAR_ASTERISK = 0x2A; /* * */\nvar CHAR_COMMA = 0x2C; /* , */\nvar CHAR_MINUS = 0x2D; /* - */\nvar CHAR_COLON = 0x3A; /* : */\nvar CHAR_EQUALS = 0x3D; /* = */\nvar CHAR_GREATER_THAN = 0x3E; /* > */\nvar CHAR_QUESTION = 0x3F; /* ? */\nvar CHAR_COMMERCIAL_AT = 0x40; /* @ */\nvar CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */\nvar CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */\nvar CHAR_GRAVE_ACCENT = 0x60; /* ` */\nvar CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */\nvar CHAR_VERTICAL_LINE = 0x7C; /* | */\nvar CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */\n\nvar ESCAPE_SEQUENCES = {};\n\nESCAPE_SEQUENCES[0x00] = '\\\\0';\nESCAPE_SEQUENCES[0x07] = '\\\\a';\nESCAPE_SEQUENCES[0x08] = '\\\\b';\nESCAPE_SEQUENCES[0x09] = '\\\\t';\nESCAPE_SEQUENCES[0x0A] = '\\\\n';\nESCAPE_SEQUENCES[0x0B] = '\\\\v';\nESCAPE_SEQUENCES[0x0C] = '\\\\f';\nESCAPE_SEQUENCES[0x0D] = '\\\\r';\nESCAPE_SEQUENCES[0x1B] = '\\\\e';\nESCAPE_SEQUENCES[0x22] = '\\\\\"';\nESCAPE_SEQUENCES[0x5C] = '\\\\\\\\';\nESCAPE_SEQUENCES[0x85] = '\\\\N';\nESCAPE_SEQUENCES[0xA0] = '\\\\_';\nESCAPE_SEQUENCES[0x2028] = '\\\\L';\nESCAPE_SEQUENCES[0x2029] = '\\\\P';\n\nvar DEPRECATED_BOOLEANS_SYNTAX = [\n 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',\n 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'\n];\n\nfunction compileStyleMap(schema, map) {\n var result, keys, index, length, tag, style, type;\n\n if (map === null) return {};\n\n result = {};\n keys = Object.keys(map);\n\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map[tag]);\n\n if (tag.slice(0, 2) === '!!') {\n tag = 'tag:yaml.org,2002:' + tag.slice(2);\n }\n type = schema.compiledTypeMap['fallback'][tag];\n\n if (type && _hasOwnProperty.call(type.styleAliases, style)) {\n style = type.styleAliases[style];\n }\n\n result[tag] = style;\n }\n\n return result;\n}\n\nfunction encodeHex(character) {\n var string, handle, length;\n\n string = character.toString(16).toUpperCase();\n\n if (character <= 0xFF) {\n handle = 'x';\n length = 2;\n } else if (character <= 0xFFFF) {\n handle = 'u';\n length = 4;\n } else if (character <= 0xFFFFFFFF) {\n handle = 'U';\n length = 8;\n } else {\n throw new YAMLException('code point within a string may not be greater than 0xFFFFFFFF');\n }\n\n return '\\\\' + handle + common.repeat('0', length - string.length) + string;\n}\n\nfunction State(options) {\n this.schema = options['schema'] || DEFAULT_FULL_SCHEMA;\n this.indent = Math.max(1, (options['indent'] || 2));\n this.noArrayIndent = options['noArrayIndent'] || false;\n this.skipInvalid = options['skipInvalid'] || false;\n this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);\n this.styleMap = compileStyleMap(this.schema, options['styles'] || null);\n this.sortKeys = options['sortKeys'] || false;\n this.lineWidth = options['lineWidth'] || 80;\n this.noRefs = options['noRefs'] || false;\n this.noCompatMode = options['noCompatMode'] || false;\n this.condenseFlow = options['condenseFlow'] || false;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n\n this.tag = null;\n this.result = '';\n\n this.duplicates = [];\n this.usedDuplicates = null;\n}\n\n// Indents every line in a string. Empty lines (\\n only) are not indented.\nfunction indentString(string, spaces) {\n var ind = common.repeat(' ', spaces),\n position = 0,\n next = -1,\n result = '',\n line,\n length = string.length;\n\n while (position < length) {\n next = string.indexOf('\\n', position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n\n if (line.length && line !== '\\n') result += ind;\n\n result += line;\n }\n\n return result;\n}\n\nfunction generateNextLine(state, level) {\n return '\\n' + common.repeat(' ', state.indent * level);\n}\n\nfunction testImplicitResolving(state, str) {\n var index, length, type;\n\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type = state.implicitTypes[index];\n\n if (type.resolve(str)) {\n return true;\n }\n }\n\n return false;\n}\n\n// [33] s-white ::= s-space | s-tab\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\n\n// Returns true if the character can be printed without escaping.\n// From YAML 1.2: \"any allowed characters known to be non-printable\n// should also be escaped. [However,] This isn’t mandatory\"\n// Derived from nb-char - \\t - #x85 - #xA0 - #x2028 - #x2029.\nfunction isPrintable(c) {\n return (0x00020 <= c && c <= 0x00007E)\n || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)\n || ((0x0E000 <= c && c <= 0x00FFFD) && c !== 0xFEFF /* BOM */)\n || (0x10000 <= c && c <= 0x10FFFF);\n}\n\n// [34] ns-char ::= nb-char - s-white\n// [27] nb-char ::= c-printable - b-char - c-byte-order-mark\n// [26] b-char ::= b-line-feed | b-carriage-return\n// [24] b-line-feed ::= #xA /* LF */\n// [25] b-carriage-return ::= #xD /* CR */\n// [3] c-byte-order-mark ::= #xFEFF\nfunction isNsChar(c) {\n return isPrintable(c) && !isWhitespace(c)\n // byte-order-mark\n && c !== 0xFEFF\n // b-char\n && c !== CHAR_CARRIAGE_RETURN\n && c !== CHAR_LINE_FEED;\n}\n\n// Simplified test for values allowed after the first character in plain style.\nfunction isPlainSafe(c, prev) {\n // Uses a subset of nb-char - c-flow-indicator - \":\" - \"#\"\n // where nb-char ::= c-printable - b-char - c-byte-order-mark.\n return isPrintable(c) && c !== 0xFEFF\n // - c-flow-indicator\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // - \":\" - \"#\"\n // /* An ns-char preceding */ \"#\"\n && c !== CHAR_COLON\n && ((c !== CHAR_SHARP) || (prev && isNsChar(prev)));\n}\n\n// Simplified test for values allowed as the first character in plain style.\nfunction isPlainSafeFirst(c) {\n // Uses a subset of ns-char - c-indicator\n // where ns-char = nb-char - s-white.\n return isPrintable(c) && c !== 0xFEFF\n && !isWhitespace(c) // - s-white\n // - (c-indicator ::=\n // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”\n && c !== CHAR_MINUS\n && c !== CHAR_QUESTION\n && c !== CHAR_COLON\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “\"”\n && c !== CHAR_SHARP\n && c !== CHAR_AMPERSAND\n && c !== CHAR_ASTERISK\n && c !== CHAR_EXCLAMATION\n && c !== CHAR_VERTICAL_LINE\n && c !== CHAR_EQUALS\n && c !== CHAR_GREATER_THAN\n && c !== CHAR_SINGLE_QUOTE\n && c !== CHAR_DOUBLE_QUOTE\n // | “%” | “@” | “`”)\n && c !== CHAR_PERCENT\n && c !== CHAR_COMMERCIAL_AT\n && c !== CHAR_GRAVE_ACCENT;\n}\n\n// Determines whether block indentation indicator is required.\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\n\nvar STYLE_PLAIN = 1,\n STYLE_SINGLE = 2,\n STYLE_LITERAL = 3,\n STYLE_FOLDED = 4,\n STYLE_DOUBLE = 5;\n\n// Determines which scalar styles are possible and returns the preferred style.\n// lineWidth = -1 => no limit.\n// Pre-conditions: str.length > 0.\n// Post-conditions:\n// STYLE_PLAIN or STYLE_SINGLE => no \\n are in the string.\n// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).\n// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType) {\n var i;\n var char, prev_char;\n var hasLineBreak = false;\n var hasFoldableLine = false; // only checked if shouldTrackWidth\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1; // count the first line correctly\n var plain = isPlainSafeFirst(string.charCodeAt(0))\n && !isWhitespace(string.charCodeAt(string.length - 1));\n\n if (singleLineOnly) {\n // Case: no block styles.\n // Check for disallowed characters to rule out plain and single.\n for (i = 0; i < string.length; i++) {\n char = string.charCodeAt(i);\n if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n prev_char = i > 0 ? string.charCodeAt(i - 1) : null;\n plain = plain && isPlainSafe(char, prev_char);\n }\n } else {\n // Case: block styles permitted.\n for (i = 0; i < string.length; i++) {\n char = string.charCodeAt(i);\n if (char === CHAR_LINE_FEED) {\n hasLineBreak = true;\n // Check if any line can be folded.\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine ||\n // Foldable line = too long, and not more-indented.\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' ');\n previousLineBreak = i;\n }\n } else if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n prev_char = i > 0 ? string.charCodeAt(i - 1) : null;\n plain = plain && isPlainSafe(char, prev_char);\n }\n // in case the end is missing a \\n\n hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' '));\n }\n // Although every style can represent \\n without escaping, prefer block styles\n // for multiline, since they're more readable and they don't add empty lines.\n // Also prefer folding a super-long line.\n if (!hasLineBreak && !hasFoldableLine) {\n // Strings interpretable as another type have to be quoted;\n // e.g. the string 'true' vs. the boolean true.\n return plain && !testAmbiguousType(string)\n ? STYLE_PLAIN : STYLE_SINGLE;\n }\n // Edge case: block indentation indicator can only have one digit.\n if (indentPerLevel > 9 && needIndentIndicator(string)) {\n return STYLE_DOUBLE;\n }\n // At this point we know block styles are valid.\n // Prefer literal style unless we want to fold.\n return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n}\n\n// Note: line breaking/folding is implemented for only the folded style.\n// NB. We drop the last trailing newline (if any) of a returned block scalar\n// since the dumper adds its own newline. This always works:\n// • No ending newline => unaffected; already using strip \"-\" chomping.\n// • Ending newline => removed then restored.\n// Importantly, this keeps the \"+\" chomp indicator from gaining an extra line.\nfunction writeScalar(state, string, level, iskey) {\n state.dump = (function () {\n if (string.length === 0) {\n return \"''\";\n }\n if (!state.noCompatMode &&\n DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1) {\n return \"'\" + string + \"'\";\n }\n\n var indent = state.indent * Math.max(1, level); // no 0-indent scalars\n // As indentation gets deeper, let the width decrease monotonically\n // to the lower bound min(state.lineWidth, 40).\n // Note that this implies\n // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.\n // state.lineWidth > 40 + state.indent: width decreases until the lower bound.\n // This behaves better than a constant minimum width which disallows narrower options,\n // or an indent threshold which causes the width to suddenly increase.\n var lineWidth = state.lineWidth === -1\n ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n\n // Without knowing if keys are implicit/explicit, assume implicit for safety.\n var singleLineOnly = iskey\n // No block styles in flow mode.\n || (state.flowLevel > -1 && level >= state.flowLevel);\n function testAmbiguity(string) {\n return testImplicitResolving(state, string);\n }\n\n switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth, testAmbiguity)) {\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return '|' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return '>' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string, lineWidth) + '\"';\n default:\n throw new YAMLException('impossible error: invalid scalar style');\n }\n }());\n}\n\n// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';\n\n // note the special case: the string '\\n' counts as a \"trailing\" empty line.\n var clip = string[string.length - 1] === '\\n';\n var keep = clip && (string[string.length - 2] === '\\n' || string === '\\n');\n var chomp = keep ? '+' : (clip ? '' : '-');\n\n return indentIndicator + chomp + '\\n';\n}\n\n// (See the note for writeScalar.)\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === '\\n' ? string.slice(0, -1) : string;\n}\n\n// Note: a long line without a suitable break point will exceed the width limit.\n// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.\nfunction foldString(string, width) {\n // In folded style, $k$ consecutive newlines output as $k+1$ newlines—\n // unless they're before or after a more-indented line, or at the very\n // beginning or end, in which case $k$ maps to $k$.\n // Therefore, parse each chunk as newline(s) followed by a content line.\n var lineRe = /(\\n+)([^\\n]*)/g;\n\n // first line (possibly an empty line)\n var result = (function () {\n var nextLF = string.indexOf('\\n');\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine(string.slice(0, nextLF), width);\n }());\n // If we haven't reached the first content line yet, don't add an extra \\n.\n var prevMoreIndented = string[0] === '\\n' || string[0] === ' ';\n var moreIndented;\n\n // rest of the lines\n var match;\n while ((match = lineRe.exec(string))) {\n var prefix = match[1], line = match[2];\n moreIndented = (line[0] === ' ');\n result += prefix\n + (!prevMoreIndented && !moreIndented && line !== ''\n ? '\\n' : '')\n + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n\n return result;\n}\n\n// Greedy line breaking.\n// Picks the longest line under the limit each time,\n// otherwise settles for the shortest line over the limit.\n// NB. More-indented lines *cannot* be folded, as that would add an extra \\n.\nfunction foldLine(line, width) {\n if (line === '' || line[0] === ' ') return line;\n\n // Since a more-indented line adds a \\n, breaks can't be followed by a space.\n var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.\n var match;\n // start is an inclusive index. end, curr, and next are exclusive.\n var start = 0, end, curr = 0, next = 0;\n var result = '';\n\n // Invariants: 0 <= start <= length-1.\n // 0 <= curr <= next <= max(0, length-2). curr - start <= width.\n // Inside the loop:\n // A match implies length >= 2, so curr and next are <= length-2.\n while ((match = breakRe.exec(line))) {\n next = match.index;\n // maintain invariant: curr - start <= width\n if (next - start > width) {\n end = (curr > start) ? curr : next; // derive end <= length-2\n result += '\\n' + line.slice(start, end);\n // skip the space that was output as \\n\n start = end + 1; // derive start <= length-1\n }\n curr = next;\n }\n\n // By the invariants, start <= length-1, so there is something left over.\n // It is either the whole string or a part starting from non-whitespace.\n result += '\\n';\n // Insert a break if the remainder is too long and there is a break available.\n if (line.length - start > width && curr > start) {\n result += line.slice(start, curr) + '\\n' + line.slice(curr + 1);\n } else {\n result += line.slice(start);\n }\n\n return result.slice(1); // drop extra \\n joiner\n}\n\n// Escapes a double-quoted string.\nfunction escapeString(string) {\n var result = '';\n var char, nextChar;\n var escapeSeq;\n\n for (var i = 0; i < string.length; i++) {\n char = string.charCodeAt(i);\n // Check for surrogate pairs (reference Unicode 3.0 section \"3.7 Surrogates\").\n if (char >= 0xD800 && char <= 0xDBFF/* high surrogate */) {\n nextChar = string.charCodeAt(i + 1);\n if (nextChar >= 0xDC00 && nextChar <= 0xDFFF/* low surrogate */) {\n // Combine the surrogate pair and store it escaped.\n result += encodeHex((char - 0xD800) * 0x400 + nextChar - 0xDC00 + 0x10000);\n // Advance index one extra since we already used that char here.\n i++; continue;\n }\n }\n escapeSeq = ESCAPE_SEQUENCES[char];\n result += !escapeSeq && isPrintable(char)\n ? string[i]\n : escapeSeq || encodeHex(char);\n }\n\n return result;\n}\n\nfunction writeFlowSequence(state, level, object) {\n var _result = '',\n _tag = state.tag,\n index,\n length;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n // Write only valid elements.\n if (writeNode(state, level, object[index], false, false)) {\n if (index !== 0) _result += ',' + (!state.condenseFlow ? ' ' : '');\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = '[' + _result + ']';\n}\n\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n index,\n length;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n // Write only valid elements.\n if (writeNode(state, level + 1, object[index], true, true)) {\n if (!compact || index !== 0) {\n _result += generateNextLine(state, level);\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n _result += '-';\n } else {\n _result += '- ';\n }\n\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = _result || '[]'; // Empty sequence if no valid values.\n}\n\nfunction writeFlowMapping(state, level, object) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n pairBuffer;\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n\n pairBuffer = '';\n if (index !== 0) pairBuffer += ', ';\n\n if (state.condenseFlow) pairBuffer += '\"';\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (!writeNode(state, level, objectKey, false, false)) {\n continue; // Skip this pair because of invalid key;\n }\n\n if (state.dump.length > 1024) pairBuffer += '? ';\n\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : '') + ':' + (state.condenseFlow ? '' : ' ');\n\n if (!writeNode(state, level, objectValue, false, false)) {\n continue; // Skip this pair because of invalid value.\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = '{' + _result + '}';\n}\n\nfunction writeBlockMapping(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n explicitPair,\n pairBuffer;\n\n // Allow sorting keys so that the output file is deterministic\n if (state.sortKeys === true) {\n // Default sorting\n objectKeyList.sort();\n } else if (typeof state.sortKeys === 'function') {\n // Custom sort function\n objectKeyList.sort(state.sortKeys);\n } else if (state.sortKeys) {\n // Something is wrong\n throw new YAMLException('sortKeys must be a boolean or a function');\n }\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = '';\n\n if (!compact || index !== 0) {\n pairBuffer += generateNextLine(state, level);\n }\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (!writeNode(state, level + 1, objectKey, true, true, true)) {\n continue; // Skip this pair because of invalid key.\n }\n\n explicitPair = (state.tag !== null && state.tag !== '?') ||\n (state.dump && state.dump.length > 1024);\n\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += '?';\n } else {\n pairBuffer += '? ';\n }\n }\n\n pairBuffer += state.dump;\n\n if (explicitPair) {\n pairBuffer += generateNextLine(state, level);\n }\n\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {\n continue; // Skip this pair because of invalid value.\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += ':';\n } else {\n pairBuffer += ': ';\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = _result || '{}'; // Empty mapping if no valid pairs.\n}\n\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type, style;\n\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type = typeList[index];\n\n if ((type.instanceOf || type.predicate) &&\n (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&\n (!type.predicate || type.predicate(object))) {\n\n state.tag = explicit ? type.tag : '?';\n\n if (type.represent) {\n style = state.styleMap[type.tag] || type.defaultStyle;\n\n if (_toString.call(type.represent) === '[object Function]') {\n _result = type.represent(object, style);\n } else if (_hasOwnProperty.call(type.represent, style)) {\n _result = type.represent[style](object, style);\n } else {\n throw new YAMLException('!<' + type.tag + '> tag resolver accepts not \"' + style + '\" style');\n }\n\n state.dump = _result;\n }\n\n return true;\n }\n }\n\n return false;\n}\n\n// Serializes `object` and writes it to global `result`.\n// Returns true on success, or false on invalid object.\n//\nfunction writeNode(state, level, object, block, compact, iskey) {\n state.tag = null;\n state.dump = object;\n\n if (!detectType(state, object, false)) {\n detectType(state, object, true);\n }\n\n var type = _toString.call(state.dump);\n\n if (block) {\n block = (state.flowLevel < 0 || state.flowLevel > level);\n }\n\n var objectOrArray = type === '[object Object]' || type === '[object Array]',\n duplicateIndex,\n duplicate;\n\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n\n if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {\n compact = false;\n }\n\n if (duplicate && state.usedDuplicates[duplicateIndex]) {\n state.dump = '*ref_' + duplicateIndex;\n } else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {\n state.usedDuplicates[duplicateIndex] = true;\n }\n if (type === '[object Object]') {\n if (block && (Object.keys(state.dump).length !== 0)) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object Array]') {\n var arrayLevel = (state.noArrayIndent && (level > 0)) ? level - 1 : level;\n if (block && (state.dump.length !== 0)) {\n writeBlockSequence(state, arrayLevel, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowSequence(state, arrayLevel, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object String]') {\n if (state.tag !== '?') {\n writeScalar(state, state.dump, level, iskey);\n }\n } else {\n if (state.skipInvalid) return false;\n throw new YAMLException('unacceptable kind of an object to dump ' + type);\n }\n\n if (state.tag !== null && state.tag !== '?') {\n state.dump = '!<' + state.tag + '> ' + state.dump;\n }\n }\n\n return true;\n}\n\nfunction getDuplicateReferences(object, state) {\n var objects = [],\n duplicatesIndexes = [],\n index,\n length;\n\n inspectNode(object, objects, duplicatesIndexes);\n\n for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {\n state.duplicates.push(objects[duplicatesIndexes[index]]);\n }\n state.usedDuplicates = new Array(length);\n}\n\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList,\n index,\n length;\n\n if (object !== null && typeof object === 'object') {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) {\n duplicatesIndexes.push(index);\n }\n } else {\n objects.push(object);\n\n if (Array.isArray(object)) {\n for (index = 0, length = object.length; index < length; index += 1) {\n inspectNode(object[index], objects, duplicatesIndexes);\n }\n } else {\n objectKeyList = Object.keys(object);\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n}\n\nfunction dump(input, options) {\n options = options || {};\n\n var state = new State(options);\n\n if (!state.noRefs) getDuplicateReferences(input, state);\n\n if (writeNode(state, 0, input, true, true)) return state.dump + '\\n';\n\n return '';\n}\n\nfunction safeDump(input, options) {\n return dump(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options));\n}\n\nmodule.exports.dump = dump;\nmodule.exports.safeDump = safeDump;\n","'use strict';\n\n\nvar loader = require('./js-yaml/loader');\nvar dumper = require('./js-yaml/dumper');\n\n\nfunction deprecated(name) {\n return function () {\n throw new Error('Function ' + name + ' is deprecated and cannot be used.');\n };\n}\n\n\nmodule.exports.Type = require('./js-yaml/type');\nmodule.exports.Schema = require('./js-yaml/schema');\nmodule.exports.FAILSAFE_SCHEMA = require('./js-yaml/schema/failsafe');\nmodule.exports.JSON_SCHEMA = require('./js-yaml/schema/json');\nmodule.exports.CORE_SCHEMA = require('./js-yaml/schema/core');\nmodule.exports.DEFAULT_SAFE_SCHEMA = require('./js-yaml/schema/default_safe');\nmodule.exports.DEFAULT_FULL_SCHEMA = require('./js-yaml/schema/default_full');\nmodule.exports.load = loader.load;\nmodule.exports.loadAll = loader.loadAll;\nmodule.exports.safeLoad = loader.safeLoad;\nmodule.exports.safeLoadAll = loader.safeLoadAll;\nmodule.exports.dump = dumper.dump;\nmodule.exports.safeDump = dumper.safeDump;\nmodule.exports.YAMLException = require('./js-yaml/exception');\n\n// Deprecated schema names from JS-YAML 2.0.x\nmodule.exports.MINIMAL_SCHEMA = require('./js-yaml/schema/failsafe');\nmodule.exports.SAFE_SCHEMA = require('./js-yaml/schema/default_safe');\nmodule.exports.DEFAULT_SCHEMA = require('./js-yaml/schema/default_full');\n\n// Deprecated functions from JS-YAML 1.x.x\nmodule.exports.scan = deprecated('scan');\nmodule.exports.parse = deprecated('parse');\nmodule.exports.compose = deprecated('compose');\nmodule.exports.addConstructor = deprecated('addConstructor');\n","'use strict';\n\n\nvar yaml = require('./lib/js-yaml.js');\n\n\nmodule.exports = yaml;\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","import type { DataModel } from '@mcschema/core'\nimport { Path } from '@mcschema/core'\nimport yaml from 'js-yaml'\nimport { route } from 'preact-router'\nimport rfdc from 'rfdc'\nimport config from '../config.json'\n\nexport function isPromise(obj: any): obj is Promise<any> {\n\treturn typeof (obj as any)?.then === 'function' \n}\n\nexport function isObject(obj: any): obj is Record<string, 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 (isObject(dimensions)) {\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(['placement', 'salt']), Math.abs(seed), true)\n\tmodel.set(new Path(['generator', 'seed']), seed, true)\n\tmodel.set(new Path(['generator', 'biome_source', 'seed']), seed)\n}\n\nexport function htmlEncode(str: string) {\n\treturn str.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>')\n\t\t.replace(/\"/g, '"').replace(/'/g, ''').replace(/\\//g, '/')\n}\n\nexport function hashString(s: string) {\n\tlet h = 0\n\tfor(let i = 0; i < s.length; i++)\n\t\th = Math.imul(31, h) + s.charCodeAt(i) | 0\n\treturn h\n}\n\nexport function cleanUrl(url: string) {\n\treturn `/${url}/`.replaceAll('//', '/')\n}\n\nexport function getPath(url: string) {\n\tconst searchIndex = url.indexOf('?')\n\tif (searchIndex >= 0) {\n\t\turl = url.slice(0, searchIndex)\n\t}\n\treturn cleanUrl(url)\n}\n\nexport function getGenerator(url: string) {\n\tconst trimmedUrl = getPath(url).replace(/^\\//, '').replace(/\\/$/, '')\n\treturn config.generators.find(g => g.url === trimmedUrl)\n}\n\nexport function changeUrl({ path, search, hash, replace }: { path?: string, search?: string, hash?: string, replace?: boolean }) {\n\tconst url = (path !== undefined ? cleanUrl(path) : location.pathname)\n\t\t+ (search !== undefined ? (search.startsWith('?') || search.length === 0 ? search : '?' + search) : location.search)\n\t\t+ (hash !== undefined ? (hash.startsWith('#') ? hash : '#' + hash) : location.hash)\n\troute(url, replace)\n}\n\nexport function parseFrontMatter(source: string): Record<string, any> {\n\tconst data = yaml.load(source.substring(3, source.indexOf('---', 3)))\n\tif (!isObject(data)) return {}\n\treturn data\n}\n\nexport function versionContent(content: string, version: string) {\n\tlet cursor = 0\n\twhile (true) {\n\t\tconst start = content.indexOf('{#', cursor)\n\t\tif (start < 0) {\n\t\t\tbreak\n\t\t}\n\t\tconst end = findMatchingClose(content, start + 2)\n\t\tconst vStart = content.indexOf('#[', start + 1)\n\t\tlet sub = ''\n\t\tif (vStart >= 0 && vStart < end) {\n\t\t\tconst vEnd = content.indexOf(']', vStart + 2)\n\t\t\tconst v = content.substring(vStart + 2, vEnd)\n\t\t\tif (v === version) {\n\t\t\t\tsub = content.substring(vEnd + 1, end).trim()\n\t\t\t}\n\t\t} else {\n\t\t\tconst key = content.substring(start + 2, end)\n\t\t\tconst versionConfig = config.versions.find(v => v.id === version)\n\t\t\tsub = ({\n\t\t\t\tversion: versionConfig?.id,\n\t\t\t\tpack_format: versionConfig?.pack_format.toString(),\n\t\t\t} as Record<string, string | undefined>)[key] ?? ''\n\t\t}\n\t\tcontent = content.substring(0, start) + sub + content.substring(end + 2)\n\t\tcursor = start\n\t\t\n\t}\n\treturn content\n}\n\nfunction findMatchingClose(source: string, index: number) {\n\tlet depth = 0\n\tlet iteration = 0\n\twhile (iteration++ < 1000) {\n\t\tconst close = source.indexOf('#}', index)\n\t\tconst open = source.indexOf('{#', index)\n\t\tif (close < 0) {\n\t\t\tconsole.warn('Missing closing bracket')\n\t\t\treturn source.length\n\t\t}\n\t\tif (open < 0) {\n\t\t\tif (depth === 0) {\n\t\t\t\treturn close\n\t\t\t} else {\n\t\t\t\tdepth -= 1\n\t\t\t\tindex = close + 2\n\t\t\t}\n\t\t} else if (open < close) {\n\t\t\tdepth += 1\n\t\t\tindex = open + 2\n\t\t} else if (depth === 0) {\n\t\t\treturn close\n\t\t} else {\n\t\t\tdepth -= 1\n\t\t\tindex = close + 2\n\t\t}\n\t}\n\tconsole.warn('Exceeded max iterations while finding closing bracket')\n\treturn source.length\n}\n\nexport function stringToColor(str: string): [number, number, number] {\n\tconst h = Math.abs(hashString(str))\n\treturn [h % 256, (h >> 8) % 256, (h >> 16) % 256]\n}\n\nexport function square(a: number) {\n\treturn a * a\n}\n\nexport function clamp(a: number, b: number, c: number) {\n\treturn Math.max(a, Math.min(b, c))\n}\n\nexport function clampedLerp(a: number, b: number, c: number): number {\n\tif (c < 0) {\n\t\treturn a\n\t} else if (c > 1) {\n\t\treturn b\n\t} else {\n\t\treturn lerp(c, a, b)\n\t}\n}\n\nexport function lerp(a: number, b: number, c: number): number {\n\treturn b + a * (c - b)\n}\n\nexport function lerp2(a: number, b: number, c: number, d: number, e: number, f: number): number {\n\treturn lerp(b, lerp(a, c, d), lerp(a, e, f))\n}\n\nexport function lerp3(a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) {\n\treturn lerp(c, lerp2(a, b, d, e, f, g), lerp2(a, b, h, i, j, k))\n}\n\nexport function smoothstep(x: number): number {\n\treturn x * x * x * (x * (x * 6 - 15) + 10)\n}\n\nexport function message(e: unknown): string {\n\tif (e instanceof Error) return e.message\n\treturn `${e}`\n}\n\nexport const deepClone = rfdc()\n\n/**\n * MIT License\n * \n * Copyright (c) 2017 Evgeny Poberezkin\n * \n * https://github.com/epoberezkin/fast-deep-equal/blob/master/LICENSE\n */\nexport function deepEqual(a: any, b: any) {\n\tif (a === b) return true\n\n\tif (a && b && typeof a == 'object' && typeof b == 'object') {\n\t\tif (a.constructor !== b.constructor) return false\n\t\tlet length, i\n\t\tif (Array.isArray(a)) {\n\t\t\tlength = a.length\n\t\t\tif (length != b.length) return false\n\t\t\tfor (i = 0; i < length; i++) {\n\t\t\t\tif (!deepEqual(a[i], b[i])) return false\n\t\t\t}\n\t\t\treturn true\n\t\t}\n\t\tif (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf()\n\t\tif (a.toString !== Object.prototype.toString) return a.toString() === b.toString()\n\t\tconst keys = Object.keys(a)\n\t\tlength = keys.length\n\t\tif (length !== Object.keys(b).length) return false\n\t\tfor (i = length; i-- !== 0;)\n\t\t\tif (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false\n\t\tfor (i = length; i-- !== 0;) {\n\t\t\tconst key = keys[i]\n\t\t\tif (!deepEqual(a[key], b[key])) return false\n\t\t}\n\t\treturn true\n\t}\n\treturn a !== a && b !== b\n}\n\nexport class BiMap<A, B> {\n\tprivate readonly forward: Map<A, B>\n\tprivate readonly backward: Map<B, A>\n\n\tconstructor() {\n\t\tthis.forward = new Map()\n\t\tthis.backward = new Map()\n\t}\n\n\tpublic set(a: A, b: B) {\n\t\tthis.forward.set(a, b)\n\t\tthis.backward.set(b, a)\n\t}\n\n\tpublic getA(key: B) {\n\t\treturn this.backward.get(key)\n\t}\n\n\tpublic getB(key: A) {\n\t\treturn this.forward.get(key)\n\t}\n\n\tpublic getOrPut(key: A, defaultValue: B) {\n\t\tconst b = this.forward.get(key)\n\t\tif (b === undefined) {\n\t\t\tthis.set(key, defaultValue)\n\t\t\treturn defaultValue\n\t\t}\n\t\treturn b\n\t}\n}\n","import { useEffect, useRef } from 'preact/hooks'\nimport { Octicon } from '.'\nimport { hexId } from '../Utils'\n\ntype BtnInputProps = {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\tlarge?: boolean,\n\tlarger?: boolean,\n\tdoSelect?: number,\n\tvalue?: string,\n\tplaceholder?: string,\n\tdataList?: string[],\n\tonChange?: (value: string) => unknown,\n}\nexport function BtnInput({ icon, label, large, larger, doSelect, value, placeholder, dataList, onChange }: BtnInputProps) {\n\tconst onInput = onChange === undefined ? () => {} : (e: any) => {\n\t\tconst value = (e.target as HTMLInputElement).value\n\t\tonChange?.(value)\n\t}\n\n\tconst ref = useRef<HTMLInputElement>(null)\n\tuseEffect(() => {\n\t\tif (doSelect && ref.current) {\n\t\t\tref.current.select()\n\t\t}\n\t}, [doSelect])\n\n\tconst dataListId = dataList && hexId()\n\n\treturn <div class={`btn btn-input ${large ? 'large-input' : ''} ${larger ? 'larger-input' : ''}`} onClick={e => e.stopPropagation()}>\n\t\t{icon && Octicon[icon]}\n\t\t{label && <span>{label}</span>}\n\t\t<input ref={ref} type=\"text\" value={value} onChange={onInput} placeholder={placeholder} list={dataListId} />\n\t\t{dataList && <datalist id={dataListId}>\n\t\t\t{dataList.map(e => <option value={e} />)}\n\t\t</datalist>}\n\t</div>\n}\n","import { useRef, useState } from 'preact/hooks'\n\ninterface ActiveTimeoutOptions {\n\tcooldown?: number,\n\tinvert?: boolean,\n\tinitial?: boolean,\n}\nexport function useActiveTimeout({ cooldown, invert, initial }: ActiveTimeoutOptions = {}): [boolean | undefined, () => unknown] {\n\tconst [active, setActive] = useState(initial)\n\tconst timeout = useRef<number | undefined>(undefined)\n\n\tconst trigger = () => {\n\t\tsetActive(invert ? false : true)\n\t\tif (timeout.current !== undefined) clearTimeout(timeout.current)\n\t\ttimeout.current = setTimeout(() => {\n\t\t\tsetActive(invert ? true : false)\n\t\t}, cooldown ?? 2000) as any\n\t}\n\n\treturn [active, trigger]\n}\n","import type { Inputs } from 'preact/hooks'\nimport { useEffect, useRef } from 'preact/hooks'\n\ntype Vec2 = [number, number]\n\nexport function useCanvas({ size, draw, onDrag, onHover, onLeave }: {\n\tsize: () => Vec2,\n\tdraw: (img: ImageData) => Promise<unknown>,\n\tonDrag?: (dx: number, dy: number) => Promise<unknown>,\n\tonHover?: (x: number, y: number) => unknown,\n\tonLeave?: () => unknown,\n}, inputs?: Inputs) {\n\tconst canvas = useRef<HTMLCanvasElement>(null)\n\n\tconst dragStart = useRef<Vec2 | undefined>()\n\tconst dragRequest = useRef<number>()\n\tconst dragPending = useRef<Vec2>([0, 0])\n\tconst dragBusy = useRef(false)\n\n\tuseEffect(() => {\n\t\tconst onMouseDown = (e: MouseEvent) => {\n\t\t\tdragStart.current = [e.offsetX, e.offsetY]\n\t\t}\n\t\tconst onMouseMove = (e: MouseEvent) => {\n\t\t\tif (dragStart.current === undefined) {\n\t\t\t\tconst x = e.offsetX / canvas.current.clientWidth\n\t\t\t\tconst y = e.offsetY / canvas.current.clientHeight\n\t\t\t\tonHover?.(x, y)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (!onDrag) return\n\t\t\tconst dx = e.offsetX - dragStart.current[0]\n\t\t\tconst dy = e.offsetY - dragStart.current[1]\n\t\t\tif (!(dx === 0 && dy === 0)) {\n\t\t\t\tdragPending.current = [dragPending.current[0] + dx, dragPending.current[1] + dy]\n\t\t\t\tif (!dragBusy.current) {\n\t\t\t\t\tcancelAnimationFrame(dragRequest.current)\n\t\t\t\t\tdragRequest.current = requestAnimationFrame(async () => {\n\t\t\t\t\t\tdragBusy.current = true\n\t\t\t\t\t\tconst dx = dragPending.current[0] / canvas.current.clientWidth\n\t\t\t\t\t\tconst dy = dragPending.current[1] / canvas.current.clientHeight\n\t\t\t\t\t\tdragPending.current = [0, 0]\n\t\t\t\t\t\tawait onDrag?.(dx, dy)\n\t\t\t\t\t\tdragBusy.current = false\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\tdragStart.current = [e.offsetX, e.offsetY]\n\t\t}\n\t\tconst onMouseUp = () => {\n\t\t\tdragStart.current = undefined\n\t\t}\n\t\tconst onMouseLeave = () => {\n\t\t\tonLeave?.()\n\t\t}\n\n\t\tcanvas.current.addEventListener('mousedown', onMouseDown)\n\t\tcanvas.current.addEventListener('mousemove', onMouseMove)\n\t\tcanvas.current.addEventListener('mouseleave', onMouseLeave)\n\t\tdocument.body.addEventListener('mouseup', onMouseUp)\n\n\t\treturn () => {\n\t\t\tcanvas.current?.removeEventListener('mousedown', onMouseDown)\n\t\t\tcanvas.current?.removeEventListener('mousemove', onMouseMove)\n\t\t\tcanvas.current?.removeEventListener('mouseleave', onMouseLeave)\n\t\t\tdocument.body.removeEventListener('mouseup', onMouseUp)\n\t\t}\n\t}, [...inputs ?? [], canvas.current])\n\n\tconst redraw = useRef<() => Promise<unknown>>()\n\tconst redrawCount = useRef(0)\n\tredraw.current = async () => {\n\t\tconst ctx = canvas.current.getContext('2d')!\n\t\tconst s = size()\n\t\tcanvas.current.width = s[0]\n\t\tcanvas.current.height = s[1]\n\t\tconst img = ctx.getImageData(0, 0, s[0], s[1])\n\t\tconst ownCount = redrawCount.current += 1\n\t\ttry {\n\t\t\tawait draw(img)\n\t\t} catch (e) {\n\t\t\tthrow e\n\t\t}\n\t\tif (ownCount === redrawCount.current) {\n\t\t\tctx.putImageData(img, 0, 0)\n\t\t}\n\t}\n\n\treturn {\n\t\tcanvas,\n\t\tredraw: redraw.current,\n\t}\n}\n","import { useEffect, useState } from 'preact/hooks'\n\nexport function useFocus(): [boolean, () => unknown] {\n\tconst [active, setActive] = useState(false)\n\n\tconst hider = () => {\n\t\tsetActive(false)\n\t}\n\n\tuseEffect(() => {\n\t\tif (active) {\n\t\t\tdocument.body.addEventListener('click', hider)\n\t\t\tdocument.body.addEventListener('contextmenu', hider)\n\t\t}\n\t\treturn () => {\n\t\t\tdocument.body.removeEventListener('click', hider)\n\t\t\tdocument.body.removeEventListener('contextmenu', hider)\n\t\t}\n\t}, [active])\n\n\treturn [active, () => setActive(true)]\n}\n","import { useCallback, useEffect, useState } from 'preact/hooks'\nimport { changeUrl } from '../Utils'\n\nexport function useHash(): [string, (hash: string) => unknown] {\n\tconst [hash, setHash] = useState(window.location.hash)\n\n\tconst onChange = useCallback(() => {\n\t\tsetHash(window.location.hash)\n\t}, [])\n\n\tuseEffect(() => {\n\t\twindow.addEventListener('hashchange', onChange)\n\t\twindow.addEventListener('replacestate', onChange)\n\t\treturn () => {\n\t\t\twindow.removeEventListener('hashchange', onChange)\n\t\t\twindow.removeEventListener('replacestate', onChange)\n\t\t}\n\t}, [])\n\n\tconst changeHash = useCallback((newHash: string) => {\n\t\tif (newHash !== hash) {\n\t\t\tchangeUrl({ hash: newHash })\n\t\t}\n\t}, [hash])\n\n\treturn [hash, changeHash]\n}\n","import { useEffect, useState } from 'preact/hooks'\n\nexport function useMediaQuery(query: string): boolean {\n\tconst [prefers, setPrefers] = useState(matchMedia(query).matches)\n\n\tconst onChange = (e: MediaQueryListEvent) => {\n\t\tsetPrefers(e.matches)\n\t}\n\n\tuseEffect(() => {\n\t\tconst mediaQuery = matchMedia(query)\n\t\tmediaQuery.addEventListener('change', onChange)\n\t\treturn () => {\n\t\t\tmediaQuery.removeEventListener('change', onChange)\n\t\t}\n\t}, [query])\n\n\treturn prefers\n}\n","import type { DataModel } from '@mcschema/core'\nimport type { Inputs } from 'preact/hooks'\nimport { useEffect } from 'preact/hooks'\n\nexport function useModel(model: DataModel | undefined | null, invalidated: (model: DataModel) => unknown, inputs?: Inputs) {\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, ...inputs ?? []])\n}\n","import { useCallback, useEffect, useState } from 'preact/hooks'\nimport { changeUrl } from '../Utils'\n\nconst getValue = (search: string, param: string) => new URLSearchParams(search).get(param) ?? undefined\n\nexport function useSearchParam(param: string): [string | undefined, (value: string | undefined, replace?: boolean) => unknown] {\n\tconst location = window.location\n\tconst [value, setValue] = useState<string | undefined>(getValue(location.search, param))\n\n\tuseEffect(() => {\n\t\tconst onChange = () => {\n\t\t\tsetValue(getValue(location.search, param))\n\t\t}\n\n\t\twindow.addEventListener('popstate', onChange)\n\t\twindow.addEventListener('pushstate', onChange)\n\t\twindow.addEventListener('replacestate', onChange)\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener('popstate', onChange)\n\t\t\twindow.removeEventListener('pushstate', onChange)\n\t\t\twindow.removeEventListener('replacestate', onChange)\n\t\t}\n\t}, [])\n\n\tconst changeValue = useCallback((newValue: string | undefined, replace?: boolean) => {\n\t\tif (newValue !== value) {\n\t\t\tconst params = new URLSearchParams(location.search)\n\t\t\tif (newValue === undefined || newValue.length === 0) {\n\t\t\t\tparams.delete(param)\n\t\t\t} else {\n\t\t\t\tparams.set(param, newValue)\n\t\t\t}\n\t\t\tchangeUrl({ search: params.toString().replaceAll('%7C', '|'), replace })\n\t\t}\n\t}, [value])\n\n\treturn [value, changeValue]\n};\n","import type { ComponentChildren } from 'preact'\nimport type { Octicon } from '.'\nimport { Btn } from '.'\nimport { useFocus } from '../hooks'\n\ninterface BtnMenuProps extends JSX.HTMLAttributes<HTMLDivElement> {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\trelative?: boolean,\n\ttooltip?: string,\n\ttooltipLoc?: 'se' | 'sw' | 'nw',\n\tchildren: ComponentChildren,\n}\nexport function BtnMenu(props: BtnMenuProps) {\n\tconst { icon, label, relative, tooltip, tooltipLoc, children } = props\n\tconst [active, setActive] = useFocus()\n\n\treturn <div class={`btn-menu${relative === false ? ' no-relative' : ''}`} {...props}>\n\t\t<Btn {...{icon, label, tooltip, tooltipLoc}} onClick={setActive} />\n\t\t{active && <div class=\"btn-group\">\n\t\t\t{children}\n\t\t</div>}\n\t</div>\n}\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"sourceMappedStackTrace\"] = factory();\n\telse\n\t\troot[\"sourceMappedStackTrace\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*\n\t * sourcemapped-stacktrace.js\n\t * created by James Salter <iteration@gmail.com> (2014)\n\t *\n\t * https://github.com/novocaine/sourcemapped-stacktrace\n\t *\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\t/*global define */\n\n\t// note we only include source-map-consumer, not the whole source-map library,\n\t// which includes gear for generating source maps that we don't need\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_RESULT__ = function(source_map_consumer) {\n\n\t var global_mapForUri = {};\n\n\t /**\n\t * Re-map entries in a stacktrace using sourcemaps if available.\n\t *\n\t * @param {str} stack - The stacktrace from the browser.\n\t * @param {function} done - Callback invoked with the transformed stacktrace\n\t * (an Array of Strings) passed as the first\n\t * argument\n\t * @param {Object} [opts] - Optional options object.\n\t * @param {Function} [opts.filter] - Filter function applied to each stackTrace line.\n\t * Lines which do not pass the filter won't be processesd.\n\t * @param {boolean} [opts.cacheGlobally] - Whether to cache sourcemaps globally across multiple calls.\n\t * @param {boolean} [opts.sync] - Whether to use synchronous ajax to load the sourcemaps.\n\t * @param {string} [opts.traceFormat] - If `error.stack` is formatted according to chrome or\n\t * Firefox's style. Can be either `\"chrome\"`, `\"firefox\"`\n\t * or `undefined` (default). If `undefined`, this library\n\t * will guess based on `navigator.userAgent`.\n\t */\n\t var mapStackTrace = function(stack, done, opts) {\n\t var lines;\n\t var line;\n\t var mapForUri = {};\n\t var rows = {};\n\t var fields;\n\t var uri;\n\t var expected_fields;\n\t var regex;\n\t var skip_lines;\n\n\t var fetcher = new Fetcher(opts);\n\n\t var traceFormat = opts && opts.traceFormat;\n\t if (traceFormat !== \"chrome\" && traceFormat !== \"firefox\") {\n\t if (traceFormat) {\n\t throw new Error(\"unknown traceFormat \\\"\" + traceFormat + \"\\\" :(\");\n\t } else if (isChromeOrEdge() || isIE11Plus()) {\n\t traceFormat = \"chrome\";\n\t } else if (isFirefox() || isSafari()) {\n\t traceFormat = \"firefox\";\n\t } else {\n\t throw new Error(\"unknown browser :(\");\n\t }\n\t }\n\n\t if (traceFormat === \"chrome\") {\n\t regex = /^ +at.+\\((.*):([0-9]+):([0-9]+)/;\n\t expected_fields = 4;\n\t // (skip first line containing exception message)\n\t skip_lines = 1;\n\t } else {\n\t regex = /@(.*):([0-9]+):([0-9]+)/;\n\t expected_fields = 4;\n\t skip_lines = 0;\n\t }\n\n\t lines = stack.split(\"\\n\").slice(skip_lines);\n\n\t for (var i=0; i < lines.length; i++) {\n\t line = lines[i];\n\t if ( opts && opts.filter && !opts.filter(line) ) continue;\n\t \n\t fields = line.match(regex);\n\t if (fields && fields.length === expected_fields) {\n\t rows[i] = fields;\n\t uri = fields[1];\n\t if (!uri.match(/<anonymous>/)) {\n\t fetcher.fetchScript(uri);\n\t }\n\t }\n\t }\n\n\t fetcher.sem.whenReady(function() {\n\t var result = processSourceMaps(lines, rows, fetcher.mapForUri, traceFormat);\n\t done(result);\n\t });\n\t };\n\n\t var isChromeOrEdge = function() {\n\t return navigator.userAgent.toLowerCase().indexOf('chrome') > -1;\n\t };\n\n\t var isFirefox = function() {\n\t return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n\t }; \n\n\t var isSafari = function() {\n\t return navigator.userAgent.toLowerCase().indexOf('safari') > -1;\n\t };\n\t\t\t\n\t var isIE11Plus = function() {\n\t \treturn document.documentMode && document.documentMode >= 11;\n\t };\n\n\n\t var Semaphore = function() {\n\t this.count = 0;\n\t this.pending = [];\n\t };\n\n\t Semaphore.prototype.incr = function() {\n\t this.count++;\n\t };\n\n\t Semaphore.prototype.decr = function() {\n\t this.count--;\n\t this.flush();\n\t };\n\n\t Semaphore.prototype.whenReady = function(fn) {\n\t this.pending.push(fn);\n\t this.flush();\n\t };\n\n\t Semaphore.prototype.flush = function() {\n\t if (this.count === 0) {\n\t this.pending.forEach(function(fn) { fn(); });\n\t this.pending = [];\n\t }\n\t };\n\n\n\t var Fetcher = function(opts) {\n\t this.sem = new Semaphore();\n\t this.sync = opts && opts.sync;\n\t this.mapForUri = opts && opts.cacheGlobally ? global_mapForUri : {};\n\t };\n\n\t Fetcher.prototype.ajax = function(uri, callback) {\n\t var xhr = createXMLHTTPObject();\n\t var that = this;\n\t xhr.onreadystatechange = function() {\n\t if (xhr.readyState == 4) {\n\t callback.call(that, xhr, uri);\n\t }\n\t };\n\t xhr.open(\"GET\", uri, !this.sync);\n\t xhr.send();\n\t }\n\n\t Fetcher.prototype.fetchScript = function(uri) {\n\t if (!(uri in this.mapForUri)) {\n\t this.sem.incr();\n\t this.mapForUri[uri] = null;\n\t } else {\n\t return;\n\t }\n\n\t this.ajax(uri, this.onScriptLoad);\n\t };\n\n\t var absUrlRegex = new RegExp('^(?:[a-z]+:)?//', 'i');\n\n\t Fetcher.prototype.onScriptLoad = function(xhr, uri) {\n\t if (xhr.status === 200 || (uri.slice(0, 7) === \"file://\" && xhr.status === 0)) {\n\t // find .map in file.\n\t //\n\t // attempt to find it at the very end of the file, but tolerate trailing\n\t // whitespace inserted by some packers.\n\t var match = xhr.responseText.match(\"//# [s]ourceMappingURL=(.*)[\\\\s]*$\", \"m\");\n\t if (match && match.length === 2) {\n\t // get the map\n\t var mapUri = match[1];\n\n\t var embeddedSourceMap = mapUri.match(\"data:application/json;(charset=[^;]+;)?base64,(.*)\");\n\n\t if (embeddedSourceMap && embeddedSourceMap[2]) {\n\t this.mapForUri[uri] = new source_map_consumer.SourceMapConsumer(atob(embeddedSourceMap[2]));\n\t this.sem.decr();\n\t } else {\n\t if (!absUrlRegex.test(mapUri)) {\n\t // relative url; according to sourcemaps spec is 'source origin'\n\t var origin;\n\t var lastSlash = uri.lastIndexOf('/');\n\t if (lastSlash !== -1) {\n\t origin = uri.slice(0, lastSlash + 1);\n\t mapUri = origin + mapUri;\n\t // note if lastSlash === -1, actual script uri has no slash\n\t // somehow, so no way to use it as a prefix... we give up and try\n\t // as absolute\n\t }\n\t }\n\n\t this.ajax(mapUri, function(xhr) {\n\t if (xhr.status === 200 || (mapUri.slice(0, 7) === \"file://\" && xhr.status === 0)) {\n\t this.mapForUri[uri] = new source_map_consumer.SourceMapConsumer(xhr.responseText);\n\t }\n\t this.sem.decr();\n\t });\n\t }\n\t } else {\n\t // no map\n\t this.sem.decr();\n\t }\n\t } else {\n\t // HTTP error fetching uri of the script\n\t this.sem.decr();\n\t }\n\t };\n\n\t var processSourceMaps = function(lines, rows, mapForUri, traceFormat) {\n\t var result = [];\n\t var map;\n\t var origName = traceFormat === \"chrome\" ? origNameChrome : origNameFirefox;\n\t for (var i=0; i < lines.length; i++) {\n\t var row = rows[i];\n\t if (row) {\n\t var uri = row[1];\n\t var line = parseInt(row[2], 10);\n\t var column = parseInt(row[3], 10);\n\t map = mapForUri[uri];\n\n\t if (map) {\n\t // we think we have a map for that uri. call source-map library\n\t var origPos = map.originalPositionFor(\n\t { line: line, column: column });\n\t result.push(formatOriginalPosition(origPos.source,\n\t origPos.line, origPos.column, origPos.name || origName(lines[i])));\n\t } else {\n\t // we can't find a map for that url, but we parsed the row.\n\t // reformat unchanged line for consistency with the sourcemapped\n\t // lines.\n\t result.push(formatOriginalPosition(uri, line, column, origName(lines[i])));\n\t }\n\t } else {\n\t // we weren't able to parse the row, push back what we were given\n\t result.push(lines[i]);\n\t }\n\t }\n\n\t return result;\n\t };\n\n\t function origNameChrome(origLine) {\n\t var match = / +at +([^ ]*).*/.exec(origLine);\n\t return match && match[1];\n\t }\n\n\t function origNameFirefox(origLine) {\n\t var match = /([^@]*)@.*/.exec(origLine);\n\t return match && match[1];\n\t }\n\n\t var formatOriginalPosition = function(source, line, column, name) {\n\t // mimic chrome's format\n\t return \" at \" + (name ? name : \"(unknown)\") +\n\t \" (\" + source + \":\" + line + \":\" + column + \")\";\n\t };\n\n\t // xmlhttprequest boilerplate\n\t var XMLHttpFactories = [\n\t\tfunction () {return new XMLHttpRequest();},\n\t\tfunction () {return new ActiveXObject(\"Msxml2.XMLHTTP\");},\n\t\tfunction () {return new ActiveXObject(\"Msxml3.XMLHTTP\");},\n\t\tfunction () {return new ActiveXObject(\"Microsoft.XMLHTTP\");}\n\t ];\n\n\t function createXMLHTTPObject() {\n\t var xmlhttp = false;\n\t for (var i=0;i<XMLHttpFactories.length;i++) {\n\t try {\n\t xmlhttp = XMLHttpFactories[i]();\n\t }\n\t catch (e) {\n\t continue;\n\t }\n\t break;\n\t }\n\t return xmlhttp;\n\t }\n\n\t return {\n\t mapStackTrace: mapStackTrace\n\t }\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\tvar util = __webpack_require__(2);\n\tvar binarySearch = __webpack_require__(3);\n\tvar ArraySet = __webpack_require__(4).ArraySet;\n\tvar base64VLQ = __webpack_require__(5);\n\tvar quickSort = __webpack_require__(7).quickSort;\n\n\tfunction SourceMapConsumer(aSourceMap) {\n\t var sourceMap = aSourceMap;\n\t if (typeof aSourceMap === 'string') {\n\t sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t }\n\n\t return sourceMap.sections != null\n\t ? new IndexedSourceMapConsumer(sourceMap)\n\t : new BasicSourceMapConsumer(sourceMap);\n\t}\n\n\tSourceMapConsumer.fromSourceMap = function(aSourceMap) {\n\t return BasicSourceMapConsumer.fromSourceMap(aSourceMap);\n\t}\n\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tSourceMapConsumer.prototype._version = 3;\n\n\t// `__generatedMappings` and `__originalMappings` are arrays that hold the\n\t// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n\t// are lazily instantiated, accessed via the `_generatedMappings` and\n\t// `_originalMappings` getters respectively, and we only parse the mappings\n\t// and create these arrays once queried for a source location. We jump through\n\t// these hoops because there can be many thousands of mappings, and parsing\n\t// them is expensive, so we only want to do it if we must.\n\t//\n\t// Each object in the arrays is of the form:\n\t//\n\t// {\n\t// generatedLine: The line number in the generated code,\n\t// generatedColumn: The column number in the generated code,\n\t// source: The path to the original source file that generated this\n\t// chunk of code,\n\t// originalLine: The line number in the original source that\n\t// corresponds to this chunk of generated code,\n\t// originalColumn: The column number in the original source that\n\t// corresponds to this chunk of generated code,\n\t// name: The name of the original symbol which generated this chunk of\n\t// code.\n\t// }\n\t//\n\t// All properties except for `generatedLine` and `generatedColumn` can be\n\t// `null`.\n\t//\n\t// `_generatedMappings` is ordered by the generated positions.\n\t//\n\t// `_originalMappings` is ordered by the original positions.\n\n\tSourceMapConsumer.prototype.__generatedMappings = null;\n\tObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n\t get: function () {\n\t if (!this.__generatedMappings) {\n\t this._parseMappings(this._mappings, this.sourceRoot);\n\t }\n\n\t return this.__generatedMappings;\n\t }\n\t});\n\n\tSourceMapConsumer.prototype.__originalMappings = null;\n\tObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n\t get: function () {\n\t if (!this.__originalMappings) {\n\t this._parseMappings(this._mappings, this.sourceRoot);\n\t }\n\n\t return this.__originalMappings;\n\t }\n\t});\n\n\tSourceMapConsumer.prototype._charIsMappingSeparator =\n\t function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n\t var c = aStr.charAt(index);\n\t return c === \";\" || c === \",\";\n\t };\n\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tSourceMapConsumer.prototype._parseMappings =\n\t function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t throw new Error(\"Subclasses must implement _parseMappings\");\n\t };\n\n\tSourceMapConsumer.GENERATED_ORDER = 1;\n\tSourceMapConsumer.ORIGINAL_ORDER = 2;\n\n\tSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\n\tSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\n\t/**\n\t * Iterate over each mapping between an original source/line/column and a\n\t * generated line/column in this source map.\n\t *\n\t * @param Function aCallback\n\t * The function that is called with each mapping.\n\t * @param Object aContext\n\t * Optional. If specified, this object will be the value of `this` every\n\t * time that `aCallback` is called.\n\t * @param aOrder\n\t * Either `SourceMapConsumer.GENERATED_ORDER` or\n\t * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n\t * iterate over the mappings sorted by the generated file's line/column\n\t * order or the original's source/line/column order, respectively. Defaults to\n\t * `SourceMapConsumer.GENERATED_ORDER`.\n\t */\n\tSourceMapConsumer.prototype.eachMapping =\n\t function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n\t var context = aContext || null;\n\t var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n\t var mappings;\n\t switch (order) {\n\t case SourceMapConsumer.GENERATED_ORDER:\n\t mappings = this._generatedMappings;\n\t break;\n\t case SourceMapConsumer.ORIGINAL_ORDER:\n\t mappings = this._originalMappings;\n\t break;\n\t default:\n\t throw new Error(\"Unknown order of iteration.\");\n\t }\n\n\t var sourceRoot = this.sourceRoot;\n\t mappings.map(function (mapping) {\n\t var source = mapping.source === null ? null : this._sources.at(mapping.source);\n\t if (source != null && sourceRoot != null) {\n\t source = util.join(sourceRoot, source);\n\t }\n\t return {\n\t source: source,\n\t generatedLine: mapping.generatedLine,\n\t generatedColumn: mapping.generatedColumn,\n\t originalLine: mapping.originalLine,\n\t originalColumn: mapping.originalColumn,\n\t name: mapping.name === null ? null : this._names.at(mapping.name)\n\t };\n\t }, this).forEach(aCallback, context);\n\t };\n\n\t/**\n\t * Returns all generated line and column information for the original source,\n\t * line, and column provided. If no column is provided, returns all mappings\n\t * corresponding to a either the line we are searching for or the next\n\t * closest line that has any mappings. Otherwise, returns all mappings\n\t * corresponding to the given line and either the column we are searching for\n\t * or the next closest column that has any offsets.\n\t *\n\t * The only argument is an object with the following properties:\n\t *\n\t * - source: The filename of the original source.\n\t * - line: The line number in the original source.\n\t * - column: Optional. the column number in the original source.\n\t *\n\t * and an array of objects is returned, each with the following properties:\n\t *\n\t * - line: The line number in the generated source, or null.\n\t * - column: The column number in the generated source, or null.\n\t */\n\tSourceMapConsumer.prototype.allGeneratedPositionsFor =\n\t function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n\t var line = util.getArg(aArgs, 'line');\n\n\t // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n\t // returns the index of the closest mapping less than the needle. By\n\t // setting needle.originalColumn to 0, we thus find the last mapping for\n\t // the given line, provided such a mapping exists.\n\t var needle = {\n\t source: util.getArg(aArgs, 'source'),\n\t originalLine: line,\n\t originalColumn: util.getArg(aArgs, 'column', 0)\n\t };\n\n\t if (this.sourceRoot != null) {\n\t needle.source = util.relative(this.sourceRoot, needle.source);\n\t }\n\t if (!this._sources.has(needle.source)) {\n\t return [];\n\t }\n\t needle.source = this._sources.indexOf(needle.source);\n\n\t var mappings = [];\n\n\t var index = this._findMapping(needle,\n\t this._originalMappings,\n\t \"originalLine\",\n\t \"originalColumn\",\n\t util.compareByOriginalPositions,\n\t binarySearch.LEAST_UPPER_BOUND);\n\t if (index >= 0) {\n\t var mapping = this._originalMappings[index];\n\n\t if (aArgs.column === undefined) {\n\t var originalLine = mapping.originalLine;\n\n\t // Iterate until either we run out of mappings, or we run into\n\t // a mapping for a different line than the one we found. Since\n\t // mappings are sorted, this is guaranteed to find all mappings for\n\t // the line we found.\n\t while (mapping && mapping.originalLine === originalLine) {\n\t mappings.push({\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t });\n\n\t mapping = this._originalMappings[++index];\n\t }\n\t } else {\n\t var originalColumn = mapping.originalColumn;\n\n\t // Iterate until either we run out of mappings, or we run into\n\t // a mapping for a different line than the one we were searching for.\n\t // Since mappings are sorted, this is guaranteed to find all mappings for\n\t // the line we are searching for.\n\t while (mapping &&\n\t mapping.originalLine === line &&\n\t mapping.originalColumn == originalColumn) {\n\t mappings.push({\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t });\n\n\t mapping = this._originalMappings[++index];\n\t }\n\t }\n\t }\n\n\t return mappings;\n\t };\n\n\texports.SourceMapConsumer = SourceMapConsumer;\n\n\t/**\n\t * A BasicSourceMapConsumer instance represents a parsed source map which we can\n\t * query for information about the original file positions by giving it a file\n\t * position in the generated source.\n\t *\n\t * The only parameter is the raw source map (either as a JSON string, or\n\t * already parsed to an object). According to the spec, source maps have the\n\t * following attributes:\n\t *\n\t * - version: Which version of the source map spec this map is following.\n\t * - sources: An array of URLs to the original source files.\n\t * - names: An array of identifiers which can be referrenced by individual mappings.\n\t * - sourceRoot: Optional. The URL root from which all sources are relative.\n\t * - sourcesContent: Optional. An array of contents of the original source files.\n\t * - mappings: A string of base64 VLQs which contain the actual mappings.\n\t * - file: Optional. The generated file this source map is associated with.\n\t *\n\t * Here is an example source map, taken from the source map spec[0]:\n\t *\n\t * {\n\t * version : 3,\n\t * file: \"out.js\",\n\t * sourceRoot : \"\",\n\t * sources: [\"foo.js\", \"bar.js\"],\n\t * names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t * mappings: \"AA,AB;;ABCDE;\"\n\t * }\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n\t */\n\tfunction BasicSourceMapConsumer(aSourceMap) {\n\t var sourceMap = aSourceMap;\n\t if (typeof aSourceMap === 'string') {\n\t sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t }\n\n\t var version = util.getArg(sourceMap, 'version');\n\t var sources = util.getArg(sourceMap, 'sources');\n\t // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n\t // requires the array) to play nice here.\n\t var names = util.getArg(sourceMap, 'names', []);\n\t var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n\t var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n\t var mappings = util.getArg(sourceMap, 'mappings');\n\t var file = util.getArg(sourceMap, 'file', null);\n\n\t // Once again, Sass deviates from the spec and supplies the version as a\n\t // string rather than a number, so we use loose equality checking here.\n\t if (version != this._version) {\n\t throw new Error('Unsupported version: ' + version);\n\t }\n\n\t sources = sources\n\t .map(String)\n\t // Some source maps produce relative source paths like \"./foo.js\" instead of\n\t // \"foo.js\". Normalize these first so that future comparisons will succeed.\n\t // See bugzil.la/1090768.\n\t .map(util.normalize)\n\t // Always ensure that absolute sources are internally stored relative to\n\t // the source root, if the source root is absolute. Not doing this would\n\t // be particularly problematic when the source root is a prefix of the\n\t // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n\t .map(function (source) {\n\t return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n\t ? util.relative(sourceRoot, source)\n\t : source;\n\t });\n\n\t // Pass `true` below to allow duplicate names and sources. While source maps\n\t // are intended to be compressed and deduplicated, the TypeScript compiler\n\t // sometimes generates source maps with duplicates in them. See Github issue\n\t // #72 and bugzil.la/889492.\n\t this._names = ArraySet.fromArray(names.map(String), true);\n\t this._sources = ArraySet.fromArray(sources, true);\n\n\t this.sourceRoot = sourceRoot;\n\t this.sourcesContent = sourcesContent;\n\t this._mappings = mappings;\n\t this.file = file;\n\t}\n\n\tBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n\t/**\n\t * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n\t *\n\t * @param SourceMapGenerator aSourceMap\n\t * The source map that will be consumed.\n\t * @returns BasicSourceMapConsumer\n\t */\n\tBasicSourceMapConsumer.fromSourceMap =\n\t function SourceMapConsumer_fromSourceMap(aSourceMap) {\n\t var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n\t var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n\t var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n\t smc.sourceRoot = aSourceMap._sourceRoot;\n\t smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n\t smc.sourceRoot);\n\t smc.file = aSourceMap._file;\n\n\t // Because we are modifying the entries (by converting string sources and\n\t // names to indices into the sources and names ArraySets), we have to make\n\t // a copy of the entry or else bad things happen. Shared mutable state\n\t // strikes again! See github issue #191.\n\n\t var generatedMappings = aSourceMap._mappings.toArray().slice();\n\t var destGeneratedMappings = smc.__generatedMappings = [];\n\t var destOriginalMappings = smc.__originalMappings = [];\n\n\t for (var i = 0, length = generatedMappings.length; i < length; i++) {\n\t var srcMapping = generatedMappings[i];\n\t var destMapping = new Mapping;\n\t destMapping.generatedLine = srcMapping.generatedLine;\n\t destMapping.generatedColumn = srcMapping.generatedColumn;\n\n\t if (srcMapping.source) {\n\t destMapping.source = sources.indexOf(srcMapping.source);\n\t destMapping.originalLine = srcMapping.originalLine;\n\t destMapping.originalColumn = srcMapping.originalColumn;\n\n\t if (srcMapping.name) {\n\t destMapping.name = names.indexOf(srcMapping.name);\n\t }\n\n\t destOriginalMappings.push(destMapping);\n\t }\n\n\t destGeneratedMappings.push(destMapping);\n\t }\n\n\t quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n\t return smc;\n\t };\n\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tBasicSourceMapConsumer.prototype._version = 3;\n\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n\t get: function () {\n\t return this._sources.toArray().map(function (s) {\n\t return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;\n\t }, this);\n\t }\n\t});\n\n\t/**\n\t * Provide the JIT with a nice shape / hidden class.\n\t */\n\tfunction Mapping() {\n\t this.generatedLine = 0;\n\t this.generatedColumn = 0;\n\t this.source = null;\n\t this.originalLine = null;\n\t this.originalColumn = null;\n\t this.name = null;\n\t}\n\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tBasicSourceMapConsumer.prototype._parseMappings =\n\t function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t var generatedLine = 1;\n\t var previousGeneratedColumn = 0;\n\t var previousOriginalLine = 0;\n\t var previousOriginalColumn = 0;\n\t var previousSource = 0;\n\t var previousName = 0;\n\t var length = aStr.length;\n\t var index = 0;\n\t var cachedSegments = {};\n\t var temp = {};\n\t var originalMappings = [];\n\t var generatedMappings = [];\n\t var mapping, str, segment, end, value;\n\n\t while (index < length) {\n\t if (aStr.charAt(index) === ';') {\n\t generatedLine++;\n\t index++;\n\t previousGeneratedColumn = 0;\n\t }\n\t else if (aStr.charAt(index) === ',') {\n\t index++;\n\t }\n\t else {\n\t mapping = new Mapping();\n\t mapping.generatedLine = generatedLine;\n\n\t // Because each offset is encoded relative to the previous one,\n\t // many segments often have the same encoding. We can exploit this\n\t // fact by caching the parsed variable length fields of each segment,\n\t // allowing us to avoid a second parse if we encounter the same\n\t // segment again.\n\t for (end = index; end < length; end++) {\n\t if (this._charIsMappingSeparator(aStr, end)) {\n\t break;\n\t }\n\t }\n\t str = aStr.slice(index, end);\n\n\t segment = cachedSegments[str];\n\t if (segment) {\n\t index += str.length;\n\t } else {\n\t segment = [];\n\t while (index < end) {\n\t base64VLQ.decode(aStr, index, temp);\n\t value = temp.value;\n\t index = temp.rest;\n\t segment.push(value);\n\t }\n\n\t if (segment.length === 2) {\n\t throw new Error('Found a source, but no line and column');\n\t }\n\n\t if (segment.length === 3) {\n\t throw new Error('Found a source and line, but no column');\n\t }\n\n\t cachedSegments[str] = segment;\n\t }\n\n\t // Generated column.\n\t mapping.generatedColumn = previousGeneratedColumn + segment[0];\n\t previousGeneratedColumn = mapping.generatedColumn;\n\n\t if (segment.length > 1) {\n\t // Original source.\n\t mapping.source = previousSource + segment[1];\n\t previousSource += segment[1];\n\n\t // Original line.\n\t mapping.originalLine = previousOriginalLine + segment[2];\n\t previousOriginalLine = mapping.originalLine;\n\t // Lines are stored 0-based\n\t mapping.originalLine += 1;\n\n\t // Original column.\n\t mapping.originalColumn = previousOriginalColumn + segment[3];\n\t previousOriginalColumn = mapping.originalColumn;\n\n\t if (segment.length > 4) {\n\t // Original name.\n\t mapping.name = previousName + segment[4];\n\t previousName += segment[4];\n\t }\n\t }\n\n\t generatedMappings.push(mapping);\n\t if (typeof mapping.originalLine === 'number') {\n\t originalMappings.push(mapping);\n\t }\n\t }\n\t }\n\n\t quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t this.__generatedMappings = generatedMappings;\n\n\t quickSort(originalMappings, util.compareByOriginalPositions);\n\t this.__originalMappings = originalMappings;\n\t };\n\n\t/**\n\t * Find the mapping that best matches the hypothetical \"needle\" mapping that\n\t * we are searching for in the given \"haystack\" of mappings.\n\t */\n\tBasicSourceMapConsumer.prototype._findMapping =\n\t function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n\t aColumnName, aComparator, aBias) {\n\t // To return the position we are searching for, we must first find the\n\t // mapping for the given position and then return the opposite position it\n\t // points to. Because the mappings are sorted, we can use binary search to\n\t // find the best mapping.\n\n\t if (aNeedle[aLineName] <= 0) {\n\t throw new TypeError('Line must be greater than or equal to 1, got '\n\t + aNeedle[aLineName]);\n\t }\n\t if (aNeedle[aColumnName] < 0) {\n\t throw new TypeError('Column must be greater than or equal to 0, got '\n\t + aNeedle[aColumnName]);\n\t }\n\n\t return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n\t };\n\n\t/**\n\t * Compute the last column for each generated mapping. The last column is\n\t * inclusive.\n\t */\n\tBasicSourceMapConsumer.prototype.computeColumnSpans =\n\t function SourceMapConsumer_computeColumnSpans() {\n\t for (var index = 0; index < this._generatedMappings.length; ++index) {\n\t var mapping = this._generatedMappings[index];\n\n\t // Mappings do not contain a field for the last generated columnt. We\n\t // can come up with an optimistic estimate, however, by assuming that\n\t // mappings are contiguous (i.e. given two consecutive mappings, the\n\t // first mapping ends where the second one starts).\n\t if (index + 1 < this._generatedMappings.length) {\n\t var nextMapping = this._generatedMappings[index + 1];\n\n\t if (mapping.generatedLine === nextMapping.generatedLine) {\n\t mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n\t continue;\n\t }\n\t }\n\n\t // The last mapping for each line spans the entire line.\n\t mapping.lastGeneratedColumn = Infinity;\n\t }\n\t };\n\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t * - line: The line number in the generated source.\n\t * - column: The column number in the generated source.\n\t * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - source: The original source file, or null.\n\t * - line: The line number in the original source, or null.\n\t * - column: The column number in the original source, or null.\n\t * - name: The original identifier, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.originalPositionFor =\n\t function SourceMapConsumer_originalPositionFor(aArgs) {\n\t var needle = {\n\t generatedLine: util.getArg(aArgs, 'line'),\n\t generatedColumn: util.getArg(aArgs, 'column')\n\t };\n\n\t var index = this._findMapping(\n\t needle,\n\t this._generatedMappings,\n\t \"generatedLine\",\n\t \"generatedColumn\",\n\t util.compareByGeneratedPositionsDeflated,\n\t util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t );\n\n\t if (index >= 0) {\n\t var mapping = this._generatedMappings[index];\n\n\t if (mapping.generatedLine === needle.generatedLine) {\n\t var source = util.getArg(mapping, 'source', null);\n\t if (source !== null) {\n\t source = this._sources.at(source);\n\t if (this.sourceRoot != null) {\n\t source = util.join(this.sourceRoot, source);\n\t }\n\t }\n\t var name = util.getArg(mapping, 'name', null);\n\t if (name !== null) {\n\t name = this._names.at(name);\n\t }\n\t return {\n\t source: source,\n\t line: util.getArg(mapping, 'originalLine', null),\n\t column: util.getArg(mapping, 'originalColumn', null),\n\t name: name\n\t };\n\t }\n\t }\n\n\t return {\n\t source: null,\n\t line: null,\n\t column: null,\n\t name: null\n\t };\n\t };\n\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t function BasicSourceMapConsumer_hasContentsOfAllSources() {\n\t if (!this.sourcesContent) {\n\t return false;\n\t }\n\t return this.sourcesContent.length >= this._sources.size() &&\n\t !this.sourcesContent.some(function (sc) { return sc == null; });\n\t };\n\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tBasicSourceMapConsumer.prototype.sourceContentFor =\n\t function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t if (!this.sourcesContent) {\n\t return null;\n\t }\n\n\t if (this.sourceRoot != null) {\n\t aSource = util.relative(this.sourceRoot, aSource);\n\t }\n\n\t if (this._sources.has(aSource)) {\n\t return this.sourcesContent[this._sources.indexOf(aSource)];\n\t }\n\n\t var url;\n\t if (this.sourceRoot != null\n\t && (url = util.urlParse(this.sourceRoot))) {\n\t // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n\t // many users. We can help them out when they expect file:// URIs to\n\t // behave like it would if they were running a local HTTP server. See\n\t // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n\t var fileUriAbsPath = aSource.replace(/^file:\\/\\//, \"\");\n\t if (url.scheme == \"file\"\n\t && this._sources.has(fileUriAbsPath)) {\n\t return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n\t }\n\n\t if ((!url.path || url.path == \"/\")\n\t && this._sources.has(\"/\" + aSource)) {\n\t return this.sourcesContent[this._sources.indexOf(\"/\" + aSource)];\n\t }\n\t }\n\n\t // This function is used recursively from\n\t // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n\t // don't want to throw if we can't find the source - we just want to\n\t // return null, so we provide a flag to exit gracefully.\n\t if (nullOnMissing) {\n\t return null;\n\t }\n\t else {\n\t throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t }\n\t };\n\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t * - source: The filename of the original source.\n\t * - line: The line number in the original source.\n\t * - column: The column number in the original source.\n\t * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - line: The line number in the generated source, or null.\n\t * - column: The column number in the generated source, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.generatedPositionFor =\n\t function SourceMapConsumer_generatedPositionFor(aArgs) {\n\t var source = util.getArg(aArgs, 'source');\n\t if (this.sourceRoot != null) {\n\t source = util.relative(this.sourceRoot, source);\n\t }\n\t if (!this._sources.has(source)) {\n\t return {\n\t line: null,\n\t column: null,\n\t lastColumn: null\n\t };\n\t }\n\t source = this._sources.indexOf(source);\n\n\t var needle = {\n\t source: source,\n\t originalLine: util.getArg(aArgs, 'line'),\n\t originalColumn: util.getArg(aArgs, 'column')\n\t };\n\n\t var index = this._findMapping(\n\t needle,\n\t this._originalMappings,\n\t \"originalLine\",\n\t \"originalColumn\",\n\t util.compareByOriginalPositions,\n\t util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t );\n\n\t if (index >= 0) {\n\t var mapping = this._originalMappings[index];\n\n\t if (mapping.source === needle.source) {\n\t return {\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t };\n\t }\n\t }\n\n\t return {\n\t line: null,\n\t column: null,\n\t lastColumn: null\n\t };\n\t };\n\n\texports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n\t/**\n\t * An IndexedSourceMapConsumer instance represents a parsed source map which\n\t * we can query for information. It differs from BasicSourceMapConsumer in\n\t * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n\t * input.\n\t *\n\t * The only parameter is a raw source map (either as a JSON string, or already\n\t * parsed to an object). According to the spec for indexed source maps, they\n\t * have the following attributes:\n\t *\n\t * - version: Which version of the source map spec this map is following.\n\t * - file: Optional. The generated file this source map is associated with.\n\t * - sections: A list of section definitions.\n\t *\n\t * Each value under the \"sections\" field has two fields:\n\t * - offset: The offset into the original specified at which this section\n\t * begins to apply, defined as an object with a \"line\" and \"column\"\n\t * field.\n\t * - map: A source map definition. This source map could also be indexed,\n\t * but doesn't have to be.\n\t *\n\t * Instead of the \"map\" field, it's also possible to have a \"url\" field\n\t * specifying a URL to retrieve a source map from, but that's currently\n\t * unsupported.\n\t *\n\t * Here's an example source map, taken from the source map spec[0], but\n\t * modified to omit a section which uses the \"url\" field.\n\t *\n\t * {\n\t * version : 3,\n\t * file: \"app.js\",\n\t * sections: [{\n\t * offset: {line:100, column:10},\n\t * map: {\n\t * version : 3,\n\t * file: \"section.js\",\n\t * sources: [\"foo.js\", \"bar.js\"],\n\t * names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t * mappings: \"AAAA,E;;ABCDE;\"\n\t * }\n\t * }],\n\t * }\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n\t */\n\tfunction IndexedSourceMapConsumer(aSourceMap) {\n\t var sourceMap = aSourceMap;\n\t if (typeof aSourceMap === 'string') {\n\t sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t }\n\n\t var version = util.getArg(sourceMap, 'version');\n\t var sections = util.getArg(sourceMap, 'sections');\n\n\t if (version != this._version) {\n\t throw new Error('Unsupported version: ' + version);\n\t }\n\n\t this._sources = new ArraySet();\n\t this._names = new ArraySet();\n\n\t var lastOffset = {\n\t line: -1,\n\t column: 0\n\t };\n\t this._sections = sections.map(function (s) {\n\t if (s.url) {\n\t // The url field will require support for asynchronicity.\n\t // See https://github.com/mozilla/source-map/issues/16\n\t throw new Error('Support for url field in sections not implemented.');\n\t }\n\t var offset = util.getArg(s, 'offset');\n\t var offsetLine = util.getArg(offset, 'line');\n\t var offsetColumn = util.getArg(offset, 'column');\n\n\t if (offsetLine < lastOffset.line ||\n\t (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n\t throw new Error('Section offsets must be ordered and non-overlapping.');\n\t }\n\t lastOffset = offset;\n\n\t return {\n\t generatedOffset: {\n\t // The offset fields are 0-based, but we use 1-based indices when\n\t // encoding/decoding from VLQ.\n\t generatedLine: offsetLine + 1,\n\t generatedColumn: offsetColumn + 1\n\t },\n\t consumer: new SourceMapConsumer(util.getArg(s, 'map'))\n\t }\n\t });\n\t}\n\n\tIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tIndexedSourceMapConsumer.prototype._version = 3;\n\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n\t get: function () {\n\t var sources = [];\n\t for (var i = 0; i < this._sections.length; i++) {\n\t for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n\t sources.push(this._sections[i].consumer.sources[j]);\n\t }\n\t }\n\t return sources;\n\t }\n\t});\n\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t * - line: The line number in the generated source.\n\t * - column: The column number in the generated source.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - source: The original source file, or null.\n\t * - line: The line number in the original source, or null.\n\t * - column: The column number in the original source, or null.\n\t * - name: The original identifier, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.originalPositionFor =\n\t function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n\t var needle = {\n\t generatedLine: util.getArg(aArgs, 'line'),\n\t generatedColumn: util.getArg(aArgs, 'column')\n\t };\n\n\t // Find the section containing the generated position we're trying to map\n\t // to an original position.\n\t var sectionIndex = binarySearch.search(needle, this._sections,\n\t function(needle, section) {\n\t var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n\t if (cmp) {\n\t return cmp;\n\t }\n\n\t return (needle.generatedColumn -\n\t section.generatedOffset.generatedColumn);\n\t });\n\t var section = this._sections[sectionIndex];\n\n\t if (!section) {\n\t return {\n\t source: null,\n\t line: null,\n\t column: null,\n\t name: null\n\t };\n\t }\n\n\t return section.consumer.originalPositionFor({\n\t line: needle.generatedLine -\n\t (section.generatedOffset.generatedLine - 1),\n\t column: needle.generatedColumn -\n\t (section.generatedOffset.generatedLine === needle.generatedLine\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0),\n\t bias: aArgs.bias\n\t });\n\t };\n\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n\t return this._sections.every(function (s) {\n\t return s.consumer.hasContentsOfAllSources();\n\t });\n\t };\n\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tIndexedSourceMapConsumer.prototype.sourceContentFor =\n\t function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\n\t var content = section.consumer.sourceContentFor(aSource, true);\n\t if (content) {\n\t return content;\n\t }\n\t }\n\t if (nullOnMissing) {\n\t return null;\n\t }\n\t else {\n\t throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t }\n\t };\n\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t * - source: The filename of the original source.\n\t * - line: The line number in the original source.\n\t * - column: The column number in the original source.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - line: The line number in the generated source, or null.\n\t * - column: The column number in the generated source, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.generatedPositionFor =\n\t function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\n\t // Only consider this section if the requested source is in the list of\n\t // sources of the consumer.\n\t if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {\n\t continue;\n\t }\n\t var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n\t if (generatedPosition) {\n\t var ret = {\n\t line: generatedPosition.line +\n\t (section.generatedOffset.generatedLine - 1),\n\t column: generatedPosition.column +\n\t (section.generatedOffset.generatedLine === generatedPosition.line\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0)\n\t };\n\t return ret;\n\t }\n\t }\n\n\t return {\n\t line: null,\n\t column: null\n\t };\n\t };\n\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tIndexedSourceMapConsumer.prototype._parseMappings =\n\t function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t this.__generatedMappings = [];\n\t this.__originalMappings = [];\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\t var sectionMappings = section.consumer._generatedMappings;\n\t for (var j = 0; j < sectionMappings.length; j++) {\n\t var mapping = sectionMappings[j];\n\n\t var source = section.consumer._sources.at(mapping.source);\n\t if (section.consumer.sourceRoot !== null) {\n\t source = util.join(section.consumer.sourceRoot, source);\n\t }\n\t this._sources.add(source);\n\t source = this._sources.indexOf(source);\n\n\t var name = section.consumer._names.at(mapping.name);\n\t this._names.add(name);\n\t name = this._names.indexOf(name);\n\n\t // The mappings coming from the consumer for the section have\n\t // generated positions relative to the start of the section, so we\n\t // need to offset them to be relative to the start of the concatenated\n\t // generated file.\n\t var adjustedMapping = {\n\t source: source,\n\t generatedLine: mapping.generatedLine +\n\t (section.generatedOffset.generatedLine - 1),\n\t generatedColumn: mapping.generatedColumn +\n\t (section.generatedOffset.generatedLine === mapping.generatedLine\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0),\n\t originalLine: mapping.originalLine,\n\t originalColumn: mapping.originalColumn,\n\t name: name\n\t };\n\n\t this.__generatedMappings.push(adjustedMapping);\n\t if (typeof adjustedMapping.originalLine === 'number') {\n\t this.__originalMappings.push(adjustedMapping);\n\t }\n\t }\n\t }\n\n\t quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t quickSort(this.__originalMappings, util.compareByOriginalPositions);\n\t };\n\n\texports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\t/**\n\t * This is a helper function for getting values from parameter/options\n\t * objects.\n\t *\n\t * @param args The object we are extracting values from\n\t * @param name The name of the property we are getting.\n\t * @param defaultValue An optional value to return if the property is missing\n\t * from the object. If this is not specified and the property is missing, an\n\t * error will be thrown.\n\t */\n\tfunction getArg(aArgs, aName, aDefaultValue) {\n\t if (aName in aArgs) {\n\t return aArgs[aName];\n\t } else if (arguments.length === 3) {\n\t return aDefaultValue;\n\t } else {\n\t throw new Error('\"' + aName + '\" is a required argument.');\n\t }\n\t}\n\texports.getArg = getArg;\n\n\tvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.]*)(?::(\\d+))?(\\S*)$/;\n\tvar dataUrlRegexp = /^data:.+\\,.+$/;\n\n\tfunction urlParse(aUrl) {\n\t var match = aUrl.match(urlRegexp);\n\t if (!match) {\n\t return null;\n\t }\n\t return {\n\t scheme: match[1],\n\t auth: match[2],\n\t host: match[3],\n\t port: match[4],\n\t path: match[5]\n\t };\n\t}\n\texports.urlParse = urlParse;\n\n\tfunction urlGenerate(aParsedUrl) {\n\t var url = '';\n\t if (aParsedUrl.scheme) {\n\t url += aParsedUrl.scheme + ':';\n\t }\n\t url += '//';\n\t if (aParsedUrl.auth) {\n\t url += aParsedUrl.auth + '@';\n\t }\n\t if (aParsedUrl.host) {\n\t url += aParsedUrl.host;\n\t }\n\t if (aParsedUrl.port) {\n\t url += \":\" + aParsedUrl.port\n\t }\n\t if (aParsedUrl.path) {\n\t url += aParsedUrl.path;\n\t }\n\t return url;\n\t}\n\texports.urlGenerate = urlGenerate;\n\n\t/**\n\t * Normalizes a path, or the path portion of a URL:\n\t *\n\t * - Replaces consecutive slashes with one slash.\n\t * - Removes unnecessary '.' parts.\n\t * - Removes unnecessary '<dir>/..' parts.\n\t *\n\t * Based on code in the Node.js 'path' core module.\n\t *\n\t * @param aPath The path or url to normalize.\n\t */\n\tfunction normalize(aPath) {\n\t var path = aPath;\n\t var url = urlParse(aPath);\n\t if (url) {\n\t if (!url.path) {\n\t return aPath;\n\t }\n\t path = url.path;\n\t }\n\t var isAbsolute = exports.isAbsolute(path);\n\n\t var parts = path.split(/\\/+/);\n\t for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n\t part = parts[i];\n\t if (part === '.') {\n\t parts.splice(i, 1);\n\t } else if (part === '..') {\n\t up++;\n\t } else if (up > 0) {\n\t if (part === '') {\n\t // The first part is blank if the path is absolute. Trying to go\n\t // above the root is a no-op. Therefore we can remove all '..' parts\n\t // directly after the root.\n\t parts.splice(i + 1, up);\n\t up = 0;\n\t } else {\n\t parts.splice(i, 2);\n\t up--;\n\t }\n\t }\n\t }\n\t path = parts.join('/');\n\n\t if (path === '') {\n\t path = isAbsolute ? '/' : '.';\n\t }\n\n\t if (url) {\n\t url.path = path;\n\t return urlGenerate(url);\n\t }\n\t return path;\n\t}\n\texports.normalize = normalize;\n\n\t/**\n\t * Joins two paths/URLs.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be joined with the root.\n\t *\n\t * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n\t * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n\t * first.\n\t * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n\t * is updated with the result and aRoot is returned. Otherwise the result\n\t * is returned.\n\t * - If aPath is absolute, the result is aPath.\n\t * - Otherwise the two paths are joined with a slash.\n\t * - Joining for example 'http://' and 'www.example.com' is also supported.\n\t */\n\tfunction join(aRoot, aPath) {\n\t if (aRoot === \"\") {\n\t aRoot = \".\";\n\t }\n\t if (aPath === \"\") {\n\t aPath = \".\";\n\t }\n\t var aPathUrl = urlParse(aPath);\n\t var aRootUrl = urlParse(aRoot);\n\t if (aRootUrl) {\n\t aRoot = aRootUrl.path || '/';\n\t }\n\n\t // `join(foo, '//www.example.org')`\n\t if (aPathUrl && !aPathUrl.scheme) {\n\t if (aRootUrl) {\n\t aPathUrl.scheme = aRootUrl.scheme;\n\t }\n\t return urlGenerate(aPathUrl);\n\t }\n\n\t if (aPathUrl || aPath.match(dataUrlRegexp)) {\n\t return aPath;\n\t }\n\n\t // `join('http://', 'www.example.com')`\n\t if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n\t aRootUrl.host = aPath;\n\t return urlGenerate(aRootUrl);\n\t }\n\n\t var joined = aPath.charAt(0) === '/'\n\t ? aPath\n\t : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n\t if (aRootUrl) {\n\t aRootUrl.path = joined;\n\t return urlGenerate(aRootUrl);\n\t }\n\t return joined;\n\t}\n\texports.join = join;\n\n\texports.isAbsolute = function (aPath) {\n\t return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);\n\t};\n\n\t/**\n\t * Make a path relative to a URL or another path.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be made relative to aRoot.\n\t */\n\tfunction relative(aRoot, aPath) {\n\t if (aRoot === \"\") {\n\t aRoot = \".\";\n\t }\n\n\t aRoot = aRoot.replace(/\\/$/, '');\n\n\t // It is possible for the path to be above the root. In this case, simply\n\t // checking whether the root is a prefix of the path won't work. Instead, we\n\t // need to remove components from the root one by one, until either we find\n\t // a prefix that fits, or we run out of components to remove.\n\t var level = 0;\n\t while (aPath.indexOf(aRoot + '/') !== 0) {\n\t var index = aRoot.lastIndexOf(\"/\");\n\t if (index < 0) {\n\t return aPath;\n\t }\n\n\t // If the only part of the root that is left is the scheme (i.e. http://,\n\t // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n\t // have exhausted all components, so the path is not relative to the root.\n\t aRoot = aRoot.slice(0, index);\n\t if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n\t return aPath;\n\t }\n\n\t ++level;\n\t }\n\n\t // Make sure we add a \"../\" for each component we removed from the root.\n\t return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n\t}\n\texports.relative = relative;\n\n\tvar supportsNullProto = (function () {\n\t var obj = Object.create(null);\n\t return !('__proto__' in obj);\n\t}());\n\n\tfunction identity (s) {\n\t return s;\n\t}\n\n\t/**\n\t * Because behavior goes wacky when you set `__proto__` on objects, we\n\t * have to prefix all the strings in our set with an arbitrary character.\n\t *\n\t * See https://github.com/mozilla/source-map/pull/31 and\n\t * https://github.com/mozilla/source-map/issues/30\n\t *\n\t * @param String aStr\n\t */\n\tfunction toSetString(aStr) {\n\t if (isProtoString(aStr)) {\n\t return '$' + aStr;\n\t }\n\n\t return aStr;\n\t}\n\texports.toSetString = supportsNullProto ? identity : toSetString;\n\n\tfunction fromSetString(aStr) {\n\t if (isProtoString(aStr)) {\n\t return aStr.slice(1);\n\t }\n\n\t return aStr;\n\t}\n\texports.fromSetString = supportsNullProto ? identity : fromSetString;\n\n\tfunction isProtoString(s) {\n\t if (!s) {\n\t return false;\n\t }\n\n\t var length = s.length;\n\n\t if (length < 9 /* \"__proto__\".length */) {\n\t return false;\n\t }\n\n\t if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n\t s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n\t s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n\t s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n\t s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n\t s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 9) !== 95 /* '_' */) {\n\t return false;\n\t }\n\n\t for (var i = length - 10; i >= 0; i--) {\n\t if (s.charCodeAt(i) !== 36 /* '$' */) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t}\n\n\t/**\n\t * Comparator between two mappings where the original positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same original source/line/column, but different generated\n\t * line and column the same. Useful when searching for a mapping with a\n\t * stubbed out mapping.\n\t */\n\tfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n\t var cmp = mappingA.source - mappingB.source;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0 || onlyCompareOriginal) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t return mappingA.name - mappingB.name;\n\t}\n\texports.compareByOriginalPositions = compareByOriginalPositions;\n\n\t/**\n\t * Comparator between two mappings with deflated source and name indices where\n\t * the generated positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same generated line and column, but different\n\t * source/name/original line and column the same. Useful when searching for a\n\t * mapping with a stubbed out mapping.\n\t */\n\tfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n\t var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0 || onlyCompareGenerated) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.source - mappingB.source;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t return mappingA.name - mappingB.name;\n\t}\n\texports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\n\tfunction strcmp(aStr1, aStr2) {\n\t if (aStr1 === aStr2) {\n\t return 0;\n\t }\n\n\t if (aStr1 > aStr2) {\n\t return 1;\n\t }\n\n\t return -1;\n\t}\n\n\t/**\n\t * Comparator between two mappings with inflated source and name strings where\n\t * the generated positions are compared.\n\t */\n\tfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n\t var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = strcmp(mappingA.source, mappingB.source);\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t return strcmp(mappingA.name, mappingB.name);\n\t}\n\texports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\texports.GREATEST_LOWER_BOUND = 1;\n\texports.LEAST_UPPER_BOUND = 2;\n\n\t/**\n\t * Recursive implementation of binary search.\n\t *\n\t * @param aLow Indices here and lower do not contain the needle.\n\t * @param aHigh Indices here and higher do not contain the needle.\n\t * @param aNeedle The element being searched for.\n\t * @param aHaystack The non-empty array being searched.\n\t * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t */\n\tfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n\t // This function terminates when one of the following is true:\n\t //\n\t // 1. We find the exact element we are looking for.\n\t //\n\t // 2. We did not find the exact element, but we can return the index of\n\t // the next-closest element.\n\t //\n\t // 3. We did not find the exact element, and there is no next-closest\n\t // element than the one we are searching for, so we return -1.\n\t var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n\t var cmp = aCompare(aNeedle, aHaystack[mid], true);\n\t if (cmp === 0) {\n\t // Found the element we are looking for.\n\t return mid;\n\t }\n\t else if (cmp > 0) {\n\t // Our needle is greater than aHaystack[mid].\n\t if (aHigh - mid > 1) {\n\t // The element is in the upper half.\n\t return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n\t }\n\n\t // The exact needle element was not found in this haystack. Determine if\n\t // we are in termination case (3) or (2) and return the appropriate thing.\n\t if (aBias == exports.LEAST_UPPER_BOUND) {\n\t return aHigh < aHaystack.length ? aHigh : -1;\n\t } else {\n\t return mid;\n\t }\n\t }\n\t else {\n\t // Our needle is less than aHaystack[mid].\n\t if (mid - aLow > 1) {\n\t // The element is in the lower half.\n\t return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n\t }\n\n\t // we are in termination case (3) or (2) and return the appropriate thing.\n\t if (aBias == exports.LEAST_UPPER_BOUND) {\n\t return mid;\n\t } else {\n\t return aLow < 0 ? -1 : aLow;\n\t }\n\t }\n\t}\n\n\t/**\n\t * This is an implementation of binary search which will always try and return\n\t * the index of the closest element if there is no exact hit. This is because\n\t * mappings between original and generated line/col pairs are single points,\n\t * and there is an implicit region between each of them, so a miss just means\n\t * that you aren't on the very start of a region.\n\t *\n\t * @param aNeedle The element you are looking for.\n\t * @param aHaystack The array that is being searched.\n\t * @param aCompare A function which takes the needle and an element in the\n\t * array and returns -1, 0, or 1 depending on whether the needle is less\n\t * than, equal to, or greater than the element, respectively.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n\t */\n\texports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n\t if (aHaystack.length === 0) {\n\t return -1;\n\t }\n\n\t var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n\t aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n\t if (index < 0) {\n\t return -1;\n\t }\n\n\t // We have found either the exact element, or the next-closest element than\n\t // the one we are searching for. However, there may be more than one such\n\t // element. Make sure we always return the smallest of these.\n\t while (index - 1 >= 0) {\n\t if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n\t break;\n\t }\n\t --index;\n\t }\n\n\t return index;\n\t};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\tvar util = __webpack_require__(2);\n\tvar has = Object.prototype.hasOwnProperty;\n\n\t/**\n\t * A data structure which is a combination of an array and a set. Adding a new\n\t * member is O(1), testing for membership is O(1), and finding the index of an\n\t * element is O(1). Removing elements from the set is not supported. Only\n\t * strings are supported for membership.\n\t */\n\tfunction ArraySet() {\n\t this._array = [];\n\t this._set = Object.create(null);\n\t}\n\n\t/**\n\t * Static method for creating ArraySet instances from an existing array.\n\t */\n\tArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n\t var set = new ArraySet();\n\t for (var i = 0, len = aArray.length; i < len; i++) {\n\t set.add(aArray[i], aAllowDuplicates);\n\t }\n\t return set;\n\t};\n\n\t/**\n\t * Return how many unique items are in this ArraySet. If duplicates have been\n\t * added, than those do not count towards the size.\n\t *\n\t * @returns Number\n\t */\n\tArraySet.prototype.size = function ArraySet_size() {\n\t return Object.getOwnPropertyNames(this._set).length;\n\t};\n\n\t/**\n\t * Add the given string to this set.\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n\t var sStr = util.toSetString(aStr);\n\t var isDuplicate = has.call(this._set, sStr);\n\t var idx = this._array.length;\n\t if (!isDuplicate || aAllowDuplicates) {\n\t this._array.push(aStr);\n\t }\n\t if (!isDuplicate) {\n\t this._set[sStr] = idx;\n\t }\n\t};\n\n\t/**\n\t * Is the given string a member of this set?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.has = function ArraySet_has(aStr) {\n\t var sStr = util.toSetString(aStr);\n\t return has.call(this._set, sStr);\n\t};\n\n\t/**\n\t * What is the index of the given string in the array?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n\t var sStr = util.toSetString(aStr);\n\t if (has.call(this._set, sStr)) {\n\t return this._set[sStr];\n\t }\n\t throw new Error('\"' + aStr + '\" is not in the set.');\n\t};\n\n\t/**\n\t * What is the element at the given index?\n\t *\n\t * @param Number aIdx\n\t */\n\tArraySet.prototype.at = function ArraySet_at(aIdx) {\n\t if (aIdx >= 0 && aIdx < this._array.length) {\n\t return this._array[aIdx];\n\t }\n\t throw new Error('No element indexed by ' + aIdx);\n\t};\n\n\t/**\n\t * Returns the array representation of this set (which has the proper indices\n\t * indicated by indexOf). Note that this is a copy of the internal array used\n\t * for storing the members so that no one can mess with internal state.\n\t */\n\tArraySet.prototype.toArray = function ArraySet_toArray() {\n\t return this._array.slice();\n\t};\n\n\texports.ArraySet = ArraySet;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t *\n\t * Based on the Base 64 VLQ implementation in Closure Compiler:\n\t * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n\t *\n\t * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n\t * Redistribution and use in source and binary forms, with or without\n\t * modification, are permitted provided that the following conditions are\n\t * met:\n\t *\n\t * * Redistributions of source code must retain the above copyright\n\t * notice, this list of conditions and the following disclaimer.\n\t * * Redistributions in binary form must reproduce the above\n\t * copyright notice, this list of conditions and the following\n\t * disclaimer in the documentation and/or other materials provided\n\t * with the distribution.\n\t * * Neither the name of Google Inc. nor the names of its\n\t * contributors may be used to endorse or promote products derived\n\t * from this software without specific prior written permission.\n\t *\n\t * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\t * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n\t * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n\t * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n\t * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n\t * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n\t * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n\t * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n\t * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n\t * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t */\n\n\tvar base64 = __webpack_require__(6);\n\n\t// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n\t// length quantities we use in the source map spec, the first bit is the sign,\n\t// the next four bits are the actual value, and the 6th bit is the\n\t// continuation bit. The continuation bit tells us whether there are more\n\t// digits in this value following this digit.\n\t//\n\t// Continuation\n\t// | Sign\n\t// | |\n\t// V V\n\t// 101011\n\n\tvar VLQ_BASE_SHIFT = 5;\n\n\t// binary: 100000\n\tvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n\t// binary: 011111\n\tvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n\t// binary: 100000\n\tvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n\t/**\n\t * Converts from a two-complement value to a value where the sign bit is\n\t * placed in the least significant bit. For example, as decimals:\n\t * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n\t * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n\t */\n\tfunction toVLQSigned(aValue) {\n\t return aValue < 0\n\t ? ((-aValue) << 1) + 1\n\t : (aValue << 1) + 0;\n\t}\n\n\t/**\n\t * Converts to a two-complement value from a value where the sign bit is\n\t * placed in the least significant bit. For example, as decimals:\n\t * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n\t * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n\t */\n\tfunction fromVLQSigned(aValue) {\n\t var isNegative = (aValue & 1) === 1;\n\t var shifted = aValue >> 1;\n\t return isNegative\n\t ? -shifted\n\t : shifted;\n\t}\n\n\t/**\n\t * Returns the base 64 VLQ encoded value.\n\t */\n\texports.encode = function base64VLQ_encode(aValue) {\n\t var encoded = \"\";\n\t var digit;\n\n\t var vlq = toVLQSigned(aValue);\n\n\t do {\n\t digit = vlq & VLQ_BASE_MASK;\n\t vlq >>>= VLQ_BASE_SHIFT;\n\t if (vlq > 0) {\n\t // There are still more digits in this value, so we must make sure the\n\t // continuation bit is marked.\n\t digit |= VLQ_CONTINUATION_BIT;\n\t }\n\t encoded += base64.encode(digit);\n\t } while (vlq > 0);\n\n\t return encoded;\n\t};\n\n\t/**\n\t * Decodes the next base 64 VLQ value from the given string and returns the\n\t * value and the rest of the string via the out parameter.\n\t */\n\texports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n\t var strLen = aStr.length;\n\t var result = 0;\n\t var shift = 0;\n\t var continuation, digit;\n\n\t do {\n\t if (aIndex >= strLen) {\n\t throw new Error(\"Expected more digits in base 64 VLQ value.\");\n\t }\n\n\t digit = base64.decode(aStr.charCodeAt(aIndex++));\n\t if (digit === -1) {\n\t throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n\t }\n\n\t continuation = !!(digit & VLQ_CONTINUATION_BIT);\n\t digit &= VLQ_BASE_MASK;\n\t result = result + (digit << shift);\n\t shift += VLQ_BASE_SHIFT;\n\t } while (continuation);\n\n\t aOutParam.value = fromVLQSigned(result);\n\t aOutParam.rest = aIndex;\n\t};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\tvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n\t/**\n\t * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n\t */\n\texports.encode = function (number) {\n\t if (0 <= number && number < intToCharMap.length) {\n\t return intToCharMap[number];\n\t }\n\t throw new TypeError(\"Must be between 0 and 63: \" + number);\n\t};\n\n\t/**\n\t * Decode a single base 64 character code digit to an integer. Returns -1 on\n\t * failure.\n\t */\n\texports.decode = function (charCode) {\n\t var bigA = 65; // 'A'\n\t var bigZ = 90; // 'Z'\n\n\t var littleA = 97; // 'a'\n\t var littleZ = 122; // 'z'\n\n\t var zero = 48; // '0'\n\t var nine = 57; // '9'\n\n\t var plus = 43; // '+'\n\t var slash = 47; // '/'\n\n\t var littleOffset = 26;\n\t var numberOffset = 52;\n\n\t // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n\t if (bigA <= charCode && charCode <= bigZ) {\n\t return (charCode - bigA);\n\t }\n\n\t // 26 - 51: abcdefghijklmnopqrstuvwxyz\n\t if (littleA <= charCode && charCode <= littleZ) {\n\t return (charCode - littleA + littleOffset);\n\t }\n\n\t // 52 - 61: 0123456789\n\t if (zero <= charCode && charCode <= nine) {\n\t return (charCode - zero + numberOffset);\n\t }\n\n\t // 62: +\n\t if (charCode == plus) {\n\t return 62;\n\t }\n\n\t // 63: /\n\t if (charCode == slash) {\n\t return 63;\n\t }\n\n\t // Invalid base64 digit.\n\t return -1;\n\t};\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\t// It turns out that some (most?) JavaScript engines don't self-host\n\t// `Array.prototype.sort`. This makes sense because C++ will likely remain\n\t// faster than JS when doing raw CPU-intensive sorting. However, when using a\n\t// custom comparator function, calling back and forth between the VM's C++ and\n\t// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n\t// worse generated code for the comparator function than would be optimal. In\n\t// fact, when sorting with a comparator, these costs outweigh the benefits of\n\t// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n\t// a ~3500ms mean speed-up in `bench/bench.html`.\n\n\t/**\n\t * Swap the elements indexed by `x` and `y` in the array `ary`.\n\t *\n\t * @param {Array} ary\n\t * The array.\n\t * @param {Number} x\n\t * The index of the first item.\n\t * @param {Number} y\n\t * The index of the second item.\n\t */\n\tfunction swap(ary, x, y) {\n\t var temp = ary[x];\n\t ary[x] = ary[y];\n\t ary[y] = temp;\n\t}\n\n\t/**\n\t * Returns a random integer within the range `low .. high` inclusive.\n\t *\n\t * @param {Number} low\n\t * The lower bound on the range.\n\t * @param {Number} high\n\t * The upper bound on the range.\n\t */\n\tfunction randomIntInRange(low, high) {\n\t return Math.round(low + (Math.random() * (high - low)));\n\t}\n\n\t/**\n\t * The Quick Sort algorithm.\n\t *\n\t * @param {Array} ary\n\t * An array to sort.\n\t * @param {function} comparator\n\t * Function to use to compare two items.\n\t * @param {Number} p\n\t * Start index of the array\n\t * @param {Number} r\n\t * End index of the array\n\t */\n\tfunction doQuickSort(ary, comparator, p, r) {\n\t // If our lower bound is less than our upper bound, we (1) partition the\n\t // array into two pieces and (2) recurse on each half. If it is not, this is\n\t // the empty array and our base case.\n\n\t if (p < r) {\n\t // (1) Partitioning.\n\t //\n\t // The partitioning chooses a pivot between `p` and `r` and moves all\n\t // elements that are less than or equal to the pivot to the before it, and\n\t // all the elements that are greater than it after it. The effect is that\n\t // once partition is done, the pivot is in the exact place it will be when\n\t // the array is put in sorted order, and it will not need to be moved\n\t // again. This runs in O(n) time.\n\n\t // Always choose a random pivot so that an input array which is reverse\n\t // sorted does not cause O(n^2) running time.\n\t var pivotIndex = randomIntInRange(p, r);\n\t var i = p - 1;\n\n\t swap(ary, pivotIndex, r);\n\t var pivot = ary[r];\n\n\t // Immediately after `j` is incremented in this loop, the following hold\n\t // true:\n\t //\n\t // * Every element in `ary[p .. i]` is less than or equal to the pivot.\n\t //\n\t // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n\t for (var j = p; j < r; j++) {\n\t if (comparator(ary[j], pivot) <= 0) {\n\t i += 1;\n\t swap(ary, i, j);\n\t }\n\t }\n\n\t swap(ary, i + 1, j);\n\t var q = i + 1;\n\n\t // (2) Recurse on each half.\n\n\t doQuickSort(ary, comparator, p, q - 1);\n\t doQuickSort(ary, comparator, q + 1, r);\n\t }\n\t}\n\n\t/**\n\t * Sort the given array in-place with the given comparator function.\n\t *\n\t * @param {Array} ary\n\t * An array to sort.\n\t * @param {function} comparator\n\t * Function to use to compare two items.\n\t */\n\texports.quickSort = function (ary, comparator) {\n\t doQuickSort(ary, comparator, 0, ary.length - 1);\n\t};\n\n\n/***/ })\n/******/ ])\n});\n;","export const Octicon = {\n\talert: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z\"></path></svg>,\n\tarchive: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.75 2.5a.25.25 0 00-.25.25v1.5c0 .138.112.25.25.25h12.5a.25.25 0 00.25-.25v-1.5a.25.25 0 00-.25-.25H1.75zM0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v1.5A1.75 1.75 0 0114.25 6H1.75A1.75 1.75 0 010 4.25v-1.5zM1.75 7a.75.75 0 01.75.75v5.5c0 .138.112.25.25.25h10.5a.25.25 0 00.25-.25v-5.5a.75.75 0 111.5 0v5.5A1.75 1.75 0 0113.25 15H2.75A1.75 1.75 0 011 13.25v-5.5A.75.75 0 011.75 7zm4.5 1a.75.75 0 000 1.5h3.5a.75.75 0 100-1.5h-3.5z\"></path></svg>,\n\tarrow_left: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M7.78 12.53a.75.75 0 01-1.06 0L2.47 8.28a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 1.06L4.81 7h7.44a.75.75 0 010 1.5H4.81l2.97 2.97a.75.75 0 010 1.06z\"></path></svg>,\n\tarrow_right: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8.22 2.97a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06l2.97-2.97H3.75a.75.75 0 010-1.5h7.44L8.22 4.03a.75.75 0 010-1.06z\"></path></svg>,\n\tcheck: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z\"></path></svg>,\n\tchevron_down: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M12.78 6.22a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06 0L3.22 7.28a.75.75 0 011.06-1.06L8 9.94l3.72-3.72a.75.75 0 011.06 0z\"></path></svg>,\n\tchevron_right: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M6.22 3.22a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06L9.94 8 6.22 4.28a.75.75 0 010-1.06z\"></path></svg>,\n\tchevron_up: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M3.22 9.78a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 0l4.25 4.25a.75.75 0 01-1.06 1.06L8 6.06 4.28 9.78a.75.75 0 01-1.06 0z\"></path></svg>,\n\tclippy: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z\"></path></svg>,\n\tcode: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M4.72 3.22a.75.75 0 011.06 1.06L2.06 8l3.72 3.72a.75.75 0 11-1.06 1.06L.47 8.53a.75.75 0 010-1.06l4.25-4.25zm6.56 0a.75.75 0 10-1.06 1.06L13.94 8l-3.72 3.72a.75.75 0 101.06 1.06l4.25-4.25a.75.75 0 000-1.06l-4.25-4.25z\"></path></svg>,\n\tdash: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M2 8a.75.75 0 01.75-.75h10.5a.75.75 0 010 1.5H2.75A.75.75 0 012 8z\"></path></svg>,\n\tdevice_desktop: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.75 2.5h12.5a.25.25 0 01.25.25v7.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25v-7.5a.25.25 0 01.25-.25zM14.25 1H1.75A1.75 1.75 0 000 2.75v7.5C0 11.216.784 12 1.75 12h3.727c-.1 1.041-.52 1.872-1.292 2.757A.75.75 0 004.75 16h6.5a.75.75 0 00.565-1.243c-.772-.885-1.193-1.716-1.292-2.757h3.727A1.75 1.75 0 0016 10.25v-7.5A1.75 1.75 0 0014.25 1zM9.018 12H6.982a5.72 5.72 0 01-.765 2.5h3.566a5.72 5.72 0 01-.765-2.5z\"></path></svg>,\n\tdot_fill: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 4a4 4 0 100 8 4 4 0 000-8z\"></path></svg>,\n\tdownload: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M7.47 10.78a.75.75 0 001.06 0l3.75-3.75a.75.75 0 00-1.06-1.06L8.75 8.44V1.75a.75.75 0 00-1.5 0v6.69L4.78 5.97a.75.75 0 00-1.06 1.06l3.75 3.75zM3.75 13a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5z\"></path></svg>,\n\tduplicate: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M10.5 3a.75.75 0 01.75.75v1h1a.75.75 0 010 1.5h-1v1a.75.75 0 01-1.5 0v-1h-1a.75.75 0 010-1.5h1v-1A.75.75 0 0110.5 3z\"></path><path fill-rule=\"evenodd\" d=\"M6.75 0A1.75 1.75 0 005 1.75v7.5c0 .966.784 1.75 1.75 1.75h7.5A1.75 1.75 0 0016 9.25v-7.5A1.75 1.75 0 0014.25 0h-7.5zM6.5 1.75a.25.25 0 01.25-.25h7.5a.25.25 0 01.25.25v7.5a.25.25 0 01-.25.25h-7.5a.25.25 0 01-.25-.25v-7.5z\"></path><path d=\"M1.75 5A1.75 1.75 0 000 6.75v7.5C0 15.216.784 16 1.75 16h7.5A1.75 1.75 0 0011 14.25v-1.5a.75.75 0 00-1.5 0v1.5a.25.25 0 01-.25.25h-7.5a.25.25 0 01-.25-.25v-7.5a.25.25 0 01.25-.25h1.5a.75.75 0 000-1.5h-1.5z\"></path></svg>,\n\teye: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.679 7.932c.412-.621 1.242-1.75 2.366-2.717C5.175 4.242 6.527 3.5 8 3.5c1.473 0 2.824.742 3.955 1.715 1.124.967 1.954 2.096 2.366 2.717a.119.119 0 010 .136c-.412.621-1.242 1.75-2.366 2.717C10.825 11.758 9.473 12.5 8 12.5c-1.473 0-2.824-.742-3.955-1.715C2.92 9.818 2.09 8.69 1.679 8.068a.119.119 0 010-.136zM8 2c-1.981 0-3.67.992-4.933 2.078C1.797 5.169.88 6.423.43 7.1a1.619 1.619 0 000 1.798c.45.678 1.367 1.932 2.637 3.024C4.329 13.008 6.019 14 8 14c1.981 0 3.67-.992 4.933-2.078 1.27-1.091 2.187-2.345 2.637-3.023a1.619 1.619 0 000-1.798c-.45-.678-1.367-1.932-2.637-3.023C11.671 2.992 9.981 2 8 2zm0 8a2 2 0 100-4 2 2 0 000 4z\"></path></svg>,\n\teye_closed: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M.143 2.31a.75.75 0 011.047-.167l14.5 10.5a.75.75 0 11-.88 1.214l-2.248-1.628C11.346 13.19 9.792 14 8 14c-1.981 0-3.67-.992-4.933-2.078C1.797 10.832.88 9.577.43 8.9a1.618 1.618 0 010-1.797c.353-.533.995-1.42 1.868-2.305L.31 3.357A.75.75 0 01.143 2.31zm3.386 3.378a14.21 14.21 0 00-1.85 2.244.12.12 0 00-.022.068c0 .021.006.045.022.068.412.621 1.242 1.75 2.366 2.717C5.175 11.758 6.527 12.5 8 12.5c1.195 0 2.31-.488 3.29-1.191L9.063 9.695A2 2 0 016.058 7.52l-2.53-1.832zM8 3.5c-.516 0-1.017.09-1.499.251a.75.75 0 11-.473-1.423A6.23 6.23 0 018 2c1.981 0 3.67.992 4.933 2.078 1.27 1.091 2.187 2.345 2.637 3.023a1.619 1.619 0 010 1.798c-.11.166-.248.365-.41.587a.75.75 0 11-1.21-.887c.148-.201.272-.382.371-.53a.119.119 0 000-.137c-.412-.621-1.242-1.75-2.366-2.717C10.825 4.242 9.473 3.5 8 3.5z\"></path></svg>,\n\tfile: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M3.75 1.5a.25.25 0 00-.25.25v11.5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25V6H9.75A1.75 1.75 0 018 4.25V1.5H3.75zm5.75.56v2.19c0 .138.112.25.25.25h2.19L9.5 2.06zM2 1.75C2 .784 2.784 0 3.75 0h5.086c.464 0 .909.184 1.237.513l3.414 3.414c.329.328.513.773.513 1.237v8.086A1.75 1.75 0 0112.25 15h-8.5A1.75 1.75 0 012 13.25V1.75z\"></path></svg>,\n\tfile_directory: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.75 1A1.75 1.75 0 000 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25v-8.5A1.75 1.75 0 0014.25 3h-6.5a.25.25 0 01-.2-.1l-.9-1.2c-.33-.44-.85-.7-1.4-.7h-3.5z\"></path></svg>,\n\tgear: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M7.429 1.525a6.593 6.593 0 011.142 0c.036.003.108.036.137.146l.289 1.105c.147.56.55.967.997 1.189.174.086.341.183.501.29.417.278.97.423 1.53.27l1.102-.303c.11-.03.175.016.195.046.219.31.41.641.573.989.014.031.022.11-.059.19l-.815.806c-.411.406-.562.957-.53 1.456a4.588 4.588 0 010 .582c-.032.499.119 1.05.53 1.456l.815.806c.08.08.073.159.059.19a6.494 6.494 0 01-.573.99c-.02.029-.086.074-.195.045l-1.103-.303c-.559-.153-1.112-.008-1.529.27-.16.107-.327.204-.5.29-.449.222-.851.628-.998 1.189l-.289 1.105c-.029.11-.101.143-.137.146a6.613 6.613 0 01-1.142 0c-.036-.003-.108-.037-.137-.146l-.289-1.105c-.147-.56-.55-.967-.997-1.189a4.502 4.502 0 01-.501-.29c-.417-.278-.97-.423-1.53-.27l-1.102.303c-.11.03-.175-.016-.195-.046a6.492 6.492 0 01-.573-.989c-.014-.031-.022-.11.059-.19l.815-.806c.411-.406.562-.957.53-1.456a4.587 4.587 0 010-.582c.032-.499-.119-1.05-.53-1.456l-.815-.806c-.08-.08-.073-.159-.059-.19a6.44 6.44 0 01.573-.99c.02-.029.086-.075.195-.045l1.103.303c.559.153 1.112.008 1.529-.27.16-.107.327-.204.5-.29.449-.222.851-.628.998-1.189l.289-1.105c.029-.11.101-.143.137-.146zM8 0c-.236 0-.47.01-.701.03-.743.065-1.29.615-1.458 1.261l-.29 1.106c-.017.066-.078.158-.211.224a5.994 5.994 0 00-.668.386c-.123.082-.233.09-.3.071L3.27 2.776c-.644-.177-1.392.02-1.82.63a7.977 7.977 0 00-.704 1.217c-.315.675-.111 1.422.363 1.891l.815.806c.05.048.098.147.088.294a6.084 6.084 0 000 .772c.01.147-.038.246-.088.294l-.815.806c-.474.469-.678 1.216-.363 1.891.2.428.436.835.704 1.218.428.609 1.176.806 1.82.63l1.103-.303c.066-.019.176-.011.299.071.213.143.436.272.668.386.133.066.194.158.212.224l.289 1.106c.169.646.715 1.196 1.458 1.26a8.094 8.094 0 001.402 0c.743-.064 1.29-.614 1.458-1.26l.29-1.106c.017-.066.078-.158.211-.224a5.98 5.98 0 00.668-.386c.123-.082.233-.09.3-.071l1.102.302c.644.177 1.392-.02 1.82-.63.268-.382.505-.789.704-1.217.315-.675.111-1.422-.364-1.891l-.814-.806c-.05-.048-.098-.147-.088-.294a6.1 6.1 0 000-.772c-.01-.147.039-.246.088-.294l.814-.806c.475-.469.679-1.216.364-1.891a7.992 7.992 0 00-.704-1.218c-.428-.609-1.176-.806-1.82-.63l-1.103.303c-.066.019-.176.011-.299-.071a5.991 5.991 0 00-.668-.386c-.133-.066-.194-.158-.212-.224L10.16 1.29C9.99.645 9.444.095 8.701.031A8.094 8.094 0 008 0zm1.5 8a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM11 8a3 3 0 11-6 0 3 3 0 016 0z\"></path></svg>,\n\tglobe: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.543 7.25h2.733c.144-2.074.866-3.756 1.58-4.948.12-.197.237-.381.353-.552a6.506 6.506 0 00-4.666 5.5zm2.733 1.5H1.543a6.506 6.506 0 004.666 5.5 11.13 11.13 0 01-.352-.552c-.715-1.192-1.437-2.874-1.581-4.948zm1.504 0h4.44a9.637 9.637 0 01-1.363 4.177c-.306.51-.612.919-.857 1.215a9.978 9.978 0 01-.857-1.215A9.637 9.637 0 015.78 8.75zm4.44-1.5H5.78a9.637 9.637 0 011.363-4.177c.306-.51.612-.919.857-1.215.245.296.55.705.857 1.215A9.638 9.638 0 0110.22 7.25zm1.504 1.5c-.144 2.074-.866 3.756-1.58 4.948-.12.197-.237.381-.353.552a6.506 6.506 0 004.666-5.5h-2.733zm2.733-1.5h-2.733c-.144-2.074-.866-3.756-1.58-4.948a11.738 11.738 0 00-.353-.552 6.506 6.506 0 014.666 5.5zM8 0a8 8 0 100 16A8 8 0 008 0z\"></path></svg>,\n\thistory: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.643 3.143L.427 1.927A.25.25 0 000 2.104V5.75c0 .138.112.25.25.25h3.646a.25.25 0 00.177-.427L2.715 4.215a6.5 6.5 0 11-1.18 4.458.75.75 0 10-1.493.154 8.001 8.001 0 101.6-5.684zM7.75 4a.75.75 0 01.75.75v2.992l2.028.812a.75.75 0 01-.557 1.392l-2.5-1A.75.75 0 017 8.25v-3.5A.75.75 0 017.75 4z\"></path></svg>,\n\tinfo: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm6.5-.25A.75.75 0 017.25 7h1a.75.75 0 01.75.75v2.75h.25a.75.75 0 010 1.5h-2a.75.75 0 010-1.5h.25v-2h-.25a.75.75 0 01-.75-.75zM8 6a1 1 0 100-2 1 1 0 000 2z\"></path></svg>,\n\tissue_opened: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm9 3a1 1 0 11-2 0 1 1 0 012 0zm-.25-6.25a.75.75 0 00-1.5 0v3.5a.75.75 0 001.5 0v-3.5z\"></path></svg>,\n\tkebab_horizontal: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M8 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zM1.5 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zm13 0a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path></svg>,\n\tlink: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg>,\n\tlink_external: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M10.604 1h4.146a.25.25 0 01.25.25v4.146a.25.25 0 01-.427.177L13.03 4.03 9.28 7.78a.75.75 0 01-1.06-1.06l3.75-3.75-1.543-1.543A.25.25 0 0110.604 1zM3.75 2A1.75 1.75 0 002 3.75v8.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 12.25v-3.5a.75.75 0 00-1.5 0v3.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-8.5a.25.25 0 01.25-.25h3.5a.75.75 0 000-1.5h-3.5z\"></path></svg>,\n\tmark_github: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z\"></path></svg>,\n\tmoon: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M9.598 1.591a.75.75 0 01.785-.175 7 7 0 11-8.967 8.967.75.75 0 01.961-.96 5.5 5.5 0 007.046-7.046.75.75 0 01.175-.786zm1.616 1.945a7 7 0 01-7.678 7.678 5.5 5.5 0 107.678-7.678z\"></path></svg>,\n\tplay: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zM6.379 5.227A.25.25 0 006 5.442v5.117a.25.25 0 00.379.214l4.264-2.559a.25.25 0 000-.428L6.379 5.227z\"></path></svg>,\n\tplus: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 2a.75.75 0 01.75.75v4.5h4.5a.75.75 0 010 1.5h-4.5v4.5a.75.75 0 01-1.5 0v-4.5h-4.5a.75.75 0 010-1.5h4.5v-4.5A.75.75 0 018 2z\"></path></svg>,\n\tplus_circle: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zm.75 4.75a.75.75 0 00-1.5 0v2.5h-2.5a.75.75 0 000 1.5h2.5v2.5a.75.75 0 001.5 0v-2.5h2.5a.75.75 0 000-1.5h-2.5v-2.5z\"></path></svg>,\n\trepo: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z\"></path></svg>,\n\tsearch: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z\"></path></svg>,\n\tsort_asc: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M0 4.25a.75.75 0 01.75-.75h2.5a.75.75 0 010 1.5H.75A.75.75 0 010 4.25zm0 4a.75.75 0 01.75-.75h4.5a.75.75 0 010 1.5H.75A.75.75 0 010 8.25zm0 4a.75.75 0 01.75-.75h7.5a.75.75 0 010 1.5H.75a.75.75 0 01-.75-.75zm12.927-9.677a.25.25 0 00-.354 0l-3 3A.25.25 0 009.75 6H12v6.75a.75.75 0 001.5 0V6h2.25a.25.25 0 00.177-.427l-3-3z\"></path></svg>,\n\tsort_desc: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M0 4.25a.75.75 0 01.75-.75h7.5a.75.75 0 010 1.5H.75A.75.75 0 010 4.25zm0 4a.75.75 0 01.75-.75h4.5a.75.75 0 010 1.5H.75A.75.75 0 010 8.25zm0 4a.75.75 0 01.75-.75h2.5a.75.75 0 010 1.5H.75a.75.75 0 01-.75-.75z\"></path><path d=\"M13.5 10h2.25a.25.25 0 01.177.427l-3 3a.25.25 0 01-.354 0l-3-3A.25.25 0 019.75 10H12V3.75a.75.75 0 011.5 0V10z\"></path></svg>,\n\tsquare: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M4 5.75C4 4.784 4.784 4 5.75 4h4.5c.966 0 1.75.784 1.75 1.75v4.5A1.75 1.75 0 0110.25 12h-4.5A1.75 1.75 0 014 10.25v-4.5zm1.75-.25a.25.25 0 00-.25.25v4.5c0 .138.112.25.25.25h4.5a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-4.5z\"></path></svg>,\n\tsquare_fill: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M5.75 4A1.75 1.75 0 004 5.75v4.5c0 .966.784 1.75 1.75 1.75h4.5A1.75 1.75 0 0012 10.25v-4.5A1.75 1.75 0 0010.25 4h-4.5z\"></path></svg>,\n\tstack: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M7.122.392a1.75 1.75 0 011.756 0l5.003 2.902c.83.481.83 1.68 0 2.162L8.878 8.358a1.75 1.75 0 01-1.756 0L2.119 5.456a1.25 1.25 0 010-2.162L7.122.392zM8.125 1.69a.25.25 0 00-.25 0l-4.63 2.685 4.63 2.685a.25.25 0 00.25 0l4.63-2.685-4.63-2.685zM1.601 7.789a.75.75 0 011.025-.273l5.249 3.044a.25.25 0 00.25 0l5.249-3.044a.75.75 0 01.752 1.298l-5.248 3.044a1.75 1.75 0 01-1.756 0L1.874 8.814A.75.75 0 011.6 7.789zm0 3.5a.75.75 0 011.025-.273l5.249 3.044a.25.25 0 00.25 0l5.249-3.044a.75.75 0 01.752 1.298l-5.248 3.044a1.75 1.75 0 01-1.756 0l-5.248-3.044a.75.75 0 01-.273-1.025z\"></path></svg>,\n\tsun: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 10.5a2.5 2.5 0 100-5 2.5 2.5 0 000 5zM8 12a4 4 0 100-8 4 4 0 000 8zM8 0a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0V.75A.75.75 0 018 0zm0 13a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0v-1.5A.75.75 0 018 13zM2.343 2.343a.75.75 0 011.061 0l1.06 1.061a.75.75 0 01-1.06 1.06l-1.06-1.06a.75.75 0 010-1.06zm9.193 9.193a.75.75 0 011.06 0l1.061 1.06a.75.75 0 01-1.06 1.061l-1.061-1.06a.75.75 0 010-1.061zM16 8a.75.75 0 01-.75.75h-1.5a.75.75 0 010-1.5h1.5A.75.75 0 0116 8zM3 8a.75.75 0 01-.75.75H.75a.75.75 0 010-1.5h1.5A.75.75 0 013 8zm10.657-5.657a.75.75 0 010 1.061l-1.061 1.06a.75.75 0 11-1.06-1.06l1.06-1.06a.75.75 0 011.06 0zm-9.193 9.193a.75.75 0 010 1.06l-1.06 1.061a.75.75 0 11-1.061-1.06l1.06-1.061a.75.75 0 011.061 0z\"></path></svg>,\n\tsync: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 2.5a5.487 5.487 0 00-4.131 1.869l1.204 1.204A.25.25 0 014.896 6H1.25A.25.25 0 011 5.75V2.104a.25.25 0 01.427-.177l1.38 1.38A7.001 7.001 0 0114.95 7.16a.75.75 0 11-1.49.178A5.501 5.501 0 008 2.5zM1.705 8.005a.75.75 0 01.834.656 5.501 5.501 0 009.592 2.97l-1.204-1.204a.25.25 0 01.177-.427h3.646a.25.25 0 01.25.25v3.646a.25.25 0 01-.427.177l-1.38-1.38A7.001 7.001 0 011.05 8.84a.75.75 0 01.656-.834z\"></path></svg>,\n\ttag: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M2.5 7.775V2.75a.25.25 0 01.25-.25h5.025a.25.25 0 01.177.073l6.25 6.25a.25.25 0 010 .354l-5.025 5.025a.25.25 0 01-.354 0l-6.25-6.25a.25.25 0 01-.073-.177zm-1.5 0V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.513l6.25 6.25a1.75 1.75 0 010 2.474l-5.026 5.026a1.75 1.75 0 01-2.474 0l-6.25-6.25A1.75 1.75 0 011 7.775zM6 5a1 1 0 100 2 1 1 0 000-2z\"></path></svg>,\n\tterminal: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0114.25 15H1.75A1.75 1.75 0 010 13.25V2.75zm1.75-.25a.25.25 0 00-.25.25v10.5c0 .138.112.25.25.25h12.5a.25.25 0 00.25-.25V2.75a.25.25 0 00-.25-.25H1.75zM7.25 8a.75.75 0 01-.22.53l-2.25 2.25a.75.75 0 11-1.06-1.06L5.44 8 3.72 6.28a.75.75 0 111.06-1.06l2.25 2.25c.141.14.22.331.22.53zm1.5 1.5a.75.75 0 000 1.5h3a.75.75 0 000-1.5h-3z\"></path></svg>,\n\tthree_bars: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1 2.75A.75.75 0 011.75 2h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 2.75zm0 5A.75.75 0 011.75 7h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 7.75zM1.75 12a.75.75 0 100 1.5h12.5a.75.75 0 100-1.5H1.75z\"></path></svg>,\n\ttrashcan: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M6.5 1.75a.25.25 0 01.25-.25h2.5a.25.25 0 01.25.25V3h-3V1.75zm4.5 0V3h2.25a.75.75 0 010 1.5H2.75a.75.75 0 010-1.5H5V1.75C5 .784 5.784 0 6.75 0h2.5C10.216 0 11 .784 11 1.75zM4.496 6.675a.75.75 0 10-1.492.15l.66 6.6A1.75 1.75 0 005.405 15h5.19c.9 0 1.652-.681 1.741-1.576l.66-6.6a.75.75 0 00-1.492-.149l-.66 6.6a.25.25 0 01-.249.225h-5.19a.25.25 0 01-.249-.225l-.66-6.6z\"></path></svg>,\n\tunfold: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M8.177.677l2.896 2.896a.25.25 0 01-.177.427H8.75v1.25a.75.75 0 01-1.5 0V4H5.104a.25.25 0 01-.177-.427L7.823.677a.25.25 0 01.354 0zM7.25 10.75a.75.75 0 011.5 0V12h2.146a.25.25 0 01.177.427l-2.896 2.896a.25.25 0 01-.354 0l-2.896-2.896A.25.25 0 015.104 12H7.25v-1.25zm-5-2a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5zM6 8a.75.75 0 01-.75.75h-.5a.75.75 0 010-1.5h.5A.75.75 0 016 8zm2.25.75a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5zM12 8a.75.75 0 01-.75.75h-.5a.75.75 0 010-1.5h.5A.75.75 0 0112 8zm2.25.75a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5z\"></path></svg>,\n\tupload: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8.53 1.22a.75.75 0 00-1.06 0L3.72 4.97a.75.75 0 001.06 1.06l2.47-2.47v6.69a.75.75 0 001.5 0V3.56l2.47 2.47a.75.75 0 101.06-1.06L8.53 1.22zM3.75 13a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5z\"></path></svg>,\n\tx: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z\"></path></svg>,\n\tx_circle: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M3.404 12.596a6.5 6.5 0 119.192-9.192 6.5 6.5 0 01-9.192 9.192zM2.344 2.343a8 8 0 1011.313 11.314A8 8 0 002.343 2.343zM6.03 4.97a.75.75 0 00-1.06 1.06L6.94 8 4.97 9.97a.75.75 0 101.06 1.06L8 9.06l1.97 1.97a.75.75 0 101.06-1.06L9.06 8l1.97-1.97a.75.75 0 10-1.06-1.06L8 6.94 6.03 4.97z\"></path></svg>,\n}\n","import { useEffect, useMemo, useState } from 'preact/hooks'\nimport { mapStackTrace } from 'sourcemapped-stacktrace'\nimport { Octicon } from './Octicon'\n\ntype ErrorPanelProps = {\n\terror: string | Error,\n\tonDismiss?: () => unknown,\n}\nexport function ErrorPanel({ error, onDismiss }: ErrorPanelProps) {\n\tconst [stackVisible, setStackVisible] = useState(false)\n\tconst [stack, setStack] = useState<string | undefined>(undefined)\n\n\tuseEffect(() => {\n\t\tif (error instanceof Error) {\n\t\t\tconst stack = error.stack!.split('\\n').map(line => {\n\t\t\t\treturn line.replace(/^(\\s+)at (?:async )?(https?:.*)/, '$1at ($2)')\n\t\t\t})\n\t\t\tsetStack(stack.join('\\n'))\n\t\t\tmapStackTrace(stack.join('\\n'), (mapped) => {\n\t\t\t\tconst mappedStack = mapped.map(line => {\n\t\t\t\t\treturn line.replace(/..\\/..\\/src\\//, 'src/')\n\t\t\t\t}).join('\\n')\n\t\t\t\tsetStack(mappedStack)\n\t\t\t})\n\t\t}\n\t}, [error])\n\n\tconst url = useMemo(() => {\n\t\tlet url ='https://github.com/misode/misode.github.io/issues/new'\n\t\tif (error instanceof Error) {\n\t\t\turl += `?title=${encodeURIComponent(`${error.name}: ${error.message}`)}`\n\t\t\tif (stack) {\n\t\t\t\turl += `&body=${encodeURIComponent(`\\`\\`\\`\\n${error.name}: ${error.message}\\n${stack}\\n\\`\\`\\`\\n`)}`\n\t\t\t}\n\t\t} else {\n\t\t\turl += `?title=${encodeURIComponent(error.toString())}`\n\t\t}\n\t\treturn url\n\t}, [error, stack])\n\n\treturn <div class=\"error\">\n\t\t{onDismiss && <div class=\"error-dismiss\" onClick={onDismiss}>{Octicon.x}</div>}\n\t\t<h3>\n\t\t\t{error instanceof Error ? error.message : error}\n\t\t\t{stack && <span onClick={() => setStackVisible(!stackVisible)}>\n\t\t\t\t{Octicon.info}\n\t\t\t</span>}\n\t\t</h3>\n\t\t{stack && stackVisible && <pre>{stack}</pre>}\n\t\t<p>If you think this is a bug, you can report it <a href={url} target=\"_blank\">on GitHub</a></p>\n\t</div>\n}\n","import { hexId } from '../../Utils'\n\ninterface Props {\n\tlabel: string,\n\tvalue: boolean,\n\tonChange: (value: boolean) => unknown,\n}\nexport function Checkbox({ label, value, onChange }: Props) {\n\tconst id = hexId()\n\treturn <label class=\"checkbox\">\n\t\t<input id={id} type=\"checkbox\" checked={value} onClick={() => onChange(!value)} />\n\t\t{label}\n\t</label>\n}\n","import type { JSXInternal } from 'preact/src/jsx'\n\ntype InputProps = JSXInternal.HTMLAttributes<HTMLInputElement>\n\ntype BaseInputProps<T> = Omit<InputProps, 'onChange' | 'type'> & {\n\tonChange?: (value: T) => unknown,\n\tonEnter?: (value: T) => unknown,\n}\nfunction BaseInput<T>(name: string, type: string, fn: (value: string) => T) {\n\tconst component = (props: BaseInputProps<T>) => {\n\t\tconst onChange = props.onChange && ((evt: Event) => {\n\t\t\tconst value = (evt.target as HTMLInputElement).value\n\t\t\tprops.onChange?.(fn(value))\n\t\t})\n\t\tconst onKeyDown = props.onEnter && ((evt: KeyboardEvent) => {\n\t\t\tif (evt.key === 'Enter') {\n\t\t\t\tconst value = (evt.target as HTMLInputElement).value\n\t\t\t\tprops.onEnter?.(fn(value))\n\t\t\t}\n\t\t})\n\t\treturn <input {...props} {...{ type, onChange, onKeyDown }} />\n\t}\n\tcomponent.displayName = name\n\treturn component\n}\n\nexport const TextInput = BaseInput('TextInput', 'text', v => v)\n\nexport const NumberInput = BaseInput('NumberInput', 'number', v => Number(v))\n\nexport const RangeInput = BaseInput('RangeInput', 'range', v => Number(v))\n","import { useMemo, useState } from 'preact/hooks'\nimport { Btn, BtnInput } from '..'\n\ninterface Props {\n\tvalues?: string[],\n\tonSelect?: (value: string) => unknown,\n\tsearchPlaceholder?: string,\n\tnoResults?: string,\n}\nexport function SearchList({ values, onSelect, searchPlaceholder, noResults }: Props) {\n\tconst [search, setSearch] = useState('')\n\tconst results = useMemo(() => {\n\t\tconst terms = search.trim().split(' ')\n\t\treturn values?.filter(v => terms.every(t => v.includes(t))) ?? []\n\t}, [values, search])\n\n\treturn <>\n\t\t<BtnInput icon=\"search\" large value={search} onChange={setSearch} doSelect={1} placeholder={searchPlaceholder ?? 'Search'} />\n\t\t<div class=\"result-list\">\n\t\t\t{results.map(v => <Btn key={v} label={v} onClick={() => onSelect?.(v)} />)}\n\t\t\t{results.length === 0 && <Btn label={noResults ?? 'No results'}/>}\n\t\t</div>\n\t</>\n}\n","import { isObject } from '../Utils'\n\nconst repo = 'https://raw.githubusercontent.com/misode/technical-changes/main'\n\nexport type Change = {\n\tgroup: ChangelogVersion,\n\tversion: ChangelogVersion,\n\torder: number,\n\ttags: string[],\n\tcontent: string,\n}\n\nexport type ChangelogVersion = {\n\tid: string,\n\tarticle: string | null,\n}\n\nlet Changelogs: Change[] | Promise<Change[]> | null = null\n\nexport async function getChangelogs() {\n\tif (!Changelogs) {\n\t\tconst index = await (await fetch(`${repo}/index.json`)).json() as string[]\n\t\tChangelogs = (await Promise.all(\n\t\t\tindex.map((group, i) => fetchGroup(parseVersion(group), i))\n\t\t)).flat().map<Change>(change => ({\n\t\t\t...change,\n\t\t\ttags: [change.group.id, ...change.tags],\n\t\t}))\n\t}\n\treturn Changelogs\n}\n\nasync function fetchGroup(group: ChangelogVersion, groupIndex: number) {\n\tconst index = await (await fetch(`${repo}/${group.id}/index.json`)).json() as string[]\n\treturn (await Promise.all(\n\t\tindex.map((version, i) => fetchChangelog(group, parseVersion(version), groupIndex, i))\n\t)).flat()\n}\n\nasync function fetchChangelog(group: ChangelogVersion, version: ChangelogVersion, groupIndex: number, versionIndex: number) {\n\tconst text = await (await fetch(`${repo}/${group.id}/${version.id}.md`)).text()\n\treturn parseChangelog(text).map(change => ({\n\t\tversion,\n\t\tgroup,\n\t\torder: groupIndex * 1000 + versionIndex,\n\t\t...change,\n\t}))\n}\n\nfunction parseChangelog(text: string) {\n\treturn text.split('\\n\\n')\n\t\t.map(entry => {\n\t\t\tconst i = entry.indexOf('|')\n\t\t\treturn {\n\t\t\t\ttags: entry.substring(0, i).trim().split(' '),\n\t\t\t\tcontent: entry.slice(i + 1).trim()\n\t\t\t\t\t.replaceAll('->', '→')\n\t\t\t\t\t.replaceAll('\\n...\\n', '\\n\\n'),\n\t\t\t}\n\t\t})\n}\n\nfunction parseVersion(version: unknown): ChangelogVersion {\n\tif (typeof version === 'string') {\n\t\treturn {\n\t\t\tid: version,\n\t\t\tarticle: version.match(/\\d\\dw\\d\\d[a-z]/) ? 'minecraft-snapshot-' + version : version.match(/\\d+\\.\\d+(\\.\\d+)?-pre[0-9]+/) ? 'minecraft-' + version.replaceAll('.', '-').replaceAll('pre', 'pre-release-') : null,\n\t\t}\n\t} else if (isObject(version)) {\n\t\treturn version as ChangelogVersion\n\t}\n\treturn { id: 'unknown', article: null }\n}\n","import type { CollectionRegistry } from '@mcschema/core'\nimport config from '../../config.json'\nimport { message } from '../Utils'\nimport type { BlockStateRegistry, VersionId } from './Schemas'\n\n// Cleanup old caches\n['1.15', '1.16', '1.17'].forEach(v => localStorage.removeItem(`cache_${v}`));\n['mcdata_master', 'vanilla_datapack_summary'].forEach(v => localStorage.removeItem(`cached_${v}`))\ncaches.delete('misode-v1')\n\nconst CACHE_NAME = 'misode-v2'\nconst CACHE_LATEST_VERSION = 'cached_latest_version'\n\ntype Version = {\n\tid: string,\n\tref?: string,\n\tdynamic?: boolean,\n}\n\ndeclare var __LATEST_VERSION__: string\nconst latestVersion = __LATEST_VERSION__ ?? ''\nconst mcmetaUrl = 'https://raw.githubusercontent.com/misode/mcmeta'\n\ntype McmetaTypes = 'summary' | 'data' | 'assets' | 'registries'\n\nfunction mcmeta(version: { dynamic: true } | { dynamic?: false, ref?: string}, type: McmetaTypes) {\n\treturn `${mcmetaUrl}/${version.dynamic ? type : `${version.ref}-${type}`}`\n}\n\nasync function validateCache(version: Version) {\n\tif (version.dynamic) {\n\t\tif (localStorage.getItem(CACHE_LATEST_VERSION) !== latestVersion) {\n\t\t\tawait deleteMatching(url => url.startsWith(`${mcmetaUrl}/summary/`) || url.startsWith(`${mcmetaUrl}/data/`) || url.startsWith(`${mcmetaUrl}/assets/`) || url.startsWith(`${mcmetaUrl}/registries/`))\n\t\t\tlocalStorage.setItem(CACHE_LATEST_VERSION, latestVersion)\n\t\t}\n\t\tversion.ref = latestVersion\n\t}\n}\n\nexport async function fetchData(versionId: string, collectionTarget: CollectionRegistry, blockStateTarget: BlockStateRegistry) {\n\tconst version = config.versions.find(v => v.id === versionId) as Version | undefined\n\tif (!version) {\n\t\tconsole.error(`[fetchData] Unknown version ${version} in ${JSON.stringify(config.versions)}`)\n\t\treturn\n\t}\n\n\tawait validateCache(version)\n\n\tawait Promise.all([\n\t\tfetchRegistries(version, collectionTarget),\n\t\tfetchBlockStateMap(version, blockStateTarget),\n\t])\n}\n\nasync function fetchRegistries(version: Version, target: CollectionRegistry) {\n\tconsole.debug(`[fetchRegistries] ${version.id}`)\n\ttry {\n\t\tconst data = await getData(`${mcmeta(version, 'summary')}/registries/data.min.json`)\n\t\tfor (const id in data) {\n\t\t\ttarget.register(id, data[id].map((e: string) => 'minecraft:' + e))\n\t\t}\n\t} catch (e) {\n\t\tconsole.warn('Error occurred while fetching registries:', message(e))\n\t}\n}\n\nasync function fetchBlockStateMap(version: Version, target: BlockStateRegistry) {\n\tconsole.debug(`[fetchBlockStateMap] ${version.id}`)\n\ttry {\n\t\tconst data = await getData(`${mcmeta(version, 'summary')}/blocks/data.min.json`)\n\t\tfor (const id in data) {\n\t\t\ttarget['minecraft:' + id] = {\n\t\t\t\tproperties: data[id][0],\n\t\t\t\tdefault: data[id][1],\n\t\t\t}\n\t\t}\n\t} catch (e) {\n\t\tconsole.warn('Error occurred while fetching block state map:', message(e))\n\t}\n}\n\nexport async function fetchPreset(versionId: VersionId, registry: string, id: string) {\n\tconsole.debug(`[fetchPreset] ${versionId} ${registry} ${id}`)\n\tconst version = config.versions.find(v => v.id === versionId)!\n\ttry {\n\t\tconst type = ['blockstates', 'models'].includes(registry) ? 'assets' : 'data'\n\t\tconst url = `${mcmeta(version, type)}/${type}/minecraft/${registry}/${id}.json`\n\t\tconst res = await fetch(url)\n\t\treturn await res.json()\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching ${registry} preset ${id}: ${message(e)}`)\n\t}\n}\n\nexport async function fetchAllPresets(versionId: VersionId, registry: string) {\n\tconsole.debug(`[fetchAllPresets] ${versionId} ${registry}`)\n\tconst version = config.versions.find(v => v.id === versionId)!\n\tawait validateCache(version)\n\ttry {\n\t\tconst entries = await getData(`${mcmeta(version, 'registries')}/${registry}/data.min.json`)\n\t\treturn new Map<string, unknown>(await Promise.all(\n\t\t\tentries.map(async (e: string) =>\n\t\t\t\t[e, await getData(`${mcmeta(version, 'data')}/data/minecraft/${registry}/${e}.json`)])\n\t\t))\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching all ${registry} presets: ${message(e)}`)\n\t}\n}\n\nexport type SoundEvents = {\n\t[key: string]: {\n\t\tsounds: (string | { name: string })[],\n\t},\n}\nexport async function fetchSounds(versionId: VersionId): Promise<SoundEvents> {\n\tconst version = config.versions.find(v => v.id === versionId)!\n\tawait validateCache(version)\n\ttry {\n\t\tconst url = `${mcmeta(version, 'summary')}/sounds/data.min.json`\n\t\treturn await getData(url)\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching sounds for ${version}: ${message(e)}`)\n\t}\n}\n\nexport function getSoundUrl(versionId: VersionId, path: string) {\n\tconst version = config.versions.find(v => v.id === versionId)!\n\treturn `${mcmeta(version, 'assets')}/assets/minecraft/sounds/${path}.ogg`\n}\n\nexport type VersionMeta = {\n\tid: string,\n\tname: string,\n\trelease_target: string,\n\ttype: 'snapshot' | 'release',\n\tstable: boolean,\n\tdata_version: number,\n\tprotocol_version: number,\n\tdata_pack_version: number,\n\tresource_pack_version: number,\n\tbuild_time: string,\n\trelease_time: string,\n\tsha1: string,\n}\nexport async function fetchVersions(): Promise<VersionMeta[]> {\n\tconst version = config.versions[config.versions.length - 1]\n\tawait validateCache(version)\n\ttry {\n\t\treturn getData(`${mcmeta(version, 'summary')}/versions/data.min.json`)\n\t} catch (e) {\n\t\tthrow new Error(`Error occured while fetching versions: ${message(e)}`)\n\t}\n}\n\nasync function getData<T = any>(url: string, fn: (v: any) => T = (v: any) => v): Promise<T> {\n\ttry {\n\t\tconst cache = await caches.open(CACHE_NAME)\n\t\tconsole.debug(`[getData] Opened cache ${CACHE_NAME} ${url}`)\n\t\tconst cacheResponse = await cache.match(url)\n \n\t\tif (cacheResponse && cacheResponse.ok) {\n\t\t\tconsole.debug(`[getData] Retrieving cached data ${url}`)\n\t\t\treturn await cacheResponse.json()\n\t\t}\n \n\t\tconsole.debug(`[getData] fetching data ${url}`)\n\t\tconst fetchResponse = await fetch(url)\n\t\tconst responseData = fn(await fetchResponse.json())\n\t\tawait cache.put(url, new Response(JSON.stringify(responseData)))\n\t\treturn responseData\n\t} catch (e) {\n\t\tconsole.warn(`[getData] Failed to open cache ${CACHE_NAME}: ${message(e)}`)\n\n\t\tconsole.debug(`[getData] fetching data ${url}`)\n\t\tconst fetchResponse = await fetch(url)\n\t\tconst responseData = fn(await fetchResponse.json())\n\t\treturn responseData\n\t}\n}\n\nasync function deleteMatching(matches: (url: string) => boolean) {\n\ttry {\n\t\tconst cache = await caches.open(CACHE_NAME)\n\t\tconsole.debug(`[deleteMatching] Opened cache ${CACHE_NAME}`)\n\t\tconst promises: Promise<boolean>[] = []\n \n\t\tfor (const request of await cache.keys()) {\n\t\t\tif (matches(request.url)) {\n\t\t\t\tpromises.push(cache.delete(request))\n\t\t\t}\n\t\t}\n\t\tconsole.debug(`[deleteMatching] Removing ${promises.length} cache objects...`)\n\t\tawait Promise.all(promises)\n\t} catch (e) {\n\t\tconsole.warn(`[deleteMatching] Failed to open cache ${CACHE_NAME}: ${message(e)}`)\n\t}\n}\n","const scriptRel = 'modulepreload';const seen = {};const base = '/';export const __vitePreload = function preload(baseModule, deps) {\n // @ts-ignore\n if (!__VITE_IS_MODERN__ || !deps || deps.length === 0) {\n return baseModule();\n }\n return Promise.all(deps.map((dep) => {\n // @ts-ignore\n dep = `${base}${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(new Error(`Unable to preload CSS for ${dep}`)));\n });\n }\n })).then(() => baseModule());\n}","import type { CollectionRegistry, INode, SchemaRegistry } from '@mcschema/core'\nimport { ChoiceNode, DataModel, Reference, StringNode } from '@mcschema/core'\nimport config from '../../config.json'\nimport { message } from '../Utils'\nimport { fetchData } from './DataFetcher'\n\nexport const VersionIds = ['1.15', '1.16', '1.17', '1.18', '1.18.2', '1.19'] as const\nexport type VersionId = typeof VersionIds[number]\n\nexport type BlockStateRegistry = {\n\t[block: string]: {\n\t\tproperties?: {\n\t\t\t[key: string]: string[],\n\t\t},\n\t\tdefault?: {\n\t\t\t[key: string]: string,\n\t\t},\n\t},\n}\n\ntype VersionData = {\n\tcollections: CollectionRegistry,\n\tschemas: SchemaRegistry,\n\tblockStates: BlockStateRegistry,\n}\nconst Versions: Record<string, VersionData | Promise<VersionData>> = {}\n\ntype ModelData = {\n\tmodel: DataModel,\n\tversion: VersionId,\n}\nconst Models: Record<string, ModelData> = {}\n\nconst versionGetter: {\n\t[versionId in VersionId]: () => Promise<{\n\t\tgetCollections: () => CollectionRegistry,\n\t\tgetSchemas: (collections: CollectionRegistry) => SchemaRegistry,\n\t}>\n} = {\n\t1.15: () => import('@mcschema/java-1.15'),\n\t1.16: () => import('@mcschema/java-1.16'),\n\t1.17: () => import('@mcschema/java-1.17'),\n\t1.18: () => import('@mcschema/java-1.18'),\n\t'1.18.2': () => import('@mcschema/java-1.18.2'),\n\t1.19: () => import('@mcschema/java-1.19'),\n}\n\nexport let CachedDecorator: INode<any>\nexport let CachedFeature: INode<any>\nexport let CachedCollections: CollectionRegistry\n\nasync function getVersion(id: VersionId): Promise<VersionData> {\n\tif (!Versions[id]) {\n\t\tVersions[id] = (async () => {\n\t\t\ttry {\n\t\t\t\tconst mcschema = await versionGetter[id]()\n\t\t\t\tconst collections = mcschema.getCollections()\n\t\t\t\tconst blockStates: BlockStateRegistry = {}\n\t\t\t\tawait fetchData(id, collections, blockStates)\n\t\t\t\tconst schemas = mcschema.getSchemas(collections)\n\t\t\t\tVersions[id] = { collections, schemas, blockStates }\n\t\t\t\treturn Versions[id]\n\t\t\t} catch (e) {\n\t\t\t\tthrow new Error(`Cannot get version \"${id}\": ${message(e)}`)\n\t\t\t}\n\t\t})()\n\t\treturn Versions[id]\n\t}\n\treturn Versions[id]\n}\n\nexport async function getModel(version: VersionId, id: string): Promise<DataModel> {\n\tif (!Models[id] || Models[id].version !== version) {\n\t\tconst versionData = await getVersion(version)\n\t\t\n\t\tCachedDecorator = Reference(versionData.schemas, 'configured_decorator')\n\t\tCachedFeature = ChoiceNode([\n\t\t\t{\n\t\t\t\ttype: 'string',\n\t\t\t\tnode: StringNode(versionData.collections, { validator: 'resource', params: { pool: '$worldgen/configured_feature' } }),\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'object',\n\t\t\t\tnode: Reference(versionData.schemas, 'configured_feature'),\n\t\t\t},\n\t\t], { choiceContext: 'feature' })\n\n\t\tconst schemaName = config.generators.find(g => g.id === id)?.schema\n\t\tif (!schemaName) {\n\t\t\tthrow new Error(`Cannot find model ${id}`)\n\t\t}\n\t\ttry {\n\t\t\tconst schema = versionData.schemas.get(schemaName)\n\t\t\tconst model = new DataModel(schema, { wrapLists: true })\n\t\t\tif (Models[id]) {\n\t\t\t\tmodel.reset(Models[id].model.data, false)\n\t\t\t} else {\n\t\t\t\tmodel.validate(true)\n\t\t\t\tmodel.history = [JSON.stringify(model.data)]\n\t\t\t}\n\t\t\tModels[id] = { model, version }\n\t\t} catch (e) {\n\t\t\tconst err = new Error(`Cannot get generator \"${id}\" for version \"${version}\": ${message(e)}`)\n\t\t\tif (e instanceof Error) err.stack = e.stack\n\t\t\tthrow err\n\t\t}\n\t}\n\treturn Models[id].model\n}\n\nexport async function getCollections(version: VersionId): Promise<CollectionRegistry> {\n\tconst versionData = await getVersion(version)\n\tCachedCollections = versionData.collections\n\treturn versionData.collections\n}\n\nexport async function getBlockStates(version: VersionId): Promise<BlockStateRegistry> {\n\tconst versionData = await getVersion(version)\n\treturn versionData.blockStates\n}\n\nexport function checkVersion(versionId: string, minVersionId: string | undefined, maxVersionId?: string) {\n\tconst version = config.versions.findIndex(v => v.id === versionId)\n\tconst minVersion = minVersionId ? config.versions.findIndex(v => v.id === minVersionId) : 0\n\tconst maxVersion = maxVersionId ? config.versions.findIndex(v => v.id === maxVersionId) : config.versions.length - 1\n\treturn minVersion <= version && version <= maxVersion\n}\n","// Copyright (c) 2013 Pieroxy <pieroxy@pieroxy.net>\n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.4\nvar LZString = (function() {\n\n// private property\nvar f = String.fromCharCode;\nvar keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nvar keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\nvar baseReverseDic = {};\n\nfunction getBaseValue(alphabet, character) {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {};\n for (var i=0 ; i<alphabet.length ; i++) {\n baseReverseDic[alphabet][alphabet.charAt(i)] = i;\n }\n }\n return baseReverseDic[alphabet][character];\n}\n\nvar LZString = {\n compressToBase64 : function (input) {\n if (input == null) return \"\";\n var res = LZString._compress(input, 6, function(a){return keyStrBase64.charAt(a);});\n switch (res.length % 4) { // To produce valid Base64\n default: // When could this happen ?\n case 0 : return res;\n case 1 : return res+\"===\";\n case 2 : return res+\"==\";\n case 3 : return res+\"=\";\n }\n },\n\n decompressFromBase64 : function (input) {\n if (input == null) return \"\";\n if (input == \"\") return null;\n return LZString._decompress(input.length, 32, function(index) { return getBaseValue(keyStrBase64, input.charAt(index)); });\n },\n\n compressToUTF16 : function (input) {\n if (input == null) return \"\";\n return LZString._compress(input, 15, function(a){return f(a+32);}) + \" \";\n },\n\n decompressFromUTF16: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 16384, function(index) { return compressed.charCodeAt(index) - 32; });\n },\n\n //compress into uint8array (UCS-2 big endian format)\n compressToUint8Array: function (uncompressed) {\n var compressed = LZString.compress(uncompressed);\n var buf=new Uint8Array(compressed.length*2); // 2 bytes per character\n\n for (var i=0, TotalLen=compressed.length; i<TotalLen; i++) {\n var current_value = compressed.charCodeAt(i);\n buf[i*2] = current_value >>> 8;\n buf[i*2+1] = current_value % 256;\n }\n return buf;\n },\n\n //decompress from uint8array (UCS-2 big endian format)\n decompressFromUint8Array:function (compressed) {\n if (compressed===null || compressed===undefined){\n return LZString.decompress(compressed);\n } else {\n var buf=new Array(compressed.length/2); // 2 bytes per character\n for (var i=0, TotalLen=buf.length; i<TotalLen; i++) {\n buf[i]=compressed[i*2]*256+compressed[i*2+1];\n }\n\n var result = [];\n buf.forEach(function (c) {\n result.push(f(c));\n });\n return LZString.decompress(result.join(''));\n\n }\n\n },\n\n\n //compress into a string that is already URI encoded\n compressToEncodedURIComponent: function (input) {\n if (input == null) return \"\";\n return LZString._compress(input, 6, function(a){return keyStrUriSafe.charAt(a);});\n },\n\n //decompress from an output of compressToEncodedURIComponent\n decompressFromEncodedURIComponent:function (input) {\n if (input == null) return \"\";\n if (input == \"\") return null;\n input = input.replace(/ /g, \"+\");\n return LZString._decompress(input.length, 32, function(index) { return getBaseValue(keyStrUriSafe, input.charAt(index)); });\n },\n\n compress: function (uncompressed) {\n return LZString._compress(uncompressed, 16, function(a){return f(a);});\n },\n _compress: function (uncompressed, bitsPerChar, getCharFromInt) {\n if (uncompressed == null) return \"\";\n var i, value,\n context_dictionary= {},\n context_dictionaryToCreate= {},\n context_c=\"\",\n context_wc=\"\",\n context_w=\"\",\n context_enlargeIn= 2, // Compensate for the first entry which should not count\n context_dictSize= 3,\n context_numBits= 2,\n context_data=[],\n context_data_val=0,\n context_data_position=0,\n ii;\n\n for (ii = 0; ii < uncompressed.length; ii += 1) {\n context_c = uncompressed.charAt(ii);\n if (!Object.prototype.hasOwnProperty.call(context_dictionary,context_c)) {\n context_dictionary[context_c] = context_dictSize++;\n context_dictionaryToCreate[context_c] = true;\n }\n\n context_wc = context_w + context_c;\n if (Object.prototype.hasOwnProperty.call(context_dictionary,context_wc)) {\n context_w = context_wc;\n } else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<8 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | value;\n if (context_data_position ==bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = 0;\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<16 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++;\n context_w = String(context_c);\n }\n }\n\n // Output the code for w.\n if (context_w !== \"\") {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<8 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | value;\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = 0;\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<16 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n }\n\n // Mark the end of the stream\n value = 2;\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data.push(getCharFromInt(context_data_val));\n break;\n }\n else context_data_position++;\n }\n return context_data.join('');\n },\n\n decompress: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); });\n },\n\n _decompress: function (length, resetValue, getNextValue) {\n var dictionary = [],\n next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry = \"\",\n result = [],\n i,\n w,\n bits, resb, maxpower, power,\n c,\n data = {val:getNextValue(0), position:resetValue, index:1};\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i;\n }\n\n bits = 0;\n maxpower = Math.pow(2,2);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (next = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 2:\n return \"\";\n }\n dictionary[3] = c;\n w = c;\n result.push(c);\n while (true) {\n if (data.index > length) {\n return \"\";\n }\n\n bits = 0;\n maxpower = Math.pow(2,numBits);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (c = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 2:\n return result.join('');\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n if (dictionary[c]) {\n entry = dictionary[c];\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0);\n } else {\n return null;\n }\n }\n result.push(entry);\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0);\n enlargeIn--;\n\n w = entry;\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n }\n }\n};\n return LZString;\n})();\n\nif (typeof define === 'function' && define.amd) {\n define(function () { return LZString; });\n} else if( typeof module !== 'undefined' && module != null ) {\n module.exports = LZString\n}\n","import lz from 'lz-string'\nimport config from '../../config.json'\nimport type { VersionId } from './Schemas'\n\nconst API_PREFIX = 'https://z15g7can.directus.app/items'\nexport const SHARE_KEY = 'share'\n\nconst ShareCache = new Map<string, string>()\n\nexport async function shareSnippet(type: string, version: VersionId, jsonData: any, show_preview: boolean) {\n\ttry {\n\t\tconst data = lz.compressToBase64(JSON.stringify(jsonData))\n\t\tconst raw = btoa(JSON.stringify(jsonData))\n\t\tconsole.log('Compression rate', raw.length / data.length)\n\t\tconst body = JSON.stringify({ data, type, version, show_preview })\n\t\tlet id = ShareCache.get(body)\n\t\tif (!id) {\n\t\t\tconst snippet = await fetchApi('/snippets', body)\n\t\t\tShareCache.set(body, snippet.id)\n\t\t\tid = snippet.id as string\n\t\t}\n\t\tconst gen = config.generators.find(g => g.id === type)!\n\t\treturn `${location.protocol}//${location.host}/${gen.url}/?${SHARE_KEY}=${id}`\n\t} catch (e) {\n\t\tif (e instanceof Error) {\n\t\t\te.message = `Error creating share link: ${e.message}`\n\t\t}\n\t\tthrow e\n\t}\n}\n\nexport async function getSnippet(id: string) {\n\ttry {\n\t\tconst snippet = await fetchApi(`/snippets/${id}`)\n\t\treturn {\n\t\t\t...snippet,\n\t\t\tdata: JSON.parse(lz.decompressFromBase64(snippet.data) ?? '{}'),\n\t\t}\n\t} catch (e) {\n\t\tif (e instanceof Error) {\n\t\t\te.message = `Error loading shared content: ${e.message}`\n\t\t}\n\t\tthrow e\n\t}\n}\n\nasync function fetchApi(url: string, body?: string) {\n\tconst res = await fetch(API_PREFIX + url, body ? {\n\t\tmethod: 'post',\n\t\theaders: { 'Content-Type': 'application/json' },\n\t\tbody,\n\t} : undefined)\n\tconst data = await res.json()\n\tif (data.data) {\n\t\treturn data.data\n\t}\n\tthrow new Error(data.errors?.[0]?.message ?? 'Unknown error')\n}\n","import type { Project } from './contexts'\nimport { DRAFT_PROJECT } from './contexts'\nimport type { VersionId } from './services'\nimport { VersionIds } from './services'\n\nexport namespace Store {\n\texport const ID_LANGUAGE = 'language'\n\texport const ID_THEME = 'theme'\n\texport const ID_VERSION = 'schema_version'\n\texport const ID_INDENT = 'indentation'\n\texport const ID_FORMAT = 'output_format'\n\texport const ID_HIGHLIGHTING = 'output_highlighting'\n\texport const ID_SOUNDS_VERSION = 'minecraft_sounds_version'\n\texport const ID_PROJECTS = 'misode_projects'\n\texport const ID_BACKUPS = 'misode_generator_backups'\n\n\texport function getLanguage() {\n\t\treturn localStorage.getItem(ID_LANGUAGE) ?? 'en'\n\t}\n\n\texport function getTheme() {\n\t\treturn localStorage.getItem(ID_THEME) ?? 'dark'\n\t}\n\n\texport function getVersion(): VersionId {\n\t\tconst version = localStorage.getItem(ID_VERSION)\n\t\tif (version && VersionIds.includes(version as VersionId)) {\n\t\t\treturn version as VersionId\n\t\t}\n\t\treturn '1.18.2'\n\t}\n\n\texport function getIndent() {\n\t\treturn localStorage.getItem(ID_INDENT) ?? '2_spaces'\n\t}\n\n\texport function getFormat() {\n\t\treturn localStorage.getItem(ID_FORMAT) ?? 'json'\n\t}\n\n\texport function getHighlighting() {\n\t\treturn localStorage.getItem(ID_HIGHLIGHTING) !== 'false'\n\t}\n\n\texport function getSoundsVersion() {\n\t\treturn localStorage.getItem(ID_SOUNDS_VERSION) ?? 'latest'\n\t}\n\n\texport function getProjects(): Project[] {\n\t\tconst projects = localStorage.getItem(ID_PROJECTS)\n\t\tif (projects) {\n\t\t\treturn JSON.parse(projects) as Project[]\n\t\t}\n\t\treturn [DRAFT_PROJECT]\n\t}\n\n\texport function getBackup(id: string): object | undefined {\n\t\tconst backups = JSON.parse(localStorage.getItem(ID_BACKUPS) ?? '{}')\n\t\treturn backups[id]\n\t}\n\n\texport function setLanguage(language: string | undefined) {\n\t\tif (language) localStorage.setItem(ID_LANGUAGE, language)\n\t}\n\n\texport function setTheme(theme: string | undefined) {\n\t\tif (theme) localStorage.setItem(ID_THEME, theme)\n\t}\n\n\texport function setVersion(version: VersionId | undefined) {\n\t\tif (version) localStorage.setItem(ID_VERSION, version)\n\t}\n\n\texport function setIndent(indent: string | undefined) {\n\t\tif (indent) localStorage.setItem(ID_INDENT, indent)\n\t}\n\n\texport function setFormat(format: string | undefined) {\n\t\tif (format) localStorage.setItem(ID_FORMAT, format)\n\t}\n\n\texport function setHighlighting(highlighting: boolean | undefined) {\n\t\tif (highlighting !== undefined) localStorage.setItem(ID_HIGHLIGHTING, highlighting.toString())\n\t}\n\n\texport function setSoundsVersion(version: string | undefined) {\n\t\tif (version) localStorage.setItem(ID_SOUNDS_VERSION, version)\n\t}\n\n\texport function setProjects(projects: Project[] | undefined) {\n\t\tif (projects) localStorage.setItem(ID_PROJECTS, JSON.stringify(projects))\n\t}\n\n\texport function setBackup(id: string, data: object | undefined) {\n\t\tconst backups = JSON.parse(localStorage.getItem(ID_BACKUPS) ?? '{}')\n\t\tif (data === undefined) {\n\t\t\tdelete backups[id]\n\t\t} else {\n\t\t\tbackups[id] = data\n\t\t}\n\t\tlocalStorage.setItem(ID_BACKUPS, JSON.stringify(backups))\n\t}\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport English from '../../locales/en.json'\nimport { Analytics } from '../Analytics'\nimport { Store } from '../Store'\n\ninterface Locale {\n\tlang: string,\n\tlocale: (key: string, ...params: string[]) => string,\n\tchangeLanguage: (lang: string) => unknown,\n}\nconst Locale = createContext<Locale>({\n\tlang: 'none',\n\tlocale: key => key,\n\tchangeLanguage: () => {},\n})\n\nexport const Locales: {\n\t[key: string]: {\n\t\t[key: string]: string,\n\t},\n} = {\n\tfallback: English,\n}\n\nexport function localize(lang: string, key: string, ...params: string[]) {\n\tconst value: string | undefined = Locales[lang]?.[key]\n\t?? Locales.en?.[key] ?? Locales.fallback[key] ?? key\n\treturn resolveLocaleParams(value, params)\n}\n\nfunction resolveLocaleParams(value: string, params?: string[]): string {\n\treturn value.replace(/%\\d+%/g, match => {\n\t\tconst index = parseInt(match.slice(1, -1))\n\t\treturn params?.[index] !== undefined ? params[index] : match\n\t})\n}\n\nasync function loadLocale(language: string) {\n\tif (Locales[language]) return\n\tconst langConfig = config.languages.find(lang => lang.code === language)\n\tif (!langConfig) return\n\tconst data = await import(`../../locales/${language}.json`)\n\tconst schema = langConfig.schemas !== false\n\t\t&& await import(`../../../node_modules/@mcschema/locales/src/${language}.json`)\n\tLocales[language] = { ...data.default, ...schema.default }\n}\n\nexport function useLocale() {\n\treturn useContext(Locale)\n}\n\nexport function LocaleProvider({ children }: { children: ComponentChildren }) {\n\tconst [lang, setLanguage] = useState('none')\n\n\tconst locale = useCallback((key: string, ...params: string[]) => {\n\t\treturn localize(lang, key, ...params)\n\t}, [lang])\n\n\tconst changeLanguage = useCallback(async (lang: string) => {\n\t\tawait loadLocale(lang)\n\t\tAnalytics.setLanguage(lang)\n\t\tStore.setLanguage(lang)\n\t\tsetLanguage(lang)\n\t}, [])\n\n\tuseEffect(() => {\n\t\t(async () => {\n\t\t\tconst target = Store.getLanguage()\n\t\t\tawait Promise.all([\n\t\t\t\tloadLocale('en'),\n\t\t\t\t...(target !== 'en' ? [loadLocale(target)] : []),\n\t\t\t])\n\t\t\tsetLanguage(target)\n\t\t})()\n\t}, [])\n\n\tconst value: Locale = {\n\t\tlang,\n\t\tlocale: locale,\n\t\tchangeLanguage,\n\t}\n\n\treturn <Locale.Provider value={value}>\n\t\t{children}\n\t</Locale.Provider>\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { route } from 'preact-router'\nimport { useCallback, useContext, useMemo, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport type { VersionId } from '../services'\nimport { Store } from '../Store'\nimport { cleanUrl } from '../Utils'\n\nexport type Project = {\n\tname: string,\n\tnamespace: string,\n\tversion?: VersionId,\n\tfiles: ProjectFile[],\n}\nexport const DRAFT_PROJECT: Project = {\n\tname: 'Drafts',\n\tnamespace: 'draft',\n\tfiles: [],\n}\n\nexport type ProjectFile = {\n\ttype: string,\n\tid: string,\n\tdata: any,\n}\n\ninterface ProjectContext {\n\tproject: Project,\n\tfile?: ProjectFile,\n\tchangeProject: (name: string) => unknown,\n\tupdateProject: (project: Partial<Project>) => unknown,\n\tupdateFile: (type: string, id: string | undefined, file: Partial<ProjectFile>) => boolean,\n\topenFile: (type: string, id: string) => unknown,\n\tcloseFile: () => unknown,\n}\nconst Project = createContext<ProjectContext>({\n\tproject: DRAFT_PROJECT,\n\tchangeProject: () => {},\n\tupdateProject: () => {},\n\tupdateFile: () => false,\n\topenFile: () => {},\n\tcloseFile: () => {},\n})\n\nexport function useProject() {\n\treturn useContext(Project)\n}\n\nexport function ProjectProvider({ children }: { children: ComponentChildren }) {\n\tconst [projects, setProjects] = useState<Project[]>(Store.getProjects())\n\n\tconst [projectName, setProjectName] = useState<string>(DRAFT_PROJECT.name)\n\tconst project = useMemo(() => {\n\t\treturn projects.find(p => p.name === projectName) ?? DRAFT_PROJECT\n\t}, [projects, projectName])\n\n\tconst [fileId, setFileId] = useState<[string, string] | undefined>(undefined)\n\tconst file = useMemo(() => {\n\t\tif (!fileId) return undefined\n\t\treturn project.files.find(f => f.type === fileId[0] && f.id === fileId[1])\n\t}, [project, fileId])\n\n\tconst changeProjects = useCallback((projects: Project[]) => {\n\t\tStore.setProjects(projects)\n\t\tsetProjects(projects)\n\t}, [])\n\n\tconst updateProject = useCallback((edits: Partial<Project>) => {\n\t\tchangeProjects(projects.map(p => p.name === projectName ?\t{ ...p, ...edits } : p))\n\t}, [projects, projectName])\n\n\tconst updateFile = useCallback((type: string, id: string | undefined, edits: Partial<ProjectFile>) => {\n\t\tif (!edits.id) { // remove\n\t\t\tupdateProject({ files: project.files.filter(f => f.type !== type || f.id !== id) })\n\t\t} else {\n\t\t\tconst newId = edits.id.includes(':') ? edits.id : `${project.namespace}:${edits.id}`\n\t\t\tconst exists = project.files.some(f => f.type === type && f.id === newId)\n\t\t\tif (!id) { // create\n\t\t\t\tif (exists) return false\n\t\t\t\tupdateProject({ files: [...project.files, { type, id: newId, data: edits.data ?? {} } ]})\n\t\t\t\tsetFileId([type, newId])\n\t\t\t} else { // rename or update data\n\t\t\t\tif (file?.id === id && id !== newId && exists) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tupdateProject({ files: project.files.map(f => f.type === type && f.id === id ? { ...f, ...edits, id: newId } : f)})\n\t\t\t\tif (file?.id === id) setFileId([type, newId])\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}, [updateProject, project, file])\n\n\tconst openFile = useCallback((type: string, id: string) => {\n\t\tconst gen = config.generators.find(g => g.id === type || g.path === type)\n\t\tif (!gen) {\n\t\t\tthrow new Error(`Cannot find generator of type ${type}`)\n\t\t}\n\t\tsetFileId([gen.id, id])\n\t\troute(cleanUrl(gen.url))\n\t}, [])\n\n\tconst closeFile = useCallback(() => {\n\t\tsetFileId(undefined)\n\t}, [])\n\n\tconst value: ProjectContext = {\n\t\tproject,\n\t\tfile,\n\t\tchangeProject: setProjectName,\n\t\tupdateProject,\n\t\tupdateFile,\n\t\topenFile,\n\t\tcloseFile,\n\t}\n\n\treturn <Project.Provider value={value}>\n\t\t{children}\n\t</Project.Provider>\n}\n\nexport function getFilePath(file: ProjectFile) {\n\tconst [namespace, id] = file.id.includes(':') ? file.id.split(':') : ['minecraft', file.id]\n\tconst gen = config.generators.find(g => g.id === file.type)\n\tif (!gen) {\n\t\tthrow new Error(`Cannot find generator of type ${file.type}`)\n\t}\n\treturn `data/${namespace}/${gen.path ?? gen.id}/${id}`\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport { Analytics } from '../Analytics'\nimport { useMediaQuery } from '../hooks'\nimport { Store } from '../Store'\n\ninterface Theme {\n\ttheme: string,\n\tactualTheme: 'light' | 'dark',\n\tchangeTheme: (theme: string) => unknown,\n}\nconst Theme = createContext<Theme>({\n\ttheme: 'dark',\n\tactualTheme: 'dark',\n\tchangeTheme: () => {},\n})\n\nexport function useTheme() {\n\treturn useContext(Theme)\n}\n\nexport function ThemeProvider({ children }: { children: ComponentChildren }) {\n\tconst [theme, setTheme] = useState(Store.getTheme())\n\tconst prefersLight = useMediaQuery('(prefers-color-scheme: light)')\n\tconst prefersDark = useMediaQuery('(prefers-color-scheme: dark)')\n\n\tuseEffect(() => {\n\t\tdocument.documentElement.setAttribute('data-theme', theme)\n\t}, [theme])\n\n\tconst changeTheme = useCallback((theme: string) => {\n\t\tAnalytics.setTheme(theme)\n\t\tStore.setTheme(theme)\n\t\tsetTheme(theme)\n\t}, [])\n\n\tuseEffect(() => {\n\t\tAnalytics.setPrefersColorScheme(prefersLight ? 'light' : prefersDark ? 'dark' : 'none')\n\t}, [prefersLight, prefersDark])\n\n\tconst value: Theme = {\n\t\ttheme,\n\t\tactualTheme: theme === 'light' || (theme !== 'dark' && prefersLight) ? 'light' : 'dark',\n\t\tchangeTheme,\n\t}\n\n\treturn <Theme.Provider value={value}>\n\t\t{children}\n\t</Theme.Provider>\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport { useLocale } from '.'\nimport config from '../../config.json'\nimport type { VersionId } from '../services'\n\nconst VERSIONS_IN_TITLE = 3\n\ninterface Title {\n\ttitle: string,\n\tchangeTitle: (title: string, versions?: VersionId[]) => unknown,\n}\nconst Title = createContext<Title>({\n\ttitle: '',\n\tchangeTitle: () => {},\n})\n\nexport function useTitle(title?: string, versions?: VersionId[]) {\n\tconst context = useContext(Title)\n\tuseEffect(() => {\n\t\tif (title) {\n\t\t\tcontext.changeTitle(title, versions)\n\t\t}\n\t}, [title, versions])\n\treturn context\n}\n\nexport function TitleProvider({ children }: { children: ComponentChildren }) {\n\tconst { locale } = useLocale()\n\tconst [title, setTitle] = useState<string>(locale('title.home'))\n\n\tconst changeTitle = useCallback((title: string, versions?: VersionId[]) => {\n\t\tversions ??= config.versions.map(v => v.id as VersionId)\n\t\tconst titleVersions = versions.slice(-VERSIONS_IN_TITLE)\n\t\tdocument.title = `${title} Minecraft ${titleVersions.join(', ')}`\n\t\tsetTitle(title)\n\t}, [])\n\n\tconst value = {\n\t\ttitle,\n\t\tchangeTitle,\n\t}\n\n\treturn <Title.Provider value={value}>\n\t\t{children}\n\t</Title.Provider>\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport { Analytics } from '../Analytics'\nimport { useSearchParam } from '../hooks'\nimport type { VersionId } from '../services'\nimport { VersionIds } from '../services'\nimport { Store } from '../Store'\n\nconst VERSION_PARAM = 'version'\n\ninterface Version {\n\tversion: VersionId,\n\tchangeVersion: (version: VersionId, store?: boolean, updateSearch?: boolean) => unknown,\n\tchangeTargetVersion: (version: VersionId, replace?: boolean) => unknown,\n}\nconst Version = createContext<Version>({\n\tversion: '1.18.2',\n\tchangeVersion: () => {},\n\tchangeTargetVersion: () => {},\n})\n\nexport function useVersion() {\n\treturn useContext(Version)\n}\n\nexport function VersionProvider({ children }: { children: ComponentChildren }) {\n\tconst [version, setVersion] = useState<VersionId>(Store.getVersion())\n\n\tconst [targetVersion, changeTargetVersion] = useSearchParam(VERSION_PARAM)\n\n\tuseEffect(() => {\n\t\tif (VersionIds.includes(targetVersion as VersionId) && version !== targetVersion) {\n\t\t\tsetVersion(targetVersion as VersionId)\n\t\t}\n\t}, [version, targetVersion])\n\n\tconst changeVersion = useCallback((newVersion: VersionId, store = true, updateSearch = false) => {\n\t\tif (updateSearch || targetVersion) {\n\t\t\tchangeTargetVersion(newVersion, true)\n\t\t}\n\t\tif (store) {\n\t\t\tAnalytics.setVersion(newVersion)\n\t\t\tStore.setVersion(newVersion)\n\t\t}\n\t\tsetVersion(newVersion)\n\t}, [targetVersion])\n\n\tconst value: Version = {\n\t\tversion,\n\t\tchangeVersion,\n\t\tchangeTargetVersion,\n\t}\n\n\treturn <Version.Provider value={value}>\n\t\t{children}\n\t</Version.Provider>\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<<MAX_BITS)-1,\n // \"inconsistent bit counts\");\n //Tracev((stderr,\"\\ngen_codes: max_code %d \", max_code));\n\n for (n = 0; n <= max_code; n++) {\n let len = tree[n * 2 + 1]/*.Len*/;\n if (len === 0) { continue; }\n /* Now reverse the bits */\n tree[n * 2]/*.Code*/ = bi_reverse(next_code[len]++, len);\n\n //Tracecv(tree != static_ltree, (stderr,\"\\nn %3d %c l %2d c %4x (%x) \",\n // n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));\n }\n};\n\n\n/* ===========================================================================\n * Initialize the various 'constant' tables.\n */\nconst tr_static_init = () => {\n\n let n; /* iterates over tree elements */\n let bits; /* bit counter */\n let length; /* length value */\n let code; /* code value */\n let dist; /* distance index */\n const bl_count = new Array(MAX_BITS$1 + 1);\n /* number of codes at each bit length for an optimal tree */\n\n // do check in _tr_init()\n //if (static_init_done) return;\n\n /* For some embedded targets, global variables are not initialized: */\n/*#ifdef NO_INIT_GLOBAL_POINTERS\n static_l_desc.static_tree = static_ltree;\n static_l_desc.extra_bits = extra_lbits;\n static_d_desc.static_tree = static_dtree;\n static_d_desc.extra_bits = extra_dbits;\n static_bl_desc.extra_bits = extra_blbits;\n#endif*/\n\n /* Initialize the mapping length (0..255) -> length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES$1 - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES$1; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES$1 + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES$1; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS$1 + 1, L_CODES$1, MAX_BITS$1);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES$1, MAX_BITS$1);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES$1, MAX_BL_BITS);\n\n //static_init_done = true;\n};\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nconst init_block = (s) => {\n\n let n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES$1; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES$1; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES$1; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nconst bi_windup = (s) =>\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n};\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nconst copy_block = (s, buf, len, header) =>\n//DeflateState *s;\n//charf *buf; /* the input data */\n//unsigned len; /* its length */\n//int header; /* true if block header must be written */\n{\n bi_windup(s); /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n }\n// while (len--) {\n// put_byte(s, *buf++);\n// }\n s.pending_buf.set(s.window.subarray(buf, buf + len), s.pending);\n s.pending += len;\n};\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nconst smaller = (tree, n, m, depth) => {\n\n const _n2 = n * 2;\n const _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n};\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nconst pqdownheap = (s, tree, k) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n{\n const v = s.heap[k];\n let j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n};\n\n\n// inlined manually\n// const SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nconst compress_block = (s, ltree, dtree) =>\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n{\n let dist; /* distance of matched string */\n let lc; /* match length or unmatched char (if dist == 0) */\n let lx = 0; /* running index in l_buf */\n let code; /* the code to send */\n let extra; /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS$1 + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n\n } while (lx < s.last_lit);\n }\n\n send_code(s, END_BLOCK, ltree);\n};\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nconst build_tree = (s, desc) =>\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n const tree = desc.dyn_tree;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const elems = desc.stat_desc.elems;\n let n, m; /* iterate over heap elements */\n let max_code = -1; /* largest code with non zero frequency */\n let node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE$1;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n};\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nconst scan_tree = (s, tree, max_code) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nconst send_tree = (s, tree, max_code) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nconst build_bl_tree = (s) => {\n\n let max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES$1 - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n};\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nconst send_all_trees = (s, lcodes, dcodes, blcodes) =>\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n let rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n};\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nconst detect_data_type = (s) => {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n let black_mask = 0xf3ffc07f;\n let n;\n\n /* Check for non-textual (\"black-listed\") bytes. */\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"white-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS$1; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n};\n\n\nlet static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nconst _tr_init$1 = (s) =>\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n};\n\n\n/* ===========================================================================\n * Send a stored block\n */\nconst _tr_stored_block$1 = (s, buf, stored_len, last) =>\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n copy_block(s, buf, stored_len, true); /* with header */\n};\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nconst _tr_align$1 = (s) => {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n};\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nconst _tr_flush_block$1 = (s, buf, stored_len, last) =>\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n let opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n let max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN$1) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block$1(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED$1 || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n};\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nconst _tr_tally$1 = (s, dist, lc) =>\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n //let out_length, in_length, dcode;\n\n s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS$1 + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n\n//#ifdef TRUNCATE_BLOCK\n// /* Try to guess if it is profitable to stop the current block here */\n// if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n// /* Compute an upper bound for the compressed length */\n// out_length = s.last_lit*8;\n// in_length = s.strstart - s.block_start;\n//\n// for (dcode = 0; dcode < D_CODES; dcode++) {\n// out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n// }\n// out_length >>>= 3;\n// //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n// // s->last_lit, in_length, out_length,\n// // 100L - out_length*100L/in_length));\n// if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n// return true;\n// }\n// }\n//#endif\n\n return (s.last_lit === s.lit_bufsize - 1);\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n};\n\nvar _tr_init_1 = _tr_init$1;\nvar _tr_stored_block_1 = _tr_stored_block$1;\nvar _tr_flush_block_1 = _tr_flush_block$1;\nvar _tr_tally_1 = _tr_tally$1;\nvar _tr_align_1 = _tr_align$1;\n\nvar trees = {\n\t_tr_init: _tr_init_1,\n\t_tr_stored_block: _tr_stored_block_1,\n\t_tr_flush_block: _tr_flush_block_1,\n\t_tr_tally: _tr_tally_1,\n\t_tr_align: _tr_align_1\n};\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst adler32 = (adler, buf, len, pos) => {\n let s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n};\n\n\nvar adler32_1 = adler32;\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nconst makeTable = () => {\n let c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n};\n\n// Create table on load. Just 255 signed longs. Not a problem.\nconst crcTable = new Uint32Array(makeTable());\n\n\nconst crc32 = (crc, buf, len, pos) => {\n const t = crcTable;\n const end = pos + len;\n\n crc ^= -1;\n\n for (let i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n};\n\n\nvar crc32_1 = crc32;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar messages = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar constants$2 = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align } = trees;\n\n\n\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$2, Z_PARTIAL_FLUSH, Z_FULL_FLUSH: Z_FULL_FLUSH$1, Z_FINISH: Z_FINISH$3, Z_BLOCK: Z_BLOCK$1,\n Z_OK: Z_OK$3, Z_STREAM_END: Z_STREAM_END$3, Z_STREAM_ERROR: Z_STREAM_ERROR$2, Z_DATA_ERROR: Z_DATA_ERROR$2, Z_BUF_ERROR: Z_BUF_ERROR$1,\n Z_DEFAULT_COMPRESSION: Z_DEFAULT_COMPRESSION$1,\n Z_FILTERED, Z_HUFFMAN_ONLY, Z_RLE, Z_FIXED, Z_DEFAULT_STRATEGY: Z_DEFAULT_STRATEGY$1,\n Z_UNKNOWN,\n Z_DEFLATED: Z_DEFLATED$2\n} = constants$2;\n\n/*============================================================================*/\n\n\nconst MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nconst MAX_WBITS$1 = 15;\n/* 32K LZ77 window */\nconst DEF_MEM_LEVEL = 8;\n\n\nconst LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nconst LITERALS = 256;\n/* number of literal bytes 0..255 */\nconst L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nconst D_CODES = 30;\n/* number of distance codes */\nconst BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nconst HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\nconst MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst MIN_MATCH = 3;\nconst MAX_MATCH = 258;\nconst MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nconst PRESET_DICT = 0x20;\n\nconst INIT_STATE = 42;\nconst EXTRA_STATE = 69;\nconst NAME_STATE = 73;\nconst COMMENT_STATE = 91;\nconst HCRC_STATE = 103;\nconst BUSY_STATE = 113;\nconst FINISH_STATE = 666;\n\nconst BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nconst BS_BLOCK_DONE = 2; /* block flush performed */\nconst BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nconst BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nconst OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nconst err = (strm, errorCode) => {\n strm.msg = messages[errorCode];\n return errorCode;\n};\n\nconst rank = (f) => {\n return ((f) << 1) - ((f) > 4 ? 9 : 0);\n};\n\nconst zero = (buf) => {\n let len = buf.length; while (--len >= 0) { buf[len] = 0; }\n};\n\n\n/* eslint-disable new-cap */\nlet HASH_ZLIB = (s, prev, data) => ((prev << s.hash_shift) ^ data) & s.hash_mask;\n// This hash causes less collisions, https://github.com/nodeca/pako/issues/135\n// But breaks binary compatibility\n//let HASH_FAST = (s, prev, data) => ((prev << 8) + (prev >> 8) + (data << 4)) & s.hash_mask;\nlet HASH = HASH_ZLIB;\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\nconst flush_pending = (strm) => {\n const s = strm.state;\n\n //_tr_flush_bits(s);\n let len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n};\n\n\nconst flush_block_only = (s, last) => {\n _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n};\n\n\nconst put_byte = (s, b) => {\n s.pending_buf[s.pending++] = b;\n};\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nconst putShortMSB = (s, b) => {\n\n // put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n};\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nconst read_buf = (strm, buf, start, size) => {\n\n let len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32_1(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32_1(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n};\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nconst longest_match = (s, cur_match) => {\n\n let chain_length = s.max_chain_length; /* max hash chain length */\n let scan = s.strstart; /* current string */\n let match; /* matched string */\n let len; /* length of current match */\n let best_len = s.prev_length; /* best match length so far */\n let nice_match = s.nice_match; /* stop if match long enough */\n const limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n const _win = s.window; // shortcut\n\n const wmask = s.w_mask;\n const prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n const strend = s.strstart + MAX_MATCH;\n let scan_end1 = _win[scan + best_len - 1];\n let scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n};\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nconst fill_window = (s) => {\n\n const _w_size = s.w_size;\n let p, n, m, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n s.window.set(s.window.subarray(_w_size, _w_size + _w_size), 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n\n /* Slide the hash table (could be avoided with 32 bit values\n at the expense of memory usage). We slide even when level == 0\n to keep the hash table consistent if we switch back to level > 0\n later. (Using level 0 permanently is not an optimal usage of\n zlib, so we don't care about this pathological case.)\n */\n\n n = s.hash_size;\n p = n;\n\n do {\n m = s.head[--p];\n s.head[p] = (m >= _w_size ? m - _w_size : 0);\n } while (--n);\n\n n = _w_size;\n p = n;\n\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= _w_size ? m - _w_size : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + 1]);\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// const curr = s.strstart + s.lookahead;\n// let init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n};\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\nconst deflate_stored = (s, flush) => {\n\n /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n * to pending_buf_size, and each stored block has a 5 byte header:\n */\n let max_block_size = 0xffff;\n\n if (max_block_size > s.pending_buf_size - 5) {\n max_block_size = s.pending_buf_size - 5;\n }\n\n /* Copy as much as possible from input to output: */\n for (;;) {\n /* Fill the window as much as possible: */\n if (s.lookahead <= 1) {\n\n //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n // s->block_start >= (long)s->w_size, \"slide too late\");\n// if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n// s.block_start >= s.w_size)) {\n// throw new Error(\"slide too late\");\n// }\n\n fill_window(s);\n if (s.lookahead === 0 && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n }\n //Assert(s->block_start >= 0L, \"block gone\");\n// if (s.block_start < 0) throw new Error(\"block gone\");\n\n s.strstart += s.lookahead;\n s.lookahead = 0;\n\n /* Emit a stored block if pending_buf will be full: */\n const max_start = s.block_start + max_block_size;\n\n if (s.strstart === 0 || s.strstart >= max_start) {\n /* strstart == 0 is possible when wraparound on 16-bit machine */\n s.lookahead = s.strstart - max_start;\n s.strstart = max_start;\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n\n }\n /* Flush if we may have to slide, otherwise block_start may become\n * negative and the data will be gone:\n */\n if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n\n if (s.strstart > s.block_start) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_NEED_MORE;\n};\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nconst deflate_fast = (s, flush) => {\n\n let hash_head; /* head of the hash chain */\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + 1]);\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nconst deflate_slow = (s, flush) => {\n\n let hash_head; /* head of hash chain */\n let bflush; /* set if current block must be flushed */\n\n let max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n};\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nconst deflate_rle = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n let prev; /* byte at distance one to match */\n let scan, strend; /* scan goes up to strend for length of run */\n\n const _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nconst deflate_huff = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nconst configuration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nconst lm_init = (s) => {\n\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n};\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED$2; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new Uint16Array(HEAP_SIZE * 2);\n this.dyn_dtree = new Uint16Array((2 * D_CODES + 1) * 2);\n this.bl_tree = new Uint16Array((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new Uint16Array(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new Uint16Array(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new Uint16Array(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.l_buf = 0; /* buffer index for literals or lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.last_lit = 0; /* running index in l_buf */\n\n this.d_buf = 0;\n /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n * the same number of elements. To use different lengths, an extra flag\n * array would be necessary.\n */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\nconst deflateResetKeep = (strm) => {\n\n if (!strm || !strm.state) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n const s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status = (s.wrap ? INIT_STATE : BUSY_STATE);\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = Z_NO_FLUSH$2;\n _tr_init(s);\n return Z_OK$3;\n};\n\n\nconst deflateReset = (strm) => {\n\n const ret = deflateResetKeep(strm);\n if (ret === Z_OK$3) {\n lm_init(strm.state);\n }\n return ret;\n};\n\n\nconst deflateSetHeader = (strm, head) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$2; }\n if (strm.state.wrap !== 2) { return Z_STREAM_ERROR$2; }\n strm.state.gzhead = head;\n return Z_OK$3;\n};\n\n\nconst deflateInit2 = (strm, level, method, windowBits, memLevel, strategy) => {\n\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR$2;\n }\n let wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION$1) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED$2 ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n const s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new Uint8Array(s.w_size * 2);\n s.head = new Uint16Array(s.hash_size);\n s.prev = new Uint16Array(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n\n //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);\n //s->pending_buf = (uchf *) overlay;\n s.pending_buf = new Uint8Array(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);\n s.d_buf = 1 * s.lit_bufsize;\n\n //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;\n s.l_buf = (1 + 2) * s.lit_bufsize;\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n};\n\nconst deflateInit = (strm, level) => {\n\n return deflateInit2(strm, level, Z_DEFLATED$2, MAX_WBITS$1, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY$1);\n};\n\n\nconst deflate$2 = (strm, flush) => {\n\n let beg, val; // for gzip header write only\n\n if (!strm || !strm.state ||\n flush > Z_BLOCK$1 || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR$2) : Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n\n if (!strm.output ||\n (!strm.input && strm.avail_in !== 0) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH$3)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR$1 : Z_STREAM_ERROR$2);\n }\n\n s.strm = strm; /* just in case */\n const old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Write the header */\n if (s.status === INIT_STATE) {\n\n if (s.wrap === 2) { // GZIP header\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n else // DEFLATE header\n {\n let header = (Z_DEFLATED$2 + ((s.w_bits - 8) << 4)) << 8;\n let level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n s.status = BUSY_STATE;\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n }\n }\n\n//#ifdef GZIP\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n\n while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n break;\n }\n }\n put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n s.gzindex++;\n }\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (s.gzindex === s.gzhead.extra.length) {\n s.gzindex = 0;\n s.status = NAME_STATE;\n }\n }\n else {\n s.status = NAME_STATE;\n }\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.gzindex = 0;\n s.status = COMMENT_STATE;\n }\n }\n else {\n s.status = COMMENT_STATE;\n }\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.status = HCRC_STATE;\n }\n }\n else {\n s.status = HCRC_STATE;\n }\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n }\n if (s.pending + 2 <= s.pending_buf_size) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n }\n }\n else {\n s.status = BUSY_STATE;\n }\n }\n//#endif\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK$3;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH$3) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH$2 && s.status !== FINISH_STATE)) {\n let bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :\n (s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush));\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK$3;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n _tr_align(s);\n }\n else if (flush !== Z_BLOCK$1) { /* FULL_FLUSH or SYNC_FLUSH */\n\n _tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH$1) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK$3;\n }\n }\n }\n //Assert(strm->avail_out > 0, \"bug2\");\n //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n if (flush !== Z_FINISH$3) { return Z_OK$3; }\n if (s.wrap <= 0) { return Z_STREAM_END$3; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK$3 : Z_STREAM_END$3;\n};\n\n\nconst deflateEnd = (strm) => {\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR$2;\n }\n\n const status = strm.state.status;\n if (status !== INIT_STATE &&\n status !== EXTRA_STATE &&\n status !== NAME_STATE &&\n status !== COMMENT_STATE &&\n status !== HCRC_STATE &&\n status !== BUSY_STATE &&\n status !== FINISH_STATE\n ) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR$2) : Z_OK$3;\n};\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nconst deflateSetDictionary = (strm, dictionary) => {\n\n let dictLength = dictionary.length;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n const wrap = s.wrap;\n\n if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n return Z_STREAM_ERROR$2;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32_1(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) { /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n let tmpDict = new Uint8Array(s.w_size);\n tmpDict.set(dictionary.subarray(dictLength - s.w_size, dictLength), 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n const avail = strm.avail_in;\n const next = strm.next_in;\n const input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH) {\n let str = s.strstart;\n let n = s.lookahead - (MIN_MATCH - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK$3;\n};\n\n\nvar deflateInit_1 = deflateInit;\nvar deflateInit2_1 = deflateInit2;\nvar deflateReset_1 = deflateReset;\nvar deflateResetKeep_1 = deflateResetKeep;\nvar deflateSetHeader_1 = deflateSetHeader;\nvar deflate_2$1 = deflate$2;\nvar deflateEnd_1 = deflateEnd;\nvar deflateSetDictionary_1 = deflateSetDictionary;\nvar deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.deflateBound = deflateBound;\nmodule.exports.deflateCopy = deflateCopy;\nmodule.exports.deflateParams = deflateParams;\nmodule.exports.deflatePending = deflatePending;\nmodule.exports.deflatePrime = deflatePrime;\nmodule.exports.deflateTune = deflateTune;\n*/\n\nvar deflate_1$2 = {\n\tdeflateInit: deflateInit_1,\n\tdeflateInit2: deflateInit2_1,\n\tdeflateReset: deflateReset_1,\n\tdeflateResetKeep: deflateResetKeep_1,\n\tdeflateSetHeader: deflateSetHeader_1,\n\tdeflate: deflate_2$1,\n\tdeflateEnd: deflateEnd_1,\n\tdeflateSetDictionary: deflateSetDictionary_1,\n\tdeflateInfo: deflateInfo\n};\n\nconst _has = (obj, key) => {\n return Object.prototype.hasOwnProperty.call(obj, key);\n};\n\nvar assign = function (obj /*from1, from2, from3, ...*/) {\n const sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n const source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (const p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// Join array of chunks to single array.\nvar flattenChunks = (chunks) => {\n // calculate data length\n let len = 0;\n\n for (let i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n const result = new Uint8Array(len);\n\n for (let i = 0, pos = 0, l = chunks.length; i < l; i++) {\n let chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n};\n\nvar common = {\n\tassign: assign,\n\tflattenChunks: flattenChunks\n};\n\n// String encode/decode helpers\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\nlet STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nconst _utf8len = new Uint8Array(256);\nfor (let q = 0; q < 256; q++) {\n _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n}\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nvar string2buf = (str) => {\n if (typeof TextEncoder === 'function' && TextEncoder.prototype.encode) {\n return new TextEncoder().encode(str);\n }\n\n let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new Uint8Array(buf_len);\n\n // convert\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper\nconst buf2binstring = (buf, len) => {\n // On Chrome, the arguments in a function call that are allowed is `65534`.\n // If the length of the buffer is smaller than that, we can use this optimization,\n // otherwise we will take a slower path.\n if (len < 65534) {\n if (buf.subarray && STR_APPLY_UIA_OK) {\n return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len));\n }\n }\n\n let result = '';\n for (let i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n};\n\n\n// convert array to string\nvar buf2string = (buf, max) => {\n const len = max || buf.length;\n\n if (typeof TextDecoder === 'function' && TextDecoder.prototype.decode) {\n return new TextDecoder().decode(buf.subarray(0, max));\n }\n\n let i, out;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n const utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n let c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n let c_len = _utf8len[c];\n // skip 5 & 6 byte codes\n if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nvar utf8border = (buf, max) => {\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n let pos = max - 1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means buffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\nvar strings = {\n\tstring2buf: string2buf,\n\tbuf2string: buf2string,\n\tutf8border: utf8border\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nvar zstream = ZStream;\n\nconst toString$1 = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$1, Z_SYNC_FLUSH, Z_FULL_FLUSH, Z_FINISH: Z_FINISH$2,\n Z_OK: Z_OK$2, Z_STREAM_END: Z_STREAM_END$2,\n Z_DEFAULT_COMPRESSION,\n Z_DEFAULT_STRATEGY,\n Z_DEFLATED: Z_DEFLATED$1\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overridden.\n **/\n\n/**\n * Deflate.result -> Uint8Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * , chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nfunction Deflate$1(options) {\n this.options = common.assign({\n level: Z_DEFAULT_COMPRESSION,\n method: Z_DEFLATED$1,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY\n }, options || {});\n\n let opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = deflate_1$2.deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n if (opt.header) {\n deflate_1$2.deflateSetHeader(this.strm, opt.header);\n }\n\n if (opt.dictionary) {\n let dict;\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n // If we need to compress text, change encoding to utf8.\n dict = strings.string2buf(opt.dictionary);\n } else if (toString$1.call(opt.dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(opt.dictionary);\n } else {\n dict = opt.dictionary;\n }\n\n status = deflate_1$2.deflateSetDictionary(this.strm, dict);\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n this._dict_set = true;\n }\n}\n\n/**\n * Deflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer|String): input data. Strings will be\n * converted to utf8 byte sequence.\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must\n * have `flush_mode` Z_FINISH (or `true`). That will flush internal pending\n * buffers and call [[Deflate#onEnd]].\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nDeflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n let status, _flush_mode;\n\n if (this.ended) { return false; }\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH$2 : Z_NO_FLUSH$1;\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = strings.string2buf(data);\n } else if (toString$1.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n // Make sure avail_out > 6 to avoid repeating markers\n if ((_flush_mode === Z_SYNC_FLUSH || _flush_mode === Z_FULL_FLUSH) && strm.avail_out <= 6) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n status = deflate_1$2.deflate(strm, _flush_mode);\n\n // Ended => flush and finish\n if (status === Z_STREAM_END$2) {\n if (strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n }\n status = deflate_1$2.deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK$2;\n }\n\n // Flush if out buffer full\n if (strm.avail_out === 0) {\n this.onData(strm.output);\n continue;\n }\n\n // Flush if requested and has data\n if (_flush_mode > 0 && strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array): output data.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK$2) {\n this.result = common.flattenChunks(this.chunks);\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate algorithm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n * - dictionary\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const data = new Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate$1(input, options) {\n const deflator = new Deflate$1(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg || messages[deflator.err]; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return deflate$1(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip$1(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate$1(input, options);\n}\n\n\nvar Deflate_1$1 = Deflate$1;\nvar deflate_2 = deflate$1;\nvar deflateRaw_1$1 = deflateRaw$1;\nvar gzip_1$1 = gzip$1;\nvar constants$1 = constants$2;\n\nvar deflate_1$1 = {\n\tDeflate: Deflate_1$1,\n\tdeflate: deflate_2,\n\tdeflateRaw: deflateRaw_1$1,\n\tgzip: gzip_1$1,\n\tconstants: constants$1\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nconst BAD$1 = 30; /* got a data error -- remain here until reset */\nconst TYPE$1 = 12; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nvar inffast = function inflate_fast(strm, start) {\n let _in; /* local strm.input */\n let last; /* have enough input while in < last */\n let _out; /* local strm.output */\n let beg; /* inflate()'s initial strm.output */\n let end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n let dmax; /* maximum distance from zlib header */\n//#endif\n let wsize; /* window size or zero if not using window */\n let whave; /* valid bytes in the window */\n let wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n let s_window; /* allocated sliding window, if wsize != 0 */\n let hold; /* local strm.hold */\n let bits; /* local strm.bits */\n let lcode; /* local strm.lencode */\n let dcode; /* local strm.distcode */\n let lmask; /* mask for first level of length codes */\n let dmask; /* mask for first level of distance codes */\n let here; /* retrieved table entry */\n let op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n let len; /* match length, unused bytes */\n let dist; /* match distance */\n let from; /* where to copy match from */\n let from_source;\n\n\n let input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n const state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE$1;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst MAXBITS = 15;\nconst ENOUGH_LENS$1 = 852;\nconst ENOUGH_DISTS$1 = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst CODES$1 = 0;\nconst LENS$1 = 1;\nconst DISTS$1 = 2;\n\nconst lbase = new Uint16Array([ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n]);\n\nconst lext = new Uint8Array([ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n]);\n\nconst dbase = new Uint16Array([ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n]);\n\nconst dext = new Uint8Array([ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n]);\n\nconst inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) =>\n{\n const bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n let len = 0; /* a code's length in bits */\n let sym = 0; /* index of code symbols */\n let min = 0, max = 0; /* minimum and maximum code lengths */\n let root = 0; /* number of index bits for root table */\n let curr = 0; /* number of index bits for current table */\n let drop = 0; /* code bits to drop for sub-table */\n let left = 0; /* number of prefix codes available */\n let used = 0; /* code entries in table used */\n let huff = 0; /* Huffman code */\n let incr; /* for incrementing code, index */\n let fill; /* index for replicating entries */\n let low; /* low bits for current root entry */\n let mask; /* mask for low root bits */\n let next; /* next available space in table */\n let base = null; /* base value table to use */\n let base_index = 0;\n// let shoextra; /* extra bits table to use */\n let end; /* use base and extra for symbol > end */\n const count = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n const offs = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n let extra = null;\n let extra_index = 0;\n\n let here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES$1 || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES$1) {\n base = extra = work; /* dummy value--not used */\n end = 19;\n\n } else if (type === LENS$1) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n\n\nvar inftrees = inflate_table;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n\n\n\n\n\nconst CODES = 0;\nconst LENS = 1;\nconst DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_FINISH: Z_FINISH$1, Z_BLOCK, Z_TREES,\n Z_OK: Z_OK$1, Z_STREAM_END: Z_STREAM_END$1, Z_NEED_DICT: Z_NEED_DICT$1, Z_STREAM_ERROR: Z_STREAM_ERROR$1, Z_DATA_ERROR: Z_DATA_ERROR$1, Z_MEM_ERROR: Z_MEM_ERROR$1, Z_BUF_ERROR,\n Z_DEFLATED\n} = constants$2;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nconst HEAD = 1; /* i: waiting for magic header */\nconst FLAGS = 2; /* i: waiting for method and flags (gzip) */\nconst TIME = 3; /* i: waiting for modification time (gzip) */\nconst OS = 4; /* i: waiting for extra flags and operating system (gzip) */\nconst EXLEN = 5; /* i: waiting for extra length (gzip) */\nconst EXTRA = 6; /* i: waiting for extra bytes (gzip) */\nconst NAME = 7; /* i: waiting for end of file name (gzip) */\nconst COMMENT = 8; /* i: waiting for end of comment (gzip) */\nconst HCRC = 9; /* i: waiting for header crc (gzip) */\nconst DICTID = 10; /* i: waiting for dictionary check value */\nconst DICT = 11; /* waiting for inflateSetDictionary() call */\nconst TYPE = 12; /* i: waiting for type bits, including last-flag bit */\nconst TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */\nconst STORED = 14; /* i: waiting for stored size (length and complement) */\nconst COPY_ = 15; /* i/o: same as COPY below, but only first time in */\nconst COPY = 16; /* i/o: waiting for input or output to copy stored block */\nconst TABLE = 17; /* i: waiting for dynamic block table lengths */\nconst LENLENS = 18; /* i: waiting for code length code lengths */\nconst CODELENS = 19; /* i: waiting for length/lit and distance code lengths */\nconst LEN_ = 20; /* i: same as LEN below, but only first time in */\nconst LEN = 21; /* i: waiting for length/lit/eob code */\nconst LENEXT = 22; /* i: waiting for length extra bits */\nconst DIST = 23; /* i: waiting for distance code */\nconst DISTEXT = 24; /* i: waiting for distance extra bits */\nconst MATCH = 25; /* o: waiting for output space to copy string */\nconst LIT = 26; /* o: waiting for output space to write literal */\nconst CHECK = 27; /* i: waiting for 32-bit check value */\nconst LENGTH = 28; /* i: waiting for 32-bit length (gzip) */\nconst DONE = 29; /* finished check, done -- remain here until reset */\nconst BAD = 30; /* got a data error -- remain here until reset */\nconst MEM = 31; /* got an inflate() memory error -- remain here until reset */\nconst SYNC = 32; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nconst ENOUGH_LENS = 852;\nconst ENOUGH_DISTS = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst MAX_WBITS = 15;\n/* 32K LZ77 window */\nconst DEF_WBITS = MAX_WBITS;\n\n\nconst zswap32 = (q) => {\n\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n};\n\n\nfunction InflateState() {\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib) */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new Uint16Array(320); /* temporary storage for code lengths */\n this.work = new Uint16Array(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new Int32Array(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\n\nconst inflateResetKeep = (strm) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new Int32Array(ENOUGH_LENS);\n state.distcode = state.distdyn = new Int32Array(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK$1;\n};\n\n\nconst inflateReset = (strm) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n};\n\n\nconst inflateReset2 = (strm, windowBits) => {\n let wrap;\n\n /* get the state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 1;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR$1;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n};\n\n\nconst inflateInit2 = (strm, windowBits) => {\n\n if (!strm) { return Z_STREAM_ERROR$1; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n const state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.window = null/*Z_NULL*/;\n const ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK$1) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n};\n\n\nconst inflateInit = (strm) => {\n\n return inflateInit2(strm, DEF_WBITS);\n};\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nlet virgin = true;\n\nlet lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\n\nconst fixedtables = (state) => {\n\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n lenfix = new Int32Array(512);\n distfix = new Int32Array(32);\n\n /* literal/length table */\n let sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inftrees(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inftrees(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n};\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nconst updatewindow = (strm, src, end, copy) => {\n\n let dist;\n const state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new Uint8Array(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n state.window.set(src.subarray(end - state.wsize, end), 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n state.window.set(src.subarray(end - copy, end), 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n};\n\n\nconst inflate$2 = (strm, flush) => {\n\n let state;\n let input, output; // input/output buffers\n let next; /* next input INDEX */\n let put; /* next output INDEX */\n let have, left; /* available input and output */\n let hold; /* bit buffer */\n let bits; /* bits in bit buffer */\n let _in, _out; /* save starting available input and output */\n let copy; /* number of stored or match bytes to copy */\n let from; /* where to copy match bytes from */\n let from_source;\n let here = 0; /* current decoding table entry */\n let here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //let last; /* parent table entry */\n let last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n let len; /* length to copy for repeats, bits to drop */\n let ret; /* return code */\n const hbuf = new Uint8Array(4); /* buffer for gzip header crc calculation */\n let opts;\n\n let n; // temporary variable for NEED_BITS\n\n const order = /* permutation of code lengths */\n new Uint8Array([ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]);\n\n\n if (!strm || !strm.state || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR$1;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK$1;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n state.flags = 0; /* expect zlib header */\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n\n // !!! pako patch. Force use `options.windowBits` if passed.\n // Required to always use max window size by default.\n state.dmax = 1 << state.wbits;\n //state.dmax = 1 << len;\n\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32_1(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Uint8Array(state.head.extra_len);\n }\n state.head.extra.set(\n input.subarray(\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n next + copy\n ),\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT$1;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n output.set(input.subarray(next, next + copy), put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inftrees(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inftrees(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inftrees(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inffast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' instead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if (_out) {\n strm.adler = state.check =\n /*UPDATE(state.check, put - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, put - _out) : adler32_1(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END$1;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR$1;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR$1;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR$1;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH$1))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ;\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if (state.wrap && _out) {\n strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, strm.next_out - _out) : adler32_1(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH$1) && ret === Z_OK$1) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n};\n\n\nconst inflateEnd = (strm) => {\n\n if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {\n return Z_STREAM_ERROR$1;\n }\n\n let state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK$1;\n};\n\n\nconst inflateGetHeader = (strm, head) => {\n\n /* check state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR$1; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK$1;\n};\n\n\nconst inflateSetDictionary = (strm, dictionary) => {\n const dictLength = dictionary.length;\n\n let state;\n let dictid;\n let ret;\n\n /* check state */\n if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR$1; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR$1;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32_1(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR$1;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR$1;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK$1;\n};\n\n\nvar inflateReset_1 = inflateReset;\nvar inflateReset2_1 = inflateReset2;\nvar inflateResetKeep_1 = inflateResetKeep;\nvar inflateInit_1 = inflateInit;\nvar inflateInit2_1 = inflateInit2;\nvar inflate_2$1 = inflate$2;\nvar inflateEnd_1 = inflateEnd;\nvar inflateGetHeader_1 = inflateGetHeader;\nvar inflateSetDictionary_1 = inflateSetDictionary;\nvar inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.inflateCopy = inflateCopy;\nmodule.exports.inflateGetDictionary = inflateGetDictionary;\nmodule.exports.inflateMark = inflateMark;\nmodule.exports.inflatePrime = inflatePrime;\nmodule.exports.inflateSync = inflateSync;\nmodule.exports.inflateSyncPoint = inflateSyncPoint;\nmodule.exports.inflateUndermine = inflateUndermine;\n*/\n\nvar inflate_1$2 = {\n\tinflateReset: inflateReset_1,\n\tinflateReset2: inflateReset2_1,\n\tinflateResetKeep: inflateResetKeep_1,\n\tinflateInit: inflateInit_1,\n\tinflateInit2: inflateInit2_1,\n\tinflate: inflate_2$1,\n\tinflateEnd: inflateEnd_1,\n\tinflateGetHeader: inflateGetHeader_1,\n\tinflateSetDictionary: inflateSetDictionary_1,\n\tinflateInfo: inflateInfo\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\nvar gzheader = GZheader;\n\nconst toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH, Z_FINISH,\n Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overridden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * const chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nfunction Inflate$1(options) {\n this.options = common.assign({\n chunkSize: 1024 * 64,\n windowBits: 15,\n to: ''\n }, options || {});\n\n const opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = inflate_1$2.inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n\n this.header = new gzheader();\n\n inflate_1$2.inflateGetHeader(this.strm, this.header);\n\n // Setup dictionary\n if (opt.dictionary) {\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n opt.dictionary = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n opt.dictionary = new Uint8Array(opt.dictionary);\n }\n if (opt.raw) { //In raw mode we need to set the dictionary early\n status = inflate_1$2.inflateSetDictionary(this.strm, opt.dictionary);\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n }\n }\n}\n\n/**\n * Inflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer): input data\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE\n * flush modes. See constants. Skipped or `false` means Z_NO_FLUSH,\n * `true` means Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. If end of stream detected,\n * [[Inflate#onEnd]] will be called.\n *\n * `flush_mode` is not needed for normal operation, because end of stream\n * detected automatically. You may try to use it for advanced things, but\n * this functionality was not tested.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nInflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n const dictionary = this.options.dictionary;\n let status, _flush_mode, last_avail_out;\n\n if (this.ended) return false;\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;\n\n // Convert data if needed\n if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = inflate_1$2.inflate(strm, _flush_mode);\n\n if (status === Z_NEED_DICT && dictionary) {\n status = inflate_1$2.inflateSetDictionary(strm, dictionary);\n\n if (status === Z_OK) {\n status = inflate_1$2.inflate(strm, _flush_mode);\n } else if (status === Z_DATA_ERROR) {\n // Replace code with more verbose\n status = Z_NEED_DICT;\n }\n }\n\n // Skip snyc markers if more data follows and not raw mode\n while (strm.avail_in > 0 &&\n status === Z_STREAM_END &&\n strm.state.wrap > 0 &&\n data[strm.next_in] !== 0)\n {\n inflate_1$2.inflateReset(strm);\n status = inflate_1$2.inflate(strm, _flush_mode);\n }\n\n switch (status) {\n case Z_STREAM_ERROR:\n case Z_DATA_ERROR:\n case Z_NEED_DICT:\n case Z_MEM_ERROR:\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n // Remember real `avail_out` value, because we may patch out buffer content\n // to align utf8 strings boundaries.\n last_avail_out = strm.avail_out;\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === Z_STREAM_END) {\n\n if (this.options.to === 'string') {\n\n let next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n let tail = strm.next_out - next_out_utf8;\n let utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n // move tail & realign counters\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) strm.output.set(strm.output.subarray(next_out_utf8, next_out_utf8 + tail), 0);\n\n this.onData(utf8str);\n\n } else {\n this.onData(strm.output.length === strm.next_out ? strm.output : strm.output.subarray(0, strm.next_out));\n }\n }\n }\n\n // Must repeat iteration if out buffer is full\n if (status === Z_OK && last_avail_out === 0) continue;\n\n // Finalize if end of stream reached.\n if (status === Z_STREAM_END) {\n status = inflate_1$2.inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return true;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|String): output data. When string output requested,\n * each chunk will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = common.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako');\n * const input = pako.deflate(new Uint8Array([1,2,3,4,5,6,7,8,9]));\n * let output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err) {\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate$1(input, options) {\n const inflator = new Inflate$1(options);\n\n inflator.push(input);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) throw inflator.msg || messages[inflator.err];\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return inflate$1(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nvar Inflate_1$1 = Inflate$1;\nvar inflate_2 = inflate$1;\nvar inflateRaw_1$1 = inflateRaw$1;\nvar ungzip$1 = inflate$1;\nvar constants = constants$2;\n\nvar inflate_1$1 = {\n\tInflate: Inflate_1$1,\n\tinflate: inflate_2,\n\tinflateRaw: inflateRaw_1$1,\n\tungzip: ungzip$1,\n\tconstants: constants\n};\n\nconst { Deflate, deflate, deflateRaw, gzip } = deflate_1$1;\n\nconst { Inflate, inflate, inflateRaw, ungzip } = inflate_1$1;\n\n\n\nvar Deflate_1 = Deflate;\nvar deflate_1 = deflate;\nvar deflateRaw_1 = deflateRaw;\nvar gzip_1 = gzip;\nvar Inflate_1 = Inflate;\nvar inflate_1 = inflate;\nvar inflateRaw_1 = inflateRaw;\nvar ungzip_1 = ungzip;\nvar constants_1 = constants$2;\n\nvar pako = {\n\tDeflate: Deflate_1,\n\tdeflate: deflate_1,\n\tdeflateRaw: deflateRaw_1,\n\tgzip: gzip_1,\n\tInflate: Inflate_1,\n\tinflate: inflate_1,\n\tinflateRaw: inflateRaw_1,\n\tungzip: ungzip_1,\n\tconstants: constants_1\n};\n\nexport { Deflate_1 as Deflate, Inflate_1 as Inflate, constants_1 as constants, pako as default, deflate_1 as deflate, deflateRaw_1 as deflateRaw, gzip_1 as gzip, inflate_1 as inflate, inflateRaw_1 as inflateRaw, ungzip_1 as ungzip };\n","(function() {\n var base64map\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n crypt = {\n // Bit-wise rotation left\n rotl: function(n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n // Bit-wise rotation right\n rotr: function(n, b) {\n return (n << (32 - b)) | (n >>> b);\n },\n\n // Swap big-endian to little-endian and vice versa\n endian: function(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++)\n n[i] = crypt.endian(n[i]);\n return n;\n },\n\n // Generate an array of any length of random bytes\n randomBytes: function(n) {\n for (var bytes = []; n > 0; n--)\n bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - b % 32);\n return words;\n },\n\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a hex string\n bytesToHex: function(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n\n // Convert a hex string to a byte array\n hexToBytes: function(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n\n // Convert a byte array to a base-64 string\n bytesToBase64: function(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n for (var j = 0; j < 4; j++)\n if (i * 8 + j * 6 <= bytes.length * 8)\n base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n else\n base64.push('=');\n }\n return base64.join('');\n },\n\n // Convert a base-64 string to a byte array\n base64ToBytes: function(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n }\n return bytes;\n }\n };\n\n module.exports = crypt;\n})();\n","var charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n for (var bytes = [], i = 0; i < str.length; i++)\n bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++)\n str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\n\nmodule.exports = charenc;\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","(function(){\r\n var crypt = require('crypt'),\r\n utf8 = require('charenc').utf8,\r\n isBuffer = require('is-buffer'),\r\n bin = require('charenc').bin,\r\n\r\n // The core\r\n md5 = function (message, options) {\r\n // Convert to byte array\r\n if (message.constructor == String)\r\n if (options && options.encoding === 'binary')\r\n message = bin.stringToBytes(message);\r\n else\r\n message = utf8.stringToBytes(message);\r\n else if (isBuffer(message))\r\n message = Array.prototype.slice.call(message, 0);\r\n else if (!Array.isArray(message) && message.constructor !== Uint8Array)\r\n message = message.toString();\r\n // else, assume byte array already\r\n\r\n var m = crypt.bytesToWords(message),\r\n l = message.length * 8,\r\n a = 1732584193,\r\n b = -271733879,\r\n c = -1732584194,\r\n d = 271733878;\r\n\r\n // Swap endian\r\n for (var i = 0; i < m.length; i++) {\r\n m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |\r\n ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;\r\n }\r\n\r\n // Padding\r\n m[l >>> 5] |= 0x80 << (l % 32);\r\n m[(((l + 64) >>> 9) << 4) + 14] = l;\r\n\r\n // Method shortcuts\r\n var FF = md5._ff,\r\n GG = md5._gg,\r\n HH = md5._hh,\r\n II = md5._ii;\r\n\r\n for (var i = 0; i < m.length; i += 16) {\r\n\r\n var aa = a,\r\n bb = b,\r\n cc = c,\r\n dd = d;\r\n\r\n a = FF(a, b, c, d, m[i+ 0], 7, -680876936);\r\n d = FF(d, a, b, c, m[i+ 1], 12, -389564586);\r\n c = FF(c, d, a, b, m[i+ 2], 17, 606105819);\r\n b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);\r\n a = FF(a, b, c, d, m[i+ 4], 7, -176418897);\r\n d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);\r\n c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);\r\n b = FF(b, c, d, a, m[i+ 7], 22, -45705983);\r\n a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);\r\n d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);\r\n c = FF(c, d, a, b, m[i+10], 17, -42063);\r\n b = FF(b, c, d, a, m[i+11], 22, -1990404162);\r\n a = FF(a, b, c, d, m[i+12], 7, 1804603682);\r\n d = FF(d, a, b, c, m[i+13], 12, -40341101);\r\n c = FF(c, d, a, b, m[i+14], 17, -1502002290);\r\n b = FF(b, c, d, a, m[i+15], 22, 1236535329);\r\n\r\n a = GG(a, b, c, d, m[i+ 1], 5, -165796510);\r\n d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);\r\n c = GG(c, d, a, b, m[i+11], 14, 643717713);\r\n b = GG(b, c, d, a, m[i+ 0], 20, -373897302);\r\n a = GG(a, b, c, d, m[i+ 5], 5, -701558691);\r\n d = GG(d, a, b, c, m[i+10], 9, 38016083);\r\n c = GG(c, d, a, b, m[i+15], 14, -660478335);\r\n b = GG(b, c, d, a, m[i+ 4], 20, -405537848);\r\n a = GG(a, b, c, d, m[i+ 9], 5, 568446438);\r\n d = GG(d, a, b, c, m[i+14], 9, -1019803690);\r\n c = GG(c, d, a, b, m[i+ 3], 14, -187363961);\r\n b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);\r\n a = GG(a, b, c, d, m[i+13], 5, -1444681467);\r\n d = GG(d, a, b, c, m[i+ 2], 9, -51403784);\r\n c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);\r\n b = GG(b, c, d, a, m[i+12], 20, -1926607734);\r\n\r\n a = HH(a, b, c, d, m[i+ 5], 4, -378558);\r\n d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);\r\n c = HH(c, d, a, b, m[i+11], 16, 1839030562);\r\n b = HH(b, c, d, a, m[i+14], 23, -35309556);\r\n a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);\r\n d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);\r\n c = HH(c, d, a, b, m[i+ 7], 16, -155497632);\r\n b = HH(b, c, d, a, m[i+10], 23, -1094730640);\r\n a = HH(a, b, c, d, m[i+13], 4, 681279174);\r\n d = HH(d, a, b, c, m[i+ 0], 11, -358537222);\r\n c = HH(c, d, a, b, m[i+ 3], 16, -722521979);\r\n b = HH(b, c, d, a, m[i+ 6], 23, 76029189);\r\n a = HH(a, b, c, d, m[i+ 9], 4, -640364487);\r\n d = HH(d, a, b, c, m[i+12], 11, -421815835);\r\n c = HH(c, d, a, b, m[i+15], 16, 530742520);\r\n b = HH(b, c, d, a, m[i+ 2], 23, -995338651);\r\n\r\n a = II(a, b, c, d, m[i+ 0], 6, -198630844);\r\n d = II(d, a, b, c, m[i+ 7], 10, 1126891415);\r\n c = II(c, d, a, b, m[i+14], 15, -1416354905);\r\n b = II(b, c, d, a, m[i+ 5], 21, -57434055);\r\n a = II(a, b, c, d, m[i+12], 6, 1700485571);\r\n d = II(d, a, b, c, m[i+ 3], 10, -1894986606);\r\n c = II(c, d, a, b, m[i+10], 15, -1051523);\r\n b = II(b, c, d, a, m[i+ 1], 21, -2054922799);\r\n a = II(a, b, c, d, m[i+ 8], 6, 1873313359);\r\n d = II(d, a, b, c, m[i+15], 10, -30611744);\r\n c = II(c, d, a, b, m[i+ 6], 15, -1560198380);\r\n b = II(b, c, d, a, m[i+13], 21, 1309151649);\r\n a = II(a, b, c, d, m[i+ 4], 6, -145523070);\r\n d = II(d, a, b, c, m[i+11], 10, -1120210379);\r\n c = II(c, d, a, b, m[i+ 2], 15, 718787259);\r\n b = II(b, c, d, a, m[i+ 9], 21, -343485551);\r\n\r\n a = (a + aa) >>> 0;\r\n b = (b + bb) >>> 0;\r\n c = (c + cc) >>> 0;\r\n d = (d + dd) >>> 0;\r\n }\r\n\r\n return crypt.endian([a, b, c, d]);\r\n };\r\n\r\n // Auxiliary functions\r\n md5._ff = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & c | ~b & d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._gg = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & d | c & ~d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._hh = function (a, b, c, d, x, s, t) {\r\n var n = a + (b ^ c ^ d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._ii = function (a, b, c, d, x, s, t) {\r\n var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n\r\n // Package private blocksize\r\n md5._blocksize = 16;\r\n md5._digestsize = 16;\r\n\r\n module.exports = function (message, options) {\r\n if (message === undefined || message === null)\r\n throw new Error('Illegal argument ' + message);\r\n\r\n var digestbytes = crypt.wordsToBytes(md5(message, options));\r\n return options && options.asBytes ? digestbytes :\r\n options && options.asString ? bin.bytesToString(digestbytes) :\r\n crypt.bytesToHex(digestbytes);\r\n };\r\n\r\n})();\r\n","import t from\"pako\";import e from\"md5\";import{vec3 as s,mat4 as r,glMatrix as i}from\"gl-matrix\";var n,o;(o=n||(n={})).UP=\"up\",o.DOWN=\"down\",o.NORTH=\"north\",o.EAST=\"east\",o.SOUTH=\"south\",o.WEST=\"west\";const a={[n.UP]:[0,1,0],[n.DOWN]:[0,-1,0],[n.NORTH]:[0,0,-1],[n.EAST]:[1,0,0],[n.SOUTH]:[0,0,1],[n.WEST]:[-1,0,0]};var l,u;!function(t){t.ALL=[t.UP,t.DOWN,t.NORTH,t.EAST,t.SOUTH,t.WEST],t.normal=function(t){return a[t]}}(n||(n={})),(u=l||(l={})).create=function(t,e,s){return[t,e,s]},u.ZERO=u.create(0,0,0),u.offset=function(t,e,s,r){return[t[0]+e,t[1]+s,t[2]+r]},u.towards=function(t,e){return u.offset(t,...n.normal(e))},u.equals=function(t,e){return t===e||t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]},u.magnitude=function(t){return t[0]*t[0]+t[1]*t[1]+t[2]*t[2]};const h={end:0,byte:1,short:2,int:3,long:4,float:5,double:6,byteArray:7,string:8,list:9,compound:10,intArray:11,longArray:12},c=[\"end\",\"byte\",\"short\",\"int\",\"long\",\"float\",\"double\",\"byteArray\",\"string\",\"list\",\"compound\",\"intArray\",\"longArray\"];class f{constructor(t,e=!1){this.byte=this.readNum.bind(this,\"getInt8\",1),this.short=this.readNum.bind(this,\"getInt16\",2),this.int=this.readNum.bind(this,\"getInt32\",4),this.float=this.readNum.bind(this,\"getFloat32\",4),this.double=this.readNum.bind(this,\"getFloat64\",8),this.offset=0,this.littleEndian=e,this.arrayView=t,this.dataView=new DataView(t.buffer,t.byteOffset)}end(){return null}readNum(t,e){const s=this.dataView[t](this.offset,this.littleEndian);return this.offset+=e,s}long(){return[this.int(),this.int()]}byteArray(){const t=this.int(),e=[];for(let s=0;s<t;s++)e.push(this.byte());return e}intArray(){const t=this.int(),e=[];for(let s=0;s<t;s++)e.push(this.int());return e}longArray(){const t=this.int(),e=[];for(let s=0;s<t;s++)e.push(this.long());return e}string(){const t=this.short(),e=this.arrayView.slice(this.offset,this.offset+t);return this.offset+=t,function(t){var e,s=[];for(e=0;e<t.length;e++)0==(128&t[e])?s.push(127&t[e]):e+1<t.length&&192==(224&t[e])&&128==(192&t[e+1])?s.push((31&t[e])<<6|63&t[e+1]):e+2<t.length&&224==(240&t[e])&&128==(192&t[e+1])&&128==(192&t[e+2])?s.push((15&t[e])<<12|(63&t[e+1])<<6|63&t[e+2]):e+3<t.length&&240==(248&t[e])&&128==(192&t[e+1])&&128==(192&t[e+2])&&128==(192&t[e+3])&&s.push((7&t[e])<<18|(63&t[e+1])<<12|(63&t[e+2])<<6|63&t[e+3]);return String.fromCharCode.apply(null,s)}(e)}list(){const t=c[this.byte()],e=this.int(),s=[];for(let r=0;r<e;r++)s.push(this[t]());return{type:t,value:s}}compound(){const t={};for(;;){const e=c[this.byte()];if(\"end\"===e)break;const s=this.string(),r=this[e]();t[s]={type:e,value:r}}return t}}class m{constructor(t=!1){this.byte=this.writeNum.bind(this,\"setInt8\",1),this.short=this.writeNum.bind(this,\"setInt16\",2),this.int=this.writeNum.bind(this,\"setInt32\",4),this.float=this.writeNum.bind(this,\"setFloat32\",4),this.double=this.writeNum.bind(this,\"setFloat64\",8),this.offset=0,this.littleEndian=t,this.buffer=new ArrayBuffer(1024),this.arrayView=new Uint8Array(this.buffer),this.dataView=new DataView(this.buffer)}accommodate(t){const e=this.offset+t;if(this.buffer.byteLength>=e)return;let s=this.buffer.byteLength;for(;s<e;)s*=2;const r=new ArrayBuffer(s),i=new Uint8Array(r);i.set(this.arrayView),this.offset>this.buffer.byteLength&&i.fill(0,this.buffer.byteLength,this.offset),this.buffer=r,this.dataView=new DataView(r),this.arrayView=i}getData(){return this.accommodate(0),this.arrayView.slice(0,this.offset)}end(t){}writeNum(t,e,s){this.accommodate(e),this.dataView[t](this.offset,s,this.littleEndian),this.offset+=e}long(t){this.int(t[0]),this.int(t[1])}byteArray(t){this.int(t.length),this.accommodate(t.length),this.arrayView.set(t,this.offset),this.offset+=t.length}intArray(t){this.int(t.length);for(let e=0;e<t.length;e++)this.int(t[e])}longArray(t){this.int(t.length);for(let e=0;e<t.length;e++)this.long(t[e])}string(t){const e=function(t){var e,s,r=[];for(e=0;e<t.length;e++)(s=t.charCodeAt(e))<128?r.push(s):s<2048?(r.push(192|s>>6),r.push(128|63&s)):s<65536?(r.push(224|s>>12),r.push(128|s>>6&63),r.push(128|63&s)):(r.push(240|s>>18&7),r.push(128|s>>12&63),r.push(128|s>>6&63),r.push(128|63&s));return r}(t);this.short(e.length),this.accommodate(e.length),this.arrayView.set(e,this.offset),this.offset+=e.length}list(t){this.byte(h[t.type]),this.int(t.value.length),t.value;for(let e=0;e<t.value.length;e++)this[t.type](t.value[e])}compound(t){for(const e in t)this.byte(h[t[e].type]),this.string(e),this[t[e].type](t[e].value);this.byte(h.end)}}function d(t,e){const s=new f(t,e);if(s.byte()!==h.compound)throw new Error(\"Top tag should be a compound\");return{name:s.string(),value:s.compound()}}function p(e,s){return d(t.inflate(e),s)}function g(t,e){return 2===(s=new Uint8Array(t.slice(0,2))).length&&31===s[0]&&139===s[1]?{compressed:!0,result:p(t,e)}:{compressed:!1,result:d(t,e)};var s}function v(t){const e=[];for(let s=0;s<32;s+=1)for(let r=0;r<32;r+=1){const i=4*((31&s)+32*(31&r));if(0===t[i+3])continue;const n=(t[i]<<16)+(t[i+1]<<8)+t[i+2],o=(t[i+4096]<<24)+(t[i+4097]<<16)+(t[i+4098]<<8)+t[i+4099],a=4096*n,l=(t[a]<<24)+(t[a+1]<<16)+(t[a+2]<<8)+t[a+3],u=t[a+4],h=t.slice(a+5,a+4+l);e.push({x:s,z:r,timestamp:o,compression:u,data:h})}return e}function w(t,e,s){const r=y(t,e,s);switch(r.compression){case 1:case 2:r.nbt=p(r.data);break;case 3:r.nbt=d(r.data);break;default:throw new Error(`Invalid compression mode ${r.compression}`)}return r}function b(t,e){const s=new m(e);return s.byte(h.compound),s.string(t.name),s.compound(t.value),s.getData()}function x(e,s,r){const i=b(e,s);return t[r?\"deflate\":\"gzip\"](i)}function S(t,e,s){return e?x(t,s):b(t,s)}function _(t){let e=0;for(const s of t)e+=Math.ceil(s.data.length/4096);const s=new Uint8Array(8192+4096*e),r=new DataView(s.buffer);let i=2;for(const e of t){const t=4*((31&e.x)+32*(31&e.z)),n=Math.ceil(e.data.length/4096);r.setInt8(t,i>>16),r.setInt16(t+1,65535&i),r.setInt8(t+3,n),r.setInt32(t+4096,e.timestamp);const o=4096*i;r.setInt32(o,e.data.length+1),r.setInt8(o+4,e.compression),s.set(e.data,o+5),i+=n}return s}function A(t,e,s,r){const i=y(t,e,s);switch(i.compression){case 1:i.data=x(r);break;case 2:i.data=x(r,!1,!0);break;case 3:i.data=b(r);break;default:throw new Error(`Invalid compression mode ${i.compression}`)}return i}function y(t,e,s){const r=t.find((t=>t.x===e&&t.z===s));if(void 0===r)throw new Error(`Cannot find chunk [${e}, ${s}]`);return r}function E(t,e,s){if(!t[e])throw new Error(`Missing ${e} tag`);if(t[e].type!==s)throw new Error(`Expected ${e} to be of type ${s}, but found ${t[e].type}`);return t[e].value}function I(t,e,s,r){const i=E(t,e,\"list\");if(i.type!==s)throw new Error(`Expected ${e} to be a list of ${s}s, but found ${i.type}s`);if(r&&i.value.length!==r)throw new Error(`Expected ${e} to be a list of length ${r}, but found length ${i.value.length}`);return i.value}function N(t,e){try{return t()}catch(t){return e}}var B;function R(t){let e=null;return()=>(null==e&&(e=t()),e)}function T(t,e,s){const r=t.get(e);if(r)return r;const i=s(e);return t.set(e,i),i}!function(t){function e(t){return\"object\"==typeof t&&null!==t?t:void 0}t.readNumber=function(t){return\"number\"==typeof t?t:void 0},t.readInt=function(t){return\"number\"==typeof t?Math.floor(t):void 0},t.readString=function(t){return\"string\"==typeof t?t:void 0},t.readBoolean=function(t){return\"boolean\"==typeof t?t:void 0},t.readObject=e,t.readArray=function(t,e){if(Array.isArray(t))return t.map((t=>e(t)))},t.readMap=function(t,s){var r;const i=null!=(r=e(t))?r:{};return Object.fromEntries(Object.entries(i).map((([t,e])=>[t,s(e)])))},t.compose=function(t,e,s){const r=e(t);return r?s(r):void 0},t.readEnum=function(t,e){return\"string\"!=typeof t?e[0]:e.includes(t)?t:e[0]}}(B||(B={}));const M=class{constructor(t,e){if(this.namespace=t,this.path=e,!t.match(/^[a-z0-9._-]+$/))throw new Error(`Non [a-z0-9._-] character in namespace of ${t}:${e}`);if(!e.match(/^[a-z0-9/._-]+$/))throw new Error(`Non [a-z0-9/._-] character in path of ${t}:${e}`)}equals(t){return this===t||this.namespace===t.namespace&&this.path===t.path}toString(){return`${this.namespace}:${this.path}`}static create(t){return new M(this.DEFAULT_NAMESPACE,t)}static parse(t){const e=t.indexOf(this.SEPARATOR);if(e>=0){const s=e>=1?t.substring(0,e):this.DEFAULT_NAMESPACE,r=t.substring(e+1);return new M(s,r)}return new M(this.DEFAULT_NAMESPACE,t)}};let C=M;C.DEFAULT_NAMESPACE=\"minecraft\",C.SEPARATOR=\":\";var O=Object.defineProperty,k=Object.defineProperties,P=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertySymbols,F=Object.prototype.hasOwnProperty,V=Object.prototype.propertyIsEnumerable,D=(t,e,s)=>e in t?O(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;const U=class{constructor(t,e={}){this.properties=e,this.name=\"string\"==typeof t?C.parse(t):t}getName(){return this.name}getProperties(){return this.properties}getProperty(t){return this.properties[t]}isFluid(){return this.is(U.WATER)||this.is(U.LAVA)}equals(t){return!!this.name.equals(t.name)&&Object.keys(this.properties).every((e=>t.properties[e]===this.properties[e]))}is(t){return this.name.equals(t.name)}toString(){return 0===Object.keys(this.properties).length?this.name.toString():`${this.name.toString()}[${Object.entries(this.properties).map((([t,e])=>t+\"=\"+e)).join(\",\")}]`}static fromNbt(t){const e=C.parse(E(t.value,\"Name\",\"string\")),s=N((()=>E(t.value,\"Properties\",\"compound\")),{}),r=Object.keys(s).reduce(((t,e)=>{return r=((t,e)=>{for(var s in e||(e={}))F.call(e,s)&&D(t,s,e[s]);if(L)for(var s of L(e))V.call(e,s)&&D(t,s,e[s]);return t})({},t),i={[e]:E(s,e,\"string\")},k(r,P(i));var r,i}),{});return new U(e,r)}static fromJson(t){var e,s;const r=null!=(e=B.readObject(t))?e:{},i=C.parse(null!=(s=B.readString(r.Name))?s:U.STONE.name.toString()),n=B.readMap(r.Properties,(t=>{var e;return null!=(e=B.readString(t))?e:\"\"}));return new U(i,n)}};let G=U;G.AIR=new U(C.create(\"air\")),G.STONE=new U(C.create(\"stone\")),G.WATER=new U(C.create(\"water\"),{level:\"0\"}),G.LAVA=new U(C.create(\"lava\"),{level:\"0\"});const z=class{constructor(t){this.minY=t,this.storage=Array(z.SIZE).fill(0),this.palette=[G.AIR]}get minBlockY(){return this.minY<<4}index(t,e,s){return(t<<8)+(e<<4)+s}getBlockState(t,e,s){var r;const i=this.storage[this.index(t,e,s)];return null!=(r=this.palette[i])?r:G.AIR}setBlockState(t,e,s,r){let i=this.palette.findIndex((t=>t.equals(r)));-1===i&&(i=this.palette.length,this.palette.push(r)),this.storage[this.index(t,e,s)]=i}};let Y=z;Y.WIDTH=16,Y.SIZE=z.WIDTH*z.WIDTH*z.WIDTH;class H{constructor(t,e,s){this.minY=t,this.height=e,this.pos=s,this.sections=Array(this.sectionsCount).fill(null)}get maxY(){return this.minY+this.height}get minSection(){return this.minY>>4}get maxSection(){return 1+(this.maxY-1>>4)}get sectionsCount(){return this.maxSection-this.minSection}getSectionIndex(t){return(t>>4)-this.minSection}getBlockState(t){var e;const[s,r,i]=t,n=this.sections[this.getSectionIndex(r)];return null!=(e=null==n?void 0:n.getBlockState(15&s,15&r,15&i))?e:G.AIR}setBlockState(t,e){const[s,r,i]=t,n=this.getSectionIndex(r);let o=this.sections[n];if(null===o){if(e.equals(G.AIR))return;o=this.getOrCreateSection(n)}o.setBlockState(15&s,15&r,15&i,e)}getOrCreateSection(t){return null==this.sections[t]&&(this.sections[t]=new Y(this.minSection+t)),this.sections[t]}}var X,j;!function(t){function e(t,e){return BigInt(4294967295&t)|BigInt(4294967295&e)<<BigInt(32)}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.toLong=function(t){return e(t[0],t[1])},t.asLong=e,t.minBlockX=function(t){return t[0]<<4},t.minBlockZ=function(t){return t[1]<<4},t.maxBlockX=function(t){return 15+(t[0]<<4)},t.maxBlockZ=function(t){return 15+(t[1]<<4)}}(X||(X={})),function(t){function e(t){return{value:()=>t,key:()=>{}}}function s(t,e){return{value:()=>t.getOrThrow(e),key:()=>e}}t.parser=function(t,r){return i=>\"string\"==typeof i?s(t,C.parse(i)):e(r(i))},t.direct=e,t.reference=s}(j||(j={}));const Z=class{constructor(t,e){this.key=t,this.parser=e,this.storage=new Map,this.builtin=new Map}register(t,e,s){return this.storage.set(t.toString(),e),s&&this.builtin.set(t.toString(),e),j.reference(this,t)}keys(){return[...this.storage.keys()].map((t=>C.parse(t)))}get(t){return this.storage.get(t.toString())}getOrThrow(t){const e=this.storage.get(t.toString());if(void 0===e)throw new Error(`Missing key in ${this.key.toString()}: ${t.toString()}`);return e}parse(t){if(!this.parser)throw new Error(`No parser exists for ${this.key.toString()}`);return this.parser(t)}clear(){this.storage.clear();for(const[t,e]of this.builtin.entries())this.storage.set(t,e);return this}assign(t){if(!this.key.equals(t.key))throw new Error(`Cannot assign registry of type ${t.key.toString()} to registry of type ${this.key.toString()}`);for(const e of t.keys())this.storage.set(e.toString(),t.getOrThrow(e));return this}cloneEmpty(){return new Z(this.key,this.parser)}};let q=Z;q.REGISTRY=new Z(C.create(\"root\"));class J{constructor(t,e=[],s=[]){this.size=t,this.palette=e,this.blocks=s,this.blocksMap=[],s.forEach((e=>{if(!this.isInside(e.pos))throw new Error(`Found block at ${e.pos} which is outside the structure bounds ${this.size}`);this.blocksMap[e.pos[0]*t[1]*t[2]+e.pos[1]*t[2]+e.pos[2]]=e}))}getSize(){return this.size}addBlock(t,e,s,r){if(!this.isInside(t))throw new Error(`Cannot add block at ${t} outside the structure bounds ${this.size}`);const i=new G(e,s);let n=this.palette.findIndex((t=>t.equals(i)));return-1===n&&(n=this.palette.length,this.palette.push(i)),this.blocks.push({pos:t,state:n,nbt:r}),this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]]={pos:t,state:n,nbt:r},this}getBlocks(){return this.blocks.map((t=>({pos:t.pos,state:this.palette[t.state],nbt:t.nbt})))}getBlock(t){if(!this.isInside(t))return null;const e=this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]];if(!e)return null;return{pos:e.pos,state:this.palette[e.state],nbt:e.nbt}}isInside(t){return t[0]>=0&&t[0]<this.size[0]&&t[1]>=0&&t[1]<this.size[1]&&t[2]>=0&&t[2]<this.size[2]}static fromNbt(t){const e=I(t.value,\"size\",\"int\",3),s=I(t.value,\"palette\",\"compound\").map((t=>G.fromNbt({name:\"\",value:t}))),r=I(t.value,\"blocks\",\"compound\").map((t=>({pos:I(t,\"pos\",\"int\",3),state:E(t,\"state\",\"int\"),nbt:N((()=>E(t,\"nbt\",\"compound\")),void 0)})));return new J(e,s,r)}}function W(t){return t*t}function $(t,e,s){return Math.max(e,Math.min(s,t))}function K(t,e,s){return e+t*(s-e)}function Q(t,e,s,r,i,n){return K(e,K(t,s,r),K(t,i,n))}function tt(t,e,s,r,i,n,o,a,l,u,h){return K(s,Q(t,e,r,i,n,o),Q(t,e,a,l,u,h))}function et(t,e,s){return 0===t?e():1===t?s():e()+t*(s()-e())}function st(t,e,s,r,i,n){return et(e,(()=>et(t,s,r)),(()=>et(t,i,n)))}function rt(t,e,s,r,i,n,o,a,l,u,h){return et(s,(()=>st(t,e,r,i,n,o)),(()=>st(t,e,a,l,u,h)))}function it(t,e,s){return s<0?t:s>1?e:K(s,t,e)}function nt(t,e,s){return(t-e)/(s-e)}function ot(t){return t*t*t*(t*(6*t-15)+10)}function at(t,e,s,r,i){return K(nt(t,e,s),r,i)}function lt(t,e,s,r,i){return it(r,i,nt(t,e,s))}function ut(t,e,s){let r=e-t;for(;r>0;){const e=Math.floor(r/2),i=t+e;s(i)?r=e:(t=i+1,r-=e+1)}return t}function ht(t,e,s){let r=BigInt(3129871*t)^BigInt(s)*BigInt(116129781)^BigInt(e);return r=r*r*BigInt(42317861)+r*BigInt(11),r>>BigInt(16)}function ct(t,e,s,r,i,n,o,a){return BigInt(t)<<BigInt(56)|BigInt(e)<<BigInt(48)|BigInt(s)<<BigInt(40)|BigInt(r)<<BigInt(32)|BigInt(i)<<BigInt(24)|BigInt(n)<<BigInt(16)|BigInt(o)<<BigInt(8)|BigInt(a)}var ft;!function(t){t.fromJson=function t(r,i){var n,o,a,l;if(\"number\"==typeof r)return new e(r);const u=null!=(n=B.readObject(r))?n:{},h=new s(i(u.coordinate)),c=null!=(o=B.readArray(u.points,(t=>{var e;return null!=(e=B.readObject(t))?e:{}})))?o:[];if(0===c.length)return new e(0);for(const e of c){const s=null!=(a=B.readNumber(e.location))?a:0,r=t(e.value,i),n=null!=(l=B.readNumber(e.derivative))?l:0;h.addPoint(s,r,n)}return h};class e{constructor(t){this.value=t}compute(){return this.value}min(){return this.value}max(){return this.value}mapAll(){return this}}t.Constant=e;class s{constructor(t,e=[],s=[],r=[]){this.coordinate=t,this.locations=e,this.values=s,this.derivatives=r}compute(t){const e=this.coordinate.compute(t),s=ut(0,this.locations.length,(t=>e<this.locations[t]))-1,r=this.locations.length-1;if(s<0)return this.values[0].compute(t)+this.derivatives[0]*(e-this.locations[0]);if(s===r)return this.values[r].compute(t)+this.derivatives[r]*(e-this.locations[r]);const i=this.locations[s],n=this.locations[s+1],o=this.derivatives[s],a=this.derivatives[s+1],l=(e-i)/(n-i),u=this.values[s].compute(t),h=this.values[s+1].compute(t),c=o*(n-i)-(h-u),f=-a*(n-i)+(h-u);return K(l,u,h)+l*(1-l)*K(l,c,f)}min(){return Math.min(...this.values.map((t=>t.min())))}max(){return Math.max(...this.values.map((t=>t.max())))}mapAll(t){return new s(t(this.coordinate),this.locations,this.values.map((e=>e.mapAll(t))),this.derivatives)}addPoint(e,s,r=0){return this.locations.push(e),this.values.push(\"number\"==typeof s?new t.Constant(s):s),this.derivatives.push(r),this}}t.MultiPoint=s}(ft||(ft={}));const mt=class{constructor(t){this.seed=BigInt(0),this.setSeed(t)}fork(){return new mt(this.nextLong())}forkPositional(){return new pt(this.nextLong())}setSeed(t){this.seed=t^mt.MULTIPLIER&mt.MODULUS_MASK}advance(){this.seed=this.seed*mt.MULTIPLIER+mt.INCREMENT&mt.MODULUS_MASK}consume(t){for(let e=0;e<t;e+=1)this.advance()}next(t){this.advance();const e=Number(this.seed>>BigInt(mt.MODULUS_BITS-t));return e>2147483647?e-4294967296:e}nextInt(t){if(void 0===t)return this.next(32);if(0==(t&t-1))return Number(BigInt(t)*BigInt(this.next(31))>>BigInt(31));let e,s;for(;(e=this.next(31))-(s=e%t)+(t-1)<0;);return s}nextLong(){return(BigInt(this.next(32))<<BigInt(32))+BigInt(this.next(32))}nextFloat(){return this.next(24)*mt.FLOAT_MULTIPLIER}nextDouble(){const t=this.next(30);return this.advance(),t*mt.DOUBLE_MULTIPLIER}};let dt=mt;dt.MODULUS_BITS=48,dt.MODULUS_MASK=BigInt(\"281474976710655\"),dt.MULTIPLIER=BigInt(\"25214903917\"),dt.INCREMENT=BigInt(\"11\"),dt.FLOAT_MULTIPLIER=1/Math.pow(2,24),dt.DOUBLE_MULTIPLIER=1/Math.pow(2,30);class pt{constructor(t){this.seed=t}at(t,e,s){const r=ht(t,e,s);return new dt(r^this.seed)}fromHashOf(t){const s=e(t,{asBytes:!0}),r=ct(s[0],s[1],s[2],s[3],s[4],s[5],s[6],s[7]);return new dt(r^this.seed)}seedKey(){return[this.seed,BigInt(0)]}}const gt=class{constructor(t){this.seed=[BigInt(0),BigInt(0)],this.seed=t}static create(t){return new gt(gt.upgradeSeedTo128bit(t))}static mixStafford13(t){return((t=((t=(t^t>>gt.BIGINT_30)*gt.STAFFORD_1>.MAX_ULONG)^t>>gt.BIGINT_27)*gt.STAFFORD_2>.MAX_ULONG)^t>>gt.BIGINT_31)>.MAX_ULONG}static upgradeSeedTo128bit(t){t<0&&(t+=gt.POW2_60);const e=t^gt.SILVER_RATIO_64,s=e+gt.GOLDEN_RATIO_64>.MAX_ULONG;return[gt.mixStafford13(e),gt.mixStafford13(s)]}static rotateLeft(t,e){return t<<e>.MAX_ULONG|t>>gt.BIGINT_64-e}setSeed(t){this.seed=gt.upgradeSeedTo128bit(t)}fork(){return new gt([this.next(),this.next()])}forkPositional(){return new wt(this.next(),this.next())}next(){const t=this.seed[0];let e=this.seed[1];const s=gt.rotateLeft(t+e>.MAX_ULONG,gt.BIGINT_17)+t>.MAX_ULONG;return e^=t,this.seed=[gt.rotateLeft(t,gt.BIGINT_49)^e^e<<gt.BIGINT_21>.MAX_ULONG,gt.rotateLeft(e,gt.BIGINT_28)],s}nextLong(){let t=this.next();return t>gt.POW2_63&&(t-=gt.POW2_60),t}consume(t){let e=this.seed[0],s=this.seed[1];for(let r=0;r<t;r+=1)s^=e,e=gt.rotateLeft(e,gt.BIGINT_49)^s^s<<gt.BIGINT_21,s=gt.rotateLeft(s,gt.BIGINT_28);this.seed=[e,s]}nextBits(t){return this.next()>>BigInt(64-t)}nextInt(t){let e=this.next()>.MAX_UINT;if(t){const s=BigInt(t);let r=e*s,i=r>.MAX_UINT;if(i<s){const t=((~s>.MAX_UINT)+gt.BIGINT_1)%s;for(;i<t;)e=this.next()>.MAX_UINT,r=e*s,i=r>.MAX_UINT}const n=r>>gt.BIGINT_32;return Number(n)}{let t=Number(e);return t>=2147483648&&(t-=4294967296),t}}nextFloat(){return Number(this.nextBits(24))*gt.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*gt.DOUBLE_MULTIPLIER}parityConfigString(){return\"seedLo: \"+this.seed[0]+\", seedHi: \"+this.seed[1]}};let vt=gt;vt.SILVER_RATIO_64=BigInt(\"7640891576956012809\"),vt.GOLDEN_RATIO_64=BigInt(\"-7046029254386353131\"),vt.FLOAT_MULTIPLIER=1/Math.pow(2,24),vt.DOUBLE_MULTIPLIER=11102230246251565e-32,vt.BIGINT_1=BigInt(1),vt.BIGINT_17=BigInt(17),vt.BIGINT_21=BigInt(21),vt.BIGINT_27=BigInt(27),vt.BIGINT_28=BigInt(28),vt.BIGINT_30=BigInt(30),vt.BIGINT_31=BigInt(31),vt.BIGINT_32=BigInt(32),vt.BIGINT_49=BigInt(49),vt.BIGINT_64=BigInt(64),vt.STAFFORD_1=BigInt(\"-4658895280553007687\"),vt.STAFFORD_2=BigInt(\"-7723592293110705685\"),vt.MAX_ULONG=BigInt(\"0xFFFFFFFFFFFFFFFF\"),vt.POW2_60=BigInt(\"0x10000000000000000\"),vt.POW2_63=BigInt(\"0x8000000000000000\"),vt.MAX_UINT=BigInt(4294967295);class wt{constructor(t,e){this.seedLo=t,this.seedHi=e}at(t,e,s){const r=ht(t,e,s)^this.seedLo;return new vt([r,this.seedHi])}fromHashOf(t){const s=e(t,{asBytes:!0}),r=ct(s[0],s[1],s[2],s[3],s[4],s[5],s[6],s[7]),i=ct(s[8],s[9],s[10],s[11],s[12],s[13],s[14],s[15]);return new vt([r^this.seedLo,i^this.seedHi])}seedKey(){return[this.seedLo,this.seedHi]}}const bt=class{constructor(t){this.xo=256*t.nextDouble(),this.yo=256*t.nextDouble(),this.zo=256*t.nextDouble(),this.p=Array(256);for(let t=0;t<256;t+=1)this.p[t]=t;for(let e=0;e<256;e+=1){const s=t.nextInt(256-e),r=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=r}}sample2D(t,e){let s,r,i;const n=(t+e)*bt.F2,o=Math.floor(t+n),a=t-(o-(s=(o+(r=Math.floor(e+n)))*bt.G2));let l,u;a>(i=e-(r-s))?(l=1,u=0):(l=0,u=1);const h=a-l+bt.G2,c=i-u+bt.G2,f=a-1+2*bt.G2,m=i-1+2*bt.G2,d=255&o,p=255&r,g=this.P(d+this.P(p))%12,v=this.P(d+l+this.P(p+u))%12,w=this.P(d+1+this.P(p+1))%12;return 70*(this.getCornerNoise3D(g,a,i,0,.5)+this.getCornerNoise3D(v,h,c,0,.5)+this.getCornerNoise3D(w,f,m,0,.5))}sample(t,e,s){const r=.3333333333333333*(t+e+s),i=Math.floor(t+r),n=Math.floor(e+r),o=Math.floor(s+r),a=.16666666666666666*(i+n+o),l=t-(i-a),u=e-(n-a),h=s-(o-a);let c,f,m,d,p,g;l>=u?u>=h?(c=1,f=0,m=0,d=1,p=1,g=0):l>=h?(c=1,f=0,m=0,d=1,p=0,g=1):(c=0,f=0,m=1,d=1,p=0,g=1):u<h?(c=0,f=0,m=1,d=0,p=1,g=1):l<h?(c=0,f=1,m=0,d=0,p=1,g=1):(c=0,f=1,m=0,d=1,p=1,g=0);const v=l-c+.16666666666666666,w=u-f+.16666666666666666,b=h-m+.16666666666666666,x=l-d+.3333333333333333,S=u-p+.3333333333333333,_=h-g+.3333333333333333,A=l-.5,y=u-.5,E=h-.5,I=255&i,N=255&n,B=255&o,R=this.P(I+this.P(N+this.P(B)))%12,T=this.P(I+c+this.P(N+f+this.P(B+m)))%12,M=this.P(I+d+this.P(N+p+this.P(B+g)))%12,C=this.P(I+1+this.P(N+1+this.P(B+1)))%12;return 32*(this.getCornerNoise3D(R,l,u,h,.6)+this.getCornerNoise3D(T,v,w,b,.6)+this.getCornerNoise3D(M,x,S,_,.6)+this.getCornerNoise3D(C,A,y,E,.6))}P(t){return this.p[255&t]}getCornerNoise3D(t,e,s,r,i){let n,o=i-e*e-s*s-r*r;return o<0?n=0:(o*=o,n=o*o*bt.gradDot(t,e,s,r)),n}static gradDot(t,e,s,r){const i=bt.GRADIENT[15&t];return i[0]*e+i[1]*s+i[2]*r}};let xt=bt;xt.GRADIENT=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1],[1,1,0],[0,-1,1],[-1,1,0],[0,-1,-1]],xt.F2=.5*(Math.sqrt(3)-1),xt.G2=(3-Math.sqrt(3))/6;class St{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>127?t-256:t;for(let e=0;e<256;e+=1){const s=t.nextInt(256-e),r=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=r}}sample(t,e,s,r=0,i=0){const n=t+this.xo,o=e+this.yo,a=s+this.zo,l=Math.floor(n),u=Math.floor(o),h=Math.floor(a),c=n-l,f=o-u,m=a-h;let d=0;if(0!==r){const t=i>=0&&i<f?i:f;d=Math.floor(t/r+1e-7)*r}return this.sampleAndLerp(l,u,h,c,f-d,m,f)}sampleAndLerp(t,e,s,r,i,n,o){const a=this.P(t),l=this.P(t+1),u=this.P(a+e),h=this.P(a+e+1),c=this.P(l+e),f=this.P(l+e+1),m=xt.gradDot(this.P(u+s),r,i,n),d=xt.gradDot(this.P(c+s),r-1,i,n),p=xt.gradDot(this.P(h+s),r,i-1,n),g=xt.gradDot(this.P(f+s),r-1,i-1,n),v=xt.gradDot(this.P(u+s+1),r,i,n-1),w=xt.gradDot(this.P(c+s+1),r-1,i,n-1),b=xt.gradDot(this.P(h+s+1),r,i-1,n-1),x=xt.gradDot(this.P(f+s+1),r-1,i-1,n-1);return tt(ot(r),ot(o),ot(n),m,d,p,g,v,w,b,x)}P(t){return 255&this.p[255&t]}}class _t{constructor(t,e,s){if(t instanceof vt){const r=t.forkPositional();this.noiseLevels=Array(s.length);for(let t=0;t<s.length;t++)if(0!==s[t]){const s=e+t;this.noiseLevels[t]=new St(r.fromHashOf(\"octave_\"+s))}}else{if(1-e<s.length)throw new Error(\"Positive octaves are not allowed when using LegacyRandom\");this.noiseLevels=Array(s.length);for(let r=-e;r>=0;r-=1)r<s.length&&0!==s[r]?this.noiseLevels[r]=new St(t):t.consume(262)}this.amplitudes=s,this.lowestFreqInputFactor=Math.pow(2,e),this.lowestFreqValueFactor=Math.pow(2,s.length-1)/(Math.pow(2,s.length)-1),this.maxValue=this.edgeValue(2)}sample(t,e,s,r=0,i=0,n=!1){let o=0,a=this.lowestFreqInputFactor,l=this.lowestFreqValueFactor;for(let u=0;u<this.noiseLevels.length;u+=1){const h=this.noiseLevels[u];h&&(o+=this.amplitudes[u]*l*h.sample(_t.wrap(t*a),n?-h.yo:_t.wrap(e*a),_t.wrap(s*a),r*a,i*a)),a*=2,l/=2}return o}getOctaveNoise(t){return this.noiseLevels[this.noiseLevels.length-1-t]}edgeValue(t){let e=0,s=this.lowestFreqValueFactor;for(let r=0;r<this.noiseLevels.length;r+=1)this.noiseLevels[r]&&(e+=this.amplitudes[r]*t*s),s/=2;return e}static wrap(t){return t-33554432*Math.floor(t/33554432+.5)}}class At{constructor(t,e,s,r){this.cellWidth=s,this.cellHeight=r,this.minLimitNoise=new _t(t,-15,[1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0]),this.maxLimitNoise=new _t(t,-15,[1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0]),this.mainNoise=new _t(t,-7,[1,1,1,1,1,0,0,0]),this.xzScale=684.412*e.xzScale,this.yScale=684.412*e.yScale,this.xzMainScale=this.xzScale/e.xzFactor,this.yMainScale=this.yScale/e.yFactor,this.maxValue=this.minLimitNoise.edgeValue(this.yScale+2)}sample(t,e,s){let r;t=Math.floor(t/this.cellWidth),e=Math.floor(e/this.cellHeight),s=Math.floor(s/this.cellWidth);let i=0,n=1;for(let o=0;o<8;o+=1){if(r=this.mainNoise.getOctaveNoise(o),r){const o=this.xzMainScale*n,a=this.yMainScale*n,l=_t.wrap(t*o),u=_t.wrap(e*a),h=_t.wrap(s*o);i+=r.sample(l,u,h,a,e*a)/n}n/=2}i=(i/10+1)/2,n=1;let o=0,a=0;for(let l=0;l<16;l+=1){const u=this.xzScale*n,h=this.yScale*n,c=_t.wrap(t*u),f=_t.wrap(e*h),m=_t.wrap(s*u);i<1&&(r=this.minLimitNoise.getOctaveNoise(l))&&(o+=r.sample(c,f,m,h,e*h)/n),i>0&&(r=this.maxLimitNoise.getOctaveNoise(l))&&(a+=r.sample(c,f,m,h,e*h)/n),n/=2}return it(o/512,a/512,i)/128}}var yt;(yt||(yt={})).fromJson=function(t){var e,s,r,i,n;const o=null!=(e=B.readObject(t))?e:{};return{xzScale:null!=(s=B.readNumber(o.xz_scale))?s:1,yScale:null!=(r=B.readNumber(o.y_scale))?r:1,xzFactor:null!=(i=B.readNumber(o.xz_factor))?i:80,yFactor:null!=(n=B.readNumber(o.y_factor))?n:80}};const Et=class{constructor(t,{firstOctave:e,amplitudes:s}){this.first=new _t(t,e,s),this.second=new _t(t,e,s);let r=1/0,i=-1/0;for(let t=0;t<s.length;t+=1)0!==s[t]&&(r=Math.min(r,t),i=Math.max(i,t));const n=.1*(1+1/(i-r+1));this.valueFactor=1/6/n,this.maxValue=(this.first.maxValue+this.second.maxValue)*this.valueFactor}sample(t,e,s){const r=t*Et.INPUT_FACTOR,i=e*Et.INPUT_FACTOR,n=s*Et.INPUT_FACTOR;return(this.first.sample(t,e,s)+this.second.sample(r,i,n))*this.valueFactor}};let It=Et;var Nt,Bt;It.INPUT_FACTOR=1.0181268882175227,(Bt=Nt||(Nt={})).create=function(t,e){return{firstOctave:t,amplitudes:e}},Bt.fromJson=function(t){var e,s,r;const i=null!=(e=B.readObject(t))?e:{};return{firstOctave:null!=(s=B.readInt(i.firstOctave))?s:0,amplitudes:null!=(r=B.readArray(i.amplitudes,(t=>{var e;return null!=(e=B.readNumber(t))?e:0})))?r:[]}};class Rt{constructor(t,e){const s=e[e.length-1],r=-e[0]+s+1,i=new Set(e),n=new xt(t);this.noiseLevels=Array(r),s>=0&&s<r&&i.has(0)&&(this.noiseLevels[s]=n);for(let e=s+1;e<r;e+=1)e>=0&&i.has(s-e)?this.noiseLevels[e]=new xt(t):t.consume(262);if(s>0)throw new Error(\"Positive octaves are not allowed\");this.highestFreqInputFactor=Math.pow(2,s),this.highestFreqValueFactor=1/(Math.pow(2,r)-1)}sample(t,e,s){let r=0,i=this.highestFreqInputFactor,n=this.highestFreqValueFactor;for(let o=0;o<this.noiseLevels.length;o+=1){const a=this.noiseLevels[o];a&&(r+=n*a.sample2D(t*i+(s?a.xo:0),e*i+(s?a.yo:0))),i/=2,n*=2}return r}}const Tt=t=>[(t>>16&255)/256,(t>>8&255)/256,(255&t)/256],Mt=[124/256,189/256,107/256],Ct=Tt(6396257),Ot=Tt(8431445),kt=Tt(4764952),Pt=Tt(4159204),Lt=Tt(8431445),Ft=Tt(2129968),Vt=t=>[t/8,1-t/32,64*t],Dt={large_fern:()=>Mt,tall_grass:()=>Mt,grass_block:()=>Mt,fern:()=>Mt,grass:()=>Mt,potted_fern:()=>Mt,spruce_leaves:()=>Ct,birch_leaves:()=>Ot,oak_leaves:()=>kt,jungle_leaves:()=>kt,acacia_leaves:()=>kt,dark_oak_leaves:()=>kt,vine:()=>kt,water:()=>Pt,bubble_column:()=>Pt,cauldron:()=>Pt,redstone_wire:t=>{var e;return(t=>{const e=t/15;return[.6*e+(e>0?.4:.3),$(e*e*.7-.5,0,1),$(e*e*.6-.7,0,1)]})(parseInt(null!=(e=t.power)?e:\"0\"))},sugar_cane:()=>Mt,attached_melon_stem:()=>Lt,attached_pumpkin_stem:()=>Lt,melon_stem:t=>{var e;return Vt(parseInt(null!=(e=t.age)?e:\"0\"))},pumpkin_stem:t=>{var e;return Vt(parseInt(null!=(e=t.age)?e:\"0\"))},lily_pad:()=>Ft};var Ut;function Gt(...t){let e=0;for(const s of t)e+=s.length;const s=new Float32Array(e);let r=0;for(const e of t)s.set(e,r),r+=e.length;return s}function zt(t,e){const r=s.create();for(let i=0;i<t.length;i+=3)r[0]=t[i],r[1]=t[i+1],r[2]=t[i+2],s.transformMat4(r,r,e),t[i]=r[0],t[i+1]=r[1],t[i+2]=r[2]}(Ut||(Ut={})).rotate=function(t,e,s){let{up:r,down:i,north:n,east:o,south:a,west:l}=t;switch(s){case 90:[n,o,a,l]=[o,a,l,n];break;case 180:[n,o,a,l]=[a,l,n,o];break;case 270:[n,o,a,l]=[l,n,o,a]}switch(e){case 90:[r,n,i,a]=[n,i,a,r];break;case 180:[r,n,i,a]=[i,a,r,n];break;case 270:[r,n,i,a]=[a,r,n,i]}return{up:r,down:i,north:n,east:o,south:a,west:l}};class Yt{constructor(t,e,s){this.id=t,this.variants=e,this.multipart=s,this.variants=e}getModelVariants(t){if(this.variants){const e=Object.keys(this.variants).filter((e=>this.matchesVariant(e,t)));if(0===e.length)return[];const s=this.variants[e[0]];return[Array.isArray(s)?s[0]:s]}if(this.multipart){return this.multipart.filter((e=>!e.when||this.matchesCase(e.when,t))).map((t=>Array.isArray(t.apply)?t.apply[0]:t.apply))}return[]}getBuffers(t,e,s,n,o,a){var l,u,h,c;const f=this.getModelVariants(e),m=[],d=[],p=[],g=[];for(const v of f){const f=Ut.rotate(a,null!=(l=v.x)?l:0,null!=(u=v.y)?u:0),w=n.getBlockModel(v.model).getBuffers(t,e,s,o,f);if(v.x||v.y){const t=r.create();r.identity(t),r.translate(t,t,[8,8,8]),r.rotateY(t,t,-i.toRadian(null!=(h=v.y)?h:0)),r.rotateX(t,t,-i.toRadian(null!=(c=v.x)?c:0)),r.translate(t,t,[-8,-8,-8]),zt(w.position,t)}m.push(w.position),d.push(...w.texCoord),p.push(...w.tintColor),g.push(...w.index),o+=w.texCoord.length/2}const v=r.create();r.identity(v),r.scale(v,v,[.0625,.0625,.0625]);const w=Gt(...m);return zt(w,v),{position:w,texCoord:d,tintColor:p,index:g}}matchesVariant(t,e){return t.split(\",\").every((t=>{const[s,r]=t.split(\"=\");return e[s]===r}))}matchesCase(t,e){if(Array.isArray(t.OR))return t.OR.some((t=>this.matchesCase(t,e)));const s=t;return Object.keys(s).every((t=>s[t].split(\"|\").includes(e[t])))}static fromJson(t,e){return new Yt(t,e.variants,e.multipart)}}const Ht={0:[0,3,2,3,2,1,0,1],90:[2,3,2,1,0,1,0,3],180:[2,1,0,1,0,3,2,3],270:[0,1,0,3,2,3,2,1]},Xt={x:[1,0,0],y:[0,1,0],z:[0,0,1]},jt=1.41421356237,Zt={x:[1,jt,jt],y:[jt,1,jt],z:[jt,jt,1]};class qt{constructor(t,e,s,r){this.id=t,this.parent=e,this.textures=s,this.elements=r,this.flattened=!1}getBuffers(t,e,s,r,i){var n;const o=[],a=[],l=[],u=[];for(const h of null!=(n=this.elements)?n:[]){const n=this.getElementBuffers(t,e,h,r,s,i);o.push(n.position),a.push(...n.texCoord),l.push(...n.tintColor),u.push(...n.index),r+=n.texCoord.length/2}return{position:Gt(...o),texCoord:a,tintColor:l,index:u}}getElementBuffers(t,e,n,o,a,l){var u,h,c,f,m,d,p,g,v,w,b,x;const S=n.from[0],_=n.from[1],A=n.from[2],y=n.to[0],E=n.to[1],I=n.to[2],N=[],B=[],R=[],T=[],M=(s,r,i)=>{var n,l,u,h,c,f,m,d,p,g,v,w,b;const[x,S,_,A]=a.getTextureUV(this.getTexture(s.texture)),y=(_-x)/16,E=(A-S)/16,I=y/16,M=E/16;r[0]=(null!=(l=null==(n=s.uv)?void 0:n[0])?l:r[0])*y+I,r[1]=(null!=(h=null==(u=s.uv)?void 0:u[1])?h:r[1])*E+M,r[2]=(null!=(f=null==(c=s.uv)?void 0:c[2])?f:r[2])*y-I,r[3]=(null!=(d=null==(m=s.uv)?void 0:m[3])?d:r[3])*E-M;const C=Ht[null!=(p=s.rotation)?p:0];B.push(x+r[C[0]],S+r[C[1]],x+r[C[2]],S+r[C[3]],x+r[C[4]],S+r[C[5]],x+r[C[6]],S+r[C[7]]);const O=(null!=(g=s.tintindex)?g:-1)>=0&&null!=(b=null==(w=(v=Dt)[t.path])?void 0:w.call(v,e))?b:[1,1,1];R.push(...O,...O,...O,...O),N.push(...i),T.push(o,o+1,o+2,o,o+2,o+3),o+=4};!(null==(h=null==(u=n.faces)?void 0:u.up)?void 0:h.texture)||n.faces.up.cullface&&l[n.faces.up.cullface]||M(n.faces.up,[S,16-I,y,16-A],[S,E,I,y,E,I,y,E,A,S,E,A]),!(null==(f=null==(c=n.faces)?void 0:c.down)?void 0:f.texture)||n.faces.down.cullface&&l[n.faces.down.cullface]||M(n.faces.down,[16-I,16-y,16-A,16-S],[S,_,A,y,_,A,y,_,I,S,_,I]),!(null==(d=null==(m=n.faces)?void 0:m.south)?void 0:d.texture)||n.faces.south.cullface&&l[n.faces.south.cullface]||M(n.faces.south,[S,16-E,y,16-_],[S,_,I,y,_,I,y,E,I,S,E,I]),!(null==(g=null==(p=n.faces)?void 0:p.north)?void 0:g.texture)||n.faces.north.cullface&&l[n.faces.north.cullface]||M(n.faces.north,[16-y,16-E,16-S,16-_],[y,_,A,S,_,A,S,E,A,y,E,A]),!(null==(w=null==(v=n.faces)?void 0:v.east)?void 0:w.texture)||n.faces.east.cullface&&l[n.faces.east.cullface]||M(n.faces.east,[16-I,16-E,16-A,16-_],[y,_,I,y,_,A,y,E,A,y,E,I]),!(null==(x=null==(b=n.faces)?void 0:b.west)?void 0:x.texture)||n.faces.west.cullface&&l[n.faces.west.cullface]||M(n.faces.west,[A,16-E,I,16-_],[S,_,A,S,_,I,S,E,I,S,E,A]);const C=r.create();if(r.identity(C),n.rotation){const t=s.fromValues(...n.rotation.origin);r.translate(C,C,t),r.rotate(C,C,i.toRadian(n.rotation.angle),Xt[n.rotation.axis]),n.rotation.rescale&&r.scale(C,C,Zt[n.rotation.axis]),s.negate(t,t),r.translate(C,C,t)}const O=new Float32Array(N);return zt(O,C),{position:O,texCoord:B,tintColor:R,index:T}}getTexture(t){for(var e,s;t.startsWith(\"#\");)t=null!=(s=null==(e=this.textures)?void 0:e[t.slice(1)])?s:\"\";return t.startsWith(\"minecraft:\")||(t=\"minecraft:\"+t),t}flatten(t){var e;if(!this.flattened&&this.parent){const s=t.getBlockModel(this.parent);if(!s)return console.warn(`parent ${this.parent} does not exist!`),void(this.flattened=!0);s.flatten(t),this.elements||(this.elements=s.elements),this.textures||(this.textures={}),Object.keys(null!=(e=s.textures)?e:{}).forEach((t=>{this.textures[t]||(this.textures[t]=s.textures[t])})),this.flattened=!0}}static fromJson(t,e){let s=e.parent;return s&&!s.startsWith(\"minecraft:\")&&(s=\"minecraft:\"+s),new qt(t,s,e.textures,e.elements)}}class Jt{constructor(t,e,s){this.gl=t,this.program=this.initShaderProgram(e,s)}getProgram(){return this.program}initShaderProgram(t,e){const s=this.loadShader(this.gl.VERTEX_SHADER,t),r=this.loadShader(this.gl.FRAGMENT_SHADER,e),i=this.gl.createProgram();if(this.gl.attachShader(i,s),this.gl.attachShader(i,r),this.gl.linkProgram(i),!this.gl.getProgramParameter(i,this.gl.LINK_STATUS))throw new Error(`Unable to link shader program: ${this.gl.getProgramInfoLog(i)}`);return i}loadShader(t,e){const s=this.gl.createShader(t);if(this.gl.shaderSource(s,e),this.gl.compileShader(s),!this.gl.getShaderParameter(s,this.gl.COMPILE_STATUS)){const e=new Error(`Compiling ${t===this.gl.VERTEX_SHADER?\"vertex\":\"fragment\"} shader: ${this.gl.getShaderInfoLog(s)}`);throw this.gl.deleteShader(s),e}return s}}function Wt(t,e,s,r,i){const n=new Yt(\"\",{\"\":{model:\"\"}},void 0),o={getBlockModel:()=>i};return i.flatten(o),n.getBuffers(t,{},e,o,s,r)}function $t(t,e,s,r,i,o){const a=i.up?16:[14.2,12.5,10.5,9,7,5.3,3.7,1.9,16,16,16,16,16,16,16,16][s];return Wt(C.create(t),r,e,i,new qt(\"\",\"\",{still:`minecraft:block/${t}_still`,flow:`minecraft:block/${t}_flow`},[{from:[0,0,0],to:[16,a,16],faces:{up:{texture:\"#still\",tintindex:o,cullface:n.UP},down:{texture:\"#still\",tintindex:o,cullface:n.DOWN},north:{texture:\"#flow\",tintindex:o,cullface:n.NORTH},east:{texture:\"#flow\",tintindex:o,cullface:n.EAST},south:{texture:\"#flow\",tintindex:o,cullface:n.SOUTH},west:{texture:\"#flow\",tintindex:o,cullface:n.WEST}}}]))}const Kt={\"minecraft:water\":(t,e,s,r)=>$t(\"water\",t,parseInt(e.level),s,r,0),\"minecraft:lava\":(t,e,s,r)=>$t(\"lava\",t,parseInt(e.level),s,r),\"minecraft:chest\":(t,e,s)=>function(t,e,s,r){return Wt(C.create(\"chest\"),r,t,{},new qt(\"\",\"\",{0:\"minecraft:block/chest\"},[{from:[1,0,1],to:[15,14,15],faces:{up:{texture:\"#0\"},down:{texture:\"#0\"},north:{texture:\"#0\"},east:{texture:\"#0\"},south:{texture:\"#0\"},west:{texture:\"#0\"}}}]))}(t,e.facing,e.type,s)},Qt=new Set(Object.keys(Kt));class te{constructor(t,e,s,r){var i,n;this.gl=t,this.structure=e,this.resources=s,this.chunks=[],(null==r?void 0:r.facesPerBuffer)&&console.warn(\"webgl render warning: facesPerBuffer option has been removed in favor of chunkSize\"),this.chunkSize=null!=(i=null==r?void 0:r.chunkSize)?i:16,this.useInvisibleBlockBuffer=null==(n=null==r?void 0:r.useInvisibleBlockBuffer)||n,this.shaderProgram=new Jt(t,\"\\n attribute vec4 vertPos;\\n attribute vec2 texCoord;\\n attribute vec3 tintColor;\\n attribute vec3 normal;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vTexCoord = texCoord;\\n vTintColor = tintColor;\\n vLighting = normal.y * 0.2 + abs(normal.z) * 0.1 + 0.8;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n uniform sampler2D sampler;\\n\\n void main(void) {\\n vec4 texColor = texture2D(sampler, vTexCoord);\\n if(texColor.a < 0.01) discard;\\n gl_FragColor = vec4(texColor.xyz * vTintColor * vLighting, texColor.a);\\n }\\n\").getProgram(),this.gridShaderProgram=new Jt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 vertColor;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = vertColor;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.colorShaderProgram=new Jt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 blockPos;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = blockPos / 256.0;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.outlineBuffers=this.getOutlineBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers(),this.atlasTexture=this.getBlockTexture(),this.projMatrix=this.getPerspective(),this.activeShader=this.shaderProgram,this.initialize()}setStructure(t){this.structure=t,this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers()}initialize(){this.gl.enable(this.gl.DEPTH_TEST),this.gl.depthFunc(this.gl.LEQUAL),this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA),this.gl.enable(this.gl.CULL_FACE),this.gl.cullFace(this.gl.BACK)}getBlockTexture(){const t=this.gl.createTexture();return this.gl.bindTexture(this.gl.TEXTURE_2D,t),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,this.resources.getTextureAtlas()),this.gl.generateMipmap(this.gl.TEXTURE_2D),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.NEAREST),t}getPerspective(){const t=70*Math.PI/180,e=this.gl.canvas.clientWidth/this.gl.canvas.clientHeight,s=r.create();return r.perspective(s,t,e,.1,500),s}getChunk(t){const e=2*Math.abs(t[0])+(t[0]<0?1:0),s=2*Math.abs(t[1])+(t[1]<0?1:0),r=2*Math.abs(t[2])+(t[2]<0?1:0);return this.chunks[e]||(this.chunks[e]=[]),this.chunks[e][s]||(this.chunks[e][s]=[]),this.chunks[e][s][r]||(this.chunks[e][s][r]={positions:[],textureCoordinates:[],tintColors:[],blockPositions:[],normals:[],indices:[],indexOffset:0}),this.chunks[e][s][r]}updateStructureBuffers(t){var e;const i=(t,e,i)=>{const n=r.create();r.translate(n,n,e),zt(t.position,n),i.positions.push(t.position),i.textureCoordinates.push(...t.texCoord),i.tintColors.push(...t.tintColor);for(let e=0;e<t.position.length;e+=12){const r=s.fromValues(t.position[e],t.position[e+1],t.position[e+2]),n=s.fromValues(t.position[e+3],t.position[e+4],t.position[e+5]),o=s.fromValues(t.position[e+6],t.position[e+7],t.position[e+8]);s.subtract(n,n,r),s.subtract(o,o,r),s.cross(n,n,o),s.normalize(n,n),i.normals.push(...n,...n,...n,...n)}for(let s=0;s<t.texCoord.length/2;s+=1)i.blockPositions.push(...e);i.indices.push(...t.index),i.indexOffset+=t.texCoord.length/2},o=t=>{t.positions=[],t.textureCoordinates=[],t.tintColors=[],t.blockPositions=[],t.normals=[],t.indices=[],t.indexOffset=0},a=t=>{t.buffer?(this.updateBuffer(t.buffer.position,this.gl.ARRAY_BUFFER,Gt(...t.positions)),this.updateBuffer(t.buffer.texCoord,this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),this.updateBuffer(t.buffer.tintColor,this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),this.updateBuffer(t.buffer.normal,this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),this.updateBuffer(t.buffer.blockPos,this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),this.updateBuffer(t.buffer.index,this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),t.buffer.length=t.indices.length):t.buffer={position:this.createBuffer(this.gl.ARRAY_BUFFER,Gt(...t.positions)),texCoord:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),tintColor:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),blockPos:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),normal:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),index:this.createBuffer(this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),length:t.indices.length}};let l;t?t.forEach((t=>{const e=this.getChunk(t);o(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{o(t)}))))));for(const r of this.structure.getBlocks()){const o=r.state.getName(),a=r.state.getProperties(),u=null!=(e=this.resources.getDefaultBlockProperties(o))?e:{};Object.entries(u).forEach((([t,e])=>{a[t]||(a[t]=e)}));const h=[Math.floor(r.pos[0]/this.chunkSize),Math.floor(r.pos[1]/this.chunkSize),Math.floor(r.pos[2]/this.chunkSize)];if(t&&!t.some((t=>s.equals(t,h))))continue;const c=this.getChunk(h);try{const t=this.resources.getBlockDefinition(o),e={up:this.needsCull(r,n.UP),down:this.needsCull(r,n.DOWN),west:this.needsCull(r,n.WEST),east:this.needsCull(r,n.EAST),north:this.needsCull(r,n.NORTH),south:this.needsCull(r,n.SOUTH)};t&&(l=t.getBuffers(o,a,this.resources,this.resources,c.indexOffset,e),i(l,r.pos,c)),Qt.has(o.toString())&&(l=Kt[o.toString()](c.indexOffset,a,this.resources,e),i(l,r.pos,c))}catch(t){console.error(`Error rendering block ${o}`,t)}}t?t.forEach((t=>{const e=this.getChunk(t);a(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{a(t)}))))))}needsCull(t,e){var s,r;const i=null==(s=this.structure.getBlock(l.towards(t.pos,e)))?void 0:s.state;return!!i&&((null==(r=this.resources.getBlockFlags(i.getName()))?void 0:r.opaque)?!(e===n.UP&&t.state.isFluid()):t.state.isFluid()&&i.isFluid())}getGridBuffers(){const[t,e,s]=this.structure.getSize(),r=[],i=[];r.push(0,0,0,t,0,0),i.push(1,0,0,1,0,0),r.push(0,0,0,0,0,s),i.push(0,0,1,0,0,1),r.push(0,0,0,0,e,0),r.push(t,0,0,t,e,0),r.push(0,0,s,0,e,s),r.push(t,0,s,t,e,s),r.push(0,e,0,0,e,s),r.push(t,e,0,t,e,s),r.push(0,e,0,t,e,0),r.push(0,e,s,t,e,s);for(let e=1;e<=t;e+=1)r.push(e,0,0,e,0,s);for(let e=1;e<=s;e+=1)r.push(0,0,e,t,0,e);for(let e=0;e<8+t+s;e+=1)i.push(.8,.8,.8,.8,.8,.8);return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(r)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(i)),length:r.length/3}}getOutlineBuffers(){const t=[],e=[];return this.addCube(t,e,[1,1,1],[0,0,0],[1,1,1]),{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(e)),length:t.length/3}}getInvisibleBlockBuffers(){if(!this.useInvisibleBlockBuffer)return;const t=this.structure.getSize(),e=[],s=[];for(let r=0;r<t[0];r+=1)for(let i=0;i<t[1];i+=1)for(let n=0;n<t[2];n+=1){const t=this.structure.getBlock([r,i,n]);void 0!==t&&(null===t?this.addCube(e,s,[1,.25,.25],[r+.4375,i+.4375,n+.4375],[r+.5625,i+.5625,n+.5625]):t.state.is(G.AIR)?this.addCube(e,s,[.5,.5,1],[r+.375,i+.375,n+.375],[r+.625,i+.625,n+.625]):t.state.is(new G(\"cave_air\"))&&this.addCube(e,s,[.5,1,.5],[r+.375,i+.375,n+.375],[r+.625,i+.625,n+.625]))}return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(e)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(s)),length:e.length/3}}addCube(t,e,s,r,i){t.push(r[0],r[1],r[2],r[0],r[1],i[2]),t.push(i[0],r[1],r[2],i[0],r[1],i[2]),t.push(r[0],r[1],r[2],i[0],r[1],r[2]),t.push(r[0],r[1],i[2],i[0],r[1],i[2]),t.push(r[0],r[1],r[2],r[0],i[1],r[2]),t.push(i[0],r[1],r[2],i[0],i[1],r[2]),t.push(r[0],r[1],i[2],r[0],i[1],i[2]),t.push(i[0],r[1],i[2],i[0],i[1],i[2]),t.push(r[0],i[1],r[2],r[0],i[1],i[2]),t.push(i[0],i[1],r[2],i[0],i[1],i[2]),t.push(r[0],i[1],r[2],i[0],i[1],r[2]),t.push(r[0],i[1],i[2],i[0],i[1],i[2]);for(let t=0;t<24;t+=1)e.push(...s)}createBuffer(t,e){const s=this.gl.createBuffer();return this.gl.bindBuffer(t,s),this.gl.bufferData(t,e,this.gl.DYNAMIC_DRAW),s}updateBuffer(t,e,s){this.gl.bindBuffer(e,t),this.gl.bufferData(e,s,this.gl.STATIC_DRAW)}drawGrid(t){this.setShader(this.gridShaderProgram),this.setVertexAttr(\"vertPos\",3,this.gridBuffers.position),this.setVertexAttr(\"vertColor\",3,this.gridBuffers.color),this.setUniform(\"mView\",t),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.gridBuffers.length)}drawInvisibleBlocks(t){this.useInvisibleBlockBuffer&&(this.setShader(this.gridShaderProgram),this.setVertexAttr(\"vertPos\",3,this.invisibleBlockBuffers.position),this.setVertexAttr(\"vertColor\",3,this.invisibleBlockBuffers.color),this.setUniform(\"mView\",t),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.invisibleBlockBuffers.length))}drawStructure(t){this.setShader(this.shaderProgram),this.gl.activeTexture(this.gl.TEXTURE0),this.gl.bindTexture(this.gl.TEXTURE_2D,this.atlasTexture),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(\"texCoord\",2,t.buffer.texCoord),this.setVertexAttr(\"tintColor\",3,t.buffer.tintColor),this.setVertexAttr(\"normal\",3,t.buffer.normal),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawColoredStructure(t){this.setShader(this.colorShaderProgram),this.setUniform(\"mView\",t),this.setUniform(\"mProj\",this.projMatrix),this.chunks.forEach((t=>{t.forEach((t=>{t.forEach((t=>{t.buffer&&(this.setVertexAttr(\"vertPos\",3,t.buffer.position),this.setVertexAttr(\"blockPos\",3,t.buffer.blockPos),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawOutline(t,e){this.setShader(this.gridShaderProgram),this.setVertexAttr(\"vertPos\",3,this.outlineBuffers.position),this.setVertexAttr(\"vertColor\",3,this.outlineBuffers.color);const s=r.create();r.copy(s,t),r.translate(s,s,e),this.setUniform(\"mView\",s),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.outlineBuffers.length)}setViewport(t,e,s,r){this.gl.viewport(t,e,s,r),this.projMatrix=this.getPerspective()}setShader(t){this.gl.useProgram(t),this.activeShader=t}setVertexAttr(t,e,s){const r=this.gl.getAttribLocation(this.activeShader,t);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,s),this.gl.vertexAttribPointer(r,e,this.gl.FLOAT,!1,0,0),this.gl.enableVertexAttribArray(r)}setUniform(t,e){const s=this.gl.getUniformLocation(this.activeShader,t);this.gl.uniformMatrix4fv(s,!1,e)}}var ee=(t,e,s)=>new Promise(((r,i)=>{var n=t=>{try{a(s.next(t))}catch(t){i(t)}},o=t=>{try{a(s.throw(t))}catch(t){i(t)}},a=t=>t.done?r(t.value):Promise.resolve(t.value).then(n,o);a((s=s.apply(t,e)).next())}));class se{constructor(t,e){this.img=t,this.idMap=e,this.part=16/t.width}getTextureAtlas(){return this.img}getTextureUV(t){var e;return null!=(e=this.idMap[t])?e:[0,0,this.part,this.part]}static fromBlobs(t){return ee(this,null,(function*(){const e=Math.sqrt(Object.keys(t).length+1),s=Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))),r=16*s,i=1/s,n=document.createElement(\"canvas\");n.width=r,n.height=r;const o=n.getContext(\"2d\");this.drawInvalidTexture(o);const a={};let l=1;return yield Promise.all(Object.keys(t).map((e=>ee(this,null,(function*(){const r=l%s,n=Math.floor(l/s);l+=1,a[e]=[i*r,i*n,i*r+i,i*n+i];const u=yield createImageBitmap(t[e]);o.drawImage(u,0,0,16,16,16*r,16*n,16,16)}))))),new se(o.getImageData(0,0,r,r),a)}))}static empty(){const t=document.createElement(\"canvas\");t.width=16,t.height=16;const e=t.getContext(\"2d\");return se.drawInvalidTexture(e),new se(e.getImageData(0,0,16,16),{})}static drawInvalidTexture(t){t.fillStyle=\"black\",t.fillRect(0,0,16,16),t.fillStyle=\"magenta\",t.fillRect(0,0,8,8),t.fillRect(8,8,8,8)}}const re=class{constructor(t,e,s){this.offsetSampler=t,this.factorSampler=e,this.jaggednessSampler=s}static extractor(t){return{compute:e=>e[t]}}static fromJson(t){var e;const s=null!=(e=B.readObject(t))?e:{};return new re(ft.fromJson(s.offset,this.EXTRACTOR),ft.fromJson(s.factor,this.EXTRACTOR),ft.fromJson(s.jaggedness,this.EXTRACTOR))}offset(t){return this.offsetSampler.compute(t)+re.GLOBAL_OFFSET}factor(t){return this.factorSampler.compute(t)}jaggedness(t){return this.jaggednessSampler.compute(t)}static point(t,e,s){return{continents:t,erosion:e,weirdness:s,ridges:this.peaksAndValleys(s)}}static peaksAndValleys(t){return 3*-(Math.abs(Math.abs(t)-.6666667)-.33333334)}};let ie=re;var ne,oe,ae,le,ue;ie.GLOBAL_OFFSET=-.50375,ie.EXTRACTOR=t=>{var e;const s=null!=(e=B.readString(t))?e:\"continents\";return re.extractor(s)},ie.CONTINENTS=re.extractor(\"continents\"),ie.EROSION=re.extractor(\"erosion\"),ie.WEIRDNESS=re.extractor(\"weirdness\"),ie.RIDGES=re.extractor(\"ridges\"),function(t){function e(t){return t.ySize<<2}t.fromJson=function(t){var e,s,r,i,n;const o=null!=(e=B.readObject(t))?e:{};return{minY:null!=(s=B.readInt(o.min_y))?s:0,height:null!=(r=B.readInt(o.height))?r:256,xzSize:null!=(i=B.readInt(o.size_horizontal))?i:1,ySize:null!=(n=B.readInt(o.size_vertical))?n:1,sampling:yt.fromJson(o.sampling),topSlide:oe.fromJson(o.top_slide),bottomSlide:oe.fromJson(o.bottom_slide),terrainShaper:ie.fromJson(o.terrain_shaper)}},t.cellHeight=e,t.cellWidth=function(t){return t.xzSize<<2},t.cellCountY=function(t){return t.height/e(t)},t.minCellY=function(t){return Math.floor(t.minY/e(t))},t.applySlides=function(s,r,i){const n=Math.floor(i/e(s))-t.minCellY(s);return r=oe.apply(s.topSlide,r,t.cellCountY(s)-n),r=oe.apply(s.bottomSlide,r,n)}}(ne||(ne={})),(ae=oe||(oe={})).fromJson=function(t){var e,s,r,i;const n=null!=(e=B.readObject(t))?e:{};return{target:null!=(s=B.readNumber(n.target))?s:0,size:null!=(r=B.readInt(n.size))?r:0,offset:null!=(i=B.readInt(n.offset))?i:0}},ae.apply=function(t,e,s){if(t.size<=0)return e;const r=(s-t.offset)/t.size;return it(t.target,e,r)},function(t){function e(t){const e=new q(C.create(t));return q.REGISTRY.register(e.key,e),e}t.NOISE=e(\"worldgen/noise\"),t.DENSITY_FUNCTION=e(\"worldgen/density_function\")}(le||(le={}));class he{minValue(){return-this.maxValue()}mapAll(t){return t.map(this)}}!function(t){t.context=function(t,e,s){return{x:t,y:e,z:s}};class e extends t{constructor(t){super(),this.input=t}compute(t){return this.transform(t,this.input.compute(t))}}const s=j.parser(le.NOISE,Nt.fromJson);t.fromJson=function t(e,r=t){var l,v,S,N,T,D,U,G,z,Y,H,X,Z,q,J,W,$,K,Q;if(\"string\"==typeof e)return new n(j.reference(le.DENSITY_FUNCTION,C.parse(e)));if(\"number\"==typeof e)return new i(e);const tt=null!=(l=B.readObject(e))?l:{},et=null==(v=B.readString(tt.type))?void 0:v.replace(/^minecraft:/,\"\");switch(et){case\"blend_alpha\":return new o(1,0,1);case\"blend_offset\":case\"beardifier\":return new o(0,-1/0,1/0);case\"old_blended_noise\":return new a;case\"flat_cache\":return new u(r(tt.argument));case\"interpolated\":return new m(r(tt.argument));case\"cache_2d\":return new c(r(tt.argument));case\"cache_once\":return new f(r(tt.argument));case\"cache_all_in_cell\":return new h(r(tt.argument));case\"noise\":return new d(null!=(S=B.readNumber(tt.xz_scale))?S:1,null!=(N=B.readNumber(tt.y_scale))?N:1,s(tt.noise));case\"end_islands\":return new p;case\"weird_scaled_sampler\":return new w(r(tt.input),B.readEnum(tt.rarity_value_mapper,g),s(tt.noise));case\"shifted_noise\":return new b(r(tt.shift_x),r(tt.shift_y),r(tt.shift_z),null!=(T=B.readNumber(tt.xz_scale))?T:1,null!=(D=B.readNumber(tt.y_scale))?D:1,s(tt.noise));case\"range_choice\":return new x(r(tt.input),null!=(U=B.readNumber(tt.min_inclusive))?U:0,null!=(G=B.readNumber(tt.max_exclusive))?G:1,r(tt.when_in_range),r(tt.when_out_of_range));case\"shift_a\":return new _(s(tt.argument));case\"shift_b\":return new A(s(tt.argument));case\"shift\":return new y(s(tt.argument));case\"blend_density\":return new E(r(tt.argument));case\"clamp\":return new I(r(tt.input),null!=(z=B.readNumber(tt.min))?z:0,null!=(Y=B.readNumber(tt.max))?Y:1);case\"abs\":case\"square\":case\"cube\":case\"half_negative\":case\"quarter_negative\":case\"squeeze\":return new R(et,r(tt.argument));case\"slide\":return new M(r(tt.argument));case\"add\":case\"mul\":case\"min\":case\"max\":return new k(B.readEnum(et,O),r(tt.argument1),r(tt.argument2));case\"spline\":return new P(ft.fromJson(tt.spline,r),null!=(H=B.readNumber(tt.min_value))?H:0,null!=(X=B.readNumber(tt.max_value))?X:1);case\"terrain_shaper_spline\":return new F(r(tt.continentalness),r(tt.erosion),r(tt.weirdness),B.readEnum(tt.spline,L),null!=(Z=B.readNumber(tt.min_value))?Z:0,null!=(q=B.readNumber(tt.max_value))?q:1);case\"constant\":return new i(null!=(J=B.readNumber(tt.argument))?J:0);case\"y_clamped_gradient\":return new V(null!=(W=B.readInt(tt.from_y))?W:-4064,null!=($=B.readInt(tt.to_y))?$:4062,null!=(K=B.readNumber(tt.from_value))?K:-4064,null!=(Q=B.readNumber(tt.to_value))?Q:4062)}return i.ZERO};const r=class extends t{constructor(t){super(),this.value=t}compute(){return this.value}minValue(){return this.value}maxValue(){return this.value}};let i=r;i.ZERO=new r(0),i.ONE=new r(1),t.Constant=i;class n extends t{constructor(t){super(),this.holder=t}compute(t){return this.holder.value().compute(t)}minValue(){return this.holder.value().minValue()}maxValue(){return this.holder.value().maxValue()}}t.HolderHolder=n;class o extends t.Constant{constructor(t,e,s){super(t),this.min=e,this.max=s}minValue(){return this.min}maxValue(){return this.max}}t.ConstantMinMax=o;class a extends t{constructor(t){super(),this.blendedNoise=null!=t?t:new At(vt.create(BigInt(0)),{xzScale:1,yScale:1,xzFactor:80,yFactor:160},4,8)}compute(t){return this.blendedNoise.sample(t.x,t.y,t.z)}maxValue(){return this.blendedNoise.maxValue}}t.OldBlendedNoise=a;class l extends t{constructor(t){super(),this.wrapped=t}minValue(){return this.wrapped.minValue()}maxValue(){return this.wrapped.maxValue()}}class u extends l{constructor(t){super(t),this.lastValue=0}compute(e){const s=e.x>>2,r=e.z>>2;return this.lastQuartX===s&&this.lastQuartZ===r||(this.lastValue=this.wrapped.compute(t.context(s<<2,0,r<<2)),this.lastQuartX=s,this.lastQuartZ=r),this.lastValue}mapAll(t){return t.map(new u(this.wrapped.mapAll(t)))}}t.FlatCache=u;class h extends l{constructor(t){super(t)}compute(t){return this.wrapped.compute(t)}mapAll(t){return t.map(new h(this.wrapped.mapAll(t)))}}t.CacheAllInCell=h;class c extends l{constructor(t){super(t),this.lastValue=0}compute(t){const e=t.x,s=t.z;return this.lastBlockX===e&&this.lastBlockZ===s||(this.lastValue=this.wrapped.compute(t),this.lastBlockX=e,this.lastBlockZ=s),this.lastValue}mapAll(t){return t.map(new c(this.wrapped.mapAll(t)))}}t.Cache2D=c;class f extends l{constructor(t){super(t),this.lastValue=0}compute(t){const e=t.x,s=t.y,r=t.z;return this.lastBlockX===e&&this.lastBlockY===s&&this.lastBlockZ===r||(this.lastValue=this.wrapped.compute(t),this.lastBlockX=e,this.lastBlockY=s,this.lastBlockZ=r),this.lastValue}mapAll(t){return t.map(new f(this.wrapped.mapAll(t)))}}t.CacheOnce=f;class m extends l{constructor(t,e=4,s=4){super(t),this.cellWidth=e,this.cellHeight=s,this.values=new Map}compute({x:t,y:e,z:s}){const r=this.cellWidth,i=this.cellHeight,n=(t%r+r)%r/r,o=(e%i+i)%i/i,a=(s%r+r)%r/r,l=Math.floor(t/r)*r,u=Math.floor(e/i)*i,h=Math.floor(s/r)*r;return rt(n,o,a,(()=>this.computeCorner(l,u,h)),(()=>this.computeCorner(l+r,u,h)),(()=>this.computeCorner(l,u+i,h)),(()=>this.computeCorner(l+r,u+i,h)),(()=>this.computeCorner(l,u,h+r)),(()=>this.computeCorner(l+r,u,h+r)),(()=>this.computeCorner(l,u+i,h+r)),(()=>this.computeCorner(l+r,u+i,h+r)))}computeCorner(e,s,r){return T(this.values,`${e} ${s} ${r}`,(()=>this.wrapped.compute(t.context(e,s,r))))}mapAll(t){return t.map(new m(this.wrapped.mapAll(t)))}withCellSize(t,e){return new m(this.wrapped,t,e)}}t.Interpolated=m;class d extends t{constructor(t,e,s,r){super(),this.xzScale=t,this.yScale=e,this.noiseData=s,this.noise=r}compute(t){var e,s;return null!=(s=null==(e=this.noise)?void 0:e.sample(t.x*this.xzScale,t.y*this.yScale,t.z*this.xzScale))?s:0}maxValue(){var t,e;return null!=(e=null==(t=this.noise)?void 0:t.maxValue)?e:2}}t.Noise=d;class p extends t{compute(){return 0}minValue(){return-.84375}maxValue(){return.5625}}const g=[\"type_1\",\"type_2\"],v=class extends e{constructor(t,e,s,r){super(t),this.rarityValueMapper=e,this.noiseData=s,this.noise=r,this.mapper=v.ValueMapper[this.rarityValueMapper]}transform(t,e){if(!this.noise)return 0;const s=this.mapper(e);return s*Math.abs(this.noise.sample(t.x/s,t.y/s,t.z/s))}mapAll(t){return t.map(new v(this.input.mapAll(t),this.rarityValueMapper,this.noiseData,this.noise))}minValue(){return 0}maxValue(){return\"type_1\"===this.rarityValueMapper?2:3}static rarityValueMapper1(t){return t<-.5?.75:t<0?1:t<.5?1.5:2}static rarityValueMapper2(t){return t<-.75?.5:t<-.5?.75:t<.5?1:t<.75?2:3}};let w=v;w.ValueMapper={type_1:v.rarityValueMapper1,type_2:v.rarityValueMapper2},t.WeirdScaledSampler=w;class b extends d{constructor(t,e,s,r,i,n,o){super(r,i,n,o),this.shiftX=t,this.shiftY=e,this.shiftZ=s}compute(t){var e,s;const r=t.x*this.xzScale+this.shiftX.compute(t),i=t.y*this.yScale+this.shiftY.compute(t),n=t.z*this.xzScale+this.shiftZ.compute(t);return null!=(s=null==(e=this.noise)?void 0:e.sample(r,i,n))?s:0}mapAll(t){return t.map(new b(this.shiftX.mapAll(t),this.shiftY.mapAll(t),this.shiftZ.mapAll(t),this.xzScale,this.yScale,this.noiseData,this.noise))}}t.ShiftedNoise=b;class x extends t{constructor(t,e,s,r,i){super(),this.input=t,this.minInclusive=e,this.maxExclusive=s,this.whenInRange=r,this.whenOutOfRange=i}compute(t){const e=this.input.compute(t);return this.minInclusive<=e&&e<this.maxExclusive?this.whenInRange.compute(t):this.whenOutOfRange.compute(t)}mapAll(t){return t.map(new x(this.input.mapAll(t),this.minInclusive,this.maxExclusive,this.whenInRange.mapAll(t),this.whenOutOfRange.mapAll(t)))}minValue(){return Math.min(this.whenInRange.minValue(),this.whenOutOfRange.minValue())}maxValue(){return Math.max(this.whenInRange.maxValue(),this.whenOutOfRange.maxValue())}}t.RangeChoice=x;class S extends t{constructor(t,e){super(),this.noiseData=t,this.offsetNoise=e}compute(t){var e,s;return null!=(s=null==(e=this.offsetNoise)?void 0:e.sample(.25*t.x,.25*t.y,.25*t.z))?s:0}maxValue(){var t,e;return 4*(null!=(e=null==(t=this.offsetNoise)?void 0:t.maxValue)?e:2)}}t.ShiftNoise=S;class _ extends S{constructor(t,e){super(t,e)}compute(e){return super.compute(t.context(e.x,0,e.z))}withNewNoise(t){return new _(this.noiseData,t)}}t.ShiftA=_;class A extends S{constructor(t,e){super(t,e)}compute(e){return super.compute(t.context(e.z,e.x,0))}withNewNoise(t){return new A(this.noiseData,t)}}t.ShiftB=A;class y extends S{constructor(t,e){super(t,e)}withNewNoise(t){return new y(this.noiseData,t)}}t.Shift=y;class E extends e{constructor(t){super(t)}transform(t,e){return e}mapAll(t){return t.map(new E(this.input.mapAll(t)))}minValue(){return-1/0}maxValue(){return 1/0}}t.BlendDensity=E;class I extends e{constructor(t,e,s){super(t),this.min=e,this.max=s}transform(t,e){return $(e,this.min,this.max)}mapAll(t){return t.map(new I(this.input.mapAll(t),this.min,this.max))}minValue(){return this.min}maxValue(){return this.max}}t.Clamp=I;const N=class extends e{constructor(t,e,s,r){super(e),this.type=t,this.min=s,this.max=r,this.transformer=N.MappedTypes[this.type]}transform(t,e){return this.transformer(e)}mapAll(t){return t.map(new N(this.type,this.input.mapAll(t)))}minValue(){var t;return null!=(t=this.min)?t:-1/0}maxValue(){var t;return null!=(t=this.max)?t:1/0}withMinMax(){const t=this.input.minValue();let e=this.transformer(t),s=this.transformer(this.input.maxValue());return\"abs\"!==this.type&&\"square\"!==this.type||(s=Math.max(e,s),e=Math.max(0,t)),new N(this.type,this.input,e,s)}};let R=N;R.MappedTypes={abs:t=>Math.abs(t),square:t=>t*t,cube:t=>t*t*t,half_negative:t=>t>0?t:.5*t,quarter_negative:t=>t>0?t:.25*t,squeeze:t=>{const e=$(t,-1,1);return e/2-e*e*e/24}},t.Mapped=R;class M extends e{constructor(t,e){super(t),this.settings=e}transform(t,e){return this.settings?ne.applySlides(this.settings,e,t.y):e}mapAll(t){return t.map(new M(this.input.mapAll(t),this.settings))}minValue(){return this.settings?Math.min(this.input.minValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.minValue()}maxValue(){return this.settings?Math.max(this.input.maxValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.maxValue()}}t.Slide=M;const O=[\"add\",\"mul\",\"min\",\"max\"];class k extends t{constructor(t,e,s,r,i){super(),this.type=t,this.argument1=e,this.argument2=s,this.min=r,this.max=i}compute(t){const e=this.argument1.compute(t);switch(this.type){case\"add\":return e+this.argument2.compute(t);case\"mul\":return 0===e?0:e*this.argument2.compute(t);case\"min\":return e<this.argument2.minValue()?e:Math.min(e,this.argument2.compute(t));case\"max\":return e>this.argument2.maxValue()?e:Math.max(e,this.argument2.compute(t))}}mapAll(t){return t.map(new k(this.type,this.argument1.mapAll(t),this.argument2.mapAll(t)))}minValue(){var t;return null!=(t=this.min)?t:-1/0}maxValue(){var t;return null!=(t=this.max)?t:1/0}withMinMax(){const t=this.argument1.minValue(),e=this.argument2.minValue(),s=this.argument1.maxValue(),r=this.argument2.maxValue();let i,n;switch(\"min\"!==this.type&&\"max\"!==this.type||!(t>=r||e>=s)||console.warn(`Creating a ${this.type} function between two non-overlapping inputs`),this.type){case\"add\":i=t+e,n=s+r;break;case\"mul\":i=t>0&&e>0?t*e||0:s<0&&r<0?s*r||0:Math.min(t*r||0,e*s||0),n=t>0&&e>0?s*r||0:s<0&&r<0?t*e||0:Math.max(t*e||0,s*r||0);break;case\"min\":i=Math.min(t,e),n=Math.min(s,r);break;case\"max\":i=Math.max(t,e),n=Math.max(s,r)}return new k(this.type,this.argument1,this.argument2,i,n)}}t.Ap2=k;class P extends t{constructor(t,e,s){super(),this.spline=t,this.min=e,this.max=s}compute(t){return $(this.spline.compute(t),this.min,this.max)}mapAll(e){return e.map(new P(this.spline.mapAll((s=>s instanceof t?s.mapAll(e):s)),this.min,this.max))}minValue(){return this.min}maxValue(){return this.max}}t.Spline=P;const L=[\"offset\",\"factor\",\"jaggedness\"];class F extends t{constructor(t,e,s,r,i,n,o){super(),this.continentalness=t,this.erosion=e,this.weirdness=s,this.spline=r,this.min=i,this.max=n,this.shaper=o}compute(t){if(!this.shaper)return 0;const e=ie.point(this.continentalness.compute(t),this.erosion.compute(t),this.weirdness.compute(t));return $(this.shaper[this.spline](e),this.min,this.max)}mapAll(t){return t.map(new F(this.continentalness.mapAll(t),this.erosion.mapAll(t),this.weirdness.mapAll(t),this.spline,this.min,this.max,this.shaper))}minValue(){return this.min}maxValue(){return this.max}}t.TerrainShaperSpline=F;class V extends t{constructor(t,e,s,r){super(),this.fromY=t,this.toY=e,this.fromValue=s,this.toValue=r}compute(t){return lt(t.y,this.fromY,this.toY,this.fromValue,this.toValue)}minValue(){return Math.min(this.fromValue,this.toValue)}maxValue(){return Math.max(this.fromValue,this.toValue)}}t.YClampedGradient=V}(he||(he={}));class ce{constructor(t,e){this.level=t,this.type=e}at(t){return t<this.level?this.type:G.AIR}}(ue||(ue={})).createDisabled=function(t){return{compute({x:e,y:s,z:r},i){if(!(i>0))return t(e,s,r).at(s)}}};const fe=class{constructor(t,e,s,r,i,n,o,a,u,h){this.noiseChunk=t,this.barrierNoise=s,this.fluidLevelFloodednessNoise=r,this.fluidLevelSpreadNoise=i,this.lavaNoise=n,this.random=o,this.globalFluidPicker=h,this.minGridX=this.gridX(X.minBlockX(e))-1,this.gridSizeX=this.gridX(X.maxBlockX(e))+1-this.minGridX+1,this.minGridY=this.gridY(a)-1,this.minGridZ=this.gridZ(X.minBlockZ(e))-1,this.gridSizeZ=this.gridZ(X.maxBlockZ(e))+1-this.minGridZ+1;const c=this.gridY(a+u)+1-this.minGridY+1;this.gridSize=this.gridSizeX*c*this.gridSizeZ,this.aquiferCache=Array(this.gridSize).fill(void 0),this.aquiferLocationCache=Array(this.gridSize).fill(l.ZERO)}compute({x:t,y:e,z:s},r){if(r<=0){if(this.globalFluidPicker(t,e,s).at(e).is(G.LAVA))return G.LAVA;{const i=this.gridX(t-5),n=this.gridY(e+1),o=this.gridZ(s-5);let a=Number.MAX_SAFE_INTEGER,u=Number.MAX_SAFE_INTEGER,h=Number.MAX_SAFE_INTEGER,c=l.ZERO,f=l.ZERO,m=l.ZERO;for(let t=0;t<=1;t+=1)for(let e=-1;e<=1;e+=1)for(let s=0;s<=1;s+=1){const r=this.getLocation(i+t,n+e,o+s),d=l.magnitude(r);a>=d?(m=f,f=c,c=r,h=u,u=a,a=d):u>=d?(m=f,f=r,h=u,u=d):h>=d&&(m=r,h=d)}const d=this.getStatus(c),p=this.getStatus(f),g=this.getStatus(m),v=fe.similarity(a,u),w=fe.similarity(a,h),b=fe.similarity(u,h);let x;if(d.at(e).is(G.WATER)&&this.globalFluidPicker(t,e-1,s).at(e-1).is(G.LAVA))x=1;else if(v>-1){const r=R((()=>this.barrierNoise.compute(he.context(t,.5*e,s)))),i=this.calculatePressure(e,d,p,r),n=this.calculatePressure(e,d,g,r),o=this.calculatePressure(e,p,g,r),a=Math.max(i,n*Math.max(0,w),o*Math.max(b));x=Math.max(0,2*Math.max(0,v)*a)}else x=0;if(r+x<=0)return d.at(e)}}}static similarity(t,e){return 1-Math.abs(e-t)/25}calculatePressure(t,e,s,r){const i=e.at(t),n=s.at(t);if(i.is(G.LAVA)&&n.is(G.WATER)||i.is(G.WATER)&&n.is(G.LAVA))return 1;const o=Math.abs(e.level-s.level);if(0===o)return 0;const a=t+.5-(e.level+s.level)/2,l=o/2-Math.abs(a),u=a>0?l>0?l/1.5:l/2.5:l>-3?(l+3)/3:(l+3)/10;return u<-2||u>2?u:u+r()}getStatus(t){const[e,s,r]=t,i=this.getIndex(this.gridX(e),this.gridY(s),this.gridZ(r)),n=this.aquiferCache[i];if(void 0!==n)return n;const o=this.computeStatus(e,s,r);return this.aquiferCache[i]=o,o}computeStatus(t,e,s){const r=this.globalFluidPicker(t,e,s);let i=Number.MAX_SAFE_INTEGER,n=!1;for(const[o,a]of fe.SURFACE_SAMPLING){const l=t+(a<<4),u=s+(a<<4),h=this.noiseChunk.getPreliminarySurfaceLevel(l,u);i=Math.min(i,h);const c=0===o&&0===a;if(c&&e-12>h+8)return r;if(c||e+12>h+8){const t=this.globalFluidPicker(l,h+8,u);if(!t.at(h+8).is(G.AIR)){if(c)return t;n=!0}}}const o=n?lt(i+8-e,0,64,1,0):0,a=$(this.fluidLevelFloodednessNoise.compute(he.context(t,.67*e,s)),-1,1);if(a>at(o,1,0,-.3,.8))return r;if(a<=at(o,1,0,-.8,.4))return new ce(Number.MIN_SAFE_INTEGER,r.type);const l=Math.floor(e/40),u=this.fluidLevelSpreadNoise.compute(he.context(Math.floor(t/16),l,Math.floor(s/16))),h=40*l+20+3*Math.floor(u/3),c=Math.min(i,h),f=this.getFluidType(t,e,s,r.type,h);return new ce(c,f)}getFluidType(t,e,s,r,i){if(i<=-10){const r=this.lavaNoise.compute(he.context(Math.floor(t/64),Math.floor(e/40),Math.floor(s/64)));if(Math.abs(r)>.3)return G.LAVA}return r}getLocation(t,e,s){const r=this.getIndex(t,e,s),i=this.aquiferLocationCache[r];if(l.equals(i,l.ZERO))return i;const n=this.random.at(t,e,s),o=l.create(t*fe.X_SPACING+n.nextInt(10),e*fe.Y_SPACING+n.nextInt(9),s*fe.Z_SPACING+n.nextInt(10));return this.aquiferLocationCache[r]=o,o}getIndex(t,e,s){const r=t-this.minGridX,i=e-this.minGridY,n=s-this.minGridZ,o=(i*this.gridSizeZ+n)*this.gridSizeX+r;if(o<0||o>=this.gridSize)throw new Error(`Invalid aquifer index at ${t} ${e} ${s}: 0 <= ${o} < ${this.gridSize}`);return o}gridX(t){return Math.floor(t/fe.X_SPACING)}gridY(t){return Math.floor(t/fe.Y_SPACING)}gridZ(t){return Math.floor(t/fe.Z_SPACING)}};let me=fe;var de,pe;me.X_SPACING=16,me.Y_SPACING=12,me.Z_SPACING=16,me.SURFACE_SAMPLING=[[-2,-1],[-1,-1],[0,-1],[1,-1],[-3,0],[-2,0],[-1,0],[0,0],[1,0],[-2,1],[-1,1],[0,1],[1,1]],function(t){function e(t,e){return\"number\"==typeof t?new s(t,null!=e?e:t):t}t.target=function(t,e,s,r,n,o){return new i(t,e,s,r,n,o)},t.parameters=function(t,s,i,n,o,a,l){return new r(e(t),e(s),e(i),e(n),e(o),e(a),l)},t.param=e;class s{constructor(t,e){this.min=t,this.max=e}distance(t){const e=(\"number\"==typeof t?t:t.min)-this.max,s=this.min-(\"number\"==typeof t?t:t.max);return e>0?e:Math.max(s,0)}union(t){return new s(Math.min(this.min,t.min),Math.max(this.max,t.max))}static fromJson(t){var e;if(\"number\"==typeof t)return new s(t,t);const[r,i]=null!=(e=B.readArray(t,(t=>B.readNumber(t))))?e:[];return new s(null!=r?r:0,null!=i?i:0)}}t.Param=s;class r{constructor(t,e,s,r,i,n,o){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=r,this.depth=i,this.weirdness=n,this.offset=o}fittness(t){return W(this.temperature.distance(t.temperature))+W(this.humidity.distance(t.humidity))+W(this.continentalness.distance(t.continentalness))+W(this.erosion.distance(t.erosion))+W(this.depth.distance(t.depth))+W(this.weirdness.distance(t.weirdness))+W(this.offset-t.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new s(this.offset,this.offset)]}static fromJson(t){var e,i;const n=null!=(e=B.readObject(t))?e:{};return new r(s.fromJson(n.temperature),s.fromJson(n.humidity),s.fromJson(n.continentalness),s.fromJson(n.erosion),s.fromJson(n.depth),s.fromJson(n.weirdness),null!=(i=B.readInt(n.offset))?i:0)}}t.ParamPoint=r;class i{constructor(t,e,s,r,i,n){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=r,this.depth=i,this.weirdness=n}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}t.TargetPoint=i;t.Parameters=class{constructor(t){this.things=t,this.index=new o(t)}find(t){return this.index.search(t,((t,e)=>t.distance(e)))}};t.Sampler=class{constructor(t,e,s,r,i,n){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=r,this.depth=i,this.weirdness=n}static fromRouter(e){return new t.Sampler(e.temperature,e.vegetation,e.continents,e.erosion,e.depth,e.ridges)}sample(e,s,r){const i=he.context(e<<2,s<<2,r<<2);return t.target(this.temperature.compute(i),this.humidity.compute(i),this.continentalness.compute(i),this.erosion.compute(i),this.depth.compute(i),this.weirdness.compute(i))}};const n=class{constructor(t){this.root=n.build(t.map((([t,e])=>new u(t,e))))}static build(t){if(1===t.length)return t[0];if(t.length<=n.CHILDREN_PER_NODE){const e=t.map((t=>{let e=0;for(let s=0;s<7;s+=1){const r=t.space[s];e+=Math.abs((r.min+r.max)/2)}return{key:e,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t));return new l(e)}let e=1/0,s=-1,r=[];for(let i=0;i<7;++i){t=n.sort(t,i,!1),r=n.bucketize(t);let o=0;for(const t of r)o+=n.area(t.space);e>o&&(e=o,s=i)}return t=n.sort(t,s,!1),r=n.bucketize(t),r=n.sort(r,s,!0),new l(r.map((t=>n.build(t.children))))}static sort(t,e,s){return t.map((t=>{const r=t.space[e],i=(r.min+r.max)/2;return{key:s?Math.abs(i):i,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t))}static bucketize(t){const e=[];let s=[];const r=Math.pow(10,Math.floor(Math.log(t.length-.01)/Math.log(10)));for(const i of t)s.push(i),s.length<r||(e.push(new l(s)),s=[]);return 0!==s.length&&e.push(new l(s)),e}static area(t){let e=0;for(const s of t)e+=Math.abs(s.max-s.min);return e}search(t,e){return this.root.search(t.toArray(),e).thing()}};let o=n;o.CHILDREN_PER_NODE=10,t.RTree=o;class a{constructor(t){this.space=t}distance(t){let e=0;for(let s=0;s<7;s+=1)e+=W(this.space[s].distance(t[s]));return e}}t.RNode=a;class l extends a{constructor(t){super(l.buildSpace(t)),this.children=t}static buildSpace(t){let e=[...Array(7)].map((()=>new s(1/0,-1/0)));for(const s of t)e=[...Array(7)].map(((t,r)=>e[r].union(s.space[r])));return e}search(t,e){let s=1/0,r=null;for(const i of this.children){const n=e(i,t);if(s<=n)continue;const o=i.search(t,e),a=i==o?n:e(o,t);s<=a||(s=a,r=o)}return r}}t.RSubTree=l;class u extends a{constructor(t,e){super(t.space()),this.thing=e}search(){return this}}t.RLeaf=u}(de||(de={}));class ge{constructor(t){this.biome=t}getBiome(){return this.biome}static fromJson(t){var e,s;const r=null!=(e=B.readObject(t))?e:{},i=C.parse(null!=(s=B.readString(r.biome))?s:\"minecraft:the_void\");return new ge(i)}}class ve{constructor(t){this.parameters=t}getBiome(t,e,s,r){const i=r.sample(t,e,s);return this.parameters.find(i)}static fromJson(t){var e,s;const r=null!=(e=B.readObject(t))?e:{},i=(null!=(s=B.readArray(r.biomes,(t=>{var e,s,r;return s=null!=(e=B.readObject(t))?e:{},{biome:C.parse(null!=(r=B.readString(s.biome))?r:\"minecraft:the_void\"),parameters:de.ParamPoint.fromJson(s.parameters)}})))?s:[]).map((t=>[t.parameters,()=>t.biome]));return new ve(new de.Parameters(i))}}!function(t){function e(t,e,s){return le.NOISE.register(C.create(t),Nt.create(e,s))}t.TEMPERATURE=e(\"temperature\",-10,[1.5,0,1,0,0,0]),t.VEGETATION=e(\"vegetation\",-8,[1,1,0,0,0,0]),t.CONTINENTALNESS=e(\"continentalness\",-9,[1,1,2,2,2,1,1,1,1]),t.EROSION=e(\"erosion\",-9,[1,1,0,1,1]),t.TEMPERATURE_LARGE=e(\"temperature_large\",-12,[1.5,0,1,0,0,0]),t.VEGETATION_LARGE=e(\"vegetation_large\",-10,[1,1,0,0,0,0]),t.CONTINENTALNESS_LARGE=e(\"continentalness_large\",-11,[1,1,2,2,2,1,1,1,1]),t.EROSION_LARGE=e(\"erosion_large\",-11,[1,1,0,1,1]),t.RIDGE=e(\"ridge\",-7,[1,2,1,0,0,0]),t.SHIFT=e(\"offset\",-3,[1,1,1,0]),t.AQUIFER_BARRIER=e(\"aquifer_barrier\",-3,[1]),t.AQUIFER_FLUID_LEVEL_FLOODEDNESS=e(\"aquifer_fluid_level_floodedness\",-7,[1]),t.AQUIFER_FLUID_LEVEL_SPREAD=e(\"aquifer_fluid_level_spread\",-5,[1]),t.AQUIFER_LAVA=e(\"aquifer_lava\",-1,[1]),t.PILLAR=e(\"pillar\",-7,[1,1]),t.PILLAR_RARENESS=e(\"pillar_rareness\",-8,[1]),t.PILLAR_THICKNESS=e(\"pillar_thickness\",-8,[1]),t.SPAGHETTI_2D=e(\"spaghetti_2d\",-8,[1]),t.SPAGHETTI_2D_ELEVATION=e(\"spaghetti_2d_elevation\",-8,[1]),t.SPAGHETTI_2D_MODULATOR=e(\"spaghetti_2d_modulator\",-8,[1]),t.SPAGHETTI_2D_THICKNESS=e(\"spaghetti_2d_thickness\",-8,[1]),t.SPAGHETTI_3D_1=e(\"spaghetti_3d_1\",-8,[1]),t.SPAGHETTI_3D_2=e(\"spaghetti_3d_2\",-8,[1]),t.SPAGHETTI_3D_RARITY=e(\"spaghetti_3d_rarity\",-8,[1]),t.SPAGHETTI_3D_THICKNESS=e(\"spaghetti_3d_thickness\",-8,[1]),t.SPAGHETTI_ROUGHNESS=e(\"spaghetti_roughness\",-8,[1]),t.SPAGHETTI_ROUGHNESS_MODULATOR=e(\"spaghetti_roughness_modulator\",-8,[1]),t.CAVE_ENTRANCE=e(\"cave_entrance\",-7,[.4,.5,1]),t.CAVE_LAYER=e(\"cave_layer\",-8,[1]),t.CAVE_CHEESE=e(\"cave_cheese\",-8,[.5,1,2,1,2,1,0,2,0]),t.NOODLE=e(\"noodle\",-8,[1]),t.NOODLE_THICKNESS=e(\"noodle_thickness\",-8,[1]),t.NOODLE_RIDGE_A=e(\"noodle_ridge_a\",-7,[1]),t.NOODLE_RIDGE_B=e(\"noodle_ridge_b\",-7,[1]),t.JAGGED=e(\"jagged\",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),t.SURFACE=e(\"surface\",-6,[1,1,1]),t.SURFACE_SECONDARY=e(\"surface_secondary\",-6,[1,1,0,1]);const s=new Map;t.instantiate=function(t,e){var r;const i=null==(r=e.key())?void 0:r.toString();if(!i)throw new Error(\"Cannot instantiate noise from direct holder\");const n=t.seedKey(),o=s.get(i);if(o&&o[0]===n[0]&&o[1]===n[1])return o[2];const a=new It(t.fromHashOf(i),e.value());return s.set(i,[n[0],n[1],a]),a}}(pe||(pe={}));var we,be,xe,Se,_e,Ae,ye,Ee=Object.defineProperty,Ie=Object.defineProperties,Ne=Object.getOwnPropertyDescriptors,Be=Object.getOwnPropertySymbols,Re=Object.prototype.hasOwnProperty,Te=Object.prototype.propertyIsEnumerable,Me=(t,e,s)=>e in t?Ee(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,Ce=(t,e)=>{for(var s in e||(e={}))Re.call(e,s)&&Me(t,s,e[s]);if(Be)for(var s of Be(e))Te.call(e,s)&&Me(t,s,e[s]);return t};!function(t){const e=t=>j.parser(le.DENSITY_FUNCTION,he.fromJson)(t).value();t.fromJson=function(t){var s;const r=null!=(s=B.readObject(t))?s:{};return{barrier:e(r.barrier),fluidLevelFloodedness:e(r.fluid_level_floodedness),fluidLevelSpread:e(r.fluid_level_spread),lava:e(r.lava),temperature:e(r.temperature),vegetation:e(r.vegetation),continents:e(r.continents),erosion:e(r.erosion),depth:e(r.depth),ridges:e(r.ridges),initialDensityWithoutJaggedness:e(r.initial_density_without_jaggedness),finalDensity:e(r.final_density),veinToggle:e(r.vein_toggle),veinRidged:e(r.vein_ridged),veinGap:e(r.vein_gap)}},t.create=function(t){return Ce({barrier:he.Constant.ZERO,fluidLevelFloodedness:he.Constant.ZERO,fluidLevelSpread:he.Constant.ZERO,lava:he.Constant.ZERO,temperature:he.Constant.ZERO,vegetation:he.Constant.ZERO,continents:he.Constant.ZERO,erosion:he.Constant.ZERO,depth:he.Constant.ZERO,ridges:he.Constant.ZERO,initialDensityWithoutJaggedness:he.Constant.ZERO,finalDensity:he.Constant.ZERO,veinToggle:he.Constant.ZERO,veinRidged:he.Constant.ZERO,veinGap:he.Constant.ZERO},t)},t.withSettings=function(t,e,r,i=!1){const n=(i?new dt(r):vt.create(r)).forkPositional(),o=new s(n,e);return a=Ce({},o.mapAll(t)),l={aquiferPositionalRandomFactory:n.fromHashOf(C.create(\"aquifer\").toString()).forkPositional(),oreVeinsPositionalRandomFactory:n.fromHashOf(C.create(\"ore\").toString()).forkPositional()},Ie(a,Ne(l));var a,l};class s{constructor(t,e){this.random=t,this.settings=e,this.mapped=new Map}map(t){if(t instanceof he.HolderHolder){const e=t.holder.key();if(void 0!==e&&this.mapped.has(e.toString()))return this.mapped.get(e.toString());{const s=t.holder.value().mapAll(this);return void 0!==e&&this.mapped.set(e.toString(),s),s}}if(t instanceof he.Interpolated)return t.withCellSize(ne.cellWidth(this.settings),ne.cellHeight(this.settings));if(t instanceof he.Noise)return new he.Noise(t.xzScale,t.yScale,t.noiseData,pe.instantiate(this.random,t.noiseData));if(t instanceof he.ShiftNoise)return t.withNewNoise(pe.instantiate(this.random,t.noiseData));if(t instanceof he.ShiftedNoise){const e=pe.instantiate(this.random,t.noiseData);return new he.ShiftedNoise(t.shiftX,t.shiftY,t.shiftZ,t.xzScale,t.yScale,t.noiseData,e)}return t instanceof he.WeirdScaledSampler?new he.WeirdScaledSampler(t.input,t.rarityValueMapper,t.noiseData,pe.instantiate(this.random,t.noiseData)):t instanceof he.OldBlendedNoise?new he.OldBlendedNoise(new At(this.random.fromHashOf(C.create(\"terrain\").toString()),this.settings.sampling,ne.cellWidth(this.settings),ne.cellHeight(this.settings))):t instanceof he.Mapped||t instanceof he.Ap2?t.withMinMax():t instanceof he.TerrainShaperSpline?new he.TerrainShaperSpline(t.continentalness,t.erosion,t.weirdness,t.spline,t.min,t.max,this.settings.terrainShaper):t instanceof he.Slide?new he.Slide(t.input,this.settings):t}mapAll(t){return{barrier:t.barrier.mapAll(this),fluidLevelFloodedness:t.fluidLevelFloodedness.mapAll(this),fluidLevelSpread:t.fluidLevelSpread.mapAll(this),lava:t.lava.mapAll(this),temperature:t.temperature.mapAll(this),vegetation:t.vegetation.mapAll(this),continents:t.continents.mapAll(this),erosion:t.erosion.mapAll(this),depth:t.depth.mapAll(this),ridges:t.ridges.mapAll(this),initialDensityWithoutJaggedness:t.initialDensityWithoutJaggedness.mapAll(this),finalDensity:t.finalDensity.mapAll(this),veinToggle:t.veinToggle.mapAll(this),veinRidged:t.veinRidged.mapAll(this),veinGap:t.veinGap.mapAll(this)}}}t.Visitor=s,t.computePreliminarySurfaceLevelScanning=function(t,e,s,r){const i=ne.minCellY(t)+ne.cellCountY(t),n=ne.minCellY(t),o=ne.cellHeight(t);for(let a=i;a>=n;a-=1){const i=a*o,n=$(e.compute(he.context(s,i,r)),-64,64);if(ne.applySlides(t,n,i)>=.390625)return i}return Number.MAX_SAFE_INTEGER}}(we||(we={}));class Oe{constructor(t,e,s,r,i,n,o,a,l){this.cellCountXZ=t,this.cellCountY=e,this.cellNoiseMinY=s,this.router=r,this.minX=i,this.minZ=n,this.settings=o,this.preliminarySurfaceLevel=new Map,this.cellWidth=ne.cellWidth(o),this.cellHeight=ne.cellHeight(o),this.firstCellX=Math.floor(i/this.cellWidth),this.firstCellZ=Math.floor(n/this.cellWidth),this.firstNoiseX=i>>2,this.firstNoiseZ=n>>2,this.noiseSizeXZ=t*this.cellWidth>>2,this.aquifer=ue.createDisabled(l);const u=this.router.finalDensity;this.materialRule=be.fromList([t=>this.aquifer.compute(t,u.compute(t))]),this.initialDensityWithoutJaggedness=this.router.initialDensityWithoutJaggedness}getFinalState(t,e,s){return this.materialRule({x:t,y:e,z:s})}getPreliminarySurfaceLevel(t,e){return T(this.preliminarySurfaceLevel,X.asLong(t,e),(()=>we.computePreliminarySurfaceLevelScanning(this.settings,this.initialDensityWithoutJaggedness,t<<2,e<<2)))}getAquifer(){return this.aquifer}}(be||(be={})).fromList=function(t){return e=>{for(const s of t){const t=s(e);if(t)return t}}},(xe||(xe={})).fromJson=function(t){var e,s,r,i;const n=null!=(e=B.readObject(t))?e:{};return void 0!==n.absolute?(o=null!=(s=B.readNumber(n.absolute))?s:0,()=>o):void 0!==n.above_bottom?function(t){return e=>e.minY+t}(null!=(r=B.readNumber(n.above_bottom))?r:0):void 0!==n.below_top?function(t){return e=>e.maxY-t}(null!=(i=B.readNumber(n.below_top))?i:0):()=>0;var o},(Se||(Se={})).create=function(t,e){return{minY:t,height:e,maxY:t+e-1}};class ke{constructor(t,e,s){this.rule=t,this.defaultBlock=e,this.random=vt.create(s).forkPositional(),this.surfaceNoise=pe.instantiate(this.random,pe.SURFACE),this.surfaceSecondaryNoise=pe.instantiate(this.random,pe.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(t,e,s,r){const i=X.minBlockX(t.pos),n=X.minBlockZ(t.pos),o=new Pe(this,t,e,s,r),a=this.rule(o);for(let e=0;e<16;e+=1){const s=i+e;for(let e=0;e<1;e+=1){const r=n+e;o.updateXZ(s,r);let i=0,u=Number.MIN_SAFE_INTEGER,h=Number.MAX_SAFE_INTEGER;for(let e=t.maxY;e>=t.minY;e-=1){const n=l.create(s,e,r),c=t.getBlockState(n);if(c.equals(G.AIR)){i=0,u=Number.MIN_SAFE_INTEGER;continue}if(c.isFluid()){u===Number.MIN_SAFE_INTEGER&&(u=e+1);continue}if(h>=e){h=Number.MIN_SAFE_INTEGER;for(let i=e-1;i>=t.minY;i-=1){const e=t.getBlockState(l.create(s,i,r));if(e.equals(G.AIR)||e.isFluid()){h=i+1;break}}}i+=1;const f=e-h+1;if(!c.equals(this.defaultBlock))continue;o.updateY(i,f,u,e);const m=a(s,e,r);m&&t.setBlockState(n,m)}}}}getSurfaceDepth(t,e){return 2.75*this.surfaceNoise.sample(t,0,e)+3+.25*this.random.at(t,0,e).nextDouble()}getSurfaceSecondary(t,e){return this.surfaceSecondaryNoise.sample(t,0,e)}getRandom(t){return T(this.positionalRandoms,t,(()=>this.random.fromHashOf(t)))}}class Pe{constructor(t,e,s,r,i){this.system=t,this.chunk=e,this.noiseChunk=s,this.context=r,this.getBiome=i,this.blockX=0,this.blockY=0,this.blockZ=0,this.stoneDepthAbove=0,this.stoneDepthBelow=0,this.surfaceDepth=0,this.waterHeight=0,this.biome=()=>\"\",this.surfaceSecondary=()=>0,this.minSurfaceLevel=()=>0}updateXZ(t,e){this.blockX=t,this.blockZ=e,this.surfaceDepth=this.system.getSurfaceDepth(t,e),this.surfaceSecondary=R((()=>this.system.getSurfaceSecondary(t,e))),this.minSurfaceLevel=R((()=>this.calculateMinSurfaceLevel(t,e)))}updateY(t,e,s,r){this.blockY=r,this.stoneDepthAbove=t,this.stoneDepthBelow=e,this.waterHeight=s,this.biome=R((()=>this.getBiome(l.create(this.blockX,this.blockY,this.blockZ))))}calculateMinSurfaceLevel(t,e){const s=t>>4,r=e>>4,i=this.noiseChunk.getPreliminarySurfaceLevel(s<<4,r<<4),n=this.noiseChunk.getPreliminarySurfaceLevel(s+1<<4,r<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(s<<4,r+1<<4),a=this.noiseChunk.getPreliminarySurfaceLevel(s+1<<4,r+1<<4);return Math.floor(Q((15&t)/16,(15&e)/16,i,n,o,a))+this.surfaceDepth-8}}!function(t){function e(t){return()=>()=>t}function s(t){return e=>{const s=t.map((t=>t(e)));return(t,e,r)=>{for(const i of s){const s=i(t,e,r);if(s)return s}}}}function r(t,e){return s=>(r,i,n)=>{if(t(s))return e(s)(r,i,n)}}t.NOOP=()=>()=>{},t.fromJson=function(i){var n,o,a;const l=null!=(n=B.readObject(i))?n:{};switch(null==(o=B.readString(l.type))?void 0:o.replace(/^minecraft:/,\"\")){case\"block\":return e(G.fromJson(l.result_state));case\"sequence\":return s(null!=(a=B.readArray(l.sequence,t.fromJson))?a:[]);case\"condition\":return r(Ae.fromJson(l.if_true),t.fromJson(l.then_run))}return t.NOOP},t.block=e,t.sequence=s,t.condition=r}(_e||(_e={})),function(t){function e(){return t=>t.blockY>=t.minSurfaceLevel()}function s(t){const e=new Set(t);return t=>e.has(t.biome())}function r(t){return e=>!t(e)}function i(t,e,s,r){return i=>{const n=r?i.stoneDepthBelow:i.stoneDepthAbove,o=e?i.surfaceDepth:0,a=0===s?0:at(i.surfaceSecondary(),-1,1,0,s);return n<=1+t+o+a}}function n(t,e,s){return r=>{const i=e(r.context),n=s(r.context);if(r.blockY<=i)return!0;if(r.blockY>=n)return!1;const o=r.system.getRandom(t),a=at(r.blockY,i,n,1,0);return o.nextFloat()<a}}function o(t,e,s){return r=>{if(r.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const i=s?r.stoneDepthAbove:0;return r.blockY+i>=r.waterHeight+t+r.surfaceDepth*e}}function a(t,e,s){return r=>{const i=s?r.stoneDepthAbove:0;return r.blockY+i>=t(r.context)+r.surfaceDepth*e}}t.FALSE=()=>!1,t.TRUE=()=>!0,t.fromJson=function(e){var l,u,h,c,f,m,d,p,g,v,w,b;const x=null!=(l=B.readObject(e))?l:{};switch(null==(u=B.readString(x.type))?void 0:u.replace(/^minecraft:/,\"\")){case\"above_preliminary_surface\":return t=>t.blockY>=t.minSurfaceLevel();case\"biome\":return s(null!=(h=B.readArray(x.biome_is,(t=>{var e;return null!=(e=B.readString(t))?e:\"\"})))?h:[]);case\"not\":return r(t.fromJson(x.invert));case\"stone_depth\":return i(null!=(c=B.readInt(x.offset))?c:0,null!=(f=B.readBoolean(x.add_surface_depth))&&f,null!=(m=B.readInt(x.secondary_depth_range))?m:0,\"ceiling\"===B.readString(x.surface_type));case\"vertical_gradient\":return n(null!=(d=B.readString(x.random_name))?d:\"\",xe.fromJson(x.true_at_and_below),xe.fromJson(x.false_at_and_above));case\"water\":return o(null!=(p=B.readInt(x.offset))?p:0,null!=(g=B.readInt(x.surface_depth_multiplier))?g:0,null!=(v=B.readBoolean(x.add_surface_depth))&&v);case\"y_above\":return a(xe.fromJson(x.anchor),null!=(w=B.readInt(x.surface_depth_multiplier))?w:0,null!=(b=B.readBoolean(x.add_surface_depth))&&b)}return t.FALSE},t.abovePreliminarySurface=e,t.biome=s,t.not=r,t.stoneDepth=i,t.verticalGradient=n,t.water=o,t.yAbove=a}(Ae||(Ae={}));class Le{constructor(t,e,s){this.biomeSource=e,this.settings=s,this.router=we.withSettings(s.noiseRouter,s.noise,t,s.legacyRandomSource),this.noiseChunkCache=new Map,this.surfaceSystem=new ke(s.surfaceRule,s.defaultBlock,t);const r=new ce(-54,G.LAVA),i=new ce(s.seaLevel,s.defaultFluid);this.globalFluidPicker=(t,e,n)=>e<Math.min(-54,s.seaLevel)?r:i}fill(t,e=!1){var s;const r=Math.max(t.minY,this.settings.noise.minY),i=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),n=ne.cellWidth(this.settings.noise),o=ne.cellHeight(this.settings.noise),a=Math.floor(16/n),l=Math.floor(r/o),u=Math.floor((i-r)/o),h=X.minBlockX(t.pos),c=X.minBlockZ(t.pos),f=this.getNoiseChunk(t);for(let r=0;r<a;r+=1)for(let i=0;i<(e?1:a);i+=1){let a=t.getOrCreateSection(t.sectionsCount-1);for(let m=u-1;m>=0;m-=1)for(let u=o-1;u>=0;u-=1){const d=(l+m)*o+u,p=15&d,g=t.getSectionIndex(d);t.getSectionIndex(a.minBlockY)!==g&&(a=t.getOrCreateSection(g));for(let t=0;t<n;t+=1){const o=h+r*n+t,l=15&o;for(let t=0;t<(e?1:n);t+=1){const e=c+i*n+t,r=15&e,u=null!=(s=f.getFinalState(o,d,e))?s:this.settings.defaultBlock;a.setBlockState(l,p,r,u)}}}}}buildSurface(t,e=\"minecraft:plains\"){const s=this.getNoiseChunk(t),r=Se.create(this.settings.noise.minY,this.settings.noise.height);this.surfaceSystem.buildSurface(t,s,r,(()=>e))}getNoiseChunk(t){return T(this.noiseChunkCache,X.toLong(t.pos),(()=>{const e=Math.max(t.minY,this.settings.noise.minY),s=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),r=ne.cellWidth(this.settings.noise),i=ne.cellHeight(this.settings.noise),n=Math.floor(16/r),o=Math.floor(e/i),a=Math.floor((s-e)/i),l=X.minBlockX(t.pos),u=X.minBlockZ(t.pos);return new Oe(n,a,o,this.router,l,u,this.settings.noise,this.settings.aquifersEnabled,this.globalFluidPicker)}))}}(ye||(ye={})).fromJson=function(t){var e,s,r,i,n,o;const a=null!=(e=B.readObject(t))?e:{};return{surfaceRule:_e.fromJson(a.surface_rule),noise:ne.fromJson(a.noise),defaultBlock:G.fromJson(a.default_block),defaultFluid:G.fromJson(a.default_fluid),noiseRouter:we.fromJson(a.noise_router),seaLevel:null!=(s=B.readInt(a.sea_level))?s:0,disableMobGeneration:null!=(r=B.readBoolean(a.disable_mob_generation))&&r,aquifersEnabled:null!=(i=B.readBoolean(a.aquifers_enabled))&&i,oreVeinsEnabled:null!=(n=B.readBoolean(a.ore_veins_enabled))&&n,legacyRandomSource:null!=(o=B.readBoolean(a.legacy_random_source))&&o}};export{ue as Aquifer,At as BlendedNoise,Dt as BlockColors,Yt as BlockDefinition,qt as BlockModel,l as BlockPos,G as BlockState,H as Chunk,X as ChunkPos,Y as ChunkSection,de as Climate,ft as CubicSpline,he as DensityFunction,n as Direction,ge as FixedBiome,ce as FluidStatus,j as Holder,C as Identifier,St as ImprovedNoise,pt as LegacyPositionalRandom,dt as LegacyRandom,be as MaterialRule,ve as MultiNoise,f as NbtReader,m as NbtWriter,me as NoiseAquifer,Oe as NoiseChunk,Le as NoiseChunkGenerator,ye as NoiseGeneratorSettings,Nt as NoiseParameters,we as NoiseRouter,yt as NoiseSamplingSettings,ne as NoiseSettings,oe as NoiseSlideSettings,pe as Noises,It as NormalNoise,_t as PerlinNoise,Rt as PerlinSimplexNoise,q as Registry,xt as SimplexNoise,J as Structure,te as StructureRenderer,Ae as SurfaceCondition,Pe as SurfaceContext,_e as SurfaceRule,ke as SurfaceSystem,ie as TerrainShaper,se as TextureAtlas,xe as VerticalAnchor,Se as WorldgenContext,le as WorldgenRegistries,wt as XoroshiroPositionalRandom,vt as XoroshiroRandom,ut as binarySearch,$ as clamp,it as clampedLerp,lt as clampedMap,I as getListTag,N as getOptional,ht as getSeed,E as getTag,nt as inverseLerp,et as lazyLerp,st as lazyLerp2,rt as lazyLerp3,K as lerp,Q as lerp2,tt as lerp3,ct as longfromBytes,at as map,g as read,w as readChunk,p as readCompressed,v as readRegion,d as readUncompressed,ot as smoothstep,W as square,c as tagNames,h as tagTypes,S as write,A as writeChunk,x as writeCompressed,_ as writeRegion,b as writeUncompressed};\n//# sourceMappingURL=deepslate.esm.js.map\n","\nlet wasm;\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n\ncachedTextDecoder.decode();\n\nlet cachegetUint8Memory0 = null;\nfunction getUint8Memory0() {\n if (cachegetUint8Memory0 === null || cachegetUint8Memory0.buffer !== wasm.memory.buffer) {\n cachegetUint8Memory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachegetUint8Memory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));\n}\n\nconst u32CvtShim = new Uint32Array(2);\n\nconst int64CvtShim = new BigInt64Array(u32CvtShim.buffer);\n\nlet cachegetInt32Memory0 = null;\nfunction getInt32Memory0() {\n if (cachegetInt32Memory0 === null || cachegetInt32Memory0.buffer !== wasm.memory.buffer) {\n cachegetInt32Memory0 = new Int32Array(wasm.memory.buffer);\n }\n return cachegetInt32Memory0;\n}\n\nlet cachegetFloat64Memory0 = null;\nfunction getFloat64Memory0() {\n if (cachegetFloat64Memory0 === null || cachegetFloat64Memory0.buffer !== wasm.memory.buffer) {\n cachegetFloat64Memory0 = new Float64Array(wasm.memory.buffer);\n }\n return cachegetFloat64Memory0;\n}\n\nfunction getArrayF64FromWasm0(ptr, len) {\n return getFloat64Memory0().subarray(ptr / 8, ptr / 8 + len);\n}\n/**\n* @param {BigInt} seed\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function improved_noise(seed, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n wasm.improved_noise(retptr, low0, high0, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v1 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nfunction passArrayF64ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 8);\n getFloat64Memory0().set(arg, ptr / 8);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n/**\n* @param {BigInt} seed\n* @param {number} first_octave\n* @param {Float64Array} amplitudes\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function perlin_noise(seed, first_octave, amplitudes, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n var ptr1 = passArrayF64ToWasm0(amplitudes, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n wasm.perlin_noise(retptr, low0, high0, first_octave, ptr1, len1, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v2 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v2;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {BigInt} seed\n* @param {number} first_octave\n* @param {Float64Array} amplitudes\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function normal_noise(seed, first_octave, amplitudes, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n var ptr1 = passArrayF64ToWasm0(amplitudes, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n wasm.normal_noise(retptr, low0, high0, first_octave, ptr1, len1, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v2 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v2;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\nlet cachegetUint32Memory0 = null;\nfunction getUint32Memory0() {\n if (cachegetUint32Memory0 === null || cachegetUint32Memory0.buffer !== wasm.memory.buffer) {\n cachegetUint32Memory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachegetUint32Memory0;\n}\n\nfunction passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4);\n getUint32Memory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n/**\n* @param {Float64Array} t_min\n* @param {Float64Array} t_max\n* @param {Float64Array} h_min\n* @param {Float64Array} h_max\n* @param {Float64Array} c_min\n* @param {Float64Array} c_max\n* @param {Float64Array} e_min\n* @param {Float64Array} e_max\n* @param {Float64Array} w_min\n* @param {Float64Array} w_max\n* @param {Float64Array} d_min\n* @param {Float64Array} d_max\n* @param {Float64Array} offset\n* @param {Int32Array} biome\n* @returns {ParameterList}\n*/\nexport function biome_parameters(t_min, t_max, h_min, h_max, c_min, c_max, e_min, e_max, w_min, w_max, d_min, d_max, offset, biome) {\n var ptr0 = passArrayF64ToWasm0(t_min, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = passArrayF64ToWasm0(t_max, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n var ptr2 = passArrayF64ToWasm0(h_min, wasm.__wbindgen_malloc);\n var len2 = WASM_VECTOR_LEN;\n var ptr3 = passArrayF64ToWasm0(h_max, wasm.__wbindgen_malloc);\n var len3 = WASM_VECTOR_LEN;\n var ptr4 = passArrayF64ToWasm0(c_min, wasm.__wbindgen_malloc);\n var len4 = WASM_VECTOR_LEN;\n var ptr5 = passArrayF64ToWasm0(c_max, wasm.__wbindgen_malloc);\n var len5 = WASM_VECTOR_LEN;\n var ptr6 = passArrayF64ToWasm0(e_min, wasm.__wbindgen_malloc);\n var len6 = WASM_VECTOR_LEN;\n var ptr7 = passArrayF64ToWasm0(e_max, wasm.__wbindgen_malloc);\n var len7 = WASM_VECTOR_LEN;\n var ptr8 = passArrayF64ToWasm0(w_min, wasm.__wbindgen_malloc);\n var len8 = WASM_VECTOR_LEN;\n var ptr9 = passArrayF64ToWasm0(w_max, wasm.__wbindgen_malloc);\n var len9 = WASM_VECTOR_LEN;\n var ptr10 = passArrayF64ToWasm0(d_min, wasm.__wbindgen_malloc);\n var len10 = WASM_VECTOR_LEN;\n var ptr11 = passArrayF64ToWasm0(d_max, wasm.__wbindgen_malloc);\n var len11 = WASM_VECTOR_LEN;\n var ptr12 = passArrayF64ToWasm0(offset, wasm.__wbindgen_malloc);\n var len12 = WASM_VECTOR_LEN;\n var ptr13 = passArray32ToWasm0(biome, wasm.__wbindgen_malloc);\n var len13 = WASM_VECTOR_LEN;\n var ret = wasm.biome_parameters(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7, ptr8, len8, ptr9, len9, ptr10, len10, ptr11, len11, ptr12, len12, ptr13, len13);\n return ParameterList.__wrap(ret);\n}\n\n/**\n* @param {number} first_octave\n* @param {Float64Array} amplitudes\n* @returns {NoiseParameters}\n*/\nexport function noise_parameters(first_octave, amplitudes) {\n var ptr0 = passArrayF64ToWasm0(amplitudes, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n var ret = wasm.noise_parameters(first_octave, ptr0, len0);\n return NoiseParameters.__wrap(ret);\n}\n\n/**\n* @param {BigInt} seed\n* @param {number} t_first\n* @param {Float64Array} t_amplitudes\n* @param {number} h_first\n* @param {Float64Array} h_amplitudes\n* @param {number} c_first\n* @param {Float64Array} c_amplitudes\n* @param {number} e_first\n* @param {Float64Array} e_amplitudes\n* @param {number} w_first\n* @param {Float64Array} w_amplitudes\n* @param {number} s_first\n* @param {Float64Array} s_amplitudes\n* @returns {Sampler}\n*/\nexport function climate_sampler(seed, t_first, t_amplitudes, h_first, h_amplitudes, c_first, c_amplitudes, e_first, e_amplitudes, w_first, w_amplitudes, s_first, s_amplitudes) {\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n var ptr1 = passArrayF64ToWasm0(t_amplitudes, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n var ptr2 = passArrayF64ToWasm0(h_amplitudes, wasm.__wbindgen_malloc);\n var len2 = WASM_VECTOR_LEN;\n var ptr3 = passArrayF64ToWasm0(c_amplitudes, wasm.__wbindgen_malloc);\n var len3 = WASM_VECTOR_LEN;\n var ptr4 = passArrayF64ToWasm0(e_amplitudes, wasm.__wbindgen_malloc);\n var len4 = WASM_VECTOR_LEN;\n var ptr5 = passArrayF64ToWasm0(w_amplitudes, wasm.__wbindgen_malloc);\n var len5 = WASM_VECTOR_LEN;\n var ptr6 = passArrayF64ToWasm0(s_amplitudes, wasm.__wbindgen_malloc);\n var len6 = WASM_VECTOR_LEN;\n var ret = wasm.climate_sampler(low0, high0, t_first, ptr1, len1, h_first, ptr2, len2, c_first, ptr3, len3, e_first, ptr4, len4, w_first, ptr5, len5, s_first, ptr6, len6);\n return Sampler.__wrap(ret);\n}\n\nfunction _assertClass(instance, klass) {\n if (!(instance instanceof klass)) {\n throw new Error(`expected instance of ${klass.name}`);\n }\n return instance.ptr;\n}\n/**\n* @param {ParameterList} parameters\n* @param {Float64Array} target\n* @returns {number}\n*/\nexport function find_biome(parameters, target) {\n _assertClass(parameters, ParameterList);\n var ptr0 = passArrayF64ToWasm0(target, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n var ret = wasm.find_biome(parameters.ptr, ptr0, len0);\n return ret;\n}\n\nfunction getArrayI32FromWasm0(ptr, len) {\n return getInt32Memory0().subarray(ptr / 4, ptr / 4 + len);\n}\n/**\n* @param {ParameterList} parameters\n* @param {Sampler} sampler\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Int32Array}\n*/\nexport function multi_noise(parameters, sampler, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertClass(parameters, ParameterList);\n _assertClass(sampler, Sampler);\n wasm.multi_noise(retptr, parameters.ptr, sampler.ptr, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayI32FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {Sampler} sampler\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function climate_noise(sampler, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertClass(sampler, Sampler);\n wasm.climate_noise(retptr, sampler.ptr, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {number} x\n* @returns {Test}\n*/\nexport function create_test(x) {\n var ret = wasm.create_test(x);\n return Test.__wrap(ret);\n}\n\n/**\n* @param {Test} test\n* @returns {number}\n*/\nexport function calc_test(test) {\n _assertClass(test, Test);\n var ret = wasm.calc_test(test.ptr);\n return ret;\n}\n\n/**\n*/\nexport class ImprovedNoise {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_improvednoise_free(ptr);\n }\n}\n/**\n*/\nexport class NoiseOctaves {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_noiseoctaves_free(ptr);\n }\n}\n/**\n*/\nexport class NoiseParameters {\n\n static __wrap(ptr) {\n const obj = Object.create(NoiseParameters.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_noiseparameters_free(ptr);\n }\n}\n/**\n*/\nexport class NormalNoise {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_normalnoise_free(ptr);\n }\n}\n/**\n*/\nexport class ParameterList {\n\n static __wrap(ptr) {\n const obj = Object.create(ParameterList.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_parameterlist_free(ptr);\n }\n}\n/**\n*/\nexport class PerlinNoise {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_perlinnoise_free(ptr);\n }\n}\n/**\n*/\nexport class Sampler {\n\n static __wrap(ptr) {\n const obj = Object.create(Sampler.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_sampler_free(ptr);\n }\n}\n/**\n*/\nexport class Test {\n\n static __wrap(ptr) {\n const obj = Object.create(Test.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_test_free(ptr);\n }\n}\n\nasync function load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n\n } catch (e) {\n if (module.headers.get('Content-Type') != 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else {\n throw e;\n }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n\n } else {\n return instance;\n }\n }\n}\n\nasync function init(input) {\n if (typeof input === 'undefined') {\n input = new URL('deepslate_rs_bg.wasm', import.meta.url);\n }\n const imports = {};\n imports.wbg = {};\n imports.wbg.__wbindgen_throw = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n };\n\n if (typeof input === 'string' || (typeof Request === 'function' && input instanceof Request) || (typeof URL === 'function' && input instanceof URL)) {\n input = fetch(input);\n }\n\n\n\n const { instance, module } = await load(await input, imports);\n\n wasm = instance.exports;\n init.__wbindgen_wasm_module = module;\n\n return wasm;\n}\n\nexport default init;\n\n","export default \"__VITE_ASSET__4990c219__\"","import { DataModel } from '@mcschema/core'\nimport type { NoiseParameters } from 'deepslate'\nimport { FixedBiome, Identifier, LegacyRandom, NormalNoise } from 'deepslate'\nimport init, { biome_parameters, climate_noise, climate_sampler, multi_noise } from 'deepslate-rs'\n// @ts-expect-error\nimport wasm from 'deepslate-rs/deepslate_rs_bg.wasm?url'\nimport type { VersionId } from '../services'\nimport { checkVersion, fetchPreset } from '../services'\nimport { BiMap, clamp, deepClone, deepEqual, square, stringToColor } from '../Utils'\n\nlet ready = false\nasync function loadWasm() {\n\tif (ready) return\n\tawait init(wasm)\n\tready = true\n\tconsole.debug(`Loaded deepslate-rs from \"${wasm}\"`)\n}\n\nconst LAYERS = {\n\ttemperature: [-1, 1],\n\thumidity: [-1, 1],\n\tcontinentalness: [-1.1, 1],\n\terosion: [-1, 1],\n\tweirdness: [-1, 1],\n\toffset: [-1, 1],\n\tfactor: [0, 12],\n\tjaggedness: [0, 1],\n}\n\ntype Triple = [number, number, number]\ntype BiomeColors = Record<string, Triple>\ntype BiomeSourceOptions = {\n\toctaves: Record<string, NoiseParameters>,\n\tbiomeColors: BiomeColors,\n\toffset: [number, number],\n\tscale: number,\n\tres: number,\n\tseed: bigint,\n\tversion: VersionId,\n\tlayers: Set<keyof typeof LAYERS | 'biomes'>,\n}\n\ninterface CachedBiomeSource {\n\tgetBiome(x: number, y: number, z: number): Identifier\n\tgetBiomes?(xFrom: number, xTo: number, xStep: number, yFrom: number, yTo: number, yStep: number, zFrom: number, zTo: number, zStep: number): Identifier[]\n\tgetClimate?(x: number, y: number, z: number): {[k: string]: number}\n\tgetClimates?(xFrom: number, xTo: number, xStep: number, yFrom: number, yTo: number, yStep: number, zFrom: number, zTo: number, zStep: number): {[k: string]: number}[]\n}\n\nlet cacheState: any\nlet biomeSourceCache: CachedBiomeSource\n\nexport async function biomeMap(state: any, img: ImageData, options: BiomeSourceOptions) {\n\tconst { biomeSource } = await getCached(state, options)\n\n\tconst data = img.data\n\tconst ox = -Math.round(options.offset[0]) - 100 + options.res / 2\n\tconst oz = -Math.round(options.offset[1]) - 100 + options.res / 2\n\tconst row = img.width * 4 / options.res\n\tconst col = 4 / options.res\n\n\tconst xRange: Triple = [ox * options.scale, (200 + ox) * options.scale, options.res * options.scale]\n\tconst zRange: Triple = [oz * options.scale, (200 + oz) * options.scale, options.res * options.scale]\n\n\tconst biomes = !options.layers.has('biomes') ? undefined : biomeSource.getBiomes?.(...xRange, 64, 65, 1, ...zRange)\n\tconst layers = [...options.layers].filter(l => l !== 'biomes') as (keyof typeof LAYERS)[]\n\tconst noise = layers.length === 0 ? undefined : biomeSource.getClimates?.(...xRange, 64, 65, 1, ...zRange)\n\n\tfor (let x = 0; x < 200; x += options.res) {\n\t\tfor (let z = 0; z < 200; z += options.res) {\n\t\t\tconst i = z * row + x * col\n\t\t\tconst j = (x / options.res) * 200 / options.res + z / options.res\n\t\t\tconst worldX = (x + ox) * options.scale\n\t\t\tconst worldZ = (z + oz) * options.scale\n\t\t\tlet color: Triple = [50, 50, 50]\n\t\t\tif (options.layers.has('biomes')) {\n\t\t\t\tconst biome = biomes?.[j] ?? biomeSource.getBiome(worldX, 64, worldZ)\n\t\t\t\tcolor = getBiomeColor(biome.toString(), options.biomeColors)\n\t\t\t} else if (noise && layers[0]) {\n\t\t\t\tconst value = noise[j][layers[0]]\n\t\t\t\tconst [min, max] = LAYERS[layers[0]]\n\t\t\t\tconst brightness = (value - min) / (max - min) * 256\n\t\t\t\tcolor = [brightness, brightness, brightness]\n\t\t\t}\n\t\t\tdata[i] = color[0]\n\t\t\tdata[i + 1] = color[1]\n\t\t\tdata[i + 2] = color[2]\n\t\t\tdata[i + 3] = 255\n\t\t}\n\t}\n}\n\nexport async function getBiome(state: any, x: number, z: number, options: BiomeSourceOptions): Promise<{[k: string]: number | string} | undefined> {\n\tconst { biomeSource } = await getCached(state, options)\n\n\tconst [xx, zz] = toWorld([x, z], options)\n\treturn {\n\t\tbiome: biomeSource.getBiome(xx, 64, zz).toString(),\n\t\t...biomeSource.getClimate?.(xx, 64, zz),\n\t}\n}\n\nasync function getCached(state: any, options: BiomeSourceOptions): Promise<{ biomeSource: CachedBiomeSource}> {\n\tconst newState = [state, options.octaves, `${options.seed}`, options.version]\n\tif (!deepEqual(newState, cacheState)) {\n\t\tcacheState = deepClone(newState)\n\n\t\tbiomeSourceCache = await getBiomeSource(state, options)\n\t}\n\treturn {\n\t\tbiomeSource: biomeSourceCache,\n\t} \n}\n\nasync function getBiomeSource(state: any, options: BiomeSourceOptions): Promise<CachedBiomeSource> {\n\tswitch (state?.type?.replace(/^minecraft:/, '')) {\n\t\tcase 'fixed':\n\t\t\treturn new FixedBiome(Identifier.parse(state.biome as string))\n\n\t\tcase 'checkerboard':\n\t\t\tconst shift = (state.scale ?? 2) + 2\n\t\t\tconst numBiomes = state.biomes?.length ?? 0\n\t\t\treturn {\n\t\t\t\tgetBiome(x: number, _y: number, z: number) {\n\t\t\t\t\tconst i = (((x >> shift) + (z >> shift)) % numBiomes + numBiomes) % numBiomes\n\t\t\t\t\treturn Identifier.parse(state.biomes?.[i].node as string)\n\t\t\t\t},\n\t\t\t}\n\n\t\tcase 'multi_noise':\n\t\t\tswitch(state.preset?.replace(/^minecraft:/, '')) {\n\t\t\t\tcase 'nether':\n\t\t\t\t\tstate = checkVersion(options.version, '1.18') ? NetherPreset18 : NetherPreset\n\t\t\t\t\tbreak\n\t\t\t\tcase 'overworld':\n\t\t\t\t\tstate = checkVersion(options.version, '1.18') ? await OverworldPreset18() : state\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t\tstate = DataModel.unwrapLists(state)\n\t\t\tif (checkVersion(options.version, '1.18')) {\n\t\t\t\tawait loadWasm()\n\t\t\t\tconst BiomeIds = new BiMap<string, number>()\n\t\t\t\tconst param = (p: number | number[]) => {\n\t\t\t\t\treturn typeof p === 'number' ? [p, p] : p\n\t\t\t\t}\n\t\t\t\tconst [t0, t1, h0, h1, c0, c1, e0, e1, w0, w1, d0, d1, o, b] = [[], [], [], [], [], [], [], [], [], [], [], [], [], []] as number[][]\n\t\t\t\tfor (const i of state.biomes) {\n\t\t\t\t\tconst { temperature, humidity, continentalness, erosion, weirdness, depth, offset } = i.parameters\n\t\t\t\t\tt0.push(param(temperature)[0])\n\t\t\t\t\tt1.push(param(temperature)[1])\n\t\t\t\t\th0.push(param(humidity)[0])\n\t\t\t\t\th1.push(param(humidity)[1])\n\t\t\t\t\tc0.push(param(continentalness)[0])\n\t\t\t\t\tc1.push(param(continentalness)[1])\n\t\t\t\t\te0.push(param(erosion)[0])\n\t\t\t\t\te1.push(param(erosion)[1])\n\t\t\t\t\tw0.push(param(weirdness)[0])\n\t\t\t\t\tw1.push(param(weirdness)[1])\n\t\t\t\t\td0.push(param(depth)[0])\n\t\t\t\t\td1.push(param(depth)[1])\n\t\t\t\t\to.push(offset)\n\t\t\t\t\tb.push(BiomeIds.getOrPut(i.biome, Math.floor(Math.random() * 2147483647)))\n\t\t\t\t}\n\t\t\t\tconst parameters = biome_parameters(new Float64Array(t0), new Float64Array(t1), new Float64Array(h0), new Float64Array(h1), new Float64Array(c0), new Float64Array(c1), new Float64Array(e0), new Float64Array(e1), new Float64Array(w0), new Float64Array(w1), new Float64Array(d0), new Float64Array(d1), new Float64Array(o), new Int32Array(b))\n\t\t\t\tconst sampler = climate_sampler(options.seed, options.octaves.temperature.firstOctave, new Float64Array(options.octaves.temperature.amplitudes), options.octaves.humidity.firstOctave, new Float64Array(options.octaves.humidity.amplitudes), options.octaves.continentalness.firstOctave, new Float64Array(options.octaves.continentalness.amplitudes), options.octaves.erosion.firstOctave, new Float64Array(options.octaves.erosion.amplitudes), options.octaves.weirdness.firstOctave, new Float64Array(options.octaves.weirdness.amplitudes), options.octaves.shift.firstOctave, new Float64Array(options.octaves.shift.amplitudes))\n\t\t\t\treturn {\n\t\t\t\t\tgetBiome(x, y, z) {\n\t\t\t\t\t\tconst ids = multi_noise(parameters, sampler, x, x + 1, 1, y, y + 1, 1, z, z + 1, 1)\n\t\t\t\t\t\treturn Identifier.parse(BiomeIds.getA(ids[0]) ?? 'unknown')\n\t\t\t\t\t},\n\t\t\t\t\tgetBiomes(xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep) {\n\t\t\t\t\t\tconst ids = multi_noise(parameters, sampler, xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep)\n\t\t\t\t\t\treturn [...ids].map(id => Identifier.parse(BiomeIds.getA(id) ?? 'unknown'))\n\t\t\t\t\t},\n\t\t\t\t\tgetClimate(x, y, z) {\n\t\t\t\t\t\tconst climate = climate_noise(sampler, x, x + 1, 1, y, y + 1, 1, z, z + 1, 1)\n\t\t\t\t\t\tconst [t, h, c, e, w] = climate.slice(0, 5)\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttemperature: t,\n\t\t\t\t\t\t\thumidity: h,\n\t\t\t\t\t\t\tcontinentalness: c,\n\t\t\t\t\t\t\terosion: e,\n\t\t\t\t\t\t\tweirdness: w,\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tgetClimates(xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep) {\n\t\t\t\t\t\tconst climate = climate_noise(sampler, xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep)\n\t\t\t\t\t\tconst result = []\n\t\t\t\t\t\tfor (let i = 0; i < climate.length; i += 7) {\n\t\t\t\t\t\t\tconst [t, h, c, e, w] = climate.slice(i, i + 5)\n\t\t\t\t\t\t\tresult.push({\n\t\t\t\t\t\t\t\ttemperature: t,\n\t\t\t\t\t\t\t\thumidity: h,\n\t\t\t\t\t\t\t\tcontinentalness: c,\n\t\t\t\t\t\t\t\terosion: e,\n\t\t\t\t\t\t\t\tweirdness: w,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst noise = ['altitude', 'temperature', 'humidity', 'weirdness']\n\t\t\t\t\t.map((id, i) => {\n\t\t\t\t\t\tconst config = state[`${id}_noise`]\n\t\t\t\t\t\tconfig.firstOctave = clamp(config.firstOctave ?? -7, -100, -1)\n\t\t\t\t\t\treturn new NormalNoise(new LegacyRandom(options.seed + BigInt(i)), config)\n\t\t\t\t\t})\n\t\t\t\tif (!Array.isArray(state.biomes) || state.biomes.length === 0) {\n\t\t\t\t\treturn new FixedBiome(Identifier.create('unknown'))\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tgetBiome(x: number, _y: number, z: number): Identifier {\n\t\t\t\t\t\tconst n = noise.map(n => n.sample(x, z, 0))\n\t\t\t\t\t\tlet minDist = Infinity\n\t\t\t\t\t\tlet minBiome = ''\n\t\t\t\t\t\tfor (const { biome, parameters: p } of state.biomes) {\n\t\t\t\t\t\t\tconst dist = square(p.altitude - n[0]) + square(p.temperature - n[1]) + square(p.humidity - n[2]) + square(p.weirdness - n[3]) + square(p.offset)\n\t\t\t\t\t\t\tif (dist < minDist) {\n\t\t\t\t\t\t\t\tminDist = dist\n\t\t\t\t\t\t\t\tminBiome = biome\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn Identifier.parse(minBiome)\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t}\n\t}\n\tthrow new Error('Unknown biome source')\n}\n\nfunction getBiomeColor(biome: string, biomeColors: BiomeColors): Triple {\n\tif (!biome) {\n\t\treturn [128, 128, 128]\n\t}\n\tconst color = biomeColors[biome] ?? VanillaColors[biome]\n\tif (color === undefined) {\n\t\treturn stringToColor(biome)\n\t}\n\treturn color\n}\n\nfunction toWorld([x, z]: [number, number], options: BiomeSourceOptions) {\n\tconst xx = (x - options.offset[0] - 100 + options.res / 2) * options.scale\n\tconst zz = (z - options.offset[1] - 100 + options.res / 2) * options.scale\n\treturn [xx, zz]\n}\n\nconst VanillaColors: Record<string, Triple> = {\n\t'minecraft:badlands': [217,69,21],\n\t'minecraft:badlands_plateau': [202,140,101],\n\t'minecraft:bamboo_jungle': [118,142,20],\n\t'minecraft:bamboo_jungle_hills': [59,71,10],\n\t'minecraft:basalt_deltas': [64,54,54],\n\t'minecraft:beach': [250,222,85],\n\t'minecraft:birch_forest': [48,116,68],\n\t'minecraft:birch_forest_hills': [31,95,50],\n\t'minecraft:cold_ocean': [32,32,112],\n\t'minecraft:crimson_forest': [221,8,8],\n\t'minecraft:dark_forest': [64,81,26],\n\t'minecraft:dark_forest_hills': [104,121,66],\n\t'minecraft:deep_cold_ocean': [32,32,56],\n\t'minecraft:deep_frozen_ocean': [64,64,144],\n\t'minecraft:deep_lukewarm_ocean': [0,0,64],\n\t'minecraft:deep_ocean': [0,0,48],\n\t'minecraft:deep_warm_ocean': [0,0,80],\n\t'minecraft:desert': [250,148,24],\n\t'minecraft:desert_hills': [210,95,18],\n\t'minecraft:desert_lakes': [255,188,64],\n\t'minecraft:end_barrens': [128,128,255],\n\t'minecraft:end_highlands': [128,128,255],\n\t'minecraft:end_midlands': [128,128,255],\n\t'minecraft:eroded_badlands': [255,109,61],\n\t'minecraft:flower_forest': [45,142,73],\n\t'minecraft:forest': [5,102,33],\n\t'minecraft:frozen_ocean': [112,112,214],\n\t'minecraft:frozen_river': [160,160,255],\n\t'minecraft:giant_spruce_taiga': [129,142,121],\n\t'minecraft:old_growth_spruce_taiga': [129,142,121],\n\t'minecraft:giant_spruce_taiga_hills': [109,119,102],\n\t'minecraft:giant_tree_taiga': [89,102,81],\n\t'minecraft:old_growth_pine_taiga': [89,102,81],\n\t'minecraft:giant_tree_taiga_hills': [69,79,62],\n\t'minecraft:gravelly_hills': [136,136,136],\n\t'minecraft:gravelly_mountains': [136,136,136],\n\t'minecraft:windswept_gravelly_hills': [136,136,136],\n\t'minecraft:ice_spikes': [180,220,220],\n\t'minecraft:jungle': [83,123,9],\n\t'minecraft:jungle_edge': [98,139,23],\n\t'minecraft:sparse_jungle': [98,139,23],\n\t'minecraft:jungle_hills': [44,66,5],\n\t'minecraft:lukewarm_ocean': [0,0,144],\n\t'minecraft:modified_badlands_plateau': [242,180,141],\n\t'minecraft:modified_gravelly_mountains': [120,152,120],\n\t'minecraft:modified_jungle': [123,163,49],\n\t'minecraft:modified_jungle_edge': [138,179,63],\n\t'minecraft:modified_wooded_badlands_plateau': [216,191,141],\n\t'minecraft:mountain_edge': [114,120,154],\n\t'minecraft:extreme_hills': [96,96,96],\n\t'minecraft:mountains': [96,96,96],\n\t'minecraft:windswept_hills': [96,96,96],\n\t'minecraft:mushroom_field_shore': [160,0,255],\n\t'minecraft:mushroom_fields': [255,0,255],\n\t'minecraft:nether_wastes': [191,59,59],\n\t'minecraft:ocean': [0,0,112],\n\t'minecraft:plains': [141,179,96],\n\t'minecraft:river': [0,0,255],\n\t'minecraft:savanna': [189,178,95],\n\t'minecraft:savanna_plateau': [167,157,100],\n\t'minecraft:shattered_savanna': [229,218,135],\n\t'minecraft:windswept_savanna': [229,218,135],\n\t'minecraft:shattered_savanna_plateau': [207,197,140],\n\t'minecraft:small_end_islands': [128,128,255],\n\t'minecraft:snowy_beach': [250,240,192],\n\t'minecraft:snowy_mountains': [160,160,160],\n\t'minecraft:snowy_taiga': [49,85,74],\n\t'minecraft:snowy_taiga_hills': [36,63,54],\n\t'minecraft:snowy_taiga_mountains': [89,125,114],\n\t'minecraft:snowy_tundra': [255,255,255],\n\t'minecraft:snowy_plains': [255,255,255],\n\t'minecraft:soul_sand_valley': [94,56,48],\n\t'minecraft:stone_shore': [162,162,132],\n\t'minecraft:stony_shore': [162,162,132],\n\t'minecraft:sunflower_plains': [181,219,136],\n\t'minecraft:swamp': [7,249,178],\n\t'minecraft:swamp_hills': [47,255,218],\n\t'minecraft:taiga': [11,102,89],\n\t'minecraft:taiga_hills': [22,57,51],\n\t'minecraft:taiga_mountains': [51,142,129],\n\t'minecraft:tall_birch_forest': [88,156,108],\n\t'minecraft:old_growth_birch_forest': [88,156,108],\n\t'minecraft:tall_birch_hills': [71,135,90],\n\t'minecraft:the_end': [128,128,255],\n\t'minecraft:the_void': [0,0,0],\n\t'minecraft:warm_ocean': [0,0,172],\n\t'minecraft:warped_forest': [73,144,123],\n\t'minecraft:wooded_badlands_plateau': [176,151,101],\n\t'minecraft:wooded_badlands': [176,151,101],\n\t'minecraft:wooded_hills': [34,85,28],\n\t'minecraft:wooded_mountains': [80,112,80],\n\t'minecraft:windswept_forest': [80,112,80],\n\t'minecraft:snowy_slopes': [140, 195, 222],\n\t'minecraft:lofty_peaks': [196, 168, 193],\n\t'minecraft:jagged_peaks': [196, 168, 193],\n\t'minecraft:snowcapped_peaks': [200, 198, 200],\n\t'minecraft:frozen_peaks': [200, 198, 200],\n\t'minecraft:stony_peaks': [82, 92, 103],\n\t'minecraft:grove': [150, 150, 189],\n\t'minecraft:meadow': [169, 197, 80],\n\t'minecraft:lush_caves': [112, 255, 79],\n\t'minecraft:dripstone_caves': [140, 124, 0],\n}\n\nconst NetherPreset = {type:'minecraft:multi_noise',seed:0,altitude_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},humidity_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{biome:'minecraft:nether_wastes',parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}},{biome:'minecraft:soul_sand_valley',parameters:{altitude:0,temperature:0,humidity:-0.5,weirdness:0,offset:0}},{biome:'minecraft:crimson_forest',parameters:{altitude:0,temperature:0.4,humidity:0,weirdness:0,offset:0}},{biome:'minecraft:warped_forest',parameters:{altitude:0,temperature:0,humidity:0.5,weirdness:0,offset:0.375}},{biome:'minecraft:basalt_deltas',parameters:{altitude:0,temperature:-0.5,humidity:0,weirdness:0,offset:0.175}}]}\n\nconst NetherPreset18 = {type:'minecraft:multi_noise',biomes:[{biome:'minecraft:nether_wastes',parameters:{temperature:0,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:'minecraft:soul_sand_valley',parameters:{temperature:0,humidity:-0.5,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:'minecraft:crimson_forest',parameters:{temperature:0.4,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:'minecraft:warped_forest',parameters:{temperature:0,humidity:0.5,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0.375}},{biome:'minecraft:basalt_deltas',parameters:{temperature:-0.5,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0.175}}]}\n\nasync function OverworldPreset18() {\n\tconst overworld = await fetchPreset('1.18', 'dimension', 'overworld')\n\treturn overworld.generator.biome_source\n}\n","import { DataModel } from '@mcschema/core'\nimport type { Random } from 'deepslate'\nimport { LegacyRandom, PerlinNoise } from 'deepslate'\nimport type { VersionId } from '../services'\nimport { checkVersion } from '../services'\nimport { clamp, isObject, stringToColor } from '../Utils'\n\ntype BlockPos = [number, number, number]\ntype Placement = [BlockPos, number]\n\ntype PlacementContext = {\n\tplacements: Placement[],\n\tfeatures: string[],\n\trandom: Random,\n\tbiomeInfoNoise: PerlinNoise,\n\tseaLevel: number,\n\tversion: VersionId,\n\tnextFloat(): number,\n\tnextInt(max: number): number,\n\tnextGaussian(): number,\n\tsampleInt(provider: any): number,\n}\n\nconst terrain = [50, 50, 51, 51, 52, 52, 53, 54, 56, 57, 57, 58, 58, 59, 60, 60, 60, 59, 59, 59, 60, 61, 61, 62, 63, 63, 64, 64, 64, 65, 65, 66, 66, 65, 65, 66, 66, 67, 67, 67, 68, 69, 71, 73, 74, 76, 79, 80, 81, 81, 82, 83, 83, 82, 82, 81, 81, 80, 80, 80, 81, 81, 82, 82] \n\nconst featureColors = [\n\t[255, 77, 54], // red\n\t[59, 118, 255], // blue\n\t[91, 207, 25], // green\n\t[217, 32, 245], // magenta\n\t[255, 209, 41], // yellow\n\t[52, 204, 209], // cyan\n]\n\nexport type DecoratorOptions = {\n\tsize: [number, number, number],\n\tseed: bigint,\n\tversion: VersionId,\n}\nexport function decorator(state: any, img: ImageData, options: DecoratorOptions) {\n\tconst random = new LegacyRandom(options.seed)\n\tconst ctx: PlacementContext = {\n\t\tplacements: [],\n\t\tfeatures: [],\n\t\trandom,\n\t\tbiomeInfoNoise: new PerlinNoise(random.fork(), 0, [1]),\n\t\tseaLevel: 63,\n\t\tversion: options.version,\n\t\tnextFloat: () => random.nextFloat(),\n\t\tnextInt: (max: number) => random.nextInt(max),\n\t\tnextGaussian: () => Math.sqrt(-2 * Math.log(1 - random.nextFloat())) * Math.cos(2 * Math.PI * random.nextFloat()),\n\t\tsampleInt(value) { return sampleInt(value, this) },\n\t}\n\n\tfor (let x = 0; x < options.size[0] / 16; x += 1) {\n\t\tfor (let z = 0; z < options.size[2] / 16; z += 1) {\n\t\t\tif (checkVersion(options.version, undefined, '1.17')) {\n\t\t\t\tgetPlacements([x * 16, 0, z * 16], DataModel.unwrapLists(state), ctx)\n\t\t\t} else {\n\t\t\t\tmodifyPlacement([x * 16, 0, z * 16], DataModel.unwrapLists(state.placement), ctx)\n\t\t\t}\n\t\t}\n\t}\n\n\tconst data = img.data\n\timg.data.fill(255)\n\n\tfor (const [pos, feature] of ctx.placements) {\n\t\tif (pos[0] < 0 || pos[1] < 0 || pos[2] < 0 || pos[0] >= options.size[0] || pos[1] >= options.size[1] || pos[2] >= options.size[2]) continue\n\t\tconst i = (pos[2] * (img.width * 4)) + (pos[0] * 4)\n\t\tconst color = feature < featureColors.length ? featureColors[feature] : stringToColor(ctx.features[feature])\n\t\tdata[i] = clamp(50, 205, color[0])\n\t\tdata[i + 1] = clamp(50, 205, color[1])\n\t\tdata[i + 2] = clamp(50, 205, color[2])\n\t\tdata[i + 3] = 255\n\t}\n\n\tfor (let x = 0; x < options.size[0]; x += 1) {\n\t\tfor (let y = 0; y < options.size[2]; y += 1) {\n\t\t\tif ((Math.floor(x / 16) + Math.floor(y / 16)) % 2 === 0) continue\n\t\t\tconst i = (y * (img.width * 4)) + (x * 4)\n\t\t\tfor (let j = 0; j < 3; j += 1) {\n\t\t\t\tdata[i + j] = 0.85 * data[i + j] \n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction normalize(id: string) {\n\treturn id.startsWith('minecraft:') ? id.slice(10) : id\n}\n\nfunction decorateY(pos: BlockPos, y: number): BlockPos[] {\n\treturn [[ pos[0], y, pos[2] ]]\n}\n\nfunction sampleInt(value: any, ctx: PlacementContext): number {\n\tif (typeof value === 'number') {\n\t\treturn value\n\t} else if (value.base) {\n\t\treturn value.base ?? 1 + ctx.nextInt(1 + (value.spread ?? 0))\n\t} else {\n\t\tswitch (normalize(value.type)) {\n\t\t\tcase 'constant': return value.value\n\t\t\tcase 'uniform': return value.value.min_inclusive + ctx.nextInt(value.value.max_inclusive - value.value.min_inclusive + 1)\n\t\t\tcase 'biased_to_bottom': return value.value.min_inclusive + ctx.nextInt(ctx.nextInt(value.value.max_inclusive - value.value.min_inclusive + 1) + 1)\n\t\t\tcase 'clamped': return clamp(ctx.sampleInt(value.value.source), value.value.min_inclusive, value.value.max_inclusive)\n\t\t\tcase 'clamped_normal':\n\t\t\t\tconst normal = value.value.mean + ctx.nextGaussian() * value.value.deviation\n\t\t\t\treturn Math.floor(clamp(value.value.min_inclusive, value.value.max_inclusive, normal))\n\t\t\tcase 'weighted_list':\n\t\t\t\tconst totalWeight = (value.distribution as any[]).reduce<number>((sum, e) => sum + e.weight, 0)\n\t\t\t\tlet i = ctx.nextInt(totalWeight)\n\t\t\t\tfor (const e of value.distribution) {\n\t\t\t\t\ti -= e.weight\n\t\t\t\t\tif (i < 0) return ctx.sampleInt(e.data)\n\t\t\t\t}\n\t\t\t\treturn 0\n\t\t}\n\t\treturn 1\n\t}\n}\n\nfunction resolveAnchor(anchor: any, _ctx: PlacementContext): number {\n\tif (!isObject(anchor)) throw new Error('Invalid vertical anchor')\n\tif (anchor.absolute) return anchor.absolute\n\tif (anchor.above_bottom) return anchor.above_bottom\n\tif (anchor.below_top) return 256 - anchor.below_top\n\tthrow new Error('Invalid vertical anchor')\n}\n\nfunction sampleHeight(height: any, ctx: PlacementContext): number {\n\tif (!isObject(height)) throw new Error('Invalid height provider')\n\tif (typeof height.type !== 'string') {\n\t\treturn resolveAnchor(height, ctx)\n\t}\n\tswitch (normalize(height.type)) {\n\t\tcase 'constant': return resolveAnchor(height.value, ctx)\n\t\tcase 'uniform': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\treturn min + ctx.nextInt(max - min + 1)\n\t\t}\n\t\tcase 'biased_to_bottom': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\tconst n = ctx.nextInt(max - min - (height.inner ?? 1) + 1)\n\t\t\treturn min + ctx.nextInt(n + (height.inner ?? 1))\n\t\t}\n\t\tcase 'very_biased_to_bottom': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\tconst inner = height.inner ?? 1\n\t\t\tconst n1 = min + inner + ctx.nextInt(max - min - inner + 1)\n\t\t\tconst n2 = min + ctx.nextInt(n1 - min)\n\t\t\treturn min + ctx.nextInt(n2 - min + inner)\n\t\t}\n\t\tcase 'trapezoid': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\tconst plateau = height.plateau ?? 0\n\t\t\tif (plateau >= max - min) {\n\t\t\t\treturn min + ctx.nextInt(max - min + 1)\n\t\t\t}\n\t\t\tconst n1 = (max - min - plateau) / 2\n\t\t\tconst n2 = (max - min) - n1\n\t\t\treturn min + ctx.nextInt(n2 + 1) + ctx.nextInt(n1 + 1)\n\t\t}\n\t\tdefault: throw new Error(`Invalid height provider ${height.type}`)\n\t}\n}\n\n// 1.17 and before\nfunction useFeature(s: string, ctx: PlacementContext) {\n\tconst i = ctx.features.indexOf(s)\n\tif (i != -1) return i\n\tctx.features.push(s)\n\treturn ctx.features.length - 1\n}\n\nfunction getPlacements(pos: BlockPos, feature: any, ctx: PlacementContext): void {\n\tif (typeof feature === 'string') {\n\t\tctx.placements.push([pos, useFeature(feature, ctx)])\n\t\treturn\n\t}\n\tconst type = normalize(feature?.type ?? 'no_op')\n\tconst featureFn = Features[type]\n\tif (featureFn) {\n\t\tfeatureFn(feature.config, pos, ctx)\n\t} else {\n\t\tctx.placements.push([pos, useFeature(JSON.stringify(feature), ctx)])\n\t}\n}\n\nfunction getPositions(pos: BlockPos, decorator: any, ctx: PlacementContext): BlockPos[] {\n\tconst type = normalize(decorator?.type ?? 'nope')\n\tconst decoratorFn = Decorators[type]\n\tif (!decoratorFn) {\n\t\treturn [pos]\n\t}\n\treturn decoratorFn(decorator?.config, pos, ctx)\n}\n\nconst Features: {\n\t[key: string]: (config: any, pos: BlockPos, ctx: PlacementContext) => void,\n} = {\n\tdecorated: (config, pos, ctx) => {\n\t\tconst positions = getPositions(pos, config?.decorator, ctx)\n\t\tpositions.forEach(p => getPlacements(p, config?.feature, ctx))\n\t},\n\trandom_boolean_selector: (config, pos, ctx) => {\n\t\tconst feature = ctx.nextFloat() < 0.5 ? config?.feature_true : config?.feature_false\n\t\tgetPlacements(pos, feature, ctx)\n\t},\n\trandom_selector: (config, pos, ctx) => {\n\t\tfor (const f of config?.features ?? []) {\n\t\t\tif (ctx.nextFloat() < (f?.chance ?? 0)) {\n\t\t\t\tgetPlacements(pos, f.feature, ctx)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tgetPlacements(pos, config?.default, ctx)\n\t},\n\tsimple_random_selector: (config, pos, ctx) => {\n\t\tconst feature = config?.features?.[ctx.nextInt(config?.features?.length ?? 0)]\n\t\tgetPlacements(pos, feature, ctx)\n\t},\n}\n\nconst Decorators: {\n\t[key: string]: (config: any, pos: BlockPos, ctx: PlacementContext) => BlockPos[],\n} = {\n\tchance: (config, pos, ctx) => {\n\t\treturn ctx.nextFloat() < 1 / (config?.chance ?? 1) ? [pos] : []\n\t},\n\tcount: (config, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(config?.count ?? 1)).fill(pos)\n\t},\n\tcount_extra: (config, pos, ctx) => {\n\t\tlet count = config?.count ?? 1\n\t\tif (ctx.nextFloat() < config.extra_chance ?? 0){\n\t\t\tcount += config.extra_count ?? 0\n\t\t}\n\t\treturn new Array(count).fill(pos)\n\t},\n\tcount_multilayer: (config, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(config?.count ?? 1)).fill(pos)\n\t\t\t.map(p => [\n\t\t\t\tp[0] + ctx.nextInt(16),\n\t\t\t\tp[1], \n\t\t\t\tp[2] + ctx.nextInt(16),\n\t\t\t])\n\t},\n\tcount_noise: (config, pos, ctx) => {\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / 200, 0, pos[2] / 200)\n\t\tconst count = noise < config.noise_level ? config.below_noise : config.above_noise\n\t\treturn new Array(count).fill(pos)\n\t},\n\tcount_noise_biased: (config, pos, ctx) => {\n\t\tconst factor = Math.max(1, config.noise_factor)\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / factor, 0, pos[2] / factor)\n\t\tconst count = Math.max(0, Math.ceil((noise + (config.noise_offset ?? 0)) * config.noise_to_count_ratio))\n\t\treturn new Array(count).fill(pos)\n\t},\n\tdark_oak_tree: (_config, pos, ctx) => {\n\t\treturn [...new Array(16)].map((_, i) => {\n\t\t\tconst x = Math.floor(i / 4) * 4 + 1 + ctx.nextInt(3) + pos[0]\n\t\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, x)])\n\t\t\tconst z = Math.floor(i % 4) * 4 + 1 + ctx.nextInt(3) + pos[2]\n\t\t\treturn [x, y, z]\n\t\t})\n\t},\n\tdecorated: (config, pos, ctx) => {\n\t\treturn getPositions(pos, config?.outer, ctx).flatMap(p => {\n\t\t\treturn getPositions(p, config?.inner, ctx)\n\t\t})\n\t},\n\tdepth_average: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(config?.spread ?? 0) + ctx.nextInt(config?.spread ?? 0) - (config.spread ?? 0) + (config?.baseline ?? 0)\n\t\treturn decorateY(pos, y)\n\t},\n\temerald_ore: (_config, pos, ctx) => {\n\t\tconst count = 3 + ctx.nextInt(6)\n\t\treturn [...new Array(count)].map(() => [\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\t4 + ctx.nextInt(28),\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t])\n\t},\n\tfire: (config, pos, ctx) => {\n\t\tconst count = 1 + ctx.nextInt(ctx.nextInt(ctx.sampleInt(config?.count)))\n\t\treturn [...new Array(count)].map(() => [\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tctx.nextInt(128),\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t])\n\t},\n\tglowstone: (config, pos, ctx) => {\n\t\tconst count = ctx.nextInt(1 + ctx.nextInt(ctx.sampleInt(config?.count)))\n\t\treturn [...new Array(count)].map(() => [\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tctx.nextInt(128),\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t])\n\t},\n\theightmap: (_config, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, y)\n\t},\n\theightmap_spread_double: (_config, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, ctx.nextInt(y * 2))\n\t},\n\theightmap_world_surface: (_config, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, y)\n\t},\n\ticeberg: (_config, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + 4 + ctx.nextInt(8),\n\t\t\tpos[1],\n\t\t\tpos[2] + 4 + ctx.nextInt(8),\n\t\t]]\n\t},\n\tlava_lake: (config, pos, ctx) => {\n\t\tif (ctx.nextInt((config.chance ?? 1) / 10) === 0) {\n\t\t\tconst y = ctx.nextInt(ctx.nextInt(256 - 8) + 8)\n\t\t\tif (y < ctx.seaLevel || ctx.nextInt((config?.chance ?? 1) / 8) == 0) {\n\t\t\t\tconst x = ctx.nextInt(16) + pos[0]\n\t\t\t\tconst z = ctx.nextInt(16) + pos[2]\n\t\t\t\treturn [[x, y, z]]\n\t\t\t}\n\t\t}\n\t\treturn []\n\t},\n\tnope: (_config, pos) => {\n\t\treturn [pos]\n\t},\n\trange: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt((config?.maximum ?? 1) - (config?.top_offset ?? 0)) + (config?.bottom_offset ?? 0)\n\t\treturn decorateY(pos, y)\n\t},\n\trange_biased: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(ctx.nextInt((config?.maximum ?? 1) - (config?.top_offset ?? 0)) + (config?.bottom_offset ?? 0))\n\t\treturn decorateY(pos, y)\n\t},\n\trange_very_biased: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(ctx.nextInt(ctx.nextInt((config?.maximum ?? 1) - (config?.top_offset ?? 0)) + (config?.bottom_offset ?? 0)) + (config?.bottom_offset ?? 0))\n\t\treturn decorateY(pos, y)\n\t},\n\tspread_32_above: (_config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(pos[1] + 32)\n\t\treturn decorateY(pos, y)\n\t},\n\ttop_solid_heightmap: (_config, pos) => {\n\t\tconst y = terrain[clamp(0, 63, pos[0])]\n\t\treturn decorateY(pos, y)\n\t},\n\tmagma: (_config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(pos[1] + 32)\n\t\treturn decorateY(pos, y)\n\t},\n\tsquare: (_config, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tpos[1],\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t]]\n\t},\n\tsurface_relative_threshold: (config, pos) => {\n\t\tconst height = terrain[clamp(0, 63, pos[0])]\n\t\tconst min = height + (config?.min_inclusive ?? -Infinity)\n\t\tconst max = height + (config?.max_inclusive ?? Infinity)\n\t\treturn (pos[1] < min || pos[1] > max) ? [pos] : []\n\t},\n\twater_lake: (config, pos, ctx) => {\n\t\tif (ctx.nextInt(config.chance ?? 1) === 0) {\n\t\t\treturn [[\n\t\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\t\tctx.nextInt(256),\n\t\t\t\tpos[2] + ctx.nextInt(16),\n\t\t\t]]\n\t\t}\n\t\treturn []\n\t},\n}\n\n// 1.18 and after\nfunction modifyPlacement(pos: BlockPos, placement: any[], ctx: PlacementContext) {\n\tlet positions = [pos]\n\tfor (const modifier of placement) {\n\t\tconst modifierFn = PlacementModifiers[normalize(modifier?.type ?? 'nope')]\n\t\tif (!modifierFn) continue\n\t\tpositions = positions.flatMap(pos =>\n\t\t\tPlacementModifiers[normalize(modifier.type)](modifier, pos, ctx)\n\t\t)\n\t}\n\tfor (const pos of positions) {\n\t\tctx.placements.push([pos, 0])\n\t}\n}\n\nconst PlacementModifiers: {\n\t[key: string]: (config: any, pos: BlockPos, ctx: PlacementContext) => BlockPos[],\n} = {\n\tcount: ({ count }, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(count ?? 1)).fill(pos)\n\t},\n\tcount_on_every_layer: ({ count }, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(count ?? 1)).fill(pos)\n\t\t\t.map(p => [\n\t\t\t\tp[0] + ctx.nextInt(16),\n\t\t\t\tp[1], \n\t\t\t\tp[2] + ctx.nextInt(16),\n\t\t\t])\n\t},\n\tenvironment_scan: ({}, pos) => {\n\t\treturn [pos]\n\t},\n\theight_range: ({ height }, pos, ctx) => {\n\t\treturn decorateY(pos, sampleHeight(height, ctx))\n\t},\n\theightmap: ({}, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, y)\n\t},\n\tin_square: ({}, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tpos[1],\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t]]\n\t},\n\tnoise_based_count: ({ noise_to_count_ratio, noise_factor, noise_offset }, pos, ctx) => {\n\t\tconst factor = Math.max(1, noise_factor)\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / factor, 0, pos[2] / factor)\n\t\tconst count = Math.max(0, Math.ceil((noise + (noise_offset ?? 0)) * noise_to_count_ratio))\n\t\treturn new Array(count).fill(pos)\n\t},\n\tnoise_threshold_count: ({ noise_level, below_noise, above_noise }, pos, ctx) => {\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / 200, 0, pos[2] / 200)\n\t\tconst count = noise < noise_level ? below_noise : above_noise\n\t\treturn new Array(count).fill(pos)\n\t},\n\trandom_offset: ({ xz_spread, y_spread }, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + ctx.sampleInt(xz_spread),\n\t\t\tpos[1] + ctx.sampleInt(y_spread),\n\t\t\tpos[2] + ctx.sampleInt(xz_spread),\n\t\t]]\n\t},\n\trarity_filter: ({ chance }, pos, ctx) => {\n\t\treturn ctx.nextFloat() < 1 / (chance ?? 1) ? [pos] : []\n\t},\n}\n","import t from\"pako\";import e from\"md5\";import{vec3 as i,mat4 as s,glMatrix as n}from\"gl-matrix\";var r;!function(t){t.UP=\"up\",t.DOWN=\"down\",t.NORTH=\"north\",t.EAST=\"east\",t.SOUTH=\"south\",t.WEST=\"west\"}(r||(r={}));const o={[r.UP]:[0,1,0],[r.DOWN]:[0,-1,0],[r.NORTH]:[0,0,-1],[r.EAST]:[1,0,0],[r.SOUTH]:[0,0,1],[r.WEST]:[-1,0,0]};var a;!function(t){t.ALL=[t.UP,t.DOWN,t.NORTH,t.EAST,t.SOUTH,t.WEST],t.normal=function(t){return o[t]}}(r||(r={})),function(t){t.create=function(t,e,i){return[t,e,i]},t.offset=function(t,e,i,s){return[t[0]+e,t[1]+i,t[2]+s]},t.towards=function(e,i){return t.offset(e,...r.normal(i))}}(a||(a={}));const l={end:0,byte:1,short:2,int:3,long:4,float:5,double:6,byteArray:7,string:8,list:9,compound:10,intArray:11,longArray:12},h=[\"end\",\"byte\",\"short\",\"int\",\"long\",\"float\",\"double\",\"byteArray\",\"string\",\"list\",\"compound\",\"intArray\",\"longArray\"];class u{constructor(t,e=!1){this.byte=this.readNum.bind(this,\"getInt8\",1),this.short=this.readNum.bind(this,\"getInt16\",2),this.int=this.readNum.bind(this,\"getInt32\",4),this.float=this.readNum.bind(this,\"getFloat32\",4),this.double=this.readNum.bind(this,\"getFloat64\",8),this.offset=0,this.littleEndian=e,this.arrayView=t,this.dataView=new DataView(t.buffer,t.byteOffset)}end(){return null}readNum(t,e){const i=this.dataView[t](this.offset,this.littleEndian);return this.offset+=e,i}long(){return[this.int(),this.int()]}byteArray(){const t=this.int(),e=[];for(let i=0;i<t;i++)e.push(this.byte());return e}intArray(){const t=this.int(),e=[];for(let i=0;i<t;i++)e.push(this.int());return e}longArray(){const t=this.int(),e=[];for(let i=0;i<t;i++)e.push(this.long());return e}string(){const t=this.short(),e=this.arrayView.slice(this.offset,this.offset+t);return this.offset+=t,function(t){var e,i=[];for(e=0;e<t.length;e++)0==(128&t[e])?i.push(127&t[e]):e+1<t.length&&192==(224&t[e])&&128==(192&t[e+1])?i.push((31&t[e])<<6|63&t[e+1]):e+2<t.length&&224==(240&t[e])&&128==(192&t[e+1])&&128==(192&t[e+2])?i.push((15&t[e])<<12|(63&t[e+1])<<6|63&t[e+2]):e+3<t.length&&240==(248&t[e])&&128==(192&t[e+1])&&128==(192&t[e+2])&&128==(192&t[e+3])&&i.push((7&t[e])<<18|(63&t[e+1])<<12|(63&t[e+2])<<6|63&t[e+3]);return String.fromCharCode.apply(null,i)}(e)}list(){const t=h[this.byte()],e=this.int(),i=[];for(let s=0;s<e;s++)i.push(this[t]());return{type:t,value:i}}compound(){const t={};for(;;){const e=h[this.byte()];if(\"end\"===e)break;const i=this.string(),s=this[e]();t[i]={type:e,value:s}}return t}}class c{constructor(t=!1){this.byte=this.writeNum.bind(this,\"setInt8\",1),this.short=this.writeNum.bind(this,\"setInt16\",2),this.int=this.writeNum.bind(this,\"setInt32\",4),this.float=this.writeNum.bind(this,\"setFloat32\",4),this.double=this.writeNum.bind(this,\"setFloat64\",8),this.offset=0,this.littleEndian=t,this.buffer=new ArrayBuffer(1024),this.arrayView=new Uint8Array(this.buffer),this.dataView=new DataView(this.buffer)}accommodate(t){const e=this.offset+t;if(this.buffer.byteLength>=e)return;let i=this.buffer.byteLength;for(;i<e;)i*=2;const s=new ArrayBuffer(i),n=new Uint8Array(s);n.set(this.arrayView),this.offset>this.buffer.byteLength&&n.fill(0,this.buffer.byteLength,this.offset),this.buffer=s,this.dataView=new DataView(s),this.arrayView=n}getData(){return this.accommodate(0),this.arrayView.slice(0,this.offset)}end(t){}writeNum(t,e,i){this.accommodate(e),this.dataView[t](this.offset,i,this.littleEndian),this.offset+=e}long(t){this.int(t[0]),this.int(t[1])}byteArray(t){this.int(t.length),this.accommodate(t.length),this.arrayView.set(t,this.offset),this.offset+=t.length}intArray(t){this.int(t.length);for(let e=0;e<t.length;e++)this.int(t[e])}longArray(t){this.int(t.length);for(let e=0;e<t.length;e++)this.long(t[e])}string(t){const e=function(t){var e,i,s=[];for(e=0;e<t.length;e++)(i=t.charCodeAt(e))<128?s.push(i):i<2048?(s.push(192|i>>6),s.push(128|63&i)):i<65536?(s.push(224|i>>12),s.push(128|i>>6&63),s.push(128|63&i)):(s.push(240|i>>18&7),s.push(128|i>>12&63),s.push(128|i>>6&63),s.push(128|63&i));return s}(t);this.short(e.length),this.accommodate(e.length),this.arrayView.set(e,this.offset),this.offset+=e.length}list(t){this.byte(l[t.type]),this.int(t.value.length),t.value;for(let e=0;e<t.value.length;e++)this[t.type](t.value[e])}compound(t){for(const e in t)this.byte(l[t[e].type]),this.string(e),this[t[e].type](t[e].value);this.byte(l.end)}}function d(t,e){const i=new u(t,e);if(i.byte()!==l.compound)throw new Error(\"Top tag should be a compound\");return{name:i.string(),value:i.compound()}}function f(e,i){return d(t.inflate(e),i)}function g(t,e){return 2===(i=new Uint8Array(t.slice(0,2))).length&&31===i[0]&&139===i[1]?{compressed:!0,result:f(t,e)}:{compressed:!1,result:d(t,e)};var i}function p(t){const e=[];for(let i=0;i<32;i+=1)for(let s=0;s<32;s+=1){const n=4*((31&i)+32*(31&s));if(0===t[n+3])continue;const r=(t[n]<<16)+(t[n+1]<<8)+t[n+2],o=(t[n+4096]<<24)+(t[n+4097]<<16)+(t[n+4098]<<8)+t[n+4099],a=4096*r,l=(t[a]<<24)+(t[a+1]<<16)+(t[a+2]<<8)+t[a+3],h=t[a+4],u=t.slice(a+5,a+4+l);e.push({x:i,z:s,timestamp:o,compression:h,data:u})}return e}function m(t,e,i){const s=w(t,e,i);switch(s.compression){case 1:case 2:s.nbt=f(s.data);break;case 3:s.nbt=d(s.data);break;default:throw new Error(`Invalid compression mode ${s.compression}`)}return s}function v(t,e){const i=new c(e);return i.byte(l.compound),i.string(t.name),i.compound(t.value),i.getData()}function b(e,i,s){const n=v(e,i);return t[s?\"deflate\":\"gzip\"](n)}function S(t,e,i){return e?b(t,i):v(t,i)}function E(t){let e=0;for(const i of t)e+=Math.ceil(i.data.length/4096);const i=new Uint8Array(8192+4096*e),s=new DataView(i.buffer);let n=2;for(const e of t){const t=4*((31&e.x)+32*(31&e.z)),r=Math.ceil(e.data.length/4096);s.setInt8(t,n>>16),s.setInt16(t+1,65535&n),s.setInt8(t+3,r),s.setInt32(t+4096,e.timestamp);const o=4096*n;s.setInt32(o,e.data.length+1),s.setInt8(o+4,e.compression),i.set(e.data,o+5),n+=r}return i}function I(t,e,i,s){const n=w(t,e,i);switch(n.compression){case 1:n.data=b(s);break;case 2:n.data=b(s,!1,!0);break;case 3:n.data=v(s);break;default:throw new Error(`Invalid compression mode ${n.compression}`)}return n}function w(t,e,i){const s=t.find((t=>t.x===e&&t.z===i));if(void 0===s)throw new Error(`Cannot find chunk [${e}, ${i}]`);return s}function A(t,e,i){if(!t[e])throw new Error(`Missing ${e} tag`);if(t[e].type!==i)throw new Error(`Expected ${e} to be of type ${i}, but found ${t[e].type}`);return t[e].value}function N(t,e,i,s){const n=A(t,e,\"list\");if(n.type!==i)throw new Error(`Expected ${e} to be a list of ${i}s, but found ${n.type}s`);if(s&&n.value.length!==s)throw new Error(`Expected ${e} to be a list of length ${s}, but found length ${n.value.length}`);return n.value}function F(t,e){try{return t()}catch(t){return e}}var _,y,P,R,B;!function(t){function e(t){return\"object\"==typeof t&&null!==t?t:void 0}t.readNumber=function(t){return\"number\"==typeof t?t:void 0},t.readInt=function(t){return\"number\"==typeof t?Math.floor(t):void 0},t.readString=function(t){return\"string\"==typeof t?t:void 0},t.readBoolean=function(t){return\"boolean\"==typeof t?t:void 0},t.readObject=e,t.readArray=function(t,e){if(Array.isArray(t))return t.map((t=>e(t)))},t.readMap=function(t,i){var s;const n=null!==(s=e(t))&&void 0!==s?s:{};return Object.fromEntries(Object.entries(n).map((([t,e])=>[t,i(e)])))},t.compose=function(t,e,i){const s=e(t);return s?i(s):void 0}}(_||(_={}));class x{constructor(t,e={}){this.name=t,this.properties=e}getName(){return this.name}getProperties(){return this.properties}getProperty(t){return this.properties[t]}isFluid(){return\"minecraft:water\"===this.name||\"minecraft:lava\"===this.name}equals(t){return this.name===t.name&&Object.keys(this.properties).every((e=>t.properties[e]===this.properties[e]))}toString(){return 0===Object.keys(this.properties).length?this.name:`${this.name}[${Object.entries(this.properties).map((([t,e])=>t+\"=\"+e)).join(\",\")}]`}static fromNbt(t){const e=A(t.value,\"Name\",\"string\"),i=F((()=>A(t.value,\"Properties\",\"compound\")),{}),s=Object.keys(i).reduce(((t,e)=>Object.assign(Object.assign({},t),{[e]:A(i,e,\"string\")})),{});return new x(e,s)}static fromJson(t){var e,i;const s=null!==(e=_.readObject(t))&&void 0!==e?e:{},n=null!==(i=_.readString(s.Name))&&void 0!==i?i:\"minecraft:stone\",r=_.readMap(s.Properties,(t=>{var e;return null!==(e=_.readString(t))&&void 0!==e?e:\"\"}));return new x(n,r)}}x.AIR=new x(\"minecraft:air\");class T{constructor(t){this.minY=t,this.storage=Array(T.SIZE),this.palette=[x.AIR]}get minBlockY(){return this.minY<<4}index(t,e,i){return(t<<8)+(e<<4)+i}getBlockState(t,e,i){var s;const n=this.storage[this.index(t,e,i)];return null!==(s=this.palette[n])&&void 0!==s?s:x.AIR}setBlockState(t,e,i,s){let n=this.palette.findIndex((t=>t.equals(s)));-1===n&&(n=this.palette.length,this.palette.push(s)),this.storage[this.index(t,e,i)]=n}}T.WIDTH=16,T.SIZE=T.WIDTH*T.WIDTH*T.WIDTH;class C{constructor(t,e,i){this.minY=t,this.height=e,this.pos=i,this.sections=Array(this.sectionsCount).fill(null)}get maxY(){return this.minY+this.height}get minSection(){return this.minY>>4}get maxSection(){return 1+(this.maxY-1>>4)}get sectionsCount(){return this.maxSection-this.minSection}getSectionIndex(t){return(t>>4)-this.minSection}getBlockState(t){var e;const[i,s,n]=t,r=this.sections[this.getSectionIndex(s)];return null!==(e=null==r?void 0:r.getBlockState(15&i,15&s,15&n))&&void 0!==e?e:x.AIR}setBlockState(t,e){const[i,s,n]=t,r=this.getSectionIndex(s);let o=this.sections[r];if(null===o){if(e.equals(x.AIR))return;o=this.getOrCreateSection(r)}o.setBlockState(15&i,15&s,15&n,e)}getOrCreateSection(t){return null==this.sections[t]&&(this.sections[t]=new T(this.minSection+t)),this.sections[t]}}!function(t){function e(t,e){return BigInt(4294967295&t)|BigInt(4294967295&e)<<BigInt(32)}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.toLong=function(t){return e(t[0],t[1])},t.asLong=e,t.minBlockX=function(t){return t[0]<<4},t.minBlockZ=function(t){return t[1]<<4},t.maxBlockX=function(t){return 15+(t[0]<<4)},t.maxBlockZ=function(t){return 15+(t[1]<<4)}}(y||(y={}));class k{constructor(t,e=[],i=[]){this.size=t,this.palette=e,this.blocks=i,this.blocksMap=[],i.forEach((e=>{if(!this.isInside(e.pos))throw new Error(`Found block at ${e.pos} which is outside the structure bounds ${this.size}`);this.blocksMap[e.pos[0]*t[1]*t[2]+e.pos[1]*t[2]+e.pos[2]]=e}))}getSize(){return this.size}addBlock(t,e,i,s){if(!this.isInside(t))throw new Error(`Cannot add block at ${t} outside the structure bounds ${this.size}`);const n=new x(e,i);let r=this.palette.findIndex((t=>t.equals(n)));return-1===r&&(r=this.palette.length,this.palette.push(n)),this.blocks.push({pos:t,state:r,nbt:s}),this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]]={pos:t,state:r,nbt:s},this}getBlocks(){return this.blocks.map((t=>({pos:t.pos,state:this.palette[t.state],nbt:t.nbt})))}getBlock(t){if(!this.isInside(t))return null;const e=this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]];if(!e)return null;return{pos:e.pos,state:this.palette[e.state],nbt:e.nbt}}isInside(t){return t[0]>=0&&t[0]<this.size[0]&&t[1]>=0&&t[1]<this.size[1]&&t[2]>=0&&t[2]<this.size[2]}static fromNbt(t){const e=N(t.value,\"size\",\"int\",3),i=N(t.value,\"palette\",\"compound\").map((t=>x.fromNbt({name:\"\",value:t}))),s=N(t.value,\"blocks\",\"compound\").map((t=>({pos:N(t,\"pos\",\"int\",3),state:A(t,\"state\",\"int\"),nbt:F((()=>A(t,\"nbt\",\"compound\")),void 0)})));return new k(e,i,s)}}function D(t){let e=null;return()=>(null==e&&(e=t()),e)}function M(t,e,i){const s=t.get(e);if(s)return s;const n=i(e);return t.set(e,n),n}function O(t){return t*t}function L(t,e,i){return Math.max(e,Math.min(i,t))}function U(t,e,i){return e+t*(i-e)}function Y(t,e,i,s,n,r){return U(e,U(t,i,s),U(t,n,r))}function G(t,e,i,s,n,r,o,a,l,h,u){return U(i,Y(t,e,s,n,r,o),Y(t,e,a,l,h,u))}function H(t,e,i){return i<0?t:i>1?e:U(i,t,e)}function V(t,e,i){return(t-e)/(i-e)}function z(t){return t*t*t*(t*(6*t-15)+10)}function j(t,e,i,s,n){return U(V(t,e,i),s,n)}function J(t,e,i,s,n){return H(s,n,V(t,e,i))}function X(t,e,i){let s=e-t;for(;s>0;){const e=Math.floor(s/2),n=t+e;i(n)?s=e:(t=n+1,s-=e+1)}return t}function Z(t,e,i){let s=BigInt(3129871*t)^BigInt(i)*BigInt(116129781)^BigInt(e);return s=s*s*BigInt(42317861)+s*BigInt(11),s>>BigInt(16)}function W(t,e,i,s,n,r,o,a){return BigInt(t)<<BigInt(56)|BigInt(e)<<BigInt(48)|BigInt(i)<<BigInt(40)|BigInt(s)<<BigInt(32)|BigInt(n)<<BigInt(24)|BigInt(r)<<BigInt(16)|BigInt(o)<<BigInt(8)|BigInt(a)}class q{constructor(t){this.seed=BigInt(0),this.setSeed(t)}fork(){return new q(this.nextLong())}forkPositional(){return new $(this.seed)}setSeed(t){this.seed=t^q.MULTIPLIER&q.MODULUS_MASK}advance(){this.seed=this.seed*q.MULTIPLIER+q.INCREMENT&q.MODULUS_MASK}consume(t){for(let e=0;e<t;e+=1)this.advance()}next(t){this.advance();const e=Number(this.seed>>BigInt(q.MODULUS_BITS-t));return e>2147483647?e-4294967296:e}nextInt(t){if(void 0===t)return this.next(32);if(0==(t&t-1))return Number(BigInt(t)*BigInt(this.next(31))>>BigInt(31));let e,i;for(;(e=this.next(31))-(i=e%t)+(t-1)<0;);return i}nextLong(){return(BigInt(this.next(32))<<BigInt(32))+BigInt(this.next(32))}nextFloat(){return this.next(24)*q.FLOAT_MULTIPLIER}nextDouble(){const t=this.next(30);return this.advance(),t*q.DOUBLE_MULTIPLIER}}q.MODULUS_BITS=48,q.MODULUS_MASK=BigInt(\"281474976710655\"),q.MULTIPLIER=BigInt(\"25214903917\"),q.INCREMENT=BigInt(\"11\"),q.FLOAT_MULTIPLIER=1/Math.pow(2,24),q.DOUBLE_MULTIPLIER=1/Math.pow(2,30);class ${constructor(t){this.seed=t}at(t,e,i){const s=Z(t,e,i);return new q(s^this.seed)}fromHashOf(t){const i=e(t,{asBytes:!0}),s=W(i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7]);return new q(s^this.seed)}}class K{constructor(t){this.seed=[BigInt(0),BigInt(0)],this.seed=t}static create(t){return new K(K.upgradeSeedTo128bit(t))}static mixStafford13(t){return((t=((t=(t^t>>BigInt(30))*BigInt(\"-4658895280553007687\")&BigInt(\"0xFFFFFFFFFFFFFFFF\"))^t>>BigInt(27))*BigInt(\"-7723592293110705685\")&BigInt(\"0xFFFFFFFFFFFFFFFF\"))^t>>BigInt(31))&BigInt(\"0xFFFFFFFFFFFFFFFF\")}static upgradeSeedTo128bit(t){t<0&&(t+=BigInt(\"0x10000000000000000\"));const e=t^K.SILVER_RATIO_64,i=e+K.GOLDEN_RATIO_64&BigInt(\"0xFFFFFFFFFFFFFFFF\");return[K.mixStafford13(e),K.mixStafford13(i)]}static rotateLeft(t,e){return t<<e&BigInt(\"0xFFFFFFFFFFFFFFFF\")|t>>BigInt(64)-e}setSeed(t){this.seed=K.upgradeSeedTo128bit(t)}fork(){return new K([this.next(),this.next()])}forkPositional(){return new Q(this.next(),this.next())}next(){const t=this.seed[0];let e=this.seed[1];const i=K.rotateLeft(t+e&BigInt(\"0xFFFFFFFFFFFFFFFF\"),BigInt(17))+t&BigInt(\"0xFFFFFFFFFFFFFFFF\");return e^=t,this.seed=[K.rotateLeft(t,BigInt(49))^e^e<<BigInt(21)&BigInt(\"0xFFFFFFFFFFFFFFFF\"),K.rotateLeft(e,BigInt(28))],i}nextLong(){let t=this.next();return t>BigInt(\"0x8000000000000000\")&&(t-=BigInt(\"0x10000000000000000\")),t}consume(t){let e=this.seed[0],i=this.seed[1];for(let s=0;s<t;s+=1)i^=e,e=K.rotateLeft(e,BigInt(49))^i^i<<BigInt(21),i=K.rotateLeft(i,BigInt(28));this.seed=[e,i]}nextBits(t){return this.next()>>BigInt(64-t)}nextInt(t){let e=this.next()&BigInt(4294967295);if(t){const i=BigInt(t);let s=e*i,n=s&BigInt(4294967295);if(n<i){const t=((~i&BigInt(4294967295))+BigInt(1))%i;for(;n<t;)e=this.next()&BigInt(4294967295),s=e*i,n=s&BigInt(4294967295)}const r=s>>BigInt(32);return Number(r)}{let t=Number(e);return t>=2147483648&&(t-=4294967296),t}}nextFloat(){return Number(this.nextBits(24))*K.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*K.DOUBLE_MULTIPLIER}parityConfigString(){return\"seedLo: \"+this.seed[0]+\", seedHi: \"+this.seed[1]}}K.SILVER_RATIO_64=BigInt(\"7640891576956012809\"),K.GOLDEN_RATIO_64=BigInt(\"-7046029254386353131\"),K.FLOAT_MULTIPLIER=1/Math.pow(2,24),K.DOUBLE_MULTIPLIER=11102230246251565e-32;class Q{constructor(t,e){this.seedLo=t,this.seedHi=e}at(t,e,i){const s=Z(t,e,i)^this.seedLo;return new K([s,this.seedHi])}fromHashOf(t){const i=e(t,{asBytes:!0}),s=W(i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7]),n=W(i[8],i[9],i[10],i[11],i[12],i[13],i[14],i[15]);return new K([s^this.seedLo,n^this.seedHi])}}class tt{constructor(t){this.xo=256*t.nextDouble(),this.yo=256*t.nextDouble(),this.zo=256*t.nextDouble(),this.p=Array(256);for(let t=0;t<256;t+=1)this.p[t]=t;for(let e=0;e<256;e+=1){const i=t.nextInt(256-e),s=this.p[e];this.p[e]=this.p[e+i],this.p[e+i]=s}}sample2D(t,e){let i,s,n;const r=(t+e)*tt.F2,o=Math.floor(t+r),a=t-(o-(i=(o+(s=Math.floor(e+r)))*tt.G2));let l,h;a>(n=e-(s-i))?(l=1,h=0):(l=0,h=1);const u=a-l+tt.G2,c=n-h+tt.G2,d=a-1+2*tt.G2,f=n-1+2*tt.G2,g=255&o,p=255&s,m=this.P(g+this.P(p))%12,v=this.P(g+l+this.P(p+h))%12,b=this.P(g+1+this.P(p+1))%12;return 70*(this.getCornerNoise3D(m,a,n,0,.5)+this.getCornerNoise3D(v,u,c,0,.5)+this.getCornerNoise3D(b,d,f,0,.5))}sample(t,e,i){const s=.3333333333333333*(t+e+i),n=Math.floor(t+s),r=Math.floor(e+s),o=Math.floor(i+s),a=.16666666666666666*(n+r+o),l=t-(n-a),h=e-(r-a),u=i-(o-a);let c,d,f,g,p,m;l>=h?h>=u?(c=1,d=0,f=0,g=1,p=1,m=0):l>=u?(c=1,d=0,f=0,g=1,p=0,m=1):(c=0,d=0,f=1,g=1,p=0,m=1):h<u?(c=0,d=0,f=1,g=0,p=1,m=1):l<u?(c=0,d=1,f=0,g=0,p=1,m=1):(c=0,d=1,f=0,g=1,p=1,m=0);const v=l-c+.16666666666666666,b=h-d+.16666666666666666,S=u-f+.16666666666666666,E=l-g+.3333333333333333,I=h-p+.3333333333333333,w=u-m+.3333333333333333,A=l-.5,N=h-.5,F=u-.5,_=255&n,y=255&r,P=255&o,R=this.P(_+this.P(y+this.P(P)))%12,B=this.P(_+c+this.P(y+d+this.P(P+f)))%12,x=this.P(_+g+this.P(y+p+this.P(P+m)))%12,T=this.P(_+1+this.P(y+1+this.P(P+1)))%12;return 32*(this.getCornerNoise3D(R,l,h,u,.6)+this.getCornerNoise3D(B,v,b,S,.6)+this.getCornerNoise3D(x,E,I,w,.6)+this.getCornerNoise3D(T,A,N,F,.6))}P(t){return this.p[255&t]}getCornerNoise3D(t,e,i,s,n){let r,o=n-e*e-i*i-s*s;return o<0?r=0:(o*=o,r=o*o*tt.gradDot(t,e,i,s)),r}static gradDot(t,e,i,s){const n=tt.GRADIENT[15&t];return n[0]*e+n[1]*i+n[2]*s}}tt.GRADIENT=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1],[1,1,0],[0,-1,1],[-1,1,0],[0,-1,-1]],tt.F2=.5*(Math.sqrt(3)-1),tt.G2=(3-Math.sqrt(3))/6;class et{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>127?t-256:t;for(let e=0;e<256;e+=1){const i=t.nextInt(256-e),s=this.p[e];this.p[e]=this.p[e+i],this.p[e+i]=s}}sample(t,e,i,s=0,n=0){const r=t+this.xo,o=e+this.yo,a=i+this.zo,l=Math.floor(r),h=Math.floor(o),u=Math.floor(a),c=r-l,d=o-h,f=a-u;let g=0;if(0!==s){const t=n>=0&&n<d?n:d;g=Math.floor(t/s+1e-7)*s}return this.sampleAndLerp(l,h,u,c,d-g,f,d)}sampleAndLerp(t,e,i,s,n,r,o){const a=this.P(t),l=this.P(t+1),h=this.P(a+e),u=this.P(a+e+1),c=this.P(l+e),d=this.P(l+e+1),f=tt.gradDot(this.P(h+i),s,n,r),g=tt.gradDot(this.P(c+i),s-1,n,r),p=tt.gradDot(this.P(u+i),s,n-1,r),m=tt.gradDot(this.P(d+i),s-1,n-1,r),v=tt.gradDot(this.P(h+i+1),s,n,r-1),b=tt.gradDot(this.P(c+i+1),s-1,n,r-1),S=tt.gradDot(this.P(u+i+1),s,n-1,r-1),E=tt.gradDot(this.P(d+i+1),s-1,n-1,r-1);return G(z(s),z(o),z(r),f,g,p,m,v,b,S,E)}P(t){return 255&this.p[255&t]}}class it{constructor(t,e,i){if(t instanceof K){const s=t.forkPositional();this.noiseLevels=Array(i.length);for(let t=0;t<i.length;t++)if(0!==i[t]){const i=e+t;this.noiseLevels[t]=new et(s.fromHashOf(\"octave_\"+i))}}else{if(1-e<i.length)throw new Error(\"Positive octaves are not allowed when using LegacyRandom\");this.noiseLevels=Array(i.length);for(let s=-e;s>=0;s-=1)s<i.length&&0!==i[s]?this.noiseLevels[s]=new et(t):t.consume(262)}this.amplitudes=i,this.lowestFreqInputFactor=Math.pow(2,e),this.lowestFreqValueFactor=Math.pow(2,i.length-1)/(Math.pow(2,i.length)-1)}sample(t,e,i,s=0,n=0,r=!1){let o=0,a=this.lowestFreqInputFactor,l=this.lowestFreqValueFactor;for(let h=0;h<this.noiseLevels.length;h+=1){const u=this.noiseLevels[h];u&&(o+=this.amplitudes[h]*l*u.sample(it.wrap(t*a),r?-u.yo:it.wrap(e*a),it.wrap(i*a),s*a,n*a)),a*=2,l/=2}return o}getOctaveNoise(t){return this.noiseLevels[this.noiseLevels.length-1-t]}static wrap(t){return t-33554432*Math.floor(t/33554432+.5)}}class st{constructor(t,e,i,s){this.cellWidth=i,this.cellHeight=s,this.minLimitNoise=new it(t,-15,[1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0]),this.maxLimitNoise=new it(t,-15,[1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0]),this.mainNoise=new it(t,-7,[1,1,1,1,1,0,0,0]),this.xzScale=684.412*e.xzScale,this.yScale=684.412*e.yScale,this.xzMainScale=this.xzScale/e.xzFactor,this.yMainScale=this.yScale/e.yFactor}sample(t,e,i){let s;t=Math.floor(t/this.cellWidth),e=Math.floor(e/this.cellHeight),i=Math.floor(i/this.cellWidth);let n=0,r=1;for(let o=0;o<8;o+=1){if(s=this.mainNoise.getOctaveNoise(o),s){const o=this.xzMainScale*r,a=this.yMainScale*r,l=it.wrap(t*o),h=it.wrap(e*a),u=it.wrap(i*o);n+=s.sample(l,h,u,a,e*a)/r}r/=2}n=(n/10+1)/2,r=1;let o=0,a=0;for(let l=0;l<16;l+=1){const h=this.xzScale*r,u=this.yScale*r,c=it.wrap(t*h),d=it.wrap(e*u),f=it.wrap(i*h);n<1&&(s=this.minLimitNoise.getOctaveNoise(l))&&(o+=s.sample(c,d,f,u,e*u)/r),n>0&&(s=this.maxLimitNoise.getOctaveNoise(l))&&(a+=s.sample(c,d,f,u,e*u)/r),r/=2}return H(o/512,a/512,n)/128}}!function(t){t.fromJson=function(t){var e,i,s,n,r;const o=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{xzScale:null!==(i=_.readNumber(o.xz_scale))&&void 0!==i?i:1,yScale:null!==(s=_.readNumber(o.y_scale))&&void 0!==s?s:1,xzFactor:null!==(n=_.readNumber(o.xz_factor))&&void 0!==n?n:80,yFactor:null!==(r=_.readNumber(o.y_factor))&&void 0!==r?r:80}}}(P||(P={}));class nt{constructor(t,{firstOctave:e,amplitudes:i}){this.first=new it(t,e,i),this.second=new it(t,e,i);let s=1/0,n=-1/0;for(let t=0;t<i.length;t+=1)0!==i[t]&&(s=Math.min(s,t),n=Math.max(n,t));const r=.1*(1+1/(n-s+1));this.valueFactor=1/6/r}sample(t,e,i){const s=t*nt.INPUT_FACTOR,n=e*nt.INPUT_FACTOR,r=i*nt.INPUT_FACTOR;return(this.first.sample(t,e,i)+this.second.sample(s,n,r))*this.valueFactor}}nt.INPUT_FACTOR=1.0181268882175227,function(t){t.create=function(t,e){return{firstOctave:t,amplitudes:e}},t.fromJson=function(t){var e,i,s;const n=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{firstOctave:null!==(i=_.readInt(n.firstOctave))&&void 0!==i?i:0,amplitudes:null!==(s=_.readArray(n.amplitudes,(t=>{var e;return null!==(e=_.readNumber(t))&&void 0!==e?e:0})))&&void 0!==s?s:[]}}}(R||(R={}));class rt{constructor(t,e){const i=e[e.length-1],s=-e[0]+i+1,n=new Set(e),r=new tt(t);this.noiseLevels=Array(s),i>=0&&i<s&&n.has(0)&&(this.noiseLevels[i]=r);for(let e=i+1;e<s;e+=1)e>=0&&n.has(i-e)?this.noiseLevels[e]=new tt(t):t.consume(262);if(i>0)throw new Error(\"Positive octaves are not allowed\");this.highestFreqInputFactor=Math.pow(2,i),this.highestFreqValueFactor=1/(Math.pow(2,s)-1)}sample(t,e,i){let s=0,n=this.highestFreqInputFactor,r=this.highestFreqValueFactor;for(let o=0;o<this.noiseLevels.length;o+=1){const a=this.noiseLevels[o];a&&(s+=r*a.sample2D(t*n+(i?a.xo:0),e*n+(i?a.yo:0))),n/=2,r*=2}return s}}!function(t){t.fromJson=function(e,i){var s,n,r,o;if(\"number\"==typeof e)return new ot(e);const a=null!==(s=_.readObject(e))&&void 0!==s?s:{},l=new at(i(a.coordinate)),h=null!==(n=_.readArray(a.points,(t=>{var e;return null!==(e=_.readObject(t))&&void 0!==e?e:{}})))&&void 0!==n?n:[];if(0===h.length)return new ot(0);for(const e of h){const s=null!==(r=_.readNumber(e.location))&&void 0!==r?r:0,n=t.fromJson(e.value,i),a=null!==(o=_.readNumber(e.derivative))&&void 0!==o?o:0;l.addPoint(s,n,a)}return l}}(B||(B={}));class ot{constructor(t){this.value=t}apply(){return this.value}toJson(){return this.value}}class at{constructor(t,e=[],i=[],s=[]){this.coordinate=t,this.locations=e,this.values=i,this.derivatives=s}apply(t){const e=this.coordinate.apply(t),i=X(0,this.locations.length,(t=>e<this.locations[t]))-1,s=this.locations.length-1;if(i<0)return this.values[0].apply(t)+this.derivatives[0]*(e-this.locations[0]);if(i===s)return this.values[s].apply(t)+this.derivatives[s]*(e-this.locations[s]);const n=this.locations[i],r=this.locations[i+1],o=this.derivatives[i],a=this.derivatives[i+1],l=(e-n)/(r-n),h=this.values[i].apply(t),u=this.values[i+1].apply(t),c=o*(r-n)-(u-h),d=-a*(r-n)+(u-h);return U(l,h,u)+l*(1-l)*U(l,c,d)}addPoint(t,e,i=0){return this.locations.push(t),this.values.push(\"number\"==typeof e?new ot(e):e),this.derivatives.push(i),this}toJson(){return{coordinate:this.coordinate.toJson(),points:this.locations.map(((t,e)=>({location:t,value:this.values[e].toJson(),derivative:this.derivatives[e]})))}}}const lt=t=>[(t>>16&255)/256,(t>>8&255)/256,(255&t)/256],ht=[124/256,189/256,107/256],ut=lt(6396257),ct=lt(8431445),dt=lt(4764952),ft=lt(4159204),gt=lt(8431445),pt=lt(2129968),mt=t=>[t/8,1-t/32,64*t],vt={large_fern:()=>ht,tall_grass:()=>ht,grass_block:()=>ht,fern:()=>ht,grass:()=>ht,potted_fern:()=>ht,spruce_leaves:()=>ut,birch_leaves:()=>ct,oak_leaves:()=>dt,jungle_leaves:()=>dt,acacia_leaves:()=>dt,dark_oak_leaves:()=>dt,vine:()=>dt,water:()=>ft,bubble_column:()=>ft,cauldron:()=>ft,redstone_wire:t=>{var e;return(t=>{const e=t/15;return[.6*e+(e>0?.4:.3),L(e*e*.7-.5,0,1),L(e*e*.6-.7,0,1)]})(parseInt(null!==(e=t.power)&&void 0!==e?e:\"0\"))},sugar_cane:()=>ht,attached_melon_stem:()=>gt,attached_pumpkin_stem:()=>gt,melon_stem:t=>{var e;return mt(parseInt(null!==(e=t.age)&&void 0!==e?e:\"0\"))},pumpkin_stem:t=>{var e;return mt(parseInt(null!==(e=t.age)&&void 0!==e?e:\"0\"))},lily_pad:()=>pt};var bt;function St(...t){let e=0;for(const i of t)e+=i.length;const i=new Float32Array(e);let s=0;for(const e of t)i.set(e,s),s+=e.length;return i}function Et(t,e){const s=i.create();for(let n=0;n<t.length;n+=3)s[0]=t[n],s[1]=t[n+1],s[2]=t[n+2],i.transformMat4(s,s,e),t[n]=s[0],t[n+1]=s[1],t[n+2]=s[2]}!function(t){t.rotate=function(t,e,i){let{up:s,down:n,north:r,east:o,south:a,west:l}=t;switch(i){case 90:[r,o,a,l]=[o,a,l,r];break;case 180:[r,o,a,l]=[a,l,r,o];break;case 270:[r,o,a,l]=[l,r,o,a]}switch(e){case 90:[s,r,n,a]=[r,n,a,s];break;case 180:[s,r,n,a]=[n,a,s,r];break;case 270:[s,r,n,a]=[a,s,r,n]}return{up:s,down:n,north:r,east:o,south:a,west:l}}}(bt||(bt={}));class It{constructor(t,e,i){this.id=t,this.variants=e,this.multipart=i,this.variants=e}getModelVariants(t){if(this.variants){const e=Object.keys(this.variants).filter((e=>this.matchesVariant(e,t)));if(0===e.length)return[];const i=this.variants[e[0]];return[Array.isArray(i)?i[0]:i]}if(this.multipart){return this.multipart.filter((e=>!e.when||this.matchesCase(e.when,t))).map((t=>Array.isArray(t.apply)?t.apply[0]:t.apply))}return[]}getBuffers(t,e,i,r,o,a){var l,h,u,c;const d=this.getModelVariants(e),f=[],g=[],p=[],m=[];for(const v of d){const d=bt.rotate(a,null!==(l=v.x)&&void 0!==l?l:0,null!==(h=v.y)&&void 0!==h?h:0),b=r.getBlockModel(v.model).getBuffers(t,e,i,o,d);if(v.x||v.y){const t=s.create();s.identity(t),s.translate(t,t,[8,8,8]),s.rotateY(t,t,-n.toRadian(null!==(u=v.y)&&void 0!==u?u:0)),s.rotateX(t,t,-n.toRadian(null!==(c=v.x)&&void 0!==c?c:0)),s.translate(t,t,[-8,-8,-8]),Et(b.position,t)}f.push(b.position),g.push(...b.texCoord),p.push(...b.tintColor),m.push(...b.index),o+=b.texCoord.length/2}const v=s.create();s.identity(v),s.scale(v,v,[.0625,.0625,.0625]);const b=St(...f);return Et(b,v),{position:b,texCoord:g,tintColor:p,index:m}}matchesVariant(t,e){return t.split(\",\").every((t=>{const[i,s]=t.split(\"=\");return e[i]===s}))}matchesCase(t,e){if(Array.isArray(t.OR))return t.OR.some((t=>this.matchesCase(t,e)));const i=t;return Object.keys(i).every((t=>i[t].split(\"|\").includes(e[t])))}static fromJson(t,e){return new It(t,e.variants,e.multipart)}}const wt={0:[0,3,2,3,2,1,0,1],90:[2,3,2,1,0,1,0,3],180:[2,1,0,1,0,3,2,3],270:[0,1,0,3,2,3,2,1]},At={x:[1,0,0],y:[0,1,0],z:[0,0,1]},Nt=1.41421356237,Ft={x:[1,Nt,Nt],y:[Nt,1,Nt],z:[Nt,Nt,1]};class _t{constructor(t,e,i,s){this.id=t,this.parent=e,this.textures=i,this.elements=s,this.flattened=!1}getBuffers(t,e,i,s,n){var r;const o=[],a=[],l=[],h=[];for(const u of null!==(r=this.elements)&&void 0!==r?r:[]){const r=this.getElementBuffers(t,e,u,s,i,n);o.push(r.position),a.push(...r.texCoord),l.push(...r.tintColor),h.push(...r.index),s+=r.texCoord.length/2}return{position:St(...o),texCoord:a,tintColor:l,index:h}}getElementBuffers(t,e,r,o,a,l){var h,u,c,d,f,g,p,m,v,b,S,E;const I=r.from[0],w=r.from[1],A=r.from[2],N=r.to[0],F=r.to[1],_=r.to[2],y=[],P=[],R=[],B=[],x=(i,s,n)=>{var r,l,h,u,c,d,f,g,p,m,v,b;const[S,E,I,w]=a.getTextureUV(this.getTexture(i.texture)),A=(I-S)/16,N=(w-E)/16,F=A/16,_=N/16;s[0]=(null!==(l=null===(r=i.uv)||void 0===r?void 0:r[0])&&void 0!==l?l:s[0])*A+F,s[1]=(null!==(u=null===(h=i.uv)||void 0===h?void 0:h[1])&&void 0!==u?u:s[1])*N+_,s[2]=(null!==(d=null===(c=i.uv)||void 0===c?void 0:c[2])&&void 0!==d?d:s[2])*A-F,s[3]=(null!==(g=null===(f=i.uv)||void 0===f?void 0:f[3])&&void 0!==g?g:s[3])*N-_;const x=wt[null!==(p=i.rotation)&&void 0!==p?p:0];P.push(S+s[x[0]],E+s[x[1]],S+s[x[2]],E+s[x[3]],S+s[x[4]],E+s[x[5]],S+s[x[6]],E+s[x[7]]);const T=(null!==(m=i.tintindex)&&void 0!==m?m:-1)>=0&&null!==(b=null===(v=vt[t.slice(10)])||void 0===v?void 0:v.call(vt,e))&&void 0!==b?b:[1,1,1];R.push(...T,...T,...T,...T),y.push(...n),B.push(o,o+1,o+2,o,o+2,o+3),o+=4};!(null===(u=null===(h=r.faces)||void 0===h?void 0:h.up)||void 0===u?void 0:u.texture)||r.faces.up.cullface&&l[r.faces.up.cullface]||x(r.faces.up,[I,16-_,N,16-A],[I,F,_,N,F,_,N,F,A,I,F,A]),!(null===(d=null===(c=r.faces)||void 0===c?void 0:c.down)||void 0===d?void 0:d.texture)||r.faces.down.cullface&&l[r.faces.down.cullface]||x(r.faces.down,[16-_,16-N,16-A,16-I],[I,w,A,N,w,A,N,w,_,I,w,_]),!(null===(g=null===(f=r.faces)||void 0===f?void 0:f.south)||void 0===g?void 0:g.texture)||r.faces.south.cullface&&l[r.faces.south.cullface]||x(r.faces.south,[I,16-F,N,16-w],[I,w,_,N,w,_,N,F,_,I,F,_]),!(null===(m=null===(p=r.faces)||void 0===p?void 0:p.north)||void 0===m?void 0:m.texture)||r.faces.north.cullface&&l[r.faces.north.cullface]||x(r.faces.north,[16-N,16-F,16-I,16-w],[N,w,A,I,w,A,I,F,A,N,F,A]),!(null===(b=null===(v=r.faces)||void 0===v?void 0:v.east)||void 0===b?void 0:b.texture)||r.faces.east.cullface&&l[r.faces.east.cullface]||x(r.faces.east,[16-_,16-F,16-A,16-w],[N,w,_,N,w,A,N,F,A,N,F,_]),!(null===(E=null===(S=r.faces)||void 0===S?void 0:S.west)||void 0===E?void 0:E.texture)||r.faces.west.cullface&&l[r.faces.west.cullface]||x(r.faces.west,[A,16-F,_,16-w],[I,w,A,I,w,_,I,F,_,I,F,A]);const T=s.create();if(s.identity(T),r.rotation){const t=i.fromValues(...r.rotation.origin);s.translate(T,T,t),s.rotate(T,T,n.toRadian(r.rotation.angle),At[r.rotation.axis]),r.rotation.rescale&&s.scale(T,T,Ft[r.rotation.axis]),i.negate(t,t),s.translate(T,T,t)}const C=new Float32Array(y);return Et(C,T),{position:C,texCoord:P,tintColor:R,index:B}}getTexture(t){for(var e,i;t.startsWith(\"#\");)t=null!==(i=null===(e=this.textures)||void 0===e?void 0:e[t.slice(1)])&&void 0!==i?i:\"\";return t.startsWith(\"minecraft:\")||(t=\"minecraft:\"+t),t}flatten(t){var e;if(!this.flattened&&this.parent){const i=t.getBlockModel(this.parent);if(!i)return console.warn(`parent ${this.parent} does not exist!`),void(this.flattened=!0);i.flatten(t),this.elements||(this.elements=i.elements),this.textures||(this.textures={}),Object.keys(null!==(e=i.textures)&&void 0!==e?e:{}).forEach((t=>{this.textures[t]||(this.textures[t]=i.textures[t])})),this.flattened=!0}}static fromJson(t,e){let i=e.parent;return i&&!i.startsWith(\"minecraft:\")&&(i=\"minecraft:\"+i),new _t(t,i,e.textures,e.elements)}}class yt{constructor(t,e,i){this.gl=t,this.program=this.initShaderProgram(e,i)}getProgram(){return this.program}initShaderProgram(t,e){const i=this.loadShader(this.gl.VERTEX_SHADER,t),s=this.loadShader(this.gl.FRAGMENT_SHADER,e),n=this.gl.createProgram();if(this.gl.attachShader(n,i),this.gl.attachShader(n,s),this.gl.linkProgram(n),!this.gl.getProgramParameter(n,this.gl.LINK_STATUS))throw new Error(`Unable to link shader program: ${this.gl.getProgramInfoLog(n)}`);return n}loadShader(t,e){const i=this.gl.createShader(t);if(this.gl.shaderSource(i,e),this.gl.compileShader(i),!this.gl.getShaderParameter(i,this.gl.COMPILE_STATUS)){const e=new Error(`Compiling ${t===this.gl.VERTEX_SHADER?\"vertex\":\"fragment\"} shader: ${this.gl.getShaderInfoLog(i)}`);throw this.gl.deleteShader(i),e}return i}}function Pt(t,e,i,s,n){const r=new It(\"\",{\"\":{model:\"\"}},void 0),o={getBlockModel:()=>n};return n.flatten(o),r.getBuffers(t,{},e,o,i,s)}function Rt(t,e,i,s,n,o){const a=n.up?16:[14.2,12.5,10.5,9,7,5.3,3.7,1.9,16,16,16,16,16,16,16,16][i];return Pt(`minecraft:${t}`,s,e,n,new _t(\"\",\"\",{still:`minecraft:block/${t}_still`,flow:`minecraft:block/${t}_flow`},[{from:[0,0,0],to:[16,a,16],faces:{up:{texture:\"#still\",tintindex:o,cullface:r.UP},down:{texture:\"#still\",tintindex:o,cullface:r.DOWN},north:{texture:\"#flow\",tintindex:o,cullface:r.NORTH},east:{texture:\"#flow\",tintindex:o,cullface:r.EAST},south:{texture:\"#flow\",tintindex:o,cullface:r.SOUTH},west:{texture:\"#flow\",tintindex:o,cullface:r.WEST}}}]))}const Bt={\"minecraft:water\":(t,e,i,s)=>Rt(\"water\",t,parseInt(e.level),i,s,0),\"minecraft:lava\":(t,e,i,s)=>Rt(\"lava\",t,parseInt(e.level),i,s),\"minecraft:chest\":(t,e,i)=>function(t,e,i,s){return Pt(\"minecraft:chest\",s,t,{},new _t(\"\",\"\",{0:\"minecraft:block/chest\"},[{from:[1,0,1],to:[15,14,15],faces:{up:{texture:\"#0\"},down:{texture:\"#0\"},north:{texture:\"#0\"},east:{texture:\"#0\"},south:{texture:\"#0\"},west:{texture:\"#0\"}}}]))}(t,e.facing,e.type,i)},xt=new Set(Object.keys(Bt));class Tt{constructor(t,e,i,s){var n,r;this.gl=t,this.structure=e,this.resources=i,this.chunks=[],(null==s?void 0:s.facesPerBuffer)&&console.warn(\"webgl render warning: facesPerBuffer option has been removed in favor of chunkSize\"),this.chunkSize=null!==(n=null==s?void 0:s.chunkSize)&&void 0!==n?n:16,this.useInvisibleBlockBuffer=null===(r=null==s?void 0:s.useInvisibleBlockBuffer)||void 0===r||r,this.shaderProgram=new yt(t,\"\\n attribute vec4 vertPos;\\n attribute vec2 texCoord;\\n attribute vec3 tintColor;\\n attribute vec3 normal;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vTexCoord = texCoord;\\n vTintColor = tintColor;\\n vLighting = normal.y * 0.2 + abs(normal.z) * 0.1 + 0.8;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n uniform sampler2D sampler;\\n\\n void main(void) {\\n vec4 texColor = texture2D(sampler, vTexCoord);\\n if(texColor.a < 0.01) discard;\\n gl_FragColor = vec4(texColor.xyz * vTintColor * vLighting, texColor.a);\\n }\\n\").getProgram(),this.gridShaderProgram=new yt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 vertColor;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = vertColor;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.colorShaderProgram=new yt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 blockPos;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = blockPos / 256.0;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.outlineBuffers=this.getOutlineBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers(),this.atlasTexture=this.getBlockTexture(),this.projMatrix=this.getPerspective(),this.activeShader=this.shaderProgram,this.initialize()}setStructure(t){this.structure=t,this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers()}initialize(){this.gl.enable(this.gl.DEPTH_TEST),this.gl.depthFunc(this.gl.LEQUAL),this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA),this.gl.enable(this.gl.CULL_FACE),this.gl.cullFace(this.gl.BACK)}getBlockTexture(){const t=this.gl.createTexture();return this.gl.bindTexture(this.gl.TEXTURE_2D,t),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,this.resources.getTextureAtlas()),this.gl.generateMipmap(this.gl.TEXTURE_2D),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.NEAREST),t}getPerspective(){const t=70*Math.PI/180,e=this.gl.canvas.clientWidth/this.gl.canvas.clientHeight,i=s.create();return s.perspective(i,t,e,.1,500),i}getChunk(t){const e=2*Math.abs(t[0])+(t[0]<0?1:0),i=2*Math.abs(t[1])+(t[1]<0?1:0),s=2*Math.abs(t[2])+(t[2]<0?1:0);return this.chunks[e]||(this.chunks[e]=[]),this.chunks[e][i]||(this.chunks[e][i]=[]),this.chunks[e][i][s]||(this.chunks[e][i][s]={positions:[],textureCoordinates:[],tintColors:[],blockPositions:[],normals:[],indices:[],indexOffset:0}),this.chunks[e][i][s]}updateStructureBuffers(t){var e;const n=(t,e,n)=>{const r=s.create();s.translate(r,r,e),Et(t.position,r),n.positions.push(t.position),n.textureCoordinates.push(...t.texCoord),n.tintColors.push(...t.tintColor);for(let e=0;e<t.position.length;e+=12){const s=i.fromValues(t.position[e],t.position[e+1],t.position[e+2]),r=i.fromValues(t.position[e+3],t.position[e+4],t.position[e+5]),o=i.fromValues(t.position[e+6],t.position[e+7],t.position[e+8]);i.subtract(r,r,s),i.subtract(o,o,s),i.cross(r,r,o),i.normalize(r,r),n.normals.push(...r,...r,...r,...r)}for(let i=0;i<t.texCoord.length/2;i+=1)n.blockPositions.push(...e);n.indices.push(...t.index),n.indexOffset+=t.texCoord.length/2},o=t=>{t.positions=[],t.textureCoordinates=[],t.tintColors=[],t.blockPositions=[],t.normals=[],t.indices=[],t.indexOffset=0},a=t=>{t.buffer?(this.updateBuffer(t.buffer.position,this.gl.ARRAY_BUFFER,St(...t.positions)),this.updateBuffer(t.buffer.texCoord,this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),this.updateBuffer(t.buffer.tintColor,this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),this.updateBuffer(t.buffer.normal,this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),this.updateBuffer(t.buffer.blockPos,this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),this.updateBuffer(t.buffer.index,this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),t.buffer.length=t.indices.length):t.buffer={position:this.createBuffer(this.gl.ARRAY_BUFFER,St(...t.positions)),texCoord:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),tintColor:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),blockPos:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),normal:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),index:this.createBuffer(this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),length:t.indices.length}};let l;t?t.forEach((t=>{const e=this.getChunk(t);o(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{o(t)}))))));for(const s of this.structure.getBlocks()){const o=s.state.getName(),a=s.state.getProperties(),h=null!==(e=this.resources.getDefaultBlockProperties(o))&&void 0!==e?e:{};Object.entries(h).forEach((([t,e])=>{a[t]||(a[t]=e)}));const u=[Math.floor(s.pos[0]/this.chunkSize),Math.floor(s.pos[1]/this.chunkSize),Math.floor(s.pos[2]/this.chunkSize)];if(t&&!t.some((t=>i.equals(t,u))))continue;const c=this.getChunk(u);try{const t=this.resources.getBlockDefinition(o),e={up:this.needsCull(s,r.UP),down:this.needsCull(s,r.DOWN),west:this.needsCull(s,r.WEST),east:this.needsCull(s,r.EAST),north:this.needsCull(s,r.NORTH),south:this.needsCull(s,r.SOUTH)};t&&(l=t.getBuffers(o,a,this.resources,this.resources,c.indexOffset,e),n(l,s.pos,c)),xt.has(o)&&(l=Bt[o](c.indexOffset,a,this.resources,e),n(l,s.pos,c))}catch(t){console.error(`Error rendering block ${o}`,t)}}t?t.forEach((t=>{const e=this.getChunk(t);a(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{a(t)}))))))}needsCull(t,e){var i,s;const n=null===(i=this.structure.getBlock(a.towards(t.pos,e)))||void 0===i?void 0:i.state;return!!n&&((null===(s=this.resources.getBlockFlags(n.getName()))||void 0===s?void 0:s.opaque)?!(e===r.UP&&t.state.isFluid()):t.state.isFluid()&&n.isFluid())}getGridBuffers(){const[t,e,i]=this.structure.getSize(),s=[],n=[];s.push(0,0,0,t,0,0),n.push(1,0,0,1,0,0),s.push(0,0,0,0,0,i),n.push(0,0,1,0,0,1),s.push(0,0,0,0,e,0),s.push(t,0,0,t,e,0),s.push(0,0,i,0,e,i),s.push(t,0,i,t,e,i),s.push(0,e,0,0,e,i),s.push(t,e,0,t,e,i),s.push(0,e,0,t,e,0),s.push(0,e,i,t,e,i);for(let e=1;e<=t;e+=1)s.push(e,0,0,e,0,i);for(let e=1;e<=i;e+=1)s.push(0,0,e,t,0,e);for(let e=0;e<8+t+i;e+=1)n.push(.8,.8,.8,.8,.8,.8);return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(s)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(n)),length:s.length/3}}getOutlineBuffers(){const t=[],e=[];return this.addCube(t,e,[1,1,1],[0,0,0],[1,1,1]),{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(e)),length:t.length/3}}getInvisibleBlockBuffers(){if(!this.useInvisibleBlockBuffer)return;const t=this.structure.getSize(),e=[],i=[];for(let s=0;s<t[0];s+=1)for(let n=0;n<t[1];n+=1)for(let r=0;r<t[2];r+=1){const t=this.structure.getBlock([s,n,r]);void 0!==t&&(null===t?this.addCube(e,i,[1,.25,.25],[s+.4375,n+.4375,r+.4375],[s+.5625,n+.5625,r+.5625]):\"minecraft:air\"===t.state.getName()?this.addCube(e,i,[.5,.5,1],[s+.375,n+.375,r+.375],[s+.625,n+.625,r+.625]):\"minecraft:cave_air\"===t.state.getName()&&this.addCube(e,i,[.5,1,.5],[s+.375,n+.375,r+.375],[s+.625,n+.625,r+.625]))}return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(e)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(i)),length:e.length/3}}addCube(t,e,i,s,n){t.push(s[0],s[1],s[2],s[0],s[1],n[2]),t.push(n[0],s[1],s[2],n[0],s[1],n[2]),t.push(s[0],s[1],s[2],n[0],s[1],s[2]),t.push(s[0],s[1],n[2],n[0],s[1],n[2]),t.push(s[0],s[1],s[2],s[0],n[1],s[2]),t.push(n[0],s[1],s[2],n[0],n[1],s[2]),t.push(s[0],s[1],n[2],s[0],n[1],n[2]),t.push(n[0],s[1],n[2],n[0],n[1],n[2]),t.push(s[0],n[1],s[2],s[0],n[1],n[2]),t.push(n[0],n[1],s[2],n[0],n[1],n[2]),t.push(s[0],n[1],s[2],n[0],n[1],s[2]),t.push(s[0],n[1],n[2],n[0],n[1],n[2]);for(let t=0;t<24;t+=1)e.push(...i)}createBuffer(t,e){const i=this.gl.createBuffer();return this.gl.bindBuffer(t,i),this.gl.bufferData(t,e,this.gl.DYNAMIC_DRAW),i}updateBuffer(t,e,i){this.gl.bindBuffer(e,t),this.gl.bufferData(e,i,this.gl.STATIC_DRAW)}drawGrid(t){this.setShader(this.gridShaderProgram),this.setVertexAttr(\"vertPos\",3,this.gridBuffers.position),this.setVertexAttr(\"vertColor\",3,this.gridBuffers.color),this.setUniform(\"mView\",t),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.gridBuffers.length)}drawInvisibleBlocks(t){this.useInvisibleBlockBuffer&&(this.setShader(this.gridShaderProgram),this.setVertexAttr(\"vertPos\",3,this.invisibleBlockBuffers.position),this.setVertexAttr(\"vertColor\",3,this.invisibleBlockBuffers.color),this.setUniform(\"mView\",t),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.invisibleBlockBuffers.length))}drawStructure(t){this.setShader(this.shaderProgram),this.gl.activeTexture(this.gl.TEXTURE0),this.gl.bindTexture(this.gl.TEXTURE_2D,this.atlasTexture),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(\"texCoord\",2,t.buffer.texCoord),this.setVertexAttr(\"tintColor\",3,t.buffer.tintColor),this.setVertexAttr(\"normal\",3,t.buffer.normal),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawColoredStructure(t){this.setShader(this.colorShaderProgram),this.setUniform(\"mView\",t),this.setUniform(\"mProj\",this.projMatrix),this.chunks.forEach((t=>{t.forEach((t=>{t.forEach((t=>{t.buffer&&(this.setVertexAttr(\"vertPos\",3,t.buffer.position),this.setVertexAttr(\"blockPos\",3,t.buffer.blockPos),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawOutline(t,e){this.setShader(this.gridShaderProgram),this.setVertexAttr(\"vertPos\",3,this.outlineBuffers.position),this.setVertexAttr(\"vertColor\",3,this.outlineBuffers.color);const i=s.create();s.copy(i,t),s.translate(i,i,e),this.setUniform(\"mView\",i),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.outlineBuffers.length)}setViewport(t,e,i,s){this.gl.viewport(t,e,i,s),this.projMatrix=this.getPerspective()}setShader(t){this.gl.useProgram(t),this.activeShader=t}setVertexAttr(t,e,i){const s=this.gl.getAttribLocation(this.activeShader,t);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,i),this.gl.vertexAttribPointer(s,e,this.gl.FLOAT,!1,0,0),this.gl.enableVertexAttribArray(s)}setUniform(t,e){const i=this.gl.getUniformLocation(this.activeShader,t);this.gl.uniformMatrix4fv(i,!1,e)}}\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */function Ct(t,e,i,s){return new(i||(i=Promise))((function(n,r){function o(t){try{l(s.next(t))}catch(t){r(t)}}function a(t){try{l(s.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?n(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(o,a)}l((s=s.apply(t,e||[])).next())}))}class kt{constructor(t,e){this.img=t,this.idMap=e,this.part=16/t.width}getTextureAtlas(){return this.img}getTextureUV(t){var e;return null!==(e=this.idMap[t])&&void 0!==e?e:[0,0,this.part,this.part]}static fromBlobs(t){return Ct(this,void 0,void 0,(function*(){const e=Math.sqrt(Object.keys(t).length+1),i=Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))),s=16*i,n=1/i,r=document.createElement(\"canvas\");r.width=s,r.height=s;const o=r.getContext(\"2d\");this.drawInvalidTexture(o);const a={};let l=1;return yield Promise.all(Object.keys(t).map((e=>Ct(this,void 0,void 0,(function*(){const s=l%i,r=Math.floor(l/i);l+=1,a[e]=[n*s,n*r,n*s+n,n*r+n];const h=yield createImageBitmap(t[e]);o.drawImage(h,0,0,16,16,16*s,16*r,16,16)}))))),new kt(o.getImageData(0,0,s,s),a)}))}static empty(){const t=document.createElement(\"canvas\");t.width=16,t.height=16;const e=t.getContext(\"2d\");return kt.drawInvalidTexture(e),new kt(e.getImageData(0,0,16,16),{})}static drawInvalidTexture(t){t.fillStyle=\"black\",t.fillRect(0,0,16,16),t.fillStyle=\"magenta\",t.fillRect(0,0,8,8),t.fillRect(8,8,8,8)}}var Dt,Mt,Ot,Lt,Ut,Yt,Gt,Ht,Vt,zt,jt,Jt,Xt;!function(t){function e(t,e){return\"number\"==typeof t?new i(t,null!=e?e:t):t}t.target=function(t,e,i,s,r,o){return new n(t,e,i,s,r,o)},t.parameters=function(t,i,n,r,o,a,l){return new s(e(t),e(i),e(n),e(r),e(o),e(a),l)},t.param=e;class i{constructor(t,e){this.min=t,this.max=e}distance(t){const e=(\"number\"==typeof t?t:t.min)-this.max,i=this.min-(\"number\"==typeof t?t:t.max);return e>0?e:Math.max(i,0)}union(t){return new i(Math.min(this.min,t.min),Math.max(this.max,t.max))}static fromJson(t){var e;if(\"number\"==typeof t)return new i(t,t);const[s,n]=null!==(e=_.readArray(t,(t=>_.readNumber(t))))&&void 0!==e?e:[];return new i(null!=s?s:0,null!=n?n:0)}}t.Param=i;class s{constructor(t,e,i,s,n,r,o){this.temperature=t,this.humidity=e,this.continentalness=i,this.erosion=s,this.depth=n,this.weirdness=r,this.offset=o}fittness(t){return O(this.temperature.distance(t.temperature))+O(this.humidity.distance(t.humidity))+O(this.continentalness.distance(t.continentalness))+O(this.erosion.distance(t.erosion))+O(this.depth.distance(t.depth))+O(this.weirdness.distance(t.weirdness))+O(this.offset-t.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new i(this.offset,this.offset)]}static fromJson(t){var e,n;const r=null!==(e=_.readObject(t))&&void 0!==e?e:{};return new s(i.fromJson(r.temperature),i.fromJson(r.humidity),i.fromJson(r.continentalness),i.fromJson(r.erosion),i.fromJson(r.depth),i.fromJson(r.weirdness),null!==(n=_.readInt(r.offset))&&void 0!==n?n:0)}}t.ParamPoint=s;class n{constructor(t,e,i,s,n,r){this.temperature=t,this.humidity=e,this.continentalness=i,this.erosion=s,this.depth=n,this.weirdness=r}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}t.TargetPoint=n;t.Parameters=class{constructor(t){this.things=t,this.index=new r(t)}find(t){return this.index.search(t,((t,e)=>t.distance(e)))}};class r{constructor(t){this.root=r.build(t.map((([t,e])=>new l(t,e))))}static build(t){if(1===t.length)return t[0];if(t.length<=r.CHILDREN_PER_NODE){const e=t.map((t=>{let e=0;for(let i=0;i<7;i+=1){const s=t.space[i];e+=Math.abs((s.min+s.max)/2)}return{key:e,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t));return new a(e)}let e=1/0,i=-1,s=[];for(let n=0;n<7;++n){t=r.sort(t,n,!1),s=r.bucketize(t);let o=0;for(const t of s)o+=r.area(t.space);e>o&&(e=o,i=n)}return t=r.sort(t,i,!1),s=r.bucketize(t),s=r.sort(s,i,!0),new a(s.map((t=>r.build(t.children))))}static sort(t,e,i){return t.map((t=>{const s=t.space[e],n=(s.min+s.max)/2;return{key:i?Math.abs(n):n,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t))}static bucketize(t){const e=[];let i=[];const s=Math.pow(10,Math.floor(Math.log(t.length-.01)/Math.log(10)));for(const n of t)i.push(n),i.length<s||(e.push(new a(i)),i=[]);return 0!==i.length&&e.push(new a(i)),e}static area(t){let e=0;for(const i of t)e+=Math.abs(i.max-i.min);return e}search(t,e){return this.root.search(t.toArray(),e).thing()}}r.CHILDREN_PER_NODE=10,t.RTree=r;class o{constructor(t){this.space=t}distance(t){let e=0;for(let i=0;i<7;i+=1)e+=O(this.space[i].distance(t[i]));return e}}t.RNode=o;class a extends o{constructor(t){super(a.buildSpace(t)),this.children=t}static buildSpace(t){let e=[...Array(7)].map((()=>new i(1/0,-1/0)));for(const i of t)e=[...Array(7)].map(((t,s)=>e[s].union(i.space[s])));return e}search(t,e){let i=1/0,s=null;for(const n of this.children){const r=e(n,t);if(i<=r)continue;const o=n.search(t,e),a=n==o?r:e(o,t);i<=a||(i=a,s=o)}return s}}t.RSubTree=a;class l extends o{constructor(t,e){super(t.space()),this.thing=e}search(){return this}}t.RLeaf=l}(Dt||(Dt={}));class Zt{constructor(t){this.biome=t}getBiome(){return this.biome}static fromJson(t){var e,i;const s=null!==(e=_.readObject(t))&&void 0!==e?e:{},n=null!==(i=_.readString(s.biome))&&void 0!==i?i:\"minecraft:the_void\";return new Zt(n)}}class Wt{constructor(t){this.parameters=t}getBiome(t,e,i,s){const n=s(t,e,i);return this.parameters.find(n)}static fromJson(t){var e,i;const s=null!==(e=_.readObject(t))&&void 0!==e?e:{},n=(null!==(i=_.readArray(s.biomes,(t=>{var e;return(t=>{var e;return{biome:null!==(e=_.readString(t.biome))&&void 0!==e?e:\"minecraft:the_void\",parameters:Dt.ParamPoint.fromJson(t.parameters)}})(null!==(e=_.readObject(t))&&void 0!==e?e:{})})))&&void 0!==i?i:[]).map((t=>[t.parameters,()=>t.biome]));return new Wt(new Dt.Parameters(n))}}class qt{constructor(t,e,i){this.offsetSampler=t,this.factorSampler=e,this.jaggednessSampler=i}static extractor(t){return{apply:e=>e[t],toJson:()=>t}}static fromJson(t){var e;const i=null!==(e=_.readObject(t))&&void 0!==e?e:{};return new qt(B.fromJson(i.offset,this.EXTRACTOR),B.fromJson(i.factor,this.EXTRACTOR),B.fromJson(i.jaggedness,this.EXTRACTOR))}toJson(){return{offset:this.offsetSampler.toJson(),factor:this.factorSampler.toJson(),jaggedness:this.jaggednessSampler.toJson()}}offset(t){return this.offsetSampler.apply(t)+qt.GLOBAL_OFFSET}factor(t){return this.factorSampler.apply(t)}jaggedness(t){return this.jaggednessSampler.apply(t)}static point(t,e,i){return{continents:t,erosion:e,weirdness:i,ridges:this.peaksAndValleys(i)}}static peaksAndValleys(t){return 3*-(Math.abs(Math.abs(t)-.6666667)-.33333334)}static overworld(){const t=this.buildErosionOffsetSpline(-.05,0,0,.1,0,-.03,!1,!1),e=this.buildErosionOffsetSpline(-.1,.03,.1,.1,.01,-.03,!1,!1),i=this.buildErosionOffsetSpline(-.1,.03,.1,.7,.01,-.03,!0,!0),s=this.buildErosionOffsetSpline(.3,.03,.1,1,.01,.01,!0,!0),n=new at(this.CONTINENTS).addPoint(-1.1,.044).addPoint(-1.02,-.2222).addPoint(-.51,-.2222).addPoint(-.44,-.12).addPoint(-.18,-.12).addPoint(-.16,t).addPoint(-.15,t).addPoint(-.1,e).addPoint(.25,i).addPoint(1,s),r=new at(this.CONTINENTS).addPoint(-.19,3.95).addPoint(-.15,this.getErosionFactor(6.25,!0)).addPoint(-.1,this.getErosionFactor(5.47,!0)).addPoint(.03,this.getErosionFactor(5.08,!0)).addPoint(.06,this.getErosionFactor(4.69,!1)),o=new at(this.CONTINENTS).addPoint(.11,0).addPoint(.03,this.buildErosionJaggednessSpline(1,.5,0,0)).addPoint(.65,this.buildErosionJaggednessSpline(1,1,1,0));return new qt(n,r,o)}static getErosionFactor(t,e){const i=new at(this.WEIRDNESS).addPoint(-.2,6.3).addPoint(.2,t),s=new at(this.EROSION).addPoint(-.6,i).addPoint(-.5,new at(this.WEIRDNESS).addPoint(-.05,6.3).addPoint(.05,2.67)).addPoint(-.35,i).addPoint(-.25,i).addPoint(-.1,new at(this.WEIRDNESS).addPoint(-.05,2.67).addPoint(.05,6.3)).addPoint(.03,i);if(e){const e=new at(this.WEIRDNESS).addPoint(0,t).addPoint(.1,.625),i=new at(this.RIDGES).addPoint(-.9,t).addPoint(-.69,e);s.addPoint(.35,t).addPoint(.45,i).addPoint(.55,i).addPoint(.62,t)}else{const e=new at(this.RIDGES).addPoint(-.7,i).addPoint(-.15,1.37),n=new at(this.RIDGES).addPoint(.45,i).addPoint(.7,1.56);s.addPoint(.05,n).addPoint(.4,n).addPoint(.45,e).addPoint(.55,e).addPoint(.58,t)}return s}static buildErosionOffsetSpline(t,e,i,s,n,r,o,a){const l=this.buildMountainRidgeSplineWithPoints(U(s,.6,1.5),a),h=this.buildMountainRidgeSplineWithPoints(U(s,.6,1),a),u=this.buildMountainRidgeSplineWithPoints(s,a),c=this.ridgeSpline(t-.15,.5*s,U(.5,.5,.5)*s,.5*s,.6*s,.5),d=this.ridgeSpline(t,n*s,e*s,.5*s,.6*s,.5),f=this.ridgeSpline(t,n,n,e,i,.5),g=this.ridgeSpline(t,n,n,e,i,.5),p=new at(this.RIDGES).addPoint(-1,t).addPoint(-.4,f).addPoint(0,i+.07),m=this.ridgeSpline(-.02,r,r,e,i,0),v=new at(this.EROSION).addPoint(-.85,l).addPoint(-.7,h).addPoint(-.4,u).addPoint(-.35,c).addPoint(-.1,d).addPoint(.2,f);return o&&v.addPoint(.4,g).addPoint(.45,p).addPoint(.55,p).addPoint(.58,g),v.addPoint(.7,m),v}static buildMountainRidgeSplineWithPoints(t,e){const i=new at(this.RIDGES),s=this.mountainContinentalness(-1,t,-.7),n=this.mountainContinentalness(1,t,-.7),r=this.calculateMountainRidgeZeroContinentalnessPoint(t);if(-.65<r&&r<1){const e=this.mountainContinentalness(-.65,t,-.7),o=this.mountainContinentalness(-.75,t,-.7),a=this.calculateSlope(s,o,-1,-.75);i.addPoint(-1,s,a),i.addPoint(-.75,o),i.addPoint(-.65,e);const l=this.mountainContinentalness(r,t,-.7),h=this.calculateSlope(l,n,r,1);i.addPoint(r-.01,l),i.addPoint(r,l,h),i.addPoint(1,n,h)}else{const t=this.calculateSlope(s,n,-1,1);e?(i.addPoint(-1,Math.max(.2,s)),i.addPoint(0,U(.5,s,n),t)):i.addPoint(-1,s,t),i.addPoint(1,n,t)}return i}static mountainContinentalness(t,e,i){const s=.46082947*(t+1.17)*(1-.5*(1-e))-.5*(1-e);return t<i?Math.max(s,-.2222):Math.max(s,0)}static calculateMountainRidgeZeroContinentalnessPoint(t){return.5*(1-t)/(.46082947*(1-.5*(1-t)))-1.17}static calculateSlope(t,e,i,s){return(e-t)/(s-i)}static ridgeSpline(t,e,i,s,n,r){const o=Math.max(.5*(e-t),r),a=5*(i-e);return new at(this.RIDGES).addPoint(-1,t,o).addPoint(-.4,e,Math.min(o,a)).addPoint(0,i,a).addPoint(.4,s,2*(s-i)).addPoint(1,n,.7*(n-s))}static buildErosionJaggednessSpline(t,e,i,s){const n=this.buildRidgeJaggednessSpline(t,i),r=this.buildRidgeJaggednessSpline(e,s);return new at(this.EROSION).addPoint(-1,n).addPoint(-.78,r).addPoint(-.5775,r).addPoint(-.375,0)}static buildRidgeJaggednessSpline(t,e){const i=qt.peaksAndValleys(.4),s=(i+qt.peaksAndValleys(.56666666))/2;return new at(this.RIDGES).addPoint(i,0).addPoint(s,e>0?this.buildWeirdnessJaggednessSpline(e):0).addPoint(1,t>0?this.buildWeirdnessJaggednessSpline(t):0)}static buildWeirdnessJaggednessSpline(t){return new at(qt.WEIRDNESS).addPoint(-.01,.63*t).addPoint(.01,.3*t)}}qt.GLOBAL_OFFSET=-.50375,qt.EXTRACTOR=t=>{var e;const i=null!==(e=_.readString(t))&&void 0!==e?e:\"continents\";return qt.extractor(i)},qt.CONTINENTS=qt.extractor(\"continents\"),qt.EROSION=qt.extractor(\"erosion\"),qt.WEIRDNESS=qt.extractor(\"weirdness\"),qt.RIDGES=qt.extractor(\"ridges\"),function(t){t.fromList=function(t){return(e,i,s,n)=>{for(const r of t){const t=r(e,i,s,n);if(t)return t}return null}}}(Mt||(Mt={})),function(t){function e(t){return t.ySize<<2}t.fromJson=function(t){var e,i,s,n,r,o,a,l;const h=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{minY:null!==(i=_.readInt(h.min_y))&&void 0!==i?i:0,height:null!==(s=_.readInt(h.height))&&void 0!==s?s:256,xzSize:null!==(n=_.readInt(h.size_horizontal))&&void 0!==n?n:1,ySize:null!==(r=_.readInt(h.size_vertical))&&void 0!==r?r:1,sampling:P.fromJson(h.sampling),topSlide:Lt.fromJson(h.top_slide),bottomSlide:Lt.fromJson(h.bottom_slide),terrainShaper:qt.fromJson(h.terrain_shaper),islandNoiseOverride:null!==(o=_.readBoolean(h.island_noise_override))&&void 0!==o&&o,isAmplified:null!==(a=_.readBoolean(h.amplified))&&void 0!==a&&a,hasLargeBiomes:null!==(l=_.readBoolean(h.large_biomes))&&void 0!==l&&l}},t.cellHeight=e,t.cellWidth=function(t){return t.xzSize<<2},t.cellCountY=function(t){return t.height/e(t)},t.minCellY=function(t){return Math.floor(t.minY/e(t))}}(Ot||(Ot={})),function(t){t.fromJson=function(t){var e,i,s,n;const r=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{target:null!==(i=_.readNumber(r.target))&&void 0!==i?i:0,size:null!==(s=_.readInt(r.size))&&void 0!==s?s:0,offset:null!==(n=_.readInt(r.offset))&&void 0!==n?n:0}},t.apply=function(t,e,i){if(t.size<=0)return e;const s=(i-t.offset)/t.size;return H(t.target,e,s)}}(Lt||(Lt={}));class $t{constructor(t,e){this.chunk=t,this.filler=e,this.noise000=0,this.noise001=0,this.noise100=0,this.noise101=0,this.noise010=0,this.noise011=0,this.noise110=0,this.noise111=0,this.valueXZ00=0,this.valueXZ10=0,this.valueXZ01=0,this.valueXZ11=0,this.valueZ0=0,this.valueZ1=0,this.value=0,this.slice0=$t.allocateSlice(t.cellCountY,t.cellCountXZ),this.slice1=$t.allocateSlice(t.cellCountY,t.cellCountXZ)}static allocateSlice(t,e){const i=Array(e+1);for(let s=0;s<e+1;s+=1)i[s]=Array(t+1);return i}initializeForFirstCellX(){this.fillSlice(this.slice0,this.chunk.firstCellX)}advanceCellX(t){this.fillSlice(this.slice1,this.chunk.firstCellX+t+1)}fillSlice(t,e){const i=Ot.cellWidth(this.chunk.settings.noise),s=Ot.cellHeight(this.chunk.settings.noise),n=e*i;for(let e=0;e<this.chunk.cellCountXZ+1;e+=1){const r=(this.chunk.firstCellZ+e)*i;for(let i=0;i<this.chunk.cellCountY+1;i+=1){const o=(this.chunk.cellCountNoiseMinY+i)*s;t[e][i]=this.filler(n,o,r)}}}selectCellYZ(t,e){this.noise000=this.slice0[e][t],this.noise001=this.slice0[e+1][t],this.noise100=this.slice1[e][t],this.noise101=this.slice1[e+1][t],this.noise010=this.slice0[e][t+1],this.noise011=this.slice0[e+1][t+1],this.noise110=this.slice1[e][t+1],this.noise111=this.slice1[e+1][t+1]}updateForY(t){this.valueXZ00=U(t,this.noise000,this.noise010),this.valueXZ10=U(t,this.noise100,this.noise110),this.valueXZ01=U(t,this.noise001,this.noise011),this.valueXZ11=U(t,this.noise101,this.noise111)}updateForX(t){this.valueZ0=U(t,this.valueXZ00,this.valueXZ10),this.valueZ1=U(t,this.valueXZ01,this.valueXZ11)}updateForZ(t){this.value=U(t,this.valueZ0,this.valueZ1)}sample(){return this.value}swapSlices(){[this.slice0,this.slice1]=[this.slice1,this.slice0]}}class Kt{constructor(t,e,i,s,n,r,o,a){this.cellCountXZ=t,this.cellCountY=e,this.cellCountNoiseMinY=i,this.sampler=s,this.settings=a;const l=Ot.cellWidth(a.noise);this.firstCellX=Math.floor(n/l),this.firstCellZ=Math.floor(r/l),this.firstNoiseX=n>>2,this.firstNoiseZ=r>>2,this.interpolators=[];const h=t*l>>2;this.noiseData=Array(h+1);for(let t=0;t<=h;t+=1){const e=this.firstNoiseX+t;this.noiseData[t]=Array(h+1);for(let i=0;i<=h;i+=1){const n=this.firstNoiseZ+i;this.noiseData[t][i]=s.noiseData(e,n)}}this.preliminarySurfaceLevel=new Map,this.baseNoise=s.makeBaseNoiseFiller(this,o,a.noodleCavesEnabled)}getNoiseData(t,e){return this.noiseData[t-this.firstNoiseX][e-this.firstNoiseZ]}getPreliminarySurfaceLevel(t,e){return M(this.preliminarySurfaceLevel,y.asLong(t,e),(()=>{const i=t-this.firstNoiseX,s=e-this.firstNoiseZ,n=this.noiseData.length,r=i>=0&&s>=0&&i<n&&s<n?this.noiseData[i][s].terrainInfo:this.sampler.noiseData(t,e).terrainInfo;return this.sampler.getPreliminarySurfaceLevel(t<<2,e<<2,r)}))}createNoiseInterpolator(t){const e=new $t(this,t);return this.interpolators.push(e),e.sample.bind(e)}initializeForFirstCellX(){this.interpolators.forEach((t=>t.initializeForFirstCellX()))}advanceCellX(t){this.interpolators.forEach((e=>e.advanceCellX(t)))}selectCellYZ(t,e){this.interpolators.forEach((i=>i.selectCellYZ(t,e)))}updateForY(t){this.interpolators.forEach((e=>e.updateForY(t)))}updateForX(t){this.interpolators.forEach((e=>e.updateForX(t)))}updateForZ(t){this.interpolators.forEach((e=>e.updateForZ(t)))}swapSlices(){this.interpolators.forEach((t=>t.swapSlices()))}updateNoiseAndGenerateBaseState(t,e,i){return this.baseNoise(t,e,i)}}!function(t){t.create=function(t,e,i){return{offset:t,factor:e,jaggedness:i}}}(Ut||(Ut={})),function(t){const e=new Map;function i(t,i,s){const n=Object.assign({name:`minecraft:${t}`},R.create(i,s));return e.set(t,n),n}t.TEMPERATURE=i(\"temperature\",-10,[1.5,0,1,0,0,0]),t.VEGETATION=i(\"vegetation\",-8,[1,1,0,0,0,0]),t.CONTINENTALNESS=i(\"continentalness\",-9,[1,1,2,2,2,1,1,1,1]),t.EROSION=i(\"erosion\",-9,[1,1,0,1,1]),t.TEMPERATURE_LARGE=i(\"temperature_large\",-12,[1.5,0,1,0,0,0]),t.VEGETATION_LARGE=i(\"vegetation_large\",-10,[1,1,0,0,0,0]),t.CONTINENTALNESS_LARGE=i(\"continentalness_large\",-11,[1,1,2,2,2,1,1,1,1]),t.EROSION_LARGE=i(\"erosion_large\",-11,[1,1,0,1,1]),t.RIDGE=i(\"ridge\",-7,[1,2,1,0,0,0]),t.SHIFT=i(\"offset\",-3,[1,1,1,0]),t.PILLAR=i(\"pillar\",-7,[1,1]),t.PILLAR_RARENESS=i(\"pillar_rareness\",-8,[1]),t.PILLAR_THICKNESS=i(\"pillar_thickness\",-8,[1]),t.SPAGHETTI_2D=i(\"spaghetti_2d\",-8,[1]),t.SPAGHETTI_2D_ELEVATION=i(\"spaghetti_2d_elevation\",-8,[1]),t.SPAGHETTI_2D_MODULATOR=i(\"spaghetti_2d_modulator\",-8,[1]),t.SPAGHETTI_2D_THICKNESS=i(\"spaghetti_2d_thickness\",-8,[1]),t.SPAGHETTI_3D_1=i(\"spaghetti_3d_1\",-8,[1]),t.SPAGHETTI_3D_2=i(\"spaghetti_3d_2\",-8,[1]),t.SPAGHETTI_3D_RARITY=i(\"spaghetti_3d_rarity\",-8,[1]),t.SPAGHETTI_3D_THICKNESS=i(\"spaghetti_3d_thickness\",-8,[1]),t.SPAGHETTI_ROUGHNESS=i(\"spaghetti_roughness\",-8,[1]),t.SPAGHETTI_ROUGHNESS_MODULATOR=i(\"spaghetti_roughness_modulator\",-8,[1]),t.CAVE_ENTRANCE=i(\"cave_entrance\",-7,[.4,.5,1]),t.CAVE_LAYER=i(\"cave_layer\",-8,[1]),t.CAVE_CHEESE=i(\"cave_cheese\",-8,[.5,1,2,1,2,1,0,2,0]),t.NOODLE=i(\"noodle\",-8,[1]),t.NOODLE_THICKNESS=i(\"noodle_thickness\",-8,[1]),t.NOODLE_RIDGE_A=i(\"noodle_ridge_a\",-7,[1]),t.NOODLE_RIDGE_B=i(\"noodle_ridge_b\",-7,[1]),t.JAGGED=i(\"jagged\",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),t.SURFACE=i(\"surface\",-6,[1,1,1]),t.SURFACE_SECONDARY=i(\"surface_secondary\",-6,[1,1,0,1]),t.instantiate=function(t,e){return new nt(t.fromHashOf(e.name),e)}}(Yt||(Yt={}));class Qt{constructor(t,e,i,s=!1){this.settings=t,this.isNoiseCavesEnabled=e;const n=t.hasLargeBiomes,r=(s?new q(i):K.create(i)).forkPositional();s?(this.blendedNoise=new st(new q(i),t.sampling,Ot.cellWidth(t),Ot.cellHeight(t)),this.temperatureNoise=new nt(new q(i),R.create(-7,[1,1])),this.humidityNoise=new nt(new q(i+BigInt(1)),R.create(-7,[1,1])),this.offsetNoise=new nt(new q(i+BigInt(5)),R.create(0,[0]))):(this.blendedNoise=new st(r.fromHashOf(\"minecraft:terrain\"),t.sampling,Ot.cellWidth(t),Ot.cellHeight(t)),this.temperatureNoise=Yt.instantiate(r,n?Yt.TEMPERATURE_LARGE:Yt.TEMPERATURE),this.humidityNoise=Yt.instantiate(r,n?Yt.VEGETATION_LARGE:Yt.VEGETATION),this.offsetNoise=Yt.instantiate(r,Yt.SHIFT)),this.continentalnessNoise=Yt.instantiate(r,n?Yt.CONTINENTALNESS_LARGE:Yt.CONTINENTALNESS),this.erosionNoise=Yt.instantiate(r,n?Yt.EROSION_LARGE:Yt.EROSION),this.weirdnessNoise=Yt.instantiate(r,Yt.RIDGE),this.pillarNoise=Yt.instantiate(r,Yt.PILLAR),this.pillarRarenessModulator=Yt.instantiate(r,Yt.PILLAR_RARENESS),this.pillarThicknessModulator=Yt.instantiate(r,Yt.PILLAR_THICKNESS),this.spaghetti2DNoise=Yt.instantiate(r,Yt.SPAGHETTI_2D),this.spaghetti2DElevationModulator=Yt.instantiate(r,Yt.SPAGHETTI_2D_ELEVATION),this.spaghetti2DRarityModulator=Yt.instantiate(r,Yt.SPAGHETTI_2D_MODULATOR),this.spaghetti2DThicknessModulator=Yt.instantiate(r,Yt.SPAGHETTI_2D_THICKNESS),this.spaghetti3DNoise1=Yt.instantiate(r,Yt.SPAGHETTI_3D_1),this.spaghetti3DNoise2=Yt.instantiate(r,Yt.SPAGHETTI_3D_2),this.spaghetti3DRarityModulator=Yt.instantiate(r,Yt.SPAGHETTI_3D_RARITY),this.spaghetti3DThicknessModulator=Yt.instantiate(r,Yt.SPAGHETTI_3D_THICKNESS),this.spaghettiRoughnessNoise=Yt.instantiate(r,Yt.SPAGHETTI_ROUGHNESS),this.spaghettiRoughnessModulator=Yt.instantiate(r,Yt.SPAGHETTI_ROUGHNESS_MODULATOR),this.bigEntranceNoise=Yt.instantiate(r,Yt.CAVE_ENTRANCE),this.layerNoise=Yt.instantiate(r,Yt.CAVE_LAYER),this.cheeseNoise=Yt.instantiate(r,Yt.CAVE_CHEESE);const o=t.minY+4,a=o+t.height;this.noodleToggleNoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE),o,a,-1,1),this.noodleThicknessNoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE_THICKNESS),o,a,0,1),this.noodleRidgeANoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE_RIDGE_A),o,a,0,8/3),this.noodleRidgeBNoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE_RIDGE_B),o,a,0,8/3),this.jaggedNoise=Yt.instantiate(r,Yt.JAGGED),this.shaper=t.terrainShaper,this.baseNoise=t=>t.createNoiseInterpolator(((e,i,s)=>this.calculateBlendedBaseNoise(e,i,s,t.getNoiseData(e>>2,s>>2).terrainInfo)))}yLimitedInterpolatable(t,e,i,s,n){const r=(r,o,a)=>o>i||o<e?s:t.sample(r*n,o*n,a*n);return t=>t.createNoiseInterpolator(r)}noiseData(t,e){const i=t+this.getOffset(t,0,e),s=e+this.getOffset(e,t,0),n=this.getContinentalness(i,s),r=this.getErosion(i,s),o=this.getWeirdness(i,s),a=this.terrainInfo(n,r,o);return Gt.create(i,s,n,r,o,a)}sample(t,e,i){return this.target(t,e,i,this.noiseData(t,i))}target(t,e,i,s){const n=s.shiftedX,r=e+this.getOffset(e,i,t),o=s.shiftedZ,a=this.getTemperature(n,r,o),l=this.getHumidity(n,r,o),h=this.computeDimensionDensity(e<<2,s.terrainInfo);return Dt.target(a,l,s.continentalness,s.erosion,h,s.weirdness)}terrainInfo(t,e,i){const s=qt.point(t,e,i),n=this.shaper.offset(s),r=this.shaper.factor(s),o=this.shaper.jaggedness(s);return Ut.create(n,r,o)}getOffset(t,e,i){return 4*this.offsetNoise.sample(t,e,i)}getTemperature(t,e,i){return this.temperatureNoise.sample(t,e,i)}getHumidity(t,e,i){return this.humidityNoise.sample(t,e,i)}getContinentalness(t,e){return this.continentalnessNoise.sample(t,0,e)}getErosion(t,e){return this.erosionNoise.sample(t,0,e)}getWeirdness(t,e){return this.weirdnessNoise.sample(t,0,e)}makeBaseNoiseFiller(t,e,i){const s=this.baseNoise(t),n=i?this.noodleToggleNoise(t):()=>-1,r=i?this.noodleThicknessNoise(t):()=>0,o=i?this.noodleRidgeANoise(t):()=>0,a=i?this.noodleRidgeBNoise(t):()=>0;return(t,i,l)=>{let h=s();if(h=L(.64*h,-1,1),h=h/2-h*h*h/24,n()>=0){const t=J(r(),-1,1,.05,.1),e=Math.abs(1.5*o())-t,i=Math.abs(1.5*a())-t;h=Math.min(h,Math.max(e,i))}return h+=e(t,i,l),h>0?null:x.AIR}}calculateBlendedBaseNoise(t,e,i,s){const n=this.blendedNoise.sample(t,e,i);return this.calculateBaseNoise(t,e,i,s,n,!this.isNoiseCavesEnabled,!0)}calculateBaseNoise(t,e,i,s,n,r,o){if(!this.settings.islandNoiseOverride){const r=o?this.sampleJaggedNoise(s.jaggedness,t,i):0,a=this.computeDimensionDensity(e,s),l=s.factor*(r+a);n+=l>0?4*l:l}let a=-64,l=64;if(!r&&n>=-64){const s=n-1.5625,r=this.getBigEntrances(t,e,i),o=this.getSpaghettiRoughness(t,e,i),h=this.getSpaghetti3D(t,e,i),u=Math.min(r,h+o);if(s<0)l=u;else{const r=this.getLayerizedCaverns(t,e,i);if(r>64)n=64;else{n=this.getCheese(t,e,i)+r+H(.5,0,1.28*s)}const h=this.getSpaghetti2D(t,e,i);a=this.getPillars(t,e,i),l=Math.min(u,h+o)}}return n=L(n,a,l),n=L(n=this.applySlide(n,e/Ot.cellHeight(this.settings)),-64,64)}sampleJaggedNoise(t,e,i){if(0===t)return 0;const s=this.jaggedNoise.sample(1500*e,0,1500*i);return s>0?t*s:t/2*s}computeDimensionDensity(t,e){return 1-t/128+e.offset}getBigEntrances(t,e,i){return this.bigEntranceNoise.sample(.75*t,.5*e,.75*i)+.37+H(.3,0,(e+10)/40)}getSpaghettiRoughness(t,e,i){const s=this.spaghettiRoughnessNoise.sample(t,e,i),n=j(this.spaghettiRoughnessModulator.sample(t,e,i),-1,1,0,1);return(.4-Math.abs(s))*n}getSpaghetti2D(t,e,i){const s=this.quantizeSpaghettiRarity2D(this.spaghetti2DRarityModulator.sample(2*t,e,2*i)),n=j(this.spaghetti2DThicknessModulator.sample(2*t,e,2*i),-1,1,.6,1.3),r=this.sampleWithRarity(this.spaghetti2DNoise,t,e,i,s),o=Math.abs(s*r)-.083*n,a=Ot.minCellY(this.settings),l=j(this.spaghetti2DElevationModulator.sample(t,0,i),-1,1,a,8),h=Math.abs(l-e/8)-1*n;return L(Math.max(h,o),-1,1)}getSpaghetti3D(t,e,i){const s=this.quantizeSpaghettiRarity3D(this.spaghetti3DRarityModulator.sample(2*t,e,2*i)),n=j(this.spaghetti3DThicknessModulator.sample(t,e,i),-1,1,.065,.088),r=this.sampleWithRarity(this.spaghetti3DNoise1,t,e,i,s),o=Math.abs(s*r)-n,a=this.sampleWithRarity(this.spaghetti3DNoise2,t,e,i,s),l=Math.abs(s*a)-n;return L(Math.max(o,l),-1,1)}quantizeSpaghettiRarity2D(t){return t<-.75?.5:t<-.5?.75:t<.5?1:t<.75?2:3}quantizeSpaghettiRarity3D(t){return t<-.5?.75:t<0?1:t<.5?1.5:2}sampleWithRarity(t,e,i,s,n){return t.sample(e/n,i/n,s/n)}getLayerizedCaverns(t,e,i){return 4*O(this.layerNoise.sample(t,8*e,i))}getCheese(t,e,i){return L(this.cheeseNoise.sample(t,e/1.5,i)+.27,-1,1)}getPillars(t,e,i){const s=j(this.pillarRarenessModulator.sample(t,e,i),-1,1,0,2),n=j(this.pillarThicknessModulator.sample(t,e,i),-1,1,0,1.1),r=this.pillarNoise.sample(25*t,.3*e,25*i),o=Math.pow(n,3)*(2*r-s);return o<=.03?Number.MIN_SAFE_INTEGER:o}applySlide(t,e){const i=e-Ot.minCellY(this.settings);return t=Lt.apply(this.settings.topSlide,t,Ot.cellCountY(this.settings)-i),t=Lt.apply(this.settings.bottomSlide,t,i)}getPreliminarySurfaceLevel(t,e,i){const s=Ot.minCellY(this.settings)+Ot.cellCountY(this.settings),n=Ot.minCellY(this.settings),r=Ot.cellHeight(this.settings);for(let o=s;o>=n;o-=1){const s=o*r;if(this.calculateBaseNoise(t,s,e,i,-.703125,!0,!1)>=.390625)return s}return Number.MAX_SAFE_INTEGER}}!function(t){t.create=function(t,e,i,s,n,r){return{shiftedX:t,shiftedZ:e,continentalness:i,weirdness:s,erosion:n,terrainInfo:r}}}(Gt||(Gt={})),function(t){t.fromJson=function(t){var e,i,s,n;const r=null!==(e=_.readObject(t))&&void 0!==e?e:{};return void 0!==r.absolute?(o=null!==(i=_.readNumber(r.absolute))&&void 0!==i?i:0,()=>o):void 0!==r.above_bottom?function(t){return e=>e.minY+t}(null!==(s=_.readNumber(r.above_bottom))&&void 0!==s?s:0):void 0!==r.below_top?function(t){return e=>e.maxY-t}(null!==(n=_.readNumber(r.below_top))&&void 0!==n?n:0):()=>0;var o}}(Ht||(Ht={})),function(t){t.create=function(t,e){return{minY:t,height:e,maxY:t+e-1}}}(Vt||(Vt={}));class te{constructor(t,e,i){this.rule=t,this.defaultBlock=e,this.random=K.create(i).forkPositional(),this.surfaceNoise=Yt.instantiate(this.random,Yt.SURFACE),this.surfaceSecondaryNoise=Yt.instantiate(this.random,Yt.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(t,e,i,s){const n=y.minBlockX(t.pos),r=y.minBlockZ(t.pos),o=new ee(this,t,e,i,s),l=this.rule(o);for(let e=0;e<16;e+=1){const i=n+e;for(let e=0;e<1;e+=1){const s=r+e;o.updateXZ(i,s);let n=0,h=Number.MIN_SAFE_INTEGER,u=Number.MAX_SAFE_INTEGER;for(let e=t.maxY;e>=t.minY;e-=1){const r=a.create(i,e,s),c=t.getBlockState(r);if(c.equals(x.AIR)){n=0,h=Number.MIN_SAFE_INTEGER;continue}if(c.isFluid()){h===Number.MIN_SAFE_INTEGER&&(h=e+1);continue}if(u>=e){u=Number.MIN_SAFE_INTEGER;for(let n=e-1;n>=t.minY;n-=1){const e=t.getBlockState(a.create(i,n,s));if(e.equals(x.AIR)||e.isFluid()){u=n+1;break}}}n+=1;const d=e-u+1;if(!c.equals(this.defaultBlock))continue;o.updateY(n,d,h,e);const f=l(i,e,s);f&&t.setBlockState(r,f)}}}}getSurfaceDepth(t,e){return 2.75*this.surfaceNoise.sample(t,0,e)+3+.25*this.random.at(t,0,e).nextDouble()}getSurfaceSecondary(t,e){return this.surfaceSecondaryNoise.sample(t,0,e)}getRandom(t){return M(this.positionalRandoms,t,(()=>this.random.fromHashOf(t)))}}class ee{constructor(t,e,i,s,n){this.system=t,this.chunk=e,this.noiseChunk=i,this.context=s,this.getBiome=n,this.blockX=0,this.blockY=0,this.blockZ=0,this.stoneDepthAbove=0,this.stoneDepthBelow=0,this.surfaceDepth=0,this.waterHeight=0,this.biome=()=>\"\",this.surfaceSecondary=()=>0,this.minSurfaceLevel=()=>0}updateXZ(t,e){this.blockX=t,this.blockZ=e,this.surfaceDepth=this.system.getSurfaceDepth(t,e),this.surfaceSecondary=D((()=>this.system.getSurfaceSecondary(t,e))),this.minSurfaceLevel=D((()=>this.calculateMinSurfaceLevel(t,e)))}updateY(t,e,i,s){this.blockY=s,this.stoneDepthAbove=t,this.stoneDepthBelow=e,this.waterHeight=i,this.biome=D((()=>this.getBiome(a.create(this.blockX,this.blockY,this.blockZ))))}calculateMinSurfaceLevel(t,e){const i=t>>4,s=e>>4,n=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,s<<4),r=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,s<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,s+1<<4),a=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,s+1<<4);return Math.floor(Y((15&t)/16,(15&e)/16,n,r,o,a))+this.surfaceDepth-8}}!function(t){function e(t){return()=>()=>t}function i(t){return e=>{const i=t.map((t=>t(e)));return(t,e,s)=>{for(const n of i){const i=n(t,e,s);if(i)return i}}}}function s(t,e){return i=>(s,n,r)=>{if(t(i))return e(i)(s,n,r)}}t.NOOP=()=>()=>{},t.fromJson=function(n){var r,o,a;const l=null!==(r=_.readObject(n))&&void 0!==r?r:{};switch(null===(o=_.readString(l.type))||void 0===o?void 0:o.replace(/^minecraft:/,\"\")){case\"block\":return e(x.fromJson(l.result_state));case\"sequence\":return i(null!==(a=_.readArray(l.sequence,t.fromJson))&&void 0!==a?a:[]);case\"condition\":return s(jt.fromJson(l.if_true),t.fromJson(l.then_run))}return t.NOOP},t.block=e,t.sequence=i,t.condition=s}(zt||(zt={})),function(t){function e(){return t=>t.blockY>=t.minSurfaceLevel()}function i(t){const e=new Set(t);return t=>e.has(t.biome())}function s(t){return e=>!t(e)}function n(t,e,i,s){return n=>{const r=s?n.stoneDepthBelow:n.stoneDepthAbove,o=e?n.surfaceDepth:0,a=0===i?0:j(n.surfaceSecondary(),-1,1,0,i);return r<=1+t+o+a}}function r(t,e,i){return s=>{const n=e(s.context),r=i(s.context);if(s.blockY<=n)return!0;if(s.blockY>=r)return!1;const o=s.system.getRandom(t),a=j(s.blockY,n,r,1,0);return o.nextFloat()<a}}function o(t,e,i){return s=>{if(s.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const n=i?s.stoneDepthAbove:0;return s.blockY+n>=s.waterHeight+t+s.surfaceDepth*e}}function a(t,e,i){return s=>{const n=i?s.stoneDepthAbove:0;return s.blockY+n>=t(s.context)+s.surfaceDepth*e}}t.FALSE=()=>!1,t.TRUE=()=>!0,t.fromJson=function(e){var l,h,u,c,d,f,g,p,m,v,b,S;const E=null!==(l=_.readObject(e))&&void 0!==l?l:{};switch(null===(h=_.readString(E.type))||void 0===h?void 0:h.replace(/^minecraft:/,\"\")){case\"above_preliminary_surface\":return t=>t.blockY>=t.minSurfaceLevel();case\"biome\":return i(null!==(u=_.readArray(E.biome_is,(t=>{var e;return null!==(e=_.readString(t))&&void 0!==e?e:\"\"})))&&void 0!==u?u:[]);case\"not\":return s(t.fromJson(E.invert));case\"stone_depth\":return n(null!==(c=_.readInt(E.offset))&&void 0!==c?c:0,null!==(d=_.readBoolean(E.add_surface_depth))&&void 0!==d&&d,null!==(f=_.readInt(E.secondary_depth_range))&&void 0!==f?f:0,\"ceiling\"===_.readString(E.surface_type));case\"vertical_gradient\":return r(null!==(g=_.readString(E.random_name))&&void 0!==g?g:\"\",Ht.fromJson(E.true_at_and_below),Ht.fromJson(E.false_at_and_above));case\"water\":return o(null!==(p=_.readInt(E.offset))&&void 0!==p?p:0,null!==(m=_.readInt(E.surface_depth_multiplier))&&void 0!==m?m:0,null!==(v=_.readBoolean(E.add_surface_depth))&&void 0!==v&&v);case\"y_above\":return a(Ht.fromJson(E.anchor),null!==(b=_.readInt(E.surface_depth_multiplier))&&void 0!==b?b:0,null!==(S=_.readBoolean(E.add_surface_depth))&&void 0!==S&&S)}return t.FALSE},t.abovePreliminarySurface=e,t.biome=i,t.not=s,t.stoneDepth=n,t.verticalGradient=r,t.water=o,t.yAbove=a}(jt||(jt={}));class ie{constructor(t,e,i){this.biomeSource=e,this.settings=i,this.sampler=new Qt(i.noise,i.noiseCavesEnabled,t,i.legacyRandomSource),this.noiseChunkCache=new Map,this.materialRule=Mt.fromList([(t,e,i,s)=>t.updateNoiseAndGenerateBaseState(e,i,s)]),this.surfaceSystem=new te(i.surfaceRule,i.defaultBlock,t)}fill(t){var e;const i=Math.max(t.minY,this.settings.noise.minY),s=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),n=Ot.cellWidth(this.settings.noise),r=Ot.cellHeight(this.settings.noise),o=Math.floor(16/n),a=Math.floor(i/r),l=Math.floor((s-i)/r),h=y.minBlockX(t.pos),u=y.minBlockZ(t.pos),c=this.getNoiseChunk(t);c.initializeForFirstCellX();for(let i=0;i<o;i+=1){c.advanceCellX(i);for(let s=0;s<o;s+=1){let o=t.getOrCreateSection(t.sectionsCount-1);for(let d=l-1;d>=0;d-=1){c.selectCellYZ(d,s);for(let l=r-1;l>=0;l-=1){const f=(a+d)*r+l,g=15&f,p=t.getSectionIndex(f);t.getSectionIndex(o.minBlockY)!==p&&(o=t.getOrCreateSection(p));const m=l/r;c.updateForY(m);for(let t=0;t<n;t+=1){const r=h+i*n+t,a=15&r,l=t/n;c.updateForX(l);for(let t=0;t<n;t+=1){const i=u+s*n+t,l=15&i,h=t/n;c.updateForZ(h);let d=null!==(e=this.materialRule(c,r,f,i))&&void 0!==e?e:this.settings.defaultBlock;if(d.equals(x.AIR)){if(!(f<this.settings.seaLevel))continue;d=this.settings.defaultFluid}o.setBlockState(a,g,l,d)}}}}}c.swapSlices()}}buildSurface(t,e=\"minecraft:plains\"){const i=this.getNoiseChunk(t),s=Vt.create(this.settings.noise.minY,this.settings.noise.height);this.surfaceSystem.buildSurface(t,i,s,(()=>e))}getNoiseChunk(t){return M(this.noiseChunkCache,y.toLong(t.pos),(()=>{const e=Math.max(t.minY,this.settings.noise.minY),i=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),s=Ot.cellWidth(this.settings.noise),n=Ot.cellHeight(this.settings.noise),r=Math.floor(16/s),o=Math.floor(e/n),a=Math.floor((i-e)/n),l=y.minBlockX(t.pos),h=y.minBlockZ(t.pos);return new Kt(r,a,o,this.sampler,l,h,(()=>0),this.settings)}))}}!function(t){t.fromJson=function(t){var e,i,s,n,r,o,a,l,h,u,c;const d=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{structures:Xt.fromJson(d.structures),surfaceRule:zt.fromJson(d.surface_rule),noise:Ot.fromJson(d.noise),defaultBlock:x.fromJson(d.default_block),defaultFluid:x.fromJson(d.default_fluid),bedrockRoofPosition:null!==(i=_.readInt(d.bedrock_roof_position))&&void 0!==i?i:0,bedrockFloorPosition:null!==(s=_.readInt(d.bedrock_floor_position))&&void 0!==s?s:0,seaLevel:null!==(n=_.readInt(d.sea_level))&&void 0!==n?n:0,disableMobGeneration:null!==(r=_.readBoolean(d.disable_mob_generation))&&void 0!==r&&r,aquifersEnabled:null!==(o=_.readBoolean(d.aquifers_enabled))&&void 0!==o&&o,noiseCavesEnabled:null!==(a=_.readBoolean(d.noise_caves_enabled))&&void 0!==a&&a,deepslateEnabled:null!==(l=_.readBoolean(d.deepslate_enabled))&&void 0!==l&&l,oreVeinsEnabled:null!==(h=_.readBoolean(d.ore_veins_enabled))&&void 0!==h&&h,noodleCavesEnabled:null!==(u=_.readBoolean(d.noodle_caves_enabled))&&void 0!==u&&u,legacyRandomSource:null!==(c=_.readBoolean(d.legacy_random_source))&&void 0!==c&&c}}}(Jt||(Jt={})),function(t){t.fromJson=function(t){var e;const i=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{stronghold:_.compose(i.stronghold,_.readObject,(t=>{var e,i,s;return{distance:null!==(e=_.readInt(t.distance))&&void 0!==e?e:0,spread:null!==(i=_.readInt(t.spread))&&void 0!==i?i:0,count:null!==(s=_.readInt(t.count))&&void 0!==s?s:0}})),structures:_.readMap(i.structures,(t=>{var e;return(t=>{var e,i,s;return{spacing:null!==(e=_.readInt(t.spacing))&&void 0!==e?e:0,separation:null!==(i=_.readInt(t.separation))&&void 0!==i?i:0,salt:null!==(s=_.readInt(t.salt))&&void 0!==s?s:0}})(null!==(e=_.readObject(t))&&void 0!==e?e:{})}))}}}(Xt||(Xt={}));export{st as BlendedNoise,vt as BlockColors,It as BlockDefinition,_t as BlockModel,a as BlockPos,x as BlockState,C as Chunk,y as ChunkPos,T as ChunkSection,Dt as Climate,ot as ConstantProvider,r as Direction,Zt as FixedBiome,Gt as FlatNoiseData,et as ImprovedNoise,_ as Json,$ as LegacyPositionalRandom,q as LegacyRandom,Mt as MaterialRule,Wt as MultiNoise,u as NbtReader,c as NbtWriter,Kt as NoiseChunk,ie as NoiseChunkGenerator,Jt as NoiseGeneratorSettings,$t as NoiseInterpolator,R as NoiseParameters,Qt as NoiseSampler,P as NoiseSamplingSettings,Ot as NoiseSettings,Lt as NoiseSlideSettings,Yt as Noises,nt as NormalNoise,B as NumberProvider,it as PerlinNoise,rt as PerlinSimplexNoise,tt as SimplexNoise,at as Spline,k as Structure,Tt as StructureRenderer,Xt as StructureSettings,jt as SurfaceCondition,ee as SurfaceContext,zt as SurfaceRule,te as SurfaceSystem,Ut as TerrainInfo,qt as TerrainShaper,kt as TextureAtlas,Ht as VerticalAnchor,Vt as WorldgenContext,Q as XoroshiroPositionalRandom,K as XoroshiroRandom,X as binarySearch,L as clamp,H as clampedLerp,J as clampedMap,M as computeIfAbsent,N as getListTag,F as getOptional,Z as getSeed,A as getTag,V as inverseLerp,D as lazy,U as lerp,Y as lerp2,G as lerp3,W as longfromBytes,j as map,g as read,m as readChunk,f as readCompressed,p as readRegion,d as readUncompressed,z as smoothstep,O as square,h as tagNames,l as tagTypes,S as write,I as writeChunk,b as writeCompressed,E as writeRegion,v as writeUncompressed};\n//# sourceMappingURL=deepslate.esm.js.map\n","import { LegacyRandom, PerlinNoise } from 'deepslate'\nimport { clampedLerp, lerp2 } from '../../Utils'\n\nexport class NoiseChunkGenerator {\n\tprivate readonly minLimitPerlinNoise: PerlinNoise\n\tprivate readonly maxLimitPerlinNoise: PerlinNoise\n\tprivate readonly mainPerlinNoise: PerlinNoise\n\tprivate readonly depthNoise: PerlinNoise\n\n\tprivate settings: any = {}\n\tprivate chunkWidth: number = 4\n\tprivate chunkHeight: number = 4\n\tprivate chunkCountY: number = 32\n\tprivate biomeDepth: number = 0.1\n\tprivate biomeScale: number = 0.2\n\n\tprivate noiseColumnCache: (number[] | null)[] = []\n\tprivate xOffset: number = 0\n\n\tconstructor(seed: bigint) {\n\t\tconst random = new LegacyRandom(seed)\n\t\tthis.minLimitPerlinNoise = new PerlinNoise(random, -15, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])\n\t\tthis.maxLimitPerlinNoise = new PerlinNoise(random, -15, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])\n\t\tthis.mainPerlinNoise = new PerlinNoise(random, -7, [1, 1, 1, 1, 1, 1, 1, 1])\n\t\tthis.depthNoise = new PerlinNoise(random, -15, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])\n\t}\n\n\tpublic reset(settings: any, depth: number, scale: number, xOffset: number, width: number) {\n\t\tthis.settings = settings\n\t\tthis.chunkWidth = settings.size_horizontal * 4\n\t\tthis.chunkHeight = settings.size_vertical * 4\n\t\tthis.chunkCountY = Math.floor(settings.height / this.chunkHeight)\n\n\t\tif (settings.amplified && depth > 0) {\n\t\t\tdepth = 1 + depth * 2\n\t\t\tscale = 1 + scale * 4\n\t\t}\n\t\tthis.biomeDepth = 0.265625 * (depth * 0.5 - 0.125)\n\t\tthis.biomeScale = 96.0 / (scale * 0.9 + 0.1)\n\n\t\tthis.noiseColumnCache = Array(width).fill(null)\n\t\tthis.xOffset = xOffset\n\t}\n \n\tpublic iterateNoiseColumn(x: number): number[] {\n\t\tconst data = Array(this.chunkCountY * this.chunkHeight)\n\t\tconst cx = Math.floor(x / this.chunkWidth)\n\t\tconst ox = Math.floor(x % this.chunkWidth) / this.chunkWidth\n\t\tconst noise1 = this.fillNoiseColumn(cx)\n\t\tconst noise2 = this.fillNoiseColumn(cx + 1)\n\n\t\tfor (let y = this.chunkCountY - 1; y >= 0; y -= 1) {\n\t\t\tfor (let yy = this.chunkHeight; yy >= 0; yy -= 1) {\n\t\t\t\tconst oy = yy / this.chunkHeight\n\t\t\t\tconst i = y * this.chunkHeight + yy\n\t\t\t\tdata[i] = lerp2(oy, ox, noise1[y], noise1[y+1], noise2[y], noise2[y+1])\n\t\t\t}\n\t\t}\n\t\treturn data\n\t}\n\n\tprivate fillNoiseColumn(x: number): number[] {\n\t\tconst cachedColumn = this.noiseColumnCache[x - this.xOffset]\n\t\tif (cachedColumn) return cachedColumn\n\n\t\tconst data = Array(this.chunkCountY + 1)\n\n\t\tconst xzScale = 684.412 * this.settings.sampling.xz_scale\n\t\tconst yScale = 684.412 * this.settings.sampling.y_scale\n\t\tconst xzFactor = xzScale / this.settings.sampling.xz_factor\n\t\tconst yFactor = yScale / this.settings.sampling.y_factor\n\t\tconst randomDensity = this.settings.random_density_offset ? this.getRandomDensity(x) : 0\n\n\t\tfor (let y = 0; y <= this.chunkCountY; y += 1) {\n\t\t\tlet noise = this.sampleAndClampNoise(x, y, this.mainPerlinNoise.getOctaveNoise(0)!.zo, xzScale, yScale, xzFactor, yFactor)\n\t\t\tconst yOffset = 1 - y * 2 / this.chunkCountY + randomDensity\n\t\t\tconst density = yOffset * this.settings.density_factor + this.settings.density_offset\n\t\t\tconst falloff = (density + this.biomeDepth) * this.biomeScale\n\t\t\tnoise += falloff * (falloff > 0 ? 4 : 1)\n\n\t\t\tif (this.settings.top_slide.size > 0) {\n\t\t\t\tnoise = clampedLerp(\n\t\t\t\t\tthis.settings.top_slide.target,\n\t\t\t\t\tnoise,\n\t\t\t\t\t(this.chunkCountY - y - (this.settings.top_slide.offset)) / (this.settings.top_slide.size)\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tif (this.settings.bottom_slide.size > 0) {\n\t\t\t\tnoise = clampedLerp(\n\t\t\t\t\tthis.settings.bottom_slide.target,\n\t\t\t\t\tnoise,\n\t\t\t\t\t(y - (this.settings.bottom_slide.offset)) / (this.settings.bottom_slide.size)\n\t\t\t\t)\n\t\t\t}\n\t\t\tdata[y] = noise\n\t\t}\n\n\t\tthis.noiseColumnCache[x - this.xOffset] = data\n\t\treturn data\n\t}\n\n\tprivate getRandomDensity(x: number): number {\n\t\tconst noise = this.depthNoise.sample(x * 200, 10, this.depthNoise.getOctaveNoise(0)!.zo, 1, 0, true)\n\t\tconst a = (noise < 0) ? -noise * 0.3 : noise\n\t\tconst b = a * 24.575625 - 2\n\t\treturn (b < 0) ? b * 0.009486607142857142 : Math.min(b, 1) * 0.006640625\n\t}\n\n\tprivate sampleAndClampNoise(x: number, y: number, z: number, xzScale: number, yScale: number, xzFactor: number, yFactor: number): number {\n\t\tlet a = 0\n\t\tlet b = 0\n\t\tlet c = 0\n\t\tlet d = 1\n\n\t\tfor (let i = 0; i < 16; i += 1) {\n\t\t\tconst x2 = PerlinNoise.wrap(x * xzScale * d)\n\t\t\tconst y2 = PerlinNoise.wrap(y * yScale * d)\n\t\t\tconst z2 = PerlinNoise.wrap(z * xzScale * d)\n\t\t\tconst e = yScale * d\n\n\t\t\tconst minLimitNoise = this.minLimitPerlinNoise.getOctaveNoise(i)\n\t\t\tif (minLimitNoise) {\n\t\t\t\ta += minLimitNoise.sample(x2, y2, z2, e, y * e) / d\n\t\t\t}\n\n\t\t\tconst maxLimitNoise = this.maxLimitPerlinNoise.getOctaveNoise(i)\n\t\t\tif (maxLimitNoise) {\n\t\t\t\tb += maxLimitNoise.sample(x2, y2, z2, e, y * e) / d\n\t\t\t}\n\n\t\t\tif (i < 8) {\n\t\t\t\tconst mainNoise = this.mainPerlinNoise.getOctaveNoise(i)\n\t\t\t\tif (mainNoise) {\n\t\t\t\t\tc += mainNoise.sample(\n\t\t\t\t\t\tPerlinNoise.wrap(x * xzFactor * d),\n\t\t\t\t\t\tPerlinNoise.wrap(y * yFactor * d),\n\t\t\t\t\t\tPerlinNoise.wrap(z * xzFactor * d),\n\t\t\t\t\t\tyFactor * d,\n\t\t\t\t\t\ty * yFactor * d \n\t\t\t\t\t) / d\n\t\t\t\t}\n\t\t\t}\n\n\t\t\td /= 2\n\t\t}\n\n\t\treturn clampedLerp(a / 512, b / 512, (c / 10 + 1) / 2)\n\t}\n}\n","import { DataModel } from '@mcschema/core'\nimport type { BlockState } from 'deepslate'\nimport { BlockPos, Chunk, ChunkPos, clampedMap, DensityFunction, FixedBiome, Identifier, NoiseChunkGenerator, NoiseGeneratorSettings, NoiseParameters, NoiseRouter, NoiseSettings, Registry, WorldgenRegistries, XoroshiroRandom } from 'deepslate'\nimport * as deepslate18 from 'deepslate-1.18'\nimport type { VersionId } from '../services'\nimport { checkVersion, fetchAllPresets } from '../services'\nimport { deepClone, deepEqual } from '../Utils'\nimport { NoiseChunkGenerator as OldNoiseChunkGenerator } from './noise/NoiseChunkGenerator'\n\nexport type NoiseSettingsOptions = {\n\tbiome?: string,\n\tbiomeScale?: number,\n\tbiomeDepth?: number,\n\toffset: number,\n\twidth: number,\n\tseed: bigint,\n\tversion: VersionId,\n}\n\nconst Z = 0\n\nconst colors: Record<string, [number, number, number]> = {\n\t'minecraft:air': [150, 160, 170],\n\t'minecraft:water': [20, 80, 170],\n\t'minecraft:lava': [200, 100, 0],\n\t'minecraft:stone': [55, 55, 55],\n\t'minecraft:deepslate': [34, 34, 36],\n\t'minecraft:bedrock': [10, 10, 10],\n\t'minecraft:grass_block': [47, 120, 23],\n\t'minecraft:dirt': [64, 40, 8],\n\t'minecraft:gravel': [70, 70, 70],\n\t'minecraft:sand': [196, 180, 77],\n\t'minecraft:sandstone': [148, 135, 52],\n\t'minecraft:netherrack': [100, 40, 40],\n\t'minecraft:crimson_nylium': [144, 22, 22],\n\t'minecraft:warped_nylium': [28, 115, 113],\n\t'minecraft:basalt': [73, 74, 85],\n\t'minecraft:end_stone': [200, 200, 140],\n}\n\nlet cacheState: any\nlet generatorCache: NoiseChunkGenerator\nlet chunkCache: Chunk[] = []\nconst registryCache = new Map<VersionId, Registry<Registry<any>>>()\n\nexport async function noiseSettings(state: any, img: ImageData, options: NoiseSettingsOptions) {\n\tif (checkVersion(options.version, '1.18')) {\n\t\tif (checkVersion(options.version, '1.18.2')) {\n\t\t\tawait initRegistries(options.version)\n\t\t}\n\n\t\tconst { settings, generator } = getCached(state, options)\n\n\t\tconst slice = new LevelSlice(-options.offset, options.width, settings.noise.minY, settings.noise.height)\n\t\tslice.generate(generator, options.biome)\n\n\t\tconst data = img.data\n\t\tfor (let x = 0; x < options.width; x += 1) {\n\t\t\tfor (let y = 0; y < settings.noise.height; y += 1) {\n\t\t\t\tconst i = x * 4 + (settings.noise.height-y-1) * 4 * img.width\n\t\t\t\tconst state = slice.getBlockState([x - options.offset, y + settings.noise.minY, Z])\n\t\t\t\tconst color = colors[state.getName().toString()] ?? [0, 0, 0]\n\t\t\t\tdata[i] = color[0]\n\t\t\t\tdata[i + 1] = color[1]\n\t\t\t\tdata[i + 2] = color[2]\n\t\t\t\tdata[i + 3] = 255\n\t\t\t}\n\t\t}\n\t\treturn\n\t}\n\n\tconst generator = new OldNoiseChunkGenerator(options.seed)\n\tgenerator.reset(state.noise, options.biomeDepth ?? 0, options.biomeScale ?? 0, options.offset, options.width)\n\tconst data = img.data\n\tconst row = img.width * 4\n\tfor (let x = 0; x < options.width; x += 1) {\n\t\tconst noise = generator.iterateNoiseColumn(x - options.offset).reverse()\n\t\tfor (let y = 0; y < state.noise.height; y += 1) {\n\t\t\tconst i = y * row + x * 4\n\t\t\tconst color = getColor(noise, y)\n\t\t\tdata[i] = color\n\t\t\tdata[i + 1] = color\n\t\t\tdata[i + 2] = color\n\t\t\tdata[i + 3] = 255\n\t\t}\n\t}\n}\n\nexport function getNoiseBlock(x: number, y: number) {\n\tconst chunk = chunkCache.find(c => ChunkPos.minBlockX(c.pos) <= x && ChunkPos.maxBlockX(c.pos) >= x)\n\tif (!chunk) {\n\t\treturn undefined\n\t}\n\treturn chunk.getBlockState(BlockPos.create(x, y, Z))\n}\n\nexport async function densityFunction(state: any, img: ImageData, options: NoiseSettingsOptions) {\n\tconst { fn, settings } = await createDensityFunction(state, options)\n\n\tconst arr = Array(options.width * settings.height)\n\tlet min = Infinity\n\tlet max = -Infinity\n\tfor (let x = 0; x < options.width; x += 1) {\n\t\tfor (let y = 0; y < settings.height; y += 1) {\n\t\t\tconst i = x + (settings.height-y-1) * options.width\n\t\t\tconst density = fn.compute(DensityFunction.context(x - options.offset, y, 0))\n\t\t\tmin = Math.min(min, density)\n\t\t\tmax = Math.max(max, density)\n\t\t\tarr[i] = density\n\t\t}\n\t}\n\n\tconst data = img.data\n\tfor (let i = 0; i < options.width * settings.height; i += 1) {\n\t\tconst color = Math.floor(clampedMap(arr[i], min, max, 0, 256))\n\t\tdata[4 * i] = color\n\t\tdata[4 * i + 1] = color\n\t\tdata[4 * i + 2] = color\n\t\tdata[4 * i + 3] = 255\n\t}\n}\n\nasync function createDensityFunction(state: any, options: NoiseSettingsOptions) {\n\tawait initRegistries(options.version)\n\n\tconst random = XoroshiroRandom.create(options.seed).forkPositional()\n\tconst settings = NoiseSettings.fromJson({\n\t\tmin_y: -64,\n\t\theight: 384,\n\t\tsize_horizontal: 1,\n\t\tsize_vertical: 2,\n\t\tsampling: { xz_scale: 1, y_scale: 1, xz_factor: 80, y_factor: 160 },\n\t\tbottom_slide: { target: 0.1171875, size: 3, offset: 0 },\n\t\ttop_slide: { target: -0.078125, size: 2, offset: 8 },\n\t\tterrain_shaper: { offset: 0.044, factor: 4, jaggedness: 0 },\n\t})\n\tconst originalFn = DensityFunction.fromJson(state)\n\tconst fn = originalFn.mapAll(new NoiseRouter.Visitor(random, settings))\n\n\treturn {\n\t\tfn,\n\t\tsettings,\n\t}\n}\n\nconst Registries: [string, { fromJson(obj: unknown): any}][] = [\n\t['worldgen/noise', NoiseParameters],\n\t['worldgen/density_function', DensityFunction],\n]\n\nasync function initRegistries(version: VersionId) {\n\tconst rootRegistries = registryCache.get(version) ?? new Registry(new Identifier('misode', 'temp'))\n\tif (!registryCache.has(version)) {\n\t\tawait Promise.all(Registries.map(([id, c]) => fetchRegistry(version, rootRegistries, id, c)))\n\t\tregistryCache.set(version, rootRegistries)\n\t}\n\tWorldgenRegistries.DENSITY_FUNCTION.clear().assign(rootRegistries.getOrThrow(Identifier.create('worldgen/density_function')))\n\tWorldgenRegistries.NOISE.clear().assign(rootRegistries.getOrThrow(Identifier.create('worldgen/noise')))\n}\n\nasync function fetchRegistry<T extends { fromJson(obj: unknown): T }>(version: VersionId, root: Registry<Registry<unknown>>, id: string, clazz: T) {\n\tconst entries = await fetchAllPresets(version, id)\n\tconst registry = new Registry<typeof clazz>(Identifier.create(id))\n\tfor (const [key, value] of entries.entries()) {\n\t\tregistry.register(Identifier.parse(key), clazz.fromJson(value))\n\t}\n\troot.register(registry.key, registry)\n}\n\nfunction getCached(state: unknown, options: NoiseSettingsOptions) {\n\tconst settings = NoiseGeneratorSettings.fromJson(DataModel.unwrapLists(state))\n\n\tconst newState = [state, `${options.seed}`, options.biome]\n\tif (!deepEqual(newState, cacheState)) {\n\t\tcacheState = deepClone(newState)\n\t\tchunkCache = []\n\t\tif (checkVersion(options.version, '1.18.2')) {\n\t\t\tconst biomeSource = new FixedBiome(Identifier.create('unknown'))\n\t\t\tgeneratorCache = new NoiseChunkGenerator(options.seed, biomeSource, settings)\n\t\t} else {\n\t\t\tconst biomeSource = new deepslate18.FixedBiome('unknown')\n\t\t\tgeneratorCache = new deepslate18.NoiseChunkGenerator(options.seed, biomeSource, settings as any) as any\n\t\t}\n\t}\n\treturn {\n\t\tsettings,\n\t\tgenerator: generatorCache,\n\t}\n}\n\nfunction getColor(noise: number[], y: number): number {\n\tif (noise[y] > 0) {\n\t\treturn 0\n\t}\n\tif (noise[y+1] > 0) {\n\t\treturn 150\n\t}\n\treturn 255\n}\n\nclass LevelSlice {\n\tprivate readonly chunks: Chunk[]\n\tprivate readonly done: boolean[]\n\n\tconstructor(\n\t\tprivate readonly minX: number,\n\t\twidth: number,\n\t\tminY: number,\n\t\theight: number,\n\t) {\n\t\tthis.done = []\n\t\tthis.chunks = [...Array(Math.ceil(width / 16) + 1)]\n\t\t\t.map((_, i) => {\n\t\t\t\tconst x = (minX >> 4) + i\n\t\t\t\tconst cached = chunkCache.find(c => c.pos[0] === x)\n\t\t\t\tif (cached) {\n\t\t\t\t\tthis.done[i] = true\n\t\t\t\t\treturn cached\n\t\t\t\t}\n\t\t\t\treturn new Chunk(minY, height, ChunkPos.create(x, Z >> 4))\n\t\t\t})\n\t}\n\n\tpublic generate(generator: NoiseChunkGenerator, forcedBiome?: string) {\n\t\tthis.chunks.forEach((chunk, i) => {\n\t\t\tif (!this.done[i]) {\n\t\t\t\tgenerator.fill(chunk, true)\n\t\t\t\tgenerator.buildSurface(chunk, forcedBiome)\n\t\t\t\tthis.done[i] = true\n\t\t\t\tchunkCache.push(chunk)\n\t\t\t}\n\t\t})\n\t}\n\n\tpublic getBlockState(pos: BlockPos): BlockState {\n\t\tconst chunkIndex = (pos[0] >> 4) - (this.minX >> 4)\n\t\treturn this.chunks[chunkIndex].getBlockState(pos)\n\t}\n}\n","import { DataModel } from '@mcschema/core'\nimport { LegacyRandom, NoiseParameters, NormalNoise } from 'deepslate'\nimport type { VersionId } from '../services'\n\nexport type NoiseOptions = {\n\toffset: [number, number],\n\tscale: number,\n\tseed: bigint,\n\tversion: VersionId,\n}\n\nexport function normalNoise(state: any, img: ImageData, options: NoiseOptions) {\n\tconst random = new LegacyRandom(options.seed)\n\tconst params = NoiseParameters.fromJson(DataModel.unwrapLists(state))\n\tconst noise = new NormalNoise(random, params)\n\n\tconst ox = -options.offset[0] - 100\n\tconst oz = -options.offset[1] - 100\n\tconst data = img.data\n\tfor (let x = 0; x < 256; x += 1) {\n\t\tfor (let y = 0; y < 256; y += 1) {\n\t\t\tconst i = x * 4 + y * 4 * 256\n\t\t\tconst xx = (x + ox) * options.scale\n\t\t\tconst yy = (y + oz) * options.scale\n\t\t\tconst color = (noise.sample(xx, yy, 0) + 1) * 128\n\t\t\tdata[i] = color\n\t\t\tdata[i + 1] = color\n\t\t\tdata[i + 2] = color\n\t\t\tdata[i + 3] = 255\n\t\t}\n\t}\n}\n","import { Path } from '@mcschema/core'\nimport type { NoiseParameters } from 'deepslate'\nimport { useEffect, useMemo, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { biomeMap, getBiome } from '../../previews'\nimport { newSeed, randomSeed } from '../../Utils'\n\nconst LAYERS = ['biomes', 'temperature', 'humidity', 'continentalness', 'erosion', 'weirdness'] as const\n\nexport const BiomeSourcePreview = ({ model, data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [configuredSeed] = useState(randomSeed())\n\tconst [scale, setScale] = useState(2)\n\tconst [focused, setFocused] = useState<{[k: string]: number | string} | undefined>(undefined)\n\tconst [layers, setLayers] = useState(new Set<typeof LAYERS[number]>(['biomes']))\n\tconst offset = useRef<[number, number]>([0, 0])\n\tconst res = useRef(1)\n\tconst refineTimeout = useRef<number>(undefined)\n\n\tconst seed = BigInt(model.get(new Path(['generator', 'seed'])) ?? configuredSeed)\n\tconst octaves = useMemo(() => {\n\t\tif (!shown) return undefined\n\t\treturn getOctaves(model.get(new Path(['generator', 'settings'])))\n\t}, [shown])\n\tconst state = shown ? calculateState(data, octaves!) : ''\n\tconst type: string = data.type?.replace(/^minecraft:/, '')\n\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [200 / res.current, 200 / res.current]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { octaves: octaves!, biomeColors: {}, layers, offset: offset.current, scale, seed, res: res.current, version }\n\t\t\tawait biomeMap(data, img, options)\n\t\t\tif (res.current === 4) {\n\t\t\t\tclearTimeout(refineTimeout.current)\n\t\t\t\trefineTimeout.current = setTimeout(() => {\n\t\t\t\t\tres.current = 1\n\t\t\t\t\tredraw()\n\t\t\t\t}, 150) as any\n\t\t\t}\n\t\t},\n\t\tasync onDrag(dx, dy) {\n\t\t\toffset.current[0] = offset.current[0] + dx * 200\n\t\t\toffset.current[1] = offset.current[1] + dy * 200\n\t\t\tclearTimeout(refineTimeout.current)\n\t\t\tres.current = type === 'multi_noise' ? 4 : 1\n\t\t\tredraw()\n\t\t},\n\t\tasync onHover(x, y) {\n\t\t\tconst options = { octaves: octaves!, biomeColors: {}, layers, offset: offset.current, scale, seed: configuredSeed, 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, configuredSeed, layers])\n\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tres.current = type === 'multi_noise' ? 4 : 1\n\t\t\tredraw()\n\t\t}\n\t}, [state, scale, configuredSeed, layers, shown])\n\n\tconst changeScale = (newScale: number) => {\n\t\toffset.current[0] = offset.current[0] * scale / newScale\n\t\toffset.current[1] = offset.current[1] * scale / newScale\n\t\tsetScale(newScale)\n\t}\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t{focused && <Btn label={focused.biome as string} class=\"no-pointer\" />}\n\t\t\t{type === 'multi_noise' &&\n\t\t\t\t<BtnMenu icon=\"stack\" tooltip={locale('configure_layers')}>\n\t\t\t\t\t{LAYERS.map(name => {\n\t\t\t\t\t\tconst enabled = layers.has(name)\n\t\t\t\t\t\treturn <Btn label={locale(`layer.${name}`)} \n\t\t\t\t\t\t\tactive={enabled}\n\t\t\t\t\t\t\ttooltip={enabled ? locale('enabled') : locale('disabled')}\n\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\tsetLayers(new Set([name]))\n\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t}} />\n\t\t\t\t\t})}\n\t\t\t\t</BtnMenu>}\n\t\t\t{(type === 'multi_noise' || type === 'checkerboard') && <>\n\t\t\t\t<Btn icon=\"dash\" tooltip={locale('zoom_out')}\n\t\t\t\t\tonClick={() => changeScale(scale * 1.5)} />\n\t\t\t\t<Btn icon=\"plus\" tooltip={locale('zoom_in')}\n\t\t\t\t\tonClick={() => changeScale(scale / 1.5)} />\n\t\t\t</>}\n\t\t\t{type === 'multi_noise' &&\n\t\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\t\tonClick={() => newSeed(model)} />}\n\t\t</div>\n\t\t{focused?.temperature !== undefined && <div class=\"controls secondary-controls\">\n\t\t\t<Btn class=\"no-pointer\" label={Object.entries(focused)\n\t\t\t\t.filter(([k]) => k !== 'biome')\n\t\t\t\t.map(([k, v]) => `${k[0].toUpperCase()}: ${(v as number).toFixed(2)}`).join(' ')}/>\n\t\t</div>}\n\t\t<canvas ref={canvas} width=\"200\" height=\"200\"></canvas>\n\t</>\n}\n\nfunction calculateState(data: any, octaves: Record<string, NoiseParameters>) {\n\treturn JSON.stringify([data, octaves])\n}\n\nexport function getOctaves(obj: any): Record<string, NoiseParameters> {\n\tif (typeof obj !== 'string') {\n\t\tobj = obj.legacy_random_source ? 'minecraft:nether' : 'minecraft:overworld'\n\t}\n\tswitch (obj.replace(/^minecraft:/, '')) {\n\t\tcase 'overworld':\n\t\tcase 'amplified':\n\t\t\treturn {\n\t\t\t\ttemperature: { firstOctave: -9, amplitudes: [1.5, 0, 1, 0, 0, 0] },\n\t\t\t\thumidity: { firstOctave: -7, amplitudes: [1, 1, 0, 0, 0, 0] },\n\t\t\t\tcontinentalness: { firstOctave: -9, amplitudes: [1, 1, 2, 2, 2, 1, 1, 1, 1] },\n\t\t\t\terosion: { firstOctave: -9, amplitudes: [1, 1, 0, 1, 1] },\n\t\t\t\tweirdness: { firstOctave: -7, amplitudes: [1, 2, 1, 0, 0, 0] },\n\t\t\t\tshift: { firstOctave: -3, amplitudes: [1, 1, 1, 0] },\n\t\t\t}\n\t\tcase 'end':\n\t\tcase 'floating_islands':\n\t\t\treturn {\n\t\t\t\ttemperature: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\thumidity: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\tcontinentalness: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\terosion: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\tweirdness: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\tshift: { firstOctave: 0, amplitudes: [0] },\n\t\t\t}\n\t\tdefault:\n\t\t\treturn {\n\t\t\t\ttemperature: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\thumidity: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\tcontinentalness: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\terosion: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\tweirdness: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\tshift: { firstOctave: 0, amplitudes: [0] },\n\t\t\t}\n\t}\n}\n","import { useEffect, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { decorator } from '../../previews'\nimport { randomSeed } from '../../Utils'\n\nexport const DecoratorPreview = ({ data, version, shown }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [scale, setScale] = useState(4)\n\tconst [seed, setSeed] = useState(randomSeed())\n\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [scale * 16, scale * 16]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tdecorator(data, img, { seed, version, size: [scale * 16, 128, scale * 16] })\n\t\t},\n\t})\n\n\tconst state = JSON.stringify(data)\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tredraw()\n\t\t}\n\t}, [state, scale, seed, shown])\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t<Btn icon=\"dash\" tooltip={locale('zoom_out')}\n\t\t\t\tonClick={() => setScale(Math.min(16, scale + 1))} />\n\t\t\t<Btn icon=\"plus\" tooltip={locale('zoom_in')}\n\t\t\t\tonClick={() => setScale(Math.max(1, scale - 1))} />\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width=\"64\" height=\"64\"></canvas>\n\t</>\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { densityFunction } from '../../previews'\nimport { randomSeed } from '../../Utils'\n\nexport const DensityFunctionPreview = ({ data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [autoScroll, setAutoScroll] = useState(false)\n\tconst [focused, setFocused] = useState<string | undefined>(undefined)\n\tconst offset = useRef(0)\n\tconst scrollInterval = useRef<number | undefined>(undefined)\n\tconst state = JSON.stringify([data])\n\n\tconst size = data?.noise?.height ?? 256\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [size, size]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { offset: offset.current, width: img.width, seed, version }\n\t\t\tawait densityFunction(data, img, options)\n\t\t},\n\t\tasync onDrag(dx) {\n\t\t\toffset.current += dx * size\n\t\t\tredraw()\n\t\t},\n\t\tasync onHover(x, y) {\n\t\t\tconst worldX = Math.floor(x * size - offset.current)\n\t\t\tconst worldY = size - Math.max(1, Math.ceil(y * size)) + (data?.noise?.min_y ?? 0)\n\t\t\tsetFocused(`X=${worldX} Y=${worldY}`)\n\t\t},\n\t\tonLeave() {\n\t\t\tsetFocused(undefined)\n\t\t},\n\t}, [state, seed])\n\n\tuseEffect(() => {\n\t\tif (scrollInterval.current) {\n\t\t\tclearInterval(scrollInterval.current)\n\t\t}\n\t\tif (shown) {\n\t\t\tredraw()\n\t\t\tif (autoScroll) {\n\t\t\t\tscrollInterval.current = setInterval(() => {\n\t\t\t\t\toffset.current -= 8\n\t\t\t\t\tredraw()\n\t\t\t\t}, 100) as any\n\t\t\t}\n\t\t}\n\t}, [state, seed, shown, autoScroll])\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t{focused && <Btn label={focused} class=\"no-pointer\" />}\n\t\t\t<BtnMenu icon=\"gear\" tooltip={locale('terrain_settings')}>\n\t\t\t\t<Btn icon={autoScroll ? 'square_fill' : 'square'} label={locale('preview.auto_scroll')} onClick={() => setAutoScroll(!autoScroll)} />\n\t\t\t</BtnMenu>\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width={size} height={size}></canvas>\n\t</>\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { normalNoise } from '../../previews'\nimport { randomSeed } from '../../Utils'\n\nexport const NoisePreview = ({ data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [scale, setScale] = useState(2)\n\tconst offset = useRef<[number, number]>([0, 0])\n\tconst state = JSON.stringify([data])\n\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [256, 256]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { offset: offset.current, scale, seed, version }\n\t\t\tnormalNoise(data, img, options)\n\t\t},\n\t\tasync onDrag(dx, dy) {\n\t\t\toffset.current[0] = offset.current[0] + dx * 256\n\t\t\toffset.current[1] = offset.current[1] + dy * 256\n\t\t\tredraw()\n\t\t},\n\t}, [state, scale, seed])\n\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tredraw()\n\t\t}\n\t}, [state, scale, seed, shown])\n\n\tconst changeScale = (newScale: number) => {\n\t\toffset.current[0] = offset.current[0] * scale / newScale\n\t\toffset.current[1] = offset.current[1] * scale / newScale\n\t\tsetScale(newScale)\n\t}\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t<Btn icon=\"dash\" tooltip={locale('zoom_out')}\n\t\t\t\tonClick={() => changeScale(scale * 1.5)} />\n\t\t\t<Btn icon=\"plus\" tooltip={locale('zoom_in')}\n\t\t\t\tonClick={() => changeScale(scale / 1.5)} />\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width=\"256\" height=\"256\"></canvas>\n\t</>\n}\n","import { useEffect, useMemo, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn, BtnInput, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { getNoiseBlock, noiseSettings } from '../../previews'\nimport { CachedCollections, checkVersion } from '../../services'\nimport { randomSeed } from '../../Utils'\n\nexport const NoiseSettingsPreview = ({ data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [biome, setBiome] = useState('minecraft:plains')\n\tconst [biomeScale, setBiomeScale] = useState(0.2)\n\tconst [biomeDepth, setBiomeDepth] = useState(0.1)\n\tconst [autoScroll, setAutoScroll] = useState(false)\n\tconst [focused, setFocused] = useState<string | undefined>(undefined)\n\tconst offset = useRef(0)\n\tconst scrollInterval = useRef<number | undefined>(undefined)\n\tconst state = JSON.stringify([data, biomeScale, biomeDepth])\n\n\tconst size = data?.noise?.height ?? 256\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [size, size]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { biome, biomeDepth, biomeScale, offset: offset.current, width: img.width, seed, version }\n\t\t\tawait noiseSettings(data, img, options)\n\t\t},\n\t\tasync onDrag(dx) {\n\t\t\toffset.current += dx * size\n\t\t\tredraw()\n\t\t},\n\t\tasync onHover(x, y) {\n\t\t\tconst worldX = Math.floor(x * size - offset.current)\n\t\t\tconst worldY = size - Math.max(1, Math.ceil(y * size)) + (data?.noise?.min_y ?? 0)\n\t\t\tconst block = getNoiseBlock(worldX, worldY)\n\t\t\tsetFocused(block ? `Y=${worldY} (${block.getName().path})` : `Y=${worldY}`)\n\t\t},\n\t\tonLeave() {\n\t\t\tsetFocused(undefined)\n\t\t},\n\t}, [state, seed])\n\n\tuseEffect(() => {\n\t\tif (scrollInterval.current) {\n\t\t\tclearInterval(scrollInterval.current)\n\t\t}\n\t\tif (shown) {\n\t\t\t(async () => {\n\t\t\t\ttry {\n\t\t\t\t\tawait redraw()\n\t\t\t\t\tif (autoScroll) {\n\t\t\t\t\t\tscrollInterval.current = setInterval(() => {\n\t\t\t\t\t\t\toffset.current -= 8\n\t\t\t\t\t\t\tredraw()\n\t\t\t\t\t\t}, 100) as any\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\tthrow e\n\t\t\t\t}\n\t\t\t})()\n\t\t}\n\t}, [state, seed, shown, biome, biomeScale, biomeDepth, autoScroll])\n\n\tconst allBiomes = useMemo(() => CachedCollections?.get('worldgen/biome') ?? [], [version])\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t{focused && <Btn label={focused} class=\"no-pointer\" />}\n\t\t\t<BtnMenu icon=\"gear\" tooltip={locale('terrain_settings')}>\n\t\t\t\t{checkVersion(version, undefined, '1.17') ? <>\n\t\t\t\t\t<BtnInput label={locale('preview.scale')} value={`${biomeScale}`} onChange={v => setBiomeScale(Number(v))} />\n\t\t\t\t\t<BtnInput label={locale('preview.depth')} value={`${biomeDepth}`} onChange={v => setBiomeDepth(Number(v))} />\n\t\t\t\t</> :\n\t\t\t\t\t<BtnInput label={locale('preview.biome')} value={biome} onChange={setBiome} dataList={allBiomes} larger />\n\t\t\t\t}\n\t\t\t\t<Btn icon={autoScroll ? 'square_fill' : 'square'} label={locale('preview.auto_scroll')} onClick={() => setAutoScroll(!autoScroll)} />\n\t\t\t</BtnMenu>\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width={size} height={size}></canvas>\n\t</>\n}\n","import type { DataModel } from '@mcschema/core'\nimport { Path } from '@mcschema/core'\nimport { useState } from 'preact/hooks'\nimport { useModel } from '../../hooks'\nimport type { VersionId } from '../../services'\nimport { checkVersion } from '../../services'\nimport { BiomeSourcePreview, DecoratorPreview, DensityFunctionPreview, NoisePreview, NoiseSettingsPreview } from '../previews'\n\nexport const HasPreview = ['dimension', 'worldgen/density_function', 'worldgen/noise', 'worldgen/noise_settings', 'worldgen/configured_feature', 'worldgen/placed_feature']\n\ntype PreviewPanelProps = {\n\tmodel: DataModel | null,\n\tversion: VersionId,\n\tid: string,\n\tshown: boolean,\n\tonError: (message: string) => unknown,\n}\nexport function PreviewPanel({ model, version, id, shown }: PreviewPanelProps) {\n\tconst [, setCount] = useState(0)\n\n\tuseModel(model, () => {\n\t\tsetCount(count => count + 1)\n\t})\n\n\tif (!model) return <></>\n\n\tif (id === 'dimension' && model.get(new Path(['generator', 'type']))?.endsWith('noise')) {\n\t\tconst data = model.get(new Path(['generator', 'biome_source']))\n\t\tif (data) return <BiomeSourcePreview {...{ model, version, shown, data }} />\n\t}\n\n\tif (id === 'worldgen/density_function') {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <DensityFunctionPreview {...{ model, version, shown, data }} />\n\t}\n\n\tif (id === 'worldgen/noise') {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <NoisePreview {...{ model, version, shown, data }} />\n\t}\n\n\tif (id === 'worldgen/noise_settings') {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <NoiseSettingsPreview {...{ model, version, shown, data }} />\n\t}\n\n\tif ((id === 'worldgen/placed_feature' || (id === 'worldgen/configured_feature' && checkVersion(version, '1.16', '1.17')))) {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <DecoratorPreview {...{ model, version, shown, data }} />\n\t}\n\n\treturn <></>\n}\n","/* ***** BEGIN LICENSE BLOCK *****\n * Distributed under the BSD license:\n *\n * Copyright (c) 2010, Ajax.org B.V.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n * * Neither the name of Ajax.org B.V. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * ***** END LICENSE BLOCK ***** */\n\n/**\n * Define a module along with a payload\n * @param module a name for the payload\n * @param payload a function to call with (acequire, exports, module) params\n */\n\n(function() {\n\nvar ACE_NAMESPACE = \"ace\";\n\nvar global = (function() { return this; })();\nif (!global && typeof window != \"undefined\") global = window; // strict mode\n\n\nif (!ACE_NAMESPACE && typeof acequirejs !== \"undefined\")\n return;\n\n\nvar define = function(module, deps, payload) {\n if (typeof module !== \"string\") {\n if (define.original)\n define.original.apply(this, arguments);\n else {\n console.error(\"dropping module because define wasn\\'t a string.\");\n console.trace();\n }\n return;\n }\n if (arguments.length == 2)\n payload = deps;\n if (!define.modules[module]) {\n define.payloads[module] = payload;\n define.modules[module] = null;\n }\n};\n\ndefine.modules = {};\ndefine.payloads = {};\n\n/**\n * Get at functionality define()ed using the function above\n */\nvar _acequire = function(parentId, module, callback) {\n if (typeof module === \"string\") {\n var payload = lookup(parentId, module);\n if (payload != undefined) {\n callback && callback();\n return payload;\n }\n } else if (Object.prototype.toString.call(module) === \"[object Array]\") {\n var params = [];\n for (var i = 0, l = module.length; i < l; ++i) {\n var dep = lookup(parentId, module[i]);\n if (dep == undefined && acequire.original)\n return;\n params.push(dep);\n }\n return callback && callback.apply(null, params) || true;\n }\n};\n\nvar acequire = function(module, callback) {\n var packagedModule = _acequire(\"\", module, callback);\n if (packagedModule == undefined && acequire.original)\n return acequire.original.apply(this, arguments);\n return packagedModule;\n};\n\nvar normalizeModule = function(parentId, moduleName) {\n // normalize plugin acequires\n if (moduleName.indexOf(\"!\") !== -1) {\n var chunks = moduleName.split(\"!\");\n return normalizeModule(parentId, chunks[0]) + \"!\" + normalizeModule(parentId, chunks[1]);\n }\n // normalize relative acequires\n if (moduleName.charAt(0) == \".\") {\n var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n moduleName = base + \"/\" + moduleName;\n\n while(moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n var previous = moduleName;\n moduleName = moduleName.replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n }\n }\n return moduleName;\n};\n\n/**\n * Internal function to lookup moduleNames and resolve them by calling the\n * definition function if needed.\n */\nvar lookup = function(parentId, moduleName) {\n moduleName = normalizeModule(parentId, moduleName);\n\n var module = define.modules[moduleName];\n if (!module) {\n module = define.payloads[moduleName];\n if (typeof module === 'function') {\n var exports = {};\n var mod = {\n id: moduleName,\n uri: '',\n exports: exports,\n packaged: true\n };\n\n var req = function(module, callback) {\n return _acequire(moduleName, module, callback);\n };\n\n var returnValue = module(req, exports, mod);\n exports = returnValue || mod.exports;\n define.modules[moduleName] = exports;\n delete define.payloads[moduleName];\n }\n module = define.modules[moduleName] = exports || module;\n }\n return module;\n};\n\nfunction exportAce(ns) {\n var root = global;\n if (ns) {\n if (!global[ns])\n global[ns] = {};\n root = global[ns];\n }\n\n if (!root.define || !root.define.packaged) {\n define.original = root.define;\n root.define = define;\n root.define.packaged = true;\n }\n\n if (!root.acequire || !root.acequire.packaged) {\n acequire.original = root.acequire;\n root.acequire = acequire;\n root.acequire.packaged = true;\n }\n}\n\nexportAce(ACE_NAMESPACE);\n\n})();\n\nace.define(\"ace/lib/regexp\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\n var real = {\n exec: RegExp.prototype.exec,\n test: RegExp.prototype.test,\n match: String.prototype.match,\n replace: String.prototype.replace,\n split: String.prototype.split\n },\n compliantExecNpcg = real.exec.call(/()??/, \"\")[1] === undefined, // check `exec` handling of nonparticipating capturing groups\n compliantLastIndexIncrement = function () {\n var x = /^/g;\n real.test.call(x, \"\");\n return !x.lastIndex;\n }();\n\n if (compliantLastIndexIncrement && compliantExecNpcg)\n return;\n RegExp.prototype.exec = function (str) {\n var match = real.exec.apply(this, arguments),\n name, r2;\n if ( typeof(str) == 'string' && match) {\n if (!compliantExecNpcg && match.length > 1 && indexOf(match, \"\") > -1) {\n r2 = RegExp(this.source, real.replace.call(getNativeFlags(this), \"g\", \"\"));\n real.replace.call(str.slice(match.index), r2, function () {\n for (var i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined)\n match[i] = undefined;\n }\n });\n }\n if (this._xregexp && this._xregexp.captureNames) {\n for (var i = 1; i < match.length; i++) {\n name = this._xregexp.captureNames[i - 1];\n if (name)\n match[name] = match[i];\n }\n }\n if (!compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index))\n this.lastIndex--;\n }\n return match;\n };\n if (!compliantLastIndexIncrement) {\n RegExp.prototype.test = function (str) {\n var match = real.exec.call(this, str);\n if (match && this.global && !match[0].length && (this.lastIndex > match.index))\n this.lastIndex--;\n return !!match;\n };\n }\n\n function getNativeFlags (regex) {\n return (regex.global ? \"g\" : \"\") +\n (regex.ignoreCase ? \"i\" : \"\") +\n (regex.multiline ? \"m\" : \"\") +\n (regex.extended ? \"x\" : \"\") + // Proposed for ES4; included in AS3\n (regex.sticky ? \"y\" : \"\");\n }\n\n function indexOf (array, item, from) {\n if (Array.prototype.indexOf) // Use the native array method if available\n return array.indexOf(item, from);\n for (var i = from || 0; i < array.length; i++) {\n if (array[i] === item)\n return i;\n }\n return -1;\n }\n\n});\n\nace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\nfunction Empty() {}\n\nif (!Function.prototype.bind) {\n Function.prototype.bind = function bind(that) { // .length is 1\n var target = this;\n if (typeof target != \"function\") {\n throw new TypeError(\"Function.prototype.bind called on incompatible \" + target);\n }\n var args = slice.call(arguments, 1); // for normal call\n var bound = function () {\n\n if (this instanceof bound) {\n\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n\n }\n\n };\n if(target.prototype) {\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n return bound;\n };\n}\nvar call = Function.prototype.call;\nvar prototypeOfArray = Array.prototype;\nvar prototypeOfObject = Object.prototype;\nvar slice = prototypeOfArray.slice;\nvar _toString = call.bind(prototypeOfObject.toString);\nvar owns = call.bind(prototypeOfObject.hasOwnProperty);\nvar defineGetter;\nvar defineSetter;\nvar lookupGetter;\nvar lookupSetter;\nvar supportsAccessors;\nif ((supportsAccessors = owns(prototypeOfObject, \"__defineGetter__\"))) {\n defineGetter = call.bind(prototypeOfObject.__defineGetter__);\n defineSetter = call.bind(prototypeOfObject.__defineSetter__);\n lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);\n lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);\n}\nif ([1,2].splice(0).length != 2) {\n if(function() { // test IE < 9 to splice bug - see issue #138\n function makeArray(l) {\n var a = new Array(l+2);\n a[0] = a[1] = 0;\n return a;\n }\n var array = [], lengthBefore;\n \n array.splice.apply(array, makeArray(20));\n array.splice.apply(array, makeArray(26));\n\n lengthBefore = array.length; //46\n array.splice(5, 0, \"XXX\"); // add one element\n\n lengthBefore + 1 == array.length\n\n if (lengthBefore + 1 == array.length) {\n return true;// has right splice implementation without bugs\n }\n }()) {//IE 6/7\n var array_splice = Array.prototype.splice;\n Array.prototype.splice = function(start, deleteCount) {\n if (!arguments.length) {\n return [];\n } else {\n return array_splice.apply(this, [\n start === void 0 ? 0 : start,\n deleteCount === void 0 ? (this.length - start) : deleteCount\n ].concat(slice.call(arguments, 2)))\n }\n };\n } else {//IE8\n Array.prototype.splice = function(pos, removeCount){\n var length = this.length;\n if (pos > 0) {\n if (pos > length)\n pos = length;\n } else if (pos == void 0) {\n pos = 0;\n } else if (pos < 0) {\n pos = Math.max(length + pos, 0);\n }\n\n if (!(pos+removeCount < length))\n removeCount = length - pos;\n\n var removed = this.slice(pos, pos+removeCount);\n var insert = slice.call(arguments, 2);\n var add = insert.length; \n if (pos === length) {\n if (add) {\n this.push.apply(this, insert);\n }\n } else {\n var remove = Math.min(removeCount, length - pos);\n var tailOldPos = pos + remove;\n var tailNewPos = tailOldPos + add - remove;\n var tailCount = length - tailOldPos;\n var lengthAfterRemove = length - remove;\n\n if (tailNewPos < tailOldPos) { // case A\n for (var i = 0; i < tailCount; ++i) {\n this[tailNewPos+i] = this[tailOldPos+i];\n }\n } else if (tailNewPos > tailOldPos) { // case B\n for (i = tailCount; i--; ) {\n this[tailNewPos+i] = this[tailOldPos+i];\n }\n } // else, add == remove (nothing to do)\n\n if (add && pos === lengthAfterRemove) {\n this.length = lengthAfterRemove; // truncate array\n this.push.apply(this, insert);\n } else {\n this.length = lengthAfterRemove + add; // reserves space\n for (i = 0; i < add; ++i) {\n this[pos+i] = insert[i];\n }\n }\n }\n return removed;\n };\n }\n}\nif (!Array.isArray) {\n Array.isArray = function isArray(obj) {\n return _toString(obj) == \"[object Array]\";\n };\n}\nvar boxedString = Object(\"a\"),\n splitString = boxedString[0] != \"a\" || !(0 in boxedString);\n\nif (!Array.prototype.forEach) {\n Array.prototype.forEach = function forEach(fun /*, thisp*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n thisp = arguments[1],\n i = -1,\n length = self.length >>> 0;\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(); // TODO message\n }\n\n while (++i < length) {\n if (i in self) {\n fun.call(thisp, self[i], i, object);\n }\n }\n };\n}\nif (!Array.prototype.map) {\n Array.prototype.map = function map(fun /*, thisp*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n result = Array(length),\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self)\n result[i] = fun.call(thisp, self[i], i, object);\n }\n return result;\n };\n}\nif (!Array.prototype.filter) {\n Array.prototype.filter = function filter(fun /*, thisp */) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n result = [],\n value,\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self) {\n value = self[i];\n if (fun.call(thisp, value, i, object)) {\n result.push(value);\n }\n }\n }\n return result;\n };\n}\nif (!Array.prototype.every) {\n Array.prototype.every = function every(fun /*, thisp */) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self && !fun.call(thisp, self[i], i, object)) {\n return false;\n }\n }\n return true;\n };\n}\nif (!Array.prototype.some) {\n Array.prototype.some = function some(fun /*, thisp */) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self && fun.call(thisp, self[i], i, object)) {\n return true;\n }\n }\n return false;\n };\n}\nif (!Array.prototype.reduce) {\n Array.prototype.reduce = function reduce(fun /*, initial*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0;\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n if (!length && arguments.length == 1) {\n throw new TypeError(\"reduce of empty array with no initial value\");\n }\n\n var i = 0;\n var result;\n if (arguments.length >= 2) {\n result = arguments[1];\n } else {\n do {\n if (i in self) {\n result = self[i++];\n break;\n }\n if (++i >= length) {\n throw new TypeError(\"reduce of empty array with no initial value\");\n }\n } while (true);\n }\n\n for (; i < length; i++) {\n if (i in self) {\n result = fun.call(void 0, result, self[i], i, object);\n }\n }\n\n return result;\n };\n}\nif (!Array.prototype.reduceRight) {\n Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0;\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n if (!length && arguments.length == 1) {\n throw new TypeError(\"reduceRight of empty array with no initial value\");\n }\n\n var result, i = length - 1;\n if (arguments.length >= 2) {\n result = arguments[1];\n } else {\n do {\n if (i in self) {\n result = self[i--];\n break;\n }\n if (--i < 0) {\n throw new TypeError(\"reduceRight of empty array with no initial value\");\n }\n } while (true);\n }\n\n do {\n if (i in this) {\n result = fun.call(void 0, result, self[i], i, object);\n }\n } while (i--);\n\n return result;\n };\n}\nif (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) {\n Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) {\n var self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n toObject(this),\n length = self.length >>> 0;\n\n if (!length) {\n return -1;\n }\n\n var i = 0;\n if (arguments.length > 1) {\n i = toInteger(arguments[1]);\n }\n i = i >= 0 ? i : Math.max(0, length + i);\n for (; i < length; i++) {\n if (i in self && self[i] === sought) {\n return i;\n }\n }\n return -1;\n };\n}\nif (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) {\n Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) {\n var self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n toObject(this),\n length = self.length >>> 0;\n\n if (!length) {\n return -1;\n }\n var i = length - 1;\n if (arguments.length > 1) {\n i = Math.min(i, toInteger(arguments[1]));\n }\n i = i >= 0 ? i : length - Math.abs(i);\n for (; i >= 0; i--) {\n if (i in self && sought === self[i]) {\n return i;\n }\n }\n return -1;\n };\n}\nif (!Object.getPrototypeOf) {\n Object.getPrototypeOf = function getPrototypeOf(object) {\n return object.__proto__ || (\n object.constructor ?\n object.constructor.prototype :\n prototypeOfObject\n );\n };\n}\nif (!Object.getOwnPropertyDescriptor) {\n var ERR_NON_OBJECT = \"Object.getOwnPropertyDescriptor called on a \" +\n \"non-object: \";\n Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {\n if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n throw new TypeError(ERR_NON_OBJECT + object);\n if (!owns(object, property))\n return;\n\n var descriptor, getter, setter;\n descriptor = { enumerable: true, configurable: true };\n if (supportsAccessors) {\n var prototype = object.__proto__;\n object.__proto__ = prototypeOfObject;\n\n var getter = lookupGetter(object, property);\n var setter = lookupSetter(object, property);\n object.__proto__ = prototype;\n\n if (getter || setter) {\n if (getter) descriptor.get = getter;\n if (setter) descriptor.set = setter;\n return descriptor;\n }\n }\n descriptor.value = object[property];\n return descriptor;\n };\n}\nif (!Object.getOwnPropertyNames) {\n Object.getOwnPropertyNames = function getOwnPropertyNames(object) {\n return Object.keys(object);\n };\n}\nif (!Object.create) {\n var createEmpty;\n if (Object.prototype.__proto__ === null) {\n createEmpty = function () {\n return { \"__proto__\": null };\n };\n } else {\n createEmpty = function () {\n var empty = {};\n for (var i in empty)\n empty[i] = null;\n empty.constructor =\n empty.hasOwnProperty =\n empty.propertyIsEnumerable =\n empty.isPrototypeOf =\n empty.toLocaleString =\n empty.toString =\n empty.valueOf =\n empty.__proto__ = null;\n return empty;\n }\n }\n\n Object.create = function create(prototype, properties) {\n var object;\n if (prototype === null) {\n object = createEmpty();\n } else {\n if (typeof prototype != \"object\")\n throw new TypeError(\"typeof prototype[\"+(typeof prototype)+\"] != 'object'\");\n var Type = function () {};\n Type.prototype = prototype;\n object = new Type();\n object.__proto__ = prototype;\n }\n if (properties !== void 0)\n Object.defineProperties(object, properties);\n return object;\n };\n}\n\nfunction doesDefinePropertyWork(object) {\n try {\n Object.defineProperty(object, \"sentinel\", {});\n return \"sentinel\" in object;\n } catch (exception) {\n }\n}\nif (Object.defineProperty) {\n var definePropertyWorksOnObject = doesDefinePropertyWork({});\n var definePropertyWorksOnDom = typeof document == \"undefined\" ||\n doesDefinePropertyWork(document.createElement(\"div\"));\n if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {\n var definePropertyFallback = Object.defineProperty;\n }\n}\n\nif (!Object.defineProperty || definePropertyFallback) {\n var ERR_NON_OBJECT_DESCRIPTOR = \"Property description must be an object: \";\n var ERR_NON_OBJECT_TARGET = \"Object.defineProperty called on non-object: \"\n var ERR_ACCESSORS_NOT_SUPPORTED = \"getters & setters can not be defined \" +\n \"on this javascript engine\";\n\n Object.defineProperty = function defineProperty(object, property, descriptor) {\n if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n throw new TypeError(ERR_NON_OBJECT_TARGET + object);\n if ((typeof descriptor != \"object\" && typeof descriptor != \"function\") || descriptor === null)\n throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);\n if (definePropertyFallback) {\n try {\n return definePropertyFallback.call(Object, object, property, descriptor);\n } catch (exception) {\n }\n }\n if (owns(descriptor, \"value\")) {\n\n if (supportsAccessors && (lookupGetter(object, property) ||\n lookupSetter(object, property)))\n {\n var prototype = object.__proto__;\n object.__proto__ = prototypeOfObject;\n delete object[property];\n object[property] = descriptor.value;\n object.__proto__ = prototype;\n } else {\n object[property] = descriptor.value;\n }\n } else {\n if (!supportsAccessors)\n throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);\n if (owns(descriptor, \"get\"))\n defineGetter(object, property, descriptor.get);\n if (owns(descriptor, \"set\"))\n defineSetter(object, property, descriptor.set);\n }\n\n return object;\n };\n}\nif (!Object.defineProperties) {\n Object.defineProperties = function defineProperties(object, properties) {\n for (var property in properties) {\n if (owns(properties, property))\n Object.defineProperty(object, property, properties[property]);\n }\n return object;\n };\n}\nif (!Object.seal) {\n Object.seal = function seal(object) {\n return object;\n };\n}\nif (!Object.freeze) {\n Object.freeze = function freeze(object) {\n return object;\n };\n}\ntry {\n Object.freeze(function () {});\n} catch (exception) {\n Object.freeze = (function freeze(freezeObject) {\n return function freeze(object) {\n if (typeof object == \"function\") {\n return object;\n } else {\n return freezeObject(object);\n }\n };\n })(Object.freeze);\n}\nif (!Object.preventExtensions) {\n Object.preventExtensions = function preventExtensions(object) {\n return object;\n };\n}\nif (!Object.isSealed) {\n Object.isSealed = function isSealed(object) {\n return false;\n };\n}\nif (!Object.isFrozen) {\n Object.isFrozen = function isFrozen(object) {\n return false;\n };\n}\nif (!Object.isExtensible) {\n Object.isExtensible = function isExtensible(object) {\n if (Object(object) === object) {\n throw new TypeError(); // TODO message\n }\n var name = '';\n while (owns(object, name)) {\n name += '?';\n }\n object[name] = true;\n var returnValue = owns(object, name);\n delete object[name];\n return returnValue;\n };\n}\nif (!Object.keys) {\n var hasDontEnumBug = true,\n dontEnums = [\n \"toString\",\n \"toLocaleString\",\n \"valueOf\",\n \"hasOwnProperty\",\n \"isPrototypeOf\",\n \"propertyIsEnumerable\",\n \"constructor\"\n ],\n dontEnumsLength = dontEnums.length;\n\n for (var key in {\"toString\": null}) {\n hasDontEnumBug = false;\n }\n\n Object.keys = function keys(object) {\n\n if (\n (typeof object != \"object\" && typeof object != \"function\") ||\n object === null\n ) {\n throw new TypeError(\"Object.keys called on a non-object\");\n }\n\n var keys = [];\n for (var name in object) {\n if (owns(object, name)) {\n keys.push(name);\n }\n }\n\n if (hasDontEnumBug) {\n for (var i = 0, ii = dontEnumsLength; i < ii; i++) {\n var dontEnum = dontEnums[i];\n if (owns(object, dontEnum)) {\n keys.push(dontEnum);\n }\n }\n }\n return keys;\n };\n\n}\nif (!Date.now) {\n Date.now = function now() {\n return new Date().getTime();\n };\n}\nvar ws = \"\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\" +\n \"\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\" +\n \"\\u2029\\uFEFF\";\nif (!String.prototype.trim || ws.trim()) {\n ws = \"[\" + ws + \"]\";\n var trimBeginRegexp = new RegExp(\"^\" + ws + ws + \"*\"),\n trimEndRegexp = new RegExp(ws + ws + \"*$\");\n String.prototype.trim = function trim() {\n return String(this).replace(trimBeginRegexp, \"\").replace(trimEndRegexp, \"\");\n };\n}\n\nfunction toInteger(n) {\n n = +n;\n if (n !== n) { // isNaN\n n = 0;\n } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) {\n n = (n > 0 || -1) * Math.floor(Math.abs(n));\n }\n return n;\n}\n\nfunction isPrimitive(input) {\n var type = typeof input;\n return (\n input === null ||\n type === \"undefined\" ||\n type === \"boolean\" ||\n type === \"number\" ||\n type === \"string\"\n );\n}\n\nfunction toPrimitive(input) {\n var val, valueOf, toString;\n if (isPrimitive(input)) {\n return input;\n }\n valueOf = input.valueOf;\n if (typeof valueOf === \"function\") {\n val = valueOf.call(input);\n if (isPrimitive(val)) {\n return val;\n }\n }\n toString = input.toString;\n if (typeof toString === \"function\") {\n val = toString.call(input);\n if (isPrimitive(val)) {\n return val;\n }\n }\n throw new TypeError();\n}\nvar toObject = function (o) {\n if (o == null) { // this matches both null and undefined\n throw new TypeError(\"can't convert \"+o+\" to object\");\n }\n return Object(o);\n};\n\n});\n\nace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/regexp\",\"ace/lib/es5-shim\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./regexp\");\nacequire(\"./es5-shim\");\n\n});\n\nace.define(\"ace/lib/dom\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar XHTML_NS = \"http://www.w3.org/1999/xhtml\";\n\nexports.getDocumentHead = function(doc) {\n if (!doc)\n doc = document;\n return doc.head || doc.getElementsByTagName(\"head\")[0] || doc.documentElement;\n};\n\nexports.createElement = function(tag, ns) {\n return document.createElementNS ?\n document.createElementNS(ns || XHTML_NS, tag) :\n document.createElement(tag);\n};\n\nexports.hasCssClass = function(el, name) {\n var classes = (el.className + \"\").split(/\\s+/g);\n return classes.indexOf(name) !== -1;\n};\nexports.addCssClass = function(el, name) {\n if (!exports.hasCssClass(el, name)) {\n el.className += \" \" + name;\n }\n};\nexports.removeCssClass = function(el, name) {\n var classes = el.className.split(/\\s+/g);\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n classes.splice(index, 1);\n }\n el.className = classes.join(\" \");\n};\n\nexports.toggleCssClass = function(el, name) {\n var classes = el.className.split(/\\s+/g), add = true;\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n add = false;\n classes.splice(index, 1);\n }\n if (add)\n classes.push(name);\n\n el.className = classes.join(\" \");\n return add;\n};\nexports.setCssClass = function(node, className, include) {\n if (include) {\n exports.addCssClass(node, className);\n } else {\n exports.removeCssClass(node, className);\n }\n};\n\nexports.hasCssString = function(id, doc) {\n var index = 0, sheets;\n doc = doc || document;\n\n if (doc.createStyleSheet && (sheets = doc.styleSheets)) {\n while (index < sheets.length)\n if (sheets[index++].owningElement.id === id) return true;\n } else if ((sheets = doc.getElementsByTagName(\"style\"))) {\n while (index < sheets.length)\n if (sheets[index++].id === id) return true;\n }\n\n return false;\n};\n\nexports.importCssString = function importCssString(cssText, id, doc) {\n doc = doc || document;\n if (id && exports.hasCssString(id, doc))\n return null;\n \n var style;\n \n if (id)\n cssText += \"\\n/*# sourceURL=ace/css/\" + id + \" */\";\n \n if (doc.createStyleSheet) {\n style = doc.createStyleSheet();\n style.cssText = cssText;\n if (id)\n style.owningElement.id = id;\n } else {\n style = exports.createElement(\"style\");\n style.appendChild(doc.createTextNode(cssText));\n if (id)\n style.id = id;\n\n exports.getDocumentHead(doc).appendChild(style);\n }\n};\n\nexports.importCssStylsheet = function(uri, doc) {\n if (doc.createStyleSheet) {\n doc.createStyleSheet(uri);\n } else {\n var link = exports.createElement('link');\n link.rel = 'stylesheet';\n link.href = uri;\n\n exports.getDocumentHead(doc).appendChild(link);\n }\n};\n\nexports.getInnerWidth = function(element) {\n return (\n parseInt(exports.computedStyle(element, \"paddingLeft\"), 10) +\n parseInt(exports.computedStyle(element, \"paddingRight\"), 10) + \n element.clientWidth\n );\n};\n\nexports.getInnerHeight = function(element) {\n return (\n parseInt(exports.computedStyle(element, \"paddingTop\"), 10) +\n parseInt(exports.computedStyle(element, \"paddingBottom\"), 10) +\n element.clientHeight\n );\n};\n\nexports.scrollbarWidth = function(document) {\n var inner = exports.createElement(\"ace_inner\");\n inner.style.width = \"100%\";\n inner.style.minWidth = \"0px\";\n inner.style.height = \"200px\";\n inner.style.display = \"block\";\n\n var outer = exports.createElement(\"ace_outer\");\n var style = outer.style;\n\n style.position = \"absolute\";\n style.left = \"-10000px\";\n style.overflow = \"hidden\";\n style.width = \"200px\";\n style.minWidth = \"0px\";\n style.height = \"150px\";\n style.display = \"block\";\n\n outer.appendChild(inner);\n\n var body = document.documentElement;\n body.appendChild(outer);\n\n var noScrollbar = inner.offsetWidth;\n\n style.overflow = \"scroll\";\n var withScrollbar = inner.offsetWidth;\n\n if (noScrollbar == withScrollbar) {\n withScrollbar = outer.clientWidth;\n }\n\n body.removeChild(outer);\n\n return noScrollbar-withScrollbar;\n};\n\nif (typeof document == \"undefined\") {\n exports.importCssString = function() {};\n return;\n}\n\nif (window.pageYOffset !== undefined) {\n exports.getPageScrollTop = function() {\n return window.pageYOffset;\n };\n\n exports.getPageScrollLeft = function() {\n return window.pageXOffset;\n };\n}\nelse {\n exports.getPageScrollTop = function() {\n return document.body.scrollTop;\n };\n\n exports.getPageScrollLeft = function() {\n return document.body.scrollLeft;\n };\n}\n\nif (window.getComputedStyle)\n exports.computedStyle = function(element, style) {\n if (style)\n return (window.getComputedStyle(element, \"\") || {})[style] || \"\";\n return window.getComputedStyle(element, \"\") || {};\n };\nelse\n exports.computedStyle = function(element, style) {\n if (style)\n return element.currentStyle[style];\n return element.currentStyle;\n };\nexports.setInnerHtml = function(el, innerHtml) {\n var element = el.cloneNode(false);//document.createElement(\"div\");\n element.innerHTML = innerHtml;\n el.parentNode.replaceChild(element, el);\n return element;\n};\n\nif (\"textContent\" in document.documentElement) {\n exports.setInnerText = function(el, innerText) {\n el.textContent = innerText;\n };\n\n exports.getInnerText = function(el) {\n return el.textContent;\n };\n}\nelse {\n exports.setInnerText = function(el, innerText) {\n el.innerText = innerText;\n };\n\n exports.getInnerText = function(el) {\n return el.innerText;\n };\n}\n\nexports.getParentWindow = function(document) {\n return document.defaultView || document.parentWindow;\n};\n\n});\n\nace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nexports.inherits = function(ctor, superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n};\n\nexports.mixin = function(obj, mixin) {\n for (var key in mixin) {\n obj[key] = mixin[key];\n }\n return obj;\n};\n\nexports.implement = function(proto, mixin) {\n exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/lib/keys\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/oop\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./fixoldbrowsers\");\n\nvar oop = acequire(\"./oop\");\nvar Keys = (function() {\n var ret = {\n MODIFIER_KEYS: {\n 16: 'Shift', 17: 'Ctrl', 18: 'Alt', 224: 'Meta'\n },\n\n KEY_MODS: {\n \"ctrl\": 1, \"alt\": 2, \"option\" : 2, \"shift\": 4,\n \"super\": 8, \"meta\": 8, \"command\": 8, \"cmd\": 8\n },\n\n FUNCTION_KEYS : {\n 8 : \"Backspace\",\n 9 : \"Tab\",\n 13 : \"Return\",\n 19 : \"Pause\",\n 27 : \"Esc\",\n 32 : \"Space\",\n 33 : \"PageUp\",\n 34 : \"PageDown\",\n 35 : \"End\",\n 36 : \"Home\",\n 37 : \"Left\",\n 38 : \"Up\",\n 39 : \"Right\",\n 40 : \"Down\",\n 44 : \"Print\",\n 45 : \"Insert\",\n 46 : \"Delete\",\n 96 : \"Numpad0\",\n 97 : \"Numpad1\",\n 98 : \"Numpad2\",\n 99 : \"Numpad3\",\n 100: \"Numpad4\",\n 101: \"Numpad5\",\n 102: \"Numpad6\",\n 103: \"Numpad7\",\n 104: \"Numpad8\",\n 105: \"Numpad9\",\n '-13': \"NumpadEnter\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"Numlock\",\n 145: \"Scrolllock\"\n },\n\n PRINTABLE_KEYS: {\n 32: ' ', 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5',\n 54: '6', 55: '7', 56: '8', 57: '9', 59: ';', 61: '=', 65: 'a',\n 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h',\n 73: 'i', 74: 'j', 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o',\n 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't', 85: 'u', 86: 'v',\n 87: 'w', 88: 'x', 89: 'y', 90: 'z', 107: '+', 109: '-', 110: '.',\n 186: ';', 187: '=', 188: ',', 189: '-', 190: '.', 191: '/', 192: '`',\n 219: '[', 220: '\\\\',221: ']', 222: \"'\", 111: '/', 106: '*'\n }\n };\n var name, i;\n for (i in ret.FUNCTION_KEYS) {\n name = ret.FUNCTION_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n for (i in ret.PRINTABLE_KEYS) {\n name = ret.PRINTABLE_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n oop.mixin(ret, ret.MODIFIER_KEYS);\n oop.mixin(ret, ret.PRINTABLE_KEYS);\n oop.mixin(ret, ret.FUNCTION_KEYS);\n ret.enter = ret[\"return\"];\n ret.escape = ret.esc;\n ret.del = ret[\"delete\"];\n ret[173] = '-';\n \n (function() {\n var mods = [\"cmd\", \"ctrl\", \"alt\", \"shift\"];\n for (var i = Math.pow(2, mods.length); i--;) { \n ret.KEY_MODS[i] = mods.filter(function(x) {\n return i & ret.KEY_MODS[x];\n }).join(\"-\") + \"-\";\n }\n })();\n\n ret.KEY_MODS[0] = \"\";\n ret.KEY_MODS[-1] = \"input-\";\n\n return ret;\n})();\noop.mixin(exports, Keys);\n\nexports.keyCodeToString = function(keyCode) {\n var keyString = Keys[keyCode];\n if (typeof keyString != \"string\")\n keyString = String.fromCharCode(keyCode);\n return keyString.toLowerCase();\n};\n\n});\n\nace.define(\"ace/lib/useragent\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nexports.OS = {\n LINUX: \"LINUX\",\n MAC: \"MAC\",\n WINDOWS: \"WINDOWS\"\n};\nexports.getOS = function() {\n if (exports.isMac) {\n return exports.OS.MAC;\n } else if (exports.isLinux) {\n return exports.OS.LINUX;\n } else {\n return exports.OS.WINDOWS;\n }\n};\nif (typeof navigator != \"object\")\n return;\n\nvar os = (navigator.platform.match(/mac|win|linux/i) || [\"other\"])[0].toLowerCase();\nvar ua = navigator.userAgent;\nexports.isWin = (os == \"win\");\nexports.isMac = (os == \"mac\");\nexports.isLinux = (os == \"linux\");\nexports.isIE = \n (navigator.appName == \"Microsoft Internet Explorer\" || navigator.appName.indexOf(\"MSAppHost\") >= 0)\n ? parseFloat((ua.match(/(?:MSIE |Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/)||[])[1])\n : parseFloat((ua.match(/(?:Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/)||[])[1]); // for ie\n \nexports.isOldIE = exports.isIE && exports.isIE < 9;\nexports.isGecko = exports.isMozilla = (window.Controllers || window.controllers) && window.navigator.product === \"Gecko\";\nexports.isOldGecko = exports.isGecko && parseInt((ua.match(/rv:(\\d+)/)||[])[1], 10) < 4;\nexports.isOpera = window.opera && Object.prototype.toString.call(window.opera) == \"[object Opera]\";\nexports.isWebKit = parseFloat(ua.split(\"WebKit/\")[1]) || undefined;\n\nexports.isChrome = parseFloat(ua.split(\" Chrome/\")[1]) || undefined;\n\nexports.isAIR = ua.indexOf(\"AdobeAIR\") >= 0;\n\nexports.isIPad = ua.indexOf(\"iPad\") >= 0;\n\nexports.isChromeOS = ua.indexOf(\" CrOS \") >= 0;\n\nexports.isIOS = /iPad|iPhone|iPod/.test(ua) && !window.MSStream;\n\nif (exports.isIOS) exports.isMac = true;\n\n});\n\nace.define(\"ace/lib/event\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar keys = acequire(\"./keys\");\nvar useragent = acequire(\"./useragent\");\n\nvar pressedKeys = null;\nvar ts = 0;\n\nexports.addListener = function(elem, type, callback) {\n if (elem.addEventListener) {\n return elem.addEventListener(type, callback, false);\n }\n if (elem.attachEvent) {\n var wrapper = function() {\n callback.call(elem, window.event);\n };\n callback._wrapper = wrapper;\n elem.attachEvent(\"on\" + type, wrapper);\n }\n};\n\nexports.removeListener = function(elem, type, callback) {\n if (elem.removeEventListener) {\n return elem.removeEventListener(type, callback, false);\n }\n if (elem.detachEvent) {\n elem.detachEvent(\"on\" + type, callback._wrapper || callback);\n }\n};\nexports.stopEvent = function(e) {\n exports.stopPropagation(e);\n exports.preventDefault(e);\n return false;\n};\n\nexports.stopPropagation = function(e) {\n if (e.stopPropagation)\n e.stopPropagation();\n else\n e.cancelBubble = true;\n};\n\nexports.preventDefault = function(e) {\n if (e.preventDefault)\n e.preventDefault();\n else\n e.returnValue = false;\n};\nexports.getButton = function(e) {\n if (e.type == \"dblclick\")\n return 0;\n if (e.type == \"contextmenu\" || (useragent.isMac && (e.ctrlKey && !e.altKey && !e.shiftKey)))\n return 2;\n if (e.preventDefault) {\n return e.button;\n }\n else {\n return {1:0, 2:2, 4:1}[e.button];\n }\n};\n\nexports.capture = function(el, eventHandler, releaseCaptureHandler) {\n function onMouseUp(e) {\n eventHandler && eventHandler(e);\n releaseCaptureHandler && releaseCaptureHandler(e);\n\n exports.removeListener(document, \"mousemove\", eventHandler, true);\n exports.removeListener(document, \"mouseup\", onMouseUp, true);\n exports.removeListener(document, \"dragstart\", onMouseUp, true);\n }\n\n exports.addListener(document, \"mousemove\", eventHandler, true);\n exports.addListener(document, \"mouseup\", onMouseUp, true);\n exports.addListener(document, \"dragstart\", onMouseUp, true);\n \n return onMouseUp;\n};\n\nexports.addTouchMoveListener = function (el, callback) {\n var startx, starty;\n exports.addListener(el, \"touchstart\", function (e) {\n var touches = e.touches;\n var touchObj = touches[0];\n startx = touchObj.clientX;\n starty = touchObj.clientY;\n });\n exports.addListener(el, \"touchmove\", function (e) {\n var touches = e.touches;\n if (touches.length > 1) return;\n\n var touchObj = touches[0];\n\n e.wheelX = startx - touchObj.clientX;\n e.wheelY = starty - touchObj.clientY;\n\n startx = touchObj.clientX;\n starty = touchObj.clientY;\n\n callback(e);\n });\n};\n\nexports.addMouseWheelListener = function(el, callback) {\n if (\"onmousewheel\" in el) {\n exports.addListener(el, \"mousewheel\", function(e) {\n var factor = 8;\n if (e.wheelDeltaX !== undefined) {\n e.wheelX = -e.wheelDeltaX / factor;\n e.wheelY = -e.wheelDeltaY / factor;\n } else {\n e.wheelX = 0;\n e.wheelY = -e.wheelDelta / factor;\n }\n callback(e);\n });\n } else if (\"onwheel\" in el) {\n exports.addListener(el, \"wheel\", function(e) {\n var factor = 0.35;\n switch (e.deltaMode) {\n case e.DOM_DELTA_PIXEL:\n e.wheelX = e.deltaX * factor || 0;\n e.wheelY = e.deltaY * factor || 0;\n break;\n case e.DOM_DELTA_LINE:\n case e.DOM_DELTA_PAGE:\n e.wheelX = (e.deltaX || 0) * 5;\n e.wheelY = (e.deltaY || 0) * 5;\n break;\n }\n \n callback(e);\n });\n } else {\n exports.addListener(el, \"DOMMouseScroll\", function(e) {\n if (e.axis && e.axis == e.HORIZONTAL_AXIS) {\n e.wheelX = (e.detail || 0) * 5;\n e.wheelY = 0;\n } else {\n e.wheelX = 0;\n e.wheelY = (e.detail || 0) * 5;\n }\n callback(e);\n });\n }\n};\n\nexports.addMultiMouseDownListener = function(elements, timeouts, eventHandler, callbackName) {\n var clicks = 0;\n var startX, startY, timer; \n var eventNames = {\n 2: \"dblclick\",\n 3: \"tripleclick\",\n 4: \"quadclick\"\n };\n\n function onMousedown(e) {\n if (exports.getButton(e) !== 0) {\n clicks = 0;\n } else if (e.detail > 1) {\n clicks++;\n if (clicks > 4)\n clicks = 1;\n } else {\n clicks = 1;\n }\n if (useragent.isIE) {\n var isNewClick = Math.abs(e.clientX - startX) > 5 || Math.abs(e.clientY - startY) > 5;\n if (!timer || isNewClick)\n clicks = 1;\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(function() {timer = null;}, timeouts[clicks - 1] || 600);\n\n if (clicks == 1) {\n startX = e.clientX;\n startY = e.clientY;\n }\n }\n \n e._clicks = clicks;\n\n eventHandler[callbackName](\"mousedown\", e);\n\n if (clicks > 4)\n clicks = 0;\n else if (clicks > 1)\n return eventHandler[callbackName](eventNames[clicks], e);\n }\n function onDblclick(e) {\n clicks = 2;\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(function() {timer = null;}, timeouts[clicks - 1] || 600);\n eventHandler[callbackName](\"mousedown\", e);\n eventHandler[callbackName](eventNames[clicks], e);\n }\n if (!Array.isArray(elements))\n elements = [elements];\n elements.forEach(function(el) {\n exports.addListener(el, \"mousedown\", onMousedown);\n if (useragent.isOldIE)\n exports.addListener(el, \"dblclick\", onDblclick);\n });\n};\n\nvar getModifierHash = useragent.isMac && useragent.isOpera && !(\"KeyboardEvent\" in window)\n ? function(e) {\n return 0 | (e.metaKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.ctrlKey ? 8 : 0);\n }\n : function(e) {\n return 0 | (e.ctrlKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.metaKey ? 8 : 0);\n };\n\nexports.getModifierString = function(e) {\n return keys.KEY_MODS[getModifierHash(e)];\n};\n\nfunction normalizeCommandKeys(callback, e, keyCode) {\n var hashId = getModifierHash(e);\n\n if (!useragent.isMac && pressedKeys) {\n if (e.getModifierState && (e.getModifierState(\"OS\") || e.getModifierState(\"Win\")))\n hashId |= 8;\n if (pressedKeys.altGr) {\n if ((3 & hashId) != 3)\n pressedKeys.altGr = 0;\n else\n return;\n }\n if (keyCode === 18 || keyCode === 17) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (keyCode === 17 && location === 1) {\n if (pressedKeys[keyCode] == 1)\n ts = e.timeStamp;\n } else if (keyCode === 18 && hashId === 3 && location === 2) {\n var dt = e.timeStamp - ts;\n if (dt < 50)\n pressedKeys.altGr = true;\n }\n }\n }\n \n if (keyCode in keys.MODIFIER_KEYS) {\n keyCode = -1;\n }\n if (hashId & 8 && (keyCode >= 91 && keyCode <= 93)) {\n keyCode = -1;\n }\n \n if (!hashId && keyCode === 13) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (location === 3) {\n callback(e, hashId, -keyCode);\n if (e.defaultPrevented)\n return;\n }\n }\n \n if (useragent.isChromeOS && hashId & 8) {\n callback(e, hashId, keyCode);\n if (e.defaultPrevented)\n return;\n else\n hashId &= ~8;\n }\n if (!hashId && !(keyCode in keys.FUNCTION_KEYS) && !(keyCode in keys.PRINTABLE_KEYS)) {\n return false;\n }\n \n return callback(e, hashId, keyCode);\n}\n\n\nexports.addCommandKeyListener = function(el, callback) {\n var addListener = exports.addListener;\n if (useragent.isOldGecko || (useragent.isOpera && !(\"KeyboardEvent\" in window))) {\n var lastKeyDownKeyCode = null;\n addListener(el, \"keydown\", function(e) {\n lastKeyDownKeyCode = e.keyCode;\n });\n addListener(el, \"keypress\", function(e) {\n return normalizeCommandKeys(callback, e, lastKeyDownKeyCode);\n });\n } else {\n var lastDefaultPrevented = null;\n\n addListener(el, \"keydown\", function(e) {\n pressedKeys[e.keyCode] = (pressedKeys[e.keyCode] || 0) + 1;\n var result = normalizeCommandKeys(callback, e, e.keyCode);\n lastDefaultPrevented = e.defaultPrevented;\n return result;\n });\n\n addListener(el, \"keypress\", function(e) {\n if (lastDefaultPrevented && (e.ctrlKey || e.altKey || e.shiftKey || e.metaKey)) {\n exports.stopEvent(e);\n lastDefaultPrevented = null;\n }\n });\n\n addListener(el, \"keyup\", function(e) {\n pressedKeys[e.keyCode] = null;\n });\n\n if (!pressedKeys) {\n resetPressedKeys();\n addListener(window, \"focus\", resetPressedKeys);\n }\n }\n};\nfunction resetPressedKeys() {\n pressedKeys = Object.create(null);\n}\n\nif (typeof window == \"object\" && window.postMessage && !useragent.isOldIE) {\n var postMessageId = 1;\n exports.nextTick = function(callback, win) {\n win = win || window;\n var messageName = \"zero-timeout-message-\" + postMessageId;\n exports.addListener(win, \"message\", function listener(e) {\n if (e.data == messageName) {\n exports.stopPropagation(e);\n exports.removeListener(win, \"message\", listener);\n callback();\n }\n });\n win.postMessage(messageName, \"*\");\n };\n}\n\n\nexports.nextFrame = typeof window == \"object\" && (window.requestAnimationFrame\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame\n || window.msRequestAnimationFrame\n || window.oRequestAnimationFrame);\n\nif (exports.nextFrame)\n exports.nextFrame = exports.nextFrame.bind(window);\nelse\n exports.nextFrame = function(callback) {\n setTimeout(callback, 17);\n };\n});\n\nace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nexports.last = function(a) {\n return a[a.length - 1];\n};\n\nexports.stringReverse = function(string) {\n return string.split(\"\").reverse().join(\"\");\n};\n\nexports.stringRepeat = function (string, count) {\n var result = '';\n while (count > 0) {\n if (count & 1)\n result += string;\n\n if (count >>= 1)\n string += string;\n }\n return result;\n};\n\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\n\nexports.stringTrimLeft = function (string) {\n return string.replace(trimBeginRegexp, '');\n};\n\nexports.stringTrimRight = function (string) {\n return string.replace(trimEndRegexp, '');\n};\n\nexports.copyObject = function(obj) {\n var copy = {};\n for (var key in obj) {\n copy[key] = obj[key];\n }\n return copy;\n};\n\nexports.copyArray = function(array){\n var copy = [];\n for (var i=0, l=array.length; i<l; i++) {\n if (array[i] && typeof array[i] == \"object\")\n copy[i] = this.copyObject(array[i]);\n else \n copy[i] = array[i];\n }\n return copy;\n};\n\nexports.deepCopy = function deepCopy(obj) {\n if (typeof obj !== \"object\" || !obj)\n return obj;\n var copy;\n if (Array.isArray(obj)) {\n copy = [];\n for (var key = 0; key < obj.length; key++) {\n copy[key] = deepCopy(obj[key]);\n }\n return copy;\n }\n if (Object.prototype.toString.call(obj) !== \"[object Object]\")\n return obj;\n \n copy = {};\n for (var key in obj)\n copy[key] = deepCopy(obj[key]);\n return copy;\n};\n\nexports.arrayToMap = function(arr) {\n var map = {};\n for (var i=0; i<arr.length; i++) {\n map[arr[i]] = 1;\n }\n return map;\n\n};\n\nexports.createMap = function(props) {\n var map = Object.create(null);\n for (var i in props) {\n map[i] = props[i];\n }\n return map;\n};\nexports.arrayRemove = function(array, value) {\n for (var i = 0; i <= array.length; i++) {\n if (value === array[i]) {\n array.splice(i, 1);\n }\n }\n};\n\nexports.escapeRegExp = function(str) {\n return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g, '\\\\$1');\n};\n\nexports.escapeHTML = function(str) {\n return str.replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(/</g, \"<\");\n};\n\nexports.getMatchOffsets = function(string, regExp) {\n var matches = [];\n\n string.replace(regExp, function(str) {\n matches.push({\n offset: arguments[arguments.length-2],\n length: str.length\n });\n });\n\n return matches;\n};\nexports.deferredCall = function(fcn) {\n var timer = null;\n var callback = function() {\n timer = null;\n fcn();\n };\n\n var deferred = function(timeout) {\n deferred.cancel();\n timer = setTimeout(callback, timeout || 0);\n return deferred;\n };\n\n deferred.schedule = deferred;\n\n deferred.call = function() {\n this.cancel();\n fcn();\n return deferred;\n };\n\n deferred.cancel = function() {\n clearTimeout(timer);\n timer = null;\n return deferred;\n };\n \n deferred.isPending = function() {\n return timer;\n };\n\n return deferred;\n};\n\n\nexports.delayedCall = function(fcn, defaultTimeout) {\n var timer = null;\n var callback = function() {\n timer = null;\n fcn();\n };\n\n var _self = function(timeout) {\n if (timer == null)\n timer = setTimeout(callback, timeout || defaultTimeout);\n };\n\n _self.delay = function(timeout) {\n timer && clearTimeout(timer);\n timer = setTimeout(callback, timeout || defaultTimeout);\n };\n _self.schedule = _self;\n\n _self.call = function() {\n this.cancel();\n fcn();\n };\n\n _self.cancel = function() {\n timer && clearTimeout(timer);\n timer = null;\n };\n\n _self.isPending = function() {\n return timer;\n };\n\n return _self;\n};\n});\n\nace.define(\"ace/keyboard/textinput_ios\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/keys\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\nvar dom = acequire(\"../lib/dom\");\nvar lang = acequire(\"../lib/lang\");\nvar KEYS = acequire(\"../lib/keys\");\nvar MODS = KEYS.KEY_MODS;\nvar BROKEN_SETDATA = useragent.isChrome < 18;\nvar USE_IE_MIME_TYPE = useragent.isIE;\n\nvar TextInput = function(parentNode, host) {\n var self = this;\n var text = dom.createElement(\"textarea\");\n text.className = useragent.isIOS ? \"ace_text-input ace_text-input-ios\" : \"ace_text-input\";\n\n if (useragent.isTouchPad)\n text.setAttribute(\"x-palm-disable-auto-cap\", true);\n\n text.setAttribute(\"wrap\", \"off\");\n text.setAttribute(\"autocorrect\", \"off\");\n text.setAttribute(\"autocapitalize\", \"off\");\n text.setAttribute(\"spellcheck\", false);\n\n text.style.opacity = \"0\";\n parentNode.insertBefore(text, parentNode.firstChild);\n\n var PLACEHOLDER = \"\\n aaaa a\\n\";\n\n var copied = false;\n var cut = false;\n var pasted = false;\n var inComposition = false;\n var tempStyle = '';\n var isSelectionEmpty = true;\n try { var isFocused = document.activeElement === text; } catch(e) {}\n\n event.addListener(text, \"blur\", function(e) {\n host.onBlur(e);\n isFocused = false;\n });\n event.addListener(text, \"focus\", function(e) {\n isFocused = true;\n host.onFocus(e);\n resetSelection();\n });\n this.focus = function() {\n if (tempStyle) return text.focus();\n text.style.position = \"fixed\";\n text.focus();\n };\n this.blur = function() {\n text.blur();\n };\n this.isFocused = function() {\n return isFocused;\n };\n var syncSelection = lang.delayedCall(function() {\n isFocused && resetSelection(isSelectionEmpty);\n });\n var syncValue = lang.delayedCall(function() {\n if (!inComposition) {\n text.value = PLACEHOLDER;\n isFocused && resetSelection();\n }\n });\n\n function resetSelection(isEmpty) {\n if (inComposition)\n return;\n inComposition = true;\n\n if (inputHandler) {\n selectionStart = 0;\n selectionEnd = isEmpty ? 0 : text.value.length - 1;\n } else {\n var selectionStart = 4;\n var selectionEnd = 5;\n }\n try {\n text.setSelectionRange(selectionStart, selectionEnd);\n } catch(e) {}\n\n inComposition = false;\n }\n\n function resetValue() {\n if (inComposition)\n return;\n text.value = PLACEHOLDER;\n if (useragent.isWebKit)\n syncValue.schedule();\n }\n\n useragent.isWebKit || host.addEventListener('changeSelection', function() {\n if (host.selection.isEmpty() != isSelectionEmpty) {\n isSelectionEmpty = !isSelectionEmpty;\n syncSelection.schedule();\n }\n });\n\n resetValue();\n if (isFocused)\n host.onFocus();\n\n\n var isAllSelected = function(text) {\n return text.selectionStart === 0 && text.selectionEnd === text.value.length;\n };\n\n var onSelect = function(e) {\n if (isAllSelected(text)) {\n host.selectAll();\n resetSelection();\n } else if (inputHandler) {\n resetSelection(host.selection.isEmpty());\n }\n };\n\n var inputHandler = null;\n this.setInputHandler = function(cb) {inputHandler = cb;};\n this.getInputHandler = function() {return inputHandler;};\n var afterContextMenu = false;\n\n var sendText = function(data) {\n if (text.selectionStart === 4 && text.selectionEnd === 5) {\n return;\n }\n if (inputHandler) {\n data = inputHandler(data);\n inputHandler = null;\n }\n if (pasted) {\n resetSelection();\n if (data)\n host.onPaste(data);\n pasted = false;\n } else if (data == PLACEHOLDER.substr(0) && text.selectionStart === 4) {\n if (afterContextMenu)\n host.execCommand(\"del\", {source: \"ace\"});\n else // some versions of android do not fire keydown when pressing backspace\n host.execCommand(\"backspace\", {source: \"ace\"});\n } else if (!copied) {\n if (data.substring(0, 9) == PLACEHOLDER && data.length > PLACEHOLDER.length)\n data = data.substr(9);\n else if (data.substr(0, 4) == PLACEHOLDER.substr(0, 4))\n data = data.substr(4, data.length - PLACEHOLDER.length + 1);\n else if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))\n data = data.slice(0, -1);\n if (data == PLACEHOLDER.charAt(0)) {\n } else if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))\n data = data.slice(0, -1);\n\n if (data)\n host.onTextInput(data);\n }\n if (copied) {\n copied = false;\n }\n if (afterContextMenu)\n afterContextMenu = false;\n };\n var onInput = function(e) {\n if (inComposition)\n return;\n var data = text.value;\n sendText(data);\n resetValue();\n };\n\n var handleClipboardData = function(e, data, forceIEMime) {\n var clipboardData = e.clipboardData || window.clipboardData;\n if (!clipboardData || BROKEN_SETDATA)\n return;\n var mime = USE_IE_MIME_TYPE || forceIEMime ? \"Text\" : \"text/plain\";\n try {\n if (data) {\n return clipboardData.setData(mime, data) !== false;\n } else {\n return clipboardData.getData(mime);\n }\n } catch(e) {\n if (!forceIEMime)\n return handleClipboardData(e, data, true);\n }\n };\n\n var doCopy = function(e, isCut) {\n var data = host.getCopyText();\n if (!data)\n return event.preventDefault(e);\n\n if (handleClipboardData(e, data)) {\n if (useragent.isIOS) {\n cut = isCut;\n text.value = \"\\n aa\" + data + \"a a\\n\";\n text.setSelectionRange(4, 4 + data.length);\n copied = {\n value: data\n };\n }\n isCut ? host.onCut() : host.onCopy();\n if (!useragent.isIOS) event.preventDefault(e);\n } else {\n copied = true;\n text.value = data;\n text.select();\n setTimeout(function(){\n copied = false;\n resetValue();\n resetSelection();\n isCut ? host.onCut() : host.onCopy();\n });\n }\n };\n\n var onCut = function(e) {\n doCopy(e, true);\n };\n\n var onCopy = function(e) {\n doCopy(e, false);\n };\n\n var onPaste = function(e) {\n var data = handleClipboardData(e);\n if (typeof data == \"string\") {\n if (data)\n host.onPaste(data, e);\n if (useragent.isIE)\n setTimeout(resetSelection);\n event.preventDefault(e);\n }\n else {\n text.value = \"\";\n pasted = true;\n }\n };\n\n event.addCommandKeyListener(text, host.onCommandKey.bind(host));\n\n event.addListener(text, \"select\", onSelect);\n\n event.addListener(text, \"input\", onInput);\n\n event.addListener(text, \"cut\", onCut);\n event.addListener(text, \"copy\", onCopy);\n event.addListener(text, \"paste\", onPaste);\n var onCompositionStart = function(e) {\n if (inComposition || !host.onCompositionStart || host.$readOnly)\n return;\n inComposition = {};\n inComposition.canUndo = host.session.$undoManager;\n host.onCompositionStart();\n setTimeout(onCompositionUpdate, 0);\n host.on(\"mousedown\", onCompositionEnd);\n if (inComposition.canUndo && !host.selection.isEmpty()) {\n host.insert(\"\");\n host.session.markUndoGroup();\n host.selection.clearSelection();\n }\n host.session.markUndoGroup();\n };\n\n var onCompositionUpdate = function() {\n if (!inComposition || !host.onCompositionUpdate || host.$readOnly)\n return;\n var val = text.value.replace(/\\x01/g, \"\");\n if (inComposition.lastValue === val) return;\n\n host.onCompositionUpdate(val);\n if (inComposition.lastValue)\n host.undo();\n if (inComposition.canUndo)\n inComposition.lastValue = val;\n if (inComposition.lastValue) {\n var r = host.selection.getRange();\n host.insert(inComposition.lastValue);\n host.session.markUndoGroup();\n inComposition.range = host.selection.getRange();\n host.selection.setRange(r);\n host.selection.clearSelection();\n }\n };\n\n var onCompositionEnd = function(e) {\n if (!host.onCompositionEnd || host.$readOnly) return;\n var c = inComposition;\n inComposition = false;\n var timer = setTimeout(function() {\n timer = null;\n var str = text.value.replace(/\\x01/g, \"\");\n if (inComposition)\n return;\n else if (str == c.lastValue)\n resetValue();\n else if (!c.lastValue && str) {\n resetValue();\n sendText(str);\n }\n });\n inputHandler = function compositionInputHandler(str) {\n if (timer)\n clearTimeout(timer);\n str = str.replace(/\\x01/g, \"\");\n if (str == c.lastValue)\n return \"\";\n if (c.lastValue && timer)\n host.undo();\n return str;\n };\n host.onCompositionEnd();\n host.removeListener(\"mousedown\", onCompositionEnd);\n if (e.type == \"compositionend\" && c.range) {\n host.selection.setRange(c.range);\n }\n var needsOnInput =\n (!!useragent.isChrome && useragent.isChrome >= 53) ||\n (!!useragent.isWebKit && useragent.isWebKit >= 603);\n\n if (needsOnInput) {\n onInput();\n }\n };\n\n\n\n var syncComposition = lang.delayedCall(onCompositionUpdate, 50);\n\n event.addListener(text, \"compositionstart\", onCompositionStart);\n if (useragent.isGecko) {\n event.addListener(text, \"text\", function(){syncComposition.schedule();});\n } else {\n event.addListener(text, \"keyup\", function(){syncComposition.schedule();});\n event.addListener(text, \"keydown\", function(){syncComposition.schedule();});\n }\n event.addListener(text, \"compositionend\", onCompositionEnd);\n\n this.getElement = function() {\n return text;\n };\n\n this.setReadOnly = function(readOnly) {\n text.readOnly = readOnly;\n };\n\n this.onContextMenu = function(e) {\n afterContextMenu = true;\n resetSelection(host.selection.isEmpty());\n host._emit(\"nativecontextmenu\", {target: host, domEvent: e});\n this.moveToMouse(e, true);\n };\n\n this.moveToMouse = function(e, bringToFront) {\n if (!tempStyle)\n tempStyle = text.style.cssText;\n text.style.cssText = (bringToFront ? \"z-index:100000;\" : \"\")\n + \"height:\" + text.style.height + \";\"\n + (useragent.isIE ? \"opacity:0.1;\" : \"\");\n\n var rect = host.container.getBoundingClientRect();\n var style = dom.computedStyle(host.container);\n var top = rect.top + (parseInt(style.borderTopWidth) || 0);\n var left = rect.left + (parseInt(rect.borderLeftWidth) || 0);\n var maxTop = rect.bottom - top - text.clientHeight -2;\n var move = function(e) {\n text.style.left = e.clientX - left - 2 + \"px\";\n text.style.top = Math.min(e.clientY - top - 2, maxTop) + \"px\";\n };\n move(e);\n\n if (e.type != \"mousedown\")\n return;\n\n if (host.renderer.$keepTextAreaAtCursor)\n host.renderer.$keepTextAreaAtCursor = null;\n\n clearTimeout(closeTimeout);\n if (useragent.isWin)\n event.capture(host.container, move, onContextMenuClose);\n };\n\n this.onContextMenuClose = onContextMenuClose;\n var closeTimeout;\n function onContextMenuClose() {\n clearTimeout(closeTimeout);\n closeTimeout = setTimeout(function () {\n if (tempStyle) {\n text.style.cssText = tempStyle;\n tempStyle = '';\n }\n if (host.renderer.$keepTextAreaAtCursor == null) {\n host.renderer.$keepTextAreaAtCursor = true;\n host.renderer.$moveTextAreaToCursor();\n }\n }, 0);\n }\n\n var onContextMenu = function(e) {\n host.textInput.onContextMenu(e);\n onContextMenuClose();\n };\n event.addListener(text, \"mouseup\", onContextMenu);\n event.addListener(text, \"mousedown\", function(e) {\n e.preventDefault();\n onContextMenuClose();\n });\n event.addListener(host.renderer.scroller, \"contextmenu\", onContextMenu);\n event.addListener(text, \"contextmenu\", onContextMenu);\n\n if (useragent.isIOS) {\n var typingResetTimeout = null;\n var typing = false;\n\n parentNode.addEventListener(\"keydown\", function (e) {\n if (typingResetTimeout) clearTimeout(typingResetTimeout);\n typing = true;\n });\n\n parentNode.addEventListener(\"keyup\", function (e) {\n typingResetTimeout = setTimeout(function () {\n typing = false;\n }, 100);\n });\n var detectArrowKeys = function(e) {\n if (document.activeElement !== text) return;\n if (typing) return;\n\n if (cut) {\n return setTimeout(function () {\n cut = false;\n }, 100);\n }\n var selectionStart = text.selectionStart;\n var selectionEnd = text.selectionEnd;\n text.setSelectionRange(4, 5);\n if (selectionStart == selectionEnd) {\n switch (selectionStart) {\n case 0: host.onCommandKey(null, 0, KEYS.up); break;\n case 1: host.onCommandKey(null, 0, KEYS.home); break;\n case 2: host.onCommandKey(null, MODS.option, KEYS.left); break;\n case 4: host.onCommandKey(null, 0, KEYS.left); break;\n case 5: host.onCommandKey(null, 0, KEYS.right); break;\n case 7: host.onCommandKey(null, MODS.option, KEYS.right); break;\n case 8: host.onCommandKey(null, 0, KEYS.end); break;\n case 9: host.onCommandKey(null, 0, KEYS.down); break;\n }\n } else {\n switch (selectionEnd) {\n case 6: host.onCommandKey(null, MODS.shift, KEYS.right); break;\n case 7: host.onCommandKey(null, MODS.shift | MODS.option, KEYS.right); break;\n case 8: host.onCommandKey(null, MODS.shift, KEYS.end); break;\n case 9: host.onCommandKey(null, MODS.shift, KEYS.down); break;\n }\n switch (selectionStart) {\n case 0: host.onCommandKey(null, MODS.shift, KEYS.up); break;\n case 1: host.onCommandKey(null, MODS.shift, KEYS.home); break;\n case 2: host.onCommandKey(null, MODS.shift | MODS.option, KEYS.left); break;\n case 3: host.onCommandKey(null, MODS.shift, KEYS.left); break;\n }\n }\n };\n document.addEventListener(\"selectionchange\", detectArrowKeys);\n host.on(\"destroy\", function() {\n document.removeEventListener(\"selectionchange\", detectArrowKeys);\n });\n }\n};\n\nexports.TextInput = TextInput;\n});\n\nace.define(\"ace/keyboard/textinput\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/keyboard/textinput_ios\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\nvar dom = acequire(\"../lib/dom\");\nvar lang = acequire(\"../lib/lang\");\nvar BROKEN_SETDATA = useragent.isChrome < 18;\nvar USE_IE_MIME_TYPE = useragent.isIE;\n\nvar TextInputIOS = acequire(\"./textinput_ios\").TextInput;\nvar TextInput = function(parentNode, host) {\n if (useragent.isIOS)\n return TextInputIOS.call(this, parentNode, host);\n\n var text = dom.createElement(\"textarea\");\n text.className = \"ace_text-input\";\n\n text.setAttribute(\"wrap\", \"off\");\n text.setAttribute(\"autocorrect\", \"off\");\n text.setAttribute(\"autocapitalize\", \"off\");\n text.setAttribute(\"spellcheck\", false);\n\n text.style.opacity = \"0\";\n parentNode.insertBefore(text, parentNode.firstChild);\n\n var PLACEHOLDER = \"\\u2028\\u2028\";\n\n var copied = false;\n var pasted = false;\n var inComposition = false;\n var tempStyle = '';\n var isSelectionEmpty = true;\n try { var isFocused = document.activeElement === text; } catch(e) {}\n \n event.addListener(text, \"blur\", function(e) {\n host.onBlur(e);\n isFocused = false;\n });\n event.addListener(text, \"focus\", function(e) {\n isFocused = true;\n host.onFocus(e);\n resetSelection();\n });\n this.focus = function() {\n if (tempStyle) return text.focus();\n var top = text.style.top;\n text.style.position = \"fixed\";\n text.style.top = \"0px\";\n text.focus();\n setTimeout(function() {\n text.style.position = \"\";\n if (text.style.top == \"0px\")\n text.style.top = top;\n }, 0);\n };\n this.blur = function() {\n text.blur();\n };\n this.isFocused = function() {\n return isFocused;\n };\n var syncSelection = lang.delayedCall(function() {\n isFocused && resetSelection(isSelectionEmpty);\n });\n var syncValue = lang.delayedCall(function() {\n if (!inComposition) {\n text.value = PLACEHOLDER;\n isFocused && resetSelection();\n }\n });\n\n function resetSelection(isEmpty) {\n if (inComposition)\n return;\n inComposition = true;\n \n if (inputHandler) {\n var selectionStart = 0;\n var selectionEnd = isEmpty ? 0 : text.value.length - 1;\n } else {\n var selectionStart = isEmpty ? 2 : 1;\n var selectionEnd = 2;\n }\n try {\n text.setSelectionRange(selectionStart, selectionEnd);\n } catch(e){}\n \n inComposition = false;\n }\n\n function resetValue() {\n if (inComposition)\n return;\n text.value = PLACEHOLDER;\n if (useragent.isWebKit)\n syncValue.schedule();\n }\n\n useragent.isWebKit || host.addEventListener('changeSelection', function() {\n if (host.selection.isEmpty() != isSelectionEmpty) {\n isSelectionEmpty = !isSelectionEmpty;\n syncSelection.schedule();\n }\n });\n\n resetValue();\n if (isFocused)\n host.onFocus();\n\n\n var isAllSelected = function(text) {\n return text.selectionStart === 0 && text.selectionEnd === text.value.length;\n };\n\n var onSelect = function(e) {\n if (copied) {\n copied = false;\n } else if (isAllSelected(text)) {\n host.selectAll();\n resetSelection();\n } else if (inputHandler) {\n resetSelection(host.selection.isEmpty());\n }\n };\n\n var inputHandler = null;\n this.setInputHandler = function(cb) {inputHandler = cb;};\n this.getInputHandler = function() {return inputHandler;};\n var afterContextMenu = false;\n \n var sendText = function(data) {\n if (inputHandler) {\n data = inputHandler(data);\n inputHandler = null;\n }\n if (pasted) {\n resetSelection();\n if (data)\n host.onPaste(data);\n pasted = false;\n } else if (data == PLACEHOLDER.charAt(0)) {\n if (afterContextMenu)\n host.execCommand(\"del\", {source: \"ace\"});\n else // some versions of android do not fire keydown when pressing backspace\n host.execCommand(\"backspace\", {source: \"ace\"});\n } else {\n if (data.substring(0, 2) == PLACEHOLDER)\n data = data.substr(2);\n else if (data.charAt(0) == PLACEHOLDER.charAt(0))\n data = data.substr(1);\n else if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))\n data = data.slice(0, -1);\n if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))\n data = data.slice(0, -1);\n \n if (data)\n host.onTextInput(data);\n }\n if (afterContextMenu)\n afterContextMenu = false;\n };\n var onInput = function(e) {\n if (inComposition)\n return;\n var data = text.value;\n sendText(data);\n resetValue();\n };\n \n var handleClipboardData = function(e, data, forceIEMime) {\n var clipboardData = e.clipboardData || window.clipboardData;\n if (!clipboardData || BROKEN_SETDATA)\n return;\n var mime = USE_IE_MIME_TYPE || forceIEMime ? \"Text\" : \"text/plain\";\n try {\n if (data) {\n return clipboardData.setData(mime, data) !== false;\n } else {\n return clipboardData.getData(mime);\n }\n } catch(e) {\n if (!forceIEMime)\n return handleClipboardData(e, data, true);\n }\n };\n\n var doCopy = function(e, isCut) {\n var data = host.getCopyText();\n if (!data)\n return event.preventDefault(e);\n\n if (handleClipboardData(e, data)) {\n isCut ? host.onCut() : host.onCopy();\n event.preventDefault(e);\n } else {\n copied = true;\n text.value = data;\n text.select();\n setTimeout(function(){\n copied = false;\n resetValue();\n resetSelection();\n isCut ? host.onCut() : host.onCopy();\n });\n }\n };\n \n var onCut = function(e) {\n doCopy(e, true);\n };\n \n var onCopy = function(e) {\n doCopy(e, false);\n };\n \n var onPaste = function(e) {\n var data = handleClipboardData(e);\n if (typeof data == \"string\") {\n if (data)\n host.onPaste(data, e);\n if (useragent.isIE)\n setTimeout(resetSelection);\n event.preventDefault(e);\n }\n else {\n text.value = \"\";\n pasted = true;\n }\n };\n\n event.addCommandKeyListener(text, host.onCommandKey.bind(host));\n\n event.addListener(text, \"select\", onSelect);\n\n event.addListener(text, \"input\", onInput);\n\n event.addListener(text, \"cut\", onCut);\n event.addListener(text, \"copy\", onCopy);\n event.addListener(text, \"paste\", onPaste);\n if (!('oncut' in text) || !('oncopy' in text) || !('onpaste' in text)) {\n event.addListener(parentNode, \"keydown\", function(e) {\n if ((useragent.isMac && !e.metaKey) || !e.ctrlKey)\n return;\n\n switch (e.keyCode) {\n case 67:\n onCopy(e);\n break;\n case 86:\n onPaste(e);\n break;\n case 88:\n onCut(e);\n break;\n }\n });\n }\n var onCompositionStart = function(e) {\n if (inComposition || !host.onCompositionStart || host.$readOnly) \n return;\n inComposition = {};\n inComposition.canUndo = host.session.$undoManager;\n host.onCompositionStart();\n setTimeout(onCompositionUpdate, 0);\n host.on(\"mousedown\", onCompositionEnd);\n if (inComposition.canUndo && !host.selection.isEmpty()) {\n host.insert(\"\");\n host.session.markUndoGroup();\n host.selection.clearSelection();\n }\n host.session.markUndoGroup();\n };\n\n var onCompositionUpdate = function() {\n if (!inComposition || !host.onCompositionUpdate || host.$readOnly)\n return;\n var val = text.value.replace(/\\u2028/g, \"\");\n if (inComposition.lastValue === val) return;\n \n host.onCompositionUpdate(val);\n if (inComposition.lastValue)\n host.undo();\n if (inComposition.canUndo)\n inComposition.lastValue = val;\n if (inComposition.lastValue) {\n var r = host.selection.getRange();\n host.insert(inComposition.lastValue);\n host.session.markUndoGroup();\n inComposition.range = host.selection.getRange();\n host.selection.setRange(r);\n host.selection.clearSelection();\n }\n };\n\n var onCompositionEnd = function(e) {\n if (!host.onCompositionEnd || host.$readOnly) return;\n var c = inComposition;\n inComposition = false;\n var timer = setTimeout(function() {\n timer = null;\n var str = text.value.replace(/\\u2028/g, \"\");\n if (inComposition)\n return;\n else if (str == c.lastValue)\n resetValue();\n else if (!c.lastValue && str) {\n resetValue();\n sendText(str);\n }\n });\n inputHandler = function compositionInputHandler(str) {\n if (timer)\n clearTimeout(timer);\n str = str.replace(/\\u2028/g, \"\");\n if (str == c.lastValue)\n return \"\";\n if (c.lastValue && timer)\n host.undo();\n return str;\n };\n host.onCompositionEnd();\n host.removeListener(\"mousedown\", onCompositionEnd);\n if (e.type == \"compositionend\" && c.range) {\n host.selection.setRange(c.range);\n }\n var needsOnInput =\n (!!useragent.isChrome && useragent.isChrome >= 53) ||\n (!!useragent.isWebKit && useragent.isWebKit >= 603);\n\n if (needsOnInput) {\n onInput();\n }\n };\n \n \n\n var syncComposition = lang.delayedCall(onCompositionUpdate, 50);\n\n event.addListener(text, \"compositionstart\", onCompositionStart);\n if (useragent.isGecko) {\n event.addListener(text, \"text\", function(){syncComposition.schedule();});\n } else {\n event.addListener(text, \"keyup\", function(){syncComposition.schedule();});\n event.addListener(text, \"keydown\", function(){syncComposition.schedule();});\n }\n event.addListener(text, \"compositionend\", onCompositionEnd);\n\n this.getElement = function() {\n return text;\n };\n\n this.setReadOnly = function(readOnly) {\n text.readOnly = readOnly;\n };\n\n this.onContextMenu = function(e) {\n afterContextMenu = true;\n resetSelection(host.selection.isEmpty());\n host._emit(\"nativecontextmenu\", {target: host, domEvent: e});\n this.moveToMouse(e, true);\n };\n \n this.moveToMouse = function(e, bringToFront) {\n if (!tempStyle)\n tempStyle = text.style.cssText;\n text.style.cssText = (bringToFront ? \"z-index:100000;\" : \"\")\n + \"height:\" + text.style.height + \";\"\n + (useragent.isIE ? \"opacity:0.1;\" : \"\");\n\n var rect = host.container.getBoundingClientRect();\n var style = dom.computedStyle(host.container);\n var top = rect.top + (parseInt(style.borderTopWidth) || 0);\n var left = rect.left + (parseInt(rect.borderLeftWidth) || 0);\n var maxTop = rect.bottom - top - text.clientHeight -2;\n var move = function(e) {\n text.style.left = e.clientX - left - 2 + \"px\";\n text.style.top = Math.min(e.clientY - top - 2, maxTop) + \"px\";\n }; \n move(e);\n\n if (e.type != \"mousedown\")\n return;\n\n if (host.renderer.$keepTextAreaAtCursor)\n host.renderer.$keepTextAreaAtCursor = null;\n\n clearTimeout(closeTimeout);\n if (useragent.isWin)\n event.capture(host.container, move, onContextMenuClose);\n };\n\n this.onContextMenuClose = onContextMenuClose;\n var closeTimeout;\n function onContextMenuClose() {\n clearTimeout(closeTimeout);\n closeTimeout = setTimeout(function () {\n if (tempStyle) {\n text.style.cssText = tempStyle;\n tempStyle = '';\n }\n if (host.renderer.$keepTextAreaAtCursor == null) {\n host.renderer.$keepTextAreaAtCursor = true;\n host.renderer.$moveTextAreaToCursor();\n }\n }, 0);\n }\n\n var onContextMenu = function(e) {\n host.textInput.onContextMenu(e);\n onContextMenuClose();\n };\n event.addListener(text, \"mouseup\", onContextMenu);\n event.addListener(text, \"mousedown\", function(e) {\n e.preventDefault();\n onContextMenuClose();\n });\n event.addListener(host.renderer.scroller, \"contextmenu\", onContextMenu);\n event.addListener(text, \"contextmenu\", onContextMenu);\n};\n\nexports.TextInput = TextInput;\n});\n\nace.define(\"ace/mouse/default_handlers\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\n\nvar DRAG_OFFSET = 0; // pixels\nvar SCROLL_COOLDOWN_T = 250; // milliseconds\n\nfunction DefaultHandlers(mouseHandler) {\n mouseHandler.$clickSelection = null;\n\n var editor = mouseHandler.editor;\n editor.setDefaultHandler(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n editor.setDefaultHandler(\"dblclick\", this.onDoubleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"tripleclick\", this.onTripleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"quadclick\", this.onQuadClick.bind(mouseHandler));\n editor.setDefaultHandler(\"mousewheel\", this.onMouseWheel.bind(mouseHandler));\n editor.setDefaultHandler(\"touchmove\", this.onTouchMove.bind(mouseHandler));\n\n var exports = [\"select\", \"startSelect\", \"selectEnd\", \"selectAllEnd\", \"selectByWordsEnd\",\n \"selectByLinesEnd\", \"dragWait\", \"dragWaitEnd\", \"focusWait\"];\n\n exports.forEach(function(x) {\n mouseHandler[x] = this[x];\n }, this);\n\n mouseHandler.selectByLines = this.extendSelectionBy.bind(mouseHandler, \"getLineRange\");\n mouseHandler.selectByWords = this.extendSelectionBy.bind(mouseHandler, \"getWordRange\");\n}\n\n(function() {\n\n this.onMouseDown = function(ev) {\n var inSelection = ev.inSelection();\n var pos = ev.getDocumentPosition();\n this.mousedownEvent = ev;\n var editor = this.editor;\n\n var button = ev.getButton();\n if (button !== 0) {\n var selectionRange = editor.getSelectionRange();\n var selectionEmpty = selectionRange.isEmpty();\n editor.$blockScrolling++;\n if (selectionEmpty || button == 1)\n editor.selection.moveToPosition(pos);\n editor.$blockScrolling--;\n if (button == 2) {\n editor.textInput.onContextMenu(ev.domEvent);\n if (!useragent.isMozilla)\n ev.preventDefault();\n }\n return;\n }\n\n this.mousedownEvent.time = Date.now();\n if (inSelection && !editor.isFocused()) {\n editor.focus();\n if (this.$focusTimout && !this.$clickSelection && !editor.inMultiSelectMode) {\n this.setState(\"focusWait\");\n this.captureMouse(ev);\n return;\n }\n }\n\n this.captureMouse(ev);\n this.startSelect(pos, ev.domEvent._clicks > 1);\n return ev.preventDefault();\n };\n\n this.startSelect = function(pos, waitForClickSelection) {\n pos = pos || this.editor.renderer.screenToTextCoordinates(this.x, this.y);\n var editor = this.editor;\n editor.$blockScrolling++;\n if (this.mousedownEvent.getShiftKey())\n editor.selection.selectToPosition(pos);\n else if (!waitForClickSelection)\n editor.selection.moveToPosition(pos);\n if (!waitForClickSelection)\n this.select();\n if (editor.renderer.scroller.setCapture) {\n editor.renderer.scroller.setCapture();\n }\n editor.setStyle(\"ace_selecting\");\n this.setState(\"select\");\n editor.$blockScrolling--;\n };\n\n this.select = function() {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n editor.$blockScrolling++;\n if (this.$clickSelection) {\n var cmp = this.$clickSelection.comparePoint(cursor);\n\n if (cmp == -1) {\n anchor = this.$clickSelection.end;\n } else if (cmp == 1) {\n anchor = this.$clickSelection.start;\n } else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.$blockScrolling--;\n editor.renderer.scrollCursorIntoView();\n };\n\n this.extendSelectionBy = function(unitName) {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n var range = editor.selection[unitName](cursor.row, cursor.column);\n editor.$blockScrolling++;\n if (this.$clickSelection) {\n var cmpStart = this.$clickSelection.comparePoint(range.start);\n var cmpEnd = this.$clickSelection.comparePoint(range.end);\n\n if (cmpStart == -1 && cmpEnd <= 0) {\n anchor = this.$clickSelection.end;\n if (range.end.row != cursor.row || range.end.column != cursor.column)\n cursor = range.start;\n } else if (cmpEnd == 1 && cmpStart >= 0) {\n anchor = this.$clickSelection.start;\n if (range.start.row != cursor.row || range.start.column != cursor.column)\n cursor = range.end;\n } else if (cmpStart == -1 && cmpEnd == 1) {\n cursor = range.end;\n anchor = range.start;\n } else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.$blockScrolling--;\n editor.renderer.scrollCursorIntoView();\n };\n\n this.selectEnd =\n this.selectAllEnd =\n this.selectByWordsEnd =\n this.selectByLinesEnd = function() {\n this.$clickSelection = null;\n this.editor.unsetStyle(\"ace_selecting\");\n if (this.editor.renderer.scroller.releaseCapture) {\n this.editor.renderer.scroller.releaseCapture();\n }\n };\n\n this.focusWait = function() {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n var time = Date.now();\n\n if (distance > DRAG_OFFSET || time - this.mousedownEvent.time > this.$focusTimout)\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n };\n\n this.onDoubleClick = function(ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n var session = editor.session;\n\n var range = session.getBracketRange(pos);\n if (range) {\n if (range.isEmpty()) {\n range.start.column--;\n range.end.column++;\n }\n this.setState(\"select\");\n } else {\n range = editor.selection.getWordRange(pos.row, pos.column);\n this.setState(\"selectByWords\");\n }\n this.$clickSelection = range;\n this.select();\n };\n\n this.onTripleClick = function(ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n\n this.setState(\"selectByLines\");\n var range = editor.getSelectionRange();\n if (range.isMultiLine() && range.contains(pos.row, pos.column)) {\n this.$clickSelection = editor.selection.getLineRange(range.start.row);\n this.$clickSelection.end = editor.selection.getLineRange(range.end.row).end;\n } else {\n this.$clickSelection = editor.selection.getLineRange(pos.row);\n }\n this.select();\n };\n\n this.onQuadClick = function(ev) {\n var editor = this.editor;\n\n editor.selectAll();\n this.$clickSelection = editor.getSelectionRange();\n this.setState(\"selectAll\");\n };\n\n this.onMouseWheel = function(ev) {\n if (ev.getAccelKey())\n return;\n if (ev.getShiftKey() && ev.wheelY && !ev.wheelX) {\n ev.wheelX = ev.wheelY;\n ev.wheelY = 0;\n }\n \n var editor = this.editor;\n\n if (!this.$lastScroll)\n this.$lastScroll = { t: 0, vx: 0, vy: 0, allowed: 0 };\n\n var prevScroll = this.$lastScroll;\n var t = ev.domEvent.timeStamp;\n var dt = t - prevScroll.t;\n var vx = ev.wheelX / dt;\n var vy = ev.wheelY / dt;\n if (dt < SCROLL_COOLDOWN_T) {\n vx = (vx + prevScroll.vx) / 2;\n vy = (vy + prevScroll.vy) / 2;\n }\n\n var direction = Math.abs(vx / vy);\n\n var canScroll = false;\n if (direction >= 1 && editor.renderer.isScrollableBy(ev.wheelX * ev.speed, 0))\n canScroll = true;\n if (direction <= 1 && editor.renderer.isScrollableBy(0, ev.wheelY * ev.speed))\n canScroll = true;\n\n if (canScroll) {\n prevScroll.allowed = t;\n } else if (t - prevScroll.allowed < SCROLL_COOLDOWN_T) {\n var isSlower = Math.abs(vx) <= 1.1 * Math.abs(prevScroll.vx)\n && Math.abs(vy) <= 1.1 * Math.abs(prevScroll.vy);\n if (isSlower) {\n canScroll = true;\n prevScroll.allowed = t;\n }\n else {\n prevScroll.allowed = 0;\n }\n }\n\n prevScroll.t = t;\n prevScroll.vx = vx;\n prevScroll.vy = vy;\n\n if (canScroll) {\n editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n return ev.stop();\n }\n };\n\n this.onTouchMove = function(ev) {\n this.editor._emit(\"mousewheel\", ev);\n };\n\n}).call(DefaultHandlers.prototype);\n\nexports.DefaultHandlers = DefaultHandlers;\n\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\n\nfunction calcRangeOrientation(range, cursor) {\n if (range.start.row == range.end.row)\n var cmp = 2 * cursor.column - range.start.column - range.end.column;\n else if (range.start.row == range.end.row - 1 && !range.start.column && !range.end.column)\n var cmp = cursor.column - 4;\n else\n var cmp = 2 * cursor.row - range.start.row - range.end.row;\n\n if (cmp < 0)\n return {cursor: range.start, anchor: range.end};\n else\n return {cursor: range.end, anchor: range.start};\n}\n\n});\n\nace.define(\"ace/tooltip\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nfunction Tooltip (parentNode) {\n this.isOpen = false;\n this.$element = null;\n this.$parentNode = parentNode;\n}\n\n(function() {\n this.$init = function() {\n this.$element = dom.createElement(\"div\");\n this.$element.className = \"ace_tooltip\";\n this.$element.style.display = \"none\";\n this.$parentNode.appendChild(this.$element);\n return this.$element;\n };\n this.getElement = function() {\n return this.$element || this.$init();\n };\n this.setText = function(text) {\n dom.setInnerText(this.getElement(), text);\n };\n this.setHtml = function(html) {\n this.getElement().innerHTML = html;\n };\n this.setPosition = function(x, y) {\n this.getElement().style.left = x + \"px\";\n this.getElement().style.top = y + \"px\";\n };\n this.setClassName = function(className) {\n dom.addCssClass(this.getElement(), className);\n };\n this.show = function(text, x, y) {\n if (text != null)\n this.setText(text);\n if (x != null && y != null)\n this.setPosition(x, y);\n if (!this.isOpen) {\n this.getElement().style.display = \"block\";\n this.isOpen = true;\n }\n };\n\n this.hide = function() {\n if (this.isOpen) {\n this.getElement().style.display = \"none\";\n this.isOpen = false;\n }\n };\n this.getHeight = function() {\n return this.getElement().offsetHeight;\n };\n this.getWidth = function() {\n return this.getElement().offsetWidth;\n };\n\n this.destroy = function() {\n this.isOpen = false;\n if (this.$element && this.$element.parentNode) {\n this.$element.parentNode.removeChild(this.$element);\n }\n };\n\n}).call(Tooltip.prototype);\n\nexports.Tooltip = Tooltip;\n});\n\nace.define(\"ace/mouse/default_gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/event\",\"ace/tooltip\"], function(acequire, exports, module) {\n\"use strict\";\nvar dom = acequire(\"../lib/dom\");\nvar oop = acequire(\"../lib/oop\");\nvar event = acequire(\"../lib/event\");\nvar Tooltip = acequire(\"../tooltip\").Tooltip;\n\nfunction GutterHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var gutter = editor.renderer.$gutterLayer;\n var tooltip = new GutterTooltip(editor.container);\n\n mouseHandler.editor.setDefaultHandler(\"guttermousedown\", function(e) {\n if (!editor.isFocused() || e.getButton() != 0)\n return;\n var gutterRegion = gutter.getRegion(e);\n\n if (gutterRegion == \"foldWidgets\")\n return;\n\n var row = e.getDocumentPosition().row;\n var selection = editor.session.selection;\n\n if (e.getShiftKey())\n selection.selectTo(row, 0);\n else {\n if (e.domEvent.detail == 2) {\n editor.selectAll();\n return e.preventDefault();\n }\n mouseHandler.$clickSelection = editor.selection.getLineRange(row);\n }\n mouseHandler.setState(\"selectByLines\");\n mouseHandler.captureMouse(e);\n return e.preventDefault();\n });\n\n\n var tooltipTimeout, mouseEvent, tooltipAnnotation;\n\n function showTooltip() {\n var row = mouseEvent.getDocumentPosition().row;\n var annotation = gutter.$annotations[row];\n if (!annotation)\n return hideTooltip();\n\n var maxRow = editor.session.getLength();\n if (row == maxRow) {\n var screenRow = editor.renderer.pixelToScreenCoordinates(0, mouseEvent.y).row;\n var pos = mouseEvent.$pos;\n if (screenRow > editor.session.documentToScreenRow(pos.row, pos.column))\n return hideTooltip();\n }\n\n if (tooltipAnnotation == annotation)\n return;\n tooltipAnnotation = annotation.text.join(\"<br/>\");\n\n tooltip.setHtml(tooltipAnnotation);\n tooltip.show();\n editor._signal(\"showGutterTooltip\", tooltip);\n editor.on(\"mousewheel\", hideTooltip);\n\n if (mouseHandler.$tooltipFollowsMouse) {\n moveTooltip(mouseEvent);\n } else {\n var gutterElement = mouseEvent.domEvent.target;\n var rect = gutterElement.getBoundingClientRect();\n var style = tooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n }\n }\n\n function hideTooltip() {\n if (tooltipTimeout)\n tooltipTimeout = clearTimeout(tooltipTimeout);\n if (tooltipAnnotation) {\n tooltip.hide();\n tooltipAnnotation = null;\n editor._signal(\"hideGutterTooltip\", tooltip);\n editor.removeEventListener(\"mousewheel\", hideTooltip);\n }\n }\n\n function moveTooltip(e) {\n tooltip.setPosition(e.x, e.y);\n }\n\n mouseHandler.editor.setDefaultHandler(\"guttermousemove\", function(e) {\n var target = e.domEvent.target || e.domEvent.srcElement;\n if (dom.hasCssClass(target, \"ace_fold-widget\"))\n return hideTooltip();\n\n if (tooltipAnnotation && mouseHandler.$tooltipFollowsMouse)\n moveTooltip(e);\n\n mouseEvent = e;\n if (tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function() {\n tooltipTimeout = null;\n if (mouseEvent && !mouseHandler.isMousePressed)\n showTooltip();\n else\n hideTooltip();\n }, 50);\n });\n\n event.addListener(editor.renderer.$gutter, \"mouseout\", function(e) {\n mouseEvent = null;\n if (!tooltipAnnotation || tooltipTimeout)\n return;\n\n tooltipTimeout = setTimeout(function() {\n tooltipTimeout = null;\n hideTooltip();\n }, 50);\n });\n \n editor.on(\"changeSession\", hideTooltip);\n}\n\nfunction GutterTooltip(parentNode) {\n Tooltip.call(this, parentNode);\n}\n\noop.inherits(GutterTooltip, Tooltip);\n\n(function(){\n this.setPosition = function(x, y) {\n var windowWidth = window.innerWidth || document.documentElement.clientWidth;\n var windowHeight = window.innerHeight || document.documentElement.clientHeight;\n var width = this.getWidth();\n var height = this.getHeight();\n x += 15;\n y += 15;\n if (x + width > windowWidth) {\n x -= (x + width) - windowWidth;\n }\n if (y + height > windowHeight) {\n y -= 20 + height;\n }\n Tooltip.prototype.setPosition.call(this, x, y);\n };\n\n}).call(GutterTooltip.prototype);\n\n\n\nexports.GutterHandler = GutterHandler;\n\n});\n\nace.define(\"ace/mouse/mouse_event\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\nvar MouseEvent = exports.MouseEvent = function(domEvent, editor) {\n this.domEvent = domEvent;\n this.editor = editor;\n \n this.x = this.clientX = domEvent.clientX;\n this.y = this.clientY = domEvent.clientY;\n\n this.$pos = null;\n this.$inSelection = null;\n \n this.propagationStopped = false;\n this.defaultPrevented = false;\n};\n\n(function() { \n \n this.stopPropagation = function() {\n event.stopPropagation(this.domEvent);\n this.propagationStopped = true;\n };\n \n this.preventDefault = function() {\n event.preventDefault(this.domEvent);\n this.defaultPrevented = true;\n };\n \n this.stop = function() {\n this.stopPropagation();\n this.preventDefault();\n };\n this.getDocumentPosition = function() {\n if (this.$pos)\n return this.$pos;\n \n this.$pos = this.editor.renderer.screenToTextCoordinates(this.clientX, this.clientY);\n return this.$pos;\n };\n this.inSelection = function() {\n if (this.$inSelection !== null)\n return this.$inSelection;\n \n var editor = this.editor;\n \n\n var selectionRange = editor.getSelectionRange();\n if (selectionRange.isEmpty())\n this.$inSelection = false;\n else {\n var pos = this.getDocumentPosition();\n this.$inSelection = selectionRange.contains(pos.row, pos.column);\n }\n\n return this.$inSelection;\n };\n this.getButton = function() {\n return event.getButton(this.domEvent);\n };\n this.getShiftKey = function() {\n return this.domEvent.shiftKey;\n };\n \n this.getAccelKey = useragent.isMac\n ? function() { return this.domEvent.metaKey; }\n : function() { return this.domEvent.ctrlKey; };\n \n}).call(MouseEvent.prototype);\n\n});\n\nace.define(\"ace/mouse/dragdrop_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\n\nvar AUTOSCROLL_DELAY = 200;\nvar SCROLL_CURSOR_DELAY = 200;\nvar SCROLL_CURSOR_HYSTERESIS = 5;\n\nfunction DragdropHandler(mouseHandler) {\n\n var editor = mouseHandler.editor;\n\n var blankImage = dom.createElement(\"img\");\n blankImage.src = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n if (useragent.isOpera)\n blankImage.style.cssText = \"width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;\";\n\n var exports = [\"dragWait\", \"dragWaitEnd\", \"startDrag\", \"dragReadyEnd\", \"onMouseDrag\"];\n\n exports.forEach(function(x) {\n mouseHandler[x] = this[x];\n }, this);\n editor.addEventListener(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n\n\n var mouseTarget = editor.container;\n var dragSelectionMarker, x, y;\n var timerId, range;\n var dragCursor, counter = 0;\n var dragOperation;\n var isInternal;\n var autoScrollStartTime;\n var cursorMovedTime;\n var cursorPointOnCaretMoved;\n\n this.onDragStart = function(e) {\n if (this.cancelDrag || !mouseTarget.draggable) {\n var self = this;\n setTimeout(function(){\n self.startSelect();\n self.captureMouse(e);\n }, 0);\n return e.preventDefault();\n }\n range = editor.getSelectionRange();\n\n var dataTransfer = e.dataTransfer;\n dataTransfer.effectAllowed = editor.getReadOnly() ? \"copy\" : \"copyMove\";\n if (useragent.isOpera) {\n editor.container.appendChild(blankImage);\n blankImage.scrollTop = 0;\n }\n dataTransfer.setDragImage && dataTransfer.setDragImage(blankImage, 0, 0);\n if (useragent.isOpera) {\n editor.container.removeChild(blankImage);\n }\n dataTransfer.clearData();\n dataTransfer.setData(\"Text\", editor.session.getTextRange());\n\n isInternal = true;\n this.setState(\"drag\");\n };\n\n this.onDragEnd = function(e) {\n mouseTarget.draggable = false;\n isInternal = false;\n this.setState(null);\n if (!editor.getReadOnly()) {\n var dropEffect = e.dataTransfer.dropEffect;\n if (!dragOperation && dropEffect == \"move\")\n editor.session.remove(editor.getSelectionRange());\n editor.renderer.$cursorLayer.setBlinking(true);\n }\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n };\n\n this.onDragEnter = function(e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker)\n addDragMarker();\n counter++;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n\n this.onDragOver = function(e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker) {\n addDragMarker();\n counter++;\n }\n if (onMouseMoveTimer !== null)\n onMouseMoveTimer = null;\n\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n\n this.onDragLeave = function(e) {\n counter--;\n if (counter <= 0 && dragSelectionMarker) {\n clearDragMarker();\n dragOperation = null;\n return event.preventDefault(e);\n }\n };\n\n this.onDrop = function(e) {\n if (!dragCursor)\n return;\n var dataTransfer = e.dataTransfer;\n if (isInternal) {\n switch (dragOperation) {\n case \"move\":\n if (range.contains(dragCursor.row, dragCursor.column)) {\n range = {\n start: dragCursor,\n end: dragCursor\n };\n } else {\n range = editor.moveText(range, dragCursor);\n }\n break;\n case \"copy\":\n range = editor.moveText(range, dragCursor, true);\n break;\n }\n } else {\n var dropData = dataTransfer.getData('Text');\n range = {\n start: dragCursor,\n end: editor.session.insert(dragCursor, dropData)\n };\n editor.focus();\n dragOperation = null;\n }\n clearDragMarker();\n return event.preventDefault(e);\n };\n\n event.addListener(mouseTarget, \"dragstart\", this.onDragStart.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragend\", this.onDragEnd.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragenter\", this.onDragEnter.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragover\", this.onDragOver.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragleave\", this.onDragLeave.bind(mouseHandler));\n event.addListener(mouseTarget, \"drop\", this.onDrop.bind(mouseHandler));\n\n function scrollCursorIntoView(cursor, prevCursor) {\n var now = Date.now();\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n var hMovement = !prevCursor || cursor.column != prevCursor.column;\n if (!cursorMovedTime || vMovement || hMovement) {\n editor.$blockScrolling += 1;\n editor.moveCursorToPosition(cursor);\n editor.$blockScrolling -= 1;\n cursorMovedTime = now;\n cursorPointOnCaretMoved = {x: x, y: y};\n } else {\n var distance = calcDistance(cursorPointOnCaretMoved.x, cursorPointOnCaretMoved.y, x, y);\n if (distance > SCROLL_CURSOR_HYSTERESIS) {\n cursorMovedTime = null;\n } else if (now - cursorMovedTime >= SCROLL_CURSOR_DELAY) {\n editor.renderer.scrollCursorIntoView();\n cursorMovedTime = null;\n }\n }\n }\n\n function autoScroll(cursor, prevCursor) {\n var now = Date.now();\n var lineHeight = editor.renderer.layerConfig.lineHeight;\n var characterWidth = editor.renderer.layerConfig.characterWidth;\n var editorRect = editor.renderer.scroller.getBoundingClientRect();\n var offsets = {\n x: {\n left: x - editorRect.left,\n right: editorRect.right - x\n },\n y: {\n top: y - editorRect.top,\n bottom: editorRect.bottom - y\n }\n };\n var nearestXOffset = Math.min(offsets.x.left, offsets.x.right);\n var nearestYOffset = Math.min(offsets.y.top, offsets.y.bottom);\n var scrollCursor = {row: cursor.row, column: cursor.column};\n if (nearestXOffset / characterWidth <= 2) {\n scrollCursor.column += (offsets.x.left < offsets.x.right ? -3 : +2);\n }\n if (nearestYOffset / lineHeight <= 1) {\n scrollCursor.row += (offsets.y.top < offsets.y.bottom ? -1 : +1);\n }\n var vScroll = cursor.row != scrollCursor.row;\n var hScroll = cursor.column != scrollCursor.column;\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n if (vScroll || (hScroll && !vMovement)) {\n if (!autoScrollStartTime)\n autoScrollStartTime = now;\n else if (now - autoScrollStartTime >= AUTOSCROLL_DELAY)\n editor.renderer.scrollCursorIntoView(scrollCursor);\n } else {\n autoScrollStartTime = null;\n }\n }\n\n function onDragInterval() {\n var prevCursor = dragCursor;\n dragCursor = editor.renderer.screenToTextCoordinates(x, y);\n scrollCursorIntoView(dragCursor, prevCursor);\n autoScroll(dragCursor, prevCursor);\n }\n\n function addDragMarker() {\n range = editor.selection.toOrientedRange();\n dragSelectionMarker = editor.session.addMarker(range, \"ace_selection\", editor.getSelectionStyle());\n editor.clearSelection();\n if (editor.isFocused())\n editor.renderer.$cursorLayer.setBlinking(false);\n clearInterval(timerId);\n onDragInterval();\n timerId = setInterval(onDragInterval, 20);\n counter = 0;\n event.addListener(document, \"mousemove\", onMouseMove);\n }\n\n function clearDragMarker() {\n clearInterval(timerId);\n editor.session.removeMarker(dragSelectionMarker);\n dragSelectionMarker = null;\n editor.$blockScrolling += 1;\n editor.selection.fromOrientedRange(range);\n editor.$blockScrolling -= 1;\n if (editor.isFocused() && !isInternal)\n editor.renderer.$cursorLayer.setBlinking(!editor.getReadOnly());\n range = null;\n dragCursor = null;\n counter = 0;\n autoScrollStartTime = null;\n cursorMovedTime = null;\n event.removeListener(document, \"mousemove\", onMouseMove);\n }\n var onMouseMoveTimer = null;\n function onMouseMove() {\n if (onMouseMoveTimer == null) {\n onMouseMoveTimer = setTimeout(function() {\n if (onMouseMoveTimer != null && dragSelectionMarker)\n clearDragMarker();\n }, 20);\n }\n }\n\n function canAccept(dataTransfer) {\n var types = dataTransfer.types;\n return !types || Array.prototype.some.call(types, function(type) {\n return type == 'text/plain' || type == 'Text';\n });\n }\n\n function getDropEffect(e) {\n var copyAllowed = ['copy', 'copymove', 'all', 'uninitialized'];\n var moveAllowed = ['move', 'copymove', 'linkmove', 'all', 'uninitialized'];\n\n var copyModifierState = useragent.isMac ? e.altKey : e.ctrlKey;\n var effectAllowed = \"uninitialized\";\n try {\n effectAllowed = e.dataTransfer.effectAllowed.toLowerCase();\n } catch (e) {}\n var dropEffect = \"none\";\n\n if (copyModifierState && copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n else if (moveAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"move\";\n else if (copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n\n return dropEffect;\n }\n}\n\n(function() {\n\n this.dragWait = function() {\n var interval = Date.now() - this.mousedownEvent.time;\n if (interval > this.editor.getDragDelay())\n this.startDrag();\n };\n\n this.dragWaitEnd = function() {\n var target = this.editor.container;\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n this.selectEnd();\n };\n\n this.dragReadyEnd = function(e) {\n this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly());\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n this.dragWaitEnd();\n };\n\n this.startDrag = function(){\n this.cancelDrag = false;\n var editor = this.editor;\n var target = editor.container;\n target.draggable = true;\n editor.renderer.$cursorLayer.setBlinking(false);\n editor.setStyle(\"ace_dragging\");\n var cursorStyle = useragent.isWin ? \"default\" : \"move\";\n editor.renderer.setCursorStyle(cursorStyle);\n this.setState(\"dragReady\");\n };\n\n this.onMouseDrag = function(e) {\n var target = this.editor.container;\n if (useragent.isIE && this.state == \"dragReady\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 3)\n target.dragDrop();\n }\n if (this.state === \"dragWait\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 0) {\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n }\n }\n };\n\n this.onMouseDown = function(e) {\n if (!this.$dragEnabled)\n return;\n this.mousedownEvent = e;\n var editor = this.editor;\n\n var inSelection = e.inSelection();\n var button = e.getButton();\n var clickCount = e.domEvent.detail || 1;\n if (clickCount === 1 && button === 0 && inSelection) {\n if (e.editor.inMultiSelectMode && (e.getAccelKey() || e.getShiftKey()))\n return;\n this.mousedownEvent.time = Date.now();\n var eventTarget = e.domEvent.target || e.domEvent.srcElement;\n if (\"unselectable\" in eventTarget)\n eventTarget.unselectable = \"on\";\n if (editor.getDragDelay()) {\n if (useragent.isWebKit) {\n this.cancelDrag = true;\n var mouseTarget = editor.container;\n mouseTarget.draggable = true;\n }\n this.setState(\"dragWait\");\n } else {\n this.startDrag();\n }\n this.captureMouse(e, this.onMouseDrag.bind(this));\n e.defaultPrevented = true;\n }\n };\n\n}).call(DragdropHandler.prototype);\n\n\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\n\nexports.DragdropHandler = DragdropHandler;\n\n});\n\nace.define(\"ace/lib/net\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\nvar dom = acequire(\"./dom\");\n\nexports.get = function (url, callback) {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n callback(xhr.responseText);\n }\n };\n xhr.send(null);\n};\n\nexports.loadScript = function(path, callback) {\n var head = dom.getDocumentHead();\n var s = document.createElement('script');\n\n s.src = path;\n head.appendChild(s);\n\n s.onload = s.onreadystatechange = function(_, isAbort) {\n if (isAbort || !s.readyState || s.readyState == \"loaded\" || s.readyState == \"complete\") {\n s = s.onload = s.onreadystatechange = null;\n if (!isAbort)\n callback();\n }\n };\n};\nexports.qualifyURL = function(url) {\n var a = document.createElement('a');\n a.href = url;\n return a.href;\n};\n\n});\n\nace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar EventEmitter = {};\nvar stopPropagation = function() { this.propagationStopped = true; };\nvar preventDefault = function() { this.defaultPrevented = true; };\n\nEventEmitter._emit =\nEventEmitter._dispatchEvent = function(eventName, e) {\n this._eventRegistry || (this._eventRegistry = {});\n this._defaultHandlers || (this._defaultHandlers = {});\n\n var listeners = this._eventRegistry[eventName] || [];\n var defaultHandler = this._defaultHandlers[eventName];\n if (!listeners.length && !defaultHandler)\n return;\n\n if (typeof e != \"object\" || !e)\n e = {};\n\n if (!e.type)\n e.type = eventName;\n if (!e.stopPropagation)\n e.stopPropagation = stopPropagation;\n if (!e.preventDefault)\n e.preventDefault = preventDefault;\n\n listeners = listeners.slice();\n for (var i=0; i<listeners.length; i++) {\n listeners[i](e, this);\n if (e.propagationStopped)\n break;\n }\n \n if (defaultHandler && !e.defaultPrevented)\n return defaultHandler(e, this);\n};\n\n\nEventEmitter._signal = function(eventName, e) {\n var listeners = (this._eventRegistry || {})[eventName];\n if (!listeners)\n return;\n listeners = listeners.slice();\n for (var i=0; i<listeners.length; i++)\n listeners[i](e, this);\n};\n\nEventEmitter.once = function(eventName, callback) {\n var _self = this;\n callback && this.addEventListener(eventName, function newCallback() {\n _self.removeEventListener(eventName, newCallback);\n callback.apply(null, arguments);\n });\n};\n\n\nEventEmitter.setDefaultHandler = function(eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n handlers = this._defaultHandlers = {_disabled_: {}};\n \n if (handlers[eventName]) {\n var old = handlers[eventName];\n var disabled = handlers._disabled_[eventName];\n if (!disabled)\n handlers._disabled_[eventName] = disabled = [];\n disabled.push(old);\n var i = disabled.indexOf(callback);\n if (i != -1) \n disabled.splice(i, 1);\n }\n handlers[eventName] = callback;\n};\nEventEmitter.removeDefaultHandler = function(eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n return;\n var disabled = handlers._disabled_[eventName];\n \n if (handlers[eventName] == callback) {\n var old = handlers[eventName];\n if (disabled)\n this.setDefaultHandler(eventName, disabled.pop());\n } else if (disabled) {\n var i = disabled.indexOf(callback);\n if (i != -1)\n disabled.splice(i, 1);\n }\n};\n\nEventEmitter.on =\nEventEmitter.addEventListener = function(eventName, callback, capturing) {\n this._eventRegistry = this._eventRegistry || {};\n\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n listeners = this._eventRegistry[eventName] = [];\n\n if (listeners.indexOf(callback) == -1)\n listeners[capturing ? \"unshift\" : \"push\"](callback);\n return callback;\n};\n\nEventEmitter.off =\nEventEmitter.removeListener =\nEventEmitter.removeEventListener = function(eventName, callback) {\n this._eventRegistry = this._eventRegistry || {};\n\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n return;\n\n var index = listeners.indexOf(callback);\n if (index !== -1)\n listeners.splice(index, 1);\n};\n\nEventEmitter.removeAllListeners = function(eventName) {\n if (this._eventRegistry) this._eventRegistry[eventName] = [];\n};\n\nexports.EventEmitter = EventEmitter;\n\n});\n\nace.define(\"ace/lib/app_config\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"no use strict\";\n\nvar oop = acequire(\"./oop\");\nvar EventEmitter = acequire(\"./event_emitter\").EventEmitter;\n\nvar optionsProvider = {\n setOptions: function(optList) {\n Object.keys(optList).forEach(function(key) {\n this.setOption(key, optList[key]);\n }, this);\n },\n getOptions: function(optionNames) {\n var result = {};\n if (!optionNames) {\n optionNames = Object.keys(this.$options);\n } else if (!Array.isArray(optionNames)) {\n result = optionNames;\n optionNames = Object.keys(result);\n }\n optionNames.forEach(function(key) {\n result[key] = this.getOption(key);\n }, this);\n return result;\n },\n setOption: function(name, value) {\n if (this[\"$\" + name] === value)\n return;\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].setOption(name, value);\n\n if (!opt.handlesSet)\n this[\"$\" + name] = value;\n if (opt && opt.set)\n opt.set.call(this, value);\n },\n getOption: function(name) {\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].getOption(name);\n return opt && opt.get ? opt.get.call(this) : this[\"$\" + name];\n }\n};\n\nfunction warn(message) {\n if (typeof console != \"undefined\" && console.warn)\n console.warn.apply(console, arguments);\n}\n\nfunction reportError(msg, data) {\n var e = new Error(msg);\n e.data = data;\n if (typeof console == \"object\" && console.error)\n console.error(e);\n setTimeout(function() { throw e; });\n}\n\nvar AppConfig = function() {\n this.$defaultOptions = {};\n};\n\n(function() {\n oop.implement(this, EventEmitter);\n this.defineOptions = function(obj, path, options) {\n if (!obj.$options)\n this.$defaultOptions[path] = obj.$options = {};\n\n Object.keys(options).forEach(function(key) {\n var opt = options[key];\n if (typeof opt == \"string\")\n opt = {forwardTo: opt};\n\n opt.name || (opt.name = key);\n obj.$options[opt.name] = opt;\n if (\"initialValue\" in opt)\n obj[\"$\" + opt.name] = opt.initialValue;\n });\n oop.implement(obj, optionsProvider);\n\n return this;\n };\n\n this.resetOptions = function(obj) {\n Object.keys(obj.$options).forEach(function(key) {\n var opt = obj.$options[key];\n if (\"value\" in opt)\n obj.setOption(key, opt.value);\n });\n };\n\n this.setDefaultValue = function(path, name, value) {\n var opts = this.$defaultOptions[path] || (this.$defaultOptions[path] = {});\n if (opts[name]) {\n if (opts.forwardTo)\n this.setDefaultValue(opts.forwardTo, name, value);\n else\n opts[name].value = value;\n }\n };\n\n this.setDefaultValues = function(path, optionHash) {\n Object.keys(optionHash).forEach(function(key) {\n this.setDefaultValue(path, key, optionHash[key]);\n }, this);\n };\n \n this.warn = warn;\n this.reportError = reportError;\n \n}).call(AppConfig.prototype);\n\nexports.AppConfig = AppConfig;\n\n});\n\nace.define(\"ace/config\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/app_config\"], function(acequire, exports, module) {\n\"no use strict\";\n\nvar lang = acequire(\"./lib/lang\");\nvar oop = acequire(\"./lib/oop\");\nvar net = acequire(\"./lib/net\");\nvar AppConfig = acequire(\"./lib/app_config\").AppConfig;\n\nmodule.exports = exports = new AppConfig();\n\nvar global = (function() {\n return this || typeof window != \"undefined\" && window;\n})();\n\nvar options = {\n packaged: false,\n workerPath: null,\n modePath: null,\n themePath: null,\n basePath: \"\",\n suffix: \".js\",\n $moduleUrls: {}\n};\n\nexports.get = function(key) {\n if (!options.hasOwnProperty(key))\n throw new Error(\"Unknown config key: \" + key);\n\n return options[key];\n};\n\nexports.set = function(key, value) {\n if (!options.hasOwnProperty(key))\n throw new Error(\"Unknown config key: \" + key);\n\n options[key] = value;\n};\n\nexports.all = function() {\n return lang.copyObject(options);\n};\nexports.moduleUrl = function(name, component) {\n if (options.$moduleUrls[name])\n return options.$moduleUrls[name];\n\n var parts = name.split(\"/\");\n component = component || parts[parts.length - 2] || \"\";\n var sep = component == \"snippets\" ? \"/\" : \"-\";\n var base = parts[parts.length - 1];\n if (component == \"worker\" && sep == \"-\") {\n var re = new RegExp(\"^\" + component + \"[\\\\-_]|[\\\\-_]\" + component + \"$\", \"g\");\n base = base.replace(re, \"\");\n }\n\n if ((!base || base == component) && parts.length > 1)\n base = parts[parts.length - 2];\n var path = options[component + \"Path\"];\n if (path == null) {\n path = options.basePath;\n } else if (sep == \"/\") {\n component = sep = \"\";\n }\n if (path && path.slice(-1) != \"/\")\n path += \"/\";\n return path + component + sep + base + this.get(\"suffix\");\n};\n\nexports.setModuleUrl = function(name, subst) {\n return options.$moduleUrls[name] = subst;\n};\n\nexports.$loading = {};\nexports.loadModule = function(moduleName, onLoad) {\n var module, moduleType;\n if (Array.isArray(moduleName)) {\n moduleType = moduleName[0];\n moduleName = moduleName[1];\n }\n\n try {\n module = acequire(moduleName);\n } catch (e) {}\n if (module && !exports.$loading[moduleName])\n return onLoad && onLoad(module);\n\n if (!exports.$loading[moduleName])\n exports.$loading[moduleName] = [];\n\n exports.$loading[moduleName].push(onLoad);\n\n if (exports.$loading[moduleName].length > 1)\n return;\n\n var afterLoad = function() {\n acequire([moduleName], function(module) {\n exports._emit(\"load.module\", {name: moduleName, module: module});\n var listeners = exports.$loading[moduleName];\n exports.$loading[moduleName] = null;\n listeners.forEach(function(onLoad) {\n onLoad && onLoad(module);\n });\n });\n };\n\n if (!exports.get(\"packaged\"))\n return afterLoad();\n net.loadScript(exports.moduleUrl(moduleName, moduleType), afterLoad);\n};\ninit(true);function init(packaged) {\n\n if (!global || !global.document)\n return;\n \n options.packaged = packaged || acequire.packaged || module.packaged || (global.define && define.packaged);\n\n var scriptOptions = {};\n var scriptUrl = \"\";\n var currentScript = (document.currentScript || document._currentScript ); // native or polyfill\n var currentDocument = currentScript && currentScript.ownerDocument || document;\n \n var scripts = currentDocument.getElementsByTagName(\"script\");\n for (var i=0; i<scripts.length; i++) {\n var script = scripts[i];\n\n var src = script.src || script.getAttribute(\"src\");\n if (!src)\n continue;\n\n var attributes = script.attributes;\n for (var j=0, l=attributes.length; j < l; j++) {\n var attr = attributes[j];\n if (attr.name.indexOf(\"data-ace-\") === 0) {\n scriptOptions[deHyphenate(attr.name.replace(/^data-ace-/, \"\"))] = attr.value;\n }\n }\n\n var m = src.match(/^(.*)\\/ace(\\-\\w+)?\\.js(\\?|$)/);\n if (m)\n scriptUrl = m[1];\n }\n\n if (scriptUrl) {\n scriptOptions.base = scriptOptions.base || scriptUrl;\n scriptOptions.packaged = true;\n }\n\n scriptOptions.basePath = scriptOptions.base;\n scriptOptions.workerPath = scriptOptions.workerPath || scriptOptions.base;\n scriptOptions.modePath = scriptOptions.modePath || scriptOptions.base;\n scriptOptions.themePath = scriptOptions.themePath || scriptOptions.base;\n delete scriptOptions.base;\n\n for (var key in scriptOptions)\n if (typeof scriptOptions[key] !== \"undefined\")\n exports.set(key, scriptOptions[key]);\n}\n\nexports.init = init;\n\nfunction deHyphenate(str) {\n return str.replace(/-(.)/g, function(m, m1) { return m1.toUpperCase(); });\n}\n\n});\n\nace.define(\"ace/mouse/mouse_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/mouse/default_handlers\",\"ace/mouse/default_gutter_handler\",\"ace/mouse/mouse_event\",\"ace/mouse/dragdrop_handler\",\"ace/config\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\nvar DefaultHandlers = acequire(\"./default_handlers\").DefaultHandlers;\nvar DefaultGutterHandler = acequire(\"./default_gutter_handler\").GutterHandler;\nvar MouseEvent = acequire(\"./mouse_event\").MouseEvent;\nvar DragdropHandler = acequire(\"./dragdrop_handler\").DragdropHandler;\nvar config = acequire(\"../config\");\n\nvar MouseHandler = function(editor) {\n var _self = this;\n this.editor = editor;\n\n new DefaultHandlers(this);\n new DefaultGutterHandler(this);\n new DragdropHandler(this);\n\n var focusEditor = function(e) {\n var windowBlurred = !document.hasFocus || !document.hasFocus()\n || !editor.isFocused() && document.activeElement == (editor.textInput && editor.textInput.getElement());\n if (windowBlurred)\n window.focus();\n editor.focus();\n };\n\n var mouseTarget = editor.renderer.getMouseEventTarget();\n event.addListener(mouseTarget, \"click\", this.onMouseEvent.bind(this, \"click\"));\n event.addListener(mouseTarget, \"mousemove\", this.onMouseMove.bind(this, \"mousemove\"));\n event.addMultiMouseDownListener([\n mouseTarget,\n editor.renderer.scrollBarV && editor.renderer.scrollBarV.inner,\n editor.renderer.scrollBarH && editor.renderer.scrollBarH.inner,\n editor.textInput && editor.textInput.getElement()\n ].filter(Boolean), [400, 300, 250], this, \"onMouseEvent\");\n event.addMouseWheelListener(editor.container, this.onMouseWheel.bind(this, \"mousewheel\"));\n event.addTouchMoveListener(editor.container, this.onTouchMove.bind(this, \"touchmove\"));\n\n var gutterEl = editor.renderer.$gutter;\n event.addListener(gutterEl, \"mousedown\", this.onMouseEvent.bind(this, \"guttermousedown\"));\n event.addListener(gutterEl, \"click\", this.onMouseEvent.bind(this, \"gutterclick\"));\n event.addListener(gutterEl, \"dblclick\", this.onMouseEvent.bind(this, \"gutterdblclick\"));\n event.addListener(gutterEl, \"mousemove\", this.onMouseEvent.bind(this, \"guttermousemove\"));\n\n event.addListener(mouseTarget, \"mousedown\", focusEditor);\n event.addListener(gutterEl, \"mousedown\", focusEditor);\n if (useragent.isIE && editor.renderer.scrollBarV) {\n event.addListener(editor.renderer.scrollBarV.element, \"mousedown\", focusEditor);\n event.addListener(editor.renderer.scrollBarH.element, \"mousedown\", focusEditor);\n }\n\n editor.on(\"mousemove\", function(e){\n if (_self.state || _self.$dragDelay || !_self.$dragEnabled)\n return;\n\n var character = editor.renderer.screenToTextCoordinates(e.x, e.y);\n var range = editor.session.selection.getRange();\n var renderer = editor.renderer;\n\n if (!range.isEmpty() && range.insideStart(character.row, character.column)) {\n renderer.setCursorStyle(\"default\");\n } else {\n renderer.setCursorStyle(\"\");\n }\n });\n};\n\n(function() {\n this.onMouseEvent = function(name, e) {\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n\n this.onMouseMove = function(name, e) {\n var listeners = this.editor._eventRegistry && this.editor._eventRegistry.mousemove;\n if (!listeners || !listeners.length)\n return;\n\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n\n this.onMouseWheel = function(name, e) {\n var mouseEvent = new MouseEvent(e, this.editor);\n mouseEvent.speed = this.$scrollSpeed * 2;\n mouseEvent.wheelX = e.wheelX;\n mouseEvent.wheelY = e.wheelY;\n\n this.editor._emit(name, mouseEvent);\n };\n \n this.onTouchMove = function (name, e) {\n var mouseEvent = new MouseEvent(e, this.editor);\n mouseEvent.speed = 1;//this.$scrollSpeed * 2;\n mouseEvent.wheelX = e.wheelX;\n mouseEvent.wheelY = e.wheelY;\n this.editor._emit(name, mouseEvent);\n };\n\n this.setState = function(state) {\n this.state = state;\n };\n\n this.captureMouse = function(ev, mouseMoveHandler) {\n this.x = ev.x;\n this.y = ev.y;\n\n this.isMousePressed = true;\n var renderer = this.editor.renderer;\n if (renderer.$keepTextAreaAtCursor)\n renderer.$keepTextAreaAtCursor = null;\n\n var self = this;\n var onMouseMove = function(e) {\n if (!e) return;\n if (useragent.isWebKit && !e.which && self.releaseMouse)\n return self.releaseMouse();\n\n self.x = e.clientX;\n self.y = e.clientY;\n mouseMoveHandler && mouseMoveHandler(e);\n self.mouseEvent = new MouseEvent(e, self.editor);\n self.$mouseMoved = true;\n };\n\n var onCaptureEnd = function(e) {\n clearInterval(timerId);\n onCaptureInterval();\n self[self.state + \"End\"] && self[self.state + \"End\"](e);\n self.state = \"\";\n if (renderer.$keepTextAreaAtCursor == null) {\n renderer.$keepTextAreaAtCursor = true;\n renderer.$moveTextAreaToCursor();\n }\n self.isMousePressed = false;\n self.$onCaptureMouseMove = self.releaseMouse = null;\n e && self.onMouseEvent(\"mouseup\", e);\n };\n\n var onCaptureInterval = function() {\n self[self.state] && self[self.state]();\n self.$mouseMoved = false;\n };\n\n if (useragent.isOldIE && ev.domEvent.type == \"dblclick\") {\n return setTimeout(function() {onCaptureEnd(ev);});\n }\n\n self.$onCaptureMouseMove = onMouseMove;\n self.releaseMouse = event.capture(this.editor.container, onMouseMove, onCaptureEnd);\n var timerId = setInterval(onCaptureInterval, 20);\n };\n this.releaseMouse = null;\n this.cancelContextMenu = function() {\n var stop = function(e) {\n if (e && e.domEvent && e.domEvent.type != \"contextmenu\")\n return;\n this.editor.off(\"nativecontextmenu\", stop);\n if (e && e.domEvent)\n event.stopEvent(e.domEvent);\n }.bind(this);\n setTimeout(stop, 10);\n this.editor.on(\"nativecontextmenu\", stop);\n };\n}).call(MouseHandler.prototype);\n\nconfig.defineOptions(MouseHandler.prototype, \"mouseHandler\", {\n scrollSpeed: {initialValue: 2},\n dragDelay: {initialValue: (useragent.isMac ? 150 : 0)},\n dragEnabled: {initialValue: true},\n focusTimout: {initialValue: 0},\n tooltipFollowsMouse: {initialValue: true}\n});\n\n\nexports.MouseHandler = MouseHandler;\n});\n\nace.define(\"ace/mouse/fold_handler\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nfunction FoldHandler(editor) {\n\n editor.on(\"click\", function(e) {\n var position = e.getDocumentPosition();\n var session = editor.session;\n var fold = session.getFoldAt(position.row, position.column, 1);\n if (fold) {\n if (e.getAccelKey())\n session.removeFold(fold);\n else\n session.expandFold(fold);\n\n e.stop();\n }\n });\n\n editor.on(\"gutterclick\", function(e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n if (session.foldWidgets && session.foldWidgets[row])\n editor.session.onFoldWidgetClick(row, e);\n if (!editor.isFocused())\n editor.focus();\n e.stop();\n }\n });\n\n editor.on(\"gutterdblclick\", function(e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n var data = session.getParentFoldRangeData(row, true);\n var range = data.range || data.firstRange;\n\n if (range) {\n row = range.start.row;\n var fold = session.getFoldAt(row, session.getLine(row).length, 1);\n\n if (fold) {\n session.removeFold(fold);\n } else {\n session.addFold(\"...\", range);\n editor.renderer.scrollCursorIntoView({row: range.start.row, column: 0});\n }\n }\n e.stop();\n }\n });\n}\n\nexports.FoldHandler = FoldHandler;\n\n});\n\nace.define(\"ace/keyboard/keybinding\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/event\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar keyUtil = acequire(\"../lib/keys\");\nvar event = acequire(\"../lib/event\");\n\nvar KeyBinding = function(editor) {\n this.$editor = editor;\n this.$data = {editor: editor};\n this.$handlers = [];\n this.setDefaultHandler(editor.commands);\n};\n\n(function() {\n this.setDefaultHandler = function(kb) {\n this.removeKeyboardHandler(this.$defaultHandler);\n this.$defaultHandler = kb;\n this.addKeyboardHandler(kb, 0);\n };\n\n this.setKeyboardHandler = function(kb) {\n var h = this.$handlers;\n if (h[h.length - 1] == kb)\n return;\n\n while (h[h.length - 1] && h[h.length - 1] != this.$defaultHandler)\n this.removeKeyboardHandler(h[h.length - 1]);\n\n this.addKeyboardHandler(kb, 1);\n };\n\n this.addKeyboardHandler = function(kb, pos) {\n if (!kb)\n return;\n if (typeof kb == \"function\" && !kb.handleKeyboard)\n kb.handleKeyboard = kb;\n var i = this.$handlers.indexOf(kb);\n if (i != -1)\n this.$handlers.splice(i, 1);\n\n if (pos == undefined)\n this.$handlers.push(kb);\n else\n this.$handlers.splice(pos, 0, kb);\n\n if (i == -1 && kb.attach)\n kb.attach(this.$editor);\n };\n\n this.removeKeyboardHandler = function(kb) {\n var i = this.$handlers.indexOf(kb);\n if (i == -1)\n return false;\n this.$handlers.splice(i, 1);\n kb.detach && kb.detach(this.$editor);\n return true;\n };\n\n this.getKeyboardHandler = function() {\n return this.$handlers[this.$handlers.length - 1];\n };\n \n this.getStatusText = function() {\n var data = this.$data;\n var editor = data.editor;\n return this.$handlers.map(function(h) {\n return h.getStatusText && h.getStatusText(editor, data) || \"\";\n }).filter(Boolean).join(\" \");\n };\n\n this.$callKeyboardHandlers = function(hashId, keyString, keyCode, e) {\n var toExecute;\n var success = false;\n var commands = this.$editor.commands;\n\n for (var i = this.$handlers.length; i--;) {\n toExecute = this.$handlers[i].handleKeyboard(\n this.$data, hashId, keyString, keyCode, e\n );\n if (!toExecute || !toExecute.command)\n continue;\n if (toExecute.command == \"null\") {\n success = true;\n } else {\n success = commands.exec(toExecute.command, this.$editor, toExecute.args, e);\n }\n if (success && e && hashId != -1 && \n toExecute.passEvent != true && toExecute.command.passEvent != true\n ) {\n event.stopEvent(e);\n }\n if (success)\n break;\n }\n \n if (!success && hashId == -1) {\n toExecute = {command: \"insertstring\"};\n success = commands.exec(\"insertstring\", this.$editor, keyString);\n }\n \n if (success && this.$editor._signal)\n this.$editor._signal(\"keyboardActivity\", toExecute);\n \n return success;\n };\n\n this.onCommandKey = function(e, hashId, keyCode) {\n var keyString = keyUtil.keyCodeToString(keyCode);\n this.$callKeyboardHandlers(hashId, keyString, keyCode, e);\n };\n\n this.onTextInput = function(text) {\n this.$callKeyboardHandlers(-1, text);\n };\n\n}).call(KeyBinding.prototype);\n\nexports.KeyBinding = KeyBinding;\n});\n\nace.define(\"ace/lib/bidiutil\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar ArabicAlefBetIntervalsBegine = ['\\u0621', '\\u0641'];\nvar ArabicAlefBetIntervalsEnd = ['\\u063A', '\\u064a'];\nvar dir = 0, hiLevel = 0;\nvar lastArabic = false, hasUBAT_AL = false, hasUBAT_B = false, hasUBAT_S = false, hasBlockSep = false, hasSegSep = false;\n\nvar impTab_LTR = [\t[\t0,\t\t3,\t\t0,\t\t1,\t\t0,\t\t0,\t\t0\t],\t[\t0,\t\t3,\t\t0,\t\t1,\t\t2,\t\t2,\t\t0\t],\t[\t0,\t\t3,\t\t0,\t\t0x11,\t\t2,\t\t0,\t\t1\t],\t[\t0,\t\t3,\t\t5,\t\t5,\t\t4,\t\t1,\t\t0\t],\t[\t0,\t\t3,\t\t0x15,\t\t0x15,\t\t4,\t\t0,\t\t1\t],\t[\t0,\t\t3,\t\t5,\t\t5,\t\t4,\t\t2,\t\t0\t]\n];\n\nvar impTab_RTL = [\t[\t2,\t\t0,\t\t1,\t\t1,\t\t0,\t\t1,\t\t0\t],\t[\t2,\t\t0,\t\t1,\t\t1,\t\t0,\t\t2,\t\t0\t],\t[\t2,\t\t0,\t\t2,\t\t1,\t\t3,\t\t2,\t\t0\t],\t[\t2,\t\t0,\t\t2,\t\t0x21,\t\t3,\t\t1,\t\t1\t]\n];\n\nvar LTR = 0, RTL = 1;\n\nvar L = 0;\nvar R = 1;\nvar EN = 2;\nvar AN = 3;\nvar ON = 4;\nvar B = 5;\nvar S = 6;\nvar AL = 7;\nvar WS = 8;\nvar CS = 9;\nvar ES = 10;\nvar ET = 11;\nvar NSM = 12;\nvar LRE = 13;\nvar RLE = 14;\nvar PDF = 15;\nvar LRO = 16;\nvar RLO = 17;\nvar BN = 18;\n\nvar UnicodeTBL00 = [\nBN,BN,BN,BN,BN,BN,BN,BN,BN,S,B,S,WS,B,BN,BN,\nBN,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,B,B,B,S,\nWS,ON,ON,ET,ET,ET,ON,ON,ON,ON,ON,ES,CS,ES,CS,CS,\nEN,EN,EN,EN,EN,EN,EN,EN,EN,EN,CS,ON,ON,ON,ON,ON,\nON,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,\nL,L,L,L,L,L,L,L,L,L,L,ON,ON,ON,ON,ON,\nON,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,\nL,L,L,L,L,L,L,L,L,L,L,ON,ON,ON,ON,BN,\nBN,BN,BN,BN,BN,B,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,\nBN,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,\nCS,ON,ET,ET,ET,ET,ON,ON,ON,ON,L,ON,ON,BN,ON,ON,\nET,ET,EN,EN,ON,L,ON,ON,ON,EN,L,ON,ON,ON,ON,ON\n];\n\nvar UnicodeTBL20 = [\nWS,WS,WS,WS,WS,WS,WS,WS,WS,WS,WS,BN,BN,BN,L,R\t,\nON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,\nON,ON,ON,ON,ON,ON,ON,ON,WS,B,LRE,RLE,PDF,LRO,RLO,CS,\nET,ET,ET,ET,ET,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,\nON,ON,ON,ON,CS,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,\nON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,WS\n];\n\nfunction _computeLevels(chars, levels, len, charTypes) {\n\tvar impTab = dir ? impTab_RTL : impTab_LTR\n\t\t, prevState = null, newClass = null, newLevel = null, newState = 0\n\t\t, action = null, cond = null, condPos = -1, i = null, ix = null, classes = [];\n\n\tif (!charTypes) {\n\t\tfor (i = 0, charTypes = []; i < len; i++) {\n\t\t\tcharTypes[i] = _getCharacterType(chars[i]);\n\t\t}\n\t}\n\thiLevel = dir;\n\tlastArabic = false;\n\thasUBAT_AL = false;\n\thasUBAT_B = false;\n\thasUBAT_S = false;\n\tfor (ix = 0; ix < len; ix++){\n\t\tprevState = newState;\n\t\tclasses[ix] = newClass = _getCharClass(chars, charTypes, classes, ix);\n\t\tnewState = impTab[prevState][newClass];\n\t\taction = newState & 0xF0;\n\t\tnewState &= 0x0F;\n\t\tlevels[ix] = newLevel = impTab[newState][5];\n\t\tif (action > 0){\n\t\t\tif (action == 0x10){\n\t\t\t\tfor(i = condPos; i < ix; i++){\n\t\t\t\t\tlevels[i] = 1;\n\t\t\t\t}\n\t\t\t\tcondPos = -1;\n\t\t\t} else {\n\t\t\t\tcondPos = -1;\n\t\t\t}\n\t\t}\n\t\tcond = impTab[newState][6];\n\t\tif (cond){\n\t\t\tif(condPos == -1){\n\t\t\t\tcondPos = ix;\n\t\t\t}\n\t\t}else{\n\t\t\tif (condPos > -1){\n\t\t\t\tfor(i = condPos; i < ix; i++){\n\t\t\t\t\tlevels[i] = newLevel;\n\t\t\t\t}\n\t\t\t\tcondPos = -1;\n\t\t\t}\n\t\t}\n\t\tif (charTypes[ix] == B){\n\t\t\tlevels[ix] = 0;\n\t\t}\n\t\thiLevel |= newLevel;\n\t}\n\tif (hasUBAT_S){\n\t\tfor(i = 0; i < len; i++){\n\t\t\tif(charTypes[i] == S){\n\t\t\t\tlevels[i] = dir;\n\t\t\t\tfor(var j = i - 1; j >= 0; j--){\n\t\t\t\t\tif(charTypes[j] == WS){\n\t\t\t\t\t\tlevels[j] = dir;\n\t\t\t\t\t}else{\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction _invertLevel(lev, levels, _array) {\n\tif (hiLevel < lev){\n\t\treturn;\n\t}\n\tif (lev == 1 && dir == RTL && !hasUBAT_B){\n\t\t_array.reverse();\n\t\treturn;\n\t}\n\tvar len = _array.length, start = 0, end, lo, hi, tmp;\n\twhile(start < len){\n\t\tif (levels[start] >= lev){\n\t\t\tend = start + 1;\n\t\twhile(end < len && levels[end] >= lev){\n\t\t\tend++;\n\t\t}\n\t\tfor(lo = start, hi = end - 1 ; lo < hi; lo++, hi--){\n\t\t\ttmp = _array[lo];\n\t\t\t_array[lo] = _array[hi];\n\t\t\t_array[hi] = tmp;\n\t\t}\n\t\tstart = end;\n\t}\n\tstart++;\n\t}\n}\n\nfunction _getCharClass(chars, types, classes, ix) {\n\tvar cType = types[ix], wType, nType, len, i;\n\tswitch(cType){\n\t\tcase L:\n\t\tcase R:\n\t\t\tlastArabic = false;\n\t\tcase ON:\n\t\tcase AN:\n\t\t\treturn cType;\n\t\tcase EN:\n\t\t\treturn lastArabic ? AN : EN;\n\t\tcase AL:\n\t\t\tlastArabic = true;\n\t\t\thasUBAT_AL = true;\n\t\t\treturn R;\n\t\tcase WS:\n\t\t\treturn ON;\n\t\tcase CS:\n\t\t\tif (ix < 1 || (ix + 1) >= types.length ||\n\t\t\t\t((wType = classes[ix - 1]) != EN && wType != AN) ||\n\t\t\t\t((nType = types[ix + 1]) != EN && nType != AN)){\n\t\t\t\treturn ON;\n\t\t\t}\n\t\t\tif (lastArabic){nType = AN;}\n\t\t\treturn nType == wType ? nType : ON;\n\t\tcase ES:\n\t\t\twType = ix > 0 ? classes[ix - 1] : B;\n\t\t\tif (wType == EN && (ix + 1) < types.length && types[ix + 1] == EN){\n\t\t\t\treturn EN;\n\t\t\t}\n\t\t\treturn ON;\n\t\tcase ET:\n\t\t\tif (ix > 0 && classes[ix - 1] == EN){\n\t\t\t\treturn EN;\n\t\t\t}\n\t\t\tif (lastArabic){\n\t\t\t\treturn ON;\n\t\t\t}\n\t\t\ti = ix + 1;\n\t\t\tlen = types.length;\n\t\t\twhile (i < len && types[i] == ET){\n\t\t\t\ti++;\n\t\t\t}\n\t\t\tif (i < len && types[i] == EN){\n\t\t\t\treturn EN;\n\t\t\t}\n\t\t\treturn ON;\n\t\tcase NSM:\n\t\t\tlen = types.length;\n\t\t\ti = ix + 1;\n\t\t\twhile (i < len && types[i] == NSM){\n\t\t\t\ti++;\n\t\t\t}\n\t\t\tif (i < len){\n\t\t\t\tvar c = chars[ix], rtlCandidate = (c >= 0x0591 && c <= 0x08FF) || c == 0xFB1E;\n\n\t\t\t\twType = types[i];\n\t\t\t\tif (rtlCandidate && (wType == R || wType == AL)){\n\t\t\t\t\treturn R;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (ix < 1 || (wType = types[ix - 1]) == B){\n\t\t\t\treturn ON;\n\t\t\t}\n\t\t\treturn classes[ix - 1];\n\t\tcase B:\n\t\t\tlastArabic = false;\n\t\t\thasUBAT_B = true;\n\t\t\treturn dir;\n\t\tcase S:\n\t\t\thasUBAT_S = true;\n\t\t\treturn ON;\n\t\tcase LRE:\n\t\tcase RLE:\n\t\tcase LRO:\n\t\tcase RLO:\n\t\tcase PDF:\n\t\t\tlastArabic = false;\n\t\tcase BN:\n\t\t\treturn ON;\n\t}\n}\n\nfunction _getCharacterType( ch ) {\n\tvar uc = ch.charCodeAt(0), hi = uc >> 8;\n\n\tif (hi == 0) {\n\t\treturn ((uc > 0x00BF) ? L : UnicodeTBL00[uc]);\n\t} else if (hi == 5) {\n\t\treturn (/[\\u0591-\\u05f4]/.test(ch) ? R : L);\n\t} else if (hi == 6) {\n\t\tif (/[\\u0610-\\u061a\\u064b-\\u065f\\u06d6-\\u06e4\\u06e7-\\u06ed]/.test(ch))\n\t\t\treturn NSM;\n\t\telse if (/[\\u0660-\\u0669\\u066b-\\u066c]/.test(ch))\n\t\t\treturn AN;\n\t\telse if (uc == 0x066A)\n\t\t\treturn ET;\n\t\telse if (/[\\u06f0-\\u06f9]/.test(ch))\n\t\t\treturn EN;\n\t\telse\n\t\t\treturn AL;\n\t} else if (hi == 0x20 && uc <= 0x205F) {\n\t\treturn UnicodeTBL20[uc & 0xFF];\n\t} else if (hi == 0xFE) {\n\t\treturn (uc >= 0xFE70 ? AL : ON);\n\t}\n\treturn ON;\n}\n\nfunction _isArabicDiacritics( ch ) {\n\treturn (ch >= '\\u064b' && ch <= '\\u0655');\n}\nexports.L = L;\nexports.R = R;\nexports.EN = EN;\nexports.ON_R = 3;\nexports.AN = 4;\nexports.R_H = 5;\nexports.B = 6;\n\nexports.DOT = \"\\xB7\";\nexports.doBidiReorder = function(text, textCharTypes, isRtl) {\n\tif (text.length < 2)\n\t\treturn {};\n\n\tvar chars = text.split(\"\"), logicalFromVisual = new Array(chars.length),\n\t\tbidiLevels = new Array(chars.length), levels = [];\n\n\tdir = isRtl ? RTL : LTR;\n\n\t_computeLevels(chars, levels, chars.length, textCharTypes);\n\n\tfor (var i = 0; i < logicalFromVisual.length; logicalFromVisual[i] = i, i++);\n\n\t_invertLevel(2, levels, logicalFromVisual);\n\t_invertLevel(1, levels, logicalFromVisual);\n\n\tfor (var i = 0; i < logicalFromVisual.length - 1; i++) { //fix levels to reflect character width\n\t\tif (textCharTypes[i] === AN) {\n\t\t\tlevels[i] = exports.AN;\n\t\t} else if (levels[i] === R && ((textCharTypes[i] > AL && textCharTypes[i] < LRE)\n\t\t\t|| textCharTypes[i] === ON || textCharTypes[i] === BN)) {\n\t\t\tlevels[i] = exports.ON_R;\n\t\t} else if ((i > 0 && chars[i - 1] === '\\u0644') && /\\u0622|\\u0623|\\u0625|\\u0627/.test(chars[i])) {\n\t\t\tlevels[i - 1] = levels[i] = exports.R_H;\n\t\t\ti++;\n\t\t}\n\t}\n\tif (chars[chars.length - 1] === exports.DOT)\n\t\tlevels[chars.length - 1] = exports.B;\n\n\tfor (var i = 0; i < logicalFromVisual.length; i++) {\n\t\tbidiLevels[i] = levels[logicalFromVisual[i]];\n\t}\n\n\treturn {'logicalFromVisual': logicalFromVisual, 'bidiLevels': bidiLevels};\n};\nexports.hasBidiCharacters = function(text, textCharTypes){\n\tvar ret = false;\n\tfor (var i = 0; i < text.length; i++){\n\t\ttextCharTypes[i] = _getCharacterType(text.charAt(i));\n\t\tif (!ret && (textCharTypes[i] == R || textCharTypes[i] == AL))\n\t\t\tret = true;\n\t}\n\treturn ret;\n};\nexports.getVisualFromLogicalIdx = function(logIdx, rowMap) {\n\tfor (var i = 0; i < rowMap.logicalFromVisual.length; i++) {\n\t\tif (rowMap.logicalFromVisual[i] == logIdx)\n\t\t\treturn i;\n\t}\n\treturn 0;\n};\n\n});\n\nace.define(\"ace/bidihandler\",[\"require\",\"exports\",\"module\",\"ace/lib/bidiutil\",\"ace/lib/lang\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar bidiUtil = acequire(\"./lib/bidiutil\");\nvar lang = acequire(\"./lib/lang\");\nvar useragent = acequire(\"./lib/useragent\");\nvar bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/;\nvar BidiHandler = function(session) {\n this.session = session;\n this.bidiMap = {};\n this.currentRow = null;\n this.bidiUtil = bidiUtil;\n this.charWidths = [];\n this.EOL = \"\\xAC\";\n this.showInvisibles = true;\n this.isRtlDir = false;\n this.line = \"\";\n this.wrapIndent = 0;\n this.isLastRow = false;\n this.EOF = \"\\xB6\";\n this.seenBidi = false;\n};\n\n(function() {\n this.isBidiRow = function(screenRow, docRow, splitIndex) {\n if (!this.seenBidi)\n return false;\n if (screenRow !== this.currentRow) {\n this.currentRow = screenRow;\n this.updateRowLine(docRow, splitIndex);\n this.updateBidiMap();\n }\n return this.bidiMap.bidiLevels;\n };\n\n this.onChange = function(delta) {\n if (!this.seenBidi) {\n if (delta.action == \"insert\" && bidiRE.test(delta.lines.join(\"\\n\"))) {\n this.seenBidi = true;\n this.currentRow = null;\n }\n }\n else {\n this.currentRow = null;\n }\n };\n\n this.getDocumentRow = function() {\n var docRow = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var index = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n if (index >= 0)\n docRow = this.session.$docRowCache[index];\n }\n\n return docRow;\n };\n\n this.getSplitIndex = function() {\n var splitIndex = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var currentIndex, prevIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n while (this.currentRow - splitIndex > 0) {\n currentIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow - splitIndex - 1);\n if (currentIndex !== prevIndex)\n break;\n\n prevIndex = currentIndex;\n splitIndex++;\n }\n }\n\n return splitIndex;\n };\n\n this.updateRowLine = function(docRow, splitIndex) {\n if (docRow === undefined)\n docRow = this.getDocumentRow();\n\n this.wrapIndent = 0;\n this.isLastRow = (docRow === this.session.getLength() - 1);\n this.line = this.session.getLine(docRow);\n if (this.session.$useWrapMode) {\n var splits = this.session.$wrapData[docRow];\n if (splits) {\n if (splitIndex === undefined)\n splitIndex = this.getSplitIndex();\n\n if(splitIndex > 0 && splits.length) {\n this.wrapIndent = splits.indent;\n this.line = (splitIndex < splits.length) ?\n this.line.substring(splits[splitIndex - 1], splits[splits.length - 1]) :\n this.line.substring(splits[splits.length - 1]);\n } else {\n this.line = this.line.substring(0, splits[splitIndex]);\n }\n }\n }\n var session = this.session, shift = 0, size;\n this.line = this.line.replace(/\\t|[\\u1100-\\u2029, \\u202F-\\uFFE6]/g, function(ch, i){\n if (ch === '\\t' || session.isFullWidth(ch.charCodeAt(0))) {\n size = (ch === '\\t') ? session.getScreenTabSize(i + shift) : 2;\n shift += size - 1;\n return lang.stringRepeat(bidiUtil.DOT, size);\n }\n return ch;\n });\n };\n\n this.updateBidiMap = function() {\n var textCharTypes = [], endOfLine = this.isLastRow ? this.EOF : this.EOL;\n var line = this.line + (this.showInvisibles ? endOfLine : bidiUtil.DOT);\n if (bidiUtil.hasBidiCharacters(line, textCharTypes)) {\n this.bidiMap = bidiUtil.doBidiReorder(line, textCharTypes, this.isRtlDir);\n } else {\n this.bidiMap = {};\n }\n };\n this.markAsDirty = function() {\n this.currentRow = null;\n };\n this.updateCharacterWidths = function(fontMetrics) {\n if (!this.seenBidi)\n return;\n if (this.characterWidth === fontMetrics.$characterSize.width)\n return;\n\n var characterWidth = this.characterWidth = fontMetrics.$characterSize.width;\n var bidiCharWidth = fontMetrics.$measureCharWidth(\"\\u05d4\");\n\n this.charWidths[bidiUtil.L] = this.charWidths[bidiUtil.EN] = this.charWidths[bidiUtil.ON_R] = characterWidth;\n this.charWidths[bidiUtil.R] = this.charWidths[bidiUtil.AN] = bidiCharWidth;\n this.charWidths[bidiUtil.R_H] = useragent.isChrome ? bidiCharWidth : bidiCharWidth * 0.45;\n this.charWidths[bidiUtil.B] = 0;\n\n this.currentRow = null;\n };\n\n this.getShowInvisibles = function() {\n return this.showInvisibles;\n };\n\n this.setShowInvisibles = function(showInvisibles) {\n this.showInvisibles = showInvisibles;\n this.currentRow = null;\n };\n\n this.setEolChar = function(eolChar) {\n this.EOL = eolChar;\n };\n\n this.setTextDir = function(isRtlDir) {\n this.isRtlDir = isRtlDir;\n };\n this.getPosLeft = function(col) {\n col -= this.wrapIndent;\n var visualIdx = bidiUtil.getVisualFromLogicalIdx(col > 0 ? col - 1 : 0, this.bidiMap),\n levels = this.bidiMap.bidiLevels, left = 0;\n\n if (col === 0 && levels[visualIdx] % 2 !== 0)\n visualIdx++;\n\n for (var i = 0; i < visualIdx; i++) {\n left += this.charWidths[levels[i]];\n }\n\n if (col !== 0 && levels[visualIdx] % 2 === 0)\n left += this.charWidths[levels[visualIdx]];\n\n if (this.wrapIndent)\n left += this.wrapIndent * this.charWidths[bidiUtil.L];\n\n return left;\n };\n this.getSelections = function(startCol, endCol) {\n var map = this.bidiMap, levels = map.bidiLevels, level, offset = this.wrapIndent * this.charWidths[bidiUtil.L], selections = [],\n selColMin = Math.min(startCol, endCol) - this.wrapIndent, selColMax = Math.max(startCol, endCol) - this.wrapIndent,\n isSelected = false, isSelectedPrev = false, selectionStart = 0;\n\n for (var logIdx, visIdx = 0; visIdx < levels.length; visIdx++) {\n logIdx = map.logicalFromVisual[visIdx];\n level = levels[visIdx];\n isSelected = (logIdx >= selColMin) && (logIdx < selColMax);\n if (isSelected && !isSelectedPrev) {\n selectionStart = offset;\n } else if (!isSelected && isSelectedPrev) {\n selections.push({left: selectionStart, width: offset - selectionStart});\n }\n offset += this.charWidths[level];\n isSelectedPrev = isSelected;\n }\n\n if (isSelected && (visIdx === levels.length)) {\n selections.push({left: selectionStart, width: offset - selectionStart});\n }\n\n return selections;\n };\n this.offsetToCol = function(posX) {\n var logicalIdx = 0, posX = Math.max(posX, 0),\n offset = 0, visualIdx = 0, levels = this.bidiMap.bidiLevels,\n charWidth = this.charWidths[levels[visualIdx]];\n\n if (this.wrapIndent) {\n posX -= this.wrapIndent * this.charWidths[bidiUtil.L];\n }\n\n while(posX > offset + charWidth/2) {\n offset += charWidth;\n if(visualIdx === levels.length - 1) {\n charWidth = 0;\n break;\n }\n charWidth = this.charWidths[levels[++visualIdx]];\n }\n\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && (levels[visualIdx] % 2 === 0)){\n if(posX < offset)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n\n } else if (visualIdx > 0 && (levels[visualIdx - 1] % 2 === 0) && (levels[visualIdx] % 2 !== 0)){\n logicalIdx = 1 + ((posX > offset) ? this.bidiMap.logicalFromVisual[visualIdx]\n : this.bidiMap.logicalFromVisual[visualIdx - 1]);\n\n } else if ((this.isRtlDir && visualIdx === levels.length - 1 && charWidth === 0 && (levels[visualIdx - 1] % 2 === 0))\n || (!this.isRtlDir && visualIdx === 0 && (levels[visualIdx] % 2 !== 0))){\n logicalIdx = 1 + this.bidiMap.logicalFromVisual[visualIdx];\n } else {\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && charWidth !== 0)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n }\n\n return (logicalIdx + this.wrapIndent);\n };\n\n}).call(BidiHandler.prototype);\n\nexports.BidiHandler = BidiHandler;\n});\n\nace.define(\"ace/range\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nvar comparePoints = function(p1, p2) {\n return p1.row - p2.row || p1.column - p2.column;\n};\nvar Range = function(startRow, startColumn, endRow, endColumn) {\n this.start = {\n row: startRow,\n column: startColumn\n };\n\n this.end = {\n row: endRow,\n column: endColumn\n };\n};\n\n(function() {\n this.isEqual = function(range) {\n return this.start.row === range.start.row &&\n this.end.row === range.end.row &&\n this.start.column === range.start.column &&\n this.end.column === range.end.column;\n };\n this.toString = function() {\n return (\"Range: [\" + this.start.row + \"/\" + this.start.column +\n \"] -> [\" + this.end.row + \"/\" + this.end.column + \"]\");\n };\n\n this.contains = function(row, column) {\n return this.compare(row, column) == 0;\n };\n this.compareRange = function(range) {\n var cmp,\n end = range.end,\n start = range.start;\n\n cmp = this.compare(end.row, end.column);\n if (cmp == 1) {\n cmp = this.compare(start.row, start.column);\n if (cmp == 1) {\n return 2;\n } else if (cmp == 0) {\n return 1;\n } else {\n return 0;\n }\n } else if (cmp == -1) {\n return -2;\n } else {\n cmp = this.compare(start.row, start.column);\n if (cmp == -1) {\n return -1;\n } else if (cmp == 1) {\n return 42;\n } else {\n return 0;\n }\n }\n };\n this.comparePoint = function(p) {\n return this.compare(p.row, p.column);\n };\n this.containsRange = function(range) {\n return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n };\n this.intersects = function(range) {\n var cmp = this.compareRange(range);\n return (cmp == -1 || cmp == 0 || cmp == 1);\n };\n this.isEnd = function(row, column) {\n return this.end.row == row && this.end.column == column;\n };\n this.isStart = function(row, column) {\n return this.start.row == row && this.start.column == column;\n };\n this.setStart = function(row, column) {\n if (typeof row == \"object\") {\n this.start.column = row.column;\n this.start.row = row.row;\n } else {\n this.start.row = row;\n this.start.column = column;\n }\n };\n this.setEnd = function(row, column) {\n if (typeof row == \"object\") {\n this.end.column = row.column;\n this.end.row = row.row;\n } else {\n this.end.row = row;\n this.end.column = column;\n }\n };\n this.inside = function(row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column) || this.isStart(row, column)) {\n return false;\n } else {\n return true;\n }\n }\n return false;\n };\n this.insideStart = function(row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column)) {\n return false;\n } else {\n return true;\n }\n }\n return false;\n };\n this.insideEnd = function(row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isStart(row, column)) {\n return false;\n } else {\n return true;\n }\n }\n return false;\n };\n this.compare = function(row, column) {\n if (!this.isMultiLine()) {\n if (row === this.start.row) {\n return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n }\n }\n\n if (row < this.start.row)\n return -1;\n\n if (row > this.end.row)\n return 1;\n\n if (this.start.row === row)\n return column >= this.start.column ? 0 : -1;\n\n if (this.end.row === row)\n return column <= this.end.column ? 0 : 1;\n\n return 0;\n };\n this.compareStart = function(row, column) {\n if (this.start.row == row && this.start.column == column) {\n return -1;\n } else {\n return this.compare(row, column);\n }\n };\n this.compareEnd = function(row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n } else {\n return this.compare(row, column);\n }\n };\n this.compareInside = function(row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n } else if (this.start.row == row && this.start.column == column) {\n return -1;\n } else {\n return this.compare(row, column);\n }\n };\n this.clipRows = function(firstRow, lastRow) {\n if (this.end.row > lastRow)\n var end = {row: lastRow + 1, column: 0};\n else if (this.end.row < firstRow)\n var end = {row: firstRow, column: 0};\n\n if (this.start.row > lastRow)\n var start = {row: lastRow + 1, column: 0};\n else if (this.start.row < firstRow)\n var start = {row: firstRow, column: 0};\n\n return Range.fromPoints(start || this.start, end || this.end);\n };\n this.extend = function(row, column) {\n var cmp = this.compare(row, column);\n\n if (cmp == 0)\n return this;\n else if (cmp == -1)\n var start = {row: row, column: column};\n else\n var end = {row: row, column: column};\n\n return Range.fromPoints(start || this.start, end || this.end);\n };\n\n this.isEmpty = function() {\n return (this.start.row === this.end.row && this.start.column === this.end.column);\n };\n this.isMultiLine = function() {\n return (this.start.row !== this.end.row);\n };\n this.clone = function() {\n return Range.fromPoints(this.start, this.end);\n };\n this.collapseRows = function() {\n if (this.end.column == 0)\n return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0);\n else\n return new Range(this.start.row, 0, this.end.row, 0);\n };\n this.toScreenRange = function(session) {\n var screenPosStart = session.documentToScreenPosition(this.start);\n var screenPosEnd = session.documentToScreenPosition(this.end);\n\n return new Range(\n screenPosStart.row, screenPosStart.column,\n screenPosEnd.row, screenPosEnd.column\n );\n };\n this.moveBy = function(row, column) {\n this.start.row += row;\n this.start.column += column;\n this.end.row += row;\n this.end.column += column;\n };\n\n}).call(Range.prototype);\nRange.fromPoints = function(start, end) {\n return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = comparePoints;\n\nRange.comparePoints = function(p1, p2) {\n return p1.row - p2.row || p1.column - p2.column;\n};\n\n\nexports.Range = Range;\n});\n\nace.define(\"ace/selection\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar lang = acequire(\"./lib/lang\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar Range = acequire(\"./range\").Range;\nvar Selection = function(session) {\n this.session = session;\n this.doc = session.getDocument();\n\n this.clearSelection();\n this.lead = this.selectionLead = this.doc.createAnchor(0, 0);\n this.anchor = this.selectionAnchor = this.doc.createAnchor(0, 0);\n\n var self = this;\n this.lead.on(\"change\", function(e) {\n self._emit(\"changeCursor\");\n if (!self.$isEmpty)\n self._emit(\"changeSelection\");\n if (!self.$keepDesiredColumnOnChange && e.old.column != e.value.column)\n self.$desiredColumn = null;\n });\n\n this.selectionAnchor.on(\"change\", function() {\n if (!self.$isEmpty)\n self._emit(\"changeSelection\");\n });\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.isEmpty = function() {\n return (this.$isEmpty || (\n this.anchor.row == this.lead.row &&\n this.anchor.column == this.lead.column\n ));\n };\n this.isMultiLine = function() {\n if (this.isEmpty()) {\n return false;\n }\n\n return this.getRange().isMultiLine();\n };\n this.getCursor = function() {\n return this.lead.getPosition();\n };\n this.setSelectionAnchor = function(row, column) {\n this.anchor.setPosition(row, column);\n\n if (this.$isEmpty) {\n this.$isEmpty = false;\n this._emit(\"changeSelection\");\n }\n };\n this.getSelectionAnchor = function() {\n if (this.$isEmpty)\n return this.getSelectionLead();\n else\n return this.anchor.getPosition();\n };\n this.getSelectionLead = function() {\n return this.lead.getPosition();\n };\n this.shiftSelection = function(columns) {\n if (this.$isEmpty) {\n this.moveCursorTo(this.lead.row, this.lead.column + columns);\n return;\n }\n\n var anchor = this.getSelectionAnchor();\n var lead = this.getSelectionLead();\n\n var isBackwards = this.isBackwards();\n\n if (!isBackwards || anchor.column !== 0)\n this.setSelectionAnchor(anchor.row, anchor.column + columns);\n\n if (isBackwards || lead.column !== 0) {\n this.$moveSelection(function() {\n this.moveCursorTo(lead.row, lead.column + columns);\n });\n }\n };\n this.isBackwards = function() {\n var anchor = this.anchor;\n var lead = this.lead;\n return (anchor.row > lead.row || (anchor.row == lead.row && anchor.column > lead.column));\n };\n this.getRange = function() {\n var anchor = this.anchor;\n var lead = this.lead;\n\n if (this.isEmpty())\n return Range.fromPoints(lead, lead);\n\n if (this.isBackwards()) {\n return Range.fromPoints(lead, anchor);\n }\n else {\n return Range.fromPoints(anchor, lead);\n }\n };\n this.clearSelection = function() {\n if (!this.$isEmpty) {\n this.$isEmpty = true;\n this._emit(\"changeSelection\");\n }\n };\n this.selectAll = function() {\n var lastRow = this.doc.getLength() - 1;\n this.setSelectionAnchor(0, 0);\n this.moveCursorTo(lastRow, this.doc.getLine(lastRow).length);\n };\n this.setRange =\n this.setSelectionRange = function(range, reverse) {\n if (reverse) {\n this.setSelectionAnchor(range.end.row, range.end.column);\n this.selectTo(range.start.row, range.start.column);\n } else {\n this.setSelectionAnchor(range.start.row, range.start.column);\n this.selectTo(range.end.row, range.end.column);\n }\n if (this.getRange().isEmpty())\n this.$isEmpty = true;\n this.$desiredColumn = null;\n };\n\n this.$moveSelection = function(mover) {\n var lead = this.lead;\n if (this.$isEmpty)\n this.setSelectionAnchor(lead.row, lead.column);\n\n mover.call(this);\n };\n this.selectTo = function(row, column) {\n this.$moveSelection(function() {\n this.moveCursorTo(row, column);\n });\n };\n this.selectToPosition = function(pos) {\n this.$moveSelection(function() {\n this.moveCursorToPosition(pos);\n });\n };\n this.moveTo = function(row, column) {\n this.clearSelection();\n this.moveCursorTo(row, column);\n };\n this.moveToPosition = function(pos) {\n this.clearSelection();\n this.moveCursorToPosition(pos);\n };\n this.selectUp = function() {\n this.$moveSelection(this.moveCursorUp);\n };\n this.selectDown = function() {\n this.$moveSelection(this.moveCursorDown);\n };\n this.selectRight = function() {\n this.$moveSelection(this.moveCursorRight);\n };\n this.selectLeft = function() {\n this.$moveSelection(this.moveCursorLeft);\n };\n this.selectLineStart = function() {\n this.$moveSelection(this.moveCursorLineStart);\n };\n this.selectLineEnd = function() {\n this.$moveSelection(this.moveCursorLineEnd);\n };\n this.selectFileEnd = function() {\n this.$moveSelection(this.moveCursorFileEnd);\n };\n this.selectFileStart = function() {\n this.$moveSelection(this.moveCursorFileStart);\n };\n this.selectWordRight = function() {\n this.$moveSelection(this.moveCursorWordRight);\n };\n this.selectWordLeft = function() {\n this.$moveSelection(this.moveCursorWordLeft);\n };\n this.getWordRange = function(row, column) {\n if (typeof column == \"undefined\") {\n var cursor = row || this.lead;\n row = cursor.row;\n column = cursor.column;\n }\n return this.session.getWordRange(row, column);\n };\n this.selectWord = function() {\n this.setSelectionRange(this.getWordRange());\n };\n this.selectAWord = function() {\n var cursor = this.getCursor();\n var range = this.session.getAWordRange(cursor.row, cursor.column);\n this.setSelectionRange(range);\n };\n\n this.getLineRange = function(row, excludeLastChar) {\n var rowStart = typeof row == \"number\" ? row : this.lead.row;\n var rowEnd;\n\n var foldLine = this.session.getFoldLine(rowStart);\n if (foldLine) {\n rowStart = foldLine.start.row;\n rowEnd = foldLine.end.row;\n } else {\n rowEnd = rowStart;\n }\n if (excludeLastChar === true)\n return new Range(rowStart, 0, rowEnd, this.session.getLine(rowEnd).length);\n else\n return new Range(rowStart, 0, rowEnd + 1, 0);\n };\n this.selectLine = function() {\n this.setSelectionRange(this.getLineRange());\n };\n this.moveCursorUp = function() {\n this.moveCursorBy(-1, 0);\n };\n this.moveCursorDown = function() {\n this.moveCursorBy(1, 0);\n };\n this.wouldMoveIntoSoftTab = function(cursor, tabSize, direction) {\n var start = cursor.column;\n var end = cursor.column + tabSize;\n\n if (direction < 0) {\n start = cursor.column - tabSize;\n end = cursor.column;\n }\n return this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(start, end).split(\" \").length-1 == tabSize;\n };\n this.moveCursorLeft = function() {\n var cursor = this.lead.getPosition(),\n fold;\n\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n } else if (cursor.column === 0) {\n if (cursor.row > 0) {\n this.moveCursorTo(cursor.row - 1, this.doc.getLine(cursor.row - 1).length);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, -1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, -tabSize);\n } else {\n this.moveCursorBy(0, -1);\n }\n }\n };\n this.moveCursorRight = function() {\n var cursor = this.lead.getPosition(),\n fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, 1)) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n }\n else if (this.lead.column == this.doc.getLine(this.lead.row).length) {\n if (this.lead.row < this.doc.getLength() - 1) {\n this.moveCursorTo(this.lead.row + 1, 0);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n var cursor = this.lead;\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, 1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, tabSize);\n } else {\n this.moveCursorBy(0, 1);\n }\n }\n };\n this.moveCursorLineStart = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var screenRow = this.session.documentToScreenRow(row, column);\n var firstColumnPosition = this.session.screenToDocumentPosition(screenRow, 0);\n var beforeCursor = this.session.getDisplayLine(\n row, null, firstColumnPosition.row,\n firstColumnPosition.column\n );\n\n var leadingSpace = beforeCursor.match(/^\\s*/);\n if (leadingSpace[0].length != column && !this.session.$useEmacsStyleLineStart)\n firstColumnPosition.column += leadingSpace[0].length;\n this.moveCursorToPosition(firstColumnPosition);\n };\n this.moveCursorLineEnd = function() {\n var lead = this.lead;\n var lineEnd = this.session.getDocumentLastRowColumnPosition(lead.row, lead.column);\n if (this.lead.column == lineEnd.column) {\n var line = this.session.getLine(lineEnd.row);\n if (lineEnd.column == line.length) {\n var textEnd = line.search(/\\s+$/);\n if (textEnd > 0)\n lineEnd.column = textEnd;\n }\n }\n\n this.moveCursorTo(lineEnd.row, lineEnd.column);\n };\n this.moveCursorFileEnd = function() {\n var row = this.doc.getLength() - 1;\n var column = this.doc.getLine(row).length;\n this.moveCursorTo(row, column);\n };\n this.moveCursorFileStart = function() {\n this.moveCursorTo(0, 0);\n };\n this.moveCursorLongWordRight = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n\n var match;\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n return;\n }\n if (match = this.session.nonTokenRe.exec(rightOfCursor)) {\n column += this.session.nonTokenRe.lastIndex;\n this.session.nonTokenRe.lastIndex = 0;\n rightOfCursor = line.substring(column);\n }\n if (column >= line.length) {\n this.moveCursorTo(row, line.length);\n this.moveCursorRight();\n if (row < this.doc.getLength() - 1)\n this.moveCursorWordRight();\n return;\n }\n if (match = this.session.tokenRe.exec(rightOfCursor)) {\n column += this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n\n this.moveCursorTo(row, column);\n };\n this.moveCursorLongWordLeft = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n return;\n }\n\n var str = this.session.getFoldStringAt(row, column, -1);\n if (str == null) {\n str = this.doc.getLine(row).substring(0, column);\n }\n\n var leftOfCursor = lang.stringReverse(str);\n var match;\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n if (match = this.session.nonTokenRe.exec(leftOfCursor)) {\n column -= this.session.nonTokenRe.lastIndex;\n leftOfCursor = leftOfCursor.slice(this.session.nonTokenRe.lastIndex);\n this.session.nonTokenRe.lastIndex = 0;\n }\n if (column <= 0) {\n this.moveCursorTo(row, 0);\n this.moveCursorLeft();\n if (row > 0)\n this.moveCursorWordLeft();\n return;\n }\n if (match = this.session.tokenRe.exec(leftOfCursor)) {\n column -= this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n\n this.moveCursorTo(row, column);\n };\n\n this.$shortWordEndIndex = function(rightOfCursor) {\n var match, index = 0, ch;\n var whitespaceRe = /\\s/;\n var tokenRe = this.session.tokenRe;\n\n tokenRe.lastIndex = 0;\n if (match = this.session.tokenRe.exec(rightOfCursor)) {\n index = this.session.tokenRe.lastIndex;\n } else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index ++;\n\n if (index < 1) {\n tokenRe.lastIndex = 0;\n while ((ch = rightOfCursor[index]) && !tokenRe.test(ch)) {\n tokenRe.lastIndex = 0;\n index ++;\n if (whitespaceRe.test(ch)) {\n if (index > 2) {\n index--;\n break;\n } else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index ++;\n if (index > 2)\n break;\n }\n }\n }\n }\n }\n tokenRe.lastIndex = 0;\n\n return index;\n };\n\n this.moveCursorShortWordRight = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold)\n return this.moveCursorTo(fold.end.row, fold.end.column);\n\n if (column == line.length) {\n var l = this.doc.getLength();\n do {\n row++;\n rightOfCursor = this.doc.getLine(row);\n } while (row < l && /^\\s*$/.test(rightOfCursor));\n\n if (!/^\\s+/.test(rightOfCursor))\n rightOfCursor = \"\";\n column = 0;\n }\n\n var index = this.$shortWordEndIndex(rightOfCursor);\n\n this.moveCursorTo(row, column + index);\n };\n\n this.moveCursorShortWordLeft = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1))\n return this.moveCursorTo(fold.start.row, fold.start.column);\n\n var line = this.session.getLine(row).substring(0, column);\n if (column === 0) {\n do {\n row--;\n line = this.doc.getLine(row);\n } while (row > 0 && /^\\s*$/.test(line));\n\n column = line.length;\n if (!/\\s+$/.test(line))\n line = \"\";\n }\n\n var leftOfCursor = lang.stringReverse(line);\n var index = this.$shortWordEndIndex(leftOfCursor);\n\n return this.moveCursorTo(row, column - index);\n };\n\n this.moveCursorWordRight = function() {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordRight();\n else\n this.moveCursorShortWordRight();\n };\n\n this.moveCursorWordLeft = function() {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordLeft();\n else\n this.moveCursorShortWordLeft();\n };\n this.moveCursorBy = function(rows, chars) {\n var screenPos = this.session.documentToScreenPosition(\n this.lead.row,\n this.lead.column\n );\n\n var offsetX;\n\n if (chars === 0) {\n if (rows !== 0) {\n if (this.session.$bidiHandler.isBidiRow(screenPos.row, this.lead.row)) {\n offsetX = this.session.$bidiHandler.getPosLeft(screenPos.column);\n screenPos.column = Math.round(offsetX / this.session.$bidiHandler.charWidths[0]);\n } else {\n offsetX = screenPos.column * this.session.$bidiHandler.charWidths[0];\n }\n }\n\n if (this.$desiredColumn)\n screenPos.column = this.$desiredColumn;\n else\n this.$desiredColumn = screenPos.column;\n }\n\n var docPos = this.session.screenToDocumentPosition(screenPos.row + rows, screenPos.column, offsetX);\n \n if (rows !== 0 && chars === 0 && docPos.row === this.lead.row && docPos.column === this.lead.column) {\n if (this.session.lineWidgets && this.session.lineWidgets[docPos.row]) {\n if (docPos.row > 0 || rows > 0)\n docPos.row++;\n }\n }\n this.moveCursorTo(docPos.row, docPos.column + chars, chars === 0);\n };\n this.moveCursorToPosition = function(position) {\n this.moveCursorTo(position.row, position.column);\n };\n this.moveCursorTo = function(row, column, keepDesiredColumn) {\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n row = fold.start.row;\n column = fold.start.column;\n }\n\n this.$keepDesiredColumnOnChange = true;\n var line = this.session.getLine(row);\n if (/[\\uDC00-\\uDFFF]/.test(line.charAt(column)) && line.charAt(column - 1)) {\n if (this.lead.row == row && this.lead.column == column + 1)\n column = column - 1;\n else\n column = column + 1;\n }\n this.lead.setPosition(row, column);\n this.$keepDesiredColumnOnChange = false;\n\n if (!keepDesiredColumn)\n this.$desiredColumn = null;\n };\n this.moveCursorToScreen = function(row, column, keepDesiredColumn) {\n var pos = this.session.screenToDocumentPosition(row, column);\n this.moveCursorTo(pos.row, pos.column, keepDesiredColumn);\n };\n this.detach = function() {\n this.lead.detach();\n this.anchor.detach();\n this.session = this.doc = null;\n };\n\n this.fromOrientedRange = function(range) {\n this.setSelectionRange(range, range.cursor == range.start);\n this.$desiredColumn = range.desiredColumn || this.$desiredColumn;\n };\n\n this.toOrientedRange = function(range) {\n var r = this.getRange();\n if (range) {\n range.start.column = r.start.column;\n range.start.row = r.start.row;\n range.end.column = r.end.column;\n range.end.row = r.end.row;\n } else {\n range = r;\n }\n\n range.cursor = this.isBackwards() ? range.start : range.end;\n range.desiredColumn = this.$desiredColumn;\n return range;\n };\n this.getRangeOfMovements = function(func) {\n var start = this.getCursor();\n try {\n func(this);\n var end = this.getCursor();\n return Range.fromPoints(start,end);\n } catch(e) {\n return Range.fromPoints(start,start);\n } finally {\n this.moveCursorToPosition(start);\n }\n };\n\n this.toJSON = function() {\n if (this.rangeCount) {\n var data = this.ranges.map(function(r) {\n var r1 = r.clone();\n r1.isBackwards = r.cursor == r.start;\n return r1;\n });\n } else {\n var data = this.getRange();\n data.isBackwards = this.isBackwards();\n }\n return data;\n };\n\n this.fromJSON = function(data) {\n if (data.start == undefined) {\n if (this.rangeList) {\n this.toSingleRange(data[0]);\n for (var i = data.length; i--; ) {\n var r = Range.fromPoints(data[i].start, data[i].end);\n if (data[i].isBackwards)\n r.cursor = r.start;\n this.addRange(r, true);\n }\n return;\n } else\n data = data[0];\n }\n if (this.rangeList)\n this.toSingleRange(data);\n this.setSelectionRange(data, data.isBackwards);\n };\n\n this.isEqual = function(data) {\n if ((data.length || this.rangeCount) && data.length != this.rangeCount)\n return false;\n if (!data.length || !this.ranges)\n return this.getRange().isEqual(data);\n\n for (var i = this.ranges.length; i--; ) {\n if (!this.ranges[i].isEqual(data[i]))\n return false;\n }\n return true;\n };\n\n}).call(Selection.prototype);\n\nexports.Selection = Selection;\n});\n\nace.define(\"ace/tokenizer\",[\"require\",\"exports\",\"module\",\"ace/config\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar config = acequire(\"./config\");\nvar MAX_TOKEN_COUNT = 2000;\nvar Tokenizer = function(rules) {\n this.states = rules;\n\n this.regExps = {};\n this.matchMappings = {};\n for (var key in this.states) {\n var state = this.states[key];\n var ruleRegExps = [];\n var matchTotal = 0;\n var mapping = this.matchMappings[key] = {defaultToken: \"text\"};\n var flag = \"g\";\n\n var splitterRurles = [];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.defaultToken)\n mapping.defaultToken = rule.defaultToken;\n if (rule.caseInsensitive)\n flag = \"gi\";\n if (rule.regex == null)\n continue;\n\n if (rule.regex instanceof RegExp)\n rule.regex = rule.regex.toString().slice(1, -1);\n var adjustedregex = rule.regex;\n var matchcount = new RegExp(\"(?:(\" + adjustedregex + \")|(.))\").exec(\"a\").length - 2;\n if (Array.isArray(rule.token)) {\n if (rule.token.length == 1 || matchcount == 1) {\n rule.token = rule.token[0];\n } else if (matchcount - 1 != rule.token.length) {\n this.reportError(\"number of classes and regexp groups doesn't match\", { \n rule: rule,\n groupCount: matchcount - 1\n });\n rule.token = rule.token[0];\n } else {\n rule.tokenArray = rule.token;\n rule.token = null;\n rule.onMatch = this.$arrayTokens;\n }\n } else if (typeof rule.token == \"function\" && !rule.onMatch) {\n if (matchcount > 1)\n rule.onMatch = this.$applyToken;\n else\n rule.onMatch = rule.token;\n }\n\n if (matchcount > 1) {\n if (/\\\\\\d/.test(rule.regex)) {\n adjustedregex = rule.regex.replace(/\\\\([0-9]+)/g, function(match, digit) {\n return \"\\\\\" + (parseInt(digit, 10) + matchTotal + 1);\n });\n } else {\n matchcount = 1;\n adjustedregex = this.removeCapturingGroups(rule.regex);\n }\n if (!rule.splitRegex && typeof rule.token != \"string\")\n splitterRurles.push(rule); // flag will be known only at the very end\n }\n\n mapping[matchTotal] = i;\n matchTotal += matchcount;\n\n ruleRegExps.push(adjustedregex);\n if (!rule.onMatch)\n rule.onMatch = null;\n }\n \n if (!ruleRegExps.length) {\n mapping[0] = 0;\n ruleRegExps.push(\"$\");\n }\n \n splitterRurles.forEach(function(rule) {\n rule.splitRegex = this.createSplitterRegexp(rule.regex, flag);\n }, this);\n\n this.regExps[key] = new RegExp(\"(\" + ruleRegExps.join(\")|(\") + \")|($)\", flag);\n }\n};\n\n(function() {\n this.$setMaxTokenCount = function(m) {\n MAX_TOKEN_COUNT = m | 0;\n };\n \n this.$applyToken = function(str) {\n var values = this.splitRegex.exec(str).slice(1);\n var types = this.token.apply(this, values);\n if (typeof types === \"string\")\n return [{type: types, value: str}];\n\n var tokens = [];\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i]\n };\n }\n return tokens;\n };\n\n this.$arrayTokens = function(str) {\n if (!str)\n return [];\n var values = this.splitRegex.exec(str);\n if (!values)\n return \"text\";\n var tokens = [];\n var types = this.tokenArray;\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i + 1])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i + 1]\n };\n }\n return tokens;\n };\n\n this.removeCapturingGroups = function(src) {\n var r = src.replace(\n /\\[(?:\\\\.|[^\\]])*?\\]|\\\\.|\\(\\?[:=!]|(\\()/g,\n function(x, y) {return y ? \"(?:\" : x;}\n );\n return r;\n };\n\n this.createSplitterRegexp = function(src, flag) {\n if (src.indexOf(\"(?=\") != -1) {\n var stack = 0;\n var inChClass = false;\n var lastCapture = {};\n src.replace(/(\\\\.)|(\\((?:\\?[=!])?)|(\\))|([\\[\\]])/g, function(\n m, esc, parenOpen, parenClose, square, index\n ) {\n if (inChClass) {\n inChClass = square != \"]\";\n } else if (square) {\n inChClass = true;\n } else if (parenClose) {\n if (stack == lastCapture.stack) {\n lastCapture.end = index+1;\n lastCapture.stack = -1;\n }\n stack--;\n } else if (parenOpen) {\n stack++;\n if (parenOpen.length != 1) {\n lastCapture.stack = stack;\n lastCapture.start = index;\n }\n }\n return m;\n });\n\n if (lastCapture.end != null && /^\\)*$/.test(src.substr(lastCapture.end)))\n src = src.substring(0, lastCapture.start) + src.substr(lastCapture.end);\n }\n if (src.charAt(0) != \"^\") src = \"^\" + src;\n if (src.charAt(src.length - 1) != \"$\") src += \"$\";\n \n return new RegExp(src, (flag||\"\").replace(\"g\", \"\"));\n };\n this.getLineTokens = function(line, startState) {\n if (startState && typeof startState != \"string\") {\n var stack = startState.slice(0);\n startState = stack[0];\n if (startState === \"#tmp\") {\n stack.shift();\n startState = stack.shift();\n }\n } else\n var stack = [];\n\n var currentState = startState || \"start\";\n var state = this.states[currentState];\n if (!state) {\n currentState = \"start\";\n state = this.states[currentState];\n }\n var mapping = this.matchMappings[currentState];\n var re = this.regExps[currentState];\n re.lastIndex = 0;\n\n var match, tokens = [];\n var lastIndex = 0;\n var matchAttempts = 0;\n\n var token = {type: null, value: \"\"};\n\n while (match = re.exec(line)) {\n var type = mapping.defaultToken;\n var rule = null;\n var value = match[0];\n var index = re.lastIndex;\n\n if (index - value.length > lastIndex) {\n var skipped = line.substring(lastIndex, index - value.length);\n if (token.type == type) {\n token.value += skipped;\n } else {\n if (token.type)\n tokens.push(token);\n token = {type: type, value: skipped};\n }\n }\n\n for (var i = 0; i < match.length-2; i++) {\n if (match[i + 1] === undefined)\n continue;\n\n rule = state[mapping[i]];\n\n if (rule.onMatch)\n type = rule.onMatch(value, currentState, stack, line);\n else\n type = rule.token;\n\n if (rule.next) {\n if (typeof rule.next == \"string\") {\n currentState = rule.next;\n } else {\n currentState = rule.next(currentState, stack);\n }\n \n state = this.states[currentState];\n if (!state) {\n this.reportError(\"state doesn't exist\", currentState);\n currentState = \"start\";\n state = this.states[currentState];\n }\n mapping = this.matchMappings[currentState];\n lastIndex = index;\n re = this.regExps[currentState];\n re.lastIndex = index;\n }\n if (rule.consumeLineEnd)\n lastIndex = index;\n break;\n }\n\n if (value) {\n if (typeof type === \"string\") {\n if ((!rule || rule.merge !== false) && token.type === type) {\n token.value += value;\n } else {\n if (token.type)\n tokens.push(token);\n token = {type: type, value: value};\n }\n } else if (type) {\n if (token.type)\n tokens.push(token);\n token = {type: null, value: \"\"};\n for (var i = 0; i < type.length; i++)\n tokens.push(type[i]);\n }\n }\n\n if (lastIndex == line.length)\n break;\n\n lastIndex = index;\n\n if (matchAttempts++ > MAX_TOKEN_COUNT) {\n if (matchAttempts > 2 * line.length) {\n this.reportError(\"infinite loop with in ace tokenizer\", {\n startState: startState,\n line: line\n });\n }\n while (lastIndex < line.length) {\n if (token.type)\n tokens.push(token);\n token = {\n value: line.substring(lastIndex, lastIndex += 2000),\n type: \"overflow\"\n };\n }\n currentState = \"start\";\n stack = [];\n break;\n }\n }\n\n if (token.type)\n tokens.push(token);\n \n if (stack.length > 1) {\n if (stack[0] !== currentState)\n stack.unshift(\"#tmp\", currentState);\n }\n return {\n tokens : tokens,\n state : stack.length ? stack : currentState\n };\n };\n \n this.reportError = config.reportError;\n \n}).call(Tokenizer.prototype);\n\nexports.Tokenizer = Tokenizer;\n});\n\nace.define(\"ace/mode/text_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"../lib/lang\");\n\nvar TextHighlightRules = function() {\n\n this.$rules = {\n \"start\" : [{\n token : \"empty_line\",\n regex : '^$'\n }, {\n defaultToken : \"text\"\n }]\n };\n};\n\n(function() {\n\n this.addRules = function(rules, prefix) {\n if (!prefix) {\n for (var key in rules)\n this.$rules[key] = rules[key];\n return;\n }\n for (var key in rules) {\n var state = rules[key];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.next || rule.onMatch) {\n if (typeof rule.next == \"string\") {\n if (rule.next.indexOf(prefix) !== 0)\n rule.next = prefix + rule.next;\n }\n if (rule.nextState && rule.nextState.indexOf(prefix) !== 0)\n rule.nextState = prefix + rule.nextState;\n }\n }\n this.$rules[prefix + key] = state;\n }\n };\n\n this.getRules = function() {\n return this.$rules;\n };\n\n this.embedRules = function (HighlightRules, prefix, escapeRules, states, append) {\n var embedRules = typeof HighlightRules == \"function\"\n ? new HighlightRules().getRules()\n : HighlightRules;\n if (states) {\n for (var i = 0; i < states.length; i++)\n states[i] = prefix + states[i];\n } else {\n states = [];\n for (var key in embedRules)\n states.push(prefix + key);\n }\n\n this.addRules(embedRules, prefix);\n\n if (escapeRules) {\n var addRules = Array.prototype[append ? \"push\" : \"unshift\"];\n for (var i = 0; i < states.length; i++)\n addRules.apply(this.$rules[states[i]], lang.deepCopy(escapeRules));\n }\n\n if (!this.$embeds)\n this.$embeds = [];\n this.$embeds.push(prefix);\n };\n\n this.getEmbeds = function() {\n return this.$embeds;\n };\n\n var pushState = function(currentState, stack) {\n if (currentState != \"start\" || stack.length)\n stack.unshift(this.nextState, currentState);\n return this.nextState;\n };\n var popState = function(currentState, stack) {\n stack.shift();\n return stack.shift() || \"start\";\n };\n\n this.normalizeRules = function() {\n var id = 0;\n var rules = this.$rules;\n function processState(key) {\n var state = rules[key];\n state.processed = true;\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n var toInsert = null;\n if (Array.isArray(rule)) {\n toInsert = rule;\n rule = {};\n }\n if (!rule.regex && rule.start) {\n rule.regex = rule.start;\n if (!rule.next)\n rule.next = [];\n rule.next.push({\n defaultToken: rule.token\n }, {\n token: rule.token + \".end\",\n regex: rule.end || rule.start,\n next: \"pop\"\n });\n rule.token = rule.token + \".start\";\n rule.push = true;\n }\n var next = rule.next || rule.push;\n if (next && Array.isArray(next)) {\n var stateName = rule.stateName;\n if (!stateName) {\n stateName = rule.token;\n if (typeof stateName != \"string\")\n stateName = stateName[0] || \"\";\n if (rules[stateName])\n stateName += id++;\n }\n rules[stateName] = next;\n rule.next = stateName;\n processState(stateName);\n } else if (next == \"pop\") {\n rule.next = popState;\n }\n\n if (rule.push) {\n rule.nextState = rule.next || rule.push;\n rule.next = pushState;\n delete rule.push;\n }\n\n if (rule.rules) {\n for (var r in rule.rules) {\n if (rules[r]) {\n if (rules[r].push)\n rules[r].push.apply(rules[r], rule.rules[r]);\n } else {\n rules[r] = rule.rules[r];\n }\n }\n }\n var includeName = typeof rule == \"string\" ? rule : rule.include;\n if (includeName) {\n if (Array.isArray(includeName))\n toInsert = includeName.map(function(x) { return rules[x]; });\n else\n toInsert = rules[includeName];\n }\n\n if (toInsert) {\n var args = [i, 1].concat(toInsert);\n if (rule.noEscape)\n args = args.filter(function(x) {return !x.next;});\n state.splice.apply(state, args);\n i--;\n }\n \n if (rule.keywordMap) {\n rule.token = this.createKeywordMapper(\n rule.keywordMap, rule.defaultToken || \"text\", rule.caseInsensitive\n );\n delete rule.defaultToken;\n }\n }\n }\n Object.keys(rules).forEach(processState, this);\n };\n\n this.createKeywordMapper = function(map, defaultToken, ignoreCase, splitChar) {\n var keywords = Object.create(null);\n Object.keys(map).forEach(function(className) {\n var a = map[className];\n if (ignoreCase)\n a = a.toLowerCase();\n var list = a.split(splitChar || \"|\");\n for (var i = list.length; i--; )\n keywords[list[i]] = className;\n });\n if (Object.getPrototypeOf(keywords)) {\n keywords.__proto__ = null;\n }\n this.$keywordList = Object.keys(keywords);\n map = null;\n return ignoreCase\n ? function(value) {return keywords[value.toLowerCase()] || defaultToken; }\n : function(value) {return keywords[value] || defaultToken; };\n };\n\n this.getKeywords = function() {\n return this.$keywords;\n };\n\n}).call(TextHighlightRules.prototype);\n\nexports.TextHighlightRules = TextHighlightRules;\n});\n\nace.define(\"ace/mode/behaviour\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Behaviour = function() {\n this.$behaviours = {};\n};\n\n(function () {\n\n this.add = function (name, action, callback) {\n switch (undefined) {\n case this.$behaviours:\n this.$behaviours = {};\n case this.$behaviours[name]:\n this.$behaviours[name] = {};\n }\n this.$behaviours[name][action] = callback;\n };\n \n this.addBehaviours = function (behaviours) {\n for (var key in behaviours) {\n for (var action in behaviours[key]) {\n this.add(key, action, behaviours[key][action]);\n }\n }\n };\n \n this.remove = function (name) {\n if (this.$behaviours && this.$behaviours[name]) {\n delete this.$behaviours[name];\n }\n };\n \n this.inherit = function (mode, filter) {\n if (typeof mode === \"function\") {\n var behaviours = new mode().getBehaviours(filter);\n } else {\n var behaviours = mode.getBehaviours(filter);\n }\n this.addBehaviours(behaviours);\n };\n \n this.getBehaviours = function (filter) {\n if (!filter) {\n return this.$behaviours;\n } else {\n var ret = {};\n for (var i = 0; i < filter.length; i++) {\n if (this.$behaviours[filter[i]]) {\n ret[filter[i]] = this.$behaviours[filter[i]];\n }\n }\n return ret;\n }\n };\n\n}).call(Behaviour.prototype);\n\nexports.Behaviour = Behaviour;\n});\n\nace.define(\"ace/token_iterator\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"./range\").Range;\nvar TokenIterator = function(session, initialRow, initialColumn) {\n this.$session = session;\n this.$row = initialRow;\n this.$rowTokens = session.getTokens(initialRow);\n\n var token = session.getTokenAt(initialRow, initialColumn);\n this.$tokenIndex = token ? token.index : -1;\n};\n\n(function() { \n this.stepBackward = function() {\n this.$tokenIndex -= 1;\n \n while (this.$tokenIndex < 0) {\n this.$row -= 1;\n if (this.$row < 0) {\n this.$row = 0;\n return null;\n }\n \n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = this.$rowTokens.length - 1;\n }\n \n return this.$rowTokens[this.$tokenIndex];\n }; \n this.stepForward = function() {\n this.$tokenIndex += 1;\n var rowCount;\n while (this.$tokenIndex >= this.$rowTokens.length) {\n this.$row += 1;\n if (!rowCount)\n rowCount = this.$session.getLength();\n if (this.$row >= rowCount) {\n this.$row = rowCount - 1;\n return null;\n }\n\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = 0;\n }\n \n return this.$rowTokens[this.$tokenIndex];\n }; \n this.getCurrentToken = function () {\n return this.$rowTokens[this.$tokenIndex];\n }; \n this.getCurrentTokenRow = function () {\n return this.$row;\n }; \n this.getCurrentTokenColumn = function() {\n var rowTokens = this.$rowTokens;\n var tokenIndex = this.$tokenIndex;\n var column = rowTokens[tokenIndex].start;\n if (column !== undefined)\n return column;\n \n column = 0;\n while (tokenIndex > 0) {\n tokenIndex -= 1;\n column += rowTokens[tokenIndex].value.length;\n }\n \n return column; \n };\n this.getCurrentTokenPosition = function() {\n return {row: this.$row, column: this.getCurrentTokenColumn()};\n };\n this.getCurrentTokenRange = function() {\n var token = this.$rowTokens[this.$tokenIndex];\n var column = this.getCurrentTokenColumn();\n return new Range(this.$row, column, this.$row, column + token.value.length);\n };\n\n}).call(TokenIterator.prototype);\n\nexports.TokenIterator = TokenIterator;\n});\n\nace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Behaviour = acequire(\"../behaviour\").Behaviour;\nvar TokenIterator = acequire(\"../../token_iterator\").TokenIterator;\nvar lang = acequire(\"../../lib/lang\");\n\nvar SAFE_INSERT_IN_TOKENS =\n [\"text\", \"paren.rparen\", \"punctuation.operator\"];\nvar SAFE_INSERT_BEFORE_TOKENS =\n [\"text\", \"paren.rparen\", \"punctuation.operator\", \"comment\"];\n\nvar context;\nvar contextCache = {};\nvar defaultQuotes = {'\"' : '\"', \"'\" : \"'\"};\n\nvar initContext = function(editor) {\n var id = -1;\n if (editor.multiSelect) {\n id = editor.selection.index;\n if (contextCache.rangeCount != editor.multiSelect.rangeCount)\n contextCache = {rangeCount: editor.multiSelect.rangeCount};\n }\n if (contextCache[id])\n return context = contextCache[id];\n context = contextCache[id] = {\n autoInsertedBrackets: 0,\n autoInsertedRow: -1,\n autoInsertedLineEnd: \"\",\n maybeInsertedBrackets: 0,\n maybeInsertedRow: -1,\n maybeInsertedLineStart: \"\",\n maybeInsertedLineEnd: \"\"\n };\n};\n\nvar getWrapped = function(selection, selected, opening, closing) {\n var rowDiff = selection.end.row - selection.start.row;\n return {\n text: opening + selected + closing,\n selection: [\n 0,\n selection.start.column + 1,\n rowDiff,\n selection.end.column + (rowDiff ? 0 : 1)\n ]\n };\n};\n\nvar CstyleBehaviour = function(options) {\n this.add(\"braces\", \"insertion\", function(state, action, editor, session, text) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (text == '{') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"{\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '{', '}');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n if (/[\\]\\}\\)]/.test(line[cursor.column]) || editor.inMultiSelectMode || options && options.braces) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"}\");\n return {\n text: '{}',\n selection: [1, 1]\n };\n } else {\n CstyleBehaviour.recordMaybeInsert(editor, session, \"{\");\n return {\n text: '{',\n selection: [1, 1]\n };\n }\n }\n } else if (text == '}') {\n initContext(editor);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == '}') {\n var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n } else if (text == \"\\n\" || text == \"\\r\\n\") {\n initContext(editor);\n var closing = \"\";\n if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {\n closing = lang.stringRepeat(\"}\", context.maybeInsertedBrackets);\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === '}') {\n var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column+1}, '}');\n if (!openBracePos)\n return null;\n var next_indent = this.$getIndent(session.getLine(openBracePos.row));\n } else if (closing) {\n var next_indent = this.$getIndent(line);\n } else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n return;\n }\n var indent = next_indent + session.getTabString();\n\n return {\n text: '\\n' + indent + '\\n' + next_indent + closing,\n selection: [1, indent.length, 1, indent.length]\n };\n } else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n });\n\n this.add(\"braces\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '{') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar == '}') {\n range.end.column++;\n return range;\n } else {\n context.maybeInsertedBrackets--;\n }\n }\n });\n\n this.add(\"parens\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '(') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '(', ')');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \")\");\n return {\n text: '()',\n selection: [1, 1]\n };\n }\n } else if (text == ')') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ')') {\n var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n\n this.add(\"parens\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '(') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ')') {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"brackets\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '[') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '[', ']');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"]\");\n return {\n text: '[]',\n selection: [1, 1]\n };\n }\n } else if (text == ']') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ']') {\n var matching = session.$findOpeningBracket(']', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n\n this.add(\"brackets\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '[') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ']') {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"string_dquotes\", \"insertion\", function(state, action, editor, session, text) {\n var quotes = session.$mode.$quotes || defaultQuotes;\n if (text.length == 1 && quotes[text]) {\n if (this.lineCommentStart && this.lineCommentStart.indexOf(text) != -1)\n return;\n initContext(editor);\n var quote = text;\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && (selected.length != 1 || !quotes[selected]) && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, quote, quote);\n } else if (!selected) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var leftChar = line.substring(cursor.column-1, cursor.column);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n\n var token = session.getTokenAt(cursor.row, cursor.column);\n var rightToken = session.getTokenAt(cursor.row, cursor.column + 1);\n if (leftChar == \"\\\\\" && token && /escape/.test(token.type))\n return null;\n\n var stringBefore = token && /string|escape/.test(token.type);\n var stringAfter = !rightToken || /string|escape/.test(rightToken.type);\n\n var pair;\n if (rightChar == quote) {\n pair = stringBefore !== stringAfter;\n if (pair && /string\\.end/.test(rightToken.type))\n pair = false;\n } else {\n if (stringBefore && !stringAfter)\n return null; // wrap string with different quote\n if (stringBefore && stringAfter)\n return null; // do not pair quotes inside strings\n var wordRe = session.$mode.tokenRe;\n wordRe.lastIndex = 0;\n var isWordBefore = wordRe.test(leftChar);\n wordRe.lastIndex = 0;\n var isWordAfter = wordRe.test(leftChar);\n if (isWordBefore || isWordAfter)\n return null; // before or after alphanumeric\n if (rightChar && !/[\\s;,.})\\]\\\\]/.test(rightChar))\n return null; // there is rightChar and it isn't closing\n pair = true;\n }\n return {\n text: pair ? quote + quote : \"\",\n selection: [1,1]\n };\n }\n }\n });\n\n this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n\n};\n\n\nCstyleBehaviour.isSaneInsertion = function(editor, session) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n if (!this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS)) {\n var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);\n if (!this.$matchTokenType(iterator2.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS))\n return false;\n }\n iterator.stepForward();\n return iterator.getCurrentTokenRow() !== cursor.row ||\n this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_BEFORE_TOKENS);\n};\n\nCstyleBehaviour.$matchTokenType = function(token, types) {\n return types.indexOf(token.type || token) > -1;\n};\n\nCstyleBehaviour.recordAutoInsert = function(editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))\n context.autoInsertedBrackets = 0;\n context.autoInsertedRow = cursor.row;\n context.autoInsertedLineEnd = bracket + line.substr(cursor.column);\n context.autoInsertedBrackets++;\n};\n\nCstyleBehaviour.recordMaybeInsert = function(editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isMaybeInsertedClosing(cursor, line))\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = cursor.row;\n context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;\n context.maybeInsertedLineEnd = line.substr(cursor.column);\n context.maybeInsertedBrackets++;\n};\n\nCstyleBehaviour.isAutoInsertedClosing = function(cursor, line, bracket) {\n return context.autoInsertedBrackets > 0 &&\n cursor.row === context.autoInsertedRow &&\n bracket === context.autoInsertedLineEnd[0] &&\n line.substr(cursor.column) === context.autoInsertedLineEnd;\n};\n\nCstyleBehaviour.isMaybeInsertedClosing = function(cursor, line) {\n return context.maybeInsertedBrackets > 0 &&\n cursor.row === context.maybeInsertedRow &&\n line.substr(cursor.column) === context.maybeInsertedLineEnd &&\n line.substr(0, cursor.column) == context.maybeInsertedLineStart;\n};\n\nCstyleBehaviour.popAutoInsertedClosing = function() {\n context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);\n context.autoInsertedBrackets--;\n};\n\nCstyleBehaviour.clearMaybeInsertedClosing = function() {\n if (context) {\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = -1;\n }\n};\n\n\n\noop.inherits(CstyleBehaviour, Behaviour);\n\nexports.CstyleBehaviour = CstyleBehaviour;\n});\n\nace.define(\"ace/unicode\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nexports.packages = {};\n\naddUnicodePackage({\n L: \"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",\n Ll: \"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A\",\n Lu: \"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A\",\n Lt: \"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC\",\n Lm: \"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F\",\n Lo: \"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",\n M: \"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26\",\n Mn: \"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26\",\n Mc: \"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC\",\n Me: \"0488048906DE20DD-20E020E2-20E4A670-A672\",\n N: \"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",\n Nd: \"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",\n Nl: \"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF\",\n No: \"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835\",\n P: \"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65\",\n Pd: \"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D\",\n Ps: \"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62\",\n Pe: \"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63\",\n Pi: \"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20\",\n Pf: \"00BB2019201D203A2E032E052E0A2E0D2E1D2E21\",\n Pc: \"005F203F20402054FE33FE34FE4D-FE4FFF3F\",\n Po: \"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65\",\n S: \"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD\",\n Sm: \"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC\",\n Sc: \"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6\",\n Sk: \"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3\",\n So: \"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD\",\n Z: \"002000A01680180E2000-200A20282029202F205F3000\",\n Zs: \"002000A01680180E2000-200A202F205F3000\",\n Zl: \"2028\",\n Zp: \"2029\",\n C: \"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF\",\n Cc: \"0000-001F007F-009F\",\n Cf: \"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB\",\n Co: \"E000-F8FF\",\n Cs: \"D800-DFFF\",\n Cn: \"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF\"\n});\n\nfunction addUnicodePackage (pack) {\n var codePoint = /\\w{4}/g;\n for (var name in pack)\n exports.packages[name] = pack[name].replace(codePoint, \"\\\\u$&\");\n}\n\n});\n\nace.define(\"ace/mode/text\",[\"require\",\"exports\",\"module\",\"ace/tokenizer\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/unicode\",\"ace/lib/lang\",\"ace/token_iterator\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Tokenizer = acequire(\"../tokenizer\").Tokenizer;\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\nvar CstyleBehaviour = acequire(\"./behaviour/cstyle\").CstyleBehaviour;\nvar unicode = acequire(\"../unicode\");\nvar lang = acequire(\"../lib/lang\");\nvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\nvar Range = acequire(\"../range\").Range;\n\nvar Mode = function() {\n this.HighlightRules = TextHighlightRules;\n};\n\n(function() {\n this.$defaultBehaviour = new CstyleBehaviour();\n\n this.tokenRe = new RegExp(\"^[\"\n + unicode.packages.L\n + unicode.packages.Mn + unicode.packages.Mc\n + unicode.packages.Nd\n + unicode.packages.Pc + \"\\\\$_]+\", \"g\"\n );\n\n this.nonTokenRe = new RegExp(\"^(?:[^\"\n + unicode.packages.L\n + unicode.packages.Mn + unicode.packages.Mc\n + unicode.packages.Nd\n + unicode.packages.Pc + \"\\\\$_]|\\\\s])+\", \"g\"\n );\n\n this.getTokenizer = function() {\n if (!this.$tokenizer) {\n this.$highlightRules = this.$highlightRules || new this.HighlightRules(this.$highlightRuleConfig);\n this.$tokenizer = new Tokenizer(this.$highlightRules.getRules());\n }\n return this.$tokenizer;\n };\n\n this.lineCommentStart = \"\";\n this.blockComment = \"\";\n\n this.toggleCommentLines = function(state, session, startRow, endRow) {\n var doc = session.doc;\n\n var ignoreBlankLines = true;\n var shouldRemove = true;\n var minIndent = Infinity;\n var tabSize = session.getTabSize();\n var insertAtTabStop = false;\n\n if (!this.lineCommentStart) {\n if (!this.blockComment)\n return false;\n var lineCommentStart = this.blockComment.start;\n var lineCommentEnd = this.blockComment.end;\n var regexpStart = new RegExp(\"^(\\\\s*)(?:\" + lang.escapeRegExp(lineCommentStart) + \")\");\n var regexpEnd = new RegExp(\"(?:\" + lang.escapeRegExp(lineCommentEnd) + \")\\\\s*$\");\n\n var comment = function(line, i) {\n if (testRemove(line, i))\n return;\n if (!ignoreBlankLines || /\\S/.test(line)) {\n doc.insertInLine({row: i, column: line.length}, lineCommentEnd);\n doc.insertInLine({row: i, column: minIndent}, lineCommentStart);\n }\n };\n\n var uncomment = function(line, i) {\n var m;\n if (m = line.match(regexpEnd))\n doc.removeInLine(i, line.length - m[0].length, line.length);\n if (m = line.match(regexpStart))\n doc.removeInLine(i, m[1].length, m[0].length);\n };\n\n var testRemove = function(line, row) {\n if (regexpStart.test(line))\n return true;\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n if (tokens[i].type === \"comment\")\n return true;\n }\n };\n } else {\n if (Array.isArray(this.lineCommentStart)) {\n var regexpStart = this.lineCommentStart.map(lang.escapeRegExp).join(\"|\");\n var lineCommentStart = this.lineCommentStart[0];\n } else {\n var regexpStart = lang.escapeRegExp(this.lineCommentStart);\n var lineCommentStart = this.lineCommentStart;\n }\n regexpStart = new RegExp(\"^(\\\\s*)(?:\" + regexpStart + \") ?\");\n \n insertAtTabStop = session.getUseSoftTabs();\n\n var uncomment = function(line, i) {\n var m = line.match(regexpStart);\n if (!m) return;\n var start = m[1].length, end = m[0].length;\n if (!shouldInsertSpace(line, start, end) && m[0][end - 1] == \" \")\n end--;\n doc.removeInLine(i, start, end);\n };\n var commentWithSpace = lineCommentStart + \" \";\n var comment = function(line, i) {\n if (!ignoreBlankLines || /\\S/.test(line)) {\n if (shouldInsertSpace(line, minIndent, minIndent))\n doc.insertInLine({row: i, column: minIndent}, commentWithSpace);\n else\n doc.insertInLine({row: i, column: minIndent}, lineCommentStart);\n }\n };\n var testRemove = function(line, i) {\n return regexpStart.test(line);\n };\n \n var shouldInsertSpace = function(line, before, after) {\n var spaces = 0;\n while (before-- && line.charAt(before) == \" \")\n spaces++;\n if (spaces % tabSize != 0)\n return false;\n var spaces = 0;\n while (line.charAt(after++) == \" \")\n spaces++;\n if (tabSize > 2)\n return spaces % tabSize != tabSize - 1;\n else\n return spaces % tabSize == 0;\n return true;\n };\n }\n\n function iter(fun) {\n for (var i = startRow; i <= endRow; i++)\n fun(doc.getLine(i), i);\n }\n\n\n var minEmptyLength = Infinity;\n iter(function(line, i) {\n var indent = line.search(/\\S/);\n if (indent !== -1) {\n if (indent < minIndent)\n minIndent = indent;\n if (shouldRemove && !testRemove(line, i))\n shouldRemove = false;\n } else if (minEmptyLength > line.length) {\n minEmptyLength = line.length;\n }\n });\n\n if (minIndent == Infinity) {\n minIndent = minEmptyLength;\n ignoreBlankLines = false;\n shouldRemove = false;\n }\n\n if (insertAtTabStop && minIndent % tabSize != 0)\n minIndent = Math.floor(minIndent / tabSize) * tabSize;\n\n iter(shouldRemove ? uncomment : comment);\n };\n\n this.toggleBlockComment = function(state, session, range, cursor) {\n var comment = this.blockComment;\n if (!comment)\n return;\n if (!comment.start && comment[0])\n comment = comment[0];\n\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n\n var sel = session.selection;\n var initialRange = session.selection.toOrientedRange();\n var startRow, colDiff;\n\n if (token && /comment/.test(token.type)) {\n var startRange, endRange;\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.start);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n startRange = new Range(row, column, row, column + comment.start.length);\n break;\n }\n token = iterator.stepBackward();\n }\n\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.end);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n endRange = new Range(row, column, row, column + comment.end.length);\n break;\n }\n token = iterator.stepForward();\n }\n if (endRange)\n session.remove(endRange);\n if (startRange) {\n session.remove(startRange);\n startRow = startRange.start.row;\n colDiff = -comment.start.length;\n }\n } else {\n colDiff = comment.start.length;\n startRow = range.start.row;\n session.insert(range.end, comment.end);\n session.insert(range.start, comment.start);\n }\n if (initialRange.start.row == startRow)\n initialRange.start.column += colDiff;\n if (initialRange.end.row == startRow)\n initialRange.end.column += colDiff;\n session.selection.fromOrientedRange(initialRange);\n };\n\n this.getNextLineIndent = function(state, line, tab) {\n return this.$getIndent(line);\n };\n\n this.checkOutdent = function(state, line, input) {\n return false;\n };\n\n this.autoOutdent = function(state, doc, row) {\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n this.createWorker = function(session) {\n return null;\n };\n\n this.createModeDelegates = function (mapping) {\n this.$embeds = [];\n this.$modes = {};\n for (var i in mapping) {\n if (mapping[i]) {\n this.$embeds.push(i);\n this.$modes[i] = new mapping[i]();\n }\n }\n\n var delegations = [\"toggleBlockComment\", \"toggleCommentLines\", \"getNextLineIndent\", \n \"checkOutdent\", \"autoOutdent\", \"transformAction\", \"getCompletions\"];\n\n for (var i = 0; i < delegations.length; i++) {\n (function(scope) {\n var functionName = delegations[i];\n var defaultHandler = scope[functionName];\n scope[delegations[i]] = function() {\n return this.$delegator(functionName, arguments, defaultHandler);\n };\n }(this));\n }\n };\n\n this.$delegator = function(method, args, defaultHandler) {\n var state = args[0];\n if (typeof state != \"string\")\n state = state[0];\n for (var i = 0; i < this.$embeds.length; i++) {\n if (!this.$modes[this.$embeds[i]]) continue;\n\n var split = state.split(this.$embeds[i]);\n if (!split[0] && split[1]) {\n args[0] = split[1];\n var mode = this.$modes[this.$embeds[i]];\n return mode[method].apply(mode, args);\n }\n }\n var ret = defaultHandler.apply(this, args);\n return defaultHandler ? ret : undefined;\n };\n\n this.transformAction = function(state, action, editor, session, param) {\n if (this.$behaviour) {\n var behaviours = this.$behaviour.getBehaviours();\n for (var key in behaviours) {\n if (behaviours[key][action]) {\n var ret = behaviours[key][action].apply(this, arguments);\n if (ret) {\n return ret;\n }\n }\n }\n }\n };\n \n this.getKeywords = function(append) {\n if (!this.completionKeywords) {\n var rules = this.$tokenizer.rules;\n var completionKeywords = [];\n for (var rule in rules) {\n var ruleItr = rules[rule];\n for (var r = 0, l = ruleItr.length; r < l; r++) {\n if (typeof ruleItr[r].token === \"string\") {\n if (/keyword|support|storage/.test(ruleItr[r].token))\n completionKeywords.push(ruleItr[r].regex);\n }\n else if (typeof ruleItr[r].token === \"object\") {\n for (var a = 0, aLength = ruleItr[r].token.length; a < aLength; a++) { \n if (/keyword|support|storage/.test(ruleItr[r].token[a])) {\n var rule = ruleItr[r].regex.match(/\\(.+?\\)/g)[a];\n completionKeywords.push(rule.substr(1, rule.length - 2));\n }\n }\n }\n }\n }\n this.completionKeywords = completionKeywords;\n }\n if (!append)\n return this.$keywordList;\n return completionKeywords.concat(this.$keywordList || []);\n };\n \n this.$createKeywordList = function() {\n if (!this.$highlightRules)\n this.getTokenizer();\n return this.$keywordList = this.$highlightRules.$keywordList || [];\n };\n\n this.getCompletions = function(state, session, pos, prefix) {\n var keywords = this.$keywordList || this.$createKeywordList();\n return keywords.map(function(word) {\n return {\n name: word,\n value: word,\n score: 0,\n meta: \"keyword\"\n };\n });\n };\n\n this.$id = \"ace/mode/text\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nfunction throwDeltaError(delta, errorText){\n console.log(\"Invalid Delta:\", delta);\n throw \"Invalid Delta: \" + errorText;\n}\n\nfunction positionInDocument(docLines, position) {\n return position.row >= 0 && position.row < docLines.length &&\n position.column >= 0 && position.column <= docLines[position.row].length;\n}\n\nfunction validateDelta(docLines, delta) {\n if (delta.action != \"insert\" && delta.action != \"remove\")\n throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n if (!(delta.lines instanceof Array))\n throwDeltaError(delta, \"delta.lines must be an Array\");\n if (!delta.start || !delta.end)\n throwDeltaError(delta, \"delta.start/end must be an present\");\n var start = delta.start;\n if (!positionInDocument(docLines, delta.start))\n throwDeltaError(delta, \"delta.start must be contained in document\");\n var end = delta.end;\n if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n var numRangeRows = end.row - start.row;\n var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n throwDeltaError(delta, \"delta.range must match delta lines\");\n}\n\nexports.applyDelta = function(docLines, delta, doNotValidate) {\n \n var row = delta.start.row;\n var startColumn = delta.start.column;\n var line = docLines[row] || \"\";\n switch (delta.action) {\n case \"insert\":\n var lines = delta.lines;\n if (lines.length === 1) {\n docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n } else {\n var args = [row, 1].concat(delta.lines);\n docLines.splice.apply(docLines, args);\n docLines[row] = line.substring(0, startColumn) + docLines[row];\n docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n }\n break;\n case \"remove\":\n var endColumn = delta.end.column;\n var endRow = delta.end.row;\n if (row === endRow) {\n docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n } else {\n docLines.splice(\n row, endRow - row + 1,\n line.substring(0, startColumn) + docLines[endRow].substring(endColumn)\n );\n }\n break;\n }\n};\n});\n\nace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\n\nvar Anchor = exports.Anchor = function(doc, row, column) {\n this.$onChange = this.onChange.bind(this);\n this.attach(doc);\n \n if (typeof column == \"undefined\")\n this.setPosition(row.row, row.column);\n else\n this.setPosition(row, column);\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.getPosition = function() {\n return this.$clipPositionToDocument(this.row, this.column);\n };\n this.getDocument = function() {\n return this.document;\n };\n this.$insertRight = false;\n this.onChange = function(delta) {\n if (delta.start.row == delta.end.row && delta.start.row != this.row)\n return;\n\n if (delta.start.row > this.row)\n return;\n \n var point = $getTransformedPoint(delta, {row: this.row, column: this.column}, this.$insertRight);\n this.setPosition(point.row, point.column, true);\n };\n \n function $pointsInOrder(point1, point2, equalPointsInOrder) {\n var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n }\n \n function $getTransformedPoint(delta, point, moveIfEqual) {\n var deltaIsInsert = delta.action == \"insert\";\n var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row);\n var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n var deltaStart = delta.start;\n var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n return {\n row: point.row,\n column: point.column\n };\n }\n if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n return {\n row: point.row + deltaRowShift,\n column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n };\n }\n \n return {\n row: deltaStart.row,\n column: deltaStart.column\n };\n }\n this.setPosition = function(row, column, noClip) {\n var pos;\n if (noClip) {\n pos = {\n row: row,\n column: column\n };\n } else {\n pos = this.$clipPositionToDocument(row, column);\n }\n\n if (this.row == pos.row && this.column == pos.column)\n return;\n\n var old = {\n row: this.row,\n column: this.column\n };\n\n this.row = pos.row;\n this.column = pos.column;\n this._signal(\"change\", {\n old: old,\n value: pos\n });\n };\n this.detach = function() {\n this.document.removeEventListener(\"change\", this.$onChange);\n };\n this.attach = function(doc) {\n this.document = doc || this.document;\n this.document.on(\"change\", this.$onChange);\n };\n this.$clipPositionToDocument = function(row, column) {\n var pos = {};\n\n if (row >= this.document.getLength()) {\n pos.row = Math.max(0, this.document.getLength() - 1);\n pos.column = this.document.getLine(pos.row).length;\n }\n else if (row < 0) {\n pos.row = 0;\n pos.column = 0;\n }\n else {\n pos.row = row;\n pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n }\n\n if (column < 0)\n pos.column = 0;\n\n return pos;\n };\n\n}).call(Anchor.prototype);\n\n});\n\nace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar applyDelta = acequire(\"./apply_delta\").applyDelta;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar Range = acequire(\"./range\").Range;\nvar Anchor = acequire(\"./anchor\").Anchor;\n\nvar Document = function(textOrLines) {\n this.$lines = [\"\"];\n if (textOrLines.length === 0) {\n this.$lines = [\"\"];\n } else if (Array.isArray(textOrLines)) {\n this.insertMergedLines({row: 0, column: 0}, textOrLines);\n } else {\n this.insert({row: 0, column:0}, textOrLines);\n }\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.setValue = function(text) {\n var len = this.getLength() - 1;\n this.remove(new Range(0, 0, len, this.getLine(len).length));\n this.insert({row: 0, column: 0}, text);\n };\n this.getValue = function() {\n return this.getAllLines().join(this.getNewLineCharacter());\n };\n this.createAnchor = function(row, column) {\n return new Anchor(this, row, column);\n };\n if (\"aaa\".split(/a/).length === 0) {\n this.$split = function(text) {\n return text.replace(/\\r\\n|\\r/g, \"\\n\").split(\"\\n\");\n };\n } else {\n this.$split = function(text) {\n return text.split(/\\r\\n|\\r|\\n/);\n };\n }\n\n\n this.$detectNewLine = function(text) {\n var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n this.$autoNewLine = match ? match[1] : \"\\n\";\n this._signal(\"changeNewLineMode\");\n };\n this.getNewLineCharacter = function() {\n switch (this.$newLineMode) {\n case \"windows\":\n return \"\\r\\n\";\n case \"unix\":\n return \"\\n\";\n default:\n return this.$autoNewLine || \"\\n\";\n }\n };\n\n this.$autoNewLine = \"\";\n this.$newLineMode = \"auto\";\n this.setNewLineMode = function(newLineMode) {\n if (this.$newLineMode === newLineMode)\n return;\n\n this.$newLineMode = newLineMode;\n this._signal(\"changeNewLineMode\");\n };\n this.getNewLineMode = function() {\n return this.$newLineMode;\n };\n this.isNewLine = function(text) {\n return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n };\n this.getLine = function(row) {\n return this.$lines[row] || \"\";\n };\n this.getLines = function(firstRow, lastRow) {\n return this.$lines.slice(firstRow, lastRow + 1);\n };\n this.getAllLines = function() {\n return this.getLines(0, this.getLength());\n };\n this.getLength = function() {\n return this.$lines.length;\n };\n this.getTextRange = function(range) {\n return this.getLinesForRange(range).join(this.getNewLineCharacter());\n };\n this.getLinesForRange = function(range) {\n var lines;\n if (range.start.row === range.end.row) {\n lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n } else {\n lines = this.getLines(range.start.row, range.end.row);\n lines[0] = (lines[0] || \"\").substring(range.start.column);\n var l = lines.length - 1;\n if (range.end.row - range.start.row == l)\n lines[l] = lines[l].substring(0, range.end.column);\n }\n return lines;\n };\n this.insertLines = function(row, lines) {\n console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n return this.insertFullLines(row, lines);\n };\n this.removeLines = function(firstRow, lastRow) {\n console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n return this.removeFullLines(firstRow, lastRow);\n };\n this.insertNewLine = function(position) {\n console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\");\n return this.insertMergedLines(position, [\"\", \"\"]);\n };\n this.insert = function(position, text) {\n if (this.getLength() <= 1)\n this.$detectNewLine(text);\n \n return this.insertMergedLines(position, this.$split(text));\n };\n this.insertInLine = function(position, text) {\n var start = this.clippedPos(position.row, position.column);\n var end = this.pos(position.row, position.column + text.length);\n \n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: [text]\n }, true);\n \n return this.clonePos(end);\n };\n \n this.clippedPos = function(row, column) {\n var length = this.getLength();\n if (row === undefined) {\n row = length;\n } else if (row < 0) {\n row = 0;\n } else if (row >= length) {\n row = length - 1;\n column = undefined;\n }\n var line = this.getLine(row);\n if (column == undefined)\n column = line.length;\n column = Math.min(Math.max(column, 0), line.length);\n return {row: row, column: column};\n };\n \n this.clonePos = function(pos) {\n return {row: pos.row, column: pos.column};\n };\n \n this.pos = function(row, column) {\n return {row: row, column: column};\n };\n \n this.$clipPosition = function(position) {\n var length = this.getLength();\n if (position.row >= length) {\n position.row = Math.max(0, length - 1);\n position.column = this.getLine(length - 1).length;\n } else {\n position.row = Math.max(0, position.row);\n position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n }\n return position;\n };\n this.insertFullLines = function(row, lines) {\n row = Math.min(Math.max(row, 0), this.getLength());\n var column = 0;\n if (row < this.getLength()) {\n lines = lines.concat([\"\"]);\n column = 0;\n } else {\n lines = [\"\"].concat(lines);\n row--;\n column = this.$lines[row].length;\n }\n this.insertMergedLines({row: row, column: column}, lines);\n }; \n this.insertMergedLines = function(position, lines) {\n var start = this.clippedPos(position.row, position.column);\n var end = {\n row: start.row + lines.length - 1,\n column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n };\n \n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: lines\n });\n \n return this.clonePos(end);\n };\n this.remove = function(range) {\n var start = this.clippedPos(range.start.row, range.start.column);\n var end = this.clippedPos(range.end.row, range.end.column);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({start: start, end: end})\n });\n return this.clonePos(start);\n };\n this.removeInLine = function(row, startColumn, endColumn) {\n var start = this.clippedPos(row, startColumn);\n var end = this.clippedPos(row, endColumn);\n \n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({start: start, end: end})\n }, true);\n \n return this.clonePos(start);\n };\n this.removeFullLines = function(firstRow, lastRow) {\n firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n lastRow = Math.min(Math.max(0, lastRow ), this.getLength() - 1);\n var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n var deleteLastNewLine = lastRow < this.getLength() - 1;\n var startRow = ( deleteFirstNewLine ? firstRow - 1 : firstRow );\n var startCol = ( deleteFirstNewLine ? this.getLine(startRow).length : 0 );\n var endRow = ( deleteLastNewLine ? lastRow + 1 : lastRow );\n var endCol = ( deleteLastNewLine ? 0 : this.getLine(endRow).length ); \n var range = new Range(startRow, startCol, endRow, endCol);\n var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n \n this.applyDelta({\n start: range.start,\n end: range.end,\n action: \"remove\",\n lines: this.getLinesForRange(range)\n });\n return deletedLines;\n };\n this.removeNewLine = function(row) {\n if (row < this.getLength() - 1 && row >= 0) {\n this.applyDelta({\n start: this.pos(row, this.getLine(row).length),\n end: this.pos(row + 1, 0),\n action: \"remove\",\n lines: [\"\", \"\"]\n });\n }\n };\n this.replace = function(range, text) {\n if (!(range instanceof Range))\n range = Range.fromPoints(range.start, range.end);\n if (text.length === 0 && range.isEmpty())\n return range.start;\n if (text == this.getTextRange(range))\n return range.end;\n\n this.remove(range);\n var end;\n if (text) {\n end = this.insert(range.start, text);\n }\n else {\n end = range.start;\n }\n \n return end;\n };\n this.applyDeltas = function(deltas) {\n for (var i=0; i<deltas.length; i++) {\n this.applyDelta(deltas[i]);\n }\n };\n this.revertDeltas = function(deltas) {\n for (var i=deltas.length-1; i>=0; i--) {\n this.revertDelta(deltas[i]);\n }\n };\n this.applyDelta = function(delta, doNotValidate) {\n var isInsert = delta.action == \"insert\";\n if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n : !Range.comparePoints(delta.start, delta.end)) {\n return;\n }\n \n if (isInsert && delta.lines.length > 20000)\n this.$splitAndapplyLargeDelta(delta, 20000);\n applyDelta(this.$lines, delta, doNotValidate);\n this._signal(\"change\", delta);\n };\n \n this.$splitAndapplyLargeDelta = function(delta, MAX) {\n var lines = delta.lines;\n var l = lines.length;\n var row = delta.start.row; \n var column = delta.start.column;\n var from = 0, to = 0;\n do {\n from = to;\n to += MAX - 1;\n var chunk = lines.slice(from, to);\n if (to > l) {\n delta.lines = chunk;\n delta.start.row = row + from;\n delta.start.column = column;\n break;\n }\n chunk.push(\"\");\n this.applyDelta({\n start: this.pos(row + from, column),\n end: this.pos(row + to, column = 0),\n action: delta.action,\n lines: chunk\n }, true);\n } while(true);\n };\n this.revertDelta = function(delta) {\n this.applyDelta({\n start: this.clonePos(delta.start),\n end: this.clonePos(delta.end),\n action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n lines: delta.lines.slice()\n });\n };\n this.indexToPosition = function(index, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n for (var i = startRow || 0, l = lines.length; i < l; i++) {\n index -= lines[i].length + newlineLength;\n if (index < 0)\n return {row: i, column: index + lines[i].length + newlineLength};\n }\n return {row: l-1, column: lines[l-1].length};\n };\n this.positionToIndex = function(pos, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n var index = 0;\n var row = Math.min(pos.row, lines.length);\n for (var i = startRow || 0; i < row; ++i)\n index += lines[i].length + newlineLength;\n\n return index + pos.column;\n };\n\n}).call(Document.prototype);\n\nexports.Document = Document;\n});\n\nace.define(\"ace/background_tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\n\nvar BackgroundTokenizer = function(tokenizer, editor) {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.tokenizer = tokenizer;\n\n var self = this;\n\n this.$worker = function() {\n if (!self.running) { return; }\n\n var workerStart = new Date();\n var currentLine = self.currentLine;\n var endLine = -1;\n var doc = self.doc;\n\n var startLine = currentLine;\n while (self.lines[currentLine])\n currentLine++;\n \n var len = doc.getLength();\n var processedLines = 0;\n self.running = false;\n while (currentLine < len) {\n self.$tokenizeRow(currentLine);\n endLine = currentLine;\n do {\n currentLine++;\n } while (self.lines[currentLine]);\n processedLines ++;\n if ((processedLines % 5 === 0) && (new Date() - workerStart) > 20) { \n self.running = setTimeout(self.$worker, 20);\n break;\n }\n }\n self.currentLine = currentLine;\n \n if (endLine == -1)\n endLine = currentLine;\n\n if (startLine <= endLine)\n self.fireUpdateEvent(startLine, endLine);\n };\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n this.setTokenizer = function(tokenizer) {\n this.tokenizer = tokenizer;\n this.lines = [];\n this.states = [];\n\n this.start(0);\n };\n this.setDocument = function(doc) {\n this.doc = doc;\n this.lines = [];\n this.states = [];\n\n this.stop();\n };\n this.fireUpdateEvent = function(firstRow, lastRow) {\n var data = {\n first: firstRow,\n last: lastRow\n };\n this._signal(\"update\", {data: data});\n };\n this.start = function(startRow) {\n this.currentLine = Math.min(startRow || 0, this.currentLine, this.doc.getLength());\n this.lines.splice(this.currentLine, this.lines.length);\n this.states.splice(this.currentLine, this.states.length);\n\n this.stop();\n this.running = setTimeout(this.$worker, 700);\n };\n \n this.scheduleStart = function() {\n if (!this.running)\n this.running = setTimeout(this.$worker, 700);\n };\n\n this.$updateOnChange = function(delta) {\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n\n if (len === 0) {\n this.lines[startRow] = null;\n } else if (delta.action == \"remove\") {\n this.lines.splice(startRow, len + 1, null);\n this.states.splice(startRow, len + 1, null);\n } else {\n var args = Array(len + 1);\n args.unshift(startRow, 1);\n this.lines.splice.apply(this.lines, args);\n this.states.splice.apply(this.states, args);\n }\n\n this.currentLine = Math.min(startRow, this.currentLine, this.doc.getLength());\n\n this.stop();\n };\n this.stop = function() {\n if (this.running)\n clearTimeout(this.running);\n this.running = false;\n };\n this.getTokens = function(row) {\n return this.lines[row] || this.$tokenizeRow(row);\n };\n this.getState = function(row) {\n if (this.currentLine == row)\n this.$tokenizeRow(row);\n return this.states[row] || \"start\";\n };\n\n this.$tokenizeRow = function(row) {\n var line = this.doc.getLine(row);\n var state = this.states[row - 1];\n\n var data = this.tokenizer.getLineTokens(line, state, row);\n\n if (this.states[row] + \"\" !== data.state + \"\") {\n this.states[row] = data.state;\n this.lines[row + 1] = null;\n if (this.currentLine > row + 1)\n this.currentLine = row + 1;\n } else if (this.currentLine == row) {\n this.currentLine = row + 1;\n }\n\n return this.lines[row] = data.tokens;\n };\n\n}).call(BackgroundTokenizer.prototype);\n\nexports.BackgroundTokenizer = BackgroundTokenizer;\n});\n\nace.define(\"ace/search_highlight\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"./lib/lang\");\nvar oop = acequire(\"./lib/oop\");\nvar Range = acequire(\"./range\").Range;\n\nvar SearchHighlight = function(regExp, clazz, type) {\n this.setRegexp(regExp);\n this.clazz = clazz;\n this.type = type || \"text\";\n};\n\n(function() {\n this.MAX_RANGES = 500;\n \n this.setRegexp = function(regExp) {\n if (this.regExp+\"\" == regExp+\"\")\n return;\n this.regExp = regExp;\n this.cache = [];\n };\n\n this.update = function(html, markerLayer, session, config) {\n if (!this.regExp)\n return;\n var start = config.firstRow, end = config.lastRow;\n\n for (var i = start; i <= end; i++) {\n var ranges = this.cache[i];\n if (ranges == null) {\n ranges = lang.getMatchOffsets(session.getLine(i), this.regExp);\n if (ranges.length > this.MAX_RANGES)\n ranges = ranges.slice(0, this.MAX_RANGES);\n ranges = ranges.map(function(match) {\n return new Range(i, match.offset, i, match.offset + match.length);\n });\n this.cache[i] = ranges.length ? ranges : \"\";\n }\n\n for (var j = ranges.length; j --; ) {\n markerLayer.drawSingleLineMarker(\n html, ranges[j].toScreenRange(session), this.clazz, config);\n }\n }\n };\n\n}).call(SearchHighlight.prototype);\n\nexports.SearchHighlight = SearchHighlight;\n});\n\nace.define(\"ace/edit_session/fold_line\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nfunction FoldLine(foldData, folds) {\n this.foldData = foldData;\n if (Array.isArray(folds)) {\n this.folds = folds;\n } else {\n folds = this.folds = [ folds ];\n }\n\n var last = folds[folds.length - 1];\n this.range = new Range(folds[0].start.row, folds[0].start.column,\n last.end.row, last.end.column);\n this.start = this.range.start;\n this.end = this.range.end;\n\n this.folds.forEach(function(fold) {\n fold.setFoldLine(this);\n }, this);\n}\n\n(function() {\n this.shiftRow = function(shift) {\n this.start.row += shift;\n this.end.row += shift;\n this.folds.forEach(function(fold) {\n fold.start.row += shift;\n fold.end.row += shift;\n });\n };\n\n this.addFold = function(fold) {\n if (fold.sameRow) {\n if (fold.start.row < this.startRow || fold.endRow > this.endRow) {\n throw new Error(\"Can't add a fold to this FoldLine as it has no connection\");\n }\n this.folds.push(fold);\n this.folds.sort(function(a, b) {\n return -a.range.compareEnd(b.start.row, b.start.column);\n });\n if (this.range.compareEnd(fold.start.row, fold.start.column) > 0) {\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n } else if (this.range.compareStart(fold.end.row, fold.end.column) < 0) {\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n } else if (fold.start.row == this.end.row) {\n this.folds.push(fold);\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n } else if (fold.end.row == this.start.row) {\n this.folds.unshift(fold);\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n } else {\n throw new Error(\"Trying to add fold to FoldRow that doesn't have a matching row\");\n }\n fold.foldLine = this;\n };\n\n this.containsRow = function(row) {\n return row >= this.start.row && row <= this.end.row;\n };\n\n this.walk = function(callback, endRow, endColumn) {\n var lastEnd = 0,\n folds = this.folds,\n fold,\n cmp, stop, isNewRow = true;\n\n if (endRow == null) {\n endRow = this.end.row;\n endColumn = this.end.column;\n }\n\n for (var i = 0; i < folds.length; i++) {\n fold = folds[i];\n\n cmp = fold.range.compareStart(endRow, endColumn);\n if (cmp == -1) {\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n return;\n }\n\n stop = callback(null, fold.start.row, fold.start.column, lastEnd, isNewRow);\n stop = !stop && callback(fold.placeholder, fold.start.row, fold.start.column, lastEnd);\n if (stop || cmp === 0) {\n return;\n }\n isNewRow = !fold.sameRow;\n lastEnd = fold.end.column;\n }\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n };\n\n this.getNextFoldTo = function(row, column) {\n var fold, cmp;\n for (var i = 0; i < this.folds.length; i++) {\n fold = this.folds[i];\n cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n return {\n fold: fold,\n kind: \"after\"\n };\n } else if (cmp === 0) {\n return {\n fold: fold,\n kind: \"inside\"\n };\n }\n }\n return null;\n };\n\n this.addRemoveChars = function(row, column, len) {\n var ret = this.getNextFoldTo(row, column),\n fold, folds;\n if (ret) {\n fold = ret.fold;\n if (ret.kind == \"inside\"\n && fold.start.column != column\n && fold.start.row != row)\n {\n window.console && window.console.log(row, column, fold);\n } else if (fold.start.row == row) {\n folds = this.folds;\n var i = folds.indexOf(fold);\n if (i === 0) {\n this.start.column += len;\n }\n for (i; i < folds.length; i++) {\n fold = folds[i];\n fold.start.column += len;\n if (!fold.sameRow) {\n return;\n }\n fold.end.column += len;\n }\n this.end.column += len;\n }\n }\n };\n\n this.split = function(row, column) {\n var pos = this.getNextFoldTo(row, column);\n \n if (!pos || pos.kind == \"inside\")\n return null;\n \n var fold = pos.fold;\n var folds = this.folds;\n var foldData = this.foldData;\n \n var i = folds.indexOf(fold);\n var foldBefore = folds[i - 1];\n this.end.row = foldBefore.end.row;\n this.end.column = foldBefore.end.column;\n folds = folds.splice(i, folds.length - i);\n\n var newFoldLine = new FoldLine(foldData, folds);\n foldData.splice(foldData.indexOf(this) + 1, 0, newFoldLine);\n return newFoldLine;\n };\n\n this.merge = function(foldLineNext) {\n var folds = foldLineNext.folds;\n for (var i = 0; i < folds.length; i++) {\n this.addFold(folds[i]);\n }\n var foldData = this.foldData;\n foldData.splice(foldData.indexOf(foldLineNext), 1);\n };\n\n this.toString = function() {\n var ret = [this.range.toString() + \": [\" ];\n\n this.folds.forEach(function(fold) {\n ret.push(\" \" + fold.toString());\n });\n ret.push(\"]\");\n return ret.join(\"\\n\");\n };\n\n this.idxToPosition = function(idx) {\n var lastFoldEndColumn = 0;\n\n for (var i = 0; i < this.folds.length; i++) {\n var fold = this.folds[i];\n\n idx -= fold.start.column - lastFoldEndColumn;\n if (idx < 0) {\n return {\n row: fold.start.row,\n column: fold.start.column + idx\n };\n }\n\n idx -= fold.placeholder.length;\n if (idx < 0) {\n return fold.start;\n }\n\n lastFoldEndColumn = fold.end.column;\n }\n\n return {\n row: this.end.row,\n column: this.end.column + idx\n };\n };\n}).call(FoldLine.prototype);\n\nexports.FoldLine = FoldLine;\n});\n\nace.define(\"ace/range_list\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\nvar Range = acequire(\"./range\").Range;\nvar comparePoints = Range.comparePoints;\n\nvar RangeList = function() {\n this.ranges = [];\n};\n\n(function() {\n this.comparePoints = comparePoints;\n\n this.pointIndex = function(pos, excludeEdges, startIndex) {\n var list = this.ranges;\n\n for (var i = startIndex || 0; i < list.length; i++) {\n var range = list[i];\n var cmpEnd = comparePoints(pos, range.end);\n if (cmpEnd > 0)\n continue;\n var cmpStart = comparePoints(pos, range.start);\n if (cmpEnd === 0)\n return excludeEdges && cmpStart !== 0 ? -i-2 : i;\n if (cmpStart > 0 || (cmpStart === 0 && !excludeEdges))\n return i;\n\n return -i-1;\n }\n return -i - 1;\n };\n\n this.add = function(range) {\n var excludeEdges = !range.isEmpty();\n var startIndex = this.pointIndex(range.start, excludeEdges);\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n\n var endIndex = this.pointIndex(range.end, excludeEdges, startIndex);\n\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n else\n endIndex++;\n return this.ranges.splice(startIndex, endIndex - startIndex, range);\n };\n\n this.addList = function(list) {\n var removed = [];\n for (var i = list.length; i--; ) {\n removed.push.apply(removed, this.add(list[i]));\n }\n return removed;\n };\n\n this.substractPoint = function(pos) {\n var i = this.pointIndex(pos);\n\n if (i >= 0)\n return this.ranges.splice(i, 1);\n };\n this.merge = function() {\n var removed = [];\n var list = this.ranges;\n \n list = list.sort(function(a, b) {\n return comparePoints(a.start, b.start);\n });\n \n var next = list[0], range;\n for (var i = 1; i < list.length; i++) {\n range = next;\n next = list[i];\n var cmp = comparePoints(range.end, next.start);\n if (cmp < 0)\n continue;\n\n if (cmp == 0 && !range.isEmpty() && !next.isEmpty())\n continue;\n\n if (comparePoints(range.end, next.end) < 0) {\n range.end.row = next.end.row;\n range.end.column = next.end.column;\n }\n\n list.splice(i, 1);\n removed.push(next);\n next = range;\n i--;\n }\n \n this.ranges = list;\n\n return removed;\n };\n\n this.contains = function(row, column) {\n return this.pointIndex({row: row, column: column}) >= 0;\n };\n\n this.containsPoint = function(pos) {\n return this.pointIndex(pos) >= 0;\n };\n\n this.rangeAtPoint = function(pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges[i];\n };\n\n\n this.clipRows = function(startRow, endRow) {\n var list = this.ranges;\n if (list[0].start.row > endRow || list[list.length - 1].start.row < startRow)\n return [];\n\n var startIndex = this.pointIndex({row: startRow, column: 0});\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex({row: endRow, column: 0}, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n\n var clipped = [];\n for (var i = startIndex; i < endIndex; i++) {\n clipped.push(list[i]);\n }\n return clipped;\n };\n\n this.removeAll = function() {\n return this.ranges.splice(0, this.ranges.length);\n };\n\n this.attach = function(session) {\n if (this.session)\n this.detach();\n\n this.session = session;\n this.onChange = this.$onChange.bind(this);\n\n this.session.on('change', this.onChange);\n };\n\n this.detach = function() {\n if (!this.session)\n return;\n this.session.removeListener('change', this.onChange);\n this.session = null;\n };\n\n this.$onChange = function(delta) {\n if (delta.action == \"insert\"){\n var start = delta.start;\n var end = delta.end;\n } else {\n var end = delta.start;\n var start = delta.end;\n }\n var startRow = start.row;\n var endRow = end.row;\n var lineDif = endRow - startRow;\n\n var colDiff = -start.column + end.column;\n var ranges = this.ranges;\n\n for (var i = 0, n = ranges.length; i < n; i++) {\n var r = ranges[i];\n if (r.end.row < startRow)\n continue;\n if (r.start.row > startRow)\n break;\n\n if (r.start.row == startRow && r.start.column >= start.column ) {\n if (r.start.column == start.column && this.$insertRight) {\n } else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n if (r.end.row == startRow && r.end.column >= start.column) {\n if (r.end.column == start.column && this.$insertRight) {\n continue;\n }\n if (r.end.column == start.column && colDiff > 0 && i < n - 1) { \n if (r.end.column > r.start.column && r.end.column == ranges[i+1].start.column)\n r.end.column -= colDiff;\n }\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n\n if (lineDif != 0 && i < n) {\n for (; i < n; i++) {\n var r = ranges[i];\n r.start.row += lineDif;\n r.end.row += lineDif;\n }\n }\n };\n\n}).call(RangeList.prototype);\n\nexports.RangeList = RangeList;\n});\n\nace.define(\"ace/edit_session/fold\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/range_list\",\"ace/lib/oop\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nvar RangeList = acequire(\"../range_list\").RangeList;\nvar oop = acequire(\"../lib/oop\");\nvar Fold = exports.Fold = function(range, placeholder) {\n this.foldLine = null;\n this.placeholder = placeholder;\n this.range = range;\n this.start = range.start;\n this.end = range.end;\n\n this.sameRow = range.start.row == range.end.row;\n this.subFolds = this.ranges = [];\n};\n\noop.inherits(Fold, RangeList);\n\n(function() {\n\n this.toString = function() {\n return '\"' + this.placeholder + '\" ' + this.range.toString();\n };\n\n this.setFoldLine = function(foldLine) {\n this.foldLine = foldLine;\n this.subFolds.forEach(function(fold) {\n fold.setFoldLine(foldLine);\n });\n };\n\n this.clone = function() {\n var range = this.range.clone();\n var fold = new Fold(range, this.placeholder);\n this.subFolds.forEach(function(subFold) {\n fold.subFolds.push(subFold.clone());\n });\n fold.collapseChildren = this.collapseChildren;\n return fold;\n };\n\n this.addSubFold = function(fold) {\n if (this.range.isEqual(fold))\n return;\n\n if (!this.range.containsRange(fold))\n throw new Error(\"A fold can't intersect already existing fold\" + fold.range + this.range);\n consumeRange(fold, this.start);\n\n var row = fold.start.row, column = fold.start.column;\n for (var i = 0, cmp = -1; i < this.subFolds.length; i++) {\n cmp = this.subFolds[i].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n var afterStart = this.subFolds[i];\n\n if (cmp == 0)\n return afterStart.addSubFold(fold);\n var row = fold.range.end.row, column = fold.range.end.column;\n for (var j = i, cmp = -1; j < this.subFolds.length; j++) {\n cmp = this.subFolds[j].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n var afterEnd = this.subFolds[j];\n\n if (cmp == 0)\n throw new Error(\"A fold can't intersect already existing fold\" + fold.range + this.range);\n\n var consumedFolds = this.subFolds.splice(i, j - i, fold);\n fold.setFoldLine(this.foldLine);\n\n return fold;\n };\n \n this.restoreRange = function(range) {\n return restoreRange(range, this.start);\n };\n\n}).call(Fold.prototype);\n\nfunction consumePoint(point, anchor) {\n point.row -= anchor.row;\n if (point.row == 0)\n point.column -= anchor.column;\n}\nfunction consumeRange(range, anchor) {\n consumePoint(range.start, anchor);\n consumePoint(range.end, anchor);\n}\nfunction restorePoint(point, anchor) {\n if (point.row == 0)\n point.column += anchor.column;\n point.row += anchor.row;\n}\nfunction restoreRange(range, anchor) {\n restorePoint(range.start, anchor);\n restorePoint(range.end, anchor);\n}\n\n});\n\nace.define(\"ace/edit_session/folding\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/edit_session/fold_line\",\"ace/edit_session/fold\",\"ace/token_iterator\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nvar FoldLine = acequire(\"./fold_line\").FoldLine;\nvar Fold = acequire(\"./fold\").Fold;\nvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\n\nfunction Folding() {\n this.getFoldAt = function(row, column, side) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine)\n return null;\n\n var folds = foldLine.folds;\n for (var i = 0; i < folds.length; i++) {\n var fold = folds[i];\n if (fold.range.contains(row, column)) {\n if (side == 1 && fold.range.isEnd(row, column)) {\n continue;\n } else if (side == -1 && fold.range.isStart(row, column)) {\n continue;\n }\n return fold;\n }\n }\n };\n this.getFoldsInRange = function(range) {\n var start = range.start;\n var end = range.end;\n var foldLines = this.$foldData;\n var foundFolds = [];\n\n start.column += 1;\n end.column -= 1;\n\n for (var i = 0; i < foldLines.length; i++) {\n var cmp = foldLines[i].range.compareRange(range);\n if (cmp == 2) {\n continue;\n }\n else if (cmp == -2) {\n break;\n }\n\n var folds = foldLines[i].folds;\n for (var j = 0; j < folds.length; j++) {\n var fold = folds[j];\n cmp = fold.range.compareRange(range);\n if (cmp == -2) {\n break;\n } else if (cmp == 2) {\n continue;\n } else\n if (cmp == 42) {\n break;\n }\n foundFolds.push(fold);\n }\n }\n start.column -= 1;\n end.column += 1;\n\n return foundFolds;\n };\n\n this.getFoldsInRangeList = function(ranges) {\n if (Array.isArray(ranges)) {\n var folds = [];\n ranges.forEach(function(range) {\n folds = folds.concat(this.getFoldsInRange(range));\n }, this);\n } else {\n var folds = this.getFoldsInRange(ranges);\n }\n return folds;\n };\n this.getAllFolds = function() {\n var folds = [];\n var foldLines = this.$foldData;\n \n for (var i = 0; i < foldLines.length; i++)\n for (var j = 0; j < foldLines[i].folds.length; j++)\n folds.push(foldLines[i].folds[j]);\n\n return folds;\n };\n this.getFoldStringAt = function(row, column, trim, foldLine) {\n foldLine = foldLine || this.getFoldLine(row);\n if (!foldLine)\n return null;\n\n var lastFold = {\n end: { column: 0 }\n };\n var str, fold;\n for (var i = 0; i < foldLine.folds.length; i++) {\n fold = foldLine.folds[i];\n var cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n str = this\n .getLine(fold.start.row)\n .substring(lastFold.end.column, fold.start.column);\n break;\n }\n else if (cmp === 0) {\n return null;\n }\n lastFold = fold;\n }\n if (!str)\n str = this.getLine(fold.start.row).substring(lastFold.end.column);\n\n if (trim == -1)\n return str.substring(0, column - lastFold.end.column);\n else if (trim == 1)\n return str.substring(column - lastFold.end.column);\n else\n return str;\n };\n\n this.getFoldLine = function(docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.start.row <= docRow && foldLine.end.row >= docRow) {\n return foldLine;\n } else if (foldLine.end.row > docRow) {\n return null;\n }\n }\n return null;\n };\n this.getNextFoldLine = function(docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.end.row >= docRow) {\n return foldLine;\n }\n }\n return null;\n };\n\n this.getFoldedRowCount = function(first, last) {\n var foldData = this.$foldData, rowCount = last-first+1;\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i],\n end = foldLine.end.row,\n start = foldLine.start.row;\n if (end >= last) {\n if (start < last) {\n if (start >= first)\n rowCount -= last-start;\n else\n rowCount = 0; // in one fold\n }\n break;\n } else if (end >= first){\n if (start >= first) // fold inside range\n rowCount -= end-start;\n else\n rowCount -= end-first+1;\n }\n }\n return rowCount;\n };\n\n this.$addFoldLine = function(foldLine) {\n this.$foldData.push(foldLine);\n this.$foldData.sort(function(a, b) {\n return a.start.row - b.start.row;\n });\n return foldLine;\n };\n this.addFold = function(placeholder, range) {\n var foldData = this.$foldData;\n var added = false;\n var fold;\n \n if (placeholder instanceof Fold)\n fold = placeholder;\n else {\n fold = new Fold(range, placeholder);\n fold.collapseChildren = range.collapseChildren;\n }\n this.$clipRangeToDocument(fold.range);\n\n var startRow = fold.start.row;\n var startColumn = fold.start.column;\n var endRow = fold.end.row;\n var endColumn = fold.end.column;\n if (!(startRow < endRow || \n startRow == endRow && startColumn <= endColumn - 2))\n throw new Error(\"The range has to be at least 2 characters width\");\n\n var startFold = this.getFoldAt(startRow, startColumn, 1);\n var endFold = this.getFoldAt(endRow, endColumn, -1);\n if (startFold && endFold == startFold)\n return startFold.addSubFold(fold);\n\n if (startFold && !startFold.range.isStart(startRow, startColumn))\n this.removeFold(startFold);\n \n if (endFold && !endFold.range.isEnd(endRow, endColumn))\n this.removeFold(endFold);\n var folds = this.getFoldsInRange(fold.range);\n if (folds.length > 0) {\n this.removeFolds(folds);\n folds.forEach(function(subFold) {\n fold.addSubFold(subFold);\n });\n }\n\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (endRow == foldLine.start.row) {\n foldLine.addFold(fold);\n added = true;\n break;\n } else if (startRow == foldLine.end.row) {\n foldLine.addFold(fold);\n added = true;\n if (!fold.sameRow) {\n var foldLineNext = foldData[i + 1];\n if (foldLineNext && foldLineNext.start.row == endRow) {\n foldLine.merge(foldLineNext);\n break;\n }\n }\n break;\n } else if (endRow <= foldLine.start.row) {\n break;\n }\n }\n\n if (!added)\n foldLine = this.$addFoldLine(new FoldLine(this.$foldData, fold));\n\n if (this.$useWrapMode)\n this.$updateWrapData(foldLine.start.row, foldLine.start.row);\n else\n this.$updateRowLengthCache(foldLine.start.row, foldLine.start.row);\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"add\" });\n\n return fold;\n };\n\n this.addFolds = function(folds) {\n folds.forEach(function(fold) {\n this.addFold(fold);\n }, this);\n };\n\n this.removeFold = function(fold) {\n var foldLine = fold.foldLine;\n var startRow = foldLine.start.row;\n var endRow = foldLine.end.row;\n\n var foldLines = this.$foldData;\n var folds = foldLine.folds;\n if (folds.length == 1) {\n foldLines.splice(foldLines.indexOf(foldLine), 1);\n } else\n if (foldLine.range.isEnd(fold.end.row, fold.end.column)) {\n folds.pop();\n foldLine.end.row = folds[folds.length - 1].end.row;\n foldLine.end.column = folds[folds.length - 1].end.column;\n } else\n if (foldLine.range.isStart(fold.start.row, fold.start.column)) {\n folds.shift();\n foldLine.start.row = folds[0].start.row;\n foldLine.start.column = folds[0].start.column;\n } else\n if (fold.sameRow) {\n folds.splice(folds.indexOf(fold), 1);\n } else\n {\n var newFoldLine = foldLine.split(fold.start.row, fold.start.column);\n folds = newFoldLine.folds;\n folds.shift();\n newFoldLine.start.row = folds[0].start.row;\n newFoldLine.start.column = folds[0].start.column;\n }\n\n if (!this.$updating) {\n if (this.$useWrapMode)\n this.$updateWrapData(startRow, endRow);\n else\n this.$updateRowLengthCache(startRow, endRow);\n }\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"remove\" });\n };\n\n this.removeFolds = function(folds) {\n var cloneFolds = [];\n for (var i = 0; i < folds.length; i++) {\n cloneFolds.push(folds[i]);\n }\n\n cloneFolds.forEach(function(fold) {\n this.removeFold(fold);\n }, this);\n this.$modified = true;\n };\n\n this.expandFold = function(fold) {\n this.removeFold(fold);\n fold.subFolds.forEach(function(subFold) {\n fold.restoreRange(subFold);\n this.addFold(subFold);\n }, this);\n if (fold.collapseChildren > 0) {\n this.foldAll(fold.start.row+1, fold.end.row, fold.collapseChildren-1);\n }\n fold.subFolds = [];\n };\n\n this.expandFolds = function(folds) {\n folds.forEach(function(fold) {\n this.expandFold(fold);\n }, this);\n };\n\n this.unfold = function(location, expandInner) {\n var range, folds;\n if (location == null) {\n range = new Range(0, 0, this.getLength(), 0);\n expandInner = true;\n } else if (typeof location == \"number\")\n range = new Range(location, 0, location, this.getLine(location).length);\n else if (\"row\" in location)\n range = Range.fromPoints(location, location);\n else\n range = location;\n \n folds = this.getFoldsInRangeList(range);\n if (expandInner) {\n this.removeFolds(folds);\n } else {\n var subFolds = folds;\n while (subFolds.length) {\n this.expandFolds(subFolds);\n subFolds = this.getFoldsInRangeList(range);\n }\n }\n if (folds.length)\n return folds;\n };\n this.isRowFolded = function(docRow, startFoldRow) {\n return !!this.getFoldLine(docRow, startFoldRow);\n };\n\n this.getRowFoldEnd = function(docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.end.row : docRow;\n };\n\n this.getRowFoldStart = function(docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.start.row : docRow;\n };\n\n this.getFoldDisplayLine = function(foldLine, endRow, endColumn, startRow, startColumn) {\n if (startRow == null)\n startRow = foldLine.start.row;\n if (startColumn == null)\n startColumn = 0;\n if (endRow == null)\n endRow = foldLine.end.row;\n if (endColumn == null)\n endColumn = this.getLine(endRow).length;\n var doc = this.doc;\n var textLine = \"\";\n\n foldLine.walk(function(placeholder, row, column, lastColumn) {\n if (row < startRow)\n return;\n if (row == startRow) {\n if (column < startColumn)\n return;\n lastColumn = Math.max(startColumn, lastColumn);\n }\n\n if (placeholder != null) {\n textLine += placeholder;\n } else {\n textLine += doc.getLine(row).substring(lastColumn, column);\n }\n }, endRow, endColumn);\n return textLine;\n };\n\n this.getDisplayLine = function(row, endColumn, startRow, startColumn) {\n var foldLine = this.getFoldLine(row);\n\n if (!foldLine) {\n var line;\n line = this.doc.getLine(row);\n return line.substring(startColumn || 0, endColumn || line.length);\n } else {\n return this.getFoldDisplayLine(\n foldLine, row, endColumn, startRow, startColumn);\n }\n };\n\n this.$cloneFoldData = function() {\n var fd = [];\n fd = this.$foldData.map(function(foldLine) {\n var folds = foldLine.folds.map(function(fold) {\n return fold.clone();\n });\n return new FoldLine(fd, folds);\n });\n\n return fd;\n };\n\n this.toggleFold = function(tryToUnfold) {\n var selection = this.selection;\n var range = selection.getRange();\n var fold;\n var bracketPos;\n\n if (range.isEmpty()) {\n var cursor = range.start;\n fold = this.getFoldAt(cursor.row, cursor.column);\n\n if (fold) {\n this.expandFold(fold);\n return;\n } else if (bracketPos = this.findMatchingBracket(cursor)) {\n if (range.comparePoint(bracketPos) == 1) {\n range.end = bracketPos;\n } else {\n range.start = bracketPos;\n range.start.column++;\n range.end.column--;\n }\n } else if (bracketPos = this.findMatchingBracket({row: cursor.row, column: cursor.column + 1})) {\n if (range.comparePoint(bracketPos) == 1)\n range.end = bracketPos;\n else\n range.start = bracketPos;\n\n range.start.column++;\n } else {\n range = this.getCommentFoldRange(cursor.row, cursor.column) || range;\n }\n } else {\n var folds = this.getFoldsInRange(range);\n if (tryToUnfold && folds.length) {\n this.expandFolds(folds);\n return;\n } else if (folds.length == 1 ) {\n fold = folds[0];\n }\n }\n\n if (!fold)\n fold = this.getFoldAt(range.start.row, range.start.column);\n\n if (fold && fold.range.toString() == range.toString()) {\n this.expandFold(fold);\n return;\n }\n\n var placeholder = \"...\";\n if (!range.isMultiLine()) {\n placeholder = this.getTextRange(range);\n if (placeholder.length < 4)\n return;\n placeholder = placeholder.trim().substring(0, 2) + \"..\";\n }\n\n this.addFold(placeholder, range);\n };\n\n this.getCommentFoldRange = function(row, column, dir) {\n var iterator = new TokenIterator(this, row, column);\n var token = iterator.getCurrentToken();\n var type = token.type;\n if (token && /^comment|string/.test(type)) {\n type = type.match(/comment|string/)[0];\n if (type == \"comment\")\n type += \"|doc-start\";\n var re = new RegExp(type);\n var range = new Range();\n if (dir != 1) {\n do {\n token = iterator.stepBackward();\n } while (token && re.test(token.type));\n iterator.stepForward();\n }\n \n range.start.row = iterator.getCurrentTokenRow();\n range.start.column = iterator.getCurrentTokenColumn() + 2;\n\n iterator = new TokenIterator(this, row, column);\n \n if (dir != -1) {\n var lastRow = -1;\n do {\n token = iterator.stepForward();\n if (lastRow == -1) {\n var state = this.getState(iterator.$row);\n if (!re.test(state))\n lastRow = iterator.$row;\n } else if (iterator.$row > lastRow) {\n break;\n }\n } while (token && re.test(token.type));\n token = iterator.stepBackward();\n } else\n token = iterator.getCurrentToken();\n\n range.end.row = iterator.getCurrentTokenRow();\n range.end.column = iterator.getCurrentTokenColumn() + token.value.length - 2;\n return range;\n }\n };\n\n this.foldAll = function(startRow, endRow, depth) {\n if (depth == undefined)\n depth = 100000; // JSON.stringify doesn't hanle Infinity\n var foldWidgets = this.foldWidgets;\n if (!foldWidgets)\n return; // mode doesn't support folding\n endRow = endRow || this.getLength();\n startRow = startRow || 0;\n for (var row = startRow; row < endRow; row++) {\n if (foldWidgets[row] == null)\n foldWidgets[row] = this.getFoldWidget(row);\n if (foldWidgets[row] != \"start\")\n continue;\n\n var range = this.getFoldWidgetRange(row);\n if (range && range.isMultiLine()\n && range.end.row <= endRow\n && range.start.row >= startRow\n ) {\n row = range.end.row;\n try {\n var fold = this.addFold(\"...\", range);\n if (fold)\n fold.collapseChildren = depth;\n } catch(e) {}\n }\n }\n };\n this.$foldStyles = {\n \"manual\": 1,\n \"markbegin\": 1,\n \"markbeginend\": 1\n };\n this.$foldStyle = \"markbegin\";\n this.setFoldStyle = function(style) {\n if (!this.$foldStyles[style])\n throw new Error(\"invalid fold style: \" + style + \"[\" + Object.keys(this.$foldStyles).join(\", \") + \"]\");\n \n if (this.$foldStyle == style)\n return;\n\n this.$foldStyle = style;\n \n if (style == \"manual\")\n this.unfold();\n var mode = this.$foldMode;\n this.$setFolding(null);\n this.$setFolding(mode);\n };\n\n this.$setFolding = function(foldMode) {\n if (this.$foldMode == foldMode)\n return;\n \n this.$foldMode = foldMode;\n \n this.off('change', this.$updateFoldWidgets);\n this.off('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n this._signal(\"changeAnnotation\");\n \n if (!foldMode || this.$foldStyle == \"manual\") {\n this.foldWidgets = null;\n return;\n }\n \n this.foldWidgets = [];\n this.getFoldWidget = foldMode.getFoldWidget.bind(foldMode, this, this.$foldStyle);\n this.getFoldWidgetRange = foldMode.getFoldWidgetRange.bind(foldMode, this, this.$foldStyle);\n \n this.$updateFoldWidgets = this.updateFoldWidgets.bind(this);\n this.$tokenizerUpdateFoldWidgets = this.tokenizerUpdateFoldWidgets.bind(this);\n this.on('change', this.$updateFoldWidgets);\n this.on('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n };\n\n this.getParentFoldRangeData = function (row, ignoreCurrent) {\n var fw = this.foldWidgets;\n if (!fw || (ignoreCurrent && fw[row]))\n return {};\n\n var i = row - 1, firstRange;\n while (i >= 0) {\n var c = fw[i];\n if (c == null)\n c = fw[i] = this.getFoldWidget(i);\n\n if (c == \"start\") {\n var range = this.getFoldWidgetRange(i);\n if (!firstRange)\n firstRange = range;\n if (range && range.end.row >= row)\n break;\n }\n i--;\n }\n\n return {\n range: i !== -1 && range,\n firstRange: firstRange\n };\n };\n\n this.onFoldWidgetClick = function(row, e) {\n e = e.domEvent;\n var options = {\n children: e.shiftKey,\n all: e.ctrlKey || e.metaKey,\n siblings: e.altKey\n };\n \n var range = this.$toggleFoldWidget(row, options);\n if (!range) {\n var el = (e.target || e.srcElement);\n if (el && /ace_fold-widget/.test(el.className))\n el.className += \" ace_invalid\";\n }\n };\n \n this.$toggleFoldWidget = function(row, options) {\n if (!this.getFoldWidget)\n return;\n var type = this.getFoldWidget(row);\n var line = this.getLine(row);\n\n var dir = type === \"end\" ? -1 : 1;\n var fold = this.getFoldAt(row, dir === -1 ? 0 : line.length, dir);\n\n if (fold) {\n if (options.children || options.all)\n this.removeFold(fold);\n else\n this.expandFold(fold);\n return fold;\n }\n\n var range = this.getFoldWidgetRange(row, true);\n if (range && !range.isMultiLine()) {\n fold = this.getFoldAt(range.start.row, range.start.column, 1);\n if (fold && range.isEqual(fold.range)) {\n this.removeFold(fold);\n return fold;\n }\n }\n \n if (options.siblings) {\n var data = this.getParentFoldRangeData(row);\n if (data.range) {\n var startRow = data.range.start.row + 1;\n var endRow = data.range.end.row;\n }\n this.foldAll(startRow, endRow, options.all ? 10000 : 0);\n } else if (options.children) {\n endRow = range ? range.end.row : this.getLength();\n this.foldAll(row + 1, endRow, options.all ? 10000 : 0);\n } else if (range) {\n if (options.all) \n range.collapseChildren = 10000;\n this.addFold(\"...\", range);\n }\n \n return range;\n };\n \n \n \n this.toggleFoldWidget = function(toggleParent) {\n var row = this.selection.getCursor().row;\n row = this.getRowFoldStart(row);\n var range = this.$toggleFoldWidget(row, {});\n \n if (range)\n return;\n var data = this.getParentFoldRangeData(row, true);\n range = data.range || data.firstRange;\n \n if (range) {\n row = range.start.row;\n var fold = this.getFoldAt(row, this.getLine(row).length, 1);\n\n if (fold) {\n this.removeFold(fold);\n } else {\n this.addFold(\"...\", range);\n }\n }\n };\n\n this.updateFoldWidgets = function(delta) {\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n\n if (len === 0) {\n this.foldWidgets[firstRow] = null;\n } else if (delta.action == 'remove') {\n this.foldWidgets.splice(firstRow, len + 1, null);\n } else {\n var args = Array(len + 1);\n args.unshift(firstRow, 1);\n this.foldWidgets.splice.apply(this.foldWidgets, args);\n }\n };\n this.tokenizerUpdateFoldWidgets = function(e) {\n var rows = e.data;\n if (rows.first != rows.last) {\n if (this.foldWidgets.length > rows.first)\n this.foldWidgets.splice(rows.first, this.foldWidgets.length);\n }\n };\n}\n\nexports.Folding = Folding;\n\n});\n\nace.define(\"ace/edit_session/bracket_match\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\nvar Range = acequire(\"../range\").Range;\n\n\nfunction BracketMatch() {\n\n this.findMatchingBracket = function(position, chr) {\n if (position.column == 0) return null;\n\n var charBeforeCursor = chr || this.getLine(position.row).charAt(position.column-1);\n if (charBeforeCursor == \"\") return null;\n\n var match = charBeforeCursor.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match)\n return null;\n\n if (match[1])\n return this.$findClosingBracket(match[1], position);\n else\n return this.$findOpeningBracket(match[2], position);\n };\n \n this.getBracketRange = function(pos) {\n var line = this.getLine(pos.row);\n var before = true, range;\n\n var chr = line.charAt(pos.column-1);\n var match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match) {\n chr = line.charAt(pos.column);\n pos = {row: pos.row, column: pos.column + 1};\n match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n before = false;\n }\n if (!match)\n return null;\n\n if (match[1]) {\n var bracketPos = this.$findClosingBracket(match[1], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(pos, bracketPos);\n if (!before) {\n range.end.column++;\n range.start.column--;\n }\n range.cursor = range.end;\n } else {\n var bracketPos = this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(bracketPos, pos);\n if (!before) {\n range.start.column++;\n range.end.column--;\n }\n range.cursor = range.start;\n }\n \n return range;\n };\n\n this.$brackets = {\n \")\": \"(\",\n \"(\": \")\",\n \"]\": \"[\",\n \"[\": \"]\",\n \"{\": \"}\",\n \"}\": \"{\"\n };\n\n this.$findOpeningBracket = function(bracket, position, typeRe) {\n var openBracket = this.$brackets[bracket];\n var depth = 1;\n\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n \n if (!typeRe){\n typeRe = new RegExp(\n \"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"rparen\", \".paren\")\n .replace(/\\b(?:end)\\b/, \"(?:start|begin|end)\")\n + \")+\"\n );\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn() - 2;\n var value = token.value;\n \n while (true) {\n \n while (valueIndex >= 0) {\n var chr = value.charAt(valueIndex);\n if (chr == openBracket) {\n depth -= 1;\n if (depth == 0) {\n return {row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn()};\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex -= 1;\n }\n do {\n token = iterator.stepBackward();\n } while (token && !typeRe.test(token.type));\n\n if (token == null)\n break;\n \n value = token.value;\n valueIndex = value.length - 1;\n }\n \n return null;\n };\n\n this.$findClosingBracket = function(bracket, position, typeRe) {\n var closingBracket = this.$brackets[bracket];\n var depth = 1;\n\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n\n if (!typeRe){\n typeRe = new RegExp(\n \"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"lparen\", \".paren\")\n .replace(/\\b(?:start|begin)\\b/, \"(?:start|begin|end)\")\n + \")+\"\n );\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn();\n\n while (true) {\n\n var value = token.value;\n var valueLength = value.length;\n while (valueIndex < valueLength) {\n var chr = value.charAt(valueIndex);\n if (chr == closingBracket) {\n depth -= 1;\n if (depth == 0) {\n return {row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn()};\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex += 1;\n }\n do {\n token = iterator.stepForward();\n } while (token && !typeRe.test(token.type));\n\n if (token == null)\n break;\n\n valueIndex = 0;\n }\n \n return null;\n };\n}\nexports.BracketMatch = BracketMatch;\n\n});\n\nace.define(\"ace/edit_session\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/bidihandler\",\"ace/config\",\"ace/lib/event_emitter\",\"ace/selection\",\"ace/mode/text\",\"ace/range\",\"ace/document\",\"ace/background_tokenizer\",\"ace/search_highlight\",\"ace/edit_session/folding\",\"ace/edit_session/bracket_match\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar lang = acequire(\"./lib/lang\");\nvar BidiHandler = acequire(\"./bidihandler\").BidiHandler;\nvar config = acequire(\"./config\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar Selection = acequire(\"./selection\").Selection;\nvar TextMode = acequire(\"./mode/text\").Mode;\nvar Range = acequire(\"./range\").Range;\nvar Document = acequire(\"./document\").Document;\nvar BackgroundTokenizer = acequire(\"./background_tokenizer\").BackgroundTokenizer;\nvar SearchHighlight = acequire(\"./search_highlight\").SearchHighlight;\n\nvar EditSession = function(text, mode) {\n this.$breakpoints = [];\n this.$decorations = [];\n this.$frontMarkers = {};\n this.$backMarkers = {};\n this.$markerId = 1;\n this.$undoSelect = true;\n\n this.$foldData = [];\n this.id = \"session\" + (++EditSession.$uid);\n this.$foldData.toString = function() {\n return this.join(\"\\n\");\n };\n this.on(\"changeFold\", this.onChangeFold.bind(this));\n this.$onChange = this.onChange.bind(this);\n\n if (typeof text != \"object\" || !text.getLine)\n text = new Document(text);\n\n this.$bidiHandler = new BidiHandler(this);\n this.setDocument(text);\n this.selection = new Selection(this);\n\n config.resetOptions(this);\n this.setMode(mode);\n config._signal(\"session\", this);\n};\n\n\nEditSession.$uid = 0;\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.setDocument = function(doc) {\n if (this.doc)\n this.doc.removeListener(\"change\", this.$onChange);\n\n this.doc = doc;\n doc.on(\"change\", this.$onChange);\n\n if (this.bgTokenizer)\n this.bgTokenizer.setDocument(this.getDocument());\n\n this.resetCaches();\n };\n this.getDocument = function() {\n return this.doc;\n };\n this.$resetRowCache = function(docRow) {\n if (!docRow) {\n this.$docRowCache = [];\n this.$screenRowCache = [];\n return;\n }\n var l = this.$docRowCache.length;\n var i = this.$getRowCacheIndex(this.$docRowCache, docRow) + 1;\n if (l > i) {\n this.$docRowCache.splice(i, l);\n this.$screenRowCache.splice(i, l);\n }\n };\n\n this.$getRowCacheIndex = function(cacheArray, val) {\n var low = 0;\n var hi = cacheArray.length - 1;\n\n while (low <= hi) {\n var mid = (low + hi) >> 1;\n var c = cacheArray[mid];\n\n if (val > c)\n low = mid + 1;\n else if (val < c)\n hi = mid - 1;\n else\n return mid;\n }\n\n return low -1;\n };\n\n this.resetCaches = function() {\n this.$modified = true;\n this.$wrapData = [];\n this.$rowLengthCache = [];\n this.$resetRowCache(0);\n if (this.bgTokenizer)\n this.bgTokenizer.start(0);\n };\n\n this.onChangeFold = function(e) {\n var fold = e.data;\n this.$resetRowCache(fold.start.row);\n };\n\n this.onChange = function(delta) {\n this.$modified = true;\n this.$bidiHandler.onChange(delta);\n this.$resetRowCache(delta.start.row);\n\n var removedFolds = this.$updateInternalDataOnChange(delta);\n if (!this.$fromUndo && this.$undoManager && !delta.ignore) {\n this.$deltasDoc.push(delta);\n if (removedFolds && removedFolds.length != 0) {\n this.$deltasFold.push({\n action: \"removeFolds\",\n folds: removedFolds\n });\n }\n\n this.$informUndoManager.schedule();\n }\n\n this.bgTokenizer && this.bgTokenizer.$updateOnChange(delta);\n this._signal(\"change\", delta);\n };\n this.setValue = function(text) {\n this.doc.setValue(text);\n this.selection.moveTo(0, 0);\n\n this.$resetRowCache(0);\n this.$deltas = [];\n this.$deltasDoc = [];\n this.$deltasFold = [];\n this.setUndoManager(this.$undoManager);\n this.getUndoManager().reset();\n };\n this.getValue =\n this.toString = function() {\n return this.doc.getValue();\n };\n this.getSelection = function() {\n return this.selection;\n };\n this.getState = function(row) {\n return this.bgTokenizer.getState(row);\n };\n this.getTokens = function(row) {\n return this.bgTokenizer.getTokens(row);\n };\n this.getTokenAt = function(row, column) {\n var tokens = this.bgTokenizer.getTokens(row);\n var token, c = 0;\n if (column == null) {\n var i = tokens.length - 1;\n c = this.getLine(row).length;\n } else {\n for (var i = 0; i < tokens.length; i++) {\n c += tokens[i].value.length;\n if (c >= column)\n break;\n }\n }\n token = tokens[i];\n if (!token)\n return null;\n token.index = i;\n token.start = c - token.value.length;\n return token;\n };\n this.setUndoManager = function(undoManager) {\n this.$undoManager = undoManager;\n this.$deltas = [];\n this.$deltasDoc = [];\n this.$deltasFold = [];\n\n if (this.$informUndoManager)\n this.$informUndoManager.cancel();\n\n if (undoManager) {\n var self = this;\n\n this.$syncInformUndoManager = function() {\n self.$informUndoManager.cancel();\n\n if (self.$deltasFold.length) {\n self.$deltas.push({\n group: \"fold\",\n deltas: self.$deltasFold\n });\n self.$deltasFold = [];\n }\n\n if (self.$deltasDoc.length) {\n self.$deltas.push({\n group: \"doc\",\n deltas: self.$deltasDoc\n });\n self.$deltasDoc = [];\n }\n\n if (self.$deltas.length > 0) {\n undoManager.execute({\n action: \"aceupdate\",\n args: [self.$deltas, self],\n merge: self.mergeUndoDeltas\n });\n }\n self.mergeUndoDeltas = false;\n self.$deltas = [];\n };\n this.$informUndoManager = lang.delayedCall(this.$syncInformUndoManager);\n }\n };\n this.markUndoGroup = function() {\n if (this.$syncInformUndoManager)\n this.$syncInformUndoManager();\n };\n \n this.$defaultUndoManager = {\n undo: function() {},\n redo: function() {},\n reset: function() {}\n };\n this.getUndoManager = function() {\n return this.$undoManager || this.$defaultUndoManager;\n };\n this.getTabString = function() {\n if (this.getUseSoftTabs()) {\n return lang.stringRepeat(\" \", this.getTabSize());\n } else {\n return \"\\t\";\n }\n };\n this.setUseSoftTabs = function(val) {\n this.setOption(\"useSoftTabs\", val);\n };\n this.getUseSoftTabs = function() {\n return this.$useSoftTabs && !this.$mode.$indentWithTabs;\n };\n this.setTabSize = function(tabSize) {\n this.setOption(\"tabSize\", tabSize);\n };\n this.getTabSize = function() {\n return this.$tabSize;\n };\n this.isTabStop = function(position) {\n return this.$useSoftTabs && (position.column % this.$tabSize === 0);\n };\n this.setNavigateWithinSoftTabs = function (navigateWithinSoftTabs) {\n this.setOption(\"navigateWithinSoftTabs\", navigateWithinSoftTabs);\n };\n this.getNavigateWithinSoftTabs = function() {\n return this.$navigateWithinSoftTabs;\n };\n\n this.$overwrite = false;\n this.setOverwrite = function(overwrite) {\n this.setOption(\"overwrite\", overwrite);\n };\n this.getOverwrite = function() {\n return this.$overwrite;\n };\n this.toggleOverwrite = function() {\n this.setOverwrite(!this.$overwrite);\n };\n this.addGutterDecoration = function(row, className) {\n if (!this.$decorations[row])\n this.$decorations[row] = \"\";\n this.$decorations[row] += \" \" + className;\n this._signal(\"changeBreakpoint\", {});\n };\n this.removeGutterDecoration = function(row, className) {\n this.$decorations[row] = (this.$decorations[row] || \"\").replace(\" \" + className, \"\");\n this._signal(\"changeBreakpoint\", {});\n };\n this.getBreakpoints = function() {\n return this.$breakpoints;\n };\n this.setBreakpoints = function(rows) {\n this.$breakpoints = [];\n for (var i=0; i<rows.length; i++) {\n this.$breakpoints[rows[i]] = \"ace_breakpoint\";\n }\n this._signal(\"changeBreakpoint\", {});\n };\n this.clearBreakpoints = function() {\n this.$breakpoints = [];\n this._signal(\"changeBreakpoint\", {});\n };\n this.setBreakpoint = function(row, className) {\n if (className === undefined)\n className = \"ace_breakpoint\";\n if (className)\n this.$breakpoints[row] = className;\n else\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n this.clearBreakpoint = function(row) {\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n this.addMarker = function(range, clazz, type, inFront) {\n var id = this.$markerId++;\n\n var marker = {\n range : range,\n type : type || \"line\",\n renderer: typeof type == \"function\" ? type : null,\n clazz : clazz,\n inFront: !!inFront,\n id: id\n };\n\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n } else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n\n return id;\n };\n this.addDynamicMarker = function(marker, inFront) {\n if (!marker.update)\n return;\n var id = this.$markerId++;\n marker.id = id;\n marker.inFront = !!inFront;\n\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n } else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n\n return marker;\n };\n this.removeMarker = function(markerId) {\n var marker = this.$frontMarkers[markerId] || this.$backMarkers[markerId];\n if (!marker)\n return;\n\n var markers = marker.inFront ? this.$frontMarkers : this.$backMarkers;\n if (marker) {\n delete (markers[markerId]);\n this._signal(marker.inFront ? \"changeFrontMarker\" : \"changeBackMarker\");\n }\n };\n this.getMarkers = function(inFront) {\n return inFront ? this.$frontMarkers : this.$backMarkers;\n };\n\n this.highlight = function(re) {\n if (!this.$searchHighlight) {\n var highlight = new SearchHighlight(null, \"ace_selected-word\", \"text\");\n this.$searchHighlight = this.addDynamicMarker(highlight);\n }\n this.$searchHighlight.setRegexp(re);\n };\n this.highlightLines = function(startRow, endRow, clazz, inFront) {\n if (typeof endRow != \"number\") {\n clazz = endRow;\n endRow = startRow;\n }\n if (!clazz)\n clazz = \"ace_step\";\n\n var range = new Range(startRow, 0, endRow, Infinity);\n range.id = this.addMarker(range, clazz, \"fullLine\", inFront);\n return range;\n };\n this.setAnnotations = function(annotations) {\n this.$annotations = annotations;\n this._signal(\"changeAnnotation\", {});\n };\n this.getAnnotations = function() {\n return this.$annotations || [];\n };\n this.clearAnnotations = function() {\n this.setAnnotations([]);\n };\n this.$detectNewLine = function(text) {\n var match = text.match(/^.*?(\\r?\\n)/m);\n if (match) {\n this.$autoNewLine = match[1];\n } else {\n this.$autoNewLine = \"\\n\";\n }\n };\n this.getWordRange = function(row, column) {\n var line = this.getLine(row);\n\n var inToken = false;\n if (column > 0)\n inToken = !!line.charAt(column - 1).match(this.tokenRe);\n\n if (!inToken)\n inToken = !!line.charAt(column).match(this.tokenRe);\n\n if (inToken)\n var re = this.tokenRe;\n else if (/^\\s+$/.test(line.slice(column-1, column+1)))\n var re = /\\s/;\n else\n var re = this.nonTokenRe;\n\n var start = column;\n if (start > 0) {\n do {\n start--;\n }\n while (start >= 0 && line.charAt(start).match(re));\n start++;\n }\n\n var end = column;\n while (end < line.length && line.charAt(end).match(re)) {\n end++;\n }\n\n return new Range(row, start, row, end);\n };\n this.getAWordRange = function(row, column) {\n var wordRange = this.getWordRange(row, column);\n var line = this.getLine(wordRange.end.row);\n\n while (line.charAt(wordRange.end.column).match(/[ \\t]/)) {\n wordRange.end.column += 1;\n }\n return wordRange;\n };\n this.setNewLineMode = function(newLineMode) {\n this.doc.setNewLineMode(newLineMode);\n };\n this.getNewLineMode = function() {\n return this.doc.getNewLineMode();\n };\n this.setUseWorker = function(useWorker) { this.setOption(\"useWorker\", useWorker); };\n this.getUseWorker = function() { return this.$useWorker; };\n this.onReloadTokenizer = function(e) {\n var rows = e.data;\n this.bgTokenizer.start(rows.first);\n this._signal(\"tokenizerUpdate\", e);\n };\n\n this.$modes = {};\n this.$mode = null;\n this.$modeId = null;\n this.setMode = function(mode, cb) {\n if (mode && typeof mode === \"object\") {\n if (mode.getTokenizer)\n return this.$onChangeMode(mode);\n var options = mode;\n var path = options.path;\n } else {\n path = mode || \"ace/mode/text\";\n }\n if (!this.$modes[\"ace/mode/text\"])\n this.$modes[\"ace/mode/text\"] = new TextMode();\n\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n cb && cb();\n return;\n }\n this.$modeId = path;\n config.loadModule([\"mode\", path], function(m) {\n if (this.$modeId !== path)\n return cb && cb();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n } else if (m && m.Mode) {\n m = new m.Mode(options);\n if (!options) {\n this.$modes[path] = m;\n m.$id = path;\n }\n this.$onChangeMode(m);\n }\n cb && cb();\n }.bind(this));\n if (!this.$mode)\n this.$onChangeMode(this.$modes[\"ace/mode/text\"], true);\n };\n\n this.$onChangeMode = function(mode, $isPlaceholder) {\n if (!$isPlaceholder)\n this.$modeId = mode.$id;\n if (this.$mode === mode) \n return;\n\n this.$mode = mode;\n\n this.$stopWorker();\n\n if (this.$useWorker)\n this.$startWorker();\n\n var tokenizer = mode.getTokenizer();\n\n if(tokenizer.addEventListener !== undefined) {\n var onReloadTokenizer = this.onReloadTokenizer.bind(this);\n tokenizer.addEventListener(\"update\", onReloadTokenizer);\n }\n\n if (!this.bgTokenizer) {\n this.bgTokenizer = new BackgroundTokenizer(tokenizer);\n var _self = this;\n this.bgTokenizer.addEventListener(\"update\", function(e) {\n _self._signal(\"tokenizerUpdate\", e);\n });\n } else {\n this.bgTokenizer.setTokenizer(tokenizer);\n }\n\n this.bgTokenizer.setDocument(this.getDocument());\n\n this.tokenRe = mode.tokenRe;\n this.nonTokenRe = mode.nonTokenRe;\n\n \n if (!$isPlaceholder) {\n if (mode.attachToSession)\n mode.attachToSession(this);\n this.$options.wrapMethod.set.call(this, this.$wrapMethod);\n this.$setFolding(mode.foldingRules);\n this.bgTokenizer.start(0);\n this._emit(\"changeMode\");\n }\n };\n\n this.$stopWorker = function() {\n if (this.$worker) {\n this.$worker.terminate();\n this.$worker = null;\n }\n };\n\n this.$startWorker = function() {\n try {\n this.$worker = this.$mode.createWorker(this);\n } catch (e) {\n config.warn(\"Could not load worker\", e);\n this.$worker = null;\n }\n };\n this.getMode = function() {\n return this.$mode;\n };\n\n this.$scrollTop = 0;\n this.setScrollTop = function(scrollTop) {\n if (this.$scrollTop === scrollTop || isNaN(scrollTop))\n return;\n\n this.$scrollTop = scrollTop;\n this._signal(\"changeScrollTop\", scrollTop);\n };\n this.getScrollTop = function() {\n return this.$scrollTop;\n };\n\n this.$scrollLeft = 0;\n this.setScrollLeft = function(scrollLeft) {\n if (this.$scrollLeft === scrollLeft || isNaN(scrollLeft))\n return;\n\n this.$scrollLeft = scrollLeft;\n this._signal(\"changeScrollLeft\", scrollLeft);\n };\n this.getScrollLeft = function() {\n return this.$scrollLeft;\n };\n this.getScreenWidth = function() {\n this.$computeWidth();\n if (this.lineWidgets) \n return Math.max(this.getLineWidgetMaxWidth(), this.screenWidth);\n return this.screenWidth;\n };\n \n this.getLineWidgetMaxWidth = function() {\n if (this.lineWidgetsWidth != null) return this.lineWidgetsWidth;\n var width = 0;\n this.lineWidgets.forEach(function(w) {\n if (w && w.screenWidth > width)\n width = w.screenWidth;\n });\n return this.lineWidgetWidth = width;\n };\n\n this.$computeWidth = function(force) {\n if (this.$modified || force) {\n this.$modified = false;\n\n if (this.$useWrapMode)\n return this.screenWidth = this.$wrapLimit;\n\n var lines = this.doc.getAllLines();\n var cache = this.$rowLengthCache;\n var longestScreenLine = 0;\n var foldIndex = 0;\n var foldLine = this.$foldData[foldIndex];\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n var len = lines.length;\n\n for (var i = 0; i < len; i++) {\n if (i > foldStart) {\n i = foldLine.end.row + 1;\n if (i >= len)\n break;\n foldLine = this.$foldData[foldIndex++];\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n\n if (cache[i] == null)\n cache[i] = this.$getStringScreenWidth(lines[i])[0];\n\n if (cache[i] > longestScreenLine)\n longestScreenLine = cache[i];\n }\n this.screenWidth = longestScreenLine;\n }\n };\n this.getLine = function(row) {\n return this.doc.getLine(row);\n };\n this.getLines = function(firstRow, lastRow) {\n return this.doc.getLines(firstRow, lastRow);\n };\n this.getLength = function() {\n return this.doc.getLength();\n };\n this.getTextRange = function(range) {\n return this.doc.getTextRange(range || this.selection.getRange());\n };\n this.insert = function(position, text) {\n return this.doc.insert(position, text);\n };\n this.remove = function(range) {\n return this.doc.remove(range);\n };\n this.removeFullLines = function(firstRow, lastRow){\n return this.doc.removeFullLines(firstRow, lastRow);\n };\n this.undoChanges = function(deltas, dontSelect) {\n if (!deltas.length)\n return;\n\n this.$fromUndo = true;\n var lastUndoRange = null;\n for (var i = deltas.length - 1; i != -1; i--) {\n var delta = deltas[i];\n if (delta.group == \"doc\") {\n this.doc.revertDeltas(delta.deltas);\n lastUndoRange =\n this.$getUndoSelection(delta.deltas, true, lastUndoRange);\n } else {\n delta.deltas.forEach(function(foldDelta) {\n this.addFolds(foldDelta.folds);\n }, this);\n }\n }\n this.$fromUndo = false;\n lastUndoRange &&\n this.$undoSelect &&\n !dontSelect &&\n this.selection.setSelectionRange(lastUndoRange);\n return lastUndoRange;\n };\n this.redoChanges = function(deltas, dontSelect) {\n if (!deltas.length)\n return;\n\n this.$fromUndo = true;\n var lastUndoRange = null;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (delta.group == \"doc\") {\n this.doc.applyDeltas(delta.deltas);\n lastUndoRange =\n this.$getUndoSelection(delta.deltas, false, lastUndoRange);\n }\n }\n this.$fromUndo = false;\n lastUndoRange &&\n this.$undoSelect &&\n !dontSelect &&\n this.selection.setSelectionRange(lastUndoRange);\n return lastUndoRange;\n };\n this.setUndoSelect = function(enable) {\n this.$undoSelect = enable;\n };\n\n this.$getUndoSelection = function(deltas, isUndo, lastUndoRange) {\n function isInsert(delta) {\n return isUndo ? delta.action !== \"insert\" : delta.action === \"insert\";\n }\n\n var delta = deltas[0];\n var range, point;\n var lastDeltaIsInsert = false;\n if (isInsert(delta)) {\n range = Range.fromPoints(delta.start, delta.end);\n lastDeltaIsInsert = true;\n } else {\n range = Range.fromPoints(delta.start, delta.start);\n lastDeltaIsInsert = false;\n }\n\n for (var i = 1; i < deltas.length; i++) {\n delta = deltas[i];\n if (isInsert(delta)) {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range.setStart(point);\n }\n point = delta.end;\n if (range.compare(point.row, point.column) == 1) {\n range.setEnd(point);\n }\n lastDeltaIsInsert = true;\n } else {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range = Range.fromPoints(delta.start, delta.start);\n }\n lastDeltaIsInsert = false;\n }\n }\n if (lastUndoRange != null) {\n if (Range.comparePoints(lastUndoRange.start, range.start) === 0) {\n lastUndoRange.start.column += range.end.column - range.start.column;\n lastUndoRange.end.column += range.end.column - range.start.column;\n }\n\n var cmp = lastUndoRange.compareRange(range);\n if (cmp == 1) {\n range.setStart(lastUndoRange.start);\n } else if (cmp == -1) {\n range.setEnd(lastUndoRange.end);\n }\n }\n\n return range;\n };\n this.replace = function(range, text) {\n return this.doc.replace(range, text);\n };\n this.moveText = function(fromRange, toPosition, copy) {\n var text = this.getTextRange(fromRange);\n var folds = this.getFoldsInRange(fromRange);\n\n var toRange = Range.fromPoints(toPosition, toPosition);\n if (!copy) {\n this.remove(fromRange);\n var rowDiff = fromRange.start.row - fromRange.end.row;\n var collDiff = rowDiff ? -fromRange.end.column : fromRange.start.column - fromRange.end.column;\n if (collDiff) {\n if (toRange.start.row == fromRange.end.row && toRange.start.column > fromRange.end.column)\n toRange.start.column += collDiff;\n if (toRange.end.row == fromRange.end.row && toRange.end.column > fromRange.end.column)\n toRange.end.column += collDiff;\n }\n if (rowDiff && toRange.start.row >= fromRange.end.row) {\n toRange.start.row += rowDiff;\n toRange.end.row += rowDiff;\n }\n }\n\n toRange.end = this.insert(toRange.start, text);\n if (folds.length) {\n var oldStart = fromRange.start;\n var newStart = toRange.start;\n var rowDiff = newStart.row - oldStart.row;\n var collDiff = newStart.column - oldStart.column;\n this.addFolds(folds.map(function(x) {\n x = x.clone();\n if (x.start.row == oldStart.row)\n x.start.column += collDiff;\n if (x.end.row == oldStart.row)\n x.end.column += collDiff;\n x.start.row += rowDiff;\n x.end.row += rowDiff;\n return x;\n }));\n }\n\n return toRange;\n };\n this.indentRows = function(startRow, endRow, indentString) {\n indentString = indentString.replace(/\\t/g, this.getTabString());\n for (var row=startRow; row<=endRow; row++)\n this.doc.insertInLine({row: row, column: 0}, indentString);\n };\n this.outdentRows = function (range) {\n var rowRange = range.collapseRows();\n var deleteRange = new Range(0, 0, 0, 0);\n var size = this.getTabSize();\n\n for (var i = rowRange.start.row; i <= rowRange.end.row; ++i) {\n var line = this.getLine(i);\n\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n for (var j = 0; j < size; ++j)\n if (line.charAt(j) != ' ')\n break;\n if (j < size && line.charAt(j) == '\\t') {\n deleteRange.start.column = j;\n deleteRange.end.column = j + 1;\n } else {\n deleteRange.start.column = 0;\n deleteRange.end.column = j;\n }\n this.remove(deleteRange);\n }\n };\n\n this.$moveLines = function(firstRow, lastRow, dir) {\n firstRow = this.getRowFoldStart(firstRow);\n lastRow = this.getRowFoldEnd(lastRow);\n if (dir < 0) {\n var row = this.getRowFoldStart(firstRow + dir);\n if (row < 0) return 0;\n var diff = row-firstRow;\n } else if (dir > 0) {\n var row = this.getRowFoldEnd(lastRow + dir);\n if (row > this.doc.getLength()-1) return 0;\n var diff = row-lastRow;\n } else {\n firstRow = this.$clipRowToDocument(firstRow);\n lastRow = this.$clipRowToDocument(lastRow);\n var diff = lastRow - firstRow + 1;\n }\n\n var range = new Range(firstRow, 0, lastRow, Number.MAX_VALUE);\n var folds = this.getFoldsInRange(range).map(function(x){\n x = x.clone();\n x.start.row += diff;\n x.end.row += diff;\n return x;\n });\n \n var lines = dir == 0\n ? this.doc.getLines(firstRow, lastRow)\n : this.doc.removeFullLines(firstRow, lastRow);\n this.doc.insertFullLines(firstRow+diff, lines);\n folds.length && this.addFolds(folds);\n return diff;\n };\n this.moveLinesUp = function(firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, -1);\n };\n this.moveLinesDown = function(firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 1);\n };\n this.duplicateLines = function(firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 0);\n };\n\n\n this.$clipRowToDocument = function(row) {\n return Math.max(0, Math.min(row, this.doc.getLength()-1));\n };\n\n this.$clipColumnToRow = function(row, column) {\n if (column < 0)\n return 0;\n return Math.min(this.doc.getLine(row).length, column);\n };\n\n\n this.$clipPositionToDocument = function(row, column) {\n column = Math.max(0, column);\n\n if (row < 0) {\n row = 0;\n column = 0;\n } else {\n var len = this.doc.getLength();\n if (row >= len) {\n row = len - 1;\n column = this.doc.getLine(len-1).length;\n } else {\n column = Math.min(this.doc.getLine(row).length, column);\n }\n }\n\n return {\n row: row,\n column: column\n };\n };\n\n this.$clipRangeToDocument = function(range) {\n if (range.start.row < 0) {\n range.start.row = 0;\n range.start.column = 0;\n } else {\n range.start.column = this.$clipColumnToRow(\n range.start.row,\n range.start.column\n );\n }\n\n var len = this.doc.getLength() - 1;\n if (range.end.row > len) {\n range.end.row = len;\n range.end.column = this.doc.getLine(len).length;\n } else {\n range.end.column = this.$clipColumnToRow(\n range.end.row,\n range.end.column\n );\n }\n return range;\n };\n this.$wrapLimit = 80;\n this.$useWrapMode = false;\n this.$wrapLimitRange = {\n min : null,\n max : null\n };\n this.setUseWrapMode = function(useWrapMode) {\n if (useWrapMode != this.$useWrapMode) {\n this.$useWrapMode = useWrapMode;\n this.$modified = true;\n this.$resetRowCache(0);\n if (useWrapMode) {\n var len = this.getLength();\n this.$wrapData = Array(len);\n this.$updateWrapData(0, len - 1);\n }\n\n this._signal(\"changeWrapMode\");\n }\n };\n this.getUseWrapMode = function() {\n return this.$useWrapMode;\n };\n this.setWrapLimitRange = function(min, max) {\n if (this.$wrapLimitRange.min !== min || this.$wrapLimitRange.max !== max) {\n this.$wrapLimitRange = { min: min, max: max };\n this.$modified = true;\n this.$bidiHandler.markAsDirty();\n if (this.$useWrapMode)\n this._signal(\"changeWrapMode\");\n }\n };\n this.adjustWrapLimit = function(desiredLimit, $printMargin) {\n var limits = this.$wrapLimitRange;\n if (limits.max < 0)\n limits = {min: $printMargin, max: $printMargin};\n var wrapLimit = this.$constrainWrapLimit(desiredLimit, limits.min, limits.max);\n if (wrapLimit != this.$wrapLimit && wrapLimit > 1) {\n this.$wrapLimit = wrapLimit;\n this.$modified = true;\n if (this.$useWrapMode) {\n this.$updateWrapData(0, this.getLength() - 1);\n this.$resetRowCache(0);\n this._signal(\"changeWrapLimit\");\n }\n return true;\n }\n return false;\n };\n\n this.$constrainWrapLimit = function(wrapLimit, min, max) {\n if (min)\n wrapLimit = Math.max(min, wrapLimit);\n\n if (max)\n wrapLimit = Math.min(max, wrapLimit);\n\n return wrapLimit;\n };\n this.getWrapLimit = function() {\n return this.$wrapLimit;\n };\n this.setWrapLimit = function (limit) {\n this.setWrapLimitRange(limit, limit);\n };\n this.getWrapLimitRange = function() {\n return {\n min : this.$wrapLimitRange.min,\n max : this.$wrapLimitRange.max\n };\n };\n\n this.$updateInternalDataOnChange = function(delta) {\n var useWrapMode = this.$useWrapMode;\n var action = delta.action;\n var start = delta.start;\n var end = delta.end;\n var firstRow = start.row;\n var lastRow = end.row;\n var len = lastRow - firstRow;\n var removedFolds = null;\n \n this.$updating = true;\n if (len != 0) {\n if (action === \"remove\") {\n this[useWrapMode ? \"$wrapData\" : \"$rowLengthCache\"].splice(firstRow, len);\n\n var foldLines = this.$foldData;\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n\n var foldLine = this.getFoldLine(end.row);\n var idx = 0;\n if (foldLine) {\n foldLine.addRemoveChars(end.row, end.column, start.column - end.column);\n foldLine.shiftRow(-len);\n\n var foldLineBefore = this.getFoldLine(firstRow);\n if (foldLineBefore && foldLineBefore !== foldLine) {\n foldLineBefore.merge(foldLine);\n foldLine = foldLineBefore;\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= end.row) {\n foldLine.shiftRow(-len);\n }\n }\n\n lastRow = firstRow;\n } else {\n var args = Array(len);\n args.unshift(firstRow, 0);\n var arr = useWrapMode ? this.$wrapData : this.$rowLengthCache;\n arr.splice.apply(arr, args);\n var foldLines = this.$foldData;\n var foldLine = this.getFoldLine(firstRow);\n var idx = 0;\n if (foldLine) {\n var cmp = foldLine.range.compareInside(start.row, start.column);\n if (cmp == 0) {\n foldLine = foldLine.split(start.row, start.column);\n if (foldLine) {\n foldLine.shiftRow(len);\n foldLine.addRemoveChars(lastRow, 0, end.column - start.column);\n }\n } else\n if (cmp == -1) {\n foldLine.addRemoveChars(firstRow, 0, end.column - start.column);\n foldLine.shiftRow(len);\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= firstRow) {\n foldLine.shiftRow(len);\n }\n }\n }\n } else {\n len = Math.abs(delta.start.column - delta.end.column);\n if (action === \"remove\") {\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n\n len = -len;\n }\n var foldLine = this.getFoldLine(firstRow);\n if (foldLine) {\n foldLine.addRemoveChars(firstRow, start.column, len);\n }\n }\n\n if (useWrapMode && this.$wrapData.length != this.doc.getLength()) {\n console.error(\"doc.getLength() and $wrapData.length have to be the same!\");\n }\n this.$updating = false;\n\n if (useWrapMode)\n this.$updateWrapData(firstRow, lastRow);\n else\n this.$updateRowLengthCache(firstRow, lastRow);\n\n return removedFolds;\n };\n\n this.$updateRowLengthCache = function(firstRow, lastRow, b) {\n this.$rowLengthCache[firstRow] = null;\n this.$rowLengthCache[lastRow] = null;\n };\n\n this.$updateWrapData = function(firstRow, lastRow) {\n var lines = this.doc.getAllLines();\n var tabSize = this.getTabSize();\n var wrapData = this.$wrapData;\n var wrapLimit = this.$wrapLimit;\n var tokens;\n var foldLine;\n\n var row = firstRow;\n lastRow = Math.min(lastRow, lines.length - 1);\n while (row <= lastRow) {\n foldLine = this.getFoldLine(row, foldLine);\n if (!foldLine) {\n tokens = this.$getDisplayTokens(lines[row]);\n wrapData[row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row ++;\n } else {\n tokens = [];\n foldLine.walk(function(placeholder, row, column, lastColumn) {\n var walkTokens;\n if (placeholder != null) {\n walkTokens = this.$getDisplayTokens(\n placeholder, tokens.length);\n walkTokens[0] = PLACEHOLDER_START;\n for (var i = 1; i < walkTokens.length; i++) {\n walkTokens[i] = PLACEHOLDER_BODY;\n }\n } else {\n walkTokens = this.$getDisplayTokens(\n lines[row].substring(lastColumn, column),\n tokens.length);\n }\n tokens = tokens.concat(walkTokens);\n }.bind(this),\n foldLine.end.row,\n lines[foldLine.end.row].length + 1\n );\n\n wrapData[foldLine.start.row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row = foldLine.end.row + 1;\n }\n }\n };\n var CHAR = 1,\n CHAR_EXT = 2,\n PLACEHOLDER_START = 3,\n PLACEHOLDER_BODY = 4,\n PUNCTUATION = 9,\n SPACE = 10,\n TAB = 11,\n TAB_SPACE = 12;\n\n\n this.$computeWrapSplits = function(tokens, wrapLimit, tabSize) {\n if (tokens.length == 0) {\n return [];\n }\n\n var splits = [];\n var displayLength = tokens.length;\n var lastSplit = 0, lastDocSplit = 0;\n\n var isCode = this.$wrapAsCode;\n\n var indentedSoftWrap = this.$indentedSoftWrap;\n var maxIndent = wrapLimit <= Math.max(2 * tabSize, 8)\n || indentedSoftWrap === false ? 0 : Math.floor(wrapLimit / 2);\n\n function getWrapIndent() {\n var indentation = 0;\n if (maxIndent === 0)\n return indentation;\n if (indentedSoftWrap) {\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token == SPACE)\n indentation += 1;\n else if (token == TAB)\n indentation += tabSize;\n else if (token == TAB_SPACE)\n continue;\n else\n break;\n }\n }\n if (isCode && indentedSoftWrap !== false)\n indentation += tabSize;\n return Math.min(indentation, maxIndent);\n }\n function addSplit(screenPos) {\n var displayed = tokens.slice(lastSplit, screenPos);\n var len = displayed.length;\n displayed.join(\"\")\n .replace(/12/g, function() {\n len -= 1;\n })\n .replace(/2/g, function() {\n len -= 1;\n });\n\n if (!splits.length) {\n indent = getWrapIndent();\n splits.indent = indent;\n }\n lastDocSplit += len;\n splits.push(lastDocSplit);\n lastSplit = screenPos;\n }\n var indent = 0;\n while (displayLength - lastSplit > wrapLimit - indent) {\n var split = lastSplit + wrapLimit - indent;\n if (tokens[split - 1] >= SPACE && tokens[split] >= SPACE) {\n addSplit(split);\n continue;\n }\n if (tokens[split] == PLACEHOLDER_START || tokens[split] == PLACEHOLDER_BODY) {\n for (split; split != lastSplit - 1; split--) {\n if (tokens[split] == PLACEHOLDER_START) {\n break;\n }\n }\n if (split > lastSplit) {\n addSplit(split);\n continue;\n }\n split = lastSplit + wrapLimit;\n for (split; split < tokens.length; split++) {\n if (tokens[split] != PLACEHOLDER_BODY) {\n break;\n }\n }\n if (split == tokens.length) {\n break; // Breaks the while-loop.\n }\n addSplit(split);\n continue;\n }\n var minSplit = Math.max(split - (wrapLimit -(wrapLimit>>2)), lastSplit - 1);\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split --;\n }\n if (isCode) {\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split --;\n }\n while (split > minSplit && tokens[split] == PUNCTUATION) {\n split --;\n }\n } else {\n while (split > minSplit && tokens[split] < SPACE) {\n split --;\n }\n }\n if (split > minSplit) {\n addSplit(++split);\n continue;\n }\n split = lastSplit + wrapLimit;\n if (tokens[split] == CHAR_EXT)\n split--;\n addSplit(split - indent);\n }\n return splits;\n };\n this.$getDisplayTokens = function(str, offset) {\n var arr = [];\n var tabSize;\n offset = offset || 0;\n\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i);\n if (c == 9) {\n tabSize = this.getScreenTabSize(arr.length + offset);\n arr.push(TAB);\n for (var n = 1; n < tabSize; n++) {\n arr.push(TAB_SPACE);\n }\n }\n else if (c == 32) {\n arr.push(SPACE);\n } else if((c > 39 && c < 48) || (c > 57 && c < 64)) {\n arr.push(PUNCTUATION);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n arr.push(CHAR, CHAR_EXT);\n } else {\n arr.push(CHAR);\n }\n }\n return arr;\n };\n this.$getStringScreenWidth = function(str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn == 0)\n return [0, 0];\n if (maxScreenColumn == null)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charCodeAt(column);\n if (c == 9) {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n screenColumn += 2;\n } else {\n screenColumn += 1;\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n\n return [screenColumn, column];\n };\n\n this.lineWidgets = null;\n this.getRowLength = function(row) {\n if (this.lineWidgets)\n var h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n else \n h = 0;\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1 + h;\n } else {\n return this.$wrapData[row].length + 1 + h;\n }\n };\n this.getRowLineCount = function(row) {\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1;\n } else {\n return this.$wrapData[row].length + 1;\n }\n };\n\n this.getRowWrapIndent = function(screenRow) {\n if (this.$useWrapMode) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n var splits = this.$wrapData[pos.row];\n return splits.length && splits[0] < pos.column ? splits.indent : 0;\n } else {\n return 0;\n }\n };\n this.getScreenLastRowColumn = function(screenRow) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n return this.documentToScreenColumn(pos.row, pos.column);\n };\n this.getDocumentLastRowColumn = function(docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.getScreenLastRowColumn(screenRow);\n };\n this.getDocumentLastRowColumnPosition = function(docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.screenToDocumentPosition(screenRow, Number.MAX_VALUE / 10);\n };\n this.getRowSplitData = function(row) {\n if (!this.$useWrapMode) {\n return undefined;\n } else {\n return this.$wrapData[row];\n }\n };\n this.getScreenTabSize = function(screenColumn) {\n return this.$tabSize - screenColumn % this.$tabSize;\n };\n\n\n this.screenToDocumentRow = function(screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).row;\n };\n\n\n this.screenToDocumentColumn = function(screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).column;\n };\n this.screenToDocumentPosition = function(screenRow, screenColumn, offsetX) {\n if (screenRow < 0)\n return {row: 0, column: 0};\n\n var line;\n var docRow = 0;\n var docColumn = 0;\n var column;\n var row = 0;\n var rowLength = 0;\n\n var rowCache = this.$screenRowCache;\n var i = this.$getRowCacheIndex(rowCache, screenRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var docRow = this.$docRowCache[i];\n var doCache = screenRow > rowCache[l - 1];\n } else {\n var doCache = !l;\n }\n\n var maxRow = this.getLength() - 1;\n var foldLine = this.getNextFoldLine(docRow);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (row <= screenRow) {\n rowLength = this.getRowLength(docRow);\n if (row + rowLength > screenRow || docRow >= maxRow) {\n break;\n } else {\n row += rowLength;\n docRow++;\n if (docRow > foldStart) {\n docRow = foldLine.end.row+1;\n foldLine = this.getNextFoldLine(docRow, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n }\n\n if (doCache) {\n this.$docRowCache.push(docRow);\n this.$screenRowCache.push(row);\n }\n }\n\n if (foldLine && foldLine.start.row <= docRow) {\n line = this.getFoldDisplayLine(foldLine);\n docRow = foldLine.start.row;\n } else if (row + rowLength <= screenRow || docRow > maxRow) {\n return {\n row: maxRow,\n column: this.getLine(maxRow).length\n };\n } else {\n line = this.getLine(docRow);\n foldLine = null;\n }\n var wrapIndent = 0, splitIndex = Math.floor(screenRow - row);\n if (this.$useWrapMode) {\n var splits = this.$wrapData[docRow];\n if (splits) {\n column = splits[splitIndex];\n if(splitIndex > 0 && splits.length) {\n wrapIndent = splits.indent;\n docColumn = splits[splitIndex - 1] || splits[splits.length - 1];\n line = line.substring(docColumn);\n }\n }\n }\n\n if (offsetX !== undefined && this.$bidiHandler.isBidiRow(row + splitIndex, docRow, splitIndex))\n screenColumn = this.$bidiHandler.offsetToCol(offsetX);\n\n docColumn += this.$getStringScreenWidth(line, screenColumn - wrapIndent)[1];\n if (this.$useWrapMode && docColumn >= column)\n docColumn = column - 1;\n\n if (foldLine)\n return foldLine.idxToPosition(docColumn);\n\n return {row: docRow, column: docColumn};\n };\n this.documentToScreenPosition = function(docRow, docColumn) {\n if (typeof docColumn === \"undefined\")\n var pos = this.$clipPositionToDocument(docRow.row, docRow.column);\n else\n pos = this.$clipPositionToDocument(docRow, docColumn);\n\n docRow = pos.row;\n docColumn = pos.column;\n\n var screenRow = 0;\n var foldStartRow = null;\n var fold = null;\n fold = this.getFoldAt(docRow, docColumn, 1);\n if (fold) {\n docRow = fold.start.row;\n docColumn = fold.start.column;\n }\n\n var rowEnd, row = 0;\n\n\n var rowCache = this.$docRowCache;\n var i = this.$getRowCacheIndex(rowCache, docRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var screenRow = this.$screenRowCache[i];\n var doCache = docRow > rowCache[l - 1];\n } else {\n var doCache = !l;\n }\n\n var foldLine = this.getNextFoldLine(row);\n var foldStart = foldLine ?foldLine.start.row :Infinity;\n\n while (row < docRow) {\n if (row >= foldStart) {\n rowEnd = foldLine.end.row + 1;\n if (rowEnd > docRow)\n break;\n foldLine = this.getNextFoldLine(rowEnd, foldLine);\n foldStart = foldLine ?foldLine.start.row :Infinity;\n }\n else {\n rowEnd = row + 1;\n }\n\n screenRow += this.getRowLength(row);\n row = rowEnd;\n\n if (doCache) {\n this.$docRowCache.push(row);\n this.$screenRowCache.push(screenRow);\n }\n }\n var textLine = \"\";\n if (foldLine && row >= foldStart) {\n textLine = this.getFoldDisplayLine(foldLine, docRow, docColumn);\n foldStartRow = foldLine.start.row;\n } else {\n textLine = this.getLine(docRow).substring(0, docColumn);\n foldStartRow = docRow;\n }\n var wrapIndent = 0;\n if (this.$useWrapMode) {\n var wrapRow = this.$wrapData[foldStartRow];\n if (wrapRow) {\n var screenRowOffset = 0;\n while (textLine.length >= wrapRow[screenRowOffset]) {\n screenRow ++;\n screenRowOffset++;\n }\n textLine = textLine.substring(\n wrapRow[screenRowOffset - 1] || 0, textLine.length\n );\n wrapIndent = screenRowOffset > 0 ? wrapRow.indent : 0;\n }\n }\n\n return {\n row: screenRow,\n column: wrapIndent + this.$getStringScreenWidth(textLine)[0]\n };\n };\n this.documentToScreenColumn = function(row, docColumn) {\n return this.documentToScreenPosition(row, docColumn).column;\n };\n this.documentToScreenRow = function(docRow, docColumn) {\n return this.documentToScreenPosition(docRow, docColumn).row;\n };\n this.getScreenLength = function() {\n var screenRows = 0;\n var fold = null;\n if (!this.$useWrapMode) {\n screenRows = this.getLength();\n var foldData = this.$foldData;\n for (var i = 0; i < foldData.length; i++) {\n fold = foldData[i];\n screenRows -= fold.end.row - fold.start.row;\n }\n } else {\n var lastRow = this.$wrapData.length;\n var row = 0, i = 0;\n var fold = this.$foldData[i++];\n var foldStart = fold ? fold.start.row :Infinity;\n\n while (row < lastRow) {\n var splits = this.$wrapData[row];\n screenRows += splits ? splits.length + 1 : 1;\n row ++;\n if (row > foldStart) {\n row = fold.end.row+1;\n fold = this.$foldData[i++];\n foldStart = fold ?fold.start.row :Infinity;\n }\n }\n }\n if (this.lineWidgets)\n screenRows += this.$getWidgetScreenLength();\n\n return screenRows;\n };\n this.$setFontMetrics = function(fm) {\n if (!this.$enableVarChar) return;\n this.$getStringScreenWidth = function(str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn === 0)\n return [0, 0];\n if (!maxScreenColumn)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n \n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charAt(column);\n if (c === \"\\t\") {\n screenColumn += this.getScreenTabSize(screenColumn);\n } else {\n screenColumn += fm.getCharacterWidth(c);\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n \n return [screenColumn, column];\n };\n };\n \n this.destroy = function() {\n if (this.bgTokenizer) {\n this.bgTokenizer.setDocument(null);\n this.bgTokenizer = null;\n }\n this.$stopWorker();\n };\n\n this.isFullWidth = isFullWidth;\n function isFullWidth(c) {\n if (c < 0x1100)\n return false;\n return c >= 0x1100 && c <= 0x115F ||\n c >= 0x11A3 && c <= 0x11A7 ||\n c >= 0x11FA && c <= 0x11FF ||\n c >= 0x2329 && c <= 0x232A ||\n c >= 0x2E80 && c <= 0x2E99 ||\n c >= 0x2E9B && c <= 0x2EF3 ||\n c >= 0x2F00 && c <= 0x2FD5 ||\n c >= 0x2FF0 && c <= 0x2FFB ||\n c >= 0x3000 && c <= 0x303E ||\n c >= 0x3041 && c <= 0x3096 ||\n c >= 0x3099 && c <= 0x30FF ||\n c >= 0x3105 && c <= 0x312D ||\n c >= 0x3131 && c <= 0x318E ||\n c >= 0x3190 && c <= 0x31BA ||\n c >= 0x31C0 && c <= 0x31E3 ||\n c >= 0x31F0 && c <= 0x321E ||\n c >= 0x3220 && c <= 0x3247 ||\n c >= 0x3250 && c <= 0x32FE ||\n c >= 0x3300 && c <= 0x4DBF ||\n c >= 0x4E00 && c <= 0xA48C ||\n c >= 0xA490 && c <= 0xA4C6 ||\n c >= 0xA960 && c <= 0xA97C ||\n c >= 0xAC00 && c <= 0xD7A3 ||\n c >= 0xD7B0 && c <= 0xD7C6 ||\n c >= 0xD7CB && c <= 0xD7FB ||\n c >= 0xF900 && c <= 0xFAFF ||\n c >= 0xFE10 && c <= 0xFE19 ||\n c >= 0xFE30 && c <= 0xFE52 ||\n c >= 0xFE54 && c <= 0xFE66 ||\n c >= 0xFE68 && c <= 0xFE6B ||\n c >= 0xFF01 && c <= 0xFF60 ||\n c >= 0xFFE0 && c <= 0xFFE6;\n }\n\n}).call(EditSession.prototype);\n\nacequire(\"./edit_session/folding\").Folding.call(EditSession.prototype);\nacequire(\"./edit_session/bracket_match\").BracketMatch.call(EditSession.prototype);\n\n\nconfig.defineOptions(EditSession.prototype, \"session\", {\n wrap: {\n set: function(value) {\n if (!value || value == \"off\")\n value = false;\n else if (value == \"free\")\n value = true;\n else if (value == \"printMargin\")\n value = -1;\n else if (typeof value == \"string\")\n value = parseInt(value, 10) || false;\n\n if (this.$wrap == value)\n return;\n this.$wrap = value;\n if (!value) {\n this.setUseWrapMode(false);\n } else {\n var col = typeof value == \"number\" ? value : null;\n this.setWrapLimitRange(col, col);\n this.setUseWrapMode(true);\n }\n },\n get: function() {\n if (this.getUseWrapMode()) {\n if (this.$wrap == -1)\n return \"printMargin\";\n if (!this.getWrapLimitRange().min)\n return \"free\";\n return this.$wrap;\n }\n return \"off\";\n },\n handlesSet: true\n }, \n wrapMethod: {\n set: function(val) {\n val = val == \"auto\"\n ? this.$mode.type != \"text\"\n : val != \"text\";\n if (val != this.$wrapAsCode) {\n this.$wrapAsCode = val;\n if (this.$useWrapMode) {\n this.$modified = true;\n this.$resetRowCache(0);\n this.$updateWrapData(0, this.getLength() - 1);\n }\n }\n },\n initialValue: \"auto\"\n },\n indentedSoftWrap: { initialValue: true },\n firstLineNumber: {\n set: function() {this._signal(\"changeBreakpoint\");},\n initialValue: 1\n },\n useWorker: {\n set: function(useWorker) {\n this.$useWorker = useWorker;\n\n this.$stopWorker();\n if (useWorker)\n this.$startWorker();\n },\n initialValue: true\n },\n useSoftTabs: {initialValue: true},\n tabSize: {\n set: function(tabSize) {\n if (isNaN(tabSize) || this.$tabSize === tabSize) return;\n\n this.$modified = true;\n this.$rowLengthCache = [];\n this.$tabSize = tabSize;\n this._signal(\"changeTabSize\");\n },\n initialValue: 4,\n handlesSet: true\n },\n navigateWithinSoftTabs: {initialValue: false},\n overwrite: {\n set: function(val) {this._signal(\"changeOverwrite\");},\n initialValue: false\n },\n newLineMode: {\n set: function(val) {this.doc.setNewLineMode(val);},\n get: function() {return this.doc.getNewLineMode();},\n handlesSet: true\n },\n mode: {\n set: function(val) { this.setMode(val); },\n get: function() { return this.$modeId; }\n }\n});\n\nexports.EditSession = EditSession;\n});\n\nace.define(\"ace/search\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"./lib/lang\");\nvar oop = acequire(\"./lib/oop\");\nvar Range = acequire(\"./range\").Range;\n\nvar Search = function() {\n this.$options = {};\n};\n\n(function() {\n this.set = function(options) {\n oop.mixin(this.$options, options);\n return this;\n };\n this.getOptions = function() {\n return lang.copyObject(this.$options);\n };\n this.setOptions = function(options) {\n this.$options = options;\n };\n this.find = function(session) {\n var options = this.$options;\n var iterator = this.$matchIterator(session, options);\n if (!iterator)\n return false;\n\n var firstRange = null;\n iterator.forEach(function(sr, sc, er, ec) {\n firstRange = new Range(sr, sc, er, ec);\n if (sc == ec && options.start && options.start.start\n && options.skipCurrent != false && firstRange.isEqual(options.start)\n ) {\n firstRange = null;\n return false;\n }\n\n return true;\n });\n\n return firstRange;\n };\n this.findAll = function(session) {\n var options = this.$options;\n if (!options.needle)\n return [];\n this.$assembleRegExp(options);\n\n var range = options.range;\n var lines = range\n ? session.getLines(range.start.row, range.end.row)\n : session.doc.getAllLines();\n\n var ranges = [];\n var re = options.re;\n if (options.$isMultiLine) {\n var len = re.length;\n var maxRow = lines.length - len;\n var prevRange;\n outer: for (var row = re.offset || 0; row <= maxRow; row++) {\n for (var j = 0; j < len; j++)\n if (lines[row + j].search(re[j]) == -1)\n continue outer;\n \n var startLine = lines[row];\n var line = lines[row + len - 1];\n var startIndex = startLine.length - startLine.match(re[0])[0].length;\n var endIndex = line.match(re[len - 1])[0].length;\n \n if (prevRange && prevRange.end.row === row &&\n prevRange.end.column > startIndex\n ) {\n continue;\n }\n ranges.push(prevRange = new Range(\n row, startIndex, row + len - 1, endIndex\n ));\n if (len > 2)\n row = row + len - 2;\n }\n } else {\n for (var i = 0; i < lines.length; i++) {\n var matches = lang.getMatchOffsets(lines[i], re);\n for (var j = 0; j < matches.length; j++) {\n var match = matches[j];\n ranges.push(new Range(i, match.offset, i, match.offset + match.length));\n }\n }\n }\n\n if (range) {\n var startColumn = range.start.column;\n var endColumn = range.start.column;\n var i = 0, j = ranges.length - 1;\n while (i < j && ranges[i].start.column < startColumn && ranges[i].start.row == range.start.row)\n i++;\n\n while (i < j && ranges[j].end.column > endColumn && ranges[j].end.row == range.end.row)\n j--;\n \n ranges = ranges.slice(i, j + 1);\n for (i = 0, j = ranges.length; i < j; i++) {\n ranges[i].start.row += range.start.row;\n ranges[i].end.row += range.start.row;\n }\n }\n\n return ranges;\n };\n this.replace = function(input, replacement) {\n var options = this.$options;\n\n var re = this.$assembleRegExp(options);\n if (options.$isMultiLine)\n return replacement;\n\n if (!re)\n return;\n\n var match = re.exec(input);\n if (!match || match[0].length != input.length)\n return null;\n \n replacement = input.replace(re, replacement);\n if (options.preserveCase) {\n replacement = replacement.split(\"\");\n for (var i = Math.min(input.length, input.length); i--; ) {\n var ch = input[i];\n if (ch && ch.toLowerCase() != ch)\n replacement[i] = replacement[i].toUpperCase();\n else\n replacement[i] = replacement[i].toLowerCase();\n }\n replacement = replacement.join(\"\");\n }\n \n return replacement;\n };\n\n this.$assembleRegExp = function(options, $disableFakeMultiline) {\n if (options.needle instanceof RegExp)\n return options.re = options.needle;\n\n var needle = options.needle;\n\n if (!options.needle)\n return options.re = false;\n\n if (!options.regExp)\n needle = lang.escapeRegExp(needle);\n\n if (options.wholeWord)\n needle = addWordBoundary(needle, options);\n\n var modifier = options.caseSensitive ? \"gm\" : \"gmi\";\n\n options.$isMultiLine = !$disableFakeMultiline && /[\\n\\r]/.test(needle);\n if (options.$isMultiLine)\n return options.re = this.$assembleMultilineRegExp(needle, modifier);\n\n try {\n var re = new RegExp(needle, modifier);\n } catch(e) {\n re = false;\n }\n return options.re = re;\n };\n\n this.$assembleMultilineRegExp = function(needle, modifier) {\n var parts = needle.replace(/\\r\\n|\\r|\\n/g, \"$\\n^\").split(\"\\n\");\n var re = [];\n for (var i = 0; i < parts.length; i++) try {\n re.push(new RegExp(parts[i], modifier));\n } catch(e) {\n return false;\n }\n return re;\n };\n\n this.$matchIterator = function(session, options) {\n var re = this.$assembleRegExp(options);\n if (!re)\n return false;\n var backwards = options.backwards == true;\n var skipCurrent = options.skipCurrent != false;\n\n var range = options.range;\n var start = options.start;\n if (!start)\n start = range ? range[backwards ? \"end\" : \"start\"] : session.selection.getRange();\n \n if (start.start)\n start = start[skipCurrent != backwards ? \"end\" : \"start\"];\n\n var firstRow = range ? range.start.row : 0;\n var lastRow = range ? range.end.row : session.getLength() - 1;\n\n if (backwards) {\n var forEach = function(callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row--; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = lastRow, firstRow = start.row; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n };\n }\n else {\n var forEach = function(callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row = row + 1; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = firstRow, lastRow = start.row; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n };\n }\n \n if (options.$isMultiLine) {\n var len = re.length;\n var forEachInLine = function(row, offset, callback) {\n var startRow = backwards ? row - len + 1 : row;\n if (startRow < 0) return;\n var line = session.getLine(startRow);\n var startIndex = line.search(re[0]);\n if (!backwards && startIndex < offset || startIndex === -1) return;\n for (var i = 1; i < len; i++) {\n line = session.getLine(startRow + i);\n if (line.search(re[i]) == -1)\n return;\n }\n var endIndex = line.match(re[len - 1])[0].length;\n if (backwards && endIndex > offset) return;\n if (callback(startRow, startIndex, startRow + len - 1, endIndex))\n return true;\n };\n }\n else if (backwards) {\n var forEachInLine = function(row, endIndex, callback) {\n var line = session.getLine(row);\n var matches = [];\n var m, last = 0;\n re.lastIndex = 0;\n while((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (!length) {\n if (last >= line.length) break;\n re.lastIndex = last += 1;\n }\n if (m.index + length > endIndex)\n break;\n matches.push(m.index, length);\n }\n for (var i = matches.length - 1; i >= 0; i -= 2) {\n var column = matches[i - 1];\n var length = matches[i];\n if (callback(row, column, row, column + length))\n return true;\n }\n };\n }\n else {\n var forEachInLine = function(row, startIndex, callback) {\n var line = session.getLine(row);\n var m;\n var last = startIndex;\n re.lastIndex = startIndex;\n while((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (callback(row, last, row,last + length))\n return true;\n if (!length) {\n re.lastIndex = last += 1;\n if (last >= line.length) return false;\n }\n }\n };\n }\n return {forEach: forEach};\n };\n\n}).call(Search.prototype);\n\nfunction addWordBoundary(needle, options) {\n function wordBoundary(c) {\n if (/\\w/.test(c) || options.regExp) return \"\\\\b\";\n return \"\";\n }\n return wordBoundary(needle[0]) + needle\n + wordBoundary(needle[needle.length - 1]);\n}\n\nexports.Search = Search;\n});\n\nace.define(\"ace/keyboard/hash_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar keyUtil = acequire(\"../lib/keys\");\nvar useragent = acequire(\"../lib/useragent\");\nvar KEY_MODS = keyUtil.KEY_MODS;\n\nfunction HashHandler(config, platform) {\n this.platform = platform || (useragent.isMac ? \"mac\" : \"win\");\n this.commands = {};\n this.commandKeyBinding = {};\n this.addCommands(config);\n this.$singleCommand = true;\n}\n\nfunction MultiHashHandler(config, platform) {\n HashHandler.call(this, config, platform);\n this.$singleCommand = false;\n}\n\nMultiHashHandler.prototype = HashHandler.prototype;\n\n(function() {\n \n\n this.addCommand = function(command) {\n if (this.commands[command.name])\n this.removeCommand(command);\n\n this.commands[command.name] = command;\n\n if (command.bindKey)\n this._buildKeyHash(command);\n };\n\n this.removeCommand = function(command, keepCommand) {\n var name = command && (typeof command === 'string' ? command : command.name);\n command = this.commands[name];\n if (!keepCommand)\n delete this.commands[name];\n var ckb = this.commandKeyBinding;\n for (var keyId in ckb) {\n var cmdGroup = ckb[keyId];\n if (cmdGroup == command) {\n delete ckb[keyId];\n } else if (Array.isArray(cmdGroup)) {\n var i = cmdGroup.indexOf(command);\n if (i != -1) {\n cmdGroup.splice(i, 1);\n if (cmdGroup.length == 1)\n ckb[keyId] = cmdGroup[0];\n }\n }\n }\n };\n\n this.bindKey = function(key, command, position) {\n if (typeof key == \"object\" && key) {\n if (position == undefined)\n position = key.position;\n key = key[this.platform];\n }\n if (!key)\n return;\n if (typeof command == \"function\")\n return this.addCommand({exec: command, bindKey: key, name: command.name || key});\n \n key.split(\"|\").forEach(function(keyPart) {\n var chain = \"\";\n if (keyPart.indexOf(\" \") != -1) {\n var parts = keyPart.split(/\\s+/);\n keyPart = parts.pop();\n parts.forEach(function(keyPart) {\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n chain += (chain ? \" \" : \"\") + id;\n this._addCommandToBinding(chain, \"chainKeys\");\n }, this);\n chain += \" \";\n }\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n this._addCommandToBinding(chain + id, command, position);\n }, this);\n };\n \n function getPosition(command) {\n return typeof command == \"object\" && command.bindKey\n && command.bindKey.position\n || (command.isDefault ? -100 : 0);\n }\n this._addCommandToBinding = function(keyId, command, position) {\n var ckb = this.commandKeyBinding, i;\n if (!command) {\n delete ckb[keyId];\n } else if (!ckb[keyId] || this.$singleCommand) {\n ckb[keyId] = command;\n } else {\n if (!Array.isArray(ckb[keyId])) {\n ckb[keyId] = [ckb[keyId]];\n } else if ((i = ckb[keyId].indexOf(command)) != -1) {\n ckb[keyId].splice(i, 1);\n }\n\n if (typeof position != \"number\") {\n position = getPosition(command);\n }\n\n var commands = ckb[keyId];\n for (i = 0; i < commands.length; i++) {\n var other = commands[i];\n var otherPos = getPosition(other);\n if (otherPos > position)\n break;\n }\n commands.splice(i, 0, command);\n }\n };\n\n this.addCommands = function(commands) {\n commands && Object.keys(commands).forEach(function(name) {\n var command = commands[name];\n if (!command)\n return;\n \n if (typeof command === \"string\")\n return this.bindKey(command, name);\n\n if (typeof command === \"function\")\n command = { exec: command };\n\n if (typeof command !== \"object\")\n return;\n\n if (!command.name)\n command.name = name;\n\n this.addCommand(command);\n }, this);\n };\n\n this.removeCommands = function(commands) {\n Object.keys(commands).forEach(function(name) {\n this.removeCommand(commands[name]);\n }, this);\n };\n\n this.bindKeys = function(keyList) {\n Object.keys(keyList).forEach(function(key) {\n this.bindKey(key, keyList[key]);\n }, this);\n };\n\n this._buildKeyHash = function(command) {\n this.bindKey(command.bindKey, command);\n };\n this.parseKeys = function(keys) {\n var parts = keys.toLowerCase().split(/[\\-\\+]([\\-\\+])?/).filter(function(x){return x;});\n var key = parts.pop();\n\n var keyCode = keyUtil[key];\n if (keyUtil.FUNCTION_KEYS[keyCode])\n key = keyUtil.FUNCTION_KEYS[keyCode].toLowerCase();\n else if (!parts.length)\n return {key: key, hashId: -1};\n else if (parts.length == 1 && parts[0] == \"shift\")\n return {key: key.toUpperCase(), hashId: -1};\n\n var hashId = 0;\n for (var i = parts.length; i--;) {\n var modifier = keyUtil.KEY_MODS[parts[i]];\n if (modifier == null) {\n if (typeof console != \"undefined\")\n console.error(\"invalid modifier \" + parts[i] + \" in \" + keys);\n return false;\n }\n hashId |= modifier;\n }\n return {key: key, hashId: hashId};\n };\n\n this.findKeyCommand = function findKeyCommand(hashId, keyString) {\n var key = KEY_MODS[hashId] + keyString;\n return this.commandKeyBinding[key];\n };\n\n this.handleKeyboard = function(data, hashId, keyString, keyCode) {\n if (keyCode < 0) return;\n var key = KEY_MODS[hashId] + keyString;\n var command = this.commandKeyBinding[key];\n if (data.$keyChain) {\n data.$keyChain += \" \" + key;\n command = this.commandKeyBinding[data.$keyChain] || command;\n }\n \n if (command) {\n if (command == \"chainKeys\" || command[command.length - 1] == \"chainKeys\") {\n data.$keyChain = data.$keyChain || key;\n return {command: \"null\"};\n }\n }\n \n if (data.$keyChain) {\n if ((!hashId || hashId == 4) && keyString.length == 1)\n data.$keyChain = data.$keyChain.slice(0, -key.length - 1); // wait for input\n else if (hashId == -1 || keyCode > 0)\n data.$keyChain = \"\"; // reset keyChain\n }\n return {command: command};\n };\n \n this.getStatusText = function(editor, data) {\n return data.$keyChain || \"\";\n };\n\n}).call(HashHandler.prototype);\n\nexports.HashHandler = HashHandler;\nexports.MultiHashHandler = MultiHashHandler;\n});\n\nace.define(\"ace/commands/command_manager\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar MultiHashHandler = acequire(\"../keyboard/hash_handler\").MultiHashHandler;\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar CommandManager = function(platform, commands) {\n MultiHashHandler.call(this, commands, platform);\n this.byName = this.commands;\n this.setDefaultHandler(\"exec\", function(e) {\n return e.command.exec(e.editor, e.args || {});\n });\n};\n\noop.inherits(CommandManager, MultiHashHandler);\n\n(function() {\n\n oop.implement(this, EventEmitter);\n\n this.exec = function(command, editor, args) {\n if (Array.isArray(command)) {\n for (var i = command.length; i--; ) {\n if (this.exec(command[i], editor, args)) return true;\n }\n return false;\n }\n\n if (typeof command === \"string\")\n command = this.commands[command];\n\n if (!command)\n return false;\n\n if (editor && editor.$readOnly && !command.readOnly)\n return false;\n\n if (command.isAvailable && !command.isAvailable(editor))\n return false;\n\n var e = {editor: editor, command: command, args: args};\n e.returnValue = this._emit(\"exec\", e);\n this._signal(\"afterExec\", e);\n\n return e.returnValue === false ? false : true;\n };\n\n this.toggleRecording = function(editor) {\n if (this.$inReplay)\n return;\n\n editor && editor._emit(\"changeStatus\");\n if (this.recording) {\n this.macro.pop();\n this.removeEventListener(\"exec\", this.$addCommandToMacro);\n\n if (!this.macro.length)\n this.macro = this.oldMacro;\n\n return this.recording = false;\n }\n if (!this.$addCommandToMacro) {\n this.$addCommandToMacro = function(e) {\n this.macro.push([e.command, e.args]);\n }.bind(this);\n }\n\n this.oldMacro = this.macro;\n this.macro = [];\n this.on(\"exec\", this.$addCommandToMacro);\n return this.recording = true;\n };\n\n this.replay = function(editor) {\n if (this.$inReplay || !this.macro)\n return;\n\n if (this.recording)\n return this.toggleRecording(editor);\n\n try {\n this.$inReplay = true;\n this.macro.forEach(function(x) {\n if (typeof x == \"string\")\n this.exec(x, editor);\n else\n this.exec(x[0], editor, x[1]);\n }, this);\n } finally {\n this.$inReplay = false;\n }\n };\n\n this.trimMacro = function(m) {\n return m.map(function(x){\n if (typeof x[0] != \"string\")\n x[0] = x[0].name;\n if (!x[1])\n x = x[0];\n return x;\n });\n };\n\n}).call(CommandManager.prototype);\n\nexports.CommandManager = CommandManager;\n\n});\n\nace.define(\"ace/commands/default_commands\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/config\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"../lib/lang\");\nvar config = acequire(\"../config\");\nvar Range = acequire(\"../range\").Range;\n\nfunction bindKey(win, mac) {\n return {win: win, mac: mac};\n}\nexports.commands = [{\n name: \"showSettingsMenu\",\n bindKey: bindKey(\"Ctrl-,\", \"Command-,\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/settings_menu\", function(module) {\n module.init(editor);\n editor.showSettingsMenu();\n });\n },\n readOnly: true\n}, {\n name: \"goToNextError\",\n bindKey: bindKey(\"Alt-E\", \"F4\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/error_marker\", function(module) {\n module.showErrorMarker(editor, 1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"goToPreviousError\",\n bindKey: bindKey(\"Alt-Shift-E\", \"Shift-F4\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/error_marker\", function(module) {\n module.showErrorMarker(editor, -1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"selectall\",\n bindKey: bindKey(\"Ctrl-A\", \"Command-A\"),\n exec: function(editor) { editor.selectAll(); },\n readOnly: true\n}, {\n name: \"centerselection\",\n bindKey: bindKey(null, \"Ctrl-L\"),\n exec: function(editor) { editor.centerSelection(); },\n readOnly: true\n}, {\n name: \"gotoline\",\n bindKey: bindKey(\"Ctrl-L\", \"Command-L\"),\n exec: function(editor) {\n var line = parseInt(prompt(\"Enter line number:\"), 10);\n if (!isNaN(line)) {\n editor.gotoLine(line);\n }\n },\n readOnly: true\n}, {\n name: \"fold\",\n bindKey: bindKey(\"Alt-L|Ctrl-F1\", \"Command-Alt-L|Command-F1\"),\n exec: function(editor) { editor.session.toggleFold(false); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"unfold\",\n bindKey: bindKey(\"Alt-Shift-L|Ctrl-Shift-F1\", \"Command-Alt-Shift-L|Command-Shift-F1\"),\n exec: function(editor) { editor.session.toggleFold(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"toggleFoldWidget\",\n bindKey: bindKey(\"F2\", \"F2\"),\n exec: function(editor) { editor.session.toggleFoldWidget(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"toggleParentFoldWidget\",\n bindKey: bindKey(\"Alt-F2\", \"Alt-F2\"),\n exec: function(editor) { editor.session.toggleFoldWidget(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"foldall\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function(editor) { editor.session.foldAll(); },\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"foldOther\",\n bindKey: bindKey(\"Alt-0\", \"Command-Option-0\"),\n exec: function(editor) { \n editor.session.foldAll();\n editor.session.unfold(editor.selection.getAllRanges());\n },\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"unfoldall\",\n bindKey: bindKey(\"Alt-Shift-0\", \"Command-Option-Shift-0\"),\n exec: function(editor) { editor.session.unfold(); },\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"findnext\",\n bindKey: bindKey(\"Ctrl-K\", \"Command-G\"),\n exec: function(editor) { editor.findNext(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"findprevious\",\n bindKey: bindKey(\"Ctrl-Shift-K\", \"Command-Shift-G\"),\n exec: function(editor) { editor.findPrevious(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"selectOrFindNext\",\n bindKey: bindKey(\"Alt-K\", \"Ctrl-G\"),\n exec: function(editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findNext(); \n },\n readOnly: true\n}, {\n name: \"selectOrFindPrevious\",\n bindKey: bindKey(\"Alt-Shift-K\", \"Ctrl-Shift-G\"),\n exec: function(editor) { \n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findPrevious();\n },\n readOnly: true\n}, {\n name: \"find\",\n bindKey: bindKey(\"Ctrl-F\", \"Command-F\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/searchbox\", function(e) {e.Search(editor);});\n },\n readOnly: true\n}, {\n name: \"overwrite\",\n bindKey: \"Insert\",\n exec: function(editor) { editor.toggleOverwrite(); },\n readOnly: true\n}, {\n name: \"selecttostart\",\n bindKey: bindKey(\"Ctrl-Shift-Home\", \"Command-Shift-Home|Command-Shift-Up\"),\n exec: function(editor) { editor.getSelection().selectFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"gotostart\",\n bindKey: bindKey(\"Ctrl-Home\", \"Command-Home|Command-Up\"),\n exec: function(editor) { editor.navigateFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"selectup\",\n bindKey: bindKey(\"Shift-Up\", \"Shift-Up|Ctrl-Shift-P\"),\n exec: function(editor) { editor.getSelection().selectUp(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"golineup\",\n bindKey: bindKey(\"Up\", \"Up|Ctrl-P\"),\n exec: function(editor, args) { editor.navigateUp(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selecttoend\",\n bindKey: bindKey(\"Ctrl-Shift-End\", \"Command-Shift-End|Command-Shift-Down\"),\n exec: function(editor) { editor.getSelection().selectFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"gotoend\",\n bindKey: bindKey(\"Ctrl-End\", \"Command-End|Command-Down\"),\n exec: function(editor) { editor.navigateFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"selectdown\",\n bindKey: bindKey(\"Shift-Down\", \"Shift-Down|Ctrl-Shift-N\"),\n exec: function(editor) { editor.getSelection().selectDown(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"golinedown\",\n bindKey: bindKey(\"Down\", \"Down|Ctrl-N\"),\n exec: function(editor, args) { editor.navigateDown(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectwordleft\",\n bindKey: bindKey(\"Ctrl-Shift-Left\", \"Option-Shift-Left\"),\n exec: function(editor) { editor.getSelection().selectWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotowordleft\",\n bindKey: bindKey(\"Ctrl-Left\", \"Option-Left\"),\n exec: function(editor) { editor.navigateWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selecttolinestart\",\n bindKey: bindKey(\"Alt-Shift-Left\", \"Command-Shift-Left|Ctrl-Shift-A\"),\n exec: function(editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotolinestart\",\n bindKey: bindKey(\"Alt-Left|Home\", \"Command-Left|Home|Ctrl-A\"),\n exec: function(editor) { editor.navigateLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectleft\",\n bindKey: bindKey(\"Shift-Left\", \"Shift-Left|Ctrl-Shift-B\"),\n exec: function(editor) { editor.getSelection().selectLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotoleft\",\n bindKey: bindKey(\"Left\", \"Left|Ctrl-B\"),\n exec: function(editor, args) { editor.navigateLeft(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectwordright\",\n bindKey: bindKey(\"Ctrl-Shift-Right\", \"Option-Shift-Right\"),\n exec: function(editor) { editor.getSelection().selectWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotowordright\",\n bindKey: bindKey(\"Ctrl-Right\", \"Option-Right\"),\n exec: function(editor) { editor.navigateWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selecttolineend\",\n bindKey: bindKey(\"Alt-Shift-Right\", \"Command-Shift-Right|Shift-End|Ctrl-Shift-E\"),\n exec: function(editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotolineend\",\n bindKey: bindKey(\"Alt-Right|End\", \"Command-Right|End|Ctrl-E\"),\n exec: function(editor) { editor.navigateLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectright\",\n bindKey: bindKey(\"Shift-Right\", \"Shift-Right\"),\n exec: function(editor) { editor.getSelection().selectRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotoright\",\n bindKey: bindKey(\"Right\", \"Right|Ctrl-F\"),\n exec: function(editor, args) { editor.navigateRight(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectpagedown\",\n bindKey: \"Shift-PageDown\",\n exec: function(editor) { editor.selectPageDown(); },\n readOnly: true\n}, {\n name: \"pagedown\",\n bindKey: bindKey(null, \"Option-PageDown\"),\n exec: function(editor) { editor.scrollPageDown(); },\n readOnly: true\n}, {\n name: \"gotopagedown\",\n bindKey: bindKey(\"PageDown\", \"PageDown|Ctrl-V\"),\n exec: function(editor) { editor.gotoPageDown(); },\n readOnly: true\n}, {\n name: \"selectpageup\",\n bindKey: \"Shift-PageUp\",\n exec: function(editor) { editor.selectPageUp(); },\n readOnly: true\n}, {\n name: \"pageup\",\n bindKey: bindKey(null, \"Option-PageUp\"),\n exec: function(editor) { editor.scrollPageUp(); },\n readOnly: true\n}, {\n name: \"gotopageup\",\n bindKey: \"PageUp\",\n exec: function(editor) { editor.gotoPageUp(); },\n readOnly: true\n}, {\n name: \"scrollup\",\n bindKey: bindKey(\"Ctrl-Up\", null),\n exec: function(e) { e.renderer.scrollBy(0, -2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n}, {\n name: \"scrolldown\",\n bindKey: bindKey(\"Ctrl-Down\", null),\n exec: function(e) { e.renderer.scrollBy(0, 2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n}, {\n name: \"selectlinestart\",\n bindKey: \"Shift-Home\",\n exec: function(editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectlineend\",\n bindKey: \"Shift-End\",\n exec: function(editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"togglerecording\",\n bindKey: bindKey(\"Ctrl-Alt-E\", \"Command-Option-E\"),\n exec: function(editor) { editor.commands.toggleRecording(editor); },\n readOnly: true\n}, {\n name: \"replaymacro\",\n bindKey: bindKey(\"Ctrl-Shift-E\", \"Command-Shift-E\"),\n exec: function(editor) { editor.commands.replay(editor); },\n readOnly: true\n}, {\n name: \"jumptomatching\",\n bindKey: bindKey(\"Ctrl-P\", \"Ctrl-P\"),\n exec: function(editor) { editor.jumpToMatching(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"selecttomatching\",\n bindKey: bindKey(\"Ctrl-Shift-P\", \"Ctrl-Shift-P\"),\n exec: function(editor) { editor.jumpToMatching(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"expandToMatching\",\n bindKey: bindKey(\"Ctrl-Shift-M\", \"Ctrl-Shift-M\"),\n exec: function(editor) { editor.jumpToMatching(true, true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"passKeysToBrowser\",\n bindKey: bindKey(null, null),\n exec: function() {},\n passEvent: true,\n readOnly: true\n}, {\n name: \"copy\",\n exec: function(editor) {\n },\n readOnly: true\n},\n{\n name: \"cut\",\n exec: function(editor) {\n var range = editor.getSelectionRange();\n editor._emit(\"cut\", range);\n\n if (!editor.selection.isEmpty()) {\n editor.session.remove(range);\n editor.clearSelection();\n }\n },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"paste\",\n exec: function(editor, args) {\n editor.$handlePaste(args);\n },\n scrollIntoView: \"cursor\"\n}, {\n name: \"removeline\",\n bindKey: bindKey(\"Ctrl-D\", \"Command-D\"),\n exec: function(editor) { editor.removeLines(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEachLine\"\n}, {\n name: \"duplicateSelection\",\n bindKey: bindKey(\"Ctrl-Shift-D\", \"Command-Shift-D\"),\n exec: function(editor) { editor.duplicateSelection(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"sortlines\",\n bindKey: bindKey(\"Ctrl-Alt-S\", \"Command-Alt-S\"),\n exec: function(editor) { editor.sortLines(); },\n scrollIntoView: \"selection\",\n multiSelectAction: \"forEachLine\"\n}, {\n name: \"togglecomment\",\n bindKey: bindKey(\"Ctrl-/\", \"Command-/\"),\n exec: function(editor) { editor.toggleCommentLines(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"toggleBlockComment\",\n bindKey: bindKey(\"Ctrl-Shift-/\", \"Command-Shift-/\"),\n exec: function(editor) { editor.toggleBlockComment(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"modifyNumberUp\",\n bindKey: bindKey(\"Ctrl-Shift-Up\", \"Alt-Shift-Up\"),\n exec: function(editor) { editor.modifyNumber(1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"modifyNumberDown\",\n bindKey: bindKey(\"Ctrl-Shift-Down\", \"Alt-Shift-Down\"),\n exec: function(editor) { editor.modifyNumber(-1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"replace\",\n bindKey: bindKey(\"Ctrl-H\", \"Command-Option-F\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/searchbox\", function(e) {e.Search(editor, true);});\n }\n}, {\n name: \"undo\",\n bindKey: bindKey(\"Ctrl-Z\", \"Command-Z\"),\n exec: function(editor) { editor.undo(); }\n}, {\n name: \"redo\",\n bindKey: bindKey(\"Ctrl-Shift-Z|Ctrl-Y\", \"Command-Shift-Z|Command-Y\"),\n exec: function(editor) { editor.redo(); }\n}, {\n name: \"copylinesup\",\n bindKey: bindKey(\"Alt-Shift-Up\", \"Command-Option-Up\"),\n exec: function(editor) { editor.copyLinesUp(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"movelinesup\",\n bindKey: bindKey(\"Alt-Up\", \"Option-Up\"),\n exec: function(editor) { editor.moveLinesUp(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"copylinesdown\",\n bindKey: bindKey(\"Alt-Shift-Down\", \"Command-Option-Down\"),\n exec: function(editor) { editor.copyLinesDown(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"movelinesdown\",\n bindKey: bindKey(\"Alt-Down\", \"Option-Down\"),\n exec: function(editor) { editor.moveLinesDown(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"del\",\n bindKey: bindKey(\"Delete\", \"Delete|Ctrl-D|Shift-Delete\"),\n exec: function(editor) { editor.remove(\"right\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"backspace\",\n bindKey: bindKey(\n \"Shift-Backspace|Backspace\",\n \"Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H\"\n ),\n exec: function(editor) { editor.remove(\"left\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"cut_or_delete\",\n bindKey: bindKey(\"Shift-Delete\", null),\n exec: function(editor) { \n if (editor.selection.isEmpty()) {\n editor.remove(\"left\");\n } else {\n return false;\n }\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolinestart\",\n bindKey: bindKey(\"Alt-Backspace\", \"Command-Backspace\"),\n exec: function(editor) { editor.removeToLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolineend\",\n bindKey: bindKey(\"Alt-Delete\", \"Ctrl-K|Command-Delete\"),\n exec: function(editor) { editor.removeToLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolinestarthard\",\n bindKey: bindKey(\"Ctrl-Shift-Backspace\", null),\n exec: function(editor) {\n var range = editor.selection.getRange();\n range.start.column = 0;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolineendhard\",\n bindKey: bindKey(\"Ctrl-Shift-Delete\", null),\n exec: function(editor) {\n var range = editor.selection.getRange();\n range.end.column = Number.MAX_VALUE;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removewordleft\",\n bindKey: bindKey(\"Ctrl-Backspace\", \"Alt-Backspace|Ctrl-Alt-Backspace\"),\n exec: function(editor) { editor.removeWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removewordright\",\n bindKey: bindKey(\"Ctrl-Delete\", \"Alt-Delete\"),\n exec: function(editor) { editor.removeWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"outdent\",\n bindKey: bindKey(\"Shift-Tab\", \"Shift-Tab\"),\n exec: function(editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"indent\",\n bindKey: bindKey(\"Tab\", \"Tab\"),\n exec: function(editor) { editor.indent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"blockoutdent\",\n bindKey: bindKey(\"Ctrl-[\", \"Ctrl-[\"),\n exec: function(editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"blockindent\",\n bindKey: bindKey(\"Ctrl-]\", \"Ctrl-]\"),\n exec: function(editor) { editor.blockIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"insertstring\",\n exec: function(editor, str) { editor.insert(str); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"inserttext\",\n exec: function(editor, args) {\n editor.insert(lang.stringRepeat(args.text || \"\", args.times || 1));\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"splitline\",\n bindKey: bindKey(null, \"Ctrl-O\"),\n exec: function(editor) { editor.splitLine(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"transposeletters\",\n bindKey: bindKey(\"Alt-Shift-X\", \"Ctrl-T\"),\n exec: function(editor) { editor.transposeLetters(); },\n multiSelectAction: function(editor) {editor.transposeSelections(1); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"touppercase\",\n bindKey: bindKey(\"Ctrl-U\", \"Ctrl-U\"),\n exec: function(editor) { editor.toUpperCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"tolowercase\",\n bindKey: bindKey(\"Ctrl-Shift-U\", \"Ctrl-Shift-U\"),\n exec: function(editor) { editor.toLowerCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"expandtoline\",\n bindKey: bindKey(\"Ctrl-Shift-L\", \"Command-Shift-L\"),\n exec: function(editor) {\n var range = editor.selection.getRange();\n\n range.start.column = range.end.column = 0;\n range.end.row++;\n editor.selection.setRange(range, false);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"joinlines\",\n bindKey: bindKey(null, null),\n exec: function(editor) {\n var isBackwards = editor.selection.isBackwards();\n var selectionStart = isBackwards ? editor.selection.getSelectionLead() : editor.selection.getSelectionAnchor();\n var selectionEnd = isBackwards ? editor.selection.getSelectionAnchor() : editor.selection.getSelectionLead();\n var firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length;\n var selectedText = editor.session.doc.getTextRange(editor.selection.getRange());\n var selectedCount = selectedText.replace(/\\n\\s*/, \" \").length;\n var insertLine = editor.session.doc.getLine(selectionStart.row);\n\n for (var i = selectionStart.row + 1; i <= selectionEnd.row + 1; i++) {\n var curLine = lang.stringTrimLeft(lang.stringTrimRight(editor.session.doc.getLine(i)));\n if (curLine.length !== 0) {\n curLine = \" \" + curLine;\n }\n insertLine += curLine;\n }\n\n if (selectionEnd.row + 1 < (editor.session.doc.getLength() - 1)) {\n insertLine += editor.session.doc.getNewLineCharacter();\n }\n\n editor.clearSelection();\n editor.session.doc.replace(new Range(selectionStart.row, 0, selectionEnd.row + 2, 0), insertLine);\n\n if (selectedCount > 0) {\n editor.selection.moveCursorTo(selectionStart.row, selectionStart.column);\n editor.selection.selectTo(selectionStart.row, selectionStart.column + selectedCount);\n } else {\n firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length > firstLineEndCol ? (firstLineEndCol + 1) : firstLineEndCol;\n editor.selection.moveCursorTo(selectionStart.row, firstLineEndCol);\n }\n },\n multiSelectAction: \"forEach\",\n readOnly: true\n}, {\n name: \"invertSelection\",\n bindKey: bindKey(null, null),\n exec: function(editor) {\n var endRow = editor.session.doc.getLength() - 1;\n var endCol = editor.session.doc.getLine(endRow).length;\n var ranges = editor.selection.rangeList.ranges;\n var newRanges = [];\n if (ranges.length < 1) {\n ranges = [editor.selection.getRange()];\n }\n\n for (var i = 0; i < ranges.length; i++) {\n if (i == (ranges.length - 1)) {\n if (!(ranges[i].end.row === endRow && ranges[i].end.column === endCol)) {\n newRanges.push(new Range(ranges[i].end.row, ranges[i].end.column, endRow, endCol));\n }\n }\n\n if (i === 0) {\n if (!(ranges[i].start.row === 0 && ranges[i].start.column === 0)) {\n newRanges.push(new Range(0, 0, ranges[i].start.row, ranges[i].start.column));\n }\n } else {\n newRanges.push(new Range(ranges[i-1].end.row, ranges[i-1].end.column, ranges[i].start.row, ranges[i].start.column));\n }\n }\n\n editor.exitMultiSelectMode();\n editor.clearSelection();\n\n for(var i = 0; i < newRanges.length; i++) {\n editor.selection.addRange(newRanges[i], false);\n }\n },\n readOnly: true,\n scrollIntoView: \"none\"\n}];\n\n});\n\nace.define(\"ace/editor\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/keyboard/textinput\",\"ace/mouse/mouse_handler\",\"ace/mouse/fold_handler\",\"ace/keyboard/keybinding\",\"ace/edit_session\",\"ace/search\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/commands/command_manager\",\"ace/commands/default_commands\",\"ace/config\",\"ace/token_iterator\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./lib/fixoldbrowsers\");\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar lang = acequire(\"./lib/lang\");\nvar useragent = acequire(\"./lib/useragent\");\nvar TextInput = acequire(\"./keyboard/textinput\").TextInput;\nvar MouseHandler = acequire(\"./mouse/mouse_handler\").MouseHandler;\nvar FoldHandler = acequire(\"./mouse/fold_handler\").FoldHandler;\nvar KeyBinding = acequire(\"./keyboard/keybinding\").KeyBinding;\nvar EditSession = acequire(\"./edit_session\").EditSession;\nvar Search = acequire(\"./search\").Search;\nvar Range = acequire(\"./range\").Range;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar CommandManager = acequire(\"./commands/command_manager\").CommandManager;\nvar defaultCommands = acequire(\"./commands/default_commands\").commands;\nvar config = acequire(\"./config\");\nvar TokenIterator = acequire(\"./token_iterator\").TokenIterator;\nvar Editor = function(renderer, session) {\n var container = renderer.getContainerElement();\n this.container = container;\n this.renderer = renderer;\n this.id = \"editor\" + (++Editor.$uid);\n\n this.commands = new CommandManager(useragent.isMac ? \"mac\" : \"win\", defaultCommands);\n if (typeof document == \"object\") {\n this.textInput = new TextInput(renderer.getTextAreaContainer(), this);\n this.renderer.textarea = this.textInput.getElement();\n this.$mouseHandler = new MouseHandler(this);\n new FoldHandler(this);\n }\n\n this.keyBinding = new KeyBinding(this);\n\n this.$blockScrolling = 0;\n this.$search = new Search().set({\n wrap: true\n });\n\n this.$historyTracker = this.$historyTracker.bind(this);\n this.commands.on(\"exec\", this.$historyTracker);\n\n this.$initOperationListeners();\n \n this._$emitInputEvent = lang.delayedCall(function() {\n this._signal(\"input\", {});\n if (this.session && this.session.bgTokenizer)\n this.session.bgTokenizer.scheduleStart();\n }.bind(this));\n \n this.on(\"change\", function(_, _self) {\n _self._$emitInputEvent.schedule(31);\n });\n\n this.setSession(session || new EditSession(\"\"));\n config.resetOptions(this);\n config._signal(\"editor\", this);\n};\n\nEditor.$uid = 0;\n\n(function(){\n\n oop.implement(this, EventEmitter);\n\n this.$initOperationListeners = function() {\n function last(a) {return a[a.length - 1];}\n\n this.selections = [];\n this.commands.on(\"exec\", this.startOperation.bind(this), true);\n this.commands.on(\"afterExec\", this.endOperation.bind(this), true);\n\n this.$opResetTimer = lang.delayedCall(this.endOperation.bind(this));\n\n this.on(\"change\", function() {\n this.curOp || this.startOperation();\n this.curOp.docChanged = true;\n }.bind(this), true);\n\n this.on(\"changeSelection\", function() {\n this.curOp || this.startOperation();\n this.curOp.selectionChanged = true;\n }.bind(this), true);\n };\n\n this.curOp = null;\n this.prevOp = {};\n this.startOperation = function(commadEvent) {\n if (this.curOp) {\n if (!commadEvent || this.curOp.command)\n return;\n this.prevOp = this.curOp;\n }\n if (!commadEvent) {\n this.previousCommand = null;\n commadEvent = {};\n }\n\n this.$opResetTimer.schedule();\n this.curOp = {\n command: commadEvent.command || {},\n args: commadEvent.args,\n scrollTop: this.renderer.scrollTop\n };\n if (this.curOp.command.name && this.curOp.command.scrollIntoView !== undefined)\n this.$blockScrolling++;\n };\n\n this.endOperation = function(e) {\n if (this.curOp) {\n if (e && e.returnValue === false)\n return this.curOp = null;\n this._signal(\"beforeEndOperation\");\n var command = this.curOp.command;\n if (command.name && this.$blockScrolling > 0)\n this.$blockScrolling--;\n var scrollIntoView = command && command.scrollIntoView;\n if (scrollIntoView) {\n switch (scrollIntoView) {\n case \"center-animate\":\n scrollIntoView = \"animate\";\n case \"center\":\n this.renderer.scrollCursorIntoView(null, 0.5);\n break;\n case \"animate\":\n case \"cursor\":\n this.renderer.scrollCursorIntoView();\n break;\n case \"selectionPart\":\n var range = this.selection.getRange();\n var config = this.renderer.layerConfig;\n if (range.start.row >= config.lastRow || range.end.row <= config.firstRow) {\n this.renderer.scrollSelectionIntoView(this.selection.anchor, this.selection.lead);\n }\n break;\n default:\n break;\n }\n if (scrollIntoView == \"animate\")\n this.renderer.animateScrolling(this.curOp.scrollTop);\n }\n \n this.prevOp = this.curOp;\n this.curOp = null;\n }\n };\n this.$mergeableCommands = [\"backspace\", \"del\", \"insertstring\"];\n this.$historyTracker = function(e) {\n if (!this.$mergeUndoDeltas)\n return;\n\n var prev = this.prevOp;\n var mergeableCommands = this.$mergeableCommands;\n var shouldMerge = prev.command && (e.command.name == prev.command.name);\n if (e.command.name == \"insertstring\") {\n var text = e.args;\n if (this.mergeNextCommand === undefined)\n this.mergeNextCommand = true;\n\n shouldMerge = shouldMerge\n && this.mergeNextCommand // previous command allows to coalesce with\n && (!/\\s/.test(text) || /\\s/.test(prev.args)); // previous insertion was of same type\n\n this.mergeNextCommand = true;\n } else {\n shouldMerge = shouldMerge\n && mergeableCommands.indexOf(e.command.name) !== -1; // the command is mergeable\n }\n\n if (\n this.$mergeUndoDeltas != \"always\"\n && Date.now() - this.sequenceStartTime > 2000\n ) {\n shouldMerge = false; // the sequence is too long\n }\n\n if (shouldMerge)\n this.session.mergeUndoDeltas = true;\n else if (mergeableCommands.indexOf(e.command.name) !== -1)\n this.sequenceStartTime = Date.now();\n };\n this.setKeyboardHandler = function(keyboardHandler, cb) {\n if (keyboardHandler && typeof keyboardHandler === \"string\") {\n this.$keybindingId = keyboardHandler;\n var _self = this;\n config.loadModule([\"keybinding\", keyboardHandler], function(module) {\n if (_self.$keybindingId == keyboardHandler)\n _self.keyBinding.setKeyboardHandler(module && module.handler);\n cb && cb();\n });\n } else {\n this.$keybindingId = null;\n this.keyBinding.setKeyboardHandler(keyboardHandler);\n cb && cb();\n }\n };\n this.getKeyboardHandler = function() {\n return this.keyBinding.getKeyboardHandler();\n };\n this.setSession = function(session) {\n if (this.session == session)\n return;\n if (this.curOp) this.endOperation();\n this.curOp = {};\n\n var oldSession = this.session;\n if (oldSession) {\n this.session.off(\"change\", this.$onDocumentChange);\n this.session.off(\"changeMode\", this.$onChangeMode);\n this.session.off(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.session.off(\"changeTabSize\", this.$onChangeTabSize);\n this.session.off(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.session.off(\"changeWrapMode\", this.$onChangeWrapMode);\n this.session.off(\"changeFold\", this.$onChangeFold);\n this.session.off(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.session.off(\"changeBackMarker\", this.$onChangeBackMarker);\n this.session.off(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.session.off(\"changeAnnotation\", this.$onChangeAnnotation);\n this.session.off(\"changeOverwrite\", this.$onCursorChange);\n this.session.off(\"changeScrollTop\", this.$onScrollTopChange);\n this.session.off(\"changeScrollLeft\", this.$onScrollLeftChange);\n\n var selection = this.session.getSelection();\n selection.off(\"changeCursor\", this.$onCursorChange);\n selection.off(\"changeSelection\", this.$onSelectionChange);\n }\n\n this.session = session;\n if (session) {\n this.$onDocumentChange = this.onDocumentChange.bind(this);\n session.on(\"change\", this.$onDocumentChange);\n this.renderer.setSession(session);\n \n this.$onChangeMode = this.onChangeMode.bind(this);\n session.on(\"changeMode\", this.$onChangeMode);\n \n this.$onTokenizerUpdate = this.onTokenizerUpdate.bind(this);\n session.on(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n \n this.$onChangeTabSize = this.renderer.onChangeTabSize.bind(this.renderer);\n session.on(\"changeTabSize\", this.$onChangeTabSize);\n \n this.$onChangeWrapLimit = this.onChangeWrapLimit.bind(this);\n session.on(\"changeWrapLimit\", this.$onChangeWrapLimit);\n \n this.$onChangeWrapMode = this.onChangeWrapMode.bind(this);\n session.on(\"changeWrapMode\", this.$onChangeWrapMode);\n \n this.$onChangeFold = this.onChangeFold.bind(this);\n session.on(\"changeFold\", this.$onChangeFold);\n \n this.$onChangeFrontMarker = this.onChangeFrontMarker.bind(this);\n this.session.on(\"changeFrontMarker\", this.$onChangeFrontMarker);\n \n this.$onChangeBackMarker = this.onChangeBackMarker.bind(this);\n this.session.on(\"changeBackMarker\", this.$onChangeBackMarker);\n \n this.$onChangeBreakpoint = this.onChangeBreakpoint.bind(this);\n this.session.on(\"changeBreakpoint\", this.$onChangeBreakpoint);\n \n this.$onChangeAnnotation = this.onChangeAnnotation.bind(this);\n this.session.on(\"changeAnnotation\", this.$onChangeAnnotation);\n \n this.$onCursorChange = this.onCursorChange.bind(this);\n this.session.on(\"changeOverwrite\", this.$onCursorChange);\n \n this.$onScrollTopChange = this.onScrollTopChange.bind(this);\n this.session.on(\"changeScrollTop\", this.$onScrollTopChange);\n \n this.$onScrollLeftChange = this.onScrollLeftChange.bind(this);\n this.session.on(\"changeScrollLeft\", this.$onScrollLeftChange);\n \n this.selection = session.getSelection();\n this.selection.on(\"changeCursor\", this.$onCursorChange);\n \n this.$onSelectionChange = this.onSelectionChange.bind(this);\n this.selection.on(\"changeSelection\", this.$onSelectionChange);\n \n this.onChangeMode();\n \n this.$blockScrolling += 1;\n this.onCursorChange();\n this.$blockScrolling -= 1;\n \n this.onScrollTopChange();\n this.onScrollLeftChange();\n this.onSelectionChange();\n this.onChangeFrontMarker();\n this.onChangeBackMarker();\n this.onChangeBreakpoint();\n this.onChangeAnnotation();\n this.session.getUseWrapMode() && this.renderer.adjustWrapLimit();\n this.renderer.updateFull();\n } else {\n this.selection = null;\n this.renderer.setSession(session);\n }\n\n this._signal(\"changeSession\", {\n session: session,\n oldSession: oldSession\n });\n \n this.curOp = null;\n \n oldSession && oldSession._signal(\"changeEditor\", {oldEditor: this});\n session && session._signal(\"changeEditor\", {editor: this});\n\n if (session && session.bgTokenizer)\n session.bgTokenizer.scheduleStart();\n };\n this.getSession = function() {\n return this.session;\n };\n this.setValue = function(val, cursorPos) {\n this.session.doc.setValue(val);\n\n if (!cursorPos)\n this.selectAll();\n else if (cursorPos == 1)\n this.navigateFileEnd();\n else if (cursorPos == -1)\n this.navigateFileStart();\n\n return val;\n };\n this.getValue = function() {\n return this.session.getValue();\n };\n this.getSelection = function() {\n return this.selection;\n };\n this.resize = function(force) {\n this.renderer.onResize(force);\n };\n this.setTheme = function(theme, cb) {\n this.renderer.setTheme(theme, cb);\n };\n this.getTheme = function() {\n return this.renderer.getTheme();\n };\n this.setStyle = function(style) {\n this.renderer.setStyle(style);\n };\n this.unsetStyle = function(style) {\n this.renderer.unsetStyle(style);\n };\n this.getFontSize = function () {\n return this.getOption(\"fontSize\") ||\n dom.computedStyle(this.container, \"fontSize\");\n };\n this.setFontSize = function(size) {\n this.setOption(\"fontSize\", size);\n };\n\n this.$highlightBrackets = function() {\n if (this.session.$bracketHighlight) {\n this.session.removeMarker(this.session.$bracketHighlight);\n this.session.$bracketHighlight = null;\n }\n\n if (this.$highlightPending) {\n return;\n }\n var self = this;\n this.$highlightPending = true;\n setTimeout(function() {\n self.$highlightPending = false;\n var session = self.session;\n if (!session || !session.bgTokenizer) return;\n var pos = session.findMatchingBracket(self.getCursorPosition());\n if (pos) {\n var range = new Range(pos.row, pos.column, pos.row, pos.column + 1);\n } else if (session.$mode.getMatching) {\n var range = session.$mode.getMatching(self.session);\n }\n if (range)\n session.$bracketHighlight = session.addMarker(range, \"ace_bracket\", \"text\");\n }, 50);\n };\n this.$highlightTags = function() {\n if (this.$highlightTagPending)\n return;\n var self = this;\n this.$highlightTagPending = true;\n setTimeout(function() {\n self.$highlightTagPending = false;\n \n var session = self.session;\n if (!session || !session.bgTokenizer) return;\n \n var pos = self.getCursorPosition();\n var iterator = new TokenIterator(self.session, pos.row, pos.column);\n var token = iterator.getCurrentToken();\n \n if (!token || !/\\b(?:tag-open|tag-name)/.test(token.type)) {\n session.removeMarker(session.$tagHighlight);\n session.$tagHighlight = null;\n return;\n }\n \n if (token.type.indexOf(\"tag-open\") != -1) {\n token = iterator.stepForward();\n if (!token)\n return;\n }\n \n var tag = token.value;\n var depth = 0;\n var prevToken = iterator.stepBackward();\n \n if (prevToken.value == '<'){\n do {\n prevToken = token;\n token = iterator.stepForward();\n \n if (token && token.value === tag && token.type.indexOf('tag-name') !== -1) {\n if (prevToken.value === '<'){\n depth++;\n } else if (prevToken.value === '</'){\n depth--;\n }\n }\n \n } while (token && depth >= 0);\n } else {\n do {\n token = prevToken;\n prevToken = iterator.stepBackward();\n \n if (token && token.value === tag && token.type.indexOf('tag-name') !== -1) {\n if (prevToken.value === '<') {\n depth++;\n } else if (prevToken.value === '</') {\n depth--;\n }\n }\n } while (prevToken && depth <= 0);\n iterator.stepForward();\n }\n \n if (!token) {\n session.removeMarker(session.$tagHighlight);\n session.$tagHighlight = null;\n return;\n }\n \n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn();\n var range = new Range(row, column, row, column+token.value.length);\n var sbm = session.$backMarkers[session.$tagHighlight];\n if (session.$tagHighlight && sbm != undefined && range.compareRange(sbm.range) !== 0) {\n session.removeMarker(session.$tagHighlight);\n session.$tagHighlight = null;\n }\n \n if (range && !session.$tagHighlight)\n session.$tagHighlight = session.addMarker(range, \"ace_bracket\", \"text\");\n }, 50);\n };\n this.focus = function() {\n var _self = this;\n setTimeout(function() {\n _self.textInput.focus();\n });\n this.textInput.focus();\n };\n this.isFocused = function() {\n return this.textInput.isFocused();\n };\n this.blur = function() {\n this.textInput.blur();\n };\n this.onFocus = function(e) {\n if (this.$isFocused)\n return;\n this.$isFocused = true;\n this.renderer.showCursor();\n this.renderer.visualizeFocus();\n this._emit(\"focus\", e);\n };\n this.onBlur = function(e) {\n if (!this.$isFocused)\n return;\n this.$isFocused = false;\n this.renderer.hideCursor();\n this.renderer.visualizeBlur();\n this._emit(\"blur\", e);\n };\n\n this.$cursorChange = function() {\n this.renderer.updateCursor();\n };\n this.onDocumentChange = function(delta) {\n var wrap = this.session.$useWrapMode;\n var lastRow = (delta.start.row == delta.end.row ? delta.end.row : Infinity);\n this.renderer.updateLines(delta.start.row, lastRow, wrap);\n\n this._signal(\"change\", delta);\n this.$cursorChange();\n this.$updateHighlightActiveLine();\n };\n\n this.onTokenizerUpdate = function(e) {\n var rows = e.data;\n this.renderer.updateLines(rows.first, rows.last);\n };\n\n\n this.onScrollTopChange = function() {\n this.renderer.scrollToY(this.session.getScrollTop());\n };\n\n this.onScrollLeftChange = function() {\n this.renderer.scrollToX(this.session.getScrollLeft());\n };\n this.onCursorChange = function() {\n this.$cursorChange();\n\n if (!this.$blockScrolling) {\n config.warn(\"Automatically scrolling cursor into view after selection change\",\n \"this will be disabled in the next version\",\n \"set editor.$blockScrolling = Infinity to disable this message\"\n );\n this.renderer.scrollCursorIntoView();\n }\n\n this.$highlightBrackets();\n this.$highlightTags();\n this.$updateHighlightActiveLine();\n this._signal(\"changeSelection\");\n };\n\n this.$updateHighlightActiveLine = function() {\n var session = this.getSession();\n\n var highlight;\n if (this.$highlightActiveLine) {\n if ((this.$selectionStyle != \"line\" || !this.selection.isMultiLine()))\n highlight = this.getCursorPosition();\n if (this.renderer.$maxLines && this.session.getLength() === 1 && !(this.renderer.$minLines > 1))\n highlight = false;\n }\n\n if (session.$highlightLineMarker && !highlight) {\n session.removeMarker(session.$highlightLineMarker.id);\n session.$highlightLineMarker = null;\n } else if (!session.$highlightLineMarker && highlight) {\n var range = new Range(highlight.row, highlight.column, highlight.row, Infinity);\n range.id = session.addMarker(range, \"ace_active-line\", \"screenLine\");\n session.$highlightLineMarker = range;\n } else if (highlight) {\n session.$highlightLineMarker.start.row = highlight.row;\n session.$highlightLineMarker.end.row = highlight.row;\n session.$highlightLineMarker.start.column = highlight.column;\n session._signal(\"changeBackMarker\");\n }\n };\n\n this.onSelectionChange = function(e) {\n var session = this.session;\n\n if (session.$selectionMarker) {\n session.removeMarker(session.$selectionMarker);\n }\n session.$selectionMarker = null;\n\n if (!this.selection.isEmpty()) {\n var range = this.selection.getRange();\n var style = this.getSelectionStyle();\n session.$selectionMarker = session.addMarker(range, \"ace_selection\", style);\n } else {\n this.$updateHighlightActiveLine();\n }\n\n var re = this.$highlightSelectedWord && this.$getSelectionHighLightRegexp();\n this.session.highlight(re);\n\n this._signal(\"changeSelection\");\n };\n\n this.$getSelectionHighLightRegexp = function() {\n var session = this.session;\n\n var selection = this.getSelectionRange();\n if (selection.isEmpty() || selection.isMultiLine())\n return;\n\n var startOuter = selection.start.column - 1;\n var endOuter = selection.end.column + 1;\n var line = session.getLine(selection.start.row);\n var lineCols = line.length;\n var needle = line.substring(Math.max(startOuter, 0),\n Math.min(endOuter, lineCols));\n if ((startOuter >= 0 && /^[\\w\\d]/.test(needle)) ||\n (endOuter <= lineCols && /[\\w\\d]$/.test(needle)))\n return;\n\n needle = line.substring(selection.start.column, selection.end.column);\n if (!/^[\\w\\d]+$/.test(needle))\n return;\n\n var re = this.$search.$assembleRegExp({\n wholeWord: true,\n caseSensitive: true,\n needle: needle\n });\n\n return re;\n };\n\n\n this.onChangeFrontMarker = function() {\n this.renderer.updateFrontMarkers();\n };\n\n this.onChangeBackMarker = function() {\n this.renderer.updateBackMarkers();\n };\n\n\n this.onChangeBreakpoint = function() {\n this.renderer.updateBreakpoints();\n };\n\n this.onChangeAnnotation = function() {\n this.renderer.setAnnotations(this.session.getAnnotations());\n };\n\n\n this.onChangeMode = function(e) {\n this.renderer.updateText();\n this._emit(\"changeMode\", e);\n };\n\n\n this.onChangeWrapLimit = function() {\n this.renderer.updateFull();\n };\n\n this.onChangeWrapMode = function() {\n this.renderer.onResize(true);\n };\n\n\n this.onChangeFold = function() {\n this.$updateHighlightActiveLine();\n this.renderer.updateFull();\n };\n this.getSelectedText = function() {\n return this.session.getTextRange(this.getSelectionRange());\n };\n this.getCopyText = function() {\n var text = this.getSelectedText();\n this._signal(\"copy\", text);\n return text;\n };\n this.onCopy = function() {\n this.commands.exec(\"copy\", this);\n };\n this.onCut = function() {\n this.commands.exec(\"cut\", this);\n };\n this.onPaste = function(text, event) {\n var e = {text: text, event: event};\n this.commands.exec(\"paste\", this, e);\n };\n \n this.$handlePaste = function(e) {\n if (typeof e == \"string\") \n e = {text: e};\n this._signal(\"paste\", e);\n var text = e.text;\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode) {\n this.insert(text);\n } else {\n var lines = text.split(/\\r\\n|\\r|\\n/);\n var ranges = this.selection.rangeList.ranges;\n \n if (lines.length > ranges.length || lines.length < 2 || !lines[1])\n return this.commands.exec(\"insertstring\", this, text);\n \n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.isEmpty())\n this.session.remove(range);\n \n this.session.insert(range.start, lines[i]);\n }\n }\n };\n\n this.execCommand = function(command, args) {\n return this.commands.exec(command, this, args);\n };\n this.insert = function(text, pasted) {\n var session = this.session;\n var mode = session.getMode();\n var cursor = this.getCursorPosition();\n\n if (this.getBehavioursEnabled() && !pasted) {\n var transform = mode.transformAction(session.getState(cursor.row), 'insertion', this, session, text);\n if (transform) {\n if (text !== transform.text) {\n this.session.mergeUndoDeltas = false;\n this.$mergeNextCommand = false;\n }\n text = transform.text;\n\n }\n }\n \n if (text == \"\\t\")\n text = this.session.getTabString();\n if (!this.selection.isEmpty()) {\n var range = this.getSelectionRange();\n cursor = this.session.remove(range);\n this.clearSelection();\n }\n else if (this.session.getOverwrite() && text.indexOf(\"\\n\") == -1) {\n var range = new Range.fromPoints(cursor, cursor);\n range.end.column += text.length;\n this.session.remove(range);\n }\n\n if (text == \"\\n\" || text == \"\\r\\n\") {\n var line = session.getLine(cursor.row);\n if (cursor.column > line.search(/\\S|$/)) {\n var d = line.substr(cursor.column).search(/\\S|$/);\n session.doc.removeInLine(cursor.row, cursor.column, cursor.column + d);\n }\n }\n this.clearSelection();\n\n var start = cursor.column;\n var lineState = session.getState(cursor.row);\n var line = session.getLine(cursor.row);\n var shouldOutdent = mode.checkOutdent(lineState, line, text);\n var end = session.insert(cursor, text);\n\n if (transform && transform.selection) {\n if (transform.selection.length == 2) { // Transform relative to the current column\n this.selection.setSelectionRange(\n new Range(cursor.row, start + transform.selection[0],\n cursor.row, start + transform.selection[1]));\n } else { // Transform relative to the current row.\n this.selection.setSelectionRange(\n new Range(cursor.row + transform.selection[0],\n transform.selection[1],\n cursor.row + transform.selection[2],\n transform.selection[3]));\n }\n }\n\n if (session.getDocument().isNewLine(text)) {\n var lineIndent = mode.getNextLineIndent(lineState, line.slice(0, cursor.column), session.getTabString());\n\n session.insert({row: cursor.row+1, column: 0}, lineIndent);\n }\n if (shouldOutdent)\n mode.autoOutdent(lineState, session, cursor.row);\n };\n\n this.onTextInput = function(text) {\n this.keyBinding.onTextInput(text);\n };\n\n this.onCommandKey = function(e, hashId, keyCode) {\n this.keyBinding.onCommandKey(e, hashId, keyCode);\n };\n this.setOverwrite = function(overwrite) {\n this.session.setOverwrite(overwrite);\n };\n this.getOverwrite = function() {\n return this.session.getOverwrite();\n };\n this.toggleOverwrite = function() {\n this.session.toggleOverwrite();\n };\n this.setScrollSpeed = function(speed) {\n this.setOption(\"scrollSpeed\", speed);\n };\n this.getScrollSpeed = function() {\n return this.getOption(\"scrollSpeed\");\n };\n this.setDragDelay = function(dragDelay) {\n this.setOption(\"dragDelay\", dragDelay);\n };\n this.getDragDelay = function() {\n return this.getOption(\"dragDelay\");\n };\n this.setSelectionStyle = function(val) {\n this.setOption(\"selectionStyle\", val);\n };\n this.getSelectionStyle = function() {\n return this.getOption(\"selectionStyle\");\n };\n this.setHighlightActiveLine = function(shouldHighlight) {\n this.setOption(\"highlightActiveLine\", shouldHighlight);\n };\n this.getHighlightActiveLine = function() {\n return this.getOption(\"highlightActiveLine\");\n };\n this.setHighlightGutterLine = function(shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n\n this.getHighlightGutterLine = function() {\n return this.getOption(\"highlightGutterLine\");\n };\n this.setHighlightSelectedWord = function(shouldHighlight) {\n this.setOption(\"highlightSelectedWord\", shouldHighlight);\n };\n this.getHighlightSelectedWord = function() {\n return this.$highlightSelectedWord;\n };\n\n this.setAnimatedScroll = function(shouldAnimate){\n this.renderer.setAnimatedScroll(shouldAnimate);\n };\n\n this.getAnimatedScroll = function(){\n return this.renderer.getAnimatedScroll();\n };\n this.setShowInvisibles = function(showInvisibles) {\n this.renderer.setShowInvisibles(showInvisibles);\n };\n this.getShowInvisibles = function() {\n return this.renderer.getShowInvisibles();\n };\n\n this.setDisplayIndentGuides = function(display) {\n this.renderer.setDisplayIndentGuides(display);\n };\n\n this.getDisplayIndentGuides = function() {\n return this.renderer.getDisplayIndentGuides();\n };\n this.setShowPrintMargin = function(showPrintMargin) {\n this.renderer.setShowPrintMargin(showPrintMargin);\n };\n this.getShowPrintMargin = function() {\n return this.renderer.getShowPrintMargin();\n };\n this.setPrintMarginColumn = function(showPrintMargin) {\n this.renderer.setPrintMarginColumn(showPrintMargin);\n };\n this.getPrintMarginColumn = function() {\n return this.renderer.getPrintMarginColumn();\n };\n this.setReadOnly = function(readOnly) {\n this.setOption(\"readOnly\", readOnly);\n };\n this.getReadOnly = function() {\n return this.getOption(\"readOnly\");\n };\n this.setBehavioursEnabled = function (enabled) {\n this.setOption(\"behavioursEnabled\", enabled);\n };\n this.getBehavioursEnabled = function () {\n return this.getOption(\"behavioursEnabled\");\n };\n this.setWrapBehavioursEnabled = function (enabled) {\n this.setOption(\"wrapBehavioursEnabled\", enabled);\n };\n this.getWrapBehavioursEnabled = function () {\n return this.getOption(\"wrapBehavioursEnabled\");\n };\n this.setShowFoldWidgets = function(show) {\n this.setOption(\"showFoldWidgets\", show);\n\n };\n this.getShowFoldWidgets = function() {\n return this.getOption(\"showFoldWidgets\");\n };\n\n this.setFadeFoldWidgets = function(fade) {\n this.setOption(\"fadeFoldWidgets\", fade);\n };\n\n this.getFadeFoldWidgets = function() {\n return this.getOption(\"fadeFoldWidgets\");\n };\n this.remove = function(dir) {\n if (this.selection.isEmpty()){\n if (dir == \"left\")\n this.selection.selectLeft();\n else\n this.selection.selectRight();\n }\n\n var range = this.getSelectionRange();\n if (this.getBehavioursEnabled()) {\n var session = this.session;\n var state = session.getState(range.start.row);\n var new_range = session.getMode().transformAction(state, 'deletion', this, session, range);\n\n if (range.end.column === 0) {\n var text = session.getTextRange(range);\n if (text[text.length - 1] == \"\\n\") {\n var line = session.getLine(range.end.row);\n if (/^\\s+$/.test(line)) {\n range.end.column = line.length;\n }\n }\n }\n if (new_range)\n range = new_range;\n }\n\n this.session.remove(range);\n this.clearSelection();\n };\n this.removeWordRight = function() {\n if (this.selection.isEmpty())\n this.selection.selectWordRight();\n\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n this.removeWordLeft = function() {\n if (this.selection.isEmpty())\n this.selection.selectWordLeft();\n\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n this.removeToLineStart = function() {\n if (this.selection.isEmpty())\n this.selection.selectLineStart();\n\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n this.removeToLineEnd = function() {\n if (this.selection.isEmpty())\n this.selection.selectLineEnd();\n\n var range = this.getSelectionRange();\n if (range.start.column == range.end.column && range.start.row == range.end.row) {\n range.end.column = 0;\n range.end.row++;\n }\n\n this.session.remove(range);\n this.clearSelection();\n };\n this.splitLine = function() {\n if (!this.selection.isEmpty()) {\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n }\n\n var cursor = this.getCursorPosition();\n this.insert(\"\\n\");\n this.moveCursorToPosition(cursor);\n };\n this.transposeLetters = function() {\n if (!this.selection.isEmpty()) {\n return;\n }\n\n var cursor = this.getCursorPosition();\n var column = cursor.column;\n if (column === 0)\n return;\n\n var line = this.session.getLine(cursor.row);\n var swap, range;\n if (column < line.length) {\n swap = line.charAt(column) + line.charAt(column-1);\n range = new Range(cursor.row, column-1, cursor.row, column+1);\n }\n else {\n swap = line.charAt(column-1) + line.charAt(column-2);\n range = new Range(cursor.row, column-2, cursor.row, column);\n }\n this.session.replace(range, swap);\n this.session.selection.moveToPosition(range.end);\n };\n this.toLowerCase = function() {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toLowerCase());\n this.selection.setSelectionRange(originalRange);\n };\n this.toUpperCase = function() {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toUpperCase());\n this.selection.setSelectionRange(originalRange);\n };\n this.indent = function() {\n var session = this.session;\n var range = this.getSelectionRange();\n\n if (range.start.row < range.end.row) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n } else if (range.start.column < range.end.column) {\n var text = session.getTextRange(range);\n if (!/^\\s+$/.test(text)) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n }\n \n var line = session.getLine(range.start.row);\n var position = range.start;\n var size = session.getTabSize();\n var column = session.documentToScreenColumn(position.row, position.column);\n\n if (this.session.getUseSoftTabs()) {\n var count = (size - column % size);\n var indentString = lang.stringRepeat(\" \", count);\n } else {\n var count = column % size;\n while (line[range.start.column - 1] == \" \" && count) {\n range.start.column--;\n count--;\n }\n this.selection.setSelectionRange(range);\n indentString = \"\\t\";\n }\n return this.insert(indentString);\n };\n this.blockIndent = function() {\n var rows = this.$getSelectedRows();\n this.session.indentRows(rows.first, rows.last, \"\\t\");\n };\n this.blockOutdent = function() {\n var selection = this.session.getSelection();\n this.session.outdentRows(selection.getRange());\n };\n this.sortLines = function() {\n var rows = this.$getSelectedRows();\n var session = this.session;\n\n var lines = [];\n for (var i = rows.first; i <= rows.last; i++)\n lines.push(session.getLine(i));\n\n lines.sort(function(a, b) {\n if (a.toLowerCase() < b.toLowerCase()) return -1;\n if (a.toLowerCase() > b.toLowerCase()) return 1;\n return 0;\n });\n\n var deleteRange = new Range(0, 0, 0, 0);\n for (var i = rows.first; i <= rows.last; i++) {\n var line = session.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n deleteRange.end.column = line.length;\n session.replace(deleteRange, lines[i-rows.first]);\n }\n };\n this.toggleCommentLines = function() {\n var state = this.session.getState(this.getCursorPosition().row);\n var rows = this.$getSelectedRows();\n this.session.getMode().toggleCommentLines(state, this.session, rows.first, rows.last);\n };\n\n this.toggleBlockComment = function() {\n var cursor = this.getCursorPosition();\n var state = this.session.getState(cursor.row);\n var range = this.getSelectionRange();\n this.session.getMode().toggleBlockComment(state, this.session, range, cursor);\n };\n this.getNumberAt = function(row, column) {\n var _numberRx = /[\\-]?[0-9]+(?:\\.[0-9]+)?/g;\n _numberRx.lastIndex = 0;\n\n var s = this.session.getLine(row);\n while (_numberRx.lastIndex < column) {\n var m = _numberRx.exec(s);\n if(m.index <= column && m.index+m[0].length >= column){\n var number = {\n value: m[0],\n start: m.index,\n end: m.index+m[0].length\n };\n return number;\n }\n }\n return null;\n };\n this.modifyNumber = function(amount) {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n var charRange = new Range(row, column-1, row, column);\n\n var c = this.session.getTextRange(charRange);\n if (!isNaN(parseFloat(c)) && isFinite(c)) {\n var nr = this.getNumberAt(row, column);\n if (nr) {\n var fp = nr.value.indexOf(\".\") >= 0 ? nr.start + nr.value.indexOf(\".\") + 1 : nr.end;\n var decimals = nr.start + nr.value.length - fp;\n\n var t = parseFloat(nr.value);\n t *= Math.pow(10, decimals);\n\n\n if(fp !== nr.end && column < fp){\n amount *= Math.pow(10, nr.end - column - 1);\n } else {\n amount *= Math.pow(10, nr.end - column);\n }\n\n t += amount;\n t /= Math.pow(10, decimals);\n var nnr = t.toFixed(decimals);\n var replaceRange = new Range(row, nr.start, row, nr.end);\n this.session.replace(replaceRange, nnr);\n this.moveCursorTo(row, Math.max(nr.start +1, column + nnr.length - nr.value.length));\n\n }\n }\n };\n this.removeLines = function() {\n var rows = this.$getSelectedRows();\n this.session.removeFullLines(rows.first, rows.last);\n this.clearSelection();\n };\n\n this.duplicateSelection = function() {\n var sel = this.selection;\n var doc = this.session;\n var range = sel.getRange();\n var reverse = sel.isBackwards();\n if (range.isEmpty()) {\n var row = range.start.row;\n doc.duplicateLines(row, row);\n } else {\n var point = reverse ? range.start : range.end;\n var endPoint = doc.insert(point, doc.getTextRange(range), false);\n range.start = point;\n range.end = endPoint;\n\n sel.setSelectionRange(range, reverse);\n }\n };\n this.moveLinesDown = function() {\n this.$moveLines(1, false);\n };\n this.moveLinesUp = function() {\n this.$moveLines(-1, false);\n };\n this.moveText = function(range, toPosition, copy) {\n return this.session.moveText(range, toPosition, copy);\n };\n this.copyLinesUp = function() {\n this.$moveLines(-1, true);\n };\n this.copyLinesDown = function() {\n this.$moveLines(1, true);\n };\n this.$moveLines = function(dir, copy) {\n var rows, moved;\n var selection = this.selection;\n if (!selection.inMultiSelectMode || this.inVirtualSelectionMode) {\n var range = selection.toOrientedRange();\n rows = this.$getSelectedRows(range);\n moved = this.session.$moveLines(rows.first, rows.last, copy ? 0 : dir);\n if (copy && dir == -1) moved = 0;\n range.moveBy(moved, 0);\n selection.fromOrientedRange(range);\n } else {\n var ranges = selection.rangeList.ranges;\n selection.rangeList.detach(this.session);\n this.inVirtualSelectionMode = true;\n \n var diff = 0;\n var totalDiff = 0;\n var l = ranges.length;\n for (var i = 0; i < l; i++) {\n var rangeIndex = i;\n ranges[i].moveBy(diff, 0);\n rows = this.$getSelectedRows(ranges[i]);\n var first = rows.first;\n var last = rows.last;\n while (++i < l) {\n if (totalDiff) ranges[i].moveBy(totalDiff, 0);\n var subRows = this.$getSelectedRows(ranges[i]);\n if (copy && subRows.first != last)\n break;\n else if (!copy && subRows.first > last + 1)\n break;\n last = subRows.last;\n }\n i--;\n diff = this.session.$moveLines(first, last, copy ? 0 : dir);\n if (copy && dir == -1) rangeIndex = i + 1;\n while (rangeIndex <= i) {\n ranges[rangeIndex].moveBy(diff, 0);\n rangeIndex++;\n }\n if (!copy) diff = 0;\n totalDiff += diff;\n }\n \n selection.fromOrientedRange(selection.ranges[0]);\n selection.rangeList.attach(this.session);\n this.inVirtualSelectionMode = false;\n }\n };\n this.$getSelectedRows = function(range) {\n range = (range || this.getSelectionRange()).collapseRows();\n\n return {\n first: this.session.getRowFoldStart(range.start.row),\n last: this.session.getRowFoldEnd(range.end.row)\n };\n };\n\n this.onCompositionStart = function(text) {\n this.renderer.showComposition(this.getCursorPosition());\n };\n\n this.onCompositionUpdate = function(text) {\n this.renderer.setCompositionText(text);\n };\n\n this.onCompositionEnd = function() {\n this.renderer.hideComposition();\n };\n this.getFirstVisibleRow = function() {\n return this.renderer.getFirstVisibleRow();\n };\n this.getLastVisibleRow = function() {\n return this.renderer.getLastVisibleRow();\n };\n this.isRowVisible = function(row) {\n return (row >= this.getFirstVisibleRow() && row <= this.getLastVisibleRow());\n };\n this.isRowFullyVisible = function(row) {\n return (row >= this.renderer.getFirstFullyVisibleRow() && row <= this.renderer.getLastFullyVisibleRow());\n };\n this.$getVisibleRowCount = function() {\n return this.renderer.getScrollBottomRow() - this.renderer.getScrollTopRow() + 1;\n };\n\n this.$moveByPage = function(dir, select) {\n var renderer = this.renderer;\n var config = this.renderer.layerConfig;\n var rows = dir * Math.floor(config.height / config.lineHeight);\n\n this.$blockScrolling++;\n if (select === true) {\n this.selection.$moveSelection(function(){\n this.moveCursorBy(rows, 0);\n });\n } else if (select === false) {\n this.selection.moveCursorBy(rows, 0);\n this.selection.clearSelection();\n }\n this.$blockScrolling--;\n\n var scrollTop = renderer.scrollTop;\n\n renderer.scrollBy(0, rows * config.lineHeight);\n if (select != null)\n renderer.scrollCursorIntoView(null, 0.5);\n\n renderer.animateScrolling(scrollTop);\n };\n this.selectPageDown = function() {\n this.$moveByPage(1, true);\n };\n this.selectPageUp = function() {\n this.$moveByPage(-1, true);\n };\n this.gotoPageDown = function() {\n this.$moveByPage(1, false);\n };\n this.gotoPageUp = function() {\n this.$moveByPage(-1, false);\n };\n this.scrollPageDown = function() {\n this.$moveByPage(1);\n };\n this.scrollPageUp = function() {\n this.$moveByPage(-1);\n };\n this.scrollToRow = function(row) {\n this.renderer.scrollToRow(row);\n };\n this.scrollToLine = function(line, center, animate, callback) {\n this.renderer.scrollToLine(line, center, animate, callback);\n };\n this.centerSelection = function() {\n var range = this.getSelectionRange();\n var pos = {\n row: Math.floor(range.start.row + (range.end.row - range.start.row) / 2),\n column: Math.floor(range.start.column + (range.end.column - range.start.column) / 2)\n };\n this.renderer.alignCursor(pos, 0.5);\n };\n this.getCursorPosition = function() {\n return this.selection.getCursor();\n };\n this.getCursorPositionScreen = function() {\n return this.session.documentToScreenPosition(this.getCursorPosition());\n };\n this.getSelectionRange = function() {\n return this.selection.getRange();\n };\n this.selectAll = function() {\n this.$blockScrolling += 1;\n this.selection.selectAll();\n this.$blockScrolling -= 1;\n };\n this.clearSelection = function() {\n this.selection.clearSelection();\n };\n this.moveCursorTo = function(row, column) {\n this.selection.moveCursorTo(row, column);\n };\n this.moveCursorToPosition = function(pos) {\n this.selection.moveCursorToPosition(pos);\n };\n this.jumpToMatching = function(select, expand) {\n var cursor = this.getCursorPosition();\n var iterator = new TokenIterator(this.session, cursor.row, cursor.column);\n var prevToken = iterator.getCurrentToken();\n var token = prevToken || iterator.stepForward();\n\n if (!token) return;\n var matchType;\n var found = false;\n var depth = {};\n var i = cursor.column - token.start;\n var bracketType;\n var brackets = {\n \")\": \"(\",\n \"(\": \"(\",\n \"]\": \"[\",\n \"[\": \"[\",\n \"{\": \"{\",\n \"}\": \"{\"\n };\n \n do {\n if (token.value.match(/[{}()\\[\\]]/g)) {\n for (; i < token.value.length && !found; i++) {\n if (!brackets[token.value[i]]) {\n continue;\n }\n\n bracketType = brackets[token.value[i]] + '.' + token.type.replace(\"rparen\", \"lparen\");\n\n if (isNaN(depth[bracketType])) {\n depth[bracketType] = 0;\n }\n\n switch (token.value[i]) {\n case '(':\n case '[':\n case '{':\n depth[bracketType]++;\n break;\n case ')':\n case ']':\n case '}':\n depth[bracketType]--;\n\n if (depth[bracketType] === -1) {\n matchType = 'bracket';\n found = true;\n }\n break;\n }\n }\n }\n else if (token && token.type.indexOf('tag-name') !== -1) {\n if (isNaN(depth[token.value])) {\n depth[token.value] = 0;\n }\n \n if (prevToken.value === '<') {\n depth[token.value]++;\n }\n else if (prevToken.value === '</') {\n depth[token.value]--;\n }\n \n if (depth[token.value] === -1) {\n matchType = 'tag';\n found = true;\n }\n }\n\n if (!found) {\n prevToken = token;\n token = iterator.stepForward();\n i = 0;\n }\n } while (token && !found);\n if (!matchType)\n return;\n\n var range, pos;\n if (matchType === 'bracket') {\n range = this.session.getBracketRange(cursor);\n if (!range) {\n range = new Range(\n iterator.getCurrentTokenRow(),\n iterator.getCurrentTokenColumn() + i - 1,\n iterator.getCurrentTokenRow(),\n iterator.getCurrentTokenColumn() + i - 1\n );\n pos = range.start;\n if (expand || pos.row === cursor.row && Math.abs(pos.column - cursor.column) < 2)\n range = this.session.getBracketRange(pos);\n }\n }\n else if (matchType === 'tag') {\n if (token && token.type.indexOf('tag-name') !== -1) \n var tag = token.value;\n else\n return;\n\n range = new Range(\n iterator.getCurrentTokenRow(),\n iterator.getCurrentTokenColumn() - 2,\n iterator.getCurrentTokenRow(),\n iterator.getCurrentTokenColumn() - 2\n );\n if (range.compare(cursor.row, cursor.column) === 0) {\n found = false;\n do {\n token = prevToken;\n prevToken = iterator.stepBackward();\n \n if (prevToken) {\n if (prevToken.type.indexOf('tag-close') !== -1) {\n range.setEnd(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1);\n }\n\n if (token.value === tag && token.type.indexOf('tag-name') !== -1) {\n if (prevToken.value === '<') {\n depth[tag]++;\n }\n else if (prevToken.value === '</') {\n depth[tag]--;\n }\n \n if (depth[tag] === 0)\n found = true;\n }\n }\n } while (prevToken && !found);\n }\n if (token && token.type.indexOf('tag-name')) {\n pos = range.start;\n if (pos.row == cursor.row && Math.abs(pos.column - cursor.column) < 2)\n pos = range.end;\n }\n }\n\n pos = range && range.cursor || pos;\n if (pos) {\n if (select) {\n if (range && expand) {\n this.selection.setRange(range);\n } else if (range && range.isEqual(this.getSelectionRange())) {\n this.clearSelection();\n } else {\n this.selection.selectTo(pos.row, pos.column);\n }\n } else {\n this.selection.moveTo(pos.row, pos.column);\n }\n }\n };\n this.gotoLine = function(lineNumber, column, animate) {\n this.selection.clearSelection();\n this.session.unfold({row: lineNumber - 1, column: column || 0});\n\n this.$blockScrolling += 1;\n this.exitMultiSelectMode && this.exitMultiSelectMode();\n this.moveCursorTo(lineNumber - 1, column || 0);\n this.$blockScrolling -= 1;\n\n if (!this.isRowFullyVisible(lineNumber - 1))\n this.scrollToLine(lineNumber - 1, true, animate);\n };\n this.navigateTo = function(row, column) {\n this.selection.moveTo(row, column);\n };\n this.navigateUp = function(times) {\n if (this.selection.isMultiLine() && !this.selection.isBackwards()) {\n var selectionStart = this.selection.anchor.getPosition();\n return this.moveCursorToPosition(selectionStart);\n }\n this.selection.clearSelection();\n this.selection.moveCursorBy(-times || -1, 0);\n };\n this.navigateDown = function(times) {\n if (this.selection.isMultiLine() && this.selection.isBackwards()) {\n var selectionEnd = this.selection.anchor.getPosition();\n return this.moveCursorToPosition(selectionEnd);\n }\n this.selection.clearSelection();\n this.selection.moveCursorBy(times || 1, 0);\n };\n this.navigateLeft = function(times) {\n if (!this.selection.isEmpty()) {\n var selectionStart = this.getSelectionRange().start;\n this.moveCursorToPosition(selectionStart);\n }\n else {\n times = times || 1;\n while (times--) {\n this.selection.moveCursorLeft();\n }\n }\n this.clearSelection();\n };\n this.navigateRight = function(times) {\n if (!this.selection.isEmpty()) {\n var selectionEnd = this.getSelectionRange().end;\n this.moveCursorToPosition(selectionEnd);\n }\n else {\n times = times || 1;\n while (times--) {\n this.selection.moveCursorRight();\n }\n }\n this.clearSelection();\n };\n this.navigateLineStart = function() {\n this.selection.moveCursorLineStart();\n this.clearSelection();\n };\n this.navigateLineEnd = function() {\n this.selection.moveCursorLineEnd();\n this.clearSelection();\n };\n this.navigateFileEnd = function() {\n this.selection.moveCursorFileEnd();\n this.clearSelection();\n };\n this.navigateFileStart = function() {\n this.selection.moveCursorFileStart();\n this.clearSelection();\n };\n this.navigateWordRight = function() {\n this.selection.moveCursorWordRight();\n this.clearSelection();\n };\n this.navigateWordLeft = function() {\n this.selection.moveCursorWordLeft();\n this.clearSelection();\n };\n this.replace = function(replacement, options) {\n if (options)\n this.$search.set(options);\n\n var range = this.$search.find(this.session);\n var replaced = 0;\n if (!range)\n return replaced;\n\n if (this.$tryReplace(range, replacement)) {\n replaced = 1;\n }\n if (range !== null) {\n this.selection.setSelectionRange(range);\n this.renderer.scrollSelectionIntoView(range.start, range.end);\n }\n\n return replaced;\n };\n this.replaceAll = function(replacement, options) {\n if (options) {\n this.$search.set(options);\n }\n\n var ranges = this.$search.findAll(this.session);\n var replaced = 0;\n if (!ranges.length)\n return replaced;\n\n this.$blockScrolling += 1;\n\n var selection = this.getSelectionRange();\n this.selection.moveTo(0, 0);\n\n for (var i = ranges.length - 1; i >= 0; --i) {\n if(this.$tryReplace(ranges[i], replacement)) {\n replaced++;\n }\n }\n\n this.selection.setSelectionRange(selection);\n this.$blockScrolling -= 1;\n\n return replaced;\n };\n\n this.$tryReplace = function(range, replacement) {\n var input = this.session.getTextRange(range);\n replacement = this.$search.replace(input, replacement);\n if (replacement !== null) {\n range.end = this.session.replace(range, replacement);\n return range;\n } else {\n return null;\n }\n };\n this.getLastSearchOptions = function() {\n return this.$search.getOptions();\n };\n this.find = function(needle, options, animate) {\n if (!options)\n options = {};\n\n if (typeof needle == \"string\" || needle instanceof RegExp)\n options.needle = needle;\n else if (typeof needle == \"object\")\n oop.mixin(options, needle);\n\n var range = this.selection.getRange();\n if (options.needle == null) {\n needle = this.session.getTextRange(range)\n || this.$search.$options.needle;\n if (!needle) {\n range = this.session.getWordRange(range.start.row, range.start.column);\n needle = this.session.getTextRange(range);\n }\n this.$search.set({needle: needle});\n }\n\n this.$search.set(options);\n if (!options.start)\n this.$search.set({start: range});\n\n var newRange = this.$search.find(this.session);\n if (options.preventScroll)\n return newRange;\n if (newRange) {\n this.revealRange(newRange, animate);\n return newRange;\n }\n if (options.backwards)\n range.start = range.end;\n else\n range.end = range.start;\n this.selection.setRange(range);\n };\n this.findNext = function(options, animate) {\n this.find({skipCurrent: true, backwards: false}, options, animate);\n };\n this.findPrevious = function(options, animate) {\n this.find(options, {skipCurrent: true, backwards: true}, animate);\n };\n\n this.revealRange = function(range, animate) {\n this.$blockScrolling += 1;\n this.session.unfold(range);\n this.selection.setSelectionRange(range);\n this.$blockScrolling -= 1;\n\n var scrollTop = this.renderer.scrollTop;\n this.renderer.scrollSelectionIntoView(range.start, range.end, 0.5);\n if (animate !== false)\n this.renderer.animateScrolling(scrollTop);\n };\n this.undo = function() {\n this.$blockScrolling++;\n this.session.getUndoManager().undo();\n this.$blockScrolling--;\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n this.redo = function() {\n this.$blockScrolling++;\n this.session.getUndoManager().redo();\n this.$blockScrolling--;\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n this.destroy = function() {\n this.renderer.destroy();\n this._signal(\"destroy\", this);\n if (this.session) {\n this.session.destroy();\n }\n };\n this.setAutoScrollEditorIntoView = function(enable) {\n if (!enable)\n return;\n var rect;\n var self = this;\n var shouldScroll = false;\n if (!this.$scrollAnchor)\n this.$scrollAnchor = document.createElement(\"div\");\n var scrollAnchor = this.$scrollAnchor;\n scrollAnchor.style.cssText = \"position:absolute\";\n this.container.insertBefore(scrollAnchor, this.container.firstChild);\n var onChangeSelection = this.on(\"changeSelection\", function() {\n shouldScroll = true;\n });\n var onBeforeRender = this.renderer.on(\"beforeRender\", function() {\n if (shouldScroll)\n rect = self.renderer.container.getBoundingClientRect();\n });\n var onAfterRender = this.renderer.on(\"afterRender\", function() {\n if (shouldScroll && rect && (self.isFocused()\n || self.searchBox && self.searchBox.isFocused())\n ) {\n var renderer = self.renderer;\n var pos = renderer.$cursorLayer.$pixelPos;\n var config = renderer.layerConfig;\n var top = pos.top - config.offset;\n if (pos.top >= 0 && top + rect.top < 0) {\n shouldScroll = true;\n } else if (pos.top < config.height &&\n pos.top + rect.top + config.lineHeight > window.innerHeight) {\n shouldScroll = false;\n } else {\n shouldScroll = null;\n }\n if (shouldScroll != null) {\n scrollAnchor.style.top = top + \"px\";\n scrollAnchor.style.left = pos.left + \"px\";\n scrollAnchor.style.height = config.lineHeight + \"px\";\n scrollAnchor.scrollIntoView(shouldScroll);\n }\n shouldScroll = rect = null;\n }\n });\n this.setAutoScrollEditorIntoView = function(enable) {\n if (enable)\n return;\n delete this.setAutoScrollEditorIntoView;\n this.off(\"changeSelection\", onChangeSelection);\n this.renderer.off(\"afterRender\", onAfterRender);\n this.renderer.off(\"beforeRender\", onBeforeRender);\n };\n };\n\n\n this.$resetCursorStyle = function() {\n var style = this.$cursorStyle || \"ace\";\n var cursorLayer = this.renderer.$cursorLayer;\n if (!cursorLayer)\n return;\n cursorLayer.setSmoothBlinking(/smooth/.test(style));\n cursorLayer.isBlinking = !this.$readOnly && style != \"wide\";\n dom.setCssClass(cursorLayer.element, \"ace_slim-cursors\", /slim/.test(style));\n };\n\n}).call(Editor.prototype);\n\n\n\nconfig.defineOptions(Editor.prototype, \"editor\", {\n selectionStyle: {\n set: function(style) {\n this.onSelectionChange();\n this._signal(\"changeSelectionStyle\", {data: style});\n },\n initialValue: \"line\"\n },\n highlightActiveLine: {\n set: function() {this.$updateHighlightActiveLine();},\n initialValue: true\n },\n highlightSelectedWord: {\n set: function(shouldHighlight) {this.$onSelectionChange();},\n initialValue: true\n },\n readOnly: {\n set: function(readOnly) {\n this.$resetCursorStyle(); \n },\n initialValue: false\n },\n cursorStyle: {\n set: function(val) { this.$resetCursorStyle(); },\n values: [\"ace\", \"slim\", \"smooth\", \"wide\"],\n initialValue: \"ace\"\n },\n mergeUndoDeltas: {\n values: [false, true, \"always\"],\n initialValue: true\n },\n behavioursEnabled: {initialValue: true},\n wrapBehavioursEnabled: {initialValue: true},\n autoScrollEditorIntoView: {\n set: function(val) {this.setAutoScrollEditorIntoView(val);}\n },\n keyboardHandler: {\n set: function(val) { this.setKeyboardHandler(val); },\n get: function() { return this.keybindingId; },\n handlesSet: true\n },\n\n hScrollBarAlwaysVisible: \"renderer\",\n vScrollBarAlwaysVisible: \"renderer\",\n highlightGutterLine: \"renderer\",\n animatedScroll: \"renderer\",\n showInvisibles: \"renderer\",\n showPrintMargin: \"renderer\",\n printMarginColumn: \"renderer\",\n printMargin: \"renderer\",\n fadeFoldWidgets: \"renderer\",\n showFoldWidgets: \"renderer\",\n showLineNumbers: \"renderer\",\n showGutter: \"renderer\",\n displayIndentGuides: \"renderer\",\n fontSize: \"renderer\",\n fontFamily: \"renderer\",\n maxLines: \"renderer\",\n minLines: \"renderer\",\n scrollPastEnd: \"renderer\",\n fixedWidthGutter: \"renderer\",\n theme: \"renderer\",\n\n scrollSpeed: \"$mouseHandler\",\n dragDelay: \"$mouseHandler\",\n dragEnabled: \"$mouseHandler\",\n focusTimout: \"$mouseHandler\",\n tooltipFollowsMouse: \"$mouseHandler\",\n\n firstLineNumber: \"session\",\n overwrite: \"session\",\n newLineMode: \"session\",\n useWorker: \"session\",\n useSoftTabs: \"session\",\n tabSize: \"session\",\n wrap: \"session\",\n indentedSoftWrap: \"session\",\n foldStyle: \"session\",\n mode: \"session\"\n});\n\nexports.Editor = Editor;\n});\n\nace.define(\"ace/undomanager\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nvar UndoManager = function() {\n this.reset();\n};\n\n(function() {\n this.execute = function(options) {\n var deltaSets = options.args[0];\n this.$doc = options.args[1];\n if (options.merge && this.hasUndo()){\n this.dirtyCounter--;\n deltaSets = this.$undoStack.pop().concat(deltaSets);\n }\n this.$undoStack.push(deltaSets);\n this.$redoStack = [];\n if (this.dirtyCounter < 0) {\n this.dirtyCounter = NaN;\n }\n this.dirtyCounter++;\n };\n this.undo = function(dontSelect) {\n var deltaSets = this.$undoStack.pop();\n var undoSelectionRange = null;\n if (deltaSets) {\n undoSelectionRange = this.$doc.undoChanges(deltaSets, dontSelect);\n this.$redoStack.push(deltaSets);\n this.dirtyCounter--;\n }\n\n return undoSelectionRange;\n };\n this.redo = function(dontSelect) {\n var deltaSets = this.$redoStack.pop();\n var redoSelectionRange = null;\n if (deltaSets) {\n redoSelectionRange =\n this.$doc.redoChanges(this.$deserializeDeltas(deltaSets), dontSelect);\n this.$undoStack.push(deltaSets);\n this.dirtyCounter++;\n }\n return redoSelectionRange;\n };\n this.reset = function() {\n this.$undoStack = [];\n this.$redoStack = [];\n this.dirtyCounter = 0;\n };\n this.hasUndo = function() {\n return this.$undoStack.length > 0;\n };\n this.hasRedo = function() {\n return this.$redoStack.length > 0;\n };\n this.markClean = function() {\n this.dirtyCounter = 0;\n };\n this.isClean = function() {\n return this.dirtyCounter === 0;\n };\n this.$serializeDeltas = function(deltaSets) {\n return cloneDeltaSetsObj(deltaSets, $serializeDelta);\n };\n this.$deserializeDeltas = function(deltaSets) {\n return cloneDeltaSetsObj(deltaSets, $deserializeDelta);\n };\n \n function $serializeDelta(delta){\n return {\n action: delta.action,\n start: delta.start,\n end: delta.end,\n lines: delta.lines.length == 1 ? null : delta.lines,\n text: delta.lines.length == 1 ? delta.lines[0] : null\n };\n }\n \n function $deserializeDelta(delta) {\n return {\n action: delta.action,\n start: delta.start,\n end: delta.end,\n lines: delta.lines || [delta.text]\n };\n }\n \n function cloneDeltaSetsObj(deltaSets_old, fnGetModifiedDelta) {\n var deltaSets_new = new Array(deltaSets_old.length);\n for (var i = 0; i < deltaSets_old.length; i++) {\n var deltaSet_old = deltaSets_old[i];\n var deltaSet_new = { group: deltaSet_old.group, deltas: new Array(deltaSet_old.length)};\n \n for (var j = 0; j < deltaSet_old.deltas.length; j++) {\n var delta_old = deltaSet_old.deltas[j];\n deltaSet_new.deltas[j] = fnGetModifiedDelta(delta_old);\n }\n \n deltaSets_new[i] = deltaSet_new;\n }\n return deltaSets_new;\n }\n \n}).call(UndoManager.prototype);\n\nexports.UndoManager = UndoManager;\n});\n\nace.define(\"ace/layer/gutter\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar oop = acequire(\"../lib/oop\");\nvar lang = acequire(\"../lib/lang\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar Gutter = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_gutter-layer\";\n parentEl.appendChild(this.element);\n this.setShowFoldWidgets(this.$showFoldWidgets);\n \n this.gutterWidth = 0;\n\n this.$annotations = [];\n this.$updateAnnotations = this.$updateAnnotations.bind(this);\n\n this.$cells = [];\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n\n this.setSession = function(session) {\n if (this.session)\n this.session.removeEventListener(\"change\", this.$updateAnnotations);\n this.session = session;\n if (session)\n session.on(\"change\", this.$updateAnnotations);\n };\n\n this.addGutterDecoration = function(row, className){\n if (window.console)\n console.warn && console.warn(\"deprecated use session.addGutterDecoration\");\n this.session.addGutterDecoration(row, className);\n };\n\n this.removeGutterDecoration = function(row, className){\n if (window.console)\n console.warn && console.warn(\"deprecated use session.removeGutterDecoration\");\n this.session.removeGutterDecoration(row, className);\n };\n\n this.setAnnotations = function(annotations) {\n this.$annotations = [];\n for (var i = 0; i < annotations.length; i++) {\n var annotation = annotations[i];\n var row = annotation.row;\n var rowInfo = this.$annotations[row];\n if (!rowInfo)\n rowInfo = this.$annotations[row] = {text: []};\n \n var annoText = annotation.text;\n annoText = annoText ? lang.escapeHTML(annoText) : annotation.html || \"\";\n\n if (rowInfo.text.indexOf(annoText) === -1)\n rowInfo.text.push(annoText);\n\n var type = annotation.type;\n if (type == \"error\")\n rowInfo.className = \" ace_error\";\n else if (type == \"warning\" && rowInfo.className != \" ace_error\")\n rowInfo.className = \" ace_warning\";\n else if (type == \"info\" && (!rowInfo.className))\n rowInfo.className = \" ace_info\";\n }\n };\n\n this.$updateAnnotations = function (delta) {\n if (!this.$annotations.length)\n return;\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n } else if (delta.action == 'remove') {\n this.$annotations.splice(firstRow, len + 1, null);\n } else {\n var args = new Array(len + 1);\n args.unshift(firstRow, 1);\n this.$annotations.splice.apply(this.$annotations, args);\n }\n };\n\n this.update = function(config) {\n var session = this.session;\n var firstRow = config.firstRow;\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n session.getLength() - 1);\n var fold = session.getNextFoldLine(firstRow);\n var foldStart = fold ? fold.start.row : Infinity;\n var foldWidgets = this.$showFoldWidgets && session.foldWidgets;\n var breakpoints = session.$breakpoints;\n var decorations = session.$decorations;\n var firstLineNumber = session.$firstLineNumber;\n var lastLineNumber = 0;\n \n var gutterRenderer = session.gutterRenderer || this.$renderer;\n\n var cell = null;\n var index = -1;\n var row = firstRow;\n while (true) {\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = session.getNextFoldLine(row, fold);\n foldStart = fold ? fold.start.row : Infinity;\n }\n if (row > lastRow) {\n while (this.$cells.length > index + 1) {\n cell = this.$cells.pop();\n this.element.removeChild(cell.element);\n }\n break;\n }\n\n cell = this.$cells[++index];\n if (!cell) {\n cell = {element: null, textNode: null, foldWidget: null};\n cell.element = dom.createElement(\"div\");\n cell.textNode = document.createTextNode('');\n cell.element.appendChild(cell.textNode);\n this.element.appendChild(cell.element);\n this.$cells[index] = cell;\n }\n\n var className = \"ace_gutter-cell \";\n if (breakpoints[row])\n className += breakpoints[row];\n if (decorations[row])\n className += decorations[row];\n if (this.$annotations[row])\n className += this.$annotations[row].className;\n if (cell.element.className != className)\n cell.element.className = className;\n\n var height = session.getRowLength(row) * config.lineHeight + \"px\";\n if (height != cell.element.style.height)\n cell.element.style.height = height;\n\n if (foldWidgets) {\n var c = foldWidgets[row];\n if (c == null)\n c = foldWidgets[row] = session.getFoldWidget(row);\n }\n\n if (c) {\n if (!cell.foldWidget) {\n cell.foldWidget = dom.createElement(\"span\");\n cell.element.appendChild(cell.foldWidget);\n }\n var className = \"ace_fold-widget ace_\" + c;\n if (c == \"start\" && row == foldStart && row < fold.end.row)\n className += \" ace_closed\";\n else\n className += \" ace_open\";\n if (cell.foldWidget.className != className)\n cell.foldWidget.className = className;\n\n var height = config.lineHeight + \"px\";\n if (cell.foldWidget.style.height != height)\n cell.foldWidget.style.height = height;\n } else {\n if (cell.foldWidget) {\n cell.element.removeChild(cell.foldWidget);\n cell.foldWidget = null;\n }\n }\n \n var text = lastLineNumber = gutterRenderer\n ? gutterRenderer.getText(session, row)\n : row + firstLineNumber;\n if (text !== cell.textNode.data)\n cell.textNode.data = text;\n\n row++;\n }\n\n this.element.style.height = config.minHeight + \"px\";\n\n if (this.$fixedWidth || session.$useWrapMode)\n lastLineNumber = session.getLength() + firstLineNumber;\n\n var gutterWidth = gutterRenderer \n ? gutterRenderer.getWidth(session, lastLineNumber, config)\n : lastLineNumber.toString().length * config.characterWidth;\n \n var padding = this.$padding || this.$computePadding();\n gutterWidth += padding.left + padding.right;\n if (gutterWidth !== this.gutterWidth && !isNaN(gutterWidth)) {\n this.gutterWidth = gutterWidth;\n this.element.style.width = Math.ceil(this.gutterWidth) + \"px\";\n this._emit(\"changeGutterWidth\", gutterWidth);\n }\n };\n\n this.$fixedWidth = false;\n \n this.$showLineNumbers = true;\n this.$renderer = \"\";\n this.setShowLineNumbers = function(show) {\n this.$renderer = !show && {\n getWidth: function() {return \"\";},\n getText: function() {return \"\";}\n };\n };\n \n this.getShowLineNumbers = function() {\n return this.$showLineNumbers;\n };\n \n this.$showFoldWidgets = true;\n this.setShowFoldWidgets = function(show) {\n if (show)\n dom.addCssClass(this.element, \"ace_folding-enabled\");\n else\n dom.removeCssClass(this.element, \"ace_folding-enabled\");\n\n this.$showFoldWidgets = show;\n this.$padding = null;\n };\n \n this.getShowFoldWidgets = function() {\n return this.$showFoldWidgets;\n };\n\n this.$computePadding = function() {\n if (!this.element.firstChild)\n return {left: 0, right: 0};\n var style = dom.computedStyle(this.element.firstChild);\n this.$padding = {};\n this.$padding.left = parseInt(style.paddingLeft) + 1 || 0;\n this.$padding.right = parseInt(style.paddingRight) || 0;\n return this.$padding;\n };\n\n this.getRegion = function(point) {\n var padding = this.$padding || this.$computePadding();\n var rect = this.element.getBoundingClientRect();\n if (point.x < padding.left + rect.left)\n return \"markers\";\n if (this.$showFoldWidgets && point.x > rect.right - padding.right)\n return \"foldWidgets\";\n };\n\n}).call(Gutter.prototype);\n\nexports.Gutter = Gutter;\n\n});\n\nace.define(\"ace/layer/marker\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nvar dom = acequire(\"../lib/dom\");\n\nvar Marker = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_marker-layer\";\n parentEl.appendChild(this.element);\n};\n\n(function() {\n\n this.$padding = 0;\n\n this.setPadding = function(padding) {\n this.$padding = padding;\n };\n this.setSession = function(session) {\n this.session = session;\n };\n \n this.setMarkers = function(markers) {\n this.markers = markers;\n };\n\n this.update = function(config) {\n if (!config) return;\n\n this.config = config;\n\n\n var html = [];\n for (var key in this.markers) {\n var marker = this.markers[key];\n\n if (!marker.range) {\n marker.update(html, this, this.session, config);\n continue;\n }\n\n var range = marker.range.clipRows(config.firstRow, config.lastRow);\n if (range.isEmpty()) continue;\n\n range = range.toScreenRange(this.session);\n if (marker.renderer) {\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + (this.session.$bidiHandler.isBidiRow(range.start.row)\n ? this.session.$bidiHandler.getPosLeft(range.start.column)\n : range.start.column * config.characterWidth);\n marker.renderer(html, range, left, top, config);\n } else if (marker.type == \"fullLine\") {\n this.drawFullLineMarker(html, range, marker.clazz, config);\n } else if (marker.type == \"screenLine\") {\n this.drawScreenLineMarker(html, range, marker.clazz, config);\n } else if (range.isMultiLine()) {\n if (marker.type == \"text\")\n this.drawTextMarker(html, range, marker.clazz, config);\n else\n this.drawMultiLineMarker(html, range, marker.clazz, config);\n } else {\n if (this.session.$bidiHandler.isBidiRow(range.start.row)) {\n this.drawBidiSingleLineMarker(html, range, marker.clazz + \" ace_start\" + \" ace_br15\", config);\n } else {\n this.drawSingleLineMarker(html, range, marker.clazz + \" ace_start\" + \" ace_br15\", config);\n }\n }\n }\n this.element.innerHTML = html.join(\"\");\n };\n\n this.$getTop = function(row, layerConfig) {\n return (row - layerConfig.firstRowScreen) * layerConfig.lineHeight;\n };\n\n function getBorderClass(tl, tr, br, bl) {\n return (tl ? 1 : 0) | (tr ? 2 : 0) | (br ? 4 : 0) | (bl ? 8 : 0);\n }\n this.drawTextMarker = function(stringBuilder, range, clazz, layerConfig, extraStyle) {\n var session = this.session;\n var start = range.start.row;\n var end = range.end.row;\n var row = start;\n var prev = 0; \n var curr = 0;\n var next = session.getScreenLastRowColumn(row);\n var clazzModified = null;\n var lineRange = new Range(row, range.start.column, row, curr);\n for (; row <= end; row++) {\n lineRange.start.row = lineRange.end.row = row;\n lineRange.start.column = row == start ? range.start.column : session.getRowWrapIndent(row);\n lineRange.end.column = next;\n prev = curr;\n curr = next;\n next = row + 1 < end ? session.getScreenLastRowColumn(row + 1) : row == end ? 0 : range.end.column;\n clazzModified = clazz + (row == start ? \" ace_start\" : \"\") + \" ace_br\"\n + getBorderClass(row == start || row == start + 1 && range.start.column, prev < curr, curr > next, row == end);\n\n if (this.session.$bidiHandler.isBidiRow(row)) {\n this.drawBidiSingleLineMarker(stringBuilder, lineRange, clazzModified,\n layerConfig, row == end ? 0 : 1, extraStyle);\n } else {\n this.drawSingleLineMarker(stringBuilder, lineRange, clazzModified,\n layerConfig, row == end ? 0 : 1, extraStyle);\n }\n }\n };\n this.drawMultiLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n var padding = this.$padding;\n var height, top, left;\n extraStyle = extraStyle || \"\";\n if (this.session.$bidiHandler.isBidiRow(range.start.row)) {\n var range1 = range.clone();\n range1.end.row = range1.start.row;\n range1.end.column = this.session.getLine(range1.start.row).length;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br1 ace_start\", config, null, extraStyle);\n } else {\n height = config.lineHeight;\n top = this.$getTop(range.start.row, config);\n left = padding + range.start.column * config.characterWidth;\n stringBuilder.push(\n \"<div class='\", clazz, \" ace_br1 ace_start' style='\",\n \"height:\", height, \"px;\",\n \"right:0;\",\n \"top:\", top, \"px;\",\n \"left:\", left, \"px;\", extraStyle, \"'></div>\"\n );\n }\n if (this.session.$bidiHandler.isBidiRow(range.end.row)) {\n var range1 = range.clone();\n range1.start.row = range1.end.row;\n range1.start.column = 0;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br12\", config, null, extraStyle);\n } else {\n var width = range.end.column * config.characterWidth;\n height = config.lineHeight;\n top = this.$getTop(range.end.row, config);\n stringBuilder.push(\n \"<div class='\", clazz, \" ace_br12' style='\",\n \"height:\", height, \"px;\",\n \"width:\", width, \"px;\",\n \"top:\", top, \"px;\",\n \"left:\", padding, \"px;\", extraStyle, \"'></div>\"\n );\n }\n height = (range.end.row - range.start.row - 1) * config.lineHeight;\n if (height <= 0)\n return;\n top = this.$getTop(range.start.row + 1, config);\n \n var radiusClass = (range.start.column ? 1 : 0) | (range.end.column ? 0 : 8);\n\n stringBuilder.push(\n \"<div class='\", clazz, (radiusClass ? \" ace_br\" + radiusClass : \"\"), \"' style='\",\n \"height:\", height, \"px;\",\n \"right:0;\",\n \"top:\", top, \"px;\",\n \"left:\", padding, \"px;\", extraStyle, \"'></div>\"\n );\n };\n this.drawSingleLineMarker = function(stringBuilder, range, clazz, config, extraLength, extraStyle) {\n var height = config.lineHeight;\n var width = (range.end.column + (extraLength || 0) - range.start.column) * config.characterWidth;\n\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n\n stringBuilder.push(\n \"<div class='\", clazz, \"' style='\",\n \"height:\", height, \"px;\",\n \"width:\", width, \"px;\",\n \"top:\", top, \"px;\",\n \"left:\", left, \"px;\", extraStyle || \"\", \"'></div>\"\n );\n };\n this.drawBidiSingleLineMarker = function(stringBuilder, range, clazz, config, extraLength, extraStyle) {\n var height = config.lineHeight, top = this.$getTop(range.start.row, config), padding = this.$padding;\n var selections = this.session.$bidiHandler.getSelections(range.start.column, range.end.column);\n\n selections.forEach(function(selection) {\n stringBuilder.push(\n \"<div class='\", clazz, \"' style='\",\n \"height:\", height, \"px;\",\n \"width:\", selection.width + (extraLength || 0), \"px;\",\n \"top:\", top, \"px;\",\n \"left:\", padding + selection.left, \"px;\", extraStyle || \"\", \"'></div>\"\n );\n });\n };\n\n this.drawFullLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n if (range.start.row != range.end.row)\n height += this.$getTop(range.end.row, config) - top;\n\n stringBuilder.push(\n \"<div class='\", clazz, \"' style='\",\n \"height:\", height, \"px;\",\n \"top:\", top, \"px;\",\n \"left:0;right:0;\", extraStyle || \"\", \"'></div>\"\n );\n };\n \n this.drawScreenLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n\n stringBuilder.push(\n \"<div class='\", clazz, \"' style='\",\n \"height:\", height, \"px;\",\n \"top:\", top, \"px;\",\n \"left:0;right:0;\", extraStyle || \"\", \"'></div>\"\n );\n };\n\n}).call(Marker.prototype);\n\nexports.Marker = Marker;\n\n});\n\nace.define(\"ace/layer/text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar dom = acequire(\"../lib/dom\");\nvar lang = acequire(\"../lib/lang\");\nvar useragent = acequire(\"../lib/useragent\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar Text = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_text-layer\";\n parentEl.appendChild(this.element);\n this.$updateEolChar = this.$updateEolChar.bind(this);\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n\n this.EOF_CHAR = \"\\xB6\";\n this.EOL_CHAR_LF = \"\\xAC\";\n this.EOL_CHAR_CRLF = \"\\xa4\";\n this.EOL_CHAR = this.EOL_CHAR_LF;\n this.TAB_CHAR = \"\\u2014\"; //\"\\u21E5\";\n this.SPACE_CHAR = \"\\xB7\";\n this.$padding = 0;\n\n this.$updateEolChar = function() {\n var EOL_CHAR = this.session.doc.getNewLineCharacter() == \"\\n\"\n ? this.EOL_CHAR_LF\n : this.EOL_CHAR_CRLF;\n if (this.EOL_CHAR != EOL_CHAR) {\n this.EOL_CHAR = EOL_CHAR;\n return true;\n }\n };\n\n this.setPadding = function(padding) {\n this.$padding = padding;\n this.element.style.padding = \"0 \" + padding + \"px\";\n };\n\n this.getLineHeight = function() {\n return this.$fontMetrics.$characterSize.height || 0;\n };\n\n this.getCharacterWidth = function() {\n return this.$fontMetrics.$characterSize.width || 0;\n };\n \n this.$setFontMetrics = function(measure) {\n this.$fontMetrics = measure;\n this.$fontMetrics.on(\"changeCharacterSize\", function(e) {\n this._signal(\"changeCharacterSize\", e);\n }.bind(this));\n this.$pollSizeChanges();\n };\n\n this.checkForSizeChanges = function() {\n this.$fontMetrics.checkForSizeChanges();\n };\n this.$pollSizeChanges = function() {\n return this.$pollSizeChangesTimer = this.$fontMetrics.$pollSizeChanges();\n };\n this.setSession = function(session) {\n this.session = session;\n if (session)\n this.$computeTabString();\n };\n\n this.showInvisibles = false;\n this.setShowInvisibles = function(showInvisibles) {\n if (this.showInvisibles == showInvisibles)\n return false;\n\n this.showInvisibles = showInvisibles;\n this.$computeTabString();\n return true;\n };\n\n this.displayIndentGuides = true;\n this.setDisplayIndentGuides = function(display) {\n if (this.displayIndentGuides == display)\n return false;\n\n this.displayIndentGuides = display;\n this.$computeTabString();\n return true;\n };\n\n this.$tabStrings = [];\n this.onChangeTabSize =\n this.$computeTabString = function() {\n var tabSize = this.session.getTabSize();\n this.tabSize = tabSize;\n var tabStr = this.$tabStrings = [0];\n for (var i = 1; i < tabSize + 1; i++) {\n if (this.showInvisibles) {\n tabStr.push(\"<span class='ace_invisible ace_invisible_tab'>\"\n + lang.stringRepeat(this.TAB_CHAR, i)\n + \"</span>\");\n } else {\n tabStr.push(lang.stringRepeat(\" \", i));\n }\n }\n if (this.displayIndentGuides) {\n this.$indentGuideRe = /\\s\\S| \\t|\\t |\\s$/;\n var className = \"ace_indent-guide\";\n var spaceClass = \"\";\n var tabClass = \"\";\n if (this.showInvisibles) {\n className += \" ace_invisible\";\n spaceClass = \" ace_invisible_space\";\n tabClass = \" ace_invisible_tab\";\n var spaceContent = lang.stringRepeat(this.SPACE_CHAR, this.tabSize);\n var tabContent = lang.stringRepeat(this.TAB_CHAR, this.tabSize);\n } else{\n var spaceContent = lang.stringRepeat(\" \", this.tabSize);\n var tabContent = spaceContent;\n }\n\n this.$tabStrings[\" \"] = \"<span class='\" + className + spaceClass + \"'>\" + spaceContent + \"</span>\";\n this.$tabStrings[\"\\t\"] = \"<span class='\" + className + tabClass + \"'>\" + tabContent + \"</span>\";\n }\n };\n\n this.updateLines = function(config, firstRow, lastRow) {\n if (this.config.lastRow != config.lastRow ||\n this.config.firstRow != config.firstRow) {\n this.scrollLines(config);\n }\n this.config = config;\n\n var first = Math.max(firstRow, config.firstRow);\n var last = Math.min(lastRow, config.lastRow);\n\n var lineElements = this.element.childNodes;\n var lineElementsIdx = 0;\n\n for (var row = config.firstRow; row < first; row++) {\n var foldLine = this.session.getFoldLine(row);\n if (foldLine) {\n if (foldLine.containsRow(first)) {\n first = foldLine.start.row;\n break;\n } else {\n row = foldLine.end.row;\n }\n }\n lineElementsIdx ++;\n }\n\n var row = first;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row+1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row :Infinity;\n }\n if (row > last)\n break;\n\n var lineElement = lineElements[lineElementsIdx++];\n if (lineElement) {\n var html = [];\n this.$renderLine(\n html, row, !this.$useLineGroups(), row == foldStart ? foldLine : false\n );\n lineElement.style.height = config.lineHeight * this.session.getRowLength(row) + \"px\";\n lineElement.innerHTML = html.join(\"\");\n }\n row++;\n }\n };\n\n this.scrollLines = function(config) {\n var oldConfig = this.config;\n this.config = config;\n\n if (!oldConfig || oldConfig.lastRow < config.firstRow)\n return this.update(config);\n\n if (config.lastRow < oldConfig.firstRow)\n return this.update(config);\n\n var el = this.element;\n if (oldConfig.firstRow < config.firstRow)\n for (var row=this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row>0; row--)\n el.removeChild(el.firstChild);\n\n if (oldConfig.lastRow > config.lastRow)\n for (var row=this.session.getFoldedRowCount(config.lastRow + 1, oldConfig.lastRow); row>0; row--)\n el.removeChild(el.lastChild);\n\n if (config.firstRow < oldConfig.firstRow) {\n var fragment = this.$renderLinesFragment(config, config.firstRow, oldConfig.firstRow - 1);\n if (el.firstChild)\n el.insertBefore(fragment, el.firstChild);\n else\n el.appendChild(fragment);\n }\n\n if (config.lastRow > oldConfig.lastRow) {\n var fragment = this.$renderLinesFragment(config, oldConfig.lastRow + 1, config.lastRow);\n el.appendChild(fragment);\n }\n };\n\n this.$renderLinesFragment = function(config, firstRow, lastRow) {\n var fragment = this.element.ownerDocument.createDocumentFragment();\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row+1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n\n var container = dom.createElement(\"div\");\n\n var html = [];\n this.$renderLine(html, row, false, row == foldStart ? foldLine : false);\n container.innerHTML = html.join(\"\");\n if (this.$useLineGroups()) {\n container.className = 'ace_line_group';\n fragment.appendChild(container);\n container.style.height = config.lineHeight * this.session.getRowLength(row) + \"px\";\n\n } else {\n while(container.firstChild)\n fragment.appendChild(container.firstChild);\n }\n\n row++;\n }\n return fragment;\n };\n\n this.update = function(config) {\n this.config = config;\n\n var html = [];\n var firstRow = config.firstRow, lastRow = config.lastRow;\n\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row+1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row :Infinity;\n }\n if (row > lastRow)\n break;\n\n if (this.$useLineGroups())\n html.push(\"<div class='ace_line_group' style='height:\", config.lineHeight*this.session.getRowLength(row), \"px'>\");\n\n this.$renderLine(html, row, false, row == foldStart ? foldLine : false);\n\n if (this.$useLineGroups())\n html.push(\"</div>\"); // end the line group\n\n row++;\n }\n this.element.innerHTML = html.join(\"\");\n };\n\n this.$textToken = {\n \"text\": true,\n \"rparen\": true,\n \"lparen\": true\n };\n\n this.$renderToken = function(stringBuilder, screenColumn, token, value) {\n var self = this;\n var replaceReg = /\\t|&|<|>|( +)|([\\x00-\\x1f\\x80-\\xa0\\xad\\u1680\\u180E\\u2000-\\u200f\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF\\uFFF9-\\uFFFC])|[\\u1100-\\u115F\\u11A3-\\u11A7\\u11FA-\\u11FF\\u2329-\\u232A\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3000-\\u303E\\u3041-\\u3096\\u3099-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u3190-\\u31BA\\u31C0-\\u31E3\\u31F0-\\u321E\\u3220-\\u3247\\u3250-\\u32FE\\u3300-\\u4DBF\\u4E00-\\uA48C\\uA490-\\uA4C6\\uA960-\\uA97C\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFAFF\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFF01-\\uFF60\\uFFE0-\\uFFE6]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n var replaceFunc = function(c, a, b, tabIdx, idx4) {\n if (a) {\n return self.showInvisibles\n ? \"<span class='ace_invisible ace_invisible_space'>\" + lang.stringRepeat(self.SPACE_CHAR, c.length) + \"</span>\"\n : c;\n } else if (c == \"&\") {\n return \"&\";\n } else if (c == \"<\") {\n return \"<\";\n } else if (c == \">\") {\n return \">\";\n } else if (c == \"\\t\") {\n var tabSize = self.session.getScreenTabSize(screenColumn + tabIdx);\n screenColumn += tabSize - 1;\n return self.$tabStrings[tabSize];\n } else if (c == \"\\u3000\") {\n var classToUse = self.showInvisibles ? \"ace_cjk ace_invisible ace_invisible_space\" : \"ace_cjk\";\n var space = self.showInvisibles ? self.SPACE_CHAR : \"\";\n screenColumn += 1;\n return \"<span class='\" + classToUse + \"' style='width:\" +\n (self.config.characterWidth * 2) +\n \"px'>\" + space + \"</span>\";\n } else if (b) {\n return \"<span class='ace_invisible ace_invisible_space ace_invalid'>\" + self.SPACE_CHAR + \"</span>\";\n } else {\n screenColumn += 1;\n return \"<span class='ace_cjk' style='width:\" +\n (self.config.characterWidth * 2) +\n \"px'>\" + c + \"</span>\";\n }\n };\n\n var output = value.replace(replaceReg, replaceFunc);\n\n if (!this.$textToken[token.type]) {\n var classes = \"ace_\" + token.type.replace(/\\./g, \" ace_\");\n var style = \"\";\n if (token.type == \"fold\")\n style = \" style='width:\" + (token.value.length * this.config.characterWidth) + \"px;' \";\n stringBuilder.push(\"<span class='\", classes, \"'\", style, \">\", output, \"</span>\");\n }\n else {\n stringBuilder.push(output);\n }\n return screenColumn + value.length;\n };\n\n this.renderIndentGuide = function(stringBuilder, value, max) {\n var cols = value.search(this.$indentGuideRe);\n if (cols <= 0 || cols >= max)\n return value;\n if (value[0] == \" \") {\n cols -= cols % this.tabSize;\n stringBuilder.push(lang.stringRepeat(this.$tabStrings[\" \"], cols/this.tabSize));\n return value.substr(cols);\n } else if (value[0] == \"\\t\") {\n stringBuilder.push(lang.stringRepeat(this.$tabStrings[\"\\t\"], cols));\n return value.substr(cols);\n }\n return value;\n };\n\n this.$renderWrappedLine = function(stringBuilder, tokens, splits, onlyContents) {\n var chars = 0;\n var split = 0;\n var splitChars = splits[0];\n var screenColumn = 0;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n chars = value.length;\n value = this.renderIndentGuide(stringBuilder, value, splitChars);\n if (!value)\n continue;\n chars -= value.length;\n }\n\n if (chars + value.length < splitChars) {\n screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n chars += value.length;\n } else {\n while (chars + value.length >= splitChars) {\n screenColumn = this.$renderToken(\n stringBuilder, screenColumn,\n token, value.substring(0, splitChars - chars)\n );\n value = value.substring(splitChars - chars);\n chars = splitChars;\n\n if (!onlyContents) {\n stringBuilder.push(\"</div>\",\n \"<div class='ace_line' style='height:\",\n this.config.lineHeight, \"px'>\"\n );\n }\n\n stringBuilder.push(lang.stringRepeat(\"\\xa0\", splits.indent));\n\n split ++;\n screenColumn = 0;\n splitChars = splits[split] || Number.MAX_VALUE;\n }\n if (value.length != 0) {\n chars += value.length;\n screenColumn = this.$renderToken(\n stringBuilder, screenColumn, token, value\n );\n }\n }\n }\n };\n\n this.$renderSimpleLine = function(stringBuilder, tokens) {\n var screenColumn = 0;\n var token = tokens[0];\n var value = token.value;\n if (this.displayIndentGuides)\n value = this.renderIndentGuide(stringBuilder, value);\n if (value)\n screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n for (var i = 1; i < tokens.length; i++) {\n token = tokens[i];\n value = token.value;\n screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n }\n };\n this.$renderLine = function(stringBuilder, row, onlyContents, foldLine) {\n if (!foldLine && foldLine != false)\n foldLine = this.session.getFoldLine(row);\n\n if (foldLine)\n var tokens = this.$getFoldLineTokens(row, foldLine);\n else\n var tokens = this.session.getTokens(row);\n\n\n if (!onlyContents) {\n stringBuilder.push(\n \"<div class='ace_line' style='height:\", \n this.config.lineHeight * (\n this.$useLineGroups() ? 1 :this.session.getRowLength(row)\n ), \"px'>\"\n );\n }\n\n if (tokens.length) {\n var splits = this.session.getRowSplitData(row);\n if (splits && splits.length)\n this.$renderWrappedLine(stringBuilder, tokens, splits, onlyContents);\n else\n this.$renderSimpleLine(stringBuilder, tokens);\n }\n\n if (this.showInvisibles) {\n if (foldLine)\n row = foldLine.end.row;\n\n stringBuilder.push(\n \"<span class='ace_invisible ace_invisible_eol'>\",\n row == this.session.getLength() - 1 ? this.EOF_CHAR : this.EOL_CHAR,\n \"</span>\"\n );\n }\n if (!onlyContents)\n stringBuilder.push(\"</div>\");\n };\n\n this.$getFoldLineTokens = function(row, foldLine) {\n var session = this.session;\n var renderTokens = [];\n\n function addTokens(tokens, from, to) {\n var idx = 0, col = 0;\n while ((col + tokens[idx].value.length) < from) {\n col += tokens[idx].value.length;\n idx++;\n\n if (idx == tokens.length)\n return;\n }\n if (col != from) {\n var value = tokens[idx].value.substring(from - col);\n if (value.length > (to - from))\n value = value.substring(0, to - from);\n\n renderTokens.push({\n type: tokens[idx].type,\n value: value\n });\n\n col = from + value.length;\n idx += 1;\n }\n\n while (col < to && idx < tokens.length) {\n var value = tokens[idx].value;\n if (value.length + col > to) {\n renderTokens.push({\n type: tokens[idx].type,\n value: value.substring(0, to - col)\n });\n } else\n renderTokens.push(tokens[idx]);\n col += value.length;\n idx += 1;\n }\n }\n\n var tokens = session.getTokens(row);\n foldLine.walk(function(placeholder, row, column, lastColumn, isNewRow) {\n if (placeholder != null) {\n renderTokens.push({\n type: \"fold\",\n value: placeholder\n });\n } else {\n if (isNewRow)\n tokens = session.getTokens(row);\n\n if (tokens.length)\n addTokens(tokens, lastColumn, column);\n }\n }, foldLine.end.row, this.session.getLine(foldLine.end.row).length);\n\n return renderTokens;\n };\n\n this.$useLineGroups = function() {\n return this.session.getUseWrapMode();\n };\n\n this.destroy = function() {\n clearInterval(this.$pollSizeChangesTimer);\n if (this.$measureNode)\n this.$measureNode.parentNode.removeChild(this.$measureNode);\n delete this.$measureNode;\n };\n\n}).call(Text.prototype);\n\nexports.Text = Text;\n\n});\n\nace.define(\"ace/layer/cursor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar isIE8;\n\nvar Cursor = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_cursor-layer\";\n parentEl.appendChild(this.element);\n \n if (isIE8 === undefined)\n isIE8 = !(\"opacity\" in this.element.style);\n\n this.isVisible = false;\n this.isBlinking = true;\n this.blinkInterval = 1000;\n this.smoothBlinking = false;\n\n this.cursors = [];\n this.cursor = this.addCursor();\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.$updateCursors = (isIE8\n ? this.$updateVisibility\n : this.$updateOpacity).bind(this);\n};\n\n(function() {\n \n this.$updateVisibility = function(val) {\n var cursors = this.cursors;\n for (var i = cursors.length; i--; )\n cursors[i].style.visibility = val ? \"\" : \"hidden\";\n };\n this.$updateOpacity = function(val) {\n var cursors = this.cursors;\n for (var i = cursors.length; i--; )\n cursors[i].style.opacity = val ? \"\" : \"0\";\n };\n \n\n this.$padding = 0;\n this.setPadding = function(padding) {\n this.$padding = padding;\n };\n\n this.setSession = function(session) {\n this.session = session;\n };\n\n this.setBlinking = function(blinking) {\n if (blinking != this.isBlinking){\n this.isBlinking = blinking;\n this.restartTimer();\n }\n };\n\n this.setBlinkInterval = function(blinkInterval) {\n if (blinkInterval != this.blinkInterval){\n this.blinkInterval = blinkInterval;\n this.restartTimer();\n }\n };\n\n this.setSmoothBlinking = function(smoothBlinking) {\n if (smoothBlinking != this.smoothBlinking && !isIE8) {\n this.smoothBlinking = smoothBlinking;\n dom.setCssClass(this.element, \"ace_smooth-blinking\", smoothBlinking);\n this.$updateCursors(true);\n this.$updateCursors = (this.$updateOpacity).bind(this);\n this.restartTimer();\n }\n };\n\n this.addCursor = function() {\n var el = dom.createElement(\"div\");\n el.className = \"ace_cursor\";\n this.element.appendChild(el);\n this.cursors.push(el);\n return el;\n };\n\n this.removeCursor = function() {\n if (this.cursors.length > 1) {\n var el = this.cursors.pop();\n el.parentNode.removeChild(el);\n return el;\n }\n };\n\n this.hideCursor = function() {\n this.isVisible = false;\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n\n this.showCursor = function() {\n this.isVisible = true;\n dom.removeCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n\n this.restartTimer = function() {\n var update = this.$updateCursors;\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n if (this.smoothBlinking) {\n dom.removeCssClass(this.element, \"ace_smooth-blinking\");\n }\n \n update(true);\n\n if (!this.isBlinking || !this.blinkInterval || !this.isVisible)\n return;\n\n if (this.smoothBlinking) {\n setTimeout(function(){\n dom.addCssClass(this.element, \"ace_smooth-blinking\");\n }.bind(this));\n }\n \n var blink = function(){\n this.timeoutId = setTimeout(function() {\n update(false);\n }, 0.6 * this.blinkInterval);\n }.bind(this);\n\n this.intervalId = setInterval(function() {\n update(true);\n blink();\n }, this.blinkInterval);\n\n blink();\n };\n\n this.getPixelPosition = function(position, onScreen) {\n if (!this.config || !this.session)\n return {left : 0, top : 0};\n\n if (!position)\n position = this.session.selection.getCursor();\n var pos = this.session.documentToScreenPosition(position);\n var cursorLeft = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, position.row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : pos.column * this.config.characterWidth);\n\n var cursorTop = (pos.row - (onScreen ? this.config.firstRowScreen : 0)) *\n this.config.lineHeight;\n\n return {left : cursorLeft, top : cursorTop};\n };\n\n this.update = function(config) {\n this.config = config;\n\n var selections = this.session.$selectionMarkers;\n var i = 0, cursorIndex = 0;\n\n if (selections === undefined || selections.length === 0){\n selections = [{cursor: null}];\n }\n\n for (var i = 0, n = selections.length; i < n; i++) {\n var pixelPos = this.getPixelPosition(selections[i].cursor, true);\n if ((pixelPos.top > config.height + config.offset ||\n pixelPos.top < 0) && i > 1) {\n continue;\n }\n\n var style = (this.cursors[cursorIndex++] || this.addCursor()).style;\n \n if (!this.drawCursor) {\n style.left = pixelPos.left + \"px\";\n style.top = pixelPos.top + \"px\";\n style.width = config.characterWidth + \"px\";\n style.height = config.lineHeight + \"px\";\n } else {\n this.drawCursor(style, pixelPos, config, selections[i], this.session);\n }\n }\n while (this.cursors.length > cursorIndex)\n this.removeCursor();\n\n var overwrite = this.session.getOverwrite();\n this.$setOverwrite(overwrite);\n this.$pixelPos = pixelPos;\n this.restartTimer();\n };\n \n this.drawCursor = null;\n\n this.$setOverwrite = function(overwrite) {\n if (overwrite != this.overwrite) {\n this.overwrite = overwrite;\n if (overwrite)\n dom.addCssClass(this.element, \"ace_overwrite-cursors\");\n else\n dom.removeCssClass(this.element, \"ace_overwrite-cursors\");\n }\n };\n\n this.destroy = function() {\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n };\n\n}).call(Cursor.prototype);\n\nexports.Cursor = Cursor;\n\n});\n\nace.define(\"ace/scrollbar\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar event = acequire(\"./lib/event\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar MAX_SCROLL_H = 0x8000;\nvar ScrollBar = function(parent) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_scrollbar ace_scrollbar\" + this.classSuffix;\n\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"ace_scrollbar-inner\";\n this.element.appendChild(this.inner);\n\n parent.appendChild(this.element);\n\n this.setVisible(false);\n this.skipEvent = false;\n\n event.addListener(this.element, \"scroll\", this.onScroll.bind(this));\n event.addListener(this.element, \"mousedown\", event.preventDefault);\n};\n\n(function() {\n oop.implement(this, EventEmitter);\n\n this.setVisible = function(isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n}).call(ScrollBar.prototype);\nvar VScrollBar = function(parent, renderer) {\n ScrollBar.call(this, parent);\n this.scrollTop = 0;\n this.scrollHeight = 0;\n renderer.$scrollbarWidth = \n this.width = dom.scrollbarWidth(parent.ownerDocument);\n this.inner.style.width =\n this.element.style.width = (this.width || 15) + 5 + \"px\";\n this.$minWidth = 0;\n};\n\noop.inherits(VScrollBar, ScrollBar);\n\n(function() {\n\n this.classSuffix = '-v';\n this.onScroll = function() {\n if (!this.skipEvent) {\n this.scrollTop = this.element.scrollTop;\n if (this.coeff != 1) {\n var h = this.element.clientHeight / this.scrollHeight;\n this.scrollTop = this.scrollTop * (1 - h) / (this.coeff - h);\n }\n this._emit(\"scroll\", {data: this.scrollTop});\n }\n this.skipEvent = false;\n };\n this.getWidth = function() {\n return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);\n };\n this.setHeight = function(height) {\n this.element.style.height = height + \"px\";\n };\n this.setInnerHeight =\n this.setScrollHeight = function(height) {\n this.scrollHeight = height;\n if (height > MAX_SCROLL_H) {\n this.coeff = MAX_SCROLL_H / height;\n height = MAX_SCROLL_H;\n } else if (this.coeff != 1) {\n this.coeff = 1;\n }\n this.inner.style.height = height + \"px\";\n };\n this.setScrollTop = function(scrollTop) {\n if (this.scrollTop != scrollTop) {\n this.skipEvent = true;\n this.scrollTop = scrollTop;\n this.element.scrollTop = scrollTop * this.coeff;\n }\n };\n\n}).call(VScrollBar.prototype);\nvar HScrollBar = function(parent, renderer) {\n ScrollBar.call(this, parent);\n this.scrollLeft = 0;\n this.height = renderer.$scrollbarWidth;\n this.inner.style.height =\n this.element.style.height = (this.height || 15) + 5 + \"px\";\n};\n\noop.inherits(HScrollBar, ScrollBar);\n\n(function() {\n\n this.classSuffix = '-h';\n this.onScroll = function() {\n if (!this.skipEvent) {\n this.scrollLeft = this.element.scrollLeft;\n this._emit(\"scroll\", {data: this.scrollLeft});\n }\n this.skipEvent = false;\n };\n this.getHeight = function() {\n return this.isVisible ? this.height : 0;\n };\n this.setWidth = function(width) {\n this.element.style.width = width + \"px\";\n };\n this.setInnerWidth = function(width) {\n this.inner.style.width = width + \"px\";\n };\n this.setScrollWidth = function(width) {\n this.inner.style.width = width + \"px\";\n };\n this.setScrollLeft = function(scrollLeft) {\n if (this.scrollLeft != scrollLeft) {\n this.skipEvent = true;\n this.scrollLeft = this.element.scrollLeft = scrollLeft;\n }\n };\n\n}).call(HScrollBar.prototype);\n\n\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\n\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n});\n\nace.define(\"ace/renderloop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar event = acequire(\"./lib/event\");\n\n\nvar RenderLoop = function(onRender, win) {\n this.onRender = onRender;\n this.pending = false;\n this.changes = 0;\n this.window = win || window;\n};\n\n(function() {\n\n\n this.schedule = function(change) {\n this.changes = this.changes | change;\n if (!this.pending && this.changes) {\n this.pending = true;\n var _self = this;\n event.nextFrame(function() {\n _self.pending = false;\n var changes;\n while (changes = _self.changes) {\n _self.changes = 0;\n _self.onRender(changes);\n }\n }, this.window);\n }\n };\n\n}).call(RenderLoop.prototype);\n\nexports.RenderLoop = RenderLoop;\n});\n\nace.define(\"ace/layer/font_metrics\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\nvar oop = acequire(\"../lib/oop\");\nvar dom = acequire(\"../lib/dom\");\nvar lang = acequire(\"../lib/lang\");\nvar useragent = acequire(\"../lib/useragent\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar CHAR_COUNT = 0;\n\nvar FontMetrics = exports.FontMetrics = function(parentEl) {\n this.el = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.el.style, true);\n \n this.$main = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$main.style);\n \n this.$measureNode = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$measureNode.style);\n \n \n this.el.appendChild(this.$main);\n this.el.appendChild(this.$measureNode);\n parentEl.appendChild(this.el);\n \n if (!CHAR_COUNT)\n this.$testFractionalRect();\n this.$measureNode.innerHTML = lang.stringRepeat(\"X\", CHAR_COUNT);\n \n this.$characterSize = {width: 0, height: 0};\n this.checkForSizeChanges();\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n \n this.$characterSize = {width: 0, height: 0};\n \n this.$testFractionalRect = function() {\n var el = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(el.style);\n el.style.width = \"0.2px\";\n document.documentElement.appendChild(el);\n var w = el.getBoundingClientRect().width;\n if (w > 0 && w < 1)\n CHAR_COUNT = 50;\n else\n CHAR_COUNT = 100;\n el.parentNode.removeChild(el);\n };\n \n this.$setMeasureNodeStyles = function(style, isRoot) {\n style.width = style.height = \"auto\";\n style.left = style.top = \"0px\";\n style.visibility = \"hidden\";\n style.position = \"absolute\";\n style.whiteSpace = \"pre\";\n\n if (useragent.isIE < 8) {\n style[\"font-family\"] = \"inherit\";\n } else {\n style.font = \"inherit\";\n }\n style.overflow = isRoot ? \"hidden\" : \"visible\";\n };\n\n this.checkForSizeChanges = function() {\n var size = this.$measureSizes();\n if (size && (this.$characterSize.width !== size.width || this.$characterSize.height !== size.height)) {\n this.$measureNode.style.fontWeight = \"bold\";\n var boldSize = this.$measureSizes();\n this.$measureNode.style.fontWeight = \"\";\n this.$characterSize = size;\n this.charSizes = Object.create(null);\n this.allowBoldFonts = boldSize && boldSize.width === size.width && boldSize.height === size.height;\n this._emit(\"changeCharacterSize\", {data: size});\n }\n };\n\n this.$pollSizeChanges = function() {\n if (this.$pollSizeChangesTimer)\n return this.$pollSizeChangesTimer;\n var self = this;\n return this.$pollSizeChangesTimer = setInterval(function() {\n self.checkForSizeChanges();\n }, 500);\n };\n \n this.setPolling = function(val) {\n if (val) {\n this.$pollSizeChanges();\n } else if (this.$pollSizeChangesTimer) {\n clearInterval(this.$pollSizeChangesTimer);\n this.$pollSizeChangesTimer = 0;\n }\n };\n\n this.$measureSizes = function() {\n if (CHAR_COUNT === 50) {\n var rect = null;\n try { \n rect = this.$measureNode.getBoundingClientRect();\n } catch(e) {\n rect = {width: 0, height:0 };\n }\n var size = {\n height: rect.height,\n width: rect.width / CHAR_COUNT\n };\n } else {\n var size = {\n height: this.$measureNode.clientHeight,\n width: this.$measureNode.clientWidth / CHAR_COUNT\n };\n }\n if (size.width === 0 || size.height === 0)\n return null;\n return size;\n };\n\n this.$measureCharWidth = function(ch) {\n this.$main.innerHTML = lang.stringRepeat(ch, CHAR_COUNT);\n var rect = this.$main.getBoundingClientRect();\n return rect.width / CHAR_COUNT;\n };\n \n this.getCharacterWidth = function(ch) {\n var w = this.charSizes[ch];\n if (w === undefined) {\n w = this.charSizes[ch] = this.$measureCharWidth(ch) / this.$characterSize.width;\n }\n return w;\n };\n\n this.destroy = function() {\n clearInterval(this.$pollSizeChangesTimer);\n if (this.el && this.el.parentNode)\n this.el.parentNode.removeChild(this.el);\n };\n\n}).call(FontMetrics.prototype);\n\n});\n\nace.define(\"ace/virtual_renderer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/config\",\"ace/lib/useragent\",\"ace/layer/gutter\",\"ace/layer/marker\",\"ace/layer/text\",\"ace/layer/cursor\",\"ace/scrollbar\",\"ace/scrollbar\",\"ace/renderloop\",\"ace/layer/font_metrics\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar config = acequire(\"./config\");\nvar useragent = acequire(\"./lib/useragent\");\nvar GutterLayer = acequire(\"./layer/gutter\").Gutter;\nvar MarkerLayer = acequire(\"./layer/marker\").Marker;\nvar TextLayer = acequire(\"./layer/text\").Text;\nvar CursorLayer = acequire(\"./layer/cursor\").Cursor;\nvar HScrollBar = acequire(\"./scrollbar\").HScrollBar;\nvar VScrollBar = acequire(\"./scrollbar\").VScrollBar;\nvar RenderLoop = acequire(\"./renderloop\").RenderLoop;\nvar FontMetrics = acequire(\"./layer/font_metrics\").FontMetrics;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar editorCss = \".ace_editor {\\\nposition: relative;\\\noverflow: hidden;\\\nfont: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;\\\ndirection: ltr;\\\ntext-align: left;\\\n-webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\\n}\\\n.ace_scroller {\\\nposition: absolute;\\\noverflow: hidden;\\\ntop: 0;\\\nbottom: 0;\\\nbackground-color: inherit;\\\n-ms-user-select: none;\\\n-moz-user-select: none;\\\n-webkit-user-select: none;\\\nuser-select: none;\\\ncursor: text;\\\n}\\\n.ace_content {\\\nposition: absolute;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nmin-width: 100%;\\\n}\\\n.ace_dragging .ace_scroller:before{\\\nposition: absolute;\\\ntop: 0;\\\nleft: 0;\\\nright: 0;\\\nbottom: 0;\\\ncontent: '';\\\nbackground: rgba(250, 250, 250, 0.01);\\\nz-index: 1000;\\\n}\\\n.ace_dragging.ace_dark .ace_scroller:before{\\\nbackground: rgba(0, 0, 0, 0.01);\\\n}\\\n.ace_selecting, .ace_selecting * {\\\ncursor: text !important;\\\n}\\\n.ace_gutter {\\\nposition: absolute;\\\noverflow : hidden;\\\nwidth: auto;\\\ntop: 0;\\\nbottom: 0;\\\nleft: 0;\\\ncursor: default;\\\nz-index: 4;\\\n-ms-user-select: none;\\\n-moz-user-select: none;\\\n-webkit-user-select: none;\\\nuser-select: none;\\\n}\\\n.ace_gutter-active-line {\\\nposition: absolute;\\\nleft: 0;\\\nright: 0;\\\n}\\\n.ace_scroller.ace_scroll-left {\\\nbox-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\\\n}\\\n.ace_gutter-cell {\\\npadding-left: 19px;\\\npadding-right: 6px;\\\nbackground-repeat: no-repeat;\\\n}\\\n.ace_gutter-cell.ace_error {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==\\\");\\\nbackground-repeat: no-repeat;\\\nbackground-position: 2px center;\\\n}\\\n.ace_gutter-cell.ace_warning {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==\\\");\\\nbackground-position: 2px center;\\\n}\\\n.ace_gutter-cell.ace_info {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=\\\");\\\nbackground-position: 2px center;\\\n}\\\n.ace_dark .ace_gutter-cell.ace_info {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace_scrollbar {\\\nposition: absolute;\\\nright: 0;\\\nbottom: 0;\\\nz-index: 6;\\\n}\\\n.ace_scrollbar-inner {\\\nposition: absolute;\\\ncursor: text;\\\nleft: 0;\\\ntop: 0;\\\n}\\\n.ace_scrollbar-v{\\\noverflow-x: hidden;\\\noverflow-y: scroll;\\\ntop: 0;\\\n}\\\n.ace_scrollbar-h {\\\noverflow-x: scroll;\\\noverflow-y: hidden;\\\nleft: 0;\\\n}\\\n.ace_print-margin {\\\nposition: absolute;\\\nheight: 100%;\\\n}\\\n.ace_text-input {\\\nposition: absolute;\\\nz-index: 0;\\\nwidth: 0.5em;\\\nheight: 1em;\\\nopacity: 0;\\\nbackground: transparent;\\\n-moz-appearance: none;\\\nappearance: none;\\\nborder: none;\\\nresize: none;\\\noutline: none;\\\noverflow: hidden;\\\nfont: inherit;\\\npadding: 0 1px;\\\nmargin: 0 -1px;\\\ntext-indent: -1em;\\\n-ms-user-select: text;\\\n-moz-user-select: text;\\\n-webkit-user-select: text;\\\nuser-select: text;\\\nwhite-space: pre!important;\\\n}\\\n.ace_text-input.ace_composition {\\\nbackground: inherit;\\\ncolor: inherit;\\\nz-index: 1000;\\\nopacity: 1;\\\ntext-indent: 0;\\\n}\\\n.ace_layer {\\\nz-index: 1;\\\nposition: absolute;\\\noverflow: hidden;\\\nword-wrap: normal;\\\nwhite-space: pre;\\\nheight: 100%;\\\nwidth: 100%;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\npointer-events: none;\\\n}\\\n.ace_gutter-layer {\\\nposition: relative;\\\nwidth: auto;\\\ntext-align: right;\\\npointer-events: auto;\\\n}\\\n.ace_text-layer {\\\nfont: inherit !important;\\\n}\\\n.ace_cjk {\\\ndisplay: inline-block;\\\ntext-align: center;\\\n}\\\n.ace_cursor-layer {\\\nz-index: 4;\\\n}\\\n.ace_cursor {\\\nz-index: 4;\\\nposition: absolute;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nborder-left: 2px solid;\\\ntransform: translatez(0);\\\n}\\\n.ace_multiselect .ace_cursor {\\\nborder-left-width: 1px;\\\n}\\\n.ace_slim-cursors .ace_cursor {\\\nborder-left-width: 1px;\\\n}\\\n.ace_overwrite-cursors .ace_cursor {\\\nborder-left-width: 0;\\\nborder-bottom: 1px solid;\\\n}\\\n.ace_hidden-cursors .ace_cursor {\\\nopacity: 0.2;\\\n}\\\n.ace_smooth-blinking .ace_cursor {\\\n-webkit-transition: opacity 0.18s;\\\ntransition: opacity 0.18s;\\\n}\\\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\\\nposition: absolute;\\\nz-index: 3;\\\n}\\\n.ace_marker-layer .ace_selection {\\\nposition: absolute;\\\nz-index: 5;\\\n}\\\n.ace_marker-layer .ace_bracket {\\\nposition: absolute;\\\nz-index: 6;\\\n}\\\n.ace_marker-layer .ace_active-line {\\\nposition: absolute;\\\nz-index: 2;\\\n}\\\n.ace_marker-layer .ace_selected-word {\\\nposition: absolute;\\\nz-index: 4;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\n}\\\n.ace_line .ace_fold {\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\ndisplay: inline-block;\\\nheight: 11px;\\\nmargin-top: -2px;\\\nvertical-align: middle;\\\nbackground-image:\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=\\\");\\\nbackground-repeat: no-repeat, repeat-x;\\\nbackground-position: center center, top left;\\\ncolor: transparent;\\\nborder: 1px solid black;\\\nborder-radius: 2px;\\\ncursor: pointer;\\\npointer-events: auto;\\\n}\\\n.ace_dark .ace_fold {\\\n}\\\n.ace_fold:hover{\\\nbackground-image:\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace_tooltip {\\\nbackground-color: #FFF;\\\nbackground-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));\\\nbackground-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));\\\nborder: 1px solid gray;\\\nborder-radius: 1px;\\\nbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\\\ncolor: black;\\\nmax-width: 100%;\\\npadding: 3px 4px;\\\nposition: fixed;\\\nz-index: 999999;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\ncursor: default;\\\nwhite-space: pre;\\\nword-wrap: break-word;\\\nline-height: normal;\\\nfont-style: normal;\\\nfont-weight: normal;\\\nletter-spacing: normal;\\\npointer-events: none;\\\n}\\\n.ace_folding-enabled > .ace_gutter-cell {\\\npadding-right: 13px;\\\n}\\\n.ace_fold-widget {\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nmargin: 0 -12px 0 1px;\\\ndisplay: none;\\\nwidth: 11px;\\\nvertical-align: top;\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==\\\");\\\nbackground-repeat: no-repeat;\\\nbackground-position: center;\\\nborder-radius: 3px;\\\nborder: 1px solid transparent;\\\ncursor: pointer;\\\n}\\\n.ace_folding-enabled .ace_fold-widget {\\\ndisplay: inline-block; \\\n}\\\n.ace_fold-widget.ace_end {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==\\\");\\\n}\\\n.ace_fold-widget.ace_closed {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==\\\");\\\n}\\\n.ace_fold-widget:hover {\\\nborder: 1px solid rgba(0, 0, 0, 0.3);\\\nbackground-color: rgba(255, 255, 255, 0.2);\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\\\n}\\\n.ace_fold-widget:active {\\\nborder: 1px solid rgba(0, 0, 0, 0.4);\\\nbackground-color: rgba(0, 0, 0, 0.05);\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\\\n}\\\n.ace_dark .ace_fold-widget {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace_dark .ace_fold-widget.ace_end {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\\\");\\\n}\\\n.ace_dark .ace_fold-widget.ace_closed {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\\\");\\\n}\\\n.ace_dark .ace_fold-widget:hover {\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\\nbackground-color: rgba(255, 255, 255, 0.1);\\\n}\\\n.ace_dark .ace_fold-widget:active {\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\\n}\\\n.ace_fold-widget.ace_invalid {\\\nbackground-color: #FFB4B4;\\\nborder-color: #DE5555;\\\n}\\\n.ace_fade-fold-widgets .ace_fold-widget {\\\n-webkit-transition: opacity 0.4s ease 0.05s;\\\ntransition: opacity 0.4s ease 0.05s;\\\nopacity: 0;\\\n}\\\n.ace_fade-fold-widgets:hover .ace_fold-widget {\\\n-webkit-transition: opacity 0.05s ease 0.05s;\\\ntransition: opacity 0.05s ease 0.05s;\\\nopacity:1;\\\n}\\\n.ace_underline {\\\ntext-decoration: underline;\\\n}\\\n.ace_bold {\\\nfont-weight: bold;\\\n}\\\n.ace_nobold .ace_bold {\\\nfont-weight: normal;\\\n}\\\n.ace_italic {\\\nfont-style: italic;\\\n}\\\n.ace_error-marker {\\\nbackground-color: rgba(255, 0, 0,0.2);\\\nposition: absolute;\\\nz-index: 9;\\\n}\\\n.ace_highlight-marker {\\\nbackground-color: rgba(255, 255, 0,0.2);\\\nposition: absolute;\\\nz-index: 8;\\\n}\\\n.ace_br1 {border-top-left-radius : 3px;}\\\n.ace_br2 {border-top-right-radius : 3px;}\\\n.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\\\n.ace_br4 {border-bottom-right-radius: 3px;}\\\n.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\\\n.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\\\n.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\\\n.ace_br8 {border-bottom-left-radius : 3px;}\\\n.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\\\n.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\\\n.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_text-input-ios {\\\nposition: absolute !important;\\\ntop: -100000px !important;\\\nleft: -100000px !important;\\\n}\\\n\";\n\ndom.importCssString(editorCss, \"ace_editor.css\");\n\nvar VirtualRenderer = function(container, theme) {\n var _self = this;\n\n this.container = container || dom.createElement(\"div\");\n this.$keepTextAreaAtCursor = !useragent.isOldIE;\n\n dom.addCssClass(this.container, \"ace_editor\");\n\n this.setTheme(theme);\n\n this.$gutter = dom.createElement(\"div\");\n this.$gutter.className = \"ace_gutter\";\n this.container.appendChild(this.$gutter);\n this.$gutter.setAttribute(\"aria-hidden\", true);\n\n this.scroller = dom.createElement(\"div\");\n this.scroller.className = \"ace_scroller\";\n this.container.appendChild(this.scroller);\n\n this.content = dom.createElement(\"div\");\n this.content.className = \"ace_content\";\n this.scroller.appendChild(this.content);\n\n this.$gutterLayer = new GutterLayer(this.$gutter);\n this.$gutterLayer.on(\"changeGutterWidth\", this.onGutterResize.bind(this));\n\n this.$markerBack = new MarkerLayer(this.content);\n\n var textLayer = this.$textLayer = new TextLayer(this.content);\n this.canvas = textLayer.element;\n\n this.$markerFront = new MarkerLayer(this.content);\n\n this.$cursorLayer = new CursorLayer(this.content);\n this.$horizScroll = false;\n this.$vScroll = false;\n\n this.scrollBar = \n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.addEventListener(\"scroll\", function(e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function(e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n\n this.scrollTop = 0;\n this.scrollLeft = 0;\n\n this.cursorPos = {\n row : 0,\n column : 0\n };\n\n this.$fontMetrics = new FontMetrics(this.container);\n this.$textLayer.$setFontMetrics(this.$fontMetrics);\n this.$textLayer.addEventListener(\"changeCharacterSize\", function(e) {\n _self.updateCharacterSize();\n _self.onResize(true, _self.gutterWidth, _self.$size.width, _self.$size.height);\n _self._signal(\"changeCharacterSize\", e);\n });\n\n this.$size = {\n width: 0,\n height: 0,\n scrollerHeight: 0,\n scrollerWidth: 0,\n $dirty: true\n };\n\n this.layerConfig = {\n width : 1,\n padding : 0,\n firstRow : 0,\n firstRowScreen: 0,\n lastRow : 0,\n lineHeight : 0,\n characterWidth : 0,\n minHeight : 1,\n maxHeight : 1,\n offset : 0,\n height : 1,\n gutterOffset: 1\n };\n \n this.scrollMargin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n\n this.$loop = new RenderLoop(\n this.$renderChanges.bind(this),\n this.container.ownerDocument.defaultView\n );\n this.$loop.schedule(this.CHANGE_FULL);\n\n this.updateCharacterSize();\n this.setPadding(4);\n config.resetOptions(this);\n config._emit(\"renderer\", this);\n};\n\n(function() {\n\n this.CHANGE_CURSOR = 1;\n this.CHANGE_MARKER = 2;\n this.CHANGE_GUTTER = 4;\n this.CHANGE_SCROLL = 8;\n this.CHANGE_LINES = 16;\n this.CHANGE_TEXT = 32;\n this.CHANGE_SIZE = 64;\n this.CHANGE_MARKER_BACK = 128;\n this.CHANGE_MARKER_FRONT = 256;\n this.CHANGE_FULL = 512;\n this.CHANGE_H_SCROLL = 1024;\n\n oop.implement(this, EventEmitter);\n\n this.updateCharacterSize = function() {\n if (this.$textLayer.allowBoldFonts != this.$allowBoldFonts) {\n this.$allowBoldFonts = this.$textLayer.allowBoldFonts;\n this.setStyle(\"ace_nobold\", !this.$allowBoldFonts);\n }\n\n this.layerConfig.characterWidth =\n this.characterWidth = this.$textLayer.getCharacterWidth();\n this.layerConfig.lineHeight =\n this.lineHeight = this.$textLayer.getLineHeight();\n this.$updatePrintMargin();\n };\n this.setSession = function(session) {\n if (this.session)\n this.session.doc.off(\"changeNewLineMode\", this.onChangeNewLineMode);\n \n this.session = session;\n if (session && this.scrollMargin.top && session.getScrollTop() <= 0)\n session.setScrollTop(-this.scrollMargin.top);\n\n this.$cursorLayer.setSession(session);\n this.$markerBack.setSession(session);\n this.$markerFront.setSession(session);\n this.$gutterLayer.setSession(session);\n this.$textLayer.setSession(session);\n if (!session)\n return;\n \n this.$loop.schedule(this.CHANGE_FULL);\n this.session.$setFontMetrics(this.$fontMetrics);\n this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;\n \n this.onChangeNewLineMode = this.onChangeNewLineMode.bind(this);\n this.onChangeNewLineMode();\n this.session.doc.on(\"changeNewLineMode\", this.onChangeNewLineMode);\n };\n this.updateLines = function(firstRow, lastRow, force) {\n if (lastRow === undefined)\n lastRow = Infinity;\n\n if (!this.$changedLines) {\n this.$changedLines = {\n firstRow: firstRow,\n lastRow: lastRow\n };\n }\n else {\n if (this.$changedLines.firstRow > firstRow)\n this.$changedLines.firstRow = firstRow;\n\n if (this.$changedLines.lastRow < lastRow)\n this.$changedLines.lastRow = lastRow;\n }\n if (this.$changedLines.lastRow < this.layerConfig.firstRow) {\n if (force)\n this.$changedLines.lastRow = this.layerConfig.lastRow;\n else\n return;\n }\n if (this.$changedLines.firstRow > this.layerConfig.lastRow)\n return;\n this.$loop.schedule(this.CHANGE_LINES);\n };\n\n this.onChangeNewLineMode = function() {\n this.$loop.schedule(this.CHANGE_TEXT);\n this.$textLayer.$updateEolChar();\n this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR);\n };\n \n this.onChangeTabSize = function() {\n this.$loop.schedule(this.CHANGE_TEXT | this.CHANGE_MARKER);\n this.$textLayer.onChangeTabSize();\n };\n this.updateText = function() {\n this.$loop.schedule(this.CHANGE_TEXT);\n };\n this.updateFull = function(force) {\n if (force)\n this.$renderChanges(this.CHANGE_FULL, true);\n else\n this.$loop.schedule(this.CHANGE_FULL);\n };\n this.updateFontSize = function() {\n this.$textLayer.checkForSizeChanges();\n };\n\n this.$changes = 0;\n this.$updateSizeAsync = function() {\n if (this.$loop.pending)\n this.$size.$dirty = true;\n else\n this.onResize();\n };\n this.onResize = function(force, gutterWidth, width, height) {\n if (this.resizing > 2)\n return;\n else if (this.resizing > 0)\n this.resizing++;\n else\n this.resizing = force ? 1 : 0;\n var el = this.container;\n if (!height)\n height = el.clientHeight || el.scrollHeight;\n if (!width)\n width = el.clientWidth || el.scrollWidth;\n var changes = this.$updateCachedSize(force, gutterWidth, width, height);\n\n \n if (!this.$size.scrollerHeight || (!width && !height))\n return this.resizing = 0;\n\n if (force)\n this.$gutterLayer.$padding = null;\n\n if (force)\n this.$renderChanges(changes | this.$changes, true);\n else\n this.$loop.schedule(changes | this.$changes);\n\n if (this.resizing)\n this.resizing = 0;\n this.scrollBarV.scrollLeft = this.scrollBarV.scrollTop = null;\n };\n \n this.$updateCachedSize = function(force, gutterWidth, width, height) {\n height -= (this.$extraHeight || 0);\n var changes = 0;\n var size = this.$size;\n var oldSize = {\n width: size.width,\n height: size.height,\n scrollerHeight: size.scrollerHeight,\n scrollerWidth: size.scrollerWidth\n };\n if (height && (force || size.height != height)) {\n size.height = height;\n changes |= this.CHANGE_SIZE;\n\n size.scrollerHeight = size.height;\n if (this.$horizScroll)\n size.scrollerHeight -= this.scrollBarH.getHeight();\n this.scrollBarV.element.style.bottom = this.scrollBarH.getHeight() + \"px\";\n\n changes = changes | this.CHANGE_SCROLL;\n }\n\n if (width && (force || size.width != width)) {\n changes |= this.CHANGE_SIZE;\n size.width = width;\n \n if (gutterWidth == null)\n gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n \n this.gutterWidth = gutterWidth;\n \n this.scrollBarH.element.style.left = \n this.scroller.style.left = gutterWidth + \"px\";\n size.scrollerWidth = Math.max(0, width - gutterWidth - this.scrollBarV.getWidth()); \n \n this.scrollBarH.element.style.right = \n this.scroller.style.right = this.scrollBarV.getWidth() + \"px\";\n this.scroller.style.bottom = this.scrollBarH.getHeight() + \"px\";\n\n if (this.session && this.session.getUseWrapMode() && this.adjustWrapLimit() || force)\n changes |= this.CHANGE_FULL;\n }\n \n size.$dirty = !width || !height;\n\n if (changes)\n this._signal(\"resize\", oldSize);\n\n return changes;\n };\n\n this.onGutterResize = function() {\n var gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n if (gutterWidth != this.gutterWidth)\n this.$changes |= this.$updateCachedSize(true, gutterWidth, this.$size.width, this.$size.height);\n\n if (this.session.getUseWrapMode() && this.adjustWrapLimit()) {\n this.$loop.schedule(this.CHANGE_FULL);\n } else if (this.$size.$dirty) {\n this.$loop.schedule(this.CHANGE_FULL);\n } else {\n this.$computeLayerConfig();\n this.$loop.schedule(this.CHANGE_MARKER);\n }\n };\n this.adjustWrapLimit = function() {\n var availableWidth = this.$size.scrollerWidth - this.$padding * 2;\n var limit = Math.floor(availableWidth / this.characterWidth);\n return this.session.adjustWrapLimit(limit, this.$showPrintMargin && this.$printMarginColumn);\n };\n this.setAnimatedScroll = function(shouldAnimate){\n this.setOption(\"animatedScroll\", shouldAnimate);\n };\n this.getAnimatedScroll = function() {\n return this.$animatedScroll;\n };\n this.setShowInvisibles = function(showInvisibles) {\n this.setOption(\"showInvisibles\", showInvisibles);\n this.session.$bidiHandler.setShowInvisibles(showInvisibles);\n };\n this.getShowInvisibles = function() {\n return this.getOption(\"showInvisibles\");\n };\n this.getDisplayIndentGuides = function() {\n return this.getOption(\"displayIndentGuides\");\n };\n\n this.setDisplayIndentGuides = function(display) {\n this.setOption(\"displayIndentGuides\", display);\n };\n this.setShowPrintMargin = function(showPrintMargin) {\n this.setOption(\"showPrintMargin\", showPrintMargin);\n };\n this.getShowPrintMargin = function() {\n return this.getOption(\"showPrintMargin\");\n };\n this.setPrintMarginColumn = function(showPrintMargin) {\n this.setOption(\"printMarginColumn\", showPrintMargin);\n };\n this.getPrintMarginColumn = function() {\n return this.getOption(\"printMarginColumn\");\n };\n this.getShowGutter = function(){\n return this.getOption(\"showGutter\");\n };\n this.setShowGutter = function(show){\n return this.setOption(\"showGutter\", show);\n };\n\n this.getFadeFoldWidgets = function(){\n return this.getOption(\"fadeFoldWidgets\");\n };\n\n this.setFadeFoldWidgets = function(show) {\n this.setOption(\"fadeFoldWidgets\", show);\n };\n\n this.setHighlightGutterLine = function(shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n\n this.getHighlightGutterLine = function() {\n return this.getOption(\"highlightGutterLine\");\n };\n\n this.$updateGutterLineHighlight = function() {\n var pos = this.$cursorLayer.$pixelPos;\n var height = this.layerConfig.lineHeight;\n if (this.session.getUseWrapMode()) {\n var cursor = this.session.selection.getCursor();\n cursor.column = 0;\n pos = this.$cursorLayer.getPixelPosition(cursor, true);\n height *= this.session.getRowLength(cursor.row);\n }\n this.$gutterLineHighlight.style.top = pos.top - this.layerConfig.offset + \"px\";\n this.$gutterLineHighlight.style.height = height + \"px\";\n };\n\n this.$updatePrintMargin = function() {\n if (!this.$showPrintMargin && !this.$printMarginEl)\n return;\n\n if (!this.$printMarginEl) {\n var containerEl = dom.createElement(\"div\");\n containerEl.className = \"ace_layer ace_print-margin-layer\";\n this.$printMarginEl = dom.createElement(\"div\");\n this.$printMarginEl.className = \"ace_print-margin\";\n containerEl.appendChild(this.$printMarginEl);\n this.content.insertBefore(containerEl, this.content.firstChild);\n }\n\n var style = this.$printMarginEl.style;\n style.left = ((this.characterWidth * this.$printMarginColumn) + this.$padding) + \"px\";\n style.visibility = this.$showPrintMargin ? \"visible\" : \"hidden\";\n \n if (this.session && this.session.$wrap == -1)\n this.adjustWrapLimit();\n };\n this.getContainerElement = function() {\n return this.container;\n };\n this.getMouseEventTarget = function() {\n return this.scroller;\n };\n this.getTextAreaContainer = function() {\n return this.container;\n };\n this.$moveTextAreaToCursor = function() {\n if (!this.$keepTextAreaAtCursor)\n return;\n var config = this.layerConfig;\n var posTop = this.$cursorLayer.$pixelPos.top;\n var posLeft = this.$cursorLayer.$pixelPos.left;\n posTop -= config.offset;\n\n var style = this.textarea.style;\n var h = this.lineHeight;\n if (posTop < 0 || posTop > config.height - h) {\n style.top = style.left = \"0\";\n return;\n }\n\n var w = this.characterWidth;\n if (this.$composition) {\n var val = this.textarea.value.replace(/^\\x01+/, \"\");\n w *= (this.session.$getStringScreenWidth(val)[0]+2);\n h += 2;\n }\n posLeft -= this.scrollLeft;\n if (posLeft > this.$size.scrollerWidth - w)\n posLeft = this.$size.scrollerWidth - w;\n\n posLeft += this.gutterWidth;\n style.height = h + \"px\";\n style.width = w + \"px\";\n style.left = Math.min(posLeft, this.$size.scrollerWidth - w) + \"px\";\n style.top = Math.min(posTop, this.$size.height - h) + \"px\";\n };\n this.getFirstVisibleRow = function() {\n return this.layerConfig.firstRow;\n };\n this.getFirstFullyVisibleRow = function() {\n return this.layerConfig.firstRow + (this.layerConfig.offset === 0 ? 0 : 1);\n };\n this.getLastFullyVisibleRow = function() {\n var config = this.layerConfig;\n var lastRow = config.lastRow;\n var top = this.session.documentToScreenRow(lastRow, 0) * config.lineHeight;\n if (top - this.session.getScrollTop() > config.height - config.lineHeight)\n return lastRow - 1;\n return lastRow;\n };\n this.getLastVisibleRow = function() {\n return this.layerConfig.lastRow;\n };\n\n this.$padding = null;\n this.setPadding = function(padding) {\n this.$padding = padding;\n this.$textLayer.setPadding(padding);\n this.$cursorLayer.setPadding(padding);\n this.$markerFront.setPadding(padding);\n this.$markerBack.setPadding(padding);\n this.$loop.schedule(this.CHANGE_FULL);\n this.$updatePrintMargin();\n };\n \n this.setScrollMargin = function(top, bottom, left, right) {\n var sm = this.scrollMargin;\n sm.top = top|0;\n sm.bottom = bottom|0;\n sm.right = right|0;\n sm.left = left|0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n if (sm.top && this.scrollTop <= 0 && this.session)\n this.session.setScrollTop(-sm.top);\n this.updateFull();\n };\n this.getHScrollBarAlwaysVisible = function() {\n return this.$hScrollBarAlwaysVisible;\n };\n this.setHScrollBarAlwaysVisible = function(alwaysVisible) {\n this.setOption(\"hScrollBarAlwaysVisible\", alwaysVisible);\n };\n this.getVScrollBarAlwaysVisible = function() {\n return this.$vScrollBarAlwaysVisible;\n };\n this.setVScrollBarAlwaysVisible = function(alwaysVisible) {\n this.setOption(\"vScrollBarAlwaysVisible\", alwaysVisible);\n };\n\n this.$updateScrollBarV = function() {\n var scrollHeight = this.layerConfig.maxHeight;\n var scrollerHeight = this.$size.scrollerHeight;\n if (!this.$maxLines && this.$scrollPastEnd) {\n scrollHeight -= (scrollerHeight - this.lineHeight) * this.$scrollPastEnd;\n if (this.scrollTop > scrollHeight - scrollerHeight) {\n scrollHeight = this.scrollTop + scrollerHeight;\n this.scrollBarV.scrollTop = null;\n }\n }\n this.scrollBarV.setScrollHeight(scrollHeight + this.scrollMargin.v);\n this.scrollBarV.setScrollTop(this.scrollTop + this.scrollMargin.top);\n };\n this.$updateScrollBarH = function() {\n this.scrollBarH.setScrollWidth(this.layerConfig.width + 2 * this.$padding + this.scrollMargin.h);\n this.scrollBarH.setScrollLeft(this.scrollLeft + this.scrollMargin.left);\n };\n \n this.$frozen = false;\n this.freeze = function() {\n this.$frozen = true;\n };\n \n this.unfreeze = function() {\n this.$frozen = false;\n };\n\n this.$renderChanges = function(changes, force) {\n if (this.$changes) {\n changes |= this.$changes;\n this.$changes = 0;\n }\n if ((!this.session || !this.container.offsetWidth || this.$frozen) || (!changes && !force)) {\n this.$changes |= changes;\n return; \n } \n if (this.$size.$dirty) {\n this.$changes |= changes;\n return this.onResize(true);\n }\n if (!this.lineHeight) {\n this.$textLayer.checkForSizeChanges();\n }\n \n this._signal(\"beforeRender\");\n\n if (this.session && this.session.$bidiHandler)\n this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);\n\n var config = this.layerConfig;\n if (changes & this.CHANGE_FULL ||\n changes & this.CHANGE_SIZE ||\n changes & this.CHANGE_TEXT ||\n changes & this.CHANGE_LINES ||\n changes & this.CHANGE_SCROLL ||\n changes & this.CHANGE_H_SCROLL\n ) {\n changes |= this.$computeLayerConfig();\n if (config.firstRow != this.layerConfig.firstRow && config.firstRowScreen == this.layerConfig.firstRowScreen) {\n var st = this.scrollTop + (config.firstRow - this.layerConfig.firstRow) * this.lineHeight;\n if (st > 0) {\n this.scrollTop = st;\n changes = changes | this.CHANGE_SCROLL;\n changes |= this.$computeLayerConfig();\n }\n }\n config = this.layerConfig;\n this.$updateScrollBarV();\n if (changes & this.CHANGE_H_SCROLL)\n this.$updateScrollBarH();\n this.$gutterLayer.element.style.marginTop = (-config.offset) + \"px\";\n this.content.style.marginTop = (-config.offset) + \"px\";\n this.content.style.width = config.width + 2 * this.$padding + \"px\";\n this.content.style.height = config.minHeight + \"px\";\n }\n if (changes & this.CHANGE_H_SCROLL) {\n this.content.style.marginLeft = -this.scrollLeft + \"px\";\n this.scroller.className = this.scrollLeft <= 0 ? \"ace_scroller\" : \"ace_scroller ace_scroll-left\";\n }\n if (changes & this.CHANGE_FULL) {\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this.$highlightGutterLine && this.$updateGutterLineHighlight();\n this._signal(\"afterRender\");\n return;\n }\n if (changes & this.CHANGE_SCROLL) {\n if (changes & this.CHANGE_TEXT || changes & this.CHANGE_LINES)\n this.$textLayer.update(config);\n else\n this.$textLayer.scrollLines(config);\n\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$highlightGutterLine && this.$updateGutterLineHighlight();\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\");\n return;\n }\n\n if (changes & this.CHANGE_TEXT) {\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n }\n else if (changes & this.CHANGE_LINES) {\n if (this.$updateLines() || (changes & this.CHANGE_GUTTER) && this.$showGutter)\n this.$gutterLayer.update(config);\n }\n else if (changes & this.CHANGE_TEXT || changes & this.CHANGE_GUTTER) {\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n }\n\n if (changes & this.CHANGE_CURSOR) {\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this.$highlightGutterLine && this.$updateGutterLineHighlight();\n }\n\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_FRONT)) {\n this.$markerFront.update(config);\n }\n\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_BACK)) {\n this.$markerBack.update(config);\n }\n\n this._signal(\"afterRender\");\n };\n\n \n this.$autosize = function() {\n var height = this.session.getScreenLength() * this.lineHeight;\n var maxHeight = this.$maxLines * this.lineHeight;\n var desiredHeight = Math.min(maxHeight,\n Math.max((this.$minLines || 1) * this.lineHeight, height)\n ) + this.scrollMargin.v + (this.$extraHeight || 0);\n if (this.$horizScroll)\n desiredHeight += this.scrollBarH.getHeight();\n if (this.$maxPixelHeight && desiredHeight > this.$maxPixelHeight)\n desiredHeight = this.$maxPixelHeight;\n var vScroll = height > maxHeight;\n \n if (desiredHeight != this.desiredHeight ||\n this.$size.height != this.desiredHeight || vScroll != this.$vScroll) {\n if (vScroll != this.$vScroll) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n \n var w = this.container.clientWidth;\n this.container.style.height = desiredHeight + \"px\";\n this.$updateCachedSize(true, this.$gutterWidth, w, desiredHeight);\n this.desiredHeight = desiredHeight;\n \n this._signal(\"autosize\");\n }\n };\n \n this.$computeLayerConfig = function() {\n var session = this.session;\n var size = this.$size;\n \n var hideScrollbars = size.height <= 2 * this.lineHeight;\n var screenLines = this.session.getScreenLength();\n var maxHeight = screenLines * this.lineHeight;\n\n var longestLine = this.$getLongestLine();\n \n var horizScroll = !hideScrollbars && (this.$hScrollBarAlwaysVisible ||\n size.scrollerWidth - longestLine - 2 * this.$padding < 0);\n\n var hScrollChanged = this.$horizScroll !== horizScroll;\n if (hScrollChanged) {\n this.$horizScroll = horizScroll;\n this.scrollBarH.setVisible(horizScroll);\n }\n var vScrollBefore = this.$vScroll; // autosize can change vscroll value in which case we need to update longestLine\n if (this.$maxLines && this.lineHeight > 1)\n this.$autosize();\n\n var offset = this.scrollTop % this.lineHeight;\n var minHeight = size.scrollerHeight + this.lineHeight;\n \n var scrollPastEnd = !this.$maxLines && this.$scrollPastEnd\n ? (size.scrollerHeight - this.lineHeight) * this.$scrollPastEnd\n : 0;\n maxHeight += scrollPastEnd;\n \n var sm = this.scrollMargin;\n this.session.setScrollTop(Math.max(-sm.top,\n Math.min(this.scrollTop, maxHeight - size.scrollerHeight + sm.bottom)));\n\n this.session.setScrollLeft(Math.max(-sm.left, Math.min(this.scrollLeft, \n longestLine + 2 * this.$padding - size.scrollerWidth + sm.right)));\n \n var vScroll = !hideScrollbars && (this.$vScrollBarAlwaysVisible ||\n size.scrollerHeight - maxHeight + scrollPastEnd < 0 || this.scrollTop > sm.top);\n var vScrollChanged = vScrollBefore !== vScroll;\n if (vScrollChanged) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n\n var lineCount = Math.ceil(minHeight / this.lineHeight) - 1;\n var firstRow = Math.max(0, Math.round((this.scrollTop - offset) / this.lineHeight));\n var lastRow = firstRow + lineCount;\n var firstRowScreen, firstRowHeight;\n var lineHeight = this.lineHeight;\n firstRow = session.screenToDocumentRow(firstRow, 0);\n var foldLine = session.getFoldLine(firstRow);\n if (foldLine) {\n firstRow = foldLine.start.row;\n }\n\n firstRowScreen = session.documentToScreenRow(firstRow, 0);\n firstRowHeight = session.getRowLength(firstRow) * lineHeight;\n\n lastRow = Math.min(session.screenToDocumentRow(lastRow, 0), session.getLength() - 1);\n minHeight = size.scrollerHeight + session.getRowLength(lastRow) * lineHeight +\n firstRowHeight;\n\n offset = this.scrollTop - firstRowScreen * lineHeight;\n\n var changes = 0;\n if (this.layerConfig.width != longestLine) \n changes = this.CHANGE_H_SCROLL;\n if (hScrollChanged || vScrollChanged) {\n changes = this.$updateCachedSize(true, this.gutterWidth, size.width, size.height);\n this._signal(\"scrollbarVisibilityChanged\");\n if (vScrollChanged)\n longestLine = this.$getLongestLine();\n }\n \n this.layerConfig = {\n width : longestLine,\n padding : this.$padding,\n firstRow : firstRow,\n firstRowScreen: firstRowScreen,\n lastRow : lastRow,\n lineHeight : lineHeight,\n characterWidth : this.characterWidth,\n minHeight : minHeight,\n maxHeight : maxHeight,\n offset : offset,\n gutterOffset : lineHeight ? Math.max(0, Math.ceil((offset + size.height - size.scrollerHeight) / lineHeight)) : 0,\n height : this.$size.scrollerHeight\n };\n\n return changes;\n };\n\n this.$updateLines = function() {\n if (!this.$changedLines) return;\n var firstRow = this.$changedLines.firstRow;\n var lastRow = this.$changedLines.lastRow;\n this.$changedLines = null;\n\n var layerConfig = this.layerConfig;\n\n if (firstRow > layerConfig.lastRow + 1) { return; }\n if (lastRow < layerConfig.firstRow) { return; }\n if (lastRow === Infinity) {\n if (this.$showGutter)\n this.$gutterLayer.update(layerConfig);\n this.$textLayer.update(layerConfig);\n return;\n }\n this.$textLayer.updateLines(layerConfig, firstRow, lastRow);\n return true;\n };\n\n this.$getLongestLine = function() {\n var charCount = this.session.getScreenWidth();\n if (this.showInvisibles && !this.session.$useWrapMode)\n charCount += 1;\n\n return Math.max(this.$size.scrollerWidth - 2 * this.$padding, Math.round(charCount * this.characterWidth));\n };\n this.updateFrontMarkers = function() {\n this.$markerFront.setMarkers(this.session.getMarkers(true));\n this.$loop.schedule(this.CHANGE_MARKER_FRONT);\n };\n this.updateBackMarkers = function() {\n this.$markerBack.setMarkers(this.session.getMarkers());\n this.$loop.schedule(this.CHANGE_MARKER_BACK);\n };\n this.addGutterDecoration = function(row, className){\n this.$gutterLayer.addGutterDecoration(row, className);\n };\n this.removeGutterDecoration = function(row, className){\n this.$gutterLayer.removeGutterDecoration(row, className);\n };\n this.updateBreakpoints = function(rows) {\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n this.setAnnotations = function(annotations) {\n this.$gutterLayer.setAnnotations(annotations);\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n this.updateCursor = function() {\n this.$loop.schedule(this.CHANGE_CURSOR);\n };\n this.hideCursor = function() {\n this.$cursorLayer.hideCursor();\n };\n this.showCursor = function() {\n this.$cursorLayer.showCursor();\n };\n\n this.scrollSelectionIntoView = function(anchor, lead, offset) {\n this.scrollCursorIntoView(anchor, offset);\n this.scrollCursorIntoView(lead, offset);\n };\n this.scrollCursorIntoView = function(cursor, offset, $viewMargin) {\n if (this.$size.scrollerHeight === 0)\n return;\n\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n\n var left = pos.left;\n var top = pos.top;\n \n var topMargin = $viewMargin && $viewMargin.top || 0;\n var bottomMargin = $viewMargin && $viewMargin.bottom || 0;\n \n var scrollTop = this.$scrollAnimation ? this.session.getScrollTop() : this.scrollTop;\n \n if (scrollTop + topMargin > top) {\n if (offset && scrollTop + topMargin > top + this.lineHeight)\n top -= offset * this.$size.scrollerHeight;\n if (top === 0)\n top = -this.scrollMargin.top;\n this.session.setScrollTop(top);\n } else if (scrollTop + this.$size.scrollerHeight - bottomMargin < top + this.lineHeight) {\n if (offset && scrollTop + this.$size.scrollerHeight - bottomMargin < top - this.lineHeight)\n top += offset * this.$size.scrollerHeight;\n this.session.setScrollTop(top + this.lineHeight - this.$size.scrollerHeight);\n }\n\n var scrollLeft = this.scrollLeft;\n\n if (scrollLeft > left) {\n if (left < this.$padding + 2 * this.layerConfig.characterWidth)\n left = -this.scrollMargin.left;\n this.session.setScrollLeft(left);\n } else if (scrollLeft + this.$size.scrollerWidth < left + this.characterWidth) {\n this.session.setScrollLeft(Math.round(left + this.characterWidth - this.$size.scrollerWidth));\n } else if (scrollLeft <= this.$padding && left - scrollLeft < this.characterWidth) {\n this.session.setScrollLeft(0);\n }\n };\n this.getScrollTop = function() {\n return this.session.getScrollTop();\n };\n this.getScrollLeft = function() {\n return this.session.getScrollLeft();\n };\n this.getScrollTopRow = function() {\n return this.scrollTop / this.lineHeight;\n };\n this.getScrollBottomRow = function() {\n return Math.max(0, Math.floor((this.scrollTop + this.$size.scrollerHeight) / this.lineHeight) - 1);\n };\n this.scrollToRow = function(row) {\n this.session.setScrollTop(row * this.lineHeight);\n };\n\n this.alignCursor = function(cursor, alignment) {\n if (typeof cursor == \"number\")\n cursor = {row: cursor, column: 0};\n\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var h = this.$size.scrollerHeight - this.lineHeight;\n var offset = pos.top - h * (alignment || 0);\n\n this.session.setScrollTop(offset);\n return offset;\n };\n\n this.STEPS = 8;\n this.$calcSteps = function(fromValue, toValue){\n var i = 0;\n var l = this.STEPS;\n var steps = [];\n\n var func = function(t, x_min, dx) {\n return dx * (Math.pow(t - 1, 3) + 1) + x_min;\n };\n\n for (i = 0; i < l; ++i)\n steps.push(func(i / this.STEPS, fromValue, toValue - fromValue));\n\n return steps;\n };\n this.scrollToLine = function(line, center, animate, callback) {\n var pos = this.$cursorLayer.getPixelPosition({row: line, column: 0});\n var offset = pos.top;\n if (center)\n offset -= this.$size.scrollerHeight / 2;\n\n var initialScroll = this.scrollTop;\n this.session.setScrollTop(offset);\n if (animate !== false)\n this.animateScrolling(initialScroll, callback);\n };\n\n this.animateScrolling = function(fromValue, callback) {\n var toValue = this.scrollTop;\n if (!this.$animatedScroll)\n return;\n var _self = this;\n \n if (fromValue == toValue)\n return;\n \n if (this.$scrollAnimation) {\n var oldSteps = this.$scrollAnimation.steps;\n if (oldSteps.length) {\n fromValue = oldSteps[0];\n if (fromValue == toValue)\n return;\n }\n }\n \n var steps = _self.$calcSteps(fromValue, toValue);\n this.$scrollAnimation = {from: fromValue, to: toValue, steps: steps};\n\n clearInterval(this.$timer);\n\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n this.$timer = setInterval(function() {\n if (steps.length) {\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n } else if (toValue != null) {\n _self.session.$scrollTop = -1;\n _self.session.setScrollTop(toValue);\n toValue = null;\n } else {\n _self.$timer = clearInterval(_self.$timer);\n _self.$scrollAnimation = null;\n callback && callback();\n }\n }, 10);\n };\n this.scrollToY = function(scrollTop) {\n if (this.scrollTop !== scrollTop) {\n this.$loop.schedule(this.CHANGE_SCROLL);\n this.scrollTop = scrollTop;\n }\n };\n this.scrollToX = function(scrollLeft) {\n if (this.scrollLeft !== scrollLeft)\n this.scrollLeft = scrollLeft;\n this.$loop.schedule(this.CHANGE_H_SCROLL);\n };\n this.scrollTo = function(x, y) {\n this.session.setScrollTop(y);\n this.session.setScrollLeft(y);\n };\n this.scrollBy = function(deltaX, deltaY) {\n deltaY && this.session.setScrollTop(this.session.getScrollTop() + deltaY);\n deltaX && this.session.setScrollLeft(this.session.getScrollLeft() + deltaX);\n };\n this.isScrollableBy = function(deltaX, deltaY) {\n if (deltaY < 0 && this.session.getScrollTop() >= 1 - this.scrollMargin.top)\n return true;\n if (deltaY > 0 && this.session.getScrollTop() + this.$size.scrollerHeight\n - this.layerConfig.maxHeight < -1 + this.scrollMargin.bottom)\n return true;\n if (deltaX < 0 && this.session.getScrollLeft() >= 1 - this.scrollMargin.left)\n return true;\n if (deltaX > 0 && this.session.getScrollLeft() + this.$size.scrollerWidth\n - this.layerConfig.width < -1 + this.scrollMargin.right)\n return true;\n };\n\n this.pixelToScreenCoordinates = function(x, y) {\n var canvasPos = this.scroller.getBoundingClientRect();\n\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n var offset = offsetX / this.characterWidth;\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n var col = Math.round(offset);\n\n return {row: row, column: col, side: offset - col > 0 ? 1 : -1, offsetX: offsetX};\n };\n\n this.screenToTextCoordinates = function(x, y) {\n var canvasPos = this.scroller.getBoundingClientRect();\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n\n var col = Math.round(offsetX / this.characterWidth);\n\n var row = (y + this.scrollTop - canvasPos.top) / this.lineHeight;\n\n return this.session.screenToDocumentPosition(row, Math.max(col, 0), offsetX);\n };\n this.textToScreenCoordinates = function(row, column) {\n var canvasPos = this.scroller.getBoundingClientRect();\n var pos = this.session.documentToScreenPosition(row, column);\n\n var x = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : Math.round(pos.column * this.characterWidth));\n\n var y = pos.row * this.lineHeight;\n\n return {\n pageX: canvasPos.left + x - this.scrollLeft,\n pageY: canvasPos.top + y - this.scrollTop\n };\n };\n this.visualizeFocus = function() {\n dom.addCssClass(this.container, \"ace_focus\");\n };\n this.visualizeBlur = function() {\n dom.removeCssClass(this.container, \"ace_focus\");\n };\n this.showComposition = function(position) {\n if (!this.$composition)\n this.$composition = {\n keepTextAreaAtCursor: this.$keepTextAreaAtCursor,\n cssText: this.textarea.style.cssText\n };\n\n this.$keepTextAreaAtCursor = true;\n dom.addCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = \"\";\n this.$moveTextAreaToCursor();\n };\n this.setCompositionText = function(text) {\n this.$moveTextAreaToCursor();\n };\n this.hideComposition = function() {\n if (!this.$composition)\n return;\n\n dom.removeCssClass(this.textarea, \"ace_composition\");\n this.$keepTextAreaAtCursor = this.$composition.keepTextAreaAtCursor;\n this.textarea.style.cssText = this.$composition.cssText;\n this.$composition = null;\n };\n this.setTheme = function(theme, cb) {\n var _self = this;\n this.$themeId = theme;\n _self._dispatchEvent('themeChange',{theme:theme});\n\n if (!theme || typeof theme == \"string\") {\n var moduleName = theme || this.$options.theme.initialValue;\n config.loadModule([\"theme\", moduleName], afterLoad);\n } else {\n afterLoad(theme);\n }\n\n function afterLoad(module) {\n if (_self.$themeId != theme)\n return cb && cb();\n if (!module || !module.cssClass)\n throw new Error(\"couldn't load module \" + theme + \" or it didn't call define\");\n dom.importCssString(\n module.cssText,\n module.cssClass,\n _self.container.ownerDocument\n );\n\n if (_self.theme)\n dom.removeCssClass(_self.container, _self.theme.cssClass);\n\n var padding = \"padding\" in module ? module.padding \n : \"padding\" in (_self.theme || {}) ? 4 : _self.$padding;\n if (_self.$padding && padding != _self.$padding)\n _self.setPadding(padding);\n _self.$theme = module.cssClass;\n\n _self.theme = module;\n dom.addCssClass(_self.container, module.cssClass);\n dom.setCssClass(_self.container, \"ace_dark\", module.isDark);\n if (_self.$size) {\n _self.$size.width = 0;\n _self.$updateSizeAsync();\n }\n\n _self._dispatchEvent('themeLoaded', {theme:module});\n cb && cb();\n }\n };\n this.getTheme = function() {\n return this.$themeId;\n };\n this.setStyle = function(style, include) {\n dom.setCssClass(this.container, style, include !== false);\n };\n this.unsetStyle = function(style) {\n dom.removeCssClass(this.container, style);\n };\n \n this.setCursorStyle = function(style) {\n if (this.scroller.style.cursor != style)\n this.scroller.style.cursor = style;\n };\n this.setMouseCursor = function(cursorStyle) {\n this.scroller.style.cursor = cursorStyle;\n };\n this.destroy = function() {\n this.$textLayer.destroy();\n this.$cursorLayer.destroy();\n };\n\n}).call(VirtualRenderer.prototype);\n\n\nconfig.defineOptions(VirtualRenderer.prototype, \"renderer\", {\n animatedScroll: {initialValue: false},\n showInvisibles: {\n set: function(value) {\n if (this.$textLayer.setShowInvisibles(value))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: false\n },\n showPrintMargin: {\n set: function() { this.$updatePrintMargin(); },\n initialValue: true\n },\n printMarginColumn: {\n set: function() { this.$updatePrintMargin(); },\n initialValue: 80\n },\n printMargin: {\n set: function(val) {\n if (typeof val == \"number\")\n this.$printMarginColumn = val;\n this.$showPrintMargin = !!val;\n this.$updatePrintMargin();\n },\n get: function() {\n return this.$showPrintMargin && this.$printMarginColumn; \n }\n },\n showGutter: {\n set: function(show){\n this.$gutter.style.display = show ? \"block\" : \"none\";\n this.$loop.schedule(this.CHANGE_FULL);\n this.onGutterResize();\n },\n initialValue: true\n },\n fadeFoldWidgets: {\n set: function(show) {\n dom.setCssClass(this.$gutter, \"ace_fade-fold-widgets\", show);\n },\n initialValue: false\n },\n showFoldWidgets: {\n set: function(show) {this.$gutterLayer.setShowFoldWidgets(show);},\n initialValue: true\n },\n showLineNumbers: {\n set: function(show) {\n this.$gutterLayer.setShowLineNumbers(show);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n displayIndentGuides: {\n set: function(show) {\n if (this.$textLayer.setDisplayIndentGuides(show))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: true\n },\n highlightGutterLine: {\n set: function(shouldHighlight) {\n if (!this.$gutterLineHighlight) {\n this.$gutterLineHighlight = dom.createElement(\"div\");\n this.$gutterLineHighlight.className = \"ace_gutter-active-line\";\n this.$gutter.appendChild(this.$gutterLineHighlight);\n return;\n }\n\n this.$gutterLineHighlight.style.display = shouldHighlight ? \"\" : \"none\";\n if (this.$cursorLayer.$pixelPos)\n this.$updateGutterLineHighlight();\n },\n initialValue: false,\n value: true\n },\n hScrollBarAlwaysVisible: {\n set: function(val) {\n if (!this.$hScrollBarAlwaysVisible || !this.$horizScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n vScrollBarAlwaysVisible: {\n set: function(val) {\n if (!this.$vScrollBarAlwaysVisible || !this.$vScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n fontSize: {\n set: function(size) {\n if (typeof size == \"number\")\n size = size + \"px\";\n this.container.style.fontSize = size;\n this.updateFontSize();\n },\n initialValue: 12\n },\n fontFamily: {\n set: function(name) {\n this.container.style.fontFamily = name;\n this.updateFontSize();\n }\n },\n maxLines: {\n set: function(val) {\n this.updateFull();\n }\n },\n minLines: {\n set: function(val) {\n this.updateFull();\n }\n },\n maxPixelHeight: {\n set: function(val) {\n this.updateFull();\n },\n initialValue: 0\n },\n scrollPastEnd: {\n set: function(val) {\n val = +val || 0;\n if (this.$scrollPastEnd == val)\n return;\n this.$scrollPastEnd = val;\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: 0,\n handlesSet: true\n },\n fixedWidthGutter: {\n set: function(val) {\n this.$gutterLayer.$fixedWidth = !!val;\n this.$loop.schedule(this.CHANGE_GUTTER);\n }\n },\n theme: {\n set: function(val) { this.setTheme(val); },\n get: function() { return this.$themeId || this.theme; },\n initialValue: \"./theme/textmate\",\n handlesSet: true\n }\n});\n\nexports.VirtualRenderer = VirtualRenderer;\n});\n\nace.define(\"ace/worker/worker_client\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/event_emitter\",\"ace/config\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar net = acequire(\"../lib/net\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\nvar config = acequire(\"../config\");\n\nfunction $workerBlob(workerUrl, mod) {\n var script = mod.src;\"importScripts('\" + net.qualifyURL(workerUrl) + \"');\";\n try {\n return new Blob([script], {\"type\": \"application/javascript\"});\n } catch (e) { // Backwards-compatibility\n var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;\n var blobBuilder = new BlobBuilder();\n blobBuilder.append(script);\n return blobBuilder.getBlob(\"application/javascript\");\n }\n}\n\nfunction createWorker(workerUrl, mod) {\n var blob = $workerBlob(workerUrl, mod);\n var URL = window.URL || window.webkitURL;\n var blobURL = URL.createObjectURL(blob);\n return new Worker(blobURL);\n}\n\nvar WorkerClient = function(topLevelNamespaces, mod, classname, workerUrl, importScripts) {\n this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.onMessage = this.onMessage.bind(this);\n if (acequire.nameToUrl && !acequire.toUrl)\n acequire.toUrl = acequire.nameToUrl;\n \n if (config.get(\"packaged\") || !acequire.toUrl) {\n workerUrl = workerUrl || config.moduleUrl(mod.id, \"worker\");\n } else {\n var normalizePath = this.$normalizePath;\n workerUrl = workerUrl || normalizePath(acequire.toUrl(\"ace/worker/worker.js\", null, \"_\"));\n\n var tlns = {};\n topLevelNamespaces.forEach(function(ns) {\n tlns[ns] = normalizePath(acequire.toUrl(ns, null, \"_\").replace(/(\\.js)?(\\?.*)?$/, \"\"));\n });\n }\n\n this.$worker = createWorker(workerUrl, mod);\n if (importScripts) {\n this.send(\"importScripts\", importScripts);\n }\n this.$worker.postMessage({\n init : true,\n tlns : tlns,\n module : mod.id,\n classname : classname\n });\n\n this.callbackId = 1;\n this.callbacks = {};\n\n this.$worker.onmessage = this.onMessage;\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n\n this.onMessage = function(e) {\n var msg = e.data;\n switch (msg.type) {\n case \"event\":\n this._signal(msg.name, {data: msg.data});\n break;\n case \"call\":\n var callback = this.callbacks[msg.id];\n if (callback) {\n callback(msg.data);\n delete this.callbacks[msg.id];\n }\n break;\n case \"error\":\n this.reportError(msg.data);\n break;\n case \"log\":\n window.console && console.log && console.log.apply(console, msg.data);\n break;\n }\n };\n \n this.reportError = function(err) {\n window.console && console.error && console.error(err);\n };\n\n this.$normalizePath = function(path) {\n return net.qualifyURL(path);\n };\n\n this.terminate = function() {\n this._signal(\"terminate\", {});\n this.deltaQueue = null;\n this.$worker.terminate();\n this.$worker = null;\n if (this.$doc)\n this.$doc.off(\"change\", this.changeListener);\n this.$doc = null;\n };\n\n this.send = function(cmd, args) {\n this.$worker.postMessage({command: cmd, args: args});\n };\n\n this.call = function(cmd, args, callback) {\n if (callback) {\n var id = this.callbackId++;\n this.callbacks[id] = callback;\n args.push(id);\n }\n this.send(cmd, args);\n };\n\n this.emit = function(event, data) {\n try {\n this.$worker.postMessage({event: event, data: {data: data.data}});\n }\n catch(ex) {\n console.error(ex.stack);\n }\n };\n\n this.attachToDocument = function(doc) {\n if (this.$doc)\n this.terminate();\n\n this.$doc = doc;\n this.call(\"setValue\", [doc.getValue()]);\n doc.on(\"change\", this.changeListener);\n };\n\n this.changeListener = function(delta) {\n if (!this.deltaQueue) {\n this.deltaQueue = [];\n setTimeout(this.$sendDeltaQueue, 0);\n }\n if (delta.action == \"insert\")\n this.deltaQueue.push(delta.start, delta.lines);\n else\n this.deltaQueue.push(delta.start, delta.end);\n };\n\n this.$sendDeltaQueue = function() {\n var q = this.deltaQueue;\n if (!q) return;\n this.deltaQueue = null;\n if (q.length > 50 && q.length > this.$doc.getLength() >> 1) {\n this.call(\"setValue\", [this.$doc.getValue()]);\n } else\n this.emit(\"change\", {data: q});\n };\n\n}).call(WorkerClient.prototype);\n\n\nvar UIWorkerClient = function(topLevelNamespaces, mod, classname) {\n this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.callbackId = 1;\n this.callbacks = {};\n this.messageBuffer = [];\n\n var main = null;\n var emitSync = false;\n var sender = Object.create(EventEmitter);\n var _self = this;\n\n this.$worker = {};\n this.$worker.terminate = function() {};\n this.$worker.postMessage = function(e) {\n _self.messageBuffer.push(e);\n if (main) {\n if (emitSync)\n setTimeout(processNext);\n else\n processNext();\n }\n };\n this.setEmitSync = function(val) { emitSync = val; };\n\n var processNext = function() {\n var msg = _self.messageBuffer.shift();\n if (msg.command)\n main[msg.command].apply(main, msg.args);\n else if (msg.event)\n sender._signal(msg.event, msg.data);\n };\n\n sender.postMessage = function(msg) {\n _self.onMessage({data: msg});\n };\n sender.callback = function(data, callbackId) {\n this.postMessage({type: \"call\", id: callbackId, data: data});\n };\n sender.emit = function(name, data) {\n this.postMessage({type: \"event\", name: name, data: data});\n };\n\n config.loadModule([\"worker\", mod], function(Main) {\n main = new Main[classname](sender);\n while (_self.messageBuffer.length)\n processNext();\n });\n};\n\nUIWorkerClient.prototype = WorkerClient.prototype;\n\nexports.UIWorkerClient = UIWorkerClient;\nexports.WorkerClient = WorkerClient;\nexports.createWorker = createWorker;\n\n\n});\n\nace.define(\"ace/placeholder\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/oop\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"./range\").Range;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar oop = acequire(\"./lib/oop\");\n\nvar PlaceHolder = function(session, length, pos, others, mainClass, othersClass) {\n var _self = this;\n this.length = length;\n this.session = session;\n this.doc = session.getDocument();\n this.mainClass = mainClass;\n this.othersClass = othersClass;\n this.$onUpdate = this.onUpdate.bind(this);\n this.doc.on(\"change\", this.$onUpdate);\n this.$others = others;\n \n this.$onCursorChange = function() {\n setTimeout(function() {\n _self.onCursorChange();\n });\n };\n \n this.$pos = pos;\n var undoStack = session.getUndoManager().$undoStack || session.getUndoManager().$undostack || {length: -1};\n this.$undoStackDepth = undoStack.length;\n this.setup();\n\n session.selection.on(\"changeCursor\", this.$onCursorChange);\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.setup = function() {\n var _self = this;\n var doc = this.doc;\n var session = this.session;\n \n this.selectionBefore = session.selection.toJSON();\n if (session.selection.inMultiSelectMode)\n session.selection.toSingleRange();\n\n this.pos = doc.createAnchor(this.$pos.row, this.$pos.column);\n var pos = this.pos;\n pos.$insertRight = true;\n pos.detach();\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + this.length), this.mainClass, null, false);\n this.others = [];\n this.$others.forEach(function(other) {\n var anchor = doc.createAnchor(other.row, other.column);\n anchor.$insertRight = true;\n anchor.detach();\n _self.others.push(anchor);\n });\n session.setUndoSelect(false);\n };\n this.showOtherMarkers = function() {\n if (this.othersActive) return;\n var session = this.session;\n var _self = this;\n this.othersActive = true;\n this.others.forEach(function(anchor) {\n anchor.markerId = session.addMarker(new Range(anchor.row, anchor.column, anchor.row, anchor.column+_self.length), _self.othersClass, null, false);\n });\n };\n this.hideOtherMarkers = function() {\n if (!this.othersActive) return;\n this.othersActive = false;\n for (var i = 0; i < this.others.length; i++) {\n this.session.removeMarker(this.others[i].markerId);\n }\n };\n this.onUpdate = function(delta) {\n if (this.$updating)\n return this.updateAnchors(delta);\n \n var range = delta;\n if (range.start.row !== range.end.row) return;\n if (range.start.row !== this.pos.row) return;\n this.$updating = true;\n var lengthDiff = delta.action === \"insert\" ? range.end.column - range.start.column : range.start.column - range.end.column;\n var inMainRange = range.start.column >= this.pos.column && range.start.column <= this.pos.column + this.length + 1;\n var distanceFromStart = range.start.column - this.pos.column;\n \n this.updateAnchors(delta);\n \n if (inMainRange)\n this.length += lengthDiff;\n\n if (inMainRange && !this.session.$fromUndo) {\n if (delta.action === 'insert') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = {row: otherPos.row, column: otherPos.column + distanceFromStart};\n this.doc.insertMergedLines(newPos, delta.lines);\n }\n } else if (delta.action === 'remove') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = {row: otherPos.row, column: otherPos.column + distanceFromStart};\n this.doc.remove(new Range(newPos.row, newPos.column, newPos.row, newPos.column - lengthDiff));\n }\n }\n }\n \n this.$updating = false;\n this.updateMarkers();\n };\n \n this.updateAnchors = function(delta) {\n this.pos.onChange(delta);\n for (var i = this.others.length; i--;)\n this.others[i].onChange(delta);\n this.updateMarkers();\n };\n \n this.updateMarkers = function() {\n if (this.$updating)\n return;\n var _self = this;\n var session = this.session;\n var updateMarker = function(pos, className) {\n session.removeMarker(pos.markerId);\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column+_self.length), className, null, false);\n };\n updateMarker(this.pos, this.mainClass);\n for (var i = this.others.length; i--;)\n updateMarker(this.others[i], this.othersClass);\n };\n\n this.onCursorChange = function(event) {\n if (this.$updating || !this.session) return;\n var pos = this.session.selection.getCursor();\n if (pos.row === this.pos.row && pos.column >= this.pos.column && pos.column <= this.pos.column + this.length) {\n this.showOtherMarkers();\n this._emit(\"cursorEnter\", event);\n } else {\n this.hideOtherMarkers();\n this._emit(\"cursorLeave\", event);\n }\n }; \n this.detach = function() {\n this.session.removeMarker(this.pos && this.pos.markerId);\n this.hideOtherMarkers();\n this.doc.removeEventListener(\"change\", this.$onUpdate);\n this.session.selection.removeEventListener(\"changeCursor\", this.$onCursorChange);\n this.session.setUndoSelect(true);\n this.session = null;\n };\n this.cancel = function() {\n if (this.$undoStackDepth === -1)\n return;\n var undoManager = this.session.getUndoManager();\n var undosRequired = (undoManager.$undoStack || undoManager.$undostack).length - this.$undoStackDepth;\n for (var i = 0; i < undosRequired; i++) {\n undoManager.undo(true);\n }\n if (this.selectionBefore)\n this.session.selection.fromJSON(this.selectionBefore);\n };\n}).call(PlaceHolder.prototype);\n\n\nexports.PlaceHolder = PlaceHolder;\n});\n\nace.define(\"ace/mouse/multi_select_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\n\nfunction onMouseDown(e) {\n var ev = e.domEvent;\n var alt = ev.altKey;\n var shift = ev.shiftKey;\n var ctrl = ev.ctrlKey;\n var accel = e.getAccelKey();\n var button = e.getButton();\n \n if (ctrl && useragent.isMac)\n button = ev.button;\n\n if (e.editor.inMultiSelectMode && button == 2) {\n e.editor.textInput.onContextMenu(e.domEvent);\n return;\n }\n \n if (!ctrl && !alt && !accel) {\n if (button === 0 && e.editor.inMultiSelectMode)\n e.editor.exitMultiSelectMode();\n return;\n }\n \n if (button !== 0)\n return;\n\n var editor = e.editor;\n var selection = editor.selection;\n var isMultiSelect = editor.inMultiSelectMode;\n var pos = e.getDocumentPosition();\n var cursor = selection.getCursor();\n var inSelection = e.inSelection() || (selection.isEmpty() && isSamePoint(pos, cursor));\n\n var mouseX = e.x, mouseY = e.y;\n var onMouseSelection = function(e) {\n mouseX = e.clientX;\n mouseY = e.clientY;\n };\n \n var session = editor.session;\n var screenAnchor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var screenCursor = screenAnchor;\n \n var selectionMode;\n if (editor.$mouseHandler.$enableJumpToDef) {\n if (ctrl && alt || accel && alt)\n selectionMode = shift ? \"block\" : \"add\";\n else if (alt && editor.$blockSelectEnabled)\n selectionMode = \"block\";\n } else {\n if (accel && !alt) {\n selectionMode = \"add\";\n if (!isMultiSelect && shift)\n return;\n } else if (alt && editor.$blockSelectEnabled) {\n selectionMode = \"block\";\n }\n }\n \n if (selectionMode && useragent.isMac && ev.ctrlKey) {\n editor.$mouseHandler.cancelContextMenu();\n }\n\n if (selectionMode == \"add\") {\n if (!isMultiSelect && inSelection)\n return; // dragging\n\n if (!isMultiSelect) {\n var range = selection.toOrientedRange();\n editor.addSelectionMarker(range);\n }\n\n var oldRange = selection.rangeList.rangeAtPoint(pos);\n \n \n editor.$blockScrolling++;\n editor.inVirtualSelectionMode = true;\n \n if (shift) {\n oldRange = null;\n range = selection.ranges[0] || range;\n editor.removeSelectionMarker(range);\n }\n editor.once(\"mouseup\", function() {\n var tmpSel = selection.toOrientedRange();\n\n if (oldRange && tmpSel.isEmpty() && isSamePoint(oldRange.cursor, tmpSel.cursor))\n selection.substractPoint(tmpSel.cursor);\n else {\n if (shift) {\n selection.substractPoint(range.cursor);\n } else if (range) {\n editor.removeSelectionMarker(range);\n selection.addRange(range);\n }\n selection.addRange(tmpSel);\n }\n editor.$blockScrolling--;\n editor.inVirtualSelectionMode = false;\n });\n\n } else if (selectionMode == \"block\") {\n e.stop();\n editor.inVirtualSelectionMode = true; \n var initialRange;\n var rectSel = [];\n var blockSelect = function() {\n var newCursor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var cursor = session.screenToDocumentPosition(newCursor.row, newCursor.column, newCursor.offsetX);\n\n if (isSamePoint(screenCursor, newCursor) && isSamePoint(cursor, selection.lead))\n return;\n screenCursor = newCursor;\n \n editor.$blockScrolling++;\n editor.selection.moveToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n\n editor.removeSelectionMarkers(rectSel);\n rectSel = selection.rectangularRangeBlock(screenCursor, screenAnchor);\n if (editor.$mouseHandler.$clickSelection && rectSel.length == 1 && rectSel[0].isEmpty())\n rectSel[0] = editor.$mouseHandler.$clickSelection.clone();\n rectSel.forEach(editor.addSelectionMarker, editor);\n editor.updateSelectionMarkers();\n editor.$blockScrolling--;\n };\n editor.$blockScrolling++;\n if (isMultiSelect && !accel) {\n selection.toSingleRange();\n } else if (!isMultiSelect && accel) {\n initialRange = selection.toOrientedRange();\n editor.addSelectionMarker(initialRange);\n }\n \n if (shift)\n screenAnchor = session.documentToScreenPosition(selection.lead); \n else\n selection.moveToPosition(pos);\n editor.$blockScrolling--;\n \n screenCursor = {row: -1, column: -1};\n\n var onMouseSelectionEnd = function(e) {\n clearInterval(timerId);\n editor.removeSelectionMarkers(rectSel);\n if (!rectSel.length)\n rectSel = [selection.toOrientedRange()];\n editor.$blockScrolling++;\n if (initialRange) {\n editor.removeSelectionMarker(initialRange);\n selection.toSingleRange(initialRange);\n }\n for (var i = 0; i < rectSel.length; i++)\n selection.addRange(rectSel[i]);\n editor.inVirtualSelectionMode = false;\n editor.$mouseHandler.$clickSelection = null;\n editor.$blockScrolling--;\n };\n\n var onSelectionInterval = blockSelect;\n\n event.capture(editor.container, onMouseSelection, onMouseSelectionEnd);\n var timerId = setInterval(function() {onSelectionInterval();}, 20);\n\n return e.preventDefault();\n }\n}\n\n\nexports.onMouseDown = onMouseDown;\n\n});\n\nace.define(\"ace/commands/multi_select_commands\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\"], function(acequire, exports, module) {\nexports.defaultCommands = [{\n name: \"addCursorAbove\",\n exec: function(editor) { editor.selectMoreLines(-1); },\n bindKey: {win: \"Ctrl-Alt-Up\", mac: \"Ctrl-Alt-Up\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"addCursorBelow\",\n exec: function(editor) { editor.selectMoreLines(1); },\n bindKey: {win: \"Ctrl-Alt-Down\", mac: \"Ctrl-Alt-Down\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"addCursorAboveSkipCurrent\",\n exec: function(editor) { editor.selectMoreLines(-1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Up\", mac: \"Ctrl-Alt-Shift-Up\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"addCursorBelowSkipCurrent\",\n exec: function(editor) { editor.selectMoreLines(1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Down\", mac: \"Ctrl-Alt-Shift-Down\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectMoreBefore\",\n exec: function(editor) { editor.selectMore(-1); },\n bindKey: {win: \"Ctrl-Alt-Left\", mac: \"Ctrl-Alt-Left\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectMoreAfter\",\n exec: function(editor) { editor.selectMore(1); },\n bindKey: {win: \"Ctrl-Alt-Right\", mac: \"Ctrl-Alt-Right\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectNextBefore\",\n exec: function(editor) { editor.selectMore(-1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Left\", mac: \"Ctrl-Alt-Shift-Left\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectNextAfter\",\n exec: function(editor) { editor.selectMore(1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Right\", mac: \"Ctrl-Alt-Shift-Right\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"splitIntoLines\",\n exec: function(editor) { editor.multiSelect.splitIntoLines(); },\n bindKey: {win: \"Ctrl-Alt-L\", mac: \"Ctrl-Alt-L\"},\n readOnly: true\n}, {\n name: \"alignCursors\",\n exec: function(editor) { editor.alignCursors(); },\n bindKey: {win: \"Ctrl-Alt-A\", mac: \"Ctrl-Alt-A\"},\n scrollIntoView: \"cursor\"\n}, {\n name: \"findAll\",\n exec: function(editor) { editor.findAll(); },\n bindKey: {win: \"Ctrl-Alt-K\", mac: \"Ctrl-Alt-G\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}];\nexports.multiSelectCommands = [{\n name: \"singleSelection\",\n bindKey: \"esc\",\n exec: function(editor) { editor.exitMultiSelectMode(); },\n scrollIntoView: \"cursor\",\n readOnly: true,\n isAvailable: function(editor) {return editor && editor.inMultiSelectMode;}\n}];\n\nvar HashHandler = acequire(\"../keyboard/hash_handler\").HashHandler;\nexports.keyboardHandler = new HashHandler(exports.multiSelectCommands);\n\n});\n\nace.define(\"ace/multi_select\",[\"require\",\"exports\",\"module\",\"ace/range_list\",\"ace/range\",\"ace/selection\",\"ace/mouse/multi_select_handler\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/commands/multi_select_commands\",\"ace/search\",\"ace/edit_session\",\"ace/editor\",\"ace/config\"], function(acequire, exports, module) {\n\nvar RangeList = acequire(\"./range_list\").RangeList;\nvar Range = acequire(\"./range\").Range;\nvar Selection = acequire(\"./selection\").Selection;\nvar onMouseDown = acequire(\"./mouse/multi_select_handler\").onMouseDown;\nvar event = acequire(\"./lib/event\");\nvar lang = acequire(\"./lib/lang\");\nvar commands = acequire(\"./commands/multi_select_commands\");\nexports.commands = commands.defaultCommands.concat(commands.multiSelectCommands);\nvar Search = acequire(\"./search\").Search;\nvar search = new Search();\n\nfunction find(session, needle, dir) {\n search.$options.wrap = true;\n search.$options.needle = needle;\n search.$options.backwards = dir == -1;\n return search.find(session);\n}\nvar EditSession = acequire(\"./edit_session\").EditSession;\n(function() {\n this.getSelectionMarkers = function() {\n return this.$selectionMarkers;\n };\n}).call(EditSession.prototype);\n(function() {\n this.ranges = null;\n this.rangeList = null;\n this.addRange = function(range, $blockChangeEvents) {\n if (!range)\n return;\n\n if (!this.inMultiSelectMode && this.rangeCount === 0) {\n var oldRange = this.toOrientedRange();\n this.rangeList.add(oldRange);\n this.rangeList.add(range);\n if (this.rangeList.ranges.length != 2) {\n this.rangeList.removeAll();\n return $blockChangeEvents || this.fromOrientedRange(range);\n }\n this.rangeList.removeAll();\n this.rangeList.add(oldRange);\n this.$onAddRange(oldRange);\n }\n\n if (!range.cursor)\n range.cursor = range.end;\n\n var removed = this.rangeList.add(range);\n\n this.$onAddRange(range);\n\n if (removed.length)\n this.$onRemoveRange(removed);\n\n if (this.rangeCount > 1 && !this.inMultiSelectMode) {\n this._signal(\"multiSelect\");\n this.inMultiSelectMode = true;\n this.session.$undoSelect = false;\n this.rangeList.attach(this.session);\n }\n\n return $blockChangeEvents || this.fromOrientedRange(range);\n };\n\n this.toSingleRange = function(range) {\n range = range || this.ranges[0];\n var removed = this.rangeList.removeAll();\n if (removed.length)\n this.$onRemoveRange(removed);\n\n range && this.fromOrientedRange(range);\n };\n this.substractPoint = function(pos) {\n var removed = this.rangeList.substractPoint(pos);\n if (removed) {\n this.$onRemoveRange(removed);\n return removed[0];\n }\n };\n this.mergeOverlappingRanges = function() {\n var removed = this.rangeList.merge();\n if (removed.length)\n this.$onRemoveRange(removed);\n else if(this.ranges[0])\n this.fromOrientedRange(this.ranges[0]);\n };\n\n this.$onAddRange = function(range) {\n this.rangeCount = this.rangeList.ranges.length;\n this.ranges.unshift(range);\n this._signal(\"addRange\", {range: range});\n };\n\n this.$onRemoveRange = function(removed) {\n this.rangeCount = this.rangeList.ranges.length;\n if (this.rangeCount == 1 && this.inMultiSelectMode) {\n var lastRange = this.rangeList.ranges.pop();\n removed.push(lastRange);\n this.rangeCount = 0;\n }\n\n for (var i = removed.length; i--; ) {\n var index = this.ranges.indexOf(removed[i]);\n this.ranges.splice(index, 1);\n }\n\n this._signal(\"removeRange\", {ranges: removed});\n\n if (this.rangeCount === 0 && this.inMultiSelectMode) {\n this.inMultiSelectMode = false;\n this._signal(\"singleSelect\");\n this.session.$undoSelect = true;\n this.rangeList.detach(this.session);\n }\n\n lastRange = lastRange || this.ranges[0];\n if (lastRange && !lastRange.isEqual(this.getRange()))\n this.fromOrientedRange(lastRange);\n };\n this.$initRangeList = function() {\n if (this.rangeList)\n return;\n\n this.rangeList = new RangeList();\n this.ranges = [];\n this.rangeCount = 0;\n };\n this.getAllRanges = function() {\n return this.rangeCount ? this.rangeList.ranges.concat() : [this.getRange()];\n };\n\n this.splitIntoLines = function () {\n if (this.rangeCount > 1) {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n } else {\n var range = this.getRange();\n var isBackwards = this.isBackwards();\n var startRow = range.start.row;\n var endRow = range.end.row;\n if (startRow == endRow) {\n if (isBackwards)\n var start = range.end, end = range.start;\n else\n var start = range.start, end = range.end;\n \n this.addRange(Range.fromPoints(end, end));\n this.addRange(Range.fromPoints(start, start));\n return;\n }\n\n var rectSel = [];\n var r = this.getLineRange(startRow, true);\n r.start.column = range.start.column;\n rectSel.push(r);\n\n for (var i = startRow + 1; i < endRow; i++)\n rectSel.push(this.getLineRange(i, true));\n\n r = this.getLineRange(endRow, true);\n r.end.column = range.end.column;\n rectSel.push(r);\n\n rectSel.forEach(this.addRange, this);\n }\n };\n this.toggleBlockSelection = function () {\n if (this.rangeCount > 1) {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n } else {\n var cursor = this.session.documentToScreenPosition(this.selectionLead);\n var anchor = this.session.documentToScreenPosition(this.selectionAnchor);\n\n var rectSel = this.rectangularRangeBlock(cursor, anchor);\n rectSel.forEach(this.addRange, this);\n }\n };\n this.rectangularRangeBlock = function(screenCursor, screenAnchor, includeEmptyLines) {\n var rectSel = [];\n\n var xBackwards = screenCursor.column < screenAnchor.column;\n if (xBackwards) {\n var startColumn = screenCursor.column;\n var endColumn = screenAnchor.column;\n var startOffsetX = screenCursor.offsetX;\n var endOffsetX = screenAnchor.offsetX;\n } else {\n var startColumn = screenAnchor.column;\n var endColumn = screenCursor.column;\n var startOffsetX = screenAnchor.offsetX;\n var endOffsetX = screenCursor.offsetX;\n }\n\n var yBackwards = screenCursor.row < screenAnchor.row;\n if (yBackwards) {\n var startRow = screenCursor.row;\n var endRow = screenAnchor.row;\n } else {\n var startRow = screenAnchor.row;\n var endRow = screenCursor.row;\n }\n\n if (startColumn < 0)\n startColumn = 0;\n if (startRow < 0)\n startRow = 0;\n\n if (startRow == endRow)\n includeEmptyLines = true;\n\n for (var row = startRow; row <= endRow; row++) {\n var range = Range.fromPoints(\n this.session.screenToDocumentPosition(row, startColumn, startOffsetX),\n this.session.screenToDocumentPosition(row, endColumn, endOffsetX)\n );\n if (range.isEmpty()) {\n if (docEnd && isSamePoint(range.end, docEnd))\n break;\n var docEnd = range.end;\n }\n range.cursor = xBackwards ? range.start : range.end;\n rectSel.push(range);\n }\n\n if (yBackwards)\n rectSel.reverse();\n\n if (!includeEmptyLines) {\n var end = rectSel.length - 1;\n while (rectSel[end].isEmpty() && end > 0)\n end--;\n if (end > 0) {\n var start = 0;\n while (rectSel[start].isEmpty())\n start++;\n }\n for (var i = end; i >= start; i--) {\n if (rectSel[i].isEmpty())\n rectSel.splice(i, 1);\n }\n }\n\n return rectSel;\n };\n}).call(Selection.prototype);\nvar Editor = acequire(\"./editor\").Editor;\n(function() {\n this.updateSelectionMarkers = function() {\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.addSelectionMarker = function(orientedRange) {\n if (!orientedRange.cursor)\n orientedRange.cursor = orientedRange.end;\n\n var style = this.getSelectionStyle();\n orientedRange.marker = this.session.addMarker(orientedRange, \"ace_selection\", style);\n\n this.session.$selectionMarkers.push(orientedRange);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n return orientedRange;\n };\n this.removeSelectionMarker = function(range) {\n if (!range.marker)\n return;\n this.session.removeMarker(range.marker);\n var index = this.session.$selectionMarkers.indexOf(range);\n if (index != -1)\n this.session.$selectionMarkers.splice(index, 1);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n };\n\n this.removeSelectionMarkers = function(ranges) {\n var markerList = this.session.$selectionMarkers;\n for (var i = ranges.length; i--; ) {\n var range = ranges[i];\n if (!range.marker)\n continue;\n this.session.removeMarker(range.marker);\n var index = markerList.indexOf(range);\n if (index != -1)\n markerList.splice(index, 1);\n }\n this.session.selectionMarkerCount = markerList.length;\n };\n\n this.$onAddRange = function(e) {\n this.addSelectionMarker(e.range);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n\n this.$onRemoveRange = function(e) {\n this.removeSelectionMarkers(e.ranges);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n\n this.$onMultiSelect = function(e) {\n if (this.inMultiSelectMode)\n return;\n this.inMultiSelectMode = true;\n\n this.setStyle(\"ace_multiselect\");\n this.keyBinding.addKeyboardHandler(commands.keyboardHandler);\n this.commands.setDefaultHandler(\"exec\", this.$onMultiSelectExec);\n\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n\n this.$onSingleSelect = function(e) {\n if (this.session.multiSelect.inVirtualMode)\n return;\n this.inMultiSelectMode = false;\n\n this.unsetStyle(\"ace_multiselect\");\n this.keyBinding.removeKeyboardHandler(commands.keyboardHandler);\n\n this.commands.removeDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n this._emit(\"changeSelection\");\n };\n\n this.$onMultiSelectExec = function(e) {\n var command = e.command;\n var editor = e.editor;\n if (!editor.multiSelect)\n return;\n if (!command.multiSelectAction) {\n var result = command.exec(editor, e.args || {});\n editor.multiSelect.addRange(editor.multiSelect.toOrientedRange());\n editor.multiSelect.mergeOverlappingRanges();\n } else if (command.multiSelectAction == \"forEach\") {\n result = editor.forEachSelection(command, e.args);\n } else if (command.multiSelectAction == \"forEachLine\") {\n result = editor.forEachSelection(command, e.args, true);\n } else if (command.multiSelectAction == \"single\") {\n editor.exitMultiSelectMode();\n result = command.exec(editor, e.args || {});\n } else {\n result = command.multiSelectAction(editor, e.args || {});\n }\n return result;\n }; \n this.forEachSelection = function(cmd, args, options) {\n if (this.inVirtualSelectionMode)\n return;\n var keepOrder = options && options.keepOrder;\n var $byLines = options == true || options && options.$byLines;\n var session = this.session;\n var selection = this.selection;\n var rangeList = selection.rangeList;\n var ranges = (keepOrder ? selection : rangeList).ranges;\n var result;\n \n if (!ranges.length)\n return cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n \n var reg = selection._eventRegistry;\n selection._eventRegistry = {};\n\n var tmpSel = new Selection(session);\n this.inVirtualSelectionMode = true;\n for (var i = ranges.length; i--;) {\n if ($byLines) {\n while (i > 0 && ranges[i].start.row == ranges[i - 1].end.row)\n i--;\n }\n tmpSel.fromOrientedRange(ranges[i]);\n tmpSel.index = i;\n this.selection = session.selection = tmpSel;\n var cmdResult = cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n if (!result && cmdResult !== undefined)\n result = cmdResult;\n tmpSel.toOrientedRange(ranges[i]);\n }\n tmpSel.detach();\n\n this.selection = session.selection = selection;\n this.inVirtualSelectionMode = false;\n selection._eventRegistry = reg;\n selection.mergeOverlappingRanges();\n \n var anim = this.renderer.$scrollAnimation;\n this.onCursorChange();\n this.onSelectionChange();\n if (anim && anim.from == anim.to)\n this.renderer.animateScrolling(anim.from);\n \n return result;\n };\n this.exitMultiSelectMode = function() {\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode)\n return;\n this.multiSelect.toSingleRange();\n };\n\n this.getSelectedText = function() {\n var text = \"\";\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var ranges = this.multiSelect.rangeList.ranges;\n var buf = [];\n for (var i = 0; i < ranges.length; i++) {\n buf.push(this.session.getTextRange(ranges[i]));\n }\n var nl = this.session.getDocument().getNewLineCharacter();\n text = buf.join(nl);\n if (text.length == (buf.length - 1) * nl.length)\n text = \"\";\n } else if (!this.selection.isEmpty()) {\n text = this.session.getTextRange(this.getSelectionRange());\n }\n return text;\n };\n \n this.$checkMultiselectChange = function(e, anchor) {\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var range = this.multiSelect.ranges[0];\n if (this.multiSelect.isEmpty() && anchor == this.multiSelect.anchor)\n return;\n var pos = anchor == this.multiSelect.anchor\n ? range.cursor == range.start ? range.end : range.start\n : range.cursor;\n if (pos.row != anchor.row \n || this.session.$clipPositionToDocument(pos.row, pos.column).column != anchor.column)\n this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange());\n }\n };\n this.findAll = function(needle, options, additive) {\n options = options || {};\n options.needle = needle || options.needle;\n if (options.needle == undefined) {\n var range = this.selection.isEmpty()\n ? this.selection.getWordRange()\n : this.selection.getRange();\n options.needle = this.session.getTextRange(range);\n } \n this.$search.set(options);\n \n var ranges = this.$search.findAll(this.session);\n if (!ranges.length)\n return 0;\n\n this.$blockScrolling += 1;\n var selection = this.multiSelect;\n\n if (!additive)\n selection.toSingleRange(ranges[0]);\n\n for (var i = ranges.length; i--; )\n selection.addRange(ranges[i], true);\n if (range && selection.rangeList.rangeAtPoint(range.start))\n selection.addRange(range, true);\n \n this.$blockScrolling -= 1;\n\n return ranges.length;\n };\n this.selectMoreLines = function(dir, skip) {\n var range = this.selection.toOrientedRange();\n var isBackwards = range.cursor == range.end;\n\n var screenLead = this.session.documentToScreenPosition(range.cursor);\n if (this.selection.$desiredColumn)\n screenLead.column = this.selection.$desiredColumn;\n\n var lead = this.session.screenToDocumentPosition(screenLead.row + dir, screenLead.column);\n\n if (!range.isEmpty()) {\n var screenAnchor = this.session.documentToScreenPosition(isBackwards ? range.end : range.start);\n var anchor = this.session.screenToDocumentPosition(screenAnchor.row + dir, screenAnchor.column);\n } else {\n var anchor = lead;\n }\n\n if (isBackwards) {\n var newRange = Range.fromPoints(lead, anchor);\n newRange.cursor = newRange.start;\n } else {\n var newRange = Range.fromPoints(anchor, lead);\n newRange.cursor = newRange.end;\n }\n\n newRange.desiredColumn = screenLead.column;\n if (!this.selection.inMultiSelectMode) {\n this.selection.addRange(range);\n } else {\n if (skip)\n var toRemove = range.cursor;\n }\n\n this.selection.addRange(newRange);\n if (toRemove)\n this.selection.substractPoint(toRemove);\n };\n this.transposeSelections = function(dir) {\n var session = this.session;\n var sel = session.multiSelect;\n var all = sel.ranges;\n\n for (var i = all.length; i--; ) {\n var range = all[i];\n if (range.isEmpty()) {\n var tmp = session.getWordRange(range.start.row, range.start.column);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n range.end.row = tmp.end.row;\n range.end.column = tmp.end.column;\n }\n }\n sel.mergeOverlappingRanges();\n\n var words = [];\n for (var i = all.length; i--; ) {\n var range = all[i];\n words.unshift(session.getTextRange(range));\n }\n\n if (dir < 0)\n words.unshift(words.pop());\n else\n words.push(words.shift());\n\n for (var i = all.length; i--; ) {\n var range = all[i];\n var tmp = range.clone();\n session.replace(range, words[i]);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n }\n };\n this.selectMore = function(dir, skip, stopAtFirst) {\n var session = this.session;\n var sel = session.multiSelect;\n\n var range = sel.toOrientedRange();\n if (range.isEmpty()) {\n range = session.getWordRange(range.start.row, range.start.column);\n range.cursor = dir == -1 ? range.start : range.end;\n this.multiSelect.addRange(range);\n if (stopAtFirst)\n return;\n }\n var needle = session.getTextRange(range);\n\n var newRange = find(session, needle, dir);\n if (newRange) {\n newRange.cursor = dir == -1 ? newRange.start : newRange.end;\n this.$blockScrolling += 1;\n this.session.unfold(newRange);\n this.multiSelect.addRange(newRange);\n this.$blockScrolling -= 1;\n this.renderer.scrollCursorIntoView(null, 0.5);\n }\n if (skip)\n this.multiSelect.substractPoint(range.cursor);\n };\n this.alignCursors = function() {\n var session = this.session;\n var sel = session.multiSelect;\n var ranges = sel.ranges;\n var row = -1;\n var sameRowRanges = ranges.filter(function(r) {\n if (r.cursor.row == row)\n return true;\n row = r.cursor.row;\n });\n \n if (!ranges.length || sameRowRanges.length == ranges.length - 1) {\n var range = this.selection.getRange();\n var fr = range.start.row, lr = range.end.row;\n var guessRange = fr == lr;\n if (guessRange) {\n var max = this.session.getLength();\n var line;\n do {\n line = this.session.getLine(lr);\n } while (/[=:]/.test(line) && ++lr < max);\n do {\n line = this.session.getLine(fr);\n } while (/[=:]/.test(line) && --fr > 0);\n \n if (fr < 0) fr = 0;\n if (lr >= max) lr = max - 1;\n }\n var lines = this.session.removeFullLines(fr, lr);\n lines = this.$reAlignText(lines, guessRange);\n this.session.insert({row: fr, column: 0}, lines.join(\"\\n\") + \"\\n\");\n if (!guessRange) {\n range.start.column = 0;\n range.end.column = lines[lines.length - 1].length;\n }\n this.selection.setRange(range);\n } else {\n sameRowRanges.forEach(function(r) {\n sel.substractPoint(r.cursor);\n });\n\n var maxCol = 0;\n var minSpace = Infinity;\n var spaceOffsets = ranges.map(function(r) {\n var p = r.cursor;\n var line = session.getLine(p.row);\n var spaceOffset = line.substr(p.column).search(/\\S/g);\n if (spaceOffset == -1)\n spaceOffset = 0;\n\n if (p.column > maxCol)\n maxCol = p.column;\n if (spaceOffset < minSpace)\n minSpace = spaceOffset;\n return spaceOffset;\n });\n ranges.forEach(function(r, i) {\n var p = r.cursor;\n var l = maxCol - p.column;\n var d = spaceOffsets[i] - minSpace;\n if (l > d)\n session.insert(p, lang.stringRepeat(\" \", l - d));\n else\n session.remove(new Range(p.row, p.column, p.row, p.column - l + d));\n\n r.start.column = r.end.column = maxCol;\n r.start.row = r.end.row = p.row;\n r.cursor = r.end;\n });\n sel.fromOrientedRange(ranges[0]);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n }\n };\n\n this.$reAlignText = function(lines, forceLeft) {\n var isLeftAligned = true, isRightAligned = true;\n var startW, textW, endW;\n\n return lines.map(function(line) {\n var m = line.match(/(\\s*)(.*?)(\\s*)([=:].*)/);\n if (!m)\n return [line];\n\n if (startW == null) {\n startW = m[1].length;\n textW = m[2].length;\n endW = m[3].length;\n return m;\n }\n\n if (startW + textW + endW != m[1].length + m[2].length + m[3].length)\n isRightAligned = false;\n if (startW != m[1].length)\n isLeftAligned = false;\n\n if (startW > m[1].length)\n startW = m[1].length;\n if (textW < m[2].length)\n textW = m[2].length;\n if (endW > m[3].length)\n endW = m[3].length;\n\n return m;\n }).map(forceLeft ? alignLeft :\n isLeftAligned ? isRightAligned ? alignRight : alignLeft : unAlign);\n\n function spaces(n) {\n return lang.stringRepeat(\" \", n);\n }\n\n function alignLeft(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(textW - m[2].length + endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function alignRight(m) {\n return !m[2] ? m[0] : spaces(startW + textW - m[2].length) + m[2]\n + spaces(endW, \" \")\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function unAlign(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n };\n}).call(Editor.prototype);\n\n\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nexports.onSessionChange = function(e) {\n var session = e.session;\n if (session && !session.multiSelect) {\n session.$selectionMarkers = [];\n session.selection.$initRangeList();\n session.multiSelect = session.selection;\n }\n this.multiSelect = session && session.multiSelect;\n\n var oldSession = e.oldSession;\n if (oldSession) {\n oldSession.multiSelect.off(\"addRange\", this.$onAddRange);\n oldSession.multiSelect.off(\"removeRange\", this.$onRemoveRange);\n oldSession.multiSelect.off(\"multiSelect\", this.$onMultiSelect);\n oldSession.multiSelect.off(\"singleSelect\", this.$onSingleSelect);\n oldSession.multiSelect.lead.off(\"change\", this.$checkMultiselectChange);\n oldSession.multiSelect.anchor.off(\"change\", this.$checkMultiselectChange);\n }\n\n if (session) {\n session.multiSelect.on(\"addRange\", this.$onAddRange);\n session.multiSelect.on(\"removeRange\", this.$onRemoveRange);\n session.multiSelect.on(\"multiSelect\", this.$onMultiSelect);\n session.multiSelect.on(\"singleSelect\", this.$onSingleSelect);\n session.multiSelect.lead.on(\"change\", this.$checkMultiselectChange);\n session.multiSelect.anchor.on(\"change\", this.$checkMultiselectChange);\n }\n\n if (session && this.inMultiSelectMode != session.selection.inMultiSelectMode) {\n if (session.selection.inMultiSelectMode)\n this.$onMultiSelect();\n else\n this.$onSingleSelect();\n }\n};\nfunction MultiSelect(editor) {\n if (editor.$multiselectOnSessionChange)\n return;\n editor.$onAddRange = editor.$onAddRange.bind(editor);\n editor.$onRemoveRange = editor.$onRemoveRange.bind(editor);\n editor.$onMultiSelect = editor.$onMultiSelect.bind(editor);\n editor.$onSingleSelect = editor.$onSingleSelect.bind(editor);\n editor.$multiselectOnSessionChange = exports.onSessionChange.bind(editor);\n editor.$checkMultiselectChange = editor.$checkMultiselectChange.bind(editor);\n\n editor.$multiselectOnSessionChange(editor);\n editor.on(\"changeSession\", editor.$multiselectOnSessionChange);\n\n editor.on(\"mousedown\", onMouseDown);\n editor.commands.addCommands(commands.defaultCommands);\n\n addAltCursorListeners(editor);\n}\n\nfunction addAltCursorListeners(editor){\n var el = editor.textInput.getElement();\n var altCursor = false;\n event.addListener(el, \"keydown\", function(e) {\n var altDown = e.keyCode == 18 && !(e.ctrlKey || e.shiftKey || e.metaKey);\n if (editor.$blockSelectEnabled && altDown) {\n if (!altCursor) {\n editor.renderer.setMouseCursor(\"crosshair\");\n altCursor = true;\n }\n } else if (altCursor) {\n reset();\n }\n });\n\n event.addListener(el, \"keyup\", reset);\n event.addListener(el, \"blur\", reset);\n function reset(e) {\n if (altCursor) {\n editor.renderer.setMouseCursor(\"\");\n altCursor = false;\n }\n }\n}\n\nexports.MultiSelect = MultiSelect;\n\n\nacequire(\"./config\").defineOptions(Editor.prototype, \"editor\", {\n enableMultiselect: {\n set: function(val) {\n MultiSelect(this);\n if (val) {\n this.on(\"changeSession\", this.$multiselectOnSessionChange);\n this.on(\"mousedown\", onMouseDown);\n } else {\n this.off(\"changeSession\", this.$multiselectOnSessionChange);\n this.off(\"mousedown\", onMouseDown);\n }\n },\n value: true\n },\n enableBlockSelect: {\n set: function(val) {\n this.$blockSelectEnabled = val;\n },\n value: true\n }\n});\n\n\n\n});\n\nace.define(\"ace/mode/folding/fold_mode\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\n\n(function() {\n\n this.foldingStartMarker = null;\n this.foldingStopMarker = null;\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.foldingStartMarker.test(line))\n return \"start\";\n if (foldStyle == \"markbeginend\"\n && this.foldingStopMarker\n && this.foldingStopMarker.test(line))\n return \"end\";\n return \"\";\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row) {\n return null;\n };\n\n this.indentationBlock = function(session, row, column) {\n var re = /\\S/;\n var line = session.getLine(row);\n var startLevel = line.search(re);\n if (startLevel == -1)\n return;\n\n var startColumn = column || line.length;\n var maxRow = session.getLength();\n var startRow = row;\n var endRow = row;\n\n while (++row < maxRow) {\n var level = session.getLine(row).search(re);\n\n if (level == -1)\n continue;\n\n if (level <= startLevel)\n break;\n\n endRow = row;\n }\n\n if (endRow > startRow) {\n var endColumn = session.getLine(endRow).length;\n return new Range(startRow, startColumn, endRow, endColumn);\n }\n };\n\n this.openingBracketBlock = function(session, bracket, row, column, typeRe) {\n var start = {row: row, column: column + 1};\n var end = session.$findClosingBracket(bracket, start, typeRe);\n if (!end)\n return;\n\n var fw = session.foldWidgets[end.row];\n if (fw == null)\n fw = session.getFoldWidget(end.row);\n\n if (fw == \"start\" && end.row > start.row) {\n end.row --;\n end.column = session.getLine(end.row).length;\n }\n return Range.fromPoints(start, end);\n };\n\n this.closingBracketBlock = function(session, bracket, row, column, typeRe) {\n var end = {row: row, column: column};\n var start = session.$findOpeningBracket(bracket, end);\n\n if (!start)\n return;\n\n start.column++;\n end.column--;\n\n return Range.fromPoints(start, end);\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nexports.isDark = false;\nexports.cssClass = \"ace-tm\";\nexports.cssText = \".ace-tm .ace_gutter {\\\nbackground: #f0f0f0;\\\ncolor: #333;\\\n}\\\n.ace-tm .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #e8e8e8;\\\n}\\\n.ace-tm .ace_fold {\\\nbackground-color: #6B72E6;\\\n}\\\n.ace-tm {\\\nbackground-color: #FFFFFF;\\\ncolor: black;\\\n}\\\n.ace-tm .ace_cursor {\\\ncolor: black;\\\n}\\\n.ace-tm .ace_invisible {\\\ncolor: rgb(191, 191, 191);\\\n}\\\n.ace-tm .ace_storage,\\\n.ace-tm .ace_keyword {\\\ncolor: blue;\\\n}\\\n.ace-tm .ace_constant {\\\ncolor: rgb(197, 6, 11);\\\n}\\\n.ace-tm .ace_constant.ace_buildin {\\\ncolor: rgb(88, 72, 246);\\\n}\\\n.ace-tm .ace_constant.ace_language {\\\ncolor: rgb(88, 92, 246);\\\n}\\\n.ace-tm .ace_constant.ace_library {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-tm .ace_invalid {\\\nbackground-color: rgba(255, 0, 0, 0.1);\\\ncolor: red;\\\n}\\\n.ace-tm .ace_support.ace_function {\\\ncolor: rgb(60, 76, 114);\\\n}\\\n.ace-tm .ace_support.ace_constant {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-tm .ace_support.ace_type,\\\n.ace-tm .ace_support.ace_class {\\\ncolor: rgb(109, 121, 222);\\\n}\\\n.ace-tm .ace_keyword.ace_operator {\\\ncolor: rgb(104, 118, 135);\\\n}\\\n.ace-tm .ace_string {\\\ncolor: rgb(3, 106, 7);\\\n}\\\n.ace-tm .ace_comment {\\\ncolor: rgb(76, 136, 107);\\\n}\\\n.ace-tm .ace_comment.ace_doc {\\\ncolor: rgb(0, 102, 255);\\\n}\\\n.ace-tm .ace_comment.ace_doc.ace_tag {\\\ncolor: rgb(128, 159, 191);\\\n}\\\n.ace-tm .ace_constant.ace_numeric {\\\ncolor: rgb(0, 0, 205);\\\n}\\\n.ace-tm .ace_variable {\\\ncolor: rgb(49, 132, 149);\\\n}\\\n.ace-tm .ace_xml-pe {\\\ncolor: rgb(104, 104, 91);\\\n}\\\n.ace-tm .ace_entity.ace_name.ace_function {\\\ncolor: #0000A2;\\\n}\\\n.ace-tm .ace_heading {\\\ncolor: rgb(12, 7, 255);\\\n}\\\n.ace-tm .ace_list {\\\ncolor:rgb(185, 6, 144);\\\n}\\\n.ace-tm .ace_meta.ace_tag {\\\ncolor:rgb(0, 22, 142);\\\n}\\\n.ace-tm .ace_string.ace_regex {\\\ncolor: rgb(255, 0, 0)\\\n}\\\n.ace-tm .ace_marker-layer .ace_selection {\\\nbackground: rgb(181, 213, 255);\\\n}\\\n.ace-tm.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px white;\\\n}\\\n.ace-tm .ace_marker-layer .ace_step {\\\nbackground: rgb(252, 255, 0);\\\n}\\\n.ace-tm .ace_marker-layer .ace_stack {\\\nbackground: rgb(164, 229, 101);\\\n}\\\n.ace-tm .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid rgb(192, 192, 192);\\\n}\\\n.ace-tm .ace_marker-layer .ace_active-line {\\\nbackground: rgba(0, 0, 0, 0.07);\\\n}\\\n.ace-tm .ace_gutter-active-line {\\\nbackground-color : #dcdcdc;\\\n}\\\n.ace-tm .ace_marker-layer .ace_selected-word {\\\nbackground: rgb(250, 250, 255);\\\nborder: 1px solid rgb(200, 200, 250);\\\n}\\\n.ace-tm .ace_indent-guide {\\\nbackground: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\\n}\\\n\";\n\nvar dom = acequire(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n\nace.define(\"ace/line_widgets\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar Range = acequire(\"./range\").Range;\n\n\nfunction LineWidgets(session) {\n this.session = session;\n this.session.widgetManager = this;\n this.session.getRowLength = this.getRowLength;\n this.session.$getWidgetScreenLength = this.$getWidgetScreenLength;\n this.updateOnChange = this.updateOnChange.bind(this);\n this.renderWidgets = this.renderWidgets.bind(this);\n this.measureWidgets = this.measureWidgets.bind(this);\n this.session._changedWidgets = [];\n this.$onChangeEditor = this.$onChangeEditor.bind(this);\n \n this.session.on(\"change\", this.updateOnChange);\n this.session.on(\"changeFold\", this.updateOnFold);\n this.session.on(\"changeEditor\", this.$onChangeEditor);\n}\n\n(function() {\n this.getRowLength = function(row) {\n var h;\n if (this.lineWidgets)\n h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n else \n h = 0;\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1 + h;\n } else {\n return this.$wrapData[row].length + 1 + h;\n }\n };\n\n this.$getWidgetScreenLength = function() {\n var screenRows = 0;\n this.lineWidgets.forEach(function(w){\n if (w && w.rowCount && !w.hidden)\n screenRows += w.rowCount;\n });\n return screenRows;\n }; \n \n this.$onChangeEditor = function(e) {\n this.attach(e.editor);\n };\n \n this.attach = function(editor) {\n if (editor && editor.widgetManager && editor.widgetManager != this)\n editor.widgetManager.detach();\n\n if (this.editor == editor)\n return;\n\n this.detach();\n this.editor = editor;\n \n if (editor) {\n editor.widgetManager = this;\n editor.renderer.on(\"beforeRender\", this.measureWidgets);\n editor.renderer.on(\"afterRender\", this.renderWidgets);\n }\n };\n this.detach = function(e) {\n var editor = this.editor;\n if (!editor)\n return;\n \n this.editor = null;\n editor.widgetManager = null;\n \n editor.renderer.off(\"beforeRender\", this.measureWidgets);\n editor.renderer.off(\"afterRender\", this.renderWidgets);\n var lineWidgets = this.session.lineWidgets;\n lineWidgets && lineWidgets.forEach(function(w) {\n if (w && w.el && w.el.parentNode) {\n w._inDocument = false;\n w.el.parentNode.removeChild(w.el);\n }\n });\n };\n\n this.updateOnFold = function(e, session) {\n var lineWidgets = session.lineWidgets;\n if (!lineWidgets || !e.action)\n return;\n var fold = e.data;\n var start = fold.start.row;\n var end = fold.end.row;\n var hide = e.action == \"add\";\n for (var i = start + 1; i < end; i++) {\n if (lineWidgets[i])\n lineWidgets[i].hidden = hide;\n }\n if (lineWidgets[end]) {\n if (hide) {\n if (!lineWidgets[start])\n lineWidgets[start] = lineWidgets[end];\n else\n lineWidgets[end].hidden = hide;\n } else {\n if (lineWidgets[start] == lineWidgets[end])\n lineWidgets[start] = undefined;\n lineWidgets[end].hidden = hide;\n }\n }\n };\n \n this.updateOnChange = function(delta) {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets) return;\n \n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n\n if (len === 0) {\n } else if (delta.action == 'remove') {\n var removed = lineWidgets.splice(startRow + 1, len);\n removed.forEach(function(w) {\n w && this.removeLineWidget(w);\n }, this);\n this.$updateRows();\n } else {\n var args = new Array(len);\n args.unshift(startRow, 0);\n lineWidgets.splice.apply(lineWidgets, args);\n this.$updateRows();\n }\n };\n \n this.$updateRows = function() {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets) return;\n var noWidgets = true;\n lineWidgets.forEach(function(w, i) {\n if (w) {\n noWidgets = false;\n w.row = i;\n while (w.$oldWidget) {\n w.$oldWidget.row = i;\n w = w.$oldWidget;\n }\n }\n });\n if (noWidgets)\n this.session.lineWidgets = null;\n };\n\n this.addLineWidget = function(w) {\n if (!this.session.lineWidgets)\n this.session.lineWidgets = new Array(this.session.getLength());\n \n var old = this.session.lineWidgets[w.row];\n if (old) {\n w.$oldWidget = old;\n if (old.el && old.el.parentNode) {\n old.el.parentNode.removeChild(old.el);\n old._inDocument = false;\n }\n }\n \n this.session.lineWidgets[w.row] = w;\n \n w.session = this.session;\n \n var renderer = this.editor.renderer;\n if (w.html && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.innerHTML = w.html;\n }\n if (w.el) {\n dom.addCssClass(w.el, \"ace_lineWidgetContainer\");\n w.el.style.position = \"absolute\";\n w.el.style.zIndex = 5;\n renderer.container.appendChild(w.el);\n w._inDocument = true;\n }\n \n if (!w.coverGutter) {\n w.el.style.zIndex = 3;\n }\n if (w.pixelHeight == null) {\n w.pixelHeight = w.el.offsetHeight;\n }\n if (w.rowCount == null) {\n w.rowCount = w.pixelHeight / renderer.layerConfig.lineHeight;\n }\n \n var fold = this.session.getFoldAt(w.row, 0);\n w.$fold = fold;\n if (fold) {\n var lineWidgets = this.session.lineWidgets;\n if (w.row == fold.end.row && !lineWidgets[fold.start.row])\n lineWidgets[fold.start.row] = w;\n else\n w.hidden = true;\n }\n \n this.session._emit(\"changeFold\", {data:{start:{row: w.row}}});\n \n this.$updateRows();\n this.renderWidgets(null, renderer);\n this.onWidgetChanged(w);\n return w;\n };\n \n this.removeLineWidget = function(w) {\n w._inDocument = false;\n w.session = null;\n if (w.el && w.el.parentNode)\n w.el.parentNode.removeChild(w.el);\n if (w.editor && w.editor.destroy) try {\n w.editor.destroy();\n } catch(e){}\n if (this.session.lineWidgets) {\n var w1 = this.session.lineWidgets[w.row];\n if (w1 == w) {\n this.session.lineWidgets[w.row] = w.$oldWidget;\n if (w.$oldWidget)\n this.onWidgetChanged(w.$oldWidget);\n } else {\n while (w1) {\n if (w1.$oldWidget == w) {\n w1.$oldWidget = w.$oldWidget;\n break;\n }\n w1 = w1.$oldWidget;\n }\n }\n }\n this.session._emit(\"changeFold\", {data:{start:{row: w.row}}});\n this.$updateRows();\n };\n \n this.getWidgetsAtRow = function(row) {\n var lineWidgets = this.session.lineWidgets;\n var w = lineWidgets && lineWidgets[row];\n var list = [];\n while (w) {\n list.push(w);\n w = w.$oldWidget;\n }\n return list;\n };\n \n this.onWidgetChanged = function(w) {\n this.session._changedWidgets.push(w);\n this.editor && this.editor.renderer.updateFull();\n };\n \n this.measureWidgets = function(e, renderer) {\n var changedWidgets = this.session._changedWidgets;\n var config = renderer.layerConfig;\n \n if (!changedWidgets || !changedWidgets.length) return;\n var min = Infinity;\n for (var i = 0; i < changedWidgets.length; i++) {\n var w = changedWidgets[i];\n if (!w || !w.el) continue;\n if (w.session != this.session) continue;\n if (!w._inDocument) {\n if (this.session.lineWidgets[w.row] != w)\n continue;\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n \n w.h = w.el.offsetHeight;\n \n if (!w.fixedWidth) {\n w.w = w.el.offsetWidth;\n w.screenWidth = Math.ceil(w.w / config.characterWidth);\n }\n \n var rowCount = w.h / config.lineHeight;\n if (w.coverLine) {\n rowCount -= this.session.getRowLineCount(w.row);\n if (rowCount < 0)\n rowCount = 0;\n }\n if (w.rowCount != rowCount) {\n w.rowCount = rowCount;\n if (w.row < min)\n min = w.row;\n }\n }\n if (min != Infinity) {\n this.session._emit(\"changeFold\", {data:{start:{row: min}}});\n this.session.lineWidgetWidth = null;\n }\n this.session._changedWidgets = [];\n };\n \n this.renderWidgets = function(e, renderer) {\n var config = renderer.layerConfig;\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var first = Math.min(this.firstRow, config.firstRow);\n var last = Math.max(this.lastRow, config.lastRow, lineWidgets.length);\n \n while (first > 0 && !lineWidgets[first])\n first--;\n \n this.firstRow = config.firstRow;\n this.lastRow = config.lastRow;\n\n renderer.$cursorLayer.config = config;\n for (var i = first; i <= last; i++) {\n var w = lineWidgets[i];\n if (!w || !w.el) continue;\n if (w.hidden) {\n w.el.style.top = -100 - (w.pixelHeight || 0) + \"px\";\n continue;\n }\n if (!w._inDocument) {\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n var top = renderer.$cursorLayer.getPixelPosition({row: i, column:0}, true).top;\n if (!w.coverLine)\n top += config.lineHeight * this.session.getRowLineCount(w.row);\n w.el.style.top = top - config.offset + \"px\";\n \n var left = w.coverGutter ? 0 : renderer.gutterWidth;\n if (!w.fixedWidth)\n left -= renderer.scrollLeft;\n w.el.style.left = left + \"px\";\n \n if (w.fullWidth && w.screenWidth) {\n w.el.style.minWidth = config.width + 2 * config.padding + \"px\";\n }\n \n if (w.fixedWidth) {\n w.el.style.right = renderer.scrollBar.getWidth() + \"px\";\n } else {\n w.el.style.right = \"\";\n }\n }\n };\n \n}).call(LineWidgets.prototype);\n\n\nexports.LineWidgets = LineWidgets;\n\n});\n\nace.define(\"ace/ext/error_marker\",[\"require\",\"exports\",\"module\",\"ace/line_widgets\",\"ace/lib/dom\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\nvar LineWidgets = acequire(\"../line_widgets\").LineWidgets;\nvar dom = acequire(\"../lib/dom\");\nvar Range = acequire(\"../range\").Range;\n\nfunction binarySearch(array, needle, comparator) {\n var first = 0;\n var last = array.length - 1;\n\n while (first <= last) {\n var mid = (first + last) >> 1;\n var c = comparator(needle, array[mid]);\n if (c > 0)\n first = mid + 1;\n else if (c < 0)\n last = mid - 1;\n else\n return mid;\n }\n return -(first + 1);\n}\n\nfunction findAnnotations(session, row, dir) {\n var annotations = session.getAnnotations().sort(Range.comparePoints);\n if (!annotations.length)\n return;\n \n var i = binarySearch(annotations, {row: row, column: -1}, Range.comparePoints);\n if (i < 0)\n i = -i - 1;\n \n if (i >= annotations.length)\n i = dir > 0 ? 0 : annotations.length - 1;\n else if (i === 0 && dir < 0)\n i = annotations.length - 1;\n \n var annotation = annotations[i];\n if (!annotation || !dir)\n return;\n\n if (annotation.row === row) {\n do {\n annotation = annotations[i += dir];\n } while (annotation && annotation.row === row);\n if (!annotation)\n return annotations.slice();\n }\n \n \n var matched = [];\n row = annotation.row;\n do {\n matched[dir < 0 ? \"unshift\" : \"push\"](annotation);\n annotation = annotations[i += dir];\n } while (annotation && annotation.row == row);\n return matched.length && matched;\n}\n\nexports.showErrorMarker = function(editor, dir) {\n var session = editor.session;\n if (!session.widgetManager) {\n session.widgetManager = new LineWidgets(session);\n session.widgetManager.attach(editor);\n }\n \n var pos = editor.getCursorPosition();\n var row = pos.row;\n var oldWidget = session.widgetManager.getWidgetsAtRow(row).filter(function(w) {\n return w.type == \"errorMarker\";\n })[0];\n if (oldWidget) {\n oldWidget.destroy();\n } else {\n row -= dir;\n }\n var annotations = findAnnotations(session, row, dir);\n var gutterAnno;\n if (annotations) {\n var annotation = annotations[0];\n pos.column = (annotation.pos && typeof annotation.column != \"number\"\n ? annotation.pos.sc\n : annotation.column) || 0;\n pos.row = annotation.row;\n gutterAnno = editor.renderer.$gutterLayer.$annotations[pos.row];\n } else if (oldWidget) {\n return;\n } else {\n gutterAnno = {\n text: [\"Looks good!\"],\n className: \"ace_ok\"\n };\n }\n editor.session.unfold(pos.row);\n editor.selection.moveToPosition(pos);\n \n var w = {\n row: pos.row, \n fixedWidth: true,\n coverGutter: true,\n el: dom.createElement(\"div\"),\n type: \"errorMarker\"\n };\n var el = w.el.appendChild(dom.createElement(\"div\"));\n var arrow = w.el.appendChild(dom.createElement(\"div\"));\n arrow.className = \"error_widget_arrow \" + gutterAnno.className;\n \n var left = editor.renderer.$cursorLayer\n .getPixelPosition(pos).left;\n arrow.style.left = left + editor.renderer.gutterWidth - 5 + \"px\";\n \n w.el.className = \"error_widget_wrapper\";\n el.className = \"error_widget \" + gutterAnno.className;\n el.innerHTML = gutterAnno.text.join(\"<br>\");\n \n el.appendChild(dom.createElement(\"div\"));\n \n var kb = function(_, hashId, keyString) {\n if (hashId === 0 && (keyString === \"esc\" || keyString === \"return\")) {\n w.destroy();\n return {command: \"null\"};\n }\n };\n \n w.destroy = function() {\n if (editor.$mouseHandler.isMousePressed)\n return;\n editor.keyBinding.removeKeyboardHandler(kb);\n session.widgetManager.removeLineWidget(w);\n editor.off(\"changeSelection\", w.destroy);\n editor.off(\"changeSession\", w.destroy);\n editor.off(\"mouseup\", w.destroy);\n editor.off(\"change\", w.destroy);\n };\n \n editor.keyBinding.addKeyboardHandler(kb);\n editor.on(\"changeSelection\", w.destroy);\n editor.on(\"changeSession\", w.destroy);\n editor.on(\"mouseup\", w.destroy);\n editor.on(\"change\", w.destroy);\n \n editor.session.widgetManager.addLineWidget(w);\n \n w.el.onmousedown = editor.focus.bind(editor);\n \n editor.renderer.scrollCursorIntoView(null, 0.5, {bottom: w.el.offsetHeight});\n};\n\n\ndom.importCssString(\"\\\n .error_widget_wrapper {\\\n background: inherit;\\\n color: inherit;\\\n border:none\\\n }\\\n .error_widget {\\\n border-top: solid 2px;\\\n border-bottom: solid 2px;\\\n margin: 5px 0;\\\n padding: 10px 40px;\\\n white-space: pre-wrap;\\\n }\\\n .error_widget.ace_error, .error_widget_arrow.ace_error{\\\n border-color: #ff5a5a\\\n }\\\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\\\n border-color: #F1D817\\\n }\\\n .error_widget.ace_info, .error_widget_arrow.ace_info{\\\n border-color: #5a5a5a\\\n }\\\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\\\n border-color: #5aaa5a\\\n }\\\n .error_widget_arrow {\\\n position: absolute;\\\n border: solid 5px;\\\n border-top-color: transparent!important;\\\n border-right-color: transparent!important;\\\n border-left-color: transparent!important;\\\n top: -5px;\\\n }\\\n\", \"\");\n\n});\n\nace.define(\"ace/ace\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/editor\",\"ace/edit_session\",\"ace/undomanager\",\"ace/virtual_renderer\",\"ace/worker/worker_client\",\"ace/keyboard/hash_handler\",\"ace/placeholder\",\"ace/multi_select\",\"ace/mode/folding/fold_mode\",\"ace/theme/textmate\",\"ace/ext/error_marker\",\"ace/config\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./lib/fixoldbrowsers\");\n\nvar dom = acequire(\"./lib/dom\");\nvar event = acequire(\"./lib/event\");\n\nvar Editor = acequire(\"./editor\").Editor;\nvar EditSession = acequire(\"./edit_session\").EditSession;\nvar UndoManager = acequire(\"./undomanager\").UndoManager;\nvar Renderer = acequire(\"./virtual_renderer\").VirtualRenderer;\nacequire(\"./worker/worker_client\");\nacequire(\"./keyboard/hash_handler\");\nacequire(\"./placeholder\");\nacequire(\"./multi_select\");\nacequire(\"./mode/folding/fold_mode\");\nacequire(\"./theme/textmate\");\nacequire(\"./ext/error_marker\");\n\nexports.config = acequire(\"./config\");\nexports.acequire = acequire;\n\nif (typeof define === \"function\")\n exports.define = define;\nexports.edit = function(el) {\n if (typeof el == \"string\") {\n var _id = el;\n el = document.getElementById(_id);\n if (!el)\n throw new Error(\"ace.edit can't find div #\" + _id);\n }\n\n if (el && el.env && el.env.editor instanceof Editor)\n return el.env.editor;\n\n var value = \"\";\n if (el && /input|textarea/i.test(el.tagName)) {\n var oldNode = el;\n value = oldNode.value;\n el = dom.createElement(\"pre\");\n oldNode.parentNode.replaceChild(el, oldNode);\n } else if (el) {\n value = dom.getInnerText(el);\n el.innerHTML = \"\";\n }\n\n var doc = exports.createEditSession(value);\n\n var editor = new Editor(new Renderer(el));\n editor.setSession(doc);\n\n var env = {\n document: doc,\n editor: editor,\n onResize: editor.resize.bind(editor, null)\n };\n if (oldNode) env.textarea = oldNode;\n event.addListener(window, \"resize\", env.onResize);\n editor.on(\"destroy\", function() {\n event.removeListener(window, \"resize\", env.onResize);\n env.editor.container.env = null; // prevent memory leak on old ie\n });\n editor.container.env = editor.env = env;\n return editor;\n};\nexports.createEditSession = function(text, mode) {\n var doc = new EditSession(text, mode);\n doc.setUndoManager(new UndoManager());\n return doc;\n};\nexports.EditSession = EditSession;\nexports.UndoManager = UndoManager;\nexports.version = \"1.2.9\";\n});\n (function() {\n ace.acequire([\"ace/ace\"], function(a) {\n if (a) {\n a.config.init(true);\n a.define = ace.define;\n }\n if (!window.ace)\n window.ace = a;\n for (var key in a) if (a.hasOwnProperty(key))\n window.ace[key] = a[key];\n });\n })();\n \nmodule.exports = window.ace.acequire(\"ace/ace\");","module.exports.id = 'ace/mode/json_worker';\nmodule.exports.src = \"\\\"no use strict\\\";!function(window){function resolveModuleId(id,paths){for(var testPath=id,tail=\\\"\\\";testPath;){var alias=paths[testPath];if(\\\"string\\\"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\\\/*$/,\\\"/\\\")+(tail||alias.main||alias.name);if(alias===!1)return\\\"\\\";var i=testPath.lastIndexOf(\\\"/\\\");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:\\\"log\\\",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:\\\"error\\\",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf(\\\"!\\\")){var chunks=moduleName.split(\\\"!\\\");return window.normalizeModule(parentId,chunks[0])+\\\"!\\\"+window.normalizeModule(parentId,chunks[1])}if(\\\".\\\"==moduleName.charAt(0)){var base=parentId.split(\\\"/\\\").slice(0,-1).join(\\\"/\\\");for(moduleName=(base?base+\\\"/\\\":\\\"\\\")+moduleName;-1!==moduleName.indexOf(\\\".\\\")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\\\.\\\\//,\\\"\\\").replace(/\\\\/\\\\.\\\\//,\\\"/\\\").replace(/[^\\\\/]+\\\\/\\\\.\\\\.\\\\//,\\\"\\\")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error(\\\"worker.js acequire() accepts only (parentId, id) as arguments\\\");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log(\\\"unable to load \\\"+id);var path=resolveModuleId(id,window.acequire.tlns);return\\\".js\\\"!=path.slice(-3)&&(path+=\\\".js\\\"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,\\\"string\\\"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),\\\"function\\\"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=[\\\"require\\\",\\\"exports\\\",\\\"module\\\"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case\\\"require\\\":return req;case\\\"exports\\\":return module.exports;case\\\"module\\\":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire(\\\"ace/lib/event_emitter\\\").EventEmitter,oop=window.acequire(\\\"ace/lib/oop\\\"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:\\\"call\\\",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:\\\"event\\\",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error(\\\"Unknown command:\\\"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire(\\\"ace/lib/es5-shim\\\"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}}(this),ace.define(\\\"ace/lib/oop\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define(\\\"ace/range\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return\\\"Range: [\\\"+this.start.row+\\\"/\\\"+this.start.column+\\\"] -> [\\\"+this.end.row+\\\"/\\\"+this.end.column+\\\"]\\\"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){\\\"object\\\"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){\\\"object\\\"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define(\\\"ace/apply_delta\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||\\\"\\\";switch(delta.action){case\\\"insert\\\":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case\\\"remove\\\":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define(\\\"ace/lib/event_emitter\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){\\\"object\\\"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?\\\"unshift\\\":\\\"push\\\"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define(\\\"ace/anchor\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/lib/event_emitter\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"./lib/oop\\\"),EventEmitter=acequire(\\\"./lib/event_emitter\\\").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.column<point2.column;return point1.row<point2.row||point1.row==point2.row&&bColIsAfter}function $getTransformedPoint(delta,point,moveIfEqual){var deltaIsInsert=\\\"insert\\\"==delta.action,deltaRowShift=(deltaIsInsert?1:-1)*(delta.end.row-delta.start.row),deltaColShift=(deltaIsInsert?1:-1)*(delta.end.column-delta.start.column),deltaStart=delta.start,deltaEnd=deltaIsInsert?deltaStart:delta.end;return $pointsInOrder(point,deltaStart,moveIfEqual)?{row:point.row,column:point.column}:$pointsInOrder(deltaEnd,point,!moveIfEqual)?{row:point.row+deltaRowShift,column:point.column+(point.row==deltaEnd.row?deltaColShift:0)}:{row:deltaStart.row,column:deltaStart.column}}oop.implement(this,EventEmitter),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(delta){if(!(delta.start.row==delta.end.row&&delta.start.row!=this.row||delta.start.row>this.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal(\\\"change\\\",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener(\\\"change\\\",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on(\\\"change\\\",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define(\\\"ace/document\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/apply_delta\\\",\\\"ace/lib/event_emitter\\\",\\\"ace/range\\\",\\\"ace/anchor\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"./lib/oop\\\"),applyDelta=acequire(\\\"./apply_delta\\\").applyDelta,EventEmitter=acequire(\\\"./lib/event_emitter\\\").EventEmitter,Range=acequire(\\\"./range\\\").Range,Anchor=acequire(\\\"./anchor\\\").Anchor,Document=function(textOrLines){this.$lines=[\\\"\\\"],0===textOrLines.length?this.$lines=[\\\"\\\"]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0===\\\"aaa\\\".split(/a/).length?function(text){return text.replace(/\\\\r\\\\n|\\\\r/g,\\\"\\\\n\\\").split(\\\"\\\\n\\\")}:function(text){return text.split(/\\\\r\\\\n|\\\\r|\\\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\\\r\\\\n|\\\\r|\\\\n)/m);this.$autoNewLine=match?match[1]:\\\"\\\\n\\\",this._signal(\\\"changeNewLineMode\\\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\\\"windows\\\":return\\\"\\\\r\\\\n\\\";case\\\"unix\\\":return\\\"\\\\n\\\";default:return this.$autoNewLine||\\\"\\\\n\\\"}},this.$autoNewLine=\\\"\\\",this.$newLineMode=\\\"auto\\\",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal(\\\"changeNewLineMode\\\"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return\\\"\\\\r\\\\n\\\"==text||\\\"\\\\r\\\"==text||\\\"\\\\n\\\"==text},this.getLine=function(row){return this.$lines[row]||\\\"\\\"},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||\\\"\\\").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn(\\\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\\\"),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn(\\\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\\\"),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn(\\\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\\\"),this.insertMergedLines(position,[\\\"\\\",\\\"\\\"])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:\\\"insert\\\",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([\\\"\\\"]),column=0):(lines=[\\\"\\\"].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:\\\"insert\\\",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:\\\"remove\\\",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:\\\"remove\\\",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:\\\"remove\\\",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:\\\"remove\\\",lines:[\\\"\\\",\\\"\\\"]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert=\\\"insert\\\"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal(\\\"change\\\",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(\\\"\\\"),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:\\\"insert\\\"==delta.action?\\\"remove\\\":\\\"insert\\\",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define(\\\"ace/lib/lang\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split(\\\"\\\").reverse().join(\\\"\\\")},exports.stringRepeat=function(string,count){for(var result=\\\"\\\";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\\\s\\\\s*/,trimEndRegexp=/\\\\s\\\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,\\\"\\\")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,\\\"\\\")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&\\\"object\\\"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if(\\\"object\\\"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if(\\\"[object Object]\\\"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\\\]\\\\/\\\\\\\\])/g,\\\"\\\\\\\\$1\\\")},exports.escapeHTML=function(str){return str.replace(/&/g,\\\"&\\\").replace(/\\\"/g,\\\""\\\").replace(/'/g,\\\"'\\\").replace(/</g,\\\"<\\\")},exports.getMatchOffsets=function(string,regExp){var matches=[];return string.replace(regExp,function(str){matches.push({offset:arguments[arguments.length-2],length:str.length})}),matches},exports.deferredCall=function(fcn){var timer=null,callback=function(){timer=null,fcn()},deferred=function(timeout){return deferred.cancel(),timer=setTimeout(callback,timeout||0),deferred};return deferred.schedule=deferred,deferred.call=function(){return this.cancel(),fcn(),deferred},deferred.cancel=function(){return clearTimeout(timer),timer=null,deferred},deferred.isPending=function(){return timer},deferred},exports.delayedCall=function(fcn,defaultTimeout){var timer=null,callback=function(){timer=null,fcn()},_self=function(timeout){null==timer&&(timer=setTimeout(callback,timeout||defaultTimeout))};return _self.delay=function(timeout){timer&&clearTimeout(timer),timer=setTimeout(callback,timeout||defaultTimeout)},_self.schedule=_self,_self.call=function(){this.cancel(),fcn()},_self.cancel=function(){timer&&clearTimeout(timer),timer=null},_self.isPending=function(){return timer},_self}}),ace.define(\\\"ace/worker/mirror\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/range\\\",\\\"ace/document\\\",\\\"ace/lib/lang\\\"],function(acequire,exports){\\\"use strict\\\";acequire(\\\"../range\\\").Range;var Document=acequire(\\\"../document\\\").Document,lang=acequire(\\\"../lib/lang\\\"),Mirror=exports.Mirror=function(sender){this.sender=sender;var doc=this.doc=new Document(\\\"\\\"),deferredUpdate=this.deferredUpdate=lang.delayedCall(this.onUpdate.bind(this)),_self=this;sender.on(\\\"change\\\",function(e){var data=e.data;if(data[0].start)doc.applyDeltas(data);else for(var i=0;data.length>i;i+=2){if(Array.isArray(data[i+1]))var d={action:\\\"insert\\\",start:data[i],lines:data[i+1]};else var d={action:\\\"remove\\\",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define(\\\"ace/mode/json/json_parse\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(){\\\"use strict\\\";var at,ch,text,value,escapee={'\\\"':'\\\"',\\\"\\\\\\\\\\\":\\\"\\\\\\\\\\\",\\\"/\\\":\\\"/\\\",b:\\\"\\\\b\\\",f:\\\"\\\\f\\\",n:\\\"\\\\n\\\",r:\\\"\\\\r\\\",t:\\\"\\t\\\"},error=function(m){throw{name:\\\"SyntaxError\\\",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error(\\\"Expected '\\\"+c+\\\"' instead of '\\\"+ch+\\\"'\\\"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string=\\\"\\\";for(\\\"-\\\"===ch&&(string=\\\"-\\\",next(\\\"-\\\"));ch>=\\\"0\\\"&&\\\"9\\\">=ch;)string+=ch,next();if(\\\".\\\"===ch)for(string+=\\\".\\\";next()&&ch>=\\\"0\\\"&&\\\"9\\\">=ch;)string+=ch;if(\\\"e\\\"===ch||\\\"E\\\"===ch)for(string+=ch,next(),(\\\"-\\\"===ch||\\\"+\\\"===ch)&&(string+=ch,next());ch>=\\\"0\\\"&&\\\"9\\\">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error(\\\"Bad number\\\"),void 0):number},string=function(){var hex,i,uffff,string=\\\"\\\";if('\\\"'===ch)for(;next();){if('\\\"'===ch)return next(),string;if(\\\"\\\\\\\\\\\"===ch)if(next(),\\\"u\\\"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if(\\\"string\\\"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error(\\\"Bad string\\\")},white=function(){for(;ch&&\\\" \\\">=ch;)next()},word=function(){switch(ch){case\\\"t\\\":return next(\\\"t\\\"),next(\\\"r\\\"),next(\\\"u\\\"),next(\\\"e\\\"),!0;case\\\"f\\\":return next(\\\"f\\\"),next(\\\"a\\\"),next(\\\"l\\\"),next(\\\"s\\\"),next(\\\"e\\\"),!1;case\\\"n\\\":return next(\\\"n\\\"),next(\\\"u\\\"),next(\\\"l\\\"),next(\\\"l\\\"),null}error(\\\"Unexpected '\\\"+ch+\\\"'\\\")},array=function(){var array=[];if(\\\"[\\\"===ch){if(next(\\\"[\\\"),white(),\\\"]\\\"===ch)return next(\\\"]\\\"),array;for(;ch;){if(array.push(value()),white(),\\\"]\\\"===ch)return next(\\\"]\\\"),array;next(\\\",\\\"),white()}}error(\\\"Bad array\\\")},object=function(){var key,object={};if(\\\"{\\\"===ch){if(next(\\\"{\\\"),white(),\\\"}\\\"===ch)return next(\\\"}\\\"),object;for(;ch;){if(key=string(),white(),next(\\\":\\\"),Object.hasOwnProperty.call(object,key)&&error('Duplicate key \\\"'+key+'\\\"'),object[key]=value(),white(),\\\"}\\\"===ch)return next(\\\"}\\\"),object;next(\\\",\\\"),white()}}error(\\\"Bad object\\\")};return value=function(){switch(white(),ch){case\\\"{\\\":return object();case\\\"[\\\":return array();case'\\\"':return string();case\\\"-\\\":return number();default:return ch>=\\\"0\\\"&&\\\"9\\\">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=\\\" \\\",result=value(),white(),ch&&error(\\\"Syntax error\\\"),\\\"function\\\"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&\\\"object\\\"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({\\\"\\\":result},\\\"\\\"):result}}),ace.define(\\\"ace/mode/json_worker\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/worker/mirror\\\",\\\"ace/mode/json/json_parse\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"../lib/oop\\\"),Mirror=acequire(\\\"../worker/mirror\\\").Mirror,parse=acequire(\\\"./json/json_parse\\\"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:\\\"error\\\"})}this.sender.emit(\\\"annotate\\\",errors)}}.call(JsonWorker.prototype)}),ace.define(\\\"ace/lib/es5-shim\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,\\\"sentinel\\\",{}),\\\"sentinel\\\"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if(\\\"function\\\"!=typeof target)throw new TypeError(\\\"Function.prototype.bind called on incompatible \\\"+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,\\\"__defineGetter__\\\"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,\\\"XXX\\\"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return\\\"[object Array]\\\"==_toString(obj)});var boxedString=Object(\\\"a\\\"),splitString=\\\"a\\\"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,thisp=arguments[1],i=-1,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,result=[],thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");if(!length&&1==arguments.length)throw new TypeError(\\\"reduce of empty array with no initial value\\\");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError(\\\"reduce of empty array with no initial value\\\")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");if(!length&&1==arguments.length)throw new TypeError(\\\"reduceRight of empty array with no initial value\\\");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError(\\\"reduceRight of empty array with no initial value\\\")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT=\\\"Object.getOwnPropertyDescriptor called on a non-object: \\\";Object.getOwnPropertyDescriptor=function(object,property){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if(\\\"object\\\"!=typeof prototype)throw new TypeError(\\\"typeof prototype[\\\"+typeof prototype+\\\"] != 'object'\\\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom=\\\"undefined\\\"==typeof document||doesDefinePropertyWork(document.createElement(\\\"div\\\"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR=\\\"Property description must be an object: \\\",ERR_NON_OBJECT_TARGET=\\\"Object.defineProperty called on non-object: \\\",ERR_ACCESSORS_NOT_SUPPORTED=\\\"getters & setters can not be defined on this javascript engine\\\";Object.defineProperty=function(object,property,descriptor){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if(\\\"object\\\"!=typeof descriptor&&\\\"function\\\"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,\\\"value\\\"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,\\\"get\\\")&&defineGetter(object,property,descriptor.get),owns(descriptor,\\\"set\\\")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return\\\"function\\\"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name=\\\"\\\";owns(object,name);)name+=\\\"?\\\";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=[\\\"toString\\\",\\\"toLocaleString\\\",\\\"valueOf\\\",\\\"hasOwnProperty\\\",\\\"isPrototypeOf\\\",\\\"propertyIsEnumerable\\\",\\\"constructor\\\"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(\\\"Object.keys called on a non-object\\\");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=\\\"\\t\\\\n\\u000b\\\\f\\\\r   ᠎              \\\\u2028\\\\u2029\\\";if(!String.prototype.trim||ws.trim()){ws=\\\"[\\\"+ws+\\\"]\\\";var trimBeginRegexp=RegExp(\\\"^\\\"+ws+ws+\\\"*\\\"),trimEndRegexp=RegExp(ws+ws+\\\"*$\\\");String.prototype.trim=function(){return(this+\\\"\\\").replace(trimBeginRegexp,\\\"\\\").replace(trimEndRegexp,\\\"\\\")}}var toObject=function(o){if(null==o)throw new TypeError(\\\"can't convert \\\"+o+\\\" to object\\\");return Object(o)}});\";","ace.define(\"ace/mode/json_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\nvar JsonHighlightRules = function() {\n this.$rules = {\n \"start\" : [\n {\n token : \"variable\", // single line\n regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]\\\\s*(?=:)'\n }, {\n token : \"string\", // single line\n regex : '\"',\n next : \"string\"\n }, {\n token : \"constant.numeric\", // hex\n regex : \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token : \"constant.numeric\", // float\n regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token : \"constant.language.boolean\",\n regex : \"(?:true|false)\\\\b\"\n }, {\n token : \"text\", // single quoted strings are not allowed\n regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token : \"comment\", // comments are not allowed, but who cares?\n regex : \"\\\\/\\\\/.*$\"\n }, {\n token : \"comment.start\", // comments are not allowed, but who cares?\n regex : \"\\\\/\\\\*\",\n next : \"comment\"\n }, {\n token : \"paren.lparen\",\n regex : \"[[({]\"\n }, {\n token : \"paren.rparen\",\n regex : \"[\\\\])}]\"\n }, {\n token : \"text\",\n regex : \"\\\\s+\"\n }\n ],\n \"string\" : [\n {\n token : \"constant.language.escape\",\n regex : /\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[\"\\\\\\/bfnrt])/\n }, {\n token : \"string\",\n regex : '\"|$',\n next : \"start\"\n }, {\n defaultToken : \"string\"\n }\n ],\n \"comment\" : [\n {\n token : \"comment.end\", // comments are not allowed, but who cares?\n regex : \"\\\\*\\\\/\",\n next : \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ]\n };\n \n};\n\noop.inherits(JsonHighlightRules, TextHighlightRules);\n\nexports.JsonHighlightRules = JsonHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n this.checkOutdent = function(line, input) {\n if (! /^\\s+$/.test(line))\n return false;\n\n return /^\\s*\\}/.test(input);\n };\n\n this.autoOutdent = function(doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n\n if (!match) return 0;\n\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n if (!openBracePos || openBracePos.row == row) return 0;\n\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column-1), indent);\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Range = acequire(\"../../range\").Range;\nvar BaseFoldMode = acequire(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(\n this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n );\n this.foldingStopMarker = new RegExp(\n this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n );\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n \n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n \n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n \n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n \n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n \n return fw;\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n \n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n \n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n \n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n \n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n } else if (foldStyle != \"all\")\n range = null;\n }\n \n return range;\n }\n\n if (foldStyle === \"markbegin\")\n return;\n\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n \n this.getSectionRange = function(session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n \n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n } else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n } else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n \n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function(session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n \n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m) continue;\n if (m[1]) depth--;\n else depth++;\n\n if (!depth) break;\n }\n\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/json\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/json_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/worker/worker_client\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextMode = acequire(\"./text\").Mode;\nvar HighlightRules = acequire(\"./json_highlight_rules\").JsonHighlightRules;\nvar MatchingBraceOutdent = acequire(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CstyleBehaviour = acequire(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = acequire(\"./folding/cstyle\").FoldMode;\nvar WorkerClient = acequire(\"../worker/worker_client\").WorkerClient;\n\nvar Mode = function() {\n this.HighlightRules = HighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CstyleBehaviour();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n this.getNextLineIndent = function(state, line, tab) {\n var indent = this.$getIndent(line);\n\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n\n return indent;\n };\n\n this.checkOutdent = function(state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n\n this.autoOutdent = function(state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n\n this.createWorker = function(session) {\n var worker = new WorkerClient([\"ace\"], require(\"../worker/json\"), \"JsonWorker\");\n worker.attachToDocument(session.getDocument());\n\n worker.on(\"annotate\", function(e) {\n session.setAnnotations(e.data);\n });\n\n worker.on(\"terminate\", function() {\n session.clearAnnotations();\n });\n\n return worker;\n };\n\n\n this.$id = \"ace/mode/json\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n","ace.define(\"ace/mode/yaml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\nvar YamlHighlightRules = function() {\n this.$rules = {\n \"start\" : [\n {\n token : \"comment\",\n regex : \"#.*$\"\n }, {\n token : \"list.markup\",\n regex : /^(?:-{3}|\\.{3})\\s*(?=#|$)/\n }, {\n token : \"list.markup\",\n regex : /^\\s*[\\-?](?:$|\\s)/\n }, {\n token: \"constant\",\n regex: \"!![\\\\w//]+\"\n }, {\n token: \"constant.language\",\n regex: \"[&\\\\*][a-zA-Z0-9-_]+\"\n }, {\n token: [\"meta.tag\", \"keyword\"],\n regex: /^(\\s*\\w.*?)(:(?=\\s|$))/\n },{\n token: [\"meta.tag\", \"keyword\"],\n regex: /(\\w+?)(\\s*:(?=\\s|$))/\n }, {\n token : \"keyword.operator\",\n regex : \"<<\\\\w*:\\\\w*\"\n }, {\n token : \"keyword.operator\",\n regex : \"-\\\\s*(?=[{])\"\n }, {\n token : \"string\", // single line\n regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n }, {\n token : \"string\", // multi line string start\n regex : /[|>][-+\\d\\s]*$/,\n onMatch: function(val, state, stack, line) {\n var indent = /^\\s*/.exec(line)[0];\n if (stack.length < 1) {\n stack.push(this.next);\n } else {\n stack[0] = \"mlString\";\n }\n\n if (stack.length < 2) {\n stack.push(indent.length);\n }\n else {\n stack[1] = indent.length;\n }\n return this.token;\n },\n next : \"mlString\"\n }, {\n token : \"string\", // single quoted string\n regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token : \"constant.numeric\", // float\n regex : /(\\b|[+\\-\\.])[\\d_]+(?:(?:\\.[\\d_]*)?(?:[eE][+\\-]?[\\d_]+)?)(?=[^\\d-\\w]|$)/\n }, {\n token : \"constant.numeric\", // other number\n regex : /[+\\-]?\\.inf\\b|NaN\\b|0x[\\dA-Fa-f_]+|0b[10_]+/\n }, {\n token : \"constant.language.boolean\",\n regex : \"\\\\b(?:true|false|TRUE|FALSE|True|False|yes|no)\\\\b\"\n }, {\n token : \"paren.lparen\",\n regex : \"[[({]\"\n }, {\n token : \"paren.rparen\",\n regex : \"[\\\\])}]\"\n }, {\n token : \"text\",\n regex : /[^\\s,:\\[\\]\\{\\}]+/\n }\n ],\n \"mlString\" : [\n {\n token : \"indent\",\n regex : /^\\s*$/\n }, {\n token : \"indent\",\n regex : /^\\s*/,\n onMatch: function(val, state, stack) {\n var curIndent = stack[1];\n\n if (curIndent >= val.length) {\n this.next = \"start\";\n stack.splice(0);\n }\n else {\n this.next = \"mlString\";\n }\n return this.token;\n },\n next : \"mlString\"\n }, {\n token : \"string\",\n regex : '.+'\n }\n ]};\n this.normalizeRules();\n\n};\n\noop.inherits(YamlHighlightRules, TextHighlightRules);\n\nexports.YamlHighlightRules = YamlHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n this.checkOutdent = function(line, input) {\n if (! /^\\s+$/.test(line))\n return false;\n\n return /^\\s*\\}/.test(input);\n };\n\n this.autoOutdent = function(doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n\n if (!match) return 0;\n\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n if (!openBracePos || openBracePos.row == row) return 0;\n\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column-1), indent);\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar BaseFoldMode = acequire(\"./fold_mode\").FoldMode;\nvar Range = acequire(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n this.getFoldWidgetRange = function(session, foldStyle, row) {\n var range = this.indentationBlock(session, row);\n if (range)\n return range;\n\n var re = /\\S/;\n var line = session.getLine(row);\n var startLevel = line.search(re);\n if (startLevel == -1 || line[startLevel] != \"#\")\n return;\n\n var startColumn = line.length;\n var maxRow = session.getLength();\n var startRow = row;\n var endRow = row;\n\n while (++row < maxRow) {\n line = session.getLine(row);\n var level = line.search(re);\n\n if (level == -1)\n continue;\n\n if (line[level] != \"#\")\n break;\n\n endRow = row;\n }\n\n if (endRow > startRow) {\n var endColumn = session.getLine(endRow).length;\n return new Range(startRow, startColumn, endRow, endColumn);\n }\n };\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n var indent = line.search(/\\S/);\n var next = session.getLine(row + 1);\n var prev = session.getLine(row - 1);\n var prevIndent = prev.search(/\\S/);\n var nextIndent = next.search(/\\S/);\n\n if (indent == -1) {\n session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? \"start\" : \"\";\n return \"\";\n }\n if (prevIndent == -1) {\n if (indent == nextIndent && line[indent] == \"#\" && next[indent] == \"#\") {\n session.foldWidgets[row - 1] = \"\";\n session.foldWidgets[row + 1] = \"\";\n return \"start\";\n }\n } else if (prevIndent == indent && line[indent] == \"#\" && prev[indent] == \"#\") {\n if (session.getLine(row - 2).search(/\\S/) == -1) {\n session.foldWidgets[row - 1] = \"start\";\n session.foldWidgets[row + 1] = \"\";\n return \"\";\n }\n }\n\n if (prevIndent!= -1 && prevIndent < indent)\n session.foldWidgets[row - 1] = \"start\";\n else\n session.foldWidgets[row - 1] = \"\";\n\n if (indent < nextIndent)\n return \"start\";\n else\n return \"\";\n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/yaml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/yaml_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/coffee\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextMode = acequire(\"./text\").Mode;\nvar YamlHighlightRules = acequire(\"./yaml_highlight_rules\").YamlHighlightRules;\nvar MatchingBraceOutdent = acequire(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar FoldMode = acequire(\"./folding/coffee\").FoldMode;\n\nvar Mode = function() {\n this.HighlightRules = YamlHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.foldingRules = new FoldMode();\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n this.lineCommentStart = [\"#\", \"//\"];\n \n this.getNextLineIndent = function(state, line, tab) {\n var indent = this.$getIndent(line);\n\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n\n return indent;\n };\n\n this.checkOutdent = function(state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n\n this.autoOutdent = function(state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n\n\n this.$id = \"ace/mode/yaml\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n","(function webpackUniversalModuleDefinition(root, factory) {\n/* istanbul ignore next */\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n/* istanbul ignore next */\n\telse if(typeof exports === 'object')\n\t\texports[\"esprima\"] = factory();\n\telse\n\t\troot[\"esprima\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/* istanbul ignore if */\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t/*\n\t Copyright JS Foundation and other contributors, https://js.foundation/\n\n\t Redistribution and use in source and binary forms, with or without\n\t modification, are permitted provided that the following conditions are met:\n\n\t * Redistributions of source code must retain the above copyright\n\t notice, this list of conditions and the following disclaimer.\n\t * Redistributions in binary form must reproduce the above copyright\n\t notice, this list of conditions and the following disclaimer in the\n\t documentation and/or other materials provided with the distribution.\n\n\t THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n\t AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n\t IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n\t ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n\t DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n\t (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n\t LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n\t ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n\t THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t*/\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar comment_handler_1 = __webpack_require__(1);\n\tvar jsx_parser_1 = __webpack_require__(3);\n\tvar parser_1 = __webpack_require__(8);\n\tvar tokenizer_1 = __webpack_require__(15);\n\tfunction parse(code, options, delegate) {\n\t var commentHandler = null;\n\t var proxyDelegate = function (node, metadata) {\n\t if (delegate) {\n\t delegate(node, metadata);\n\t }\n\t if (commentHandler) {\n\t commentHandler.visit(node, metadata);\n\t }\n\t };\n\t var parserDelegate = (typeof delegate === 'function') ? proxyDelegate : null;\n\t var collectComment = false;\n\t if (options) {\n\t collectComment = (typeof options.comment === 'boolean' && options.comment);\n\t var attachComment = (typeof options.attachComment === 'boolean' && options.attachComment);\n\t if (collectComment || attachComment) {\n\t commentHandler = new comment_handler_1.CommentHandler();\n\t commentHandler.attach = attachComment;\n\t options.comment = true;\n\t parserDelegate = proxyDelegate;\n\t }\n\t }\n\t var isModule = false;\n\t if (options && typeof options.sourceType === 'string') {\n\t isModule = (options.sourceType === 'module');\n\t }\n\t var parser;\n\t if (options && typeof options.jsx === 'boolean' && options.jsx) {\n\t parser = new jsx_parser_1.JSXParser(code, options, parserDelegate);\n\t }\n\t else {\n\t parser = new parser_1.Parser(code, options, parserDelegate);\n\t }\n\t var program = isModule ? parser.parseModule() : parser.parseScript();\n\t var ast = program;\n\t if (collectComment && commentHandler) {\n\t ast.comments = commentHandler.comments;\n\t }\n\t if (parser.config.tokens) {\n\t ast.tokens = parser.tokens;\n\t }\n\t if (parser.config.tolerant) {\n\t ast.errors = parser.errorHandler.errors;\n\t }\n\t return ast;\n\t}\n\texports.parse = parse;\n\tfunction parseModule(code, options, delegate) {\n\t var parsingOptions = options || {};\n\t parsingOptions.sourceType = 'module';\n\t return parse(code, parsingOptions, delegate);\n\t}\n\texports.parseModule = parseModule;\n\tfunction parseScript(code, options, delegate) {\n\t var parsingOptions = options || {};\n\t parsingOptions.sourceType = 'script';\n\t return parse(code, parsingOptions, delegate);\n\t}\n\texports.parseScript = parseScript;\n\tfunction tokenize(code, options, delegate) {\n\t var tokenizer = new tokenizer_1.Tokenizer(code, options);\n\t var tokens;\n\t tokens = [];\n\t try {\n\t while (true) {\n\t var token = tokenizer.getNextToken();\n\t if (!token) {\n\t break;\n\t }\n\t if (delegate) {\n\t token = delegate(token);\n\t }\n\t tokens.push(token);\n\t }\n\t }\n\t catch (e) {\n\t tokenizer.errorHandler.tolerate(e);\n\t }\n\t if (tokenizer.errorHandler.tolerant) {\n\t tokens.errors = tokenizer.errors();\n\t }\n\t return tokens;\n\t}\n\texports.tokenize = tokenize;\n\tvar syntax_1 = __webpack_require__(2);\n\texports.Syntax = syntax_1.Syntax;\n\t// Sync with *.json manifests.\n\texports.version = '4.0.1';\n\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar syntax_1 = __webpack_require__(2);\n\tvar CommentHandler = (function () {\n\t function CommentHandler() {\n\t this.attach = false;\n\t this.comments = [];\n\t this.stack = [];\n\t this.leading = [];\n\t this.trailing = [];\n\t }\n\t CommentHandler.prototype.insertInnerComments = function (node, metadata) {\n\t // innnerComments for properties empty block\n\t // `function a() {/** comments **\\/}`\n\t if (node.type === syntax_1.Syntax.BlockStatement && node.body.length === 0) {\n\t var innerComments = [];\n\t for (var i = this.leading.length - 1; i >= 0; --i) {\n\t var entry = this.leading[i];\n\t if (metadata.end.offset >= entry.start) {\n\t innerComments.unshift(entry.comment);\n\t this.leading.splice(i, 1);\n\t this.trailing.splice(i, 1);\n\t }\n\t }\n\t if (innerComments.length) {\n\t node.innerComments = innerComments;\n\t }\n\t }\n\t };\n\t CommentHandler.prototype.findTrailingComments = function (metadata) {\n\t var trailingComments = [];\n\t if (this.trailing.length > 0) {\n\t for (var i = this.trailing.length - 1; i >= 0; --i) {\n\t var entry_1 = this.trailing[i];\n\t if (entry_1.start >= metadata.end.offset) {\n\t trailingComments.unshift(entry_1.comment);\n\t }\n\t }\n\t this.trailing.length = 0;\n\t return trailingComments;\n\t }\n\t var entry = this.stack[this.stack.length - 1];\n\t if (entry && entry.node.trailingComments) {\n\t var firstComment = entry.node.trailingComments[0];\n\t if (firstComment && firstComment.range[0] >= metadata.end.offset) {\n\t trailingComments = entry.node.trailingComments;\n\t delete entry.node.trailingComments;\n\t }\n\t }\n\t return trailingComments;\n\t };\n\t CommentHandler.prototype.findLeadingComments = function (metadata) {\n\t var leadingComments = [];\n\t var target;\n\t while (this.stack.length > 0) {\n\t var entry = this.stack[this.stack.length - 1];\n\t if (entry && entry.start >= metadata.start.offset) {\n\t target = entry.node;\n\t this.stack.pop();\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t if (target) {\n\t var count = target.leadingComments ? target.leadingComments.length : 0;\n\t for (var i = count - 1; i >= 0; --i) {\n\t var comment = target.leadingComments[i];\n\t if (comment.range[1] <= metadata.start.offset) {\n\t leadingComments.unshift(comment);\n\t target.leadingComments.splice(i, 1);\n\t }\n\t }\n\t if (target.leadingComments && target.leadingComments.length === 0) {\n\t delete target.leadingComments;\n\t }\n\t return leadingComments;\n\t }\n\t for (var i = this.leading.length - 1; i >= 0; --i) {\n\t var entry = this.leading[i];\n\t if (entry.start <= metadata.start.offset) {\n\t leadingComments.unshift(entry.comment);\n\t this.leading.splice(i, 1);\n\t }\n\t }\n\t return leadingComments;\n\t };\n\t CommentHandler.prototype.visitNode = function (node, metadata) {\n\t if (node.type === syntax_1.Syntax.Program && node.body.length > 0) {\n\t return;\n\t }\n\t this.insertInnerComments(node, metadata);\n\t var trailingComments = this.findTrailingComments(metadata);\n\t var leadingComments = this.findLeadingComments(metadata);\n\t if (leadingComments.length > 0) {\n\t node.leadingComments = leadingComments;\n\t }\n\t if (trailingComments.length > 0) {\n\t node.trailingComments = trailingComments;\n\t }\n\t this.stack.push({\n\t node: node,\n\t start: metadata.start.offset\n\t });\n\t };\n\t CommentHandler.prototype.visitComment = function (node, metadata) {\n\t var type = (node.type[0] === 'L') ? 'Line' : 'Block';\n\t var comment = {\n\t type: type,\n\t value: node.value\n\t };\n\t if (node.range) {\n\t comment.range = node.range;\n\t }\n\t if (node.loc) {\n\t comment.loc = node.loc;\n\t }\n\t this.comments.push(comment);\n\t if (this.attach) {\n\t var entry = {\n\t comment: {\n\t type: type,\n\t value: node.value,\n\t range: [metadata.start.offset, metadata.end.offset]\n\t },\n\t start: metadata.start.offset\n\t };\n\t if (node.loc) {\n\t entry.comment.loc = node.loc;\n\t }\n\t node.type = type;\n\t this.leading.push(entry);\n\t this.trailing.push(entry);\n\t }\n\t };\n\t CommentHandler.prototype.visit = function (node, metadata) {\n\t if (node.type === 'LineComment') {\n\t this.visitComment(node, metadata);\n\t }\n\t else if (node.type === 'BlockComment') {\n\t this.visitComment(node, metadata);\n\t }\n\t else if (this.attach) {\n\t this.visitNode(node, metadata);\n\t }\n\t };\n\t return CommentHandler;\n\t}());\n\texports.CommentHandler = CommentHandler;\n\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.Syntax = {\n\t AssignmentExpression: 'AssignmentExpression',\n\t AssignmentPattern: 'AssignmentPattern',\n\t ArrayExpression: 'ArrayExpression',\n\t ArrayPattern: 'ArrayPattern',\n\t ArrowFunctionExpression: 'ArrowFunctionExpression',\n\t AwaitExpression: 'AwaitExpression',\n\t BlockStatement: 'BlockStatement',\n\t BinaryExpression: 'BinaryExpression',\n\t BreakStatement: 'BreakStatement',\n\t CallExpression: 'CallExpression',\n\t CatchClause: 'CatchClause',\n\t ClassBody: 'ClassBody',\n\t ClassDeclaration: 'ClassDeclaration',\n\t ClassExpression: 'ClassExpression',\n\t ConditionalExpression: 'ConditionalExpression',\n\t ContinueStatement: 'ContinueStatement',\n\t DoWhileStatement: 'DoWhileStatement',\n\t DebuggerStatement: 'DebuggerStatement',\n\t EmptyStatement: 'EmptyStatement',\n\t ExportAllDeclaration: 'ExportAllDeclaration',\n\t ExportDefaultDeclaration: 'ExportDefaultDeclaration',\n\t ExportNamedDeclaration: 'ExportNamedDeclaration',\n\t ExportSpecifier: 'ExportSpecifier',\n\t ExpressionStatement: 'ExpressionStatement',\n\t ForStatement: 'ForStatement',\n\t ForOfStatement: 'ForOfStatement',\n\t ForInStatement: 'ForInStatement',\n\t FunctionDeclaration: 'FunctionDeclaration',\n\t FunctionExpression: 'FunctionExpression',\n\t Identifier: 'Identifier',\n\t IfStatement: 'IfStatement',\n\t ImportDeclaration: 'ImportDeclaration',\n\t ImportDefaultSpecifier: 'ImportDefaultSpecifier',\n\t ImportNamespaceSpecifier: 'ImportNamespaceSpecifier',\n\t ImportSpecifier: 'ImportSpecifier',\n\t Literal: 'Literal',\n\t LabeledStatement: 'LabeledStatement',\n\t LogicalExpression: 'LogicalExpression',\n\t MemberExpression: 'MemberExpression',\n\t MetaProperty: 'MetaProperty',\n\t MethodDefinition: 'MethodDefinition',\n\t NewExpression: 'NewExpression',\n\t ObjectExpression: 'ObjectExpression',\n\t ObjectPattern: 'ObjectPattern',\n\t Program: 'Program',\n\t Property: 'Property',\n\t RestElement: 'RestElement',\n\t ReturnStatement: 'ReturnStatement',\n\t SequenceExpression: 'SequenceExpression',\n\t SpreadElement: 'SpreadElement',\n\t Super: 'Super',\n\t SwitchCase: 'SwitchCase',\n\t SwitchStatement: 'SwitchStatement',\n\t TaggedTemplateExpression: 'TaggedTemplateExpression',\n\t TemplateElement: 'TemplateElement',\n\t TemplateLiteral: 'TemplateLiteral',\n\t ThisExpression: 'ThisExpression',\n\t ThrowStatement: 'ThrowStatement',\n\t TryStatement: 'TryStatement',\n\t UnaryExpression: 'UnaryExpression',\n\t UpdateExpression: 'UpdateExpression',\n\t VariableDeclaration: 'VariableDeclaration',\n\t VariableDeclarator: 'VariableDeclarator',\n\t WhileStatement: 'WhileStatement',\n\t WithStatement: 'WithStatement',\n\t YieldExpression: 'YieldExpression'\n\t};\n\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n/* istanbul ignore next */\n\tvar __extends = (this && this.__extends) || (function () {\n\t var extendStatics = Object.setPrototypeOf ||\n\t ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n\t function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n\t return function (d, b) {\n\t extendStatics(d, b);\n\t function __() { this.constructor = d; }\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n\t };\n\t})();\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar character_1 = __webpack_require__(4);\n\tvar JSXNode = __webpack_require__(5);\n\tvar jsx_syntax_1 = __webpack_require__(6);\n\tvar Node = __webpack_require__(7);\n\tvar parser_1 = __webpack_require__(8);\n\tvar token_1 = __webpack_require__(13);\n\tvar xhtml_entities_1 = __webpack_require__(14);\n\ttoken_1.TokenName[100 /* Identifier */] = 'JSXIdentifier';\n\ttoken_1.TokenName[101 /* Text */] = 'JSXText';\n\t// Fully qualified element name, e.g. <svg:path> returns \"svg:path\"\n\tfunction getQualifiedElementName(elementName) {\n\t var qualifiedName;\n\t switch (elementName.type) {\n\t case jsx_syntax_1.JSXSyntax.JSXIdentifier:\n\t var id = elementName;\n\t qualifiedName = id.name;\n\t break;\n\t case jsx_syntax_1.JSXSyntax.JSXNamespacedName:\n\t var ns = elementName;\n\t qualifiedName = getQualifiedElementName(ns.namespace) + ':' +\n\t getQualifiedElementName(ns.name);\n\t break;\n\t case jsx_syntax_1.JSXSyntax.JSXMemberExpression:\n\t var expr = elementName;\n\t qualifiedName = getQualifiedElementName(expr.object) + '.' +\n\t getQualifiedElementName(expr.property);\n\t break;\n\t /* istanbul ignore next */\n\t default:\n\t break;\n\t }\n\t return qualifiedName;\n\t}\n\tvar JSXParser = (function (_super) {\n\t __extends(JSXParser, _super);\n\t function JSXParser(code, options, delegate) {\n\t return _super.call(this, code, options, delegate) || this;\n\t }\n\t JSXParser.prototype.parsePrimaryExpression = function () {\n\t return this.match('<') ? this.parseJSXRoot() : _super.prototype.parsePrimaryExpression.call(this);\n\t };\n\t JSXParser.prototype.startJSX = function () {\n\t // Unwind the scanner before the lookahead token.\n\t this.scanner.index = this.startMarker.index;\n\t this.scanner.lineNumber = this.startMarker.line;\n\t this.scanner.lineStart = this.startMarker.index - this.startMarker.column;\n\t };\n\t JSXParser.prototype.finishJSX = function () {\n\t // Prime the next lookahead.\n\t this.nextToken();\n\t };\n\t JSXParser.prototype.reenterJSX = function () {\n\t this.startJSX();\n\t this.expectJSX('}');\n\t // Pop the closing '}' added from the lookahead.\n\t if (this.config.tokens) {\n\t this.tokens.pop();\n\t }\n\t };\n\t JSXParser.prototype.createJSXNode = function () {\n\t this.collectComments();\n\t return {\n\t index: this.scanner.index,\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t };\n\t JSXParser.prototype.createJSXChildNode = function () {\n\t return {\n\t index: this.scanner.index,\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t };\n\t JSXParser.prototype.scanXHTMLEntity = function (quote) {\n\t var result = '&';\n\t var valid = true;\n\t var terminated = false;\n\t var numeric = false;\n\t var hex = false;\n\t while (!this.scanner.eof() && valid && !terminated) {\n\t var ch = this.scanner.source[this.scanner.index];\n\t if (ch === quote) {\n\t break;\n\t }\n\t terminated = (ch === ';');\n\t result += ch;\n\t ++this.scanner.index;\n\t if (!terminated) {\n\t switch (result.length) {\n\t case 2:\n\t // e.g. '{'\n\t numeric = (ch === '#');\n\t break;\n\t case 3:\n\t if (numeric) {\n\t // e.g. 'A'\n\t hex = (ch === 'x');\n\t valid = hex || character_1.Character.isDecimalDigit(ch.charCodeAt(0));\n\t numeric = numeric && !hex;\n\t }\n\t break;\n\t default:\n\t valid = valid && !(numeric && !character_1.Character.isDecimalDigit(ch.charCodeAt(0)));\n\t valid = valid && !(hex && !character_1.Character.isHexDigit(ch.charCodeAt(0)));\n\t break;\n\t }\n\t }\n\t }\n\t if (valid && terminated && result.length > 2) {\n\t // e.g. 'A' becomes just '#x41'\n\t var str = result.substr(1, result.length - 2);\n\t if (numeric && str.length > 1) {\n\t result = String.fromCharCode(parseInt(str.substr(1), 10));\n\t }\n\t else if (hex && str.length > 2) {\n\t result = String.fromCharCode(parseInt('0' + str.substr(1), 16));\n\t }\n\t else if (!numeric && !hex && xhtml_entities_1.XHTMLEntities[str]) {\n\t result = xhtml_entities_1.XHTMLEntities[str];\n\t }\n\t }\n\t return result;\n\t };\n\t // Scan the next JSX token. This replaces Scanner#lex when in JSX mode.\n\t JSXParser.prototype.lexJSX = function () {\n\t var cp = this.scanner.source.charCodeAt(this.scanner.index);\n\t // < > / : = { }\n\t if (cp === 60 || cp === 62 || cp === 47 || cp === 58 || cp === 61 || cp === 123 || cp === 125) {\n\t var value = this.scanner.source[this.scanner.index++];\n\t return {\n\t type: 7 /* Punctuator */,\n\t value: value,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: this.scanner.index - 1,\n\t end: this.scanner.index\n\t };\n\t }\n\t // \" '\n\t if (cp === 34 || cp === 39) {\n\t var start = this.scanner.index;\n\t var quote = this.scanner.source[this.scanner.index++];\n\t var str = '';\n\t while (!this.scanner.eof()) {\n\t var ch = this.scanner.source[this.scanner.index++];\n\t if (ch === quote) {\n\t break;\n\t }\n\t else if (ch === '&') {\n\t str += this.scanXHTMLEntity(quote);\n\t }\n\t else {\n\t str += ch;\n\t }\n\t }\n\t return {\n\t type: 8 /* StringLiteral */,\n\t value: str,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t }\n\t // ... or .\n\t if (cp === 46) {\n\t var n1 = this.scanner.source.charCodeAt(this.scanner.index + 1);\n\t var n2 = this.scanner.source.charCodeAt(this.scanner.index + 2);\n\t var value = (n1 === 46 && n2 === 46) ? '...' : '.';\n\t var start = this.scanner.index;\n\t this.scanner.index += value.length;\n\t return {\n\t type: 7 /* Punctuator */,\n\t value: value,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t }\n\t // `\n\t if (cp === 96) {\n\t // Only placeholder, since it will be rescanned as a real assignment expression.\n\t return {\n\t type: 10 /* Template */,\n\t value: '',\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: this.scanner.index,\n\t end: this.scanner.index\n\t };\n\t }\n\t // Identifer can not contain backslash (char code 92).\n\t if (character_1.Character.isIdentifierStart(cp) && (cp !== 92)) {\n\t var start = this.scanner.index;\n\t ++this.scanner.index;\n\t while (!this.scanner.eof()) {\n\t var ch = this.scanner.source.charCodeAt(this.scanner.index);\n\t if (character_1.Character.isIdentifierPart(ch) && (ch !== 92)) {\n\t ++this.scanner.index;\n\t }\n\t else if (ch === 45) {\n\t // Hyphen (char code 45) can be part of an identifier.\n\t ++this.scanner.index;\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t var id = this.scanner.source.slice(start, this.scanner.index);\n\t return {\n\t type: 100 /* Identifier */,\n\t value: id,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t }\n\t return this.scanner.lex();\n\t };\n\t JSXParser.prototype.nextJSXToken = function () {\n\t this.collectComments();\n\t this.startMarker.index = this.scanner.index;\n\t this.startMarker.line = this.scanner.lineNumber;\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\n\t var token = this.lexJSX();\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t if (this.config.tokens) {\n\t this.tokens.push(this.convertToken(token));\n\t }\n\t return token;\n\t };\n\t JSXParser.prototype.nextJSXText = function () {\n\t this.startMarker.index = this.scanner.index;\n\t this.startMarker.line = this.scanner.lineNumber;\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\n\t var start = this.scanner.index;\n\t var text = '';\n\t while (!this.scanner.eof()) {\n\t var ch = this.scanner.source[this.scanner.index];\n\t if (ch === '{' || ch === '<') {\n\t break;\n\t }\n\t ++this.scanner.index;\n\t text += ch;\n\t if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t ++this.scanner.lineNumber;\n\t if (ch === '\\r' && this.scanner.source[this.scanner.index] === '\\n') {\n\t ++this.scanner.index;\n\t }\n\t this.scanner.lineStart = this.scanner.index;\n\t }\n\t }\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t var token = {\n\t type: 101 /* Text */,\n\t value: text,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t if ((text.length > 0) && this.config.tokens) {\n\t this.tokens.push(this.convertToken(token));\n\t }\n\t return token;\n\t };\n\t JSXParser.prototype.peekJSXToken = function () {\n\t var state = this.scanner.saveState();\n\t this.scanner.scanComments();\n\t var next = this.lexJSX();\n\t this.scanner.restoreState(state);\n\t return next;\n\t };\n\t // Expect the next JSX token to match the specified punctuator.\n\t // If not, an exception will be thrown.\n\t JSXParser.prototype.expectJSX = function (value) {\n\t var token = this.nextJSXToken();\n\t if (token.type !== 7 /* Punctuator */ || token.value !== value) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t };\n\t // Return true if the next JSX token matches the specified punctuator.\n\t JSXParser.prototype.matchJSX = function (value) {\n\t var next = this.peekJSXToken();\n\t return next.type === 7 /* Punctuator */ && next.value === value;\n\t };\n\t JSXParser.prototype.parseJSXIdentifier = function () {\n\t var node = this.createJSXNode();\n\t var token = this.nextJSXToken();\n\t if (token.type !== 100 /* Identifier */) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t return this.finalize(node, new JSXNode.JSXIdentifier(token.value));\n\t };\n\t JSXParser.prototype.parseJSXElementName = function () {\n\t var node = this.createJSXNode();\n\t var elementName = this.parseJSXIdentifier();\n\t if (this.matchJSX(':')) {\n\t var namespace = elementName;\n\t this.expectJSX(':');\n\t var name_1 = this.parseJSXIdentifier();\n\t elementName = this.finalize(node, new JSXNode.JSXNamespacedName(namespace, name_1));\n\t }\n\t else if (this.matchJSX('.')) {\n\t while (this.matchJSX('.')) {\n\t var object = elementName;\n\t this.expectJSX('.');\n\t var property = this.parseJSXIdentifier();\n\t elementName = this.finalize(node, new JSXNode.JSXMemberExpression(object, property));\n\t }\n\t }\n\t return elementName;\n\t };\n\t JSXParser.prototype.parseJSXAttributeName = function () {\n\t var node = this.createJSXNode();\n\t var attributeName;\n\t var identifier = this.parseJSXIdentifier();\n\t if (this.matchJSX(':')) {\n\t var namespace = identifier;\n\t this.expectJSX(':');\n\t var name_2 = this.parseJSXIdentifier();\n\t attributeName = this.finalize(node, new JSXNode.JSXNamespacedName(namespace, name_2));\n\t }\n\t else {\n\t attributeName = identifier;\n\t }\n\t return attributeName;\n\t };\n\t JSXParser.prototype.parseJSXStringLiteralAttribute = function () {\n\t var node = this.createJSXNode();\n\t var token = this.nextJSXToken();\n\t if (token.type !== 8 /* StringLiteral */) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t var raw = this.getTokenRaw(token);\n\t return this.finalize(node, new Node.Literal(token.value, raw));\n\t };\n\t JSXParser.prototype.parseJSXExpressionAttribute = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('{');\n\t this.finishJSX();\n\t if (this.match('}')) {\n\t this.tolerateError('JSX attributes must only be assigned a non-empty expression');\n\t }\n\t var expression = this.parseAssignmentExpression();\n\t this.reenterJSX();\n\t return this.finalize(node, new JSXNode.JSXExpressionContainer(expression));\n\t };\n\t JSXParser.prototype.parseJSXAttributeValue = function () {\n\t return this.matchJSX('{') ? this.parseJSXExpressionAttribute() :\n\t this.matchJSX('<') ? this.parseJSXElement() : this.parseJSXStringLiteralAttribute();\n\t };\n\t JSXParser.prototype.parseJSXNameValueAttribute = function () {\n\t var node = this.createJSXNode();\n\t var name = this.parseJSXAttributeName();\n\t var value = null;\n\t if (this.matchJSX('=')) {\n\t this.expectJSX('=');\n\t value = this.parseJSXAttributeValue();\n\t }\n\t return this.finalize(node, new JSXNode.JSXAttribute(name, value));\n\t };\n\t JSXParser.prototype.parseJSXSpreadAttribute = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('{');\n\t this.expectJSX('...');\n\t this.finishJSX();\n\t var argument = this.parseAssignmentExpression();\n\t this.reenterJSX();\n\t return this.finalize(node, new JSXNode.JSXSpreadAttribute(argument));\n\t };\n\t JSXParser.prototype.parseJSXAttributes = function () {\n\t var attributes = [];\n\t while (!this.matchJSX('/') && !this.matchJSX('>')) {\n\t var attribute = this.matchJSX('{') ? this.parseJSXSpreadAttribute() :\n\t this.parseJSXNameValueAttribute();\n\t attributes.push(attribute);\n\t }\n\t return attributes;\n\t };\n\t JSXParser.prototype.parseJSXOpeningElement = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('<');\n\t var name = this.parseJSXElementName();\n\t var attributes = this.parseJSXAttributes();\n\t var selfClosing = this.matchJSX('/');\n\t if (selfClosing) {\n\t this.expectJSX('/');\n\t }\n\t this.expectJSX('>');\n\t return this.finalize(node, new JSXNode.JSXOpeningElement(name, selfClosing, attributes));\n\t };\n\t JSXParser.prototype.parseJSXBoundaryElement = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('<');\n\t if (this.matchJSX('/')) {\n\t this.expectJSX('/');\n\t var name_3 = this.parseJSXElementName();\n\t this.expectJSX('>');\n\t return this.finalize(node, new JSXNode.JSXClosingElement(name_3));\n\t }\n\t var name = this.parseJSXElementName();\n\t var attributes = this.parseJSXAttributes();\n\t var selfClosing = this.matchJSX('/');\n\t if (selfClosing) {\n\t this.expectJSX('/');\n\t }\n\t this.expectJSX('>');\n\t return this.finalize(node, new JSXNode.JSXOpeningElement(name, selfClosing, attributes));\n\t };\n\t JSXParser.prototype.parseJSXEmptyExpression = function () {\n\t var node = this.createJSXChildNode();\n\t this.collectComments();\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t return this.finalize(node, new JSXNode.JSXEmptyExpression());\n\t };\n\t JSXParser.prototype.parseJSXExpressionContainer = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('{');\n\t var expression;\n\t if (this.matchJSX('}')) {\n\t expression = this.parseJSXEmptyExpression();\n\t this.expectJSX('}');\n\t }\n\t else {\n\t this.finishJSX();\n\t expression = this.parseAssignmentExpression();\n\t this.reenterJSX();\n\t }\n\t return this.finalize(node, new JSXNode.JSXExpressionContainer(expression));\n\t };\n\t JSXParser.prototype.parseJSXChildren = function () {\n\t var children = [];\n\t while (!this.scanner.eof()) {\n\t var node = this.createJSXChildNode();\n\t var token = this.nextJSXText();\n\t if (token.start < token.end) {\n\t var raw = this.getTokenRaw(token);\n\t var child = this.finalize(node, new JSXNode.JSXText(token.value, raw));\n\t children.push(child);\n\t }\n\t if (this.scanner.source[this.scanner.index] === '{') {\n\t var container = this.parseJSXExpressionContainer();\n\t children.push(container);\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t return children;\n\t };\n\t JSXParser.prototype.parseComplexJSXElement = function (el) {\n\t var stack = [];\n\t while (!this.scanner.eof()) {\n\t el.children = el.children.concat(this.parseJSXChildren());\n\t var node = this.createJSXChildNode();\n\t var element = this.parseJSXBoundaryElement();\n\t if (element.type === jsx_syntax_1.JSXSyntax.JSXOpeningElement) {\n\t var opening = element;\n\t if (opening.selfClosing) {\n\t var child = this.finalize(node, new JSXNode.JSXElement(opening, [], null));\n\t el.children.push(child);\n\t }\n\t else {\n\t stack.push(el);\n\t el = { node: node, opening: opening, closing: null, children: [] };\n\t }\n\t }\n\t if (element.type === jsx_syntax_1.JSXSyntax.JSXClosingElement) {\n\t el.closing = element;\n\t var open_1 = getQualifiedElementName(el.opening.name);\n\t var close_1 = getQualifiedElementName(el.closing.name);\n\t if (open_1 !== close_1) {\n\t this.tolerateError('Expected corresponding JSX closing tag for %0', open_1);\n\t }\n\t if (stack.length > 0) {\n\t var child = this.finalize(el.node, new JSXNode.JSXElement(el.opening, el.children, el.closing));\n\t el = stack[stack.length - 1];\n\t el.children.push(child);\n\t stack.pop();\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t }\n\t return el;\n\t };\n\t JSXParser.prototype.parseJSXElement = function () {\n\t var node = this.createJSXNode();\n\t var opening = this.parseJSXOpeningElement();\n\t var children = [];\n\t var closing = null;\n\t if (!opening.selfClosing) {\n\t var el = this.parseComplexJSXElement({ node: node, opening: opening, closing: closing, children: children });\n\t children = el.children;\n\t closing = el.closing;\n\t }\n\t return this.finalize(node, new JSXNode.JSXElement(opening, children, closing));\n\t };\n\t JSXParser.prototype.parseJSXRoot = function () {\n\t // Pop the opening '<' added from the lookahead.\n\t if (this.config.tokens) {\n\t this.tokens.pop();\n\t }\n\t this.startJSX();\n\t var element = this.parseJSXElement();\n\t this.finishJSX();\n\t return element;\n\t };\n\t JSXParser.prototype.isStartOfExpression = function () {\n\t return _super.prototype.isStartOfExpression.call(this) || this.match('<');\n\t };\n\t return JSXParser;\n\t}(parser_1.Parser));\n\texports.JSXParser = JSXParser;\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\t// See also tools/generate-unicode-regex.js.\n\tvar Regex = {\n\t // Unicode v8.0.0 NonAsciiIdentifierStart:\n\t NonAsciiIdentifierStart: /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309B-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF19]|\\uD806[\\uDCA0-\\uDCDF\\uDCFF\\uDEC0-\\uDEF8]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]/,\n\t // Unicode v8.0.0 NonAsciiIdentifierPart:\n\t NonAsciiIdentifierPart: /[\\xAA\\xB5\\xB7\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B4\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1369-\\u1371\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDDFD\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF7A\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE38-\\uDE3A\\uDE3F\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE6\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC00-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDCBA\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD00-\\uDD34\\uDD36-\\uDD3F\\uDD50-\\uDD73\\uDD76\\uDD80-\\uDDC4\\uDDCA-\\uDDCC\\uDDD0-\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE37\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3C-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF50\\uDF57\\uDF5D-\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC80-\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDB5\\uDDB8-\\uDDC0\\uDDD8-\\uDDDD\\uDE00-\\uDE40\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEB7\\uDEC0-\\uDEC9\\uDF00-\\uDF19\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDCA0-\\uDCE9\\uDCFF\\uDEC0-\\uDEF8]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDEF0-\\uDEF4\\uDF00-\\uDF36\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50-\\uDF7E\\uDF8F-\\uDF9F]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD83A[\\uDC00-\\uDCC4\\uDCD0-\\uDCD6]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]|\\uDB40[\\uDD00-\\uDDEF]/\n\t};\n\texports.Character = {\n\t /* tslint:disable:no-bitwise */\n\t fromCodePoint: function (cp) {\n\t return (cp < 0x10000) ? String.fromCharCode(cp) :\n\t String.fromCharCode(0xD800 + ((cp - 0x10000) >> 10)) +\n\t String.fromCharCode(0xDC00 + ((cp - 0x10000) & 1023));\n\t },\n\t // https://tc39.github.io/ecma262/#sec-white-space\n\t isWhiteSpace: function (cp) {\n\t return (cp === 0x20) || (cp === 0x09) || (cp === 0x0B) || (cp === 0x0C) || (cp === 0xA0) ||\n\t (cp >= 0x1680 && [0x1680, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x202F, 0x205F, 0x3000, 0xFEFF].indexOf(cp) >= 0);\n\t },\n\t // https://tc39.github.io/ecma262/#sec-line-terminators\n\t isLineTerminator: function (cp) {\n\t return (cp === 0x0A) || (cp === 0x0D) || (cp === 0x2028) || (cp === 0x2029);\n\t },\n\t // https://tc39.github.io/ecma262/#sec-names-and-keywords\n\t isIdentifierStart: function (cp) {\n\t return (cp === 0x24) || (cp === 0x5F) ||\n\t (cp >= 0x41 && cp <= 0x5A) ||\n\t (cp >= 0x61 && cp <= 0x7A) ||\n\t (cp === 0x5C) ||\n\t ((cp >= 0x80) && Regex.NonAsciiIdentifierStart.test(exports.Character.fromCodePoint(cp)));\n\t },\n\t isIdentifierPart: function (cp) {\n\t return (cp === 0x24) || (cp === 0x5F) ||\n\t (cp >= 0x41 && cp <= 0x5A) ||\n\t (cp >= 0x61 && cp <= 0x7A) ||\n\t (cp >= 0x30 && cp <= 0x39) ||\n\t (cp === 0x5C) ||\n\t ((cp >= 0x80) && Regex.NonAsciiIdentifierPart.test(exports.Character.fromCodePoint(cp)));\n\t },\n\t // https://tc39.github.io/ecma262/#sec-literals-numeric-literals\n\t isDecimalDigit: function (cp) {\n\t return (cp >= 0x30 && cp <= 0x39); // 0..9\n\t },\n\t isHexDigit: function (cp) {\n\t return (cp >= 0x30 && cp <= 0x39) ||\n\t (cp >= 0x41 && cp <= 0x46) ||\n\t (cp >= 0x61 && cp <= 0x66); // a..f\n\t },\n\t isOctalDigit: function (cp) {\n\t return (cp >= 0x30 && cp <= 0x37); // 0..7\n\t }\n\t};\n\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar jsx_syntax_1 = __webpack_require__(6);\n\t/* tslint:disable:max-classes-per-file */\n\tvar JSXClosingElement = (function () {\n\t function JSXClosingElement(name) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXClosingElement;\n\t this.name = name;\n\t }\n\t return JSXClosingElement;\n\t}());\n\texports.JSXClosingElement = JSXClosingElement;\n\tvar JSXElement = (function () {\n\t function JSXElement(openingElement, children, closingElement) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXElement;\n\t this.openingElement = openingElement;\n\t this.children = children;\n\t this.closingElement = closingElement;\n\t }\n\t return JSXElement;\n\t}());\n\texports.JSXElement = JSXElement;\n\tvar JSXEmptyExpression = (function () {\n\t function JSXEmptyExpression() {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXEmptyExpression;\n\t }\n\t return JSXEmptyExpression;\n\t}());\n\texports.JSXEmptyExpression = JSXEmptyExpression;\n\tvar JSXExpressionContainer = (function () {\n\t function JSXExpressionContainer(expression) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXExpressionContainer;\n\t this.expression = expression;\n\t }\n\t return JSXExpressionContainer;\n\t}());\n\texports.JSXExpressionContainer = JSXExpressionContainer;\n\tvar JSXIdentifier = (function () {\n\t function JSXIdentifier(name) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXIdentifier;\n\t this.name = name;\n\t }\n\t return JSXIdentifier;\n\t}());\n\texports.JSXIdentifier = JSXIdentifier;\n\tvar JSXMemberExpression = (function () {\n\t function JSXMemberExpression(object, property) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXMemberExpression;\n\t this.object = object;\n\t this.property = property;\n\t }\n\t return JSXMemberExpression;\n\t}());\n\texports.JSXMemberExpression = JSXMemberExpression;\n\tvar JSXAttribute = (function () {\n\t function JSXAttribute(name, value) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXAttribute;\n\t this.name = name;\n\t this.value = value;\n\t }\n\t return JSXAttribute;\n\t}());\n\texports.JSXAttribute = JSXAttribute;\n\tvar JSXNamespacedName = (function () {\n\t function JSXNamespacedName(namespace, name) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXNamespacedName;\n\t this.namespace = namespace;\n\t this.name = name;\n\t }\n\t return JSXNamespacedName;\n\t}());\n\texports.JSXNamespacedName = JSXNamespacedName;\n\tvar JSXOpeningElement = (function () {\n\t function JSXOpeningElement(name, selfClosing, attributes) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXOpeningElement;\n\t this.name = name;\n\t this.selfClosing = selfClosing;\n\t this.attributes = attributes;\n\t }\n\t return JSXOpeningElement;\n\t}());\n\texports.JSXOpeningElement = JSXOpeningElement;\n\tvar JSXSpreadAttribute = (function () {\n\t function JSXSpreadAttribute(argument) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXSpreadAttribute;\n\t this.argument = argument;\n\t }\n\t return JSXSpreadAttribute;\n\t}());\n\texports.JSXSpreadAttribute = JSXSpreadAttribute;\n\tvar JSXText = (function () {\n\t function JSXText(value, raw) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXText;\n\t this.value = value;\n\t this.raw = raw;\n\t }\n\t return JSXText;\n\t}());\n\texports.JSXText = JSXText;\n\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.JSXSyntax = {\n\t JSXAttribute: 'JSXAttribute',\n\t JSXClosingElement: 'JSXClosingElement',\n\t JSXElement: 'JSXElement',\n\t JSXEmptyExpression: 'JSXEmptyExpression',\n\t JSXExpressionContainer: 'JSXExpressionContainer',\n\t JSXIdentifier: 'JSXIdentifier',\n\t JSXMemberExpression: 'JSXMemberExpression',\n\t JSXNamespacedName: 'JSXNamespacedName',\n\t JSXOpeningElement: 'JSXOpeningElement',\n\t JSXSpreadAttribute: 'JSXSpreadAttribute',\n\t JSXText: 'JSXText'\n\t};\n\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar syntax_1 = __webpack_require__(2);\n\t/* tslint:disable:max-classes-per-file */\n\tvar ArrayExpression = (function () {\n\t function ArrayExpression(elements) {\n\t this.type = syntax_1.Syntax.ArrayExpression;\n\t this.elements = elements;\n\t }\n\t return ArrayExpression;\n\t}());\n\texports.ArrayExpression = ArrayExpression;\n\tvar ArrayPattern = (function () {\n\t function ArrayPattern(elements) {\n\t this.type = syntax_1.Syntax.ArrayPattern;\n\t this.elements = elements;\n\t }\n\t return ArrayPattern;\n\t}());\n\texports.ArrayPattern = ArrayPattern;\n\tvar ArrowFunctionExpression = (function () {\n\t function ArrowFunctionExpression(params, body, expression) {\n\t this.type = syntax_1.Syntax.ArrowFunctionExpression;\n\t this.id = null;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = expression;\n\t this.async = false;\n\t }\n\t return ArrowFunctionExpression;\n\t}());\n\texports.ArrowFunctionExpression = ArrowFunctionExpression;\n\tvar AssignmentExpression = (function () {\n\t function AssignmentExpression(operator, left, right) {\n\t this.type = syntax_1.Syntax.AssignmentExpression;\n\t this.operator = operator;\n\t this.left = left;\n\t this.right = right;\n\t }\n\t return AssignmentExpression;\n\t}());\n\texports.AssignmentExpression = AssignmentExpression;\n\tvar AssignmentPattern = (function () {\n\t function AssignmentPattern(left, right) {\n\t this.type = syntax_1.Syntax.AssignmentPattern;\n\t this.left = left;\n\t this.right = right;\n\t }\n\t return AssignmentPattern;\n\t}());\n\texports.AssignmentPattern = AssignmentPattern;\n\tvar AsyncArrowFunctionExpression = (function () {\n\t function AsyncArrowFunctionExpression(params, body, expression) {\n\t this.type = syntax_1.Syntax.ArrowFunctionExpression;\n\t this.id = null;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = expression;\n\t this.async = true;\n\t }\n\t return AsyncArrowFunctionExpression;\n\t}());\n\texports.AsyncArrowFunctionExpression = AsyncArrowFunctionExpression;\n\tvar AsyncFunctionDeclaration = (function () {\n\t function AsyncFunctionDeclaration(id, params, body) {\n\t this.type = syntax_1.Syntax.FunctionDeclaration;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = false;\n\t this.async = true;\n\t }\n\t return AsyncFunctionDeclaration;\n\t}());\n\texports.AsyncFunctionDeclaration = AsyncFunctionDeclaration;\n\tvar AsyncFunctionExpression = (function () {\n\t function AsyncFunctionExpression(id, params, body) {\n\t this.type = syntax_1.Syntax.FunctionExpression;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = false;\n\t this.async = true;\n\t }\n\t return AsyncFunctionExpression;\n\t}());\n\texports.AsyncFunctionExpression = AsyncFunctionExpression;\n\tvar AwaitExpression = (function () {\n\t function AwaitExpression(argument) {\n\t this.type = syntax_1.Syntax.AwaitExpression;\n\t this.argument = argument;\n\t }\n\t return AwaitExpression;\n\t}());\n\texports.AwaitExpression = AwaitExpression;\n\tvar BinaryExpression = (function () {\n\t function BinaryExpression(operator, left, right) {\n\t var logical = (operator === '||' || operator === '&&');\n\t this.type = logical ? syntax_1.Syntax.LogicalExpression : syntax_1.Syntax.BinaryExpression;\n\t this.operator = operator;\n\t this.left = left;\n\t this.right = right;\n\t }\n\t return BinaryExpression;\n\t}());\n\texports.BinaryExpression = BinaryExpression;\n\tvar BlockStatement = (function () {\n\t function BlockStatement(body) {\n\t this.type = syntax_1.Syntax.BlockStatement;\n\t this.body = body;\n\t }\n\t return BlockStatement;\n\t}());\n\texports.BlockStatement = BlockStatement;\n\tvar BreakStatement = (function () {\n\t function BreakStatement(label) {\n\t this.type = syntax_1.Syntax.BreakStatement;\n\t this.label = label;\n\t }\n\t return BreakStatement;\n\t}());\n\texports.BreakStatement = BreakStatement;\n\tvar CallExpression = (function () {\n\t function CallExpression(callee, args) {\n\t this.type = syntax_1.Syntax.CallExpression;\n\t this.callee = callee;\n\t this.arguments = args;\n\t }\n\t return CallExpression;\n\t}());\n\texports.CallExpression = CallExpression;\n\tvar CatchClause = (function () {\n\t function CatchClause(param, body) {\n\t this.type = syntax_1.Syntax.CatchClause;\n\t this.param = param;\n\t this.body = body;\n\t }\n\t return CatchClause;\n\t}());\n\texports.CatchClause = CatchClause;\n\tvar ClassBody = (function () {\n\t function ClassBody(body) {\n\t this.type = syntax_1.Syntax.ClassBody;\n\t this.body = body;\n\t }\n\t return ClassBody;\n\t}());\n\texports.ClassBody = ClassBody;\n\tvar ClassDeclaration = (function () {\n\t function ClassDeclaration(id, superClass, body) {\n\t this.type = syntax_1.Syntax.ClassDeclaration;\n\t this.id = id;\n\t this.superClass = superClass;\n\t this.body = body;\n\t }\n\t return ClassDeclaration;\n\t}());\n\texports.ClassDeclaration = ClassDeclaration;\n\tvar ClassExpression = (function () {\n\t function ClassExpression(id, superClass, body) {\n\t this.type = syntax_1.Syntax.ClassExpression;\n\t this.id = id;\n\t this.superClass = superClass;\n\t this.body = body;\n\t }\n\t return ClassExpression;\n\t}());\n\texports.ClassExpression = ClassExpression;\n\tvar ComputedMemberExpression = (function () {\n\t function ComputedMemberExpression(object, property) {\n\t this.type = syntax_1.Syntax.MemberExpression;\n\t this.computed = true;\n\t this.object = object;\n\t this.property = property;\n\t }\n\t return ComputedMemberExpression;\n\t}());\n\texports.ComputedMemberExpression = ComputedMemberExpression;\n\tvar ConditionalExpression = (function () {\n\t function ConditionalExpression(test, consequent, alternate) {\n\t this.type = syntax_1.Syntax.ConditionalExpression;\n\t this.test = test;\n\t this.consequent = consequent;\n\t this.alternate = alternate;\n\t }\n\t return ConditionalExpression;\n\t}());\n\texports.ConditionalExpression = ConditionalExpression;\n\tvar ContinueStatement = (function () {\n\t function ContinueStatement(label) {\n\t this.type = syntax_1.Syntax.ContinueStatement;\n\t this.label = label;\n\t }\n\t return ContinueStatement;\n\t}());\n\texports.ContinueStatement = ContinueStatement;\n\tvar DebuggerStatement = (function () {\n\t function DebuggerStatement() {\n\t this.type = syntax_1.Syntax.DebuggerStatement;\n\t }\n\t return DebuggerStatement;\n\t}());\n\texports.DebuggerStatement = DebuggerStatement;\n\tvar Directive = (function () {\n\t function Directive(expression, directive) {\n\t this.type = syntax_1.Syntax.ExpressionStatement;\n\t this.expression = expression;\n\t this.directive = directive;\n\t }\n\t return Directive;\n\t}());\n\texports.Directive = Directive;\n\tvar DoWhileStatement = (function () {\n\t function DoWhileStatement(body, test) {\n\t this.type = syntax_1.Syntax.DoWhileStatement;\n\t this.body = body;\n\t this.test = test;\n\t }\n\t return DoWhileStatement;\n\t}());\n\texports.DoWhileStatement = DoWhileStatement;\n\tvar EmptyStatement = (function () {\n\t function EmptyStatement() {\n\t this.type = syntax_1.Syntax.EmptyStatement;\n\t }\n\t return EmptyStatement;\n\t}());\n\texports.EmptyStatement = EmptyStatement;\n\tvar ExportAllDeclaration = (function () {\n\t function ExportAllDeclaration(source) {\n\t this.type = syntax_1.Syntax.ExportAllDeclaration;\n\t this.source = source;\n\t }\n\t return ExportAllDeclaration;\n\t}());\n\texports.ExportAllDeclaration = ExportAllDeclaration;\n\tvar ExportDefaultDeclaration = (function () {\n\t function ExportDefaultDeclaration(declaration) {\n\t this.type = syntax_1.Syntax.ExportDefaultDeclaration;\n\t this.declaration = declaration;\n\t }\n\t return ExportDefaultDeclaration;\n\t}());\n\texports.ExportDefaultDeclaration = ExportDefaultDeclaration;\n\tvar ExportNamedDeclaration = (function () {\n\t function ExportNamedDeclaration(declaration, specifiers, source) {\n\t this.type = syntax_1.Syntax.ExportNamedDeclaration;\n\t this.declaration = declaration;\n\t this.specifiers = specifiers;\n\t this.source = source;\n\t }\n\t return ExportNamedDeclaration;\n\t}());\n\texports.ExportNamedDeclaration = ExportNamedDeclaration;\n\tvar ExportSpecifier = (function () {\n\t function ExportSpecifier(local, exported) {\n\t this.type = syntax_1.Syntax.ExportSpecifier;\n\t this.exported = exported;\n\t this.local = local;\n\t }\n\t return ExportSpecifier;\n\t}());\n\texports.ExportSpecifier = ExportSpecifier;\n\tvar ExpressionStatement = (function () {\n\t function ExpressionStatement(expression) {\n\t this.type = syntax_1.Syntax.ExpressionStatement;\n\t this.expression = expression;\n\t }\n\t return ExpressionStatement;\n\t}());\n\texports.ExpressionStatement = ExpressionStatement;\n\tvar ForInStatement = (function () {\n\t function ForInStatement(left, right, body) {\n\t this.type = syntax_1.Syntax.ForInStatement;\n\t this.left = left;\n\t this.right = right;\n\t this.body = body;\n\t this.each = false;\n\t }\n\t return ForInStatement;\n\t}());\n\texports.ForInStatement = ForInStatement;\n\tvar ForOfStatement = (function () {\n\t function ForOfStatement(left, right, body) {\n\t this.type = syntax_1.Syntax.ForOfStatement;\n\t this.left = left;\n\t this.right = right;\n\t this.body = body;\n\t }\n\t return ForOfStatement;\n\t}());\n\texports.ForOfStatement = ForOfStatement;\n\tvar ForStatement = (function () {\n\t function ForStatement(init, test, update, body) {\n\t this.type = syntax_1.Syntax.ForStatement;\n\t this.init = init;\n\t this.test = test;\n\t this.update = update;\n\t this.body = body;\n\t }\n\t return ForStatement;\n\t}());\n\texports.ForStatement = ForStatement;\n\tvar FunctionDeclaration = (function () {\n\t function FunctionDeclaration(id, params, body, generator) {\n\t this.type = syntax_1.Syntax.FunctionDeclaration;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = generator;\n\t this.expression = false;\n\t this.async = false;\n\t }\n\t return FunctionDeclaration;\n\t}());\n\texports.FunctionDeclaration = FunctionDeclaration;\n\tvar FunctionExpression = (function () {\n\t function FunctionExpression(id, params, body, generator) {\n\t this.type = syntax_1.Syntax.FunctionExpression;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = generator;\n\t this.expression = false;\n\t this.async = false;\n\t }\n\t return FunctionExpression;\n\t}());\n\texports.FunctionExpression = FunctionExpression;\n\tvar Identifier = (function () {\n\t function Identifier(name) {\n\t this.type = syntax_1.Syntax.Identifier;\n\t this.name = name;\n\t }\n\t return Identifier;\n\t}());\n\texports.Identifier = Identifier;\n\tvar IfStatement = (function () {\n\t function IfStatement(test, consequent, alternate) {\n\t this.type = syntax_1.Syntax.IfStatement;\n\t this.test = test;\n\t this.consequent = consequent;\n\t this.alternate = alternate;\n\t }\n\t return IfStatement;\n\t}());\n\texports.IfStatement = IfStatement;\n\tvar ImportDeclaration = (function () {\n\t function ImportDeclaration(specifiers, source) {\n\t this.type = syntax_1.Syntax.ImportDeclaration;\n\t this.specifiers = specifiers;\n\t this.source = source;\n\t }\n\t return ImportDeclaration;\n\t}());\n\texports.ImportDeclaration = ImportDeclaration;\n\tvar ImportDefaultSpecifier = (function () {\n\t function ImportDefaultSpecifier(local) {\n\t this.type = syntax_1.Syntax.ImportDefaultSpecifier;\n\t this.local = local;\n\t }\n\t return ImportDefaultSpecifier;\n\t}());\n\texports.ImportDefaultSpecifier = ImportDefaultSpecifier;\n\tvar ImportNamespaceSpecifier = (function () {\n\t function ImportNamespaceSpecifier(local) {\n\t this.type = syntax_1.Syntax.ImportNamespaceSpecifier;\n\t this.local = local;\n\t }\n\t return ImportNamespaceSpecifier;\n\t}());\n\texports.ImportNamespaceSpecifier = ImportNamespaceSpecifier;\n\tvar ImportSpecifier = (function () {\n\t function ImportSpecifier(local, imported) {\n\t this.type = syntax_1.Syntax.ImportSpecifier;\n\t this.local = local;\n\t this.imported = imported;\n\t }\n\t return ImportSpecifier;\n\t}());\n\texports.ImportSpecifier = ImportSpecifier;\n\tvar LabeledStatement = (function () {\n\t function LabeledStatement(label, body) {\n\t this.type = syntax_1.Syntax.LabeledStatement;\n\t this.label = label;\n\t this.body = body;\n\t }\n\t return LabeledStatement;\n\t}());\n\texports.LabeledStatement = LabeledStatement;\n\tvar Literal = (function () {\n\t function Literal(value, raw) {\n\t this.type = syntax_1.Syntax.Literal;\n\t this.value = value;\n\t this.raw = raw;\n\t }\n\t return Literal;\n\t}());\n\texports.Literal = Literal;\n\tvar MetaProperty = (function () {\n\t function MetaProperty(meta, property) {\n\t this.type = syntax_1.Syntax.MetaProperty;\n\t this.meta = meta;\n\t this.property = property;\n\t }\n\t return MetaProperty;\n\t}());\n\texports.MetaProperty = MetaProperty;\n\tvar MethodDefinition = (function () {\n\t function MethodDefinition(key, computed, value, kind, isStatic) {\n\t this.type = syntax_1.Syntax.MethodDefinition;\n\t this.key = key;\n\t this.computed = computed;\n\t this.value = value;\n\t this.kind = kind;\n\t this.static = isStatic;\n\t }\n\t return MethodDefinition;\n\t}());\n\texports.MethodDefinition = MethodDefinition;\n\tvar Module = (function () {\n\t function Module(body) {\n\t this.type = syntax_1.Syntax.Program;\n\t this.body = body;\n\t this.sourceType = 'module';\n\t }\n\t return Module;\n\t}());\n\texports.Module = Module;\n\tvar NewExpression = (function () {\n\t function NewExpression(callee, args) {\n\t this.type = syntax_1.Syntax.NewExpression;\n\t this.callee = callee;\n\t this.arguments = args;\n\t }\n\t return NewExpression;\n\t}());\n\texports.NewExpression = NewExpression;\n\tvar ObjectExpression = (function () {\n\t function ObjectExpression(properties) {\n\t this.type = syntax_1.Syntax.ObjectExpression;\n\t this.properties = properties;\n\t }\n\t return ObjectExpression;\n\t}());\n\texports.ObjectExpression = ObjectExpression;\n\tvar ObjectPattern = (function () {\n\t function ObjectPattern(properties) {\n\t this.type = syntax_1.Syntax.ObjectPattern;\n\t this.properties = properties;\n\t }\n\t return ObjectPattern;\n\t}());\n\texports.ObjectPattern = ObjectPattern;\n\tvar Property = (function () {\n\t function Property(kind, key, computed, value, method, shorthand) {\n\t this.type = syntax_1.Syntax.Property;\n\t this.key = key;\n\t this.computed = computed;\n\t this.value = value;\n\t this.kind = kind;\n\t this.method = method;\n\t this.shorthand = shorthand;\n\t }\n\t return Property;\n\t}());\n\texports.Property = Property;\n\tvar RegexLiteral = (function () {\n\t function RegexLiteral(value, raw, pattern, flags) {\n\t this.type = syntax_1.Syntax.Literal;\n\t this.value = value;\n\t this.raw = raw;\n\t this.regex = { pattern: pattern, flags: flags };\n\t }\n\t return RegexLiteral;\n\t}());\n\texports.RegexLiteral = RegexLiteral;\n\tvar RestElement = (function () {\n\t function RestElement(argument) {\n\t this.type = syntax_1.Syntax.RestElement;\n\t this.argument = argument;\n\t }\n\t return RestElement;\n\t}());\n\texports.RestElement = RestElement;\n\tvar ReturnStatement = (function () {\n\t function ReturnStatement(argument) {\n\t this.type = syntax_1.Syntax.ReturnStatement;\n\t this.argument = argument;\n\t }\n\t return ReturnStatement;\n\t}());\n\texports.ReturnStatement = ReturnStatement;\n\tvar Script = (function () {\n\t function Script(body) {\n\t this.type = syntax_1.Syntax.Program;\n\t this.body = body;\n\t this.sourceType = 'script';\n\t }\n\t return Script;\n\t}());\n\texports.Script = Script;\n\tvar SequenceExpression = (function () {\n\t function SequenceExpression(expressions) {\n\t this.type = syntax_1.Syntax.SequenceExpression;\n\t this.expressions = expressions;\n\t }\n\t return SequenceExpression;\n\t}());\n\texports.SequenceExpression = SequenceExpression;\n\tvar SpreadElement = (function () {\n\t function SpreadElement(argument) {\n\t this.type = syntax_1.Syntax.SpreadElement;\n\t this.argument = argument;\n\t }\n\t return SpreadElement;\n\t}());\n\texports.SpreadElement = SpreadElement;\n\tvar StaticMemberExpression = (function () {\n\t function StaticMemberExpression(object, property) {\n\t this.type = syntax_1.Syntax.MemberExpression;\n\t this.computed = false;\n\t this.object = object;\n\t this.property = property;\n\t }\n\t return StaticMemberExpression;\n\t}());\n\texports.StaticMemberExpression = StaticMemberExpression;\n\tvar Super = (function () {\n\t function Super() {\n\t this.type = syntax_1.Syntax.Super;\n\t }\n\t return Super;\n\t}());\n\texports.Super = Super;\n\tvar SwitchCase = (function () {\n\t function SwitchCase(test, consequent) {\n\t this.type = syntax_1.Syntax.SwitchCase;\n\t this.test = test;\n\t this.consequent = consequent;\n\t }\n\t return SwitchCase;\n\t}());\n\texports.SwitchCase = SwitchCase;\n\tvar SwitchStatement = (function () {\n\t function SwitchStatement(discriminant, cases) {\n\t this.type = syntax_1.Syntax.SwitchStatement;\n\t this.discriminant = discriminant;\n\t this.cases = cases;\n\t }\n\t return SwitchStatement;\n\t}());\n\texports.SwitchStatement = SwitchStatement;\n\tvar TaggedTemplateExpression = (function () {\n\t function TaggedTemplateExpression(tag, quasi) {\n\t this.type = syntax_1.Syntax.TaggedTemplateExpression;\n\t this.tag = tag;\n\t this.quasi = quasi;\n\t }\n\t return TaggedTemplateExpression;\n\t}());\n\texports.TaggedTemplateExpression = TaggedTemplateExpression;\n\tvar TemplateElement = (function () {\n\t function TemplateElement(value, tail) {\n\t this.type = syntax_1.Syntax.TemplateElement;\n\t this.value = value;\n\t this.tail = tail;\n\t }\n\t return TemplateElement;\n\t}());\n\texports.TemplateElement = TemplateElement;\n\tvar TemplateLiteral = (function () {\n\t function TemplateLiteral(quasis, expressions) {\n\t this.type = syntax_1.Syntax.TemplateLiteral;\n\t this.quasis = quasis;\n\t this.expressions = expressions;\n\t }\n\t return TemplateLiteral;\n\t}());\n\texports.TemplateLiteral = TemplateLiteral;\n\tvar ThisExpression = (function () {\n\t function ThisExpression() {\n\t this.type = syntax_1.Syntax.ThisExpression;\n\t }\n\t return ThisExpression;\n\t}());\n\texports.ThisExpression = ThisExpression;\n\tvar ThrowStatement = (function () {\n\t function ThrowStatement(argument) {\n\t this.type = syntax_1.Syntax.ThrowStatement;\n\t this.argument = argument;\n\t }\n\t return ThrowStatement;\n\t}());\n\texports.ThrowStatement = ThrowStatement;\n\tvar TryStatement = (function () {\n\t function TryStatement(block, handler, finalizer) {\n\t this.type = syntax_1.Syntax.TryStatement;\n\t this.block = block;\n\t this.handler = handler;\n\t this.finalizer = finalizer;\n\t }\n\t return TryStatement;\n\t}());\n\texports.TryStatement = TryStatement;\n\tvar UnaryExpression = (function () {\n\t function UnaryExpression(operator, argument) {\n\t this.type = syntax_1.Syntax.UnaryExpression;\n\t this.operator = operator;\n\t this.argument = argument;\n\t this.prefix = true;\n\t }\n\t return UnaryExpression;\n\t}());\n\texports.UnaryExpression = UnaryExpression;\n\tvar UpdateExpression = (function () {\n\t function UpdateExpression(operator, argument, prefix) {\n\t this.type = syntax_1.Syntax.UpdateExpression;\n\t this.operator = operator;\n\t this.argument = argument;\n\t this.prefix = prefix;\n\t }\n\t return UpdateExpression;\n\t}());\n\texports.UpdateExpression = UpdateExpression;\n\tvar VariableDeclaration = (function () {\n\t function VariableDeclaration(declarations, kind) {\n\t this.type = syntax_1.Syntax.VariableDeclaration;\n\t this.declarations = declarations;\n\t this.kind = kind;\n\t }\n\t return VariableDeclaration;\n\t}());\n\texports.VariableDeclaration = VariableDeclaration;\n\tvar VariableDeclarator = (function () {\n\t function VariableDeclarator(id, init) {\n\t this.type = syntax_1.Syntax.VariableDeclarator;\n\t this.id = id;\n\t this.init = init;\n\t }\n\t return VariableDeclarator;\n\t}());\n\texports.VariableDeclarator = VariableDeclarator;\n\tvar WhileStatement = (function () {\n\t function WhileStatement(test, body) {\n\t this.type = syntax_1.Syntax.WhileStatement;\n\t this.test = test;\n\t this.body = body;\n\t }\n\t return WhileStatement;\n\t}());\n\texports.WhileStatement = WhileStatement;\n\tvar WithStatement = (function () {\n\t function WithStatement(object, body) {\n\t this.type = syntax_1.Syntax.WithStatement;\n\t this.object = object;\n\t this.body = body;\n\t }\n\t return WithStatement;\n\t}());\n\texports.WithStatement = WithStatement;\n\tvar YieldExpression = (function () {\n\t function YieldExpression(argument, delegate) {\n\t this.type = syntax_1.Syntax.YieldExpression;\n\t this.argument = argument;\n\t this.delegate = delegate;\n\t }\n\t return YieldExpression;\n\t}());\n\texports.YieldExpression = YieldExpression;\n\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar assert_1 = __webpack_require__(9);\n\tvar error_handler_1 = __webpack_require__(10);\n\tvar messages_1 = __webpack_require__(11);\n\tvar Node = __webpack_require__(7);\n\tvar scanner_1 = __webpack_require__(12);\n\tvar syntax_1 = __webpack_require__(2);\n\tvar token_1 = __webpack_require__(13);\n\tvar ArrowParameterPlaceHolder = 'ArrowParameterPlaceHolder';\n\tvar Parser = (function () {\n\t function Parser(code, options, delegate) {\n\t if (options === void 0) { options = {}; }\n\t this.config = {\n\t range: (typeof options.range === 'boolean') && options.range,\n\t loc: (typeof options.loc === 'boolean') && options.loc,\n\t source: null,\n\t tokens: (typeof options.tokens === 'boolean') && options.tokens,\n\t comment: (typeof options.comment === 'boolean') && options.comment,\n\t tolerant: (typeof options.tolerant === 'boolean') && options.tolerant\n\t };\n\t if (this.config.loc && options.source && options.source !== null) {\n\t this.config.source = String(options.source);\n\t }\n\t this.delegate = delegate;\n\t this.errorHandler = new error_handler_1.ErrorHandler();\n\t this.errorHandler.tolerant = this.config.tolerant;\n\t this.scanner = new scanner_1.Scanner(code, this.errorHandler);\n\t this.scanner.trackComment = this.config.comment;\n\t this.operatorPrecedence = {\n\t ')': 0,\n\t ';': 0,\n\t ',': 0,\n\t '=': 0,\n\t ']': 0,\n\t '||': 1,\n\t '&&': 2,\n\t '|': 3,\n\t '^': 4,\n\t '&': 5,\n\t '==': 6,\n\t '!=': 6,\n\t '===': 6,\n\t '!==': 6,\n\t '<': 7,\n\t '>': 7,\n\t '<=': 7,\n\t '>=': 7,\n\t '<<': 8,\n\t '>>': 8,\n\t '>>>': 8,\n\t '+': 9,\n\t '-': 9,\n\t '*': 11,\n\t '/': 11,\n\t '%': 11\n\t };\n\t this.lookahead = {\n\t type: 2 /* EOF */,\n\t value: '',\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: 0,\n\t start: 0,\n\t end: 0\n\t };\n\t this.hasLineTerminator = false;\n\t this.context = {\n\t isModule: false,\n\t await: false,\n\t allowIn: true,\n\t allowStrictDirective: true,\n\t allowYield: true,\n\t firstCoverInitializedNameError: null,\n\t isAssignmentTarget: false,\n\t isBindingElement: false,\n\t inFunctionBody: false,\n\t inIteration: false,\n\t inSwitch: false,\n\t labelSet: {},\n\t strict: false\n\t };\n\t this.tokens = [];\n\t this.startMarker = {\n\t index: 0,\n\t line: this.scanner.lineNumber,\n\t column: 0\n\t };\n\t this.lastMarker = {\n\t index: 0,\n\t line: this.scanner.lineNumber,\n\t column: 0\n\t };\n\t this.nextToken();\n\t this.lastMarker = {\n\t index: this.scanner.index,\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t }\n\t Parser.prototype.throwError = function (messageFormat) {\n\t var values = [];\n\t for (var _i = 1; _i < arguments.length; _i++) {\n\t values[_i - 1] = arguments[_i];\n\t }\n\t var args = Array.prototype.slice.call(arguments, 1);\n\t var msg = messageFormat.replace(/%(\\d)/g, function (whole, idx) {\n\t assert_1.assert(idx < args.length, 'Message reference must be in range');\n\t return args[idx];\n\t });\n\t var index = this.lastMarker.index;\n\t var line = this.lastMarker.line;\n\t var column = this.lastMarker.column + 1;\n\t throw this.errorHandler.createError(index, line, column, msg);\n\t };\n\t Parser.prototype.tolerateError = function (messageFormat) {\n\t var values = [];\n\t for (var _i = 1; _i < arguments.length; _i++) {\n\t values[_i - 1] = arguments[_i];\n\t }\n\t var args = Array.prototype.slice.call(arguments, 1);\n\t var msg = messageFormat.replace(/%(\\d)/g, function (whole, idx) {\n\t assert_1.assert(idx < args.length, 'Message reference must be in range');\n\t return args[idx];\n\t });\n\t var index = this.lastMarker.index;\n\t var line = this.scanner.lineNumber;\n\t var column = this.lastMarker.column + 1;\n\t this.errorHandler.tolerateError(index, line, column, msg);\n\t };\n\t // Throw an exception because of the token.\n\t Parser.prototype.unexpectedTokenError = function (token, message) {\n\t var msg = message || messages_1.Messages.UnexpectedToken;\n\t var value;\n\t if (token) {\n\t if (!message) {\n\t msg = (token.type === 2 /* EOF */) ? messages_1.Messages.UnexpectedEOS :\n\t (token.type === 3 /* Identifier */) ? messages_1.Messages.UnexpectedIdentifier :\n\t (token.type === 6 /* NumericLiteral */) ? messages_1.Messages.UnexpectedNumber :\n\t (token.type === 8 /* StringLiteral */) ? messages_1.Messages.UnexpectedString :\n\t (token.type === 10 /* Template */) ? messages_1.Messages.UnexpectedTemplate :\n\t messages_1.Messages.UnexpectedToken;\n\t if (token.type === 4 /* Keyword */) {\n\t if (this.scanner.isFutureReservedWord(token.value)) {\n\t msg = messages_1.Messages.UnexpectedReserved;\n\t }\n\t else if (this.context.strict && this.scanner.isStrictModeReservedWord(token.value)) {\n\t msg = messages_1.Messages.StrictReservedWord;\n\t }\n\t }\n\t }\n\t value = token.value;\n\t }\n\t else {\n\t value = 'ILLEGAL';\n\t }\n\t msg = msg.replace('%0', value);\n\t if (token && typeof token.lineNumber === 'number') {\n\t var index = token.start;\n\t var line = token.lineNumber;\n\t var lastMarkerLineStart = this.lastMarker.index - this.lastMarker.column;\n\t var column = token.start - lastMarkerLineStart + 1;\n\t return this.errorHandler.createError(index, line, column, msg);\n\t }\n\t else {\n\t var index = this.lastMarker.index;\n\t var line = this.lastMarker.line;\n\t var column = this.lastMarker.column + 1;\n\t return this.errorHandler.createError(index, line, column, msg);\n\t }\n\t };\n\t Parser.prototype.throwUnexpectedToken = function (token, message) {\n\t throw this.unexpectedTokenError(token, message);\n\t };\n\t Parser.prototype.tolerateUnexpectedToken = function (token, message) {\n\t this.errorHandler.tolerate(this.unexpectedTokenError(token, message));\n\t };\n\t Parser.prototype.collectComments = function () {\n\t if (!this.config.comment) {\n\t this.scanner.scanComments();\n\t }\n\t else {\n\t var comments = this.scanner.scanComments();\n\t if (comments.length > 0 && this.delegate) {\n\t for (var i = 0; i < comments.length; ++i) {\n\t var e = comments[i];\n\t var node = void 0;\n\t node = {\n\t type: e.multiLine ? 'BlockComment' : 'LineComment',\n\t value: this.scanner.source.slice(e.slice[0], e.slice[1])\n\t };\n\t if (this.config.range) {\n\t node.range = e.range;\n\t }\n\t if (this.config.loc) {\n\t node.loc = e.loc;\n\t }\n\t var metadata = {\n\t start: {\n\t line: e.loc.start.line,\n\t column: e.loc.start.column,\n\t offset: e.range[0]\n\t },\n\t end: {\n\t line: e.loc.end.line,\n\t column: e.loc.end.column,\n\t offset: e.range[1]\n\t }\n\t };\n\t this.delegate(node, metadata);\n\t }\n\t }\n\t }\n\t };\n\t // From internal representation to an external structure\n\t Parser.prototype.getTokenRaw = function (token) {\n\t return this.scanner.source.slice(token.start, token.end);\n\t };\n\t Parser.prototype.convertToken = function (token) {\n\t var t = {\n\t type: token_1.TokenName[token.type],\n\t value: this.getTokenRaw(token)\n\t };\n\t if (this.config.range) {\n\t t.range = [token.start, token.end];\n\t }\n\t if (this.config.loc) {\n\t t.loc = {\n\t start: {\n\t line: this.startMarker.line,\n\t column: this.startMarker.column\n\t },\n\t end: {\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t }\n\t };\n\t }\n\t if (token.type === 9 /* RegularExpression */) {\n\t var pattern = token.pattern;\n\t var flags = token.flags;\n\t t.regex = { pattern: pattern, flags: flags };\n\t }\n\t return t;\n\t };\n\t Parser.prototype.nextToken = function () {\n\t var token = this.lookahead;\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t this.collectComments();\n\t if (this.scanner.index !== this.startMarker.index) {\n\t this.startMarker.index = this.scanner.index;\n\t this.startMarker.line = this.scanner.lineNumber;\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\n\t }\n\t var next = this.scanner.lex();\n\t this.hasLineTerminator = (token.lineNumber !== next.lineNumber);\n\t if (next && this.context.strict && next.type === 3 /* Identifier */) {\n\t if (this.scanner.isStrictModeReservedWord(next.value)) {\n\t next.type = 4 /* Keyword */;\n\t }\n\t }\n\t this.lookahead = next;\n\t if (this.config.tokens && next.type !== 2 /* EOF */) {\n\t this.tokens.push(this.convertToken(next));\n\t }\n\t return token;\n\t };\n\t Parser.prototype.nextRegexToken = function () {\n\t this.collectComments();\n\t var token = this.scanner.scanRegExp();\n\t if (this.config.tokens) {\n\t // Pop the previous token, '/' or '/='\n\t // This is added from the lookahead token.\n\t this.tokens.pop();\n\t this.tokens.push(this.convertToken(token));\n\t }\n\t // Prime the next lookahead.\n\t this.lookahead = token;\n\t this.nextToken();\n\t return token;\n\t };\n\t Parser.prototype.createNode = function () {\n\t return {\n\t index: this.startMarker.index,\n\t line: this.startMarker.line,\n\t column: this.startMarker.column\n\t };\n\t };\n\t Parser.prototype.startNode = function (token, lastLineStart) {\n\t if (lastLineStart === void 0) { lastLineStart = 0; }\n\t var column = token.start - token.lineStart;\n\t var line = token.lineNumber;\n\t if (column < 0) {\n\t column += lastLineStart;\n\t line--;\n\t }\n\t return {\n\t index: token.start,\n\t line: line,\n\t column: column\n\t };\n\t };\n\t Parser.prototype.finalize = function (marker, node) {\n\t if (this.config.range) {\n\t node.range = [marker.index, this.lastMarker.index];\n\t }\n\t if (this.config.loc) {\n\t node.loc = {\n\t start: {\n\t line: marker.line,\n\t column: marker.column,\n\t },\n\t end: {\n\t line: this.lastMarker.line,\n\t column: this.lastMarker.column\n\t }\n\t };\n\t if (this.config.source) {\n\t node.loc.source = this.config.source;\n\t }\n\t }\n\t if (this.delegate) {\n\t var metadata = {\n\t start: {\n\t line: marker.line,\n\t column: marker.column,\n\t offset: marker.index\n\t },\n\t end: {\n\t line: this.lastMarker.line,\n\t column: this.lastMarker.column,\n\t offset: this.lastMarker.index\n\t }\n\t };\n\t this.delegate(node, metadata);\n\t }\n\t return node;\n\t };\n\t // Expect the next token to match the specified punctuator.\n\t // If not, an exception will be thrown.\n\t Parser.prototype.expect = function (value) {\n\t var token = this.nextToken();\n\t if (token.type !== 7 /* Punctuator */ || token.value !== value) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t };\n\t // Quietly expect a comma when in tolerant mode, otherwise delegates to expect().\n\t Parser.prototype.expectCommaSeparator = function () {\n\t if (this.config.tolerant) {\n\t var token = this.lookahead;\n\t if (token.type === 7 /* Punctuator */ && token.value === ',') {\n\t this.nextToken();\n\t }\n\t else if (token.type === 7 /* Punctuator */ && token.value === ';') {\n\t this.nextToken();\n\t this.tolerateUnexpectedToken(token);\n\t }\n\t else {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.UnexpectedToken);\n\t }\n\t }\n\t else {\n\t this.expect(',');\n\t }\n\t };\n\t // Expect the next token to match the specified keyword.\n\t // If not, an exception will be thrown.\n\t Parser.prototype.expectKeyword = function (keyword) {\n\t var token = this.nextToken();\n\t if (token.type !== 4 /* Keyword */ || token.value !== keyword) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t };\n\t // Return true if the next token matches the specified punctuator.\n\t Parser.prototype.match = function (value) {\n\t return this.lookahead.type === 7 /* Punctuator */ && this.lookahead.value === value;\n\t };\n\t // Return true if the next token matches the specified keyword\n\t Parser.prototype.matchKeyword = function (keyword) {\n\t return this.lookahead.type === 4 /* Keyword */ && this.lookahead.value === keyword;\n\t };\n\t // Return true if the next token matches the specified contextual keyword\n\t // (where an identifier is sometimes a keyword depending on the context)\n\t Parser.prototype.matchContextualKeyword = function (keyword) {\n\t return this.lookahead.type === 3 /* Identifier */ && this.lookahead.value === keyword;\n\t };\n\t // Return true if the next token is an assignment operator\n\t Parser.prototype.matchAssign = function () {\n\t if (this.lookahead.type !== 7 /* Punctuator */) {\n\t return false;\n\t }\n\t var op = this.lookahead.value;\n\t return op === '=' ||\n\t op === '*=' ||\n\t op === '**=' ||\n\t op === '/=' ||\n\t op === '%=' ||\n\t op === '+=' ||\n\t op === '-=' ||\n\t op === '<<=' ||\n\t op === '>>=' ||\n\t op === '>>>=' ||\n\t op === '&=' ||\n\t op === '^=' ||\n\t op === '|=';\n\t };\n\t // Cover grammar support.\n\t //\n\t // When an assignment expression position starts with an left parenthesis, the determination of the type\n\t // of the syntax is to be deferred arbitrarily long until the end of the parentheses pair (plus a lookahead)\n\t // or the first comma. This situation also defers the determination of all the expressions nested in the pair.\n\t //\n\t // There are three productions that can be parsed in a parentheses pair that needs to be determined\n\t // after the outermost pair is closed. They are:\n\t //\n\t // 1. AssignmentExpression\n\t // 2. BindingElements\n\t // 3. AssignmentTargets\n\t //\n\t // In order to avoid exponential backtracking, we use two flags to denote if the production can be\n\t // binding element or assignment target.\n\t //\n\t // The three productions have the relationship:\n\t //\n\t // BindingElements ⊆ AssignmentTargets ⊆ AssignmentExpression\n\t //\n\t // with a single exception that CoverInitializedName when used directly in an Expression, generates\n\t // an early error. Therefore, we need the third state, firstCoverInitializedNameError, to track the\n\t // first usage of CoverInitializedName and report it when we reached the end of the parentheses pair.\n\t //\n\t // isolateCoverGrammar function runs the given parser function with a new cover grammar context, and it does not\n\t // effect the current flags. This means the production the parser parses is only used as an expression. Therefore\n\t // the CoverInitializedName check is conducted.\n\t //\n\t // inheritCoverGrammar function runs the given parse function with a new cover grammar context, and it propagates\n\t // the flags outside of the parser. This means the production the parser parses is used as a part of a potential\n\t // pattern. The CoverInitializedName check is deferred.\n\t Parser.prototype.isolateCoverGrammar = function (parseFunction) {\n\t var previousIsBindingElement = this.context.isBindingElement;\n\t var previousIsAssignmentTarget = this.context.isAssignmentTarget;\n\t var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError;\n\t this.context.isBindingElement = true;\n\t this.context.isAssignmentTarget = true;\n\t this.context.firstCoverInitializedNameError = null;\n\t var result = parseFunction.call(this);\n\t if (this.context.firstCoverInitializedNameError !== null) {\n\t this.throwUnexpectedToken(this.context.firstCoverInitializedNameError);\n\t }\n\t this.context.isBindingElement = previousIsBindingElement;\n\t this.context.isAssignmentTarget = previousIsAssignmentTarget;\n\t this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError;\n\t return result;\n\t };\n\t Parser.prototype.inheritCoverGrammar = function (parseFunction) {\n\t var previousIsBindingElement = this.context.isBindingElement;\n\t var previousIsAssignmentTarget = this.context.isAssignmentTarget;\n\t var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError;\n\t this.context.isBindingElement = true;\n\t this.context.isAssignmentTarget = true;\n\t this.context.firstCoverInitializedNameError = null;\n\t var result = parseFunction.call(this);\n\t this.context.isBindingElement = this.context.isBindingElement && previousIsBindingElement;\n\t this.context.isAssignmentTarget = this.context.isAssignmentTarget && previousIsAssignmentTarget;\n\t this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError || this.context.firstCoverInitializedNameError;\n\t return result;\n\t };\n\t Parser.prototype.consumeSemicolon = function () {\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t else if (!this.hasLineTerminator) {\n\t if (this.lookahead.type !== 2 /* EOF */ && !this.match('}')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t this.lastMarker.index = this.startMarker.index;\n\t this.lastMarker.line = this.startMarker.line;\n\t this.lastMarker.column = this.startMarker.column;\n\t }\n\t };\n\t // https://tc39.github.io/ecma262/#sec-primary-expression\n\t Parser.prototype.parsePrimaryExpression = function () {\n\t var node = this.createNode();\n\t var expr;\n\t var token, raw;\n\t switch (this.lookahead.type) {\n\t case 3 /* Identifier */:\n\t if ((this.context.isModule || this.context.await) && this.lookahead.value === 'await') {\n\t this.tolerateUnexpectedToken(this.lookahead);\n\t }\n\t expr = this.matchAsyncFunction() ? this.parseFunctionExpression() : this.finalize(node, new Node.Identifier(this.nextToken().value));\n\t break;\n\t case 6 /* NumericLiteral */:\n\t case 8 /* StringLiteral */:\n\t if (this.context.strict && this.lookahead.octal) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.StrictOctalLiteral);\n\t }\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t token = this.nextToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.Literal(token.value, raw));\n\t break;\n\t case 1 /* BooleanLiteral */:\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t token = this.nextToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.Literal(token.value === 'true', raw));\n\t break;\n\t case 5 /* NullLiteral */:\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t token = this.nextToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.Literal(null, raw));\n\t break;\n\t case 10 /* Template */:\n\t expr = this.parseTemplateLiteral();\n\t break;\n\t case 7 /* Punctuator */:\n\t switch (this.lookahead.value) {\n\t case '(':\n\t this.context.isBindingElement = false;\n\t expr = this.inheritCoverGrammar(this.parseGroupExpression);\n\t break;\n\t case '[':\n\t expr = this.inheritCoverGrammar(this.parseArrayInitializer);\n\t break;\n\t case '{':\n\t expr = this.inheritCoverGrammar(this.parseObjectInitializer);\n\t break;\n\t case '/':\n\t case '/=':\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t this.scanner.index = this.startMarker.index;\n\t token = this.nextRegexToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.RegexLiteral(token.regex, raw, token.pattern, token.flags));\n\t break;\n\t default:\n\t expr = this.throwUnexpectedToken(this.nextToken());\n\t }\n\t break;\n\t case 4 /* Keyword */:\n\t if (!this.context.strict && this.context.allowYield && this.matchKeyword('yield')) {\n\t expr = this.parseIdentifierName();\n\t }\n\t else if (!this.context.strict && this.matchKeyword('let')) {\n\t expr = this.finalize(node, new Node.Identifier(this.nextToken().value));\n\t }\n\t else {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t if (this.matchKeyword('function')) {\n\t expr = this.parseFunctionExpression();\n\t }\n\t else if (this.matchKeyword('this')) {\n\t this.nextToken();\n\t expr = this.finalize(node, new Node.ThisExpression());\n\t }\n\t else if (this.matchKeyword('class')) {\n\t expr = this.parseClassExpression();\n\t }\n\t else {\n\t expr = this.throwUnexpectedToken(this.nextToken());\n\t }\n\t }\n\t break;\n\t default:\n\t expr = this.throwUnexpectedToken(this.nextToken());\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-array-initializer\n\t Parser.prototype.parseSpreadElement = function () {\n\t var node = this.createNode();\n\t this.expect('...');\n\t var arg = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t return this.finalize(node, new Node.SpreadElement(arg));\n\t };\n\t Parser.prototype.parseArrayInitializer = function () {\n\t var node = this.createNode();\n\t var elements = [];\n\t this.expect('[');\n\t while (!this.match(']')) {\n\t if (this.match(',')) {\n\t this.nextToken();\n\t elements.push(null);\n\t }\n\t else if (this.match('...')) {\n\t var element = this.parseSpreadElement();\n\t if (!this.match(']')) {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t this.expect(',');\n\t }\n\t elements.push(element);\n\t }\n\t else {\n\t elements.push(this.inheritCoverGrammar(this.parseAssignmentExpression));\n\t if (!this.match(']')) {\n\t this.expect(',');\n\t }\n\t }\n\t }\n\t this.expect(']');\n\t return this.finalize(node, new Node.ArrayExpression(elements));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-object-initializer\n\t Parser.prototype.parsePropertyMethod = function (params) {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = params.simple;\n\t var body = this.isolateCoverGrammar(this.parseFunctionSourceElements);\n\t if (this.context.strict && params.firstRestricted) {\n\t this.tolerateUnexpectedToken(params.firstRestricted, params.message);\n\t }\n\t if (this.context.strict && params.stricted) {\n\t this.tolerateUnexpectedToken(params.stricted, params.message);\n\t }\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t return body;\n\t };\n\t Parser.prototype.parsePropertyMethodFunction = function () {\n\t var isGenerator = false;\n\t var node = this.createNode();\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = true;\n\t var params = this.parseFormalParameters();\n\t var method = this.parsePropertyMethod(params);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator));\n\t };\n\t Parser.prototype.parsePropertyMethodAsyncFunction = function () {\n\t var node = this.createNode();\n\t var previousAllowYield = this.context.allowYield;\n\t var previousAwait = this.context.await;\n\t this.context.allowYield = false;\n\t this.context.await = true;\n\t var params = this.parseFormalParameters();\n\t var method = this.parsePropertyMethod(params);\n\t this.context.allowYield = previousAllowYield;\n\t this.context.await = previousAwait;\n\t return this.finalize(node, new Node.AsyncFunctionExpression(null, params.params, method));\n\t };\n\t Parser.prototype.parseObjectPropertyKey = function () {\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t var key;\n\t switch (token.type) {\n\t case 8 /* StringLiteral */:\n\t case 6 /* NumericLiteral */:\n\t if (this.context.strict && token.octal) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictOctalLiteral);\n\t }\n\t var raw = this.getTokenRaw(token);\n\t key = this.finalize(node, new Node.Literal(token.value, raw));\n\t break;\n\t case 3 /* Identifier */:\n\t case 1 /* BooleanLiteral */:\n\t case 5 /* NullLiteral */:\n\t case 4 /* Keyword */:\n\t key = this.finalize(node, new Node.Identifier(token.value));\n\t break;\n\t case 7 /* Punctuator */:\n\t if (token.value === '[') {\n\t key = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t this.expect(']');\n\t }\n\t else {\n\t key = this.throwUnexpectedToken(token);\n\t }\n\t break;\n\t default:\n\t key = this.throwUnexpectedToken(token);\n\t }\n\t return key;\n\t };\n\t Parser.prototype.isPropertyKey = function (key, value) {\n\t return (key.type === syntax_1.Syntax.Identifier && key.name === value) ||\n\t (key.type === syntax_1.Syntax.Literal && key.value === value);\n\t };\n\t Parser.prototype.parseObjectProperty = function (hasProto) {\n\t var node = this.createNode();\n\t var token = this.lookahead;\n\t var kind;\n\t var key = null;\n\t var value = null;\n\t var computed = false;\n\t var method = false;\n\t var shorthand = false;\n\t var isAsync = false;\n\t if (token.type === 3 /* Identifier */) {\n\t var id = token.value;\n\t this.nextToken();\n\t computed = this.match('[');\n\t isAsync = !this.hasLineTerminator && (id === 'async') &&\n\t !this.match(':') && !this.match('(') && !this.match('*') && !this.match(',');\n\t key = isAsync ? this.parseObjectPropertyKey() : this.finalize(node, new Node.Identifier(id));\n\t }\n\t else if (this.match('*')) {\n\t this.nextToken();\n\t }\n\t else {\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t }\n\t var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead);\n\t if (token.type === 3 /* Identifier */ && !isAsync && token.value === 'get' && lookaheadPropertyKey) {\n\t kind = 'get';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t this.context.allowYield = false;\n\t value = this.parseGetterMethod();\n\t }\n\t else if (token.type === 3 /* Identifier */ && !isAsync && token.value === 'set' && lookaheadPropertyKey) {\n\t kind = 'set';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseSetterMethod();\n\t }\n\t else if (token.type === 7 /* Punctuator */ && token.value === '*' && lookaheadPropertyKey) {\n\t kind = 'init';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseGeneratorMethod();\n\t method = true;\n\t }\n\t else {\n\t if (!key) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t kind = 'init';\n\t if (this.match(':') && !isAsync) {\n\t if (!computed && this.isPropertyKey(key, '__proto__')) {\n\t if (hasProto.value) {\n\t this.tolerateError(messages_1.Messages.DuplicateProtoProperty);\n\t }\n\t hasProto.value = true;\n\t }\n\t this.nextToken();\n\t value = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t else if (this.match('(')) {\n\t value = isAsync ? this.parsePropertyMethodAsyncFunction() : this.parsePropertyMethodFunction();\n\t method = true;\n\t }\n\t else if (token.type === 3 /* Identifier */) {\n\t var id = this.finalize(node, new Node.Identifier(token.value));\n\t if (this.match('=')) {\n\t this.context.firstCoverInitializedNameError = this.lookahead;\n\t this.nextToken();\n\t shorthand = true;\n\t var init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t value = this.finalize(node, new Node.AssignmentPattern(id, init));\n\t }\n\t else {\n\t shorthand = true;\n\t value = id;\n\t }\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.nextToken());\n\t }\n\t }\n\t return this.finalize(node, new Node.Property(kind, key, computed, value, method, shorthand));\n\t };\n\t Parser.prototype.parseObjectInitializer = function () {\n\t var node = this.createNode();\n\t this.expect('{');\n\t var properties = [];\n\t var hasProto = { value: false };\n\t while (!this.match('}')) {\n\t properties.push(this.parseObjectProperty(hasProto));\n\t if (!this.match('}')) {\n\t this.expectCommaSeparator();\n\t }\n\t }\n\t this.expect('}');\n\t return this.finalize(node, new Node.ObjectExpression(properties));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-template-literals\n\t Parser.prototype.parseTemplateHead = function () {\n\t assert_1.assert(this.lookahead.head, 'Template literal must start with a template head');\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t var raw = token.value;\n\t var cooked = token.cooked;\n\t return this.finalize(node, new Node.TemplateElement({ raw: raw, cooked: cooked }, token.tail));\n\t };\n\t Parser.prototype.parseTemplateElement = function () {\n\t if (this.lookahead.type !== 10 /* Template */) {\n\t this.throwUnexpectedToken();\n\t }\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t var raw = token.value;\n\t var cooked = token.cooked;\n\t return this.finalize(node, new Node.TemplateElement({ raw: raw, cooked: cooked }, token.tail));\n\t };\n\t Parser.prototype.parseTemplateLiteral = function () {\n\t var node = this.createNode();\n\t var expressions = [];\n\t var quasis = [];\n\t var quasi = this.parseTemplateHead();\n\t quasis.push(quasi);\n\t while (!quasi.tail) {\n\t expressions.push(this.parseExpression());\n\t quasi = this.parseTemplateElement();\n\t quasis.push(quasi);\n\t }\n\t return this.finalize(node, new Node.TemplateLiteral(quasis, expressions));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-grouping-operator\n\t Parser.prototype.reinterpretExpressionAsPattern = function (expr) {\n\t switch (expr.type) {\n\t case syntax_1.Syntax.Identifier:\n\t case syntax_1.Syntax.MemberExpression:\n\t case syntax_1.Syntax.RestElement:\n\t case syntax_1.Syntax.AssignmentPattern:\n\t break;\n\t case syntax_1.Syntax.SpreadElement:\n\t expr.type = syntax_1.Syntax.RestElement;\n\t this.reinterpretExpressionAsPattern(expr.argument);\n\t break;\n\t case syntax_1.Syntax.ArrayExpression:\n\t expr.type = syntax_1.Syntax.ArrayPattern;\n\t for (var i = 0; i < expr.elements.length; i++) {\n\t if (expr.elements[i] !== null) {\n\t this.reinterpretExpressionAsPattern(expr.elements[i]);\n\t }\n\t }\n\t break;\n\t case syntax_1.Syntax.ObjectExpression:\n\t expr.type = syntax_1.Syntax.ObjectPattern;\n\t for (var i = 0; i < expr.properties.length; i++) {\n\t this.reinterpretExpressionAsPattern(expr.properties[i].value);\n\t }\n\t break;\n\t case syntax_1.Syntax.AssignmentExpression:\n\t expr.type = syntax_1.Syntax.AssignmentPattern;\n\t delete expr.operator;\n\t this.reinterpretExpressionAsPattern(expr.left);\n\t break;\n\t default:\n\t // Allow other node type for tolerant parsing.\n\t break;\n\t }\n\t };\n\t Parser.prototype.parseGroupExpression = function () {\n\t var expr;\n\t this.expect('(');\n\t if (this.match(')')) {\n\t this.nextToken();\n\t if (!this.match('=>')) {\n\t this.expect('=>');\n\t }\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [],\n\t async: false\n\t };\n\t }\n\t else {\n\t var startToken = this.lookahead;\n\t var params = [];\n\t if (this.match('...')) {\n\t expr = this.parseRestElement(params);\n\t this.expect(')');\n\t if (!this.match('=>')) {\n\t this.expect('=>');\n\t }\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [expr],\n\t async: false\n\t };\n\t }\n\t else {\n\t var arrow = false;\n\t this.context.isBindingElement = true;\n\t expr = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t if (this.match(',')) {\n\t var expressions = [];\n\t this.context.isAssignmentTarget = false;\n\t expressions.push(expr);\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t if (!this.match(',')) {\n\t break;\n\t }\n\t this.nextToken();\n\t if (this.match(')')) {\n\t this.nextToken();\n\t for (var i = 0; i < expressions.length; i++) {\n\t this.reinterpretExpressionAsPattern(expressions[i]);\n\t }\n\t arrow = true;\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: expressions,\n\t async: false\n\t };\n\t }\n\t else if (this.match('...')) {\n\t if (!this.context.isBindingElement) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t expressions.push(this.parseRestElement(params));\n\t this.expect(')');\n\t if (!this.match('=>')) {\n\t this.expect('=>');\n\t }\n\t this.context.isBindingElement = false;\n\t for (var i = 0; i < expressions.length; i++) {\n\t this.reinterpretExpressionAsPattern(expressions[i]);\n\t }\n\t arrow = true;\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: expressions,\n\t async: false\n\t };\n\t }\n\t else {\n\t expressions.push(this.inheritCoverGrammar(this.parseAssignmentExpression));\n\t }\n\t if (arrow) {\n\t break;\n\t }\n\t }\n\t if (!arrow) {\n\t expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions));\n\t }\n\t }\n\t if (!arrow) {\n\t this.expect(')');\n\t if (this.match('=>')) {\n\t if (expr.type === syntax_1.Syntax.Identifier && expr.name === 'yield') {\n\t arrow = true;\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [expr],\n\t async: false\n\t };\n\t }\n\t if (!arrow) {\n\t if (!this.context.isBindingElement) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t if (expr.type === syntax_1.Syntax.SequenceExpression) {\n\t for (var i = 0; i < expr.expressions.length; i++) {\n\t this.reinterpretExpressionAsPattern(expr.expressions[i]);\n\t }\n\t }\n\t else {\n\t this.reinterpretExpressionAsPattern(expr);\n\t }\n\t var parameters = (expr.type === syntax_1.Syntax.SequenceExpression ? expr.expressions : [expr]);\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: parameters,\n\t async: false\n\t };\n\t }\n\t }\n\t this.context.isBindingElement = false;\n\t }\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-left-hand-side-expressions\n\t Parser.prototype.parseArguments = function () {\n\t this.expect('(');\n\t var args = [];\n\t if (!this.match(')')) {\n\t while (true) {\n\t var expr = this.match('...') ? this.parseSpreadElement() :\n\t this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t args.push(expr);\n\t if (this.match(')')) {\n\t break;\n\t }\n\t this.expectCommaSeparator();\n\t if (this.match(')')) {\n\t break;\n\t }\n\t }\n\t }\n\t this.expect(')');\n\t return args;\n\t };\n\t Parser.prototype.isIdentifierName = function (token) {\n\t return token.type === 3 /* Identifier */ ||\n\t token.type === 4 /* Keyword */ ||\n\t token.type === 1 /* BooleanLiteral */ ||\n\t token.type === 5 /* NullLiteral */;\n\t };\n\t Parser.prototype.parseIdentifierName = function () {\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t if (!this.isIdentifierName(token)) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t return this.finalize(node, new Node.Identifier(token.value));\n\t };\n\t Parser.prototype.parseNewExpression = function () {\n\t var node = this.createNode();\n\t var id = this.parseIdentifierName();\n\t assert_1.assert(id.name === 'new', 'New expression must start with `new`');\n\t var expr;\n\t if (this.match('.')) {\n\t this.nextToken();\n\t if (this.lookahead.type === 3 /* Identifier */ && this.context.inFunctionBody && this.lookahead.value === 'target') {\n\t var property = this.parseIdentifierName();\n\t expr = new Node.MetaProperty(id, property);\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t else {\n\t var callee = this.isolateCoverGrammar(this.parseLeftHandSideExpression);\n\t var args = this.match('(') ? this.parseArguments() : [];\n\t expr = new Node.NewExpression(callee, args);\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t return this.finalize(node, expr);\n\t };\n\t Parser.prototype.parseAsyncArgument = function () {\n\t var arg = this.parseAssignmentExpression();\n\t this.context.firstCoverInitializedNameError = null;\n\t return arg;\n\t };\n\t Parser.prototype.parseAsyncArguments = function () {\n\t this.expect('(');\n\t var args = [];\n\t if (!this.match(')')) {\n\t while (true) {\n\t var expr = this.match('...') ? this.parseSpreadElement() :\n\t this.isolateCoverGrammar(this.parseAsyncArgument);\n\t args.push(expr);\n\t if (this.match(')')) {\n\t break;\n\t }\n\t this.expectCommaSeparator();\n\t if (this.match(')')) {\n\t break;\n\t }\n\t }\n\t }\n\t this.expect(')');\n\t return args;\n\t };\n\t Parser.prototype.parseLeftHandSideExpressionAllowCall = function () {\n\t var startToken = this.lookahead;\n\t var maybeAsync = this.matchContextualKeyword('async');\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = true;\n\t var expr;\n\t if (this.matchKeyword('super') && this.context.inFunctionBody) {\n\t expr = this.createNode();\n\t this.nextToken();\n\t expr = this.finalize(expr, new Node.Super());\n\t if (!this.match('(') && !this.match('.') && !this.match('[')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t else {\n\t expr = this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression);\n\t }\n\t while (true) {\n\t if (this.match('.')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('.');\n\t var property = this.parseIdentifierName();\n\t expr = this.finalize(this.startNode(startToken), new Node.StaticMemberExpression(expr, property));\n\t }\n\t else if (this.match('(')) {\n\t var asyncArrow = maybeAsync && (startToken.lineNumber === this.lookahead.lineNumber);\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = false;\n\t var args = asyncArrow ? this.parseAsyncArguments() : this.parseArguments();\n\t expr = this.finalize(this.startNode(startToken), new Node.CallExpression(expr, args));\n\t if (asyncArrow && this.match('=>')) {\n\t for (var i = 0; i < args.length; ++i) {\n\t this.reinterpretExpressionAsPattern(args[i]);\n\t }\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: args,\n\t async: true\n\t };\n\t }\n\t }\n\t else if (this.match('[')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('[');\n\t var property = this.isolateCoverGrammar(this.parseExpression);\n\t this.expect(']');\n\t expr = this.finalize(this.startNode(startToken), new Node.ComputedMemberExpression(expr, property));\n\t }\n\t else if (this.lookahead.type === 10 /* Template */ && this.lookahead.head) {\n\t var quasi = this.parseTemplateLiteral();\n\t expr = this.finalize(this.startNode(startToken), new Node.TaggedTemplateExpression(expr, quasi));\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t this.context.allowIn = previousAllowIn;\n\t return expr;\n\t };\n\t Parser.prototype.parseSuper = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('super');\n\t if (!this.match('[') && !this.match('.')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t return this.finalize(node, new Node.Super());\n\t };\n\t Parser.prototype.parseLeftHandSideExpression = function () {\n\t assert_1.assert(this.context.allowIn, 'callee of new expression always allow in keyword.');\n\t var node = this.startNode(this.lookahead);\n\t var expr = (this.matchKeyword('super') && this.context.inFunctionBody) ? this.parseSuper() :\n\t this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression);\n\t while (true) {\n\t if (this.match('[')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('[');\n\t var property = this.isolateCoverGrammar(this.parseExpression);\n\t this.expect(']');\n\t expr = this.finalize(node, new Node.ComputedMemberExpression(expr, property));\n\t }\n\t else if (this.match('.')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('.');\n\t var property = this.parseIdentifierName();\n\t expr = this.finalize(node, new Node.StaticMemberExpression(expr, property));\n\t }\n\t else if (this.lookahead.type === 10 /* Template */ && this.lookahead.head) {\n\t var quasi = this.parseTemplateLiteral();\n\t expr = this.finalize(node, new Node.TaggedTemplateExpression(expr, quasi));\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-update-expressions\n\t Parser.prototype.parseUpdateExpression = function () {\n\t var expr;\n\t var startToken = this.lookahead;\n\t if (this.match('++') || this.match('--')) {\n\t var node = this.startNode(startToken);\n\t var token = this.nextToken();\n\t expr = this.inheritCoverGrammar(this.parseUnaryExpression);\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) {\n\t this.tolerateError(messages_1.Messages.StrictLHSPrefix);\n\t }\n\t if (!this.context.isAssignmentTarget) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\n\t }\n\t var prefix = true;\n\t expr = this.finalize(node, new Node.UpdateExpression(token.value, expr, prefix));\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t else {\n\t expr = this.inheritCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\n\t if (!this.hasLineTerminator && this.lookahead.type === 7 /* Punctuator */) {\n\t if (this.match('++') || this.match('--')) {\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) {\n\t this.tolerateError(messages_1.Messages.StrictLHSPostfix);\n\t }\n\t if (!this.context.isAssignmentTarget) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\n\t }\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var operator = this.nextToken().value;\n\t var prefix = false;\n\t expr = this.finalize(this.startNode(startToken), new Node.UpdateExpression(operator, expr, prefix));\n\t }\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-unary-operators\n\t Parser.prototype.parseAwaitExpression = function () {\n\t var node = this.createNode();\n\t this.nextToken();\n\t var argument = this.parseUnaryExpression();\n\t return this.finalize(node, new Node.AwaitExpression(argument));\n\t };\n\t Parser.prototype.parseUnaryExpression = function () {\n\t var expr;\n\t if (this.match('+') || this.match('-') || this.match('~') || this.match('!') ||\n\t this.matchKeyword('delete') || this.matchKeyword('void') || this.matchKeyword('typeof')) {\n\t var node = this.startNode(this.lookahead);\n\t var token = this.nextToken();\n\t expr = this.inheritCoverGrammar(this.parseUnaryExpression);\n\t expr = this.finalize(node, new Node.UnaryExpression(token.value, expr));\n\t if (this.context.strict && expr.operator === 'delete' && expr.argument.type === syntax_1.Syntax.Identifier) {\n\t this.tolerateError(messages_1.Messages.StrictDelete);\n\t }\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t else if (this.context.await && this.matchContextualKeyword('await')) {\n\t expr = this.parseAwaitExpression();\n\t }\n\t else {\n\t expr = this.parseUpdateExpression();\n\t }\n\t return expr;\n\t };\n\t Parser.prototype.parseExponentiationExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.inheritCoverGrammar(this.parseUnaryExpression);\n\t if (expr.type !== syntax_1.Syntax.UnaryExpression && this.match('**')) {\n\t this.nextToken();\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var left = expr;\n\t var right = this.isolateCoverGrammar(this.parseExponentiationExpression);\n\t expr = this.finalize(this.startNode(startToken), new Node.BinaryExpression('**', left, right));\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-exp-operator\n\t // https://tc39.github.io/ecma262/#sec-multiplicative-operators\n\t // https://tc39.github.io/ecma262/#sec-additive-operators\n\t // https://tc39.github.io/ecma262/#sec-bitwise-shift-operators\n\t // https://tc39.github.io/ecma262/#sec-relational-operators\n\t // https://tc39.github.io/ecma262/#sec-equality-operators\n\t // https://tc39.github.io/ecma262/#sec-binary-bitwise-operators\n\t // https://tc39.github.io/ecma262/#sec-binary-logical-operators\n\t Parser.prototype.binaryPrecedence = function (token) {\n\t var op = token.value;\n\t var precedence;\n\t if (token.type === 7 /* Punctuator */) {\n\t precedence = this.operatorPrecedence[op] || 0;\n\t }\n\t else if (token.type === 4 /* Keyword */) {\n\t precedence = (op === 'instanceof' || (this.context.allowIn && op === 'in')) ? 7 : 0;\n\t }\n\t else {\n\t precedence = 0;\n\t }\n\t return precedence;\n\t };\n\t Parser.prototype.parseBinaryExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.inheritCoverGrammar(this.parseExponentiationExpression);\n\t var token = this.lookahead;\n\t var prec = this.binaryPrecedence(token);\n\t if (prec > 0) {\n\t this.nextToken();\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var markers = [startToken, this.lookahead];\n\t var left = expr;\n\t var right = this.isolateCoverGrammar(this.parseExponentiationExpression);\n\t var stack = [left, token.value, right];\n\t var precedences = [prec];\n\t while (true) {\n\t prec = this.binaryPrecedence(this.lookahead);\n\t if (prec <= 0) {\n\t break;\n\t }\n\t // Reduce: make a binary expression from the three topmost entries.\n\t while ((stack.length > 2) && (prec <= precedences[precedences.length - 1])) {\n\t right = stack.pop();\n\t var operator = stack.pop();\n\t precedences.pop();\n\t left = stack.pop();\n\t markers.pop();\n\t var node = this.startNode(markers[markers.length - 1]);\n\t stack.push(this.finalize(node, new Node.BinaryExpression(operator, left, right)));\n\t }\n\t // Shift.\n\t stack.push(this.nextToken().value);\n\t precedences.push(prec);\n\t markers.push(this.lookahead);\n\t stack.push(this.isolateCoverGrammar(this.parseExponentiationExpression));\n\t }\n\t // Final reduce to clean-up the stack.\n\t var i = stack.length - 1;\n\t expr = stack[i];\n\t var lastMarker = markers.pop();\n\t while (i > 1) {\n\t var marker = markers.pop();\n\t var lastLineStart = lastMarker && lastMarker.lineStart;\n\t var node = this.startNode(marker, lastLineStart);\n\t var operator = stack[i - 1];\n\t expr = this.finalize(node, new Node.BinaryExpression(operator, stack[i - 2], expr));\n\t i -= 2;\n\t lastMarker = marker;\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-conditional-operator\n\t Parser.prototype.parseConditionalExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.inheritCoverGrammar(this.parseBinaryExpression);\n\t if (this.match('?')) {\n\t this.nextToken();\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = true;\n\t var consequent = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t this.context.allowIn = previousAllowIn;\n\t this.expect(':');\n\t var alternate = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t expr = this.finalize(this.startNode(startToken), new Node.ConditionalExpression(expr, consequent, alternate));\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-assignment-operators\n\t Parser.prototype.checkPatternParam = function (options, param) {\n\t switch (param.type) {\n\t case syntax_1.Syntax.Identifier:\n\t this.validateParam(options, param, param.name);\n\t break;\n\t case syntax_1.Syntax.RestElement:\n\t this.checkPatternParam(options, param.argument);\n\t break;\n\t case syntax_1.Syntax.AssignmentPattern:\n\t this.checkPatternParam(options, param.left);\n\t break;\n\t case syntax_1.Syntax.ArrayPattern:\n\t for (var i = 0; i < param.elements.length; i++) {\n\t if (param.elements[i] !== null) {\n\t this.checkPatternParam(options, param.elements[i]);\n\t }\n\t }\n\t break;\n\t case syntax_1.Syntax.ObjectPattern:\n\t for (var i = 0; i < param.properties.length; i++) {\n\t this.checkPatternParam(options, param.properties[i].value);\n\t }\n\t break;\n\t default:\n\t break;\n\t }\n\t options.simple = options.simple && (param instanceof Node.Identifier);\n\t };\n\t Parser.prototype.reinterpretAsCoverFormalsList = function (expr) {\n\t var params = [expr];\n\t var options;\n\t var asyncArrow = false;\n\t switch (expr.type) {\n\t case syntax_1.Syntax.Identifier:\n\t break;\n\t case ArrowParameterPlaceHolder:\n\t params = expr.params;\n\t asyncArrow = expr.async;\n\t break;\n\t default:\n\t return null;\n\t }\n\t options = {\n\t simple: true,\n\t paramSet: {}\n\t };\n\t for (var i = 0; i < params.length; ++i) {\n\t var param = params[i];\n\t if (param.type === syntax_1.Syntax.AssignmentPattern) {\n\t if (param.right.type === syntax_1.Syntax.YieldExpression) {\n\t if (param.right.argument) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t param.right.type = syntax_1.Syntax.Identifier;\n\t param.right.name = 'yield';\n\t delete param.right.argument;\n\t delete param.right.delegate;\n\t }\n\t }\n\t else if (asyncArrow && param.type === syntax_1.Syntax.Identifier && param.name === 'await') {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t this.checkPatternParam(options, param);\n\t params[i] = param;\n\t }\n\t if (this.context.strict || !this.context.allowYield) {\n\t for (var i = 0; i < params.length; ++i) {\n\t var param = params[i];\n\t if (param.type === syntax_1.Syntax.YieldExpression) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t }\n\t if (options.message === messages_1.Messages.StrictParamDupe) {\n\t var token = this.context.strict ? options.stricted : options.firstRestricted;\n\t this.throwUnexpectedToken(token, options.message);\n\t }\n\t return {\n\t simple: options.simple,\n\t params: params,\n\t stricted: options.stricted,\n\t firstRestricted: options.firstRestricted,\n\t message: options.message\n\t };\n\t };\n\t Parser.prototype.parseAssignmentExpression = function () {\n\t var expr;\n\t if (!this.context.allowYield && this.matchKeyword('yield')) {\n\t expr = this.parseYieldExpression();\n\t }\n\t else {\n\t var startToken = this.lookahead;\n\t var token = startToken;\n\t expr = this.parseConditionalExpression();\n\t if (token.type === 3 /* Identifier */ && (token.lineNumber === this.lookahead.lineNumber) && token.value === 'async') {\n\t if (this.lookahead.type === 3 /* Identifier */ || this.matchKeyword('yield')) {\n\t var arg = this.parsePrimaryExpression();\n\t this.reinterpretExpressionAsPattern(arg);\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [arg],\n\t async: true\n\t };\n\t }\n\t }\n\t if (expr.type === ArrowParameterPlaceHolder || this.match('=>')) {\n\t // https://tc39.github.io/ecma262/#sec-arrow-function-definitions\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var isAsync = expr.async;\n\t var list = this.reinterpretAsCoverFormalsList(expr);\n\t if (list) {\n\t if (this.hasLineTerminator) {\n\t this.tolerateUnexpectedToken(this.lookahead);\n\t }\n\t this.context.firstCoverInitializedNameError = null;\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = list.simple;\n\t var previousAllowYield = this.context.allowYield;\n\t var previousAwait = this.context.await;\n\t this.context.allowYield = true;\n\t this.context.await = isAsync;\n\t var node = this.startNode(startToken);\n\t this.expect('=>');\n\t var body = void 0;\n\t if (this.match('{')) {\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = true;\n\t body = this.parseFunctionSourceElements();\n\t this.context.allowIn = previousAllowIn;\n\t }\n\t else {\n\t body = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t var expression = body.type !== syntax_1.Syntax.BlockStatement;\n\t if (this.context.strict && list.firstRestricted) {\n\t this.throwUnexpectedToken(list.firstRestricted, list.message);\n\t }\n\t if (this.context.strict && list.stricted) {\n\t this.tolerateUnexpectedToken(list.stricted, list.message);\n\t }\n\t expr = isAsync ? this.finalize(node, new Node.AsyncArrowFunctionExpression(list.params, body, expression)) :\n\t this.finalize(node, new Node.ArrowFunctionExpression(list.params, body, expression));\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t this.context.allowYield = previousAllowYield;\n\t this.context.await = previousAwait;\n\t }\n\t }\n\t else {\n\t if (this.matchAssign()) {\n\t if (!this.context.isAssignmentTarget) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\n\t }\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier) {\n\t var id = expr;\n\t if (this.scanner.isRestrictedWord(id.name)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictLHSAssignment);\n\t }\n\t if (this.scanner.isStrictModeReservedWord(id.name)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\n\t }\n\t }\n\t if (!this.match('=')) {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t else {\n\t this.reinterpretExpressionAsPattern(expr);\n\t }\n\t token = this.nextToken();\n\t var operator = token.value;\n\t var right = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t expr = this.finalize(this.startNode(startToken), new Node.AssignmentExpression(operator, expr, right));\n\t this.context.firstCoverInitializedNameError = null;\n\t }\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-comma-operator\n\t Parser.prototype.parseExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t if (this.match(',')) {\n\t var expressions = [];\n\t expressions.push(expr);\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t if (!this.match(',')) {\n\t break;\n\t }\n\t this.nextToken();\n\t expressions.push(this.isolateCoverGrammar(this.parseAssignmentExpression));\n\t }\n\t expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions));\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-block\n\t Parser.prototype.parseStatementListItem = function () {\n\t var statement;\n\t this.context.isAssignmentTarget = true;\n\t this.context.isBindingElement = true;\n\t if (this.lookahead.type === 4 /* Keyword */) {\n\t switch (this.lookahead.value) {\n\t case 'export':\n\t if (!this.context.isModule) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalExportDeclaration);\n\t }\n\t statement = this.parseExportDeclaration();\n\t break;\n\t case 'import':\n\t if (!this.context.isModule) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalImportDeclaration);\n\t }\n\t statement = this.parseImportDeclaration();\n\t break;\n\t case 'const':\n\t statement = this.parseLexicalDeclaration({ inFor: false });\n\t break;\n\t case 'function':\n\t statement = this.parseFunctionDeclaration();\n\t break;\n\t case 'class':\n\t statement = this.parseClassDeclaration();\n\t break;\n\t case 'let':\n\t statement = this.isLexicalDeclaration() ? this.parseLexicalDeclaration({ inFor: false }) : this.parseStatement();\n\t break;\n\t default:\n\t statement = this.parseStatement();\n\t break;\n\t }\n\t }\n\t else {\n\t statement = this.parseStatement();\n\t }\n\t return statement;\n\t };\n\t Parser.prototype.parseBlock = function () {\n\t var node = this.createNode();\n\t this.expect('{');\n\t var block = [];\n\t while (true) {\n\t if (this.match('}')) {\n\t break;\n\t }\n\t block.push(this.parseStatementListItem());\n\t }\n\t this.expect('}');\n\t return this.finalize(node, new Node.BlockStatement(block));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-let-and-const-declarations\n\t Parser.prototype.parseLexicalBinding = function (kind, options) {\n\t var node = this.createNode();\n\t var params = [];\n\t var id = this.parsePattern(params, kind);\n\t if (this.context.strict && id.type === syntax_1.Syntax.Identifier) {\n\t if (this.scanner.isRestrictedWord(id.name)) {\n\t this.tolerateError(messages_1.Messages.StrictVarName);\n\t }\n\t }\n\t var init = null;\n\t if (kind === 'const') {\n\t if (!this.matchKeyword('in') && !this.matchContextualKeyword('of')) {\n\t if (this.match('=')) {\n\t this.nextToken();\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t else {\n\t this.throwError(messages_1.Messages.DeclarationMissingInitializer, 'const');\n\t }\n\t }\n\t }\n\t else if ((!options.inFor && id.type !== syntax_1.Syntax.Identifier) || this.match('=')) {\n\t this.expect('=');\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t return this.finalize(node, new Node.VariableDeclarator(id, init));\n\t };\n\t Parser.prototype.parseBindingList = function (kind, options) {\n\t var list = [this.parseLexicalBinding(kind, options)];\n\t while (this.match(',')) {\n\t this.nextToken();\n\t list.push(this.parseLexicalBinding(kind, options));\n\t }\n\t return list;\n\t };\n\t Parser.prototype.isLexicalDeclaration = function () {\n\t var state = this.scanner.saveState();\n\t this.scanner.scanComments();\n\t var next = this.scanner.lex();\n\t this.scanner.restoreState(state);\n\t return (next.type === 3 /* Identifier */) ||\n\t (next.type === 7 /* Punctuator */ && next.value === '[') ||\n\t (next.type === 7 /* Punctuator */ && next.value === '{') ||\n\t (next.type === 4 /* Keyword */ && next.value === 'let') ||\n\t (next.type === 4 /* Keyword */ && next.value === 'yield');\n\t };\n\t Parser.prototype.parseLexicalDeclaration = function (options) {\n\t var node = this.createNode();\n\t var kind = this.nextToken().value;\n\t assert_1.assert(kind === 'let' || kind === 'const', 'Lexical declaration must be either let or const');\n\t var declarations = this.parseBindingList(kind, options);\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.VariableDeclaration(declarations, kind));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-destructuring-binding-patterns\n\t Parser.prototype.parseBindingRestElement = function (params, kind) {\n\t var node = this.createNode();\n\t this.expect('...');\n\t var arg = this.parsePattern(params, kind);\n\t return this.finalize(node, new Node.RestElement(arg));\n\t };\n\t Parser.prototype.parseArrayPattern = function (params, kind) {\n\t var node = this.createNode();\n\t this.expect('[');\n\t var elements = [];\n\t while (!this.match(']')) {\n\t if (this.match(',')) {\n\t this.nextToken();\n\t elements.push(null);\n\t }\n\t else {\n\t if (this.match('...')) {\n\t elements.push(this.parseBindingRestElement(params, kind));\n\t break;\n\t }\n\t else {\n\t elements.push(this.parsePatternWithDefault(params, kind));\n\t }\n\t if (!this.match(']')) {\n\t this.expect(',');\n\t }\n\t }\n\t }\n\t this.expect(']');\n\t return this.finalize(node, new Node.ArrayPattern(elements));\n\t };\n\t Parser.prototype.parsePropertyPattern = function (params, kind) {\n\t var node = this.createNode();\n\t var computed = false;\n\t var shorthand = false;\n\t var method = false;\n\t var key;\n\t var value;\n\t if (this.lookahead.type === 3 /* Identifier */) {\n\t var keyToken = this.lookahead;\n\t key = this.parseVariableIdentifier();\n\t var init = this.finalize(node, new Node.Identifier(keyToken.value));\n\t if (this.match('=')) {\n\t params.push(keyToken);\n\t shorthand = true;\n\t this.nextToken();\n\t var expr = this.parseAssignmentExpression();\n\t value = this.finalize(this.startNode(keyToken), new Node.AssignmentPattern(init, expr));\n\t }\n\t else if (!this.match(':')) {\n\t params.push(keyToken);\n\t shorthand = true;\n\t value = init;\n\t }\n\t else {\n\t this.expect(':');\n\t value = this.parsePatternWithDefault(params, kind);\n\t }\n\t }\n\t else {\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t this.expect(':');\n\t value = this.parsePatternWithDefault(params, kind);\n\t }\n\t return this.finalize(node, new Node.Property('init', key, computed, value, method, shorthand));\n\t };\n\t Parser.prototype.parseObjectPattern = function (params, kind) {\n\t var node = this.createNode();\n\t var properties = [];\n\t this.expect('{');\n\t while (!this.match('}')) {\n\t properties.push(this.parsePropertyPattern(params, kind));\n\t if (!this.match('}')) {\n\t this.expect(',');\n\t }\n\t }\n\t this.expect('}');\n\t return this.finalize(node, new Node.ObjectPattern(properties));\n\t };\n\t Parser.prototype.parsePattern = function (params, kind) {\n\t var pattern;\n\t if (this.match('[')) {\n\t pattern = this.parseArrayPattern(params, kind);\n\t }\n\t else if (this.match('{')) {\n\t pattern = this.parseObjectPattern(params, kind);\n\t }\n\t else {\n\t if (this.matchKeyword('let') && (kind === 'const' || kind === 'let')) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.LetInLexicalBinding);\n\t }\n\t params.push(this.lookahead);\n\t pattern = this.parseVariableIdentifier(kind);\n\t }\n\t return pattern;\n\t };\n\t Parser.prototype.parsePatternWithDefault = function (params, kind) {\n\t var startToken = this.lookahead;\n\t var pattern = this.parsePattern(params, kind);\n\t if (this.match('=')) {\n\t this.nextToken();\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = true;\n\t var right = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t this.context.allowYield = previousAllowYield;\n\t pattern = this.finalize(this.startNode(startToken), new Node.AssignmentPattern(pattern, right));\n\t }\n\t return pattern;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-variable-statement\n\t Parser.prototype.parseVariableIdentifier = function (kind) {\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t if (token.type === 4 /* Keyword */ && token.value === 'yield') {\n\t if (this.context.strict) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\n\t }\n\t else if (!this.context.allowYield) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t }\n\t else if (token.type !== 3 /* Identifier */) {\n\t if (this.context.strict && token.type === 4 /* Keyword */ && this.scanner.isStrictModeReservedWord(token.value)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\n\t }\n\t else {\n\t if (this.context.strict || token.value !== 'let' || kind !== 'var') {\n\t this.throwUnexpectedToken(token);\n\t }\n\t }\n\t }\n\t else if ((this.context.isModule || this.context.await) && token.type === 3 /* Identifier */ && token.value === 'await') {\n\t this.tolerateUnexpectedToken(token);\n\t }\n\t return this.finalize(node, new Node.Identifier(token.value));\n\t };\n\t Parser.prototype.parseVariableDeclaration = function (options) {\n\t var node = this.createNode();\n\t var params = [];\n\t var id = this.parsePattern(params, 'var');\n\t if (this.context.strict && id.type === syntax_1.Syntax.Identifier) {\n\t if (this.scanner.isRestrictedWord(id.name)) {\n\t this.tolerateError(messages_1.Messages.StrictVarName);\n\t }\n\t }\n\t var init = null;\n\t if (this.match('=')) {\n\t this.nextToken();\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t else if (id.type !== syntax_1.Syntax.Identifier && !options.inFor) {\n\t this.expect('=');\n\t }\n\t return this.finalize(node, new Node.VariableDeclarator(id, init));\n\t };\n\t Parser.prototype.parseVariableDeclarationList = function (options) {\n\t var opt = { inFor: options.inFor };\n\t var list = [];\n\t list.push(this.parseVariableDeclaration(opt));\n\t while (this.match(',')) {\n\t this.nextToken();\n\t list.push(this.parseVariableDeclaration(opt));\n\t }\n\t return list;\n\t };\n\t Parser.prototype.parseVariableStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('var');\n\t var declarations = this.parseVariableDeclarationList({ inFor: false });\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.VariableDeclaration(declarations, 'var'));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-empty-statement\n\t Parser.prototype.parseEmptyStatement = function () {\n\t var node = this.createNode();\n\t this.expect(';');\n\t return this.finalize(node, new Node.EmptyStatement());\n\t };\n\t // https://tc39.github.io/ecma262/#sec-expression-statement\n\t Parser.prototype.parseExpressionStatement = function () {\n\t var node = this.createNode();\n\t var expr = this.parseExpression();\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ExpressionStatement(expr));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-if-statement\n\t Parser.prototype.parseIfClause = function () {\n\t if (this.context.strict && this.matchKeyword('function')) {\n\t this.tolerateError(messages_1.Messages.StrictFunction);\n\t }\n\t return this.parseStatement();\n\t };\n\t Parser.prototype.parseIfStatement = function () {\n\t var node = this.createNode();\n\t var consequent;\n\t var alternate = null;\n\t this.expectKeyword('if');\n\t this.expect('(');\n\t var test = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t consequent = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t consequent = this.parseIfClause();\n\t if (this.matchKeyword('else')) {\n\t this.nextToken();\n\t alternate = this.parseIfClause();\n\t }\n\t }\n\t return this.finalize(node, new Node.IfStatement(test, consequent, alternate));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-do-while-statement\n\t Parser.prototype.parseDoWhileStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('do');\n\t var previousInIteration = this.context.inIteration;\n\t this.context.inIteration = true;\n\t var body = this.parseStatement();\n\t this.context.inIteration = previousInIteration;\n\t this.expectKeyword('while');\n\t this.expect('(');\n\t var test = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t }\n\t else {\n\t this.expect(')');\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t }\n\t return this.finalize(node, new Node.DoWhileStatement(body, test));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-while-statement\n\t Parser.prototype.parseWhileStatement = function () {\n\t var node = this.createNode();\n\t var body;\n\t this.expectKeyword('while');\n\t this.expect('(');\n\t var test = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t var previousInIteration = this.context.inIteration;\n\t this.context.inIteration = true;\n\t body = this.parseStatement();\n\t this.context.inIteration = previousInIteration;\n\t }\n\t return this.finalize(node, new Node.WhileStatement(test, body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-for-statement\n\t // https://tc39.github.io/ecma262/#sec-for-in-and-for-of-statements\n\t Parser.prototype.parseForStatement = function () {\n\t var init = null;\n\t var test = null;\n\t var update = null;\n\t var forIn = true;\n\t var left, right;\n\t var node = this.createNode();\n\t this.expectKeyword('for');\n\t this.expect('(');\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t else {\n\t if (this.matchKeyword('var')) {\n\t init = this.createNode();\n\t this.nextToken();\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = false;\n\t var declarations = this.parseVariableDeclarationList({ inFor: true });\n\t this.context.allowIn = previousAllowIn;\n\t if (declarations.length === 1 && this.matchKeyword('in')) {\n\t var decl = declarations[0];\n\t if (decl.init && (decl.id.type === syntax_1.Syntax.ArrayPattern || decl.id.type === syntax_1.Syntax.ObjectPattern || this.context.strict)) {\n\t this.tolerateError(messages_1.Messages.ForInOfLoopInitializer, 'for-in');\n\t }\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseAssignmentExpression();\n\t init = null;\n\t forIn = false;\n\t }\n\t else {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\n\t this.expect(';');\n\t }\n\t }\n\t else if (this.matchKeyword('const') || this.matchKeyword('let')) {\n\t init = this.createNode();\n\t var kind = this.nextToken().value;\n\t if (!this.context.strict && this.lookahead.value === 'in') {\n\t init = this.finalize(init, new Node.Identifier(kind));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else {\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = false;\n\t var declarations = this.parseBindingList(kind, { inFor: true });\n\t this.context.allowIn = previousAllowIn;\n\t if (declarations.length === 1 && declarations[0].init === null && this.matchKeyword('in')) {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseAssignmentExpression();\n\t init = null;\n\t forIn = false;\n\t }\n\t else {\n\t this.consumeSemicolon();\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\n\t }\n\t }\n\t }\n\t else {\n\t var initStartToken = this.lookahead;\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = false;\n\t init = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t this.context.allowIn = previousAllowIn;\n\t if (this.matchKeyword('in')) {\n\t if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInForIn);\n\t }\n\t this.nextToken();\n\t this.reinterpretExpressionAsPattern(init);\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else if (this.matchContextualKeyword('of')) {\n\t if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInForLoop);\n\t }\n\t this.nextToken();\n\t this.reinterpretExpressionAsPattern(init);\n\t left = init;\n\t right = this.parseAssignmentExpression();\n\t init = null;\n\t forIn = false;\n\t }\n\t else {\n\t if (this.match(',')) {\n\t var initSeq = [init];\n\t while (this.match(',')) {\n\t this.nextToken();\n\t initSeq.push(this.isolateCoverGrammar(this.parseAssignmentExpression));\n\t }\n\t init = this.finalize(this.startNode(initStartToken), new Node.SequenceExpression(initSeq));\n\t }\n\t this.expect(';');\n\t }\n\t }\n\t }\n\t if (typeof left === 'undefined') {\n\t if (!this.match(';')) {\n\t test = this.parseExpression();\n\t }\n\t this.expect(';');\n\t if (!this.match(')')) {\n\t update = this.parseExpression();\n\t }\n\t }\n\t var body;\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t var previousInIteration = this.context.inIteration;\n\t this.context.inIteration = true;\n\t body = this.isolateCoverGrammar(this.parseStatement);\n\t this.context.inIteration = previousInIteration;\n\t }\n\t return (typeof left === 'undefined') ?\n\t this.finalize(node, new Node.ForStatement(init, test, update, body)) :\n\t forIn ? this.finalize(node, new Node.ForInStatement(left, right, body)) :\n\t this.finalize(node, new Node.ForOfStatement(left, right, body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-continue-statement\n\t Parser.prototype.parseContinueStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('continue');\n\t var label = null;\n\t if (this.lookahead.type === 3 /* Identifier */ && !this.hasLineTerminator) {\n\t var id = this.parseVariableIdentifier();\n\t label = id;\n\t var key = '$' + id.name;\n\t if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\n\t this.throwError(messages_1.Messages.UnknownLabel, id.name);\n\t }\n\t }\n\t this.consumeSemicolon();\n\t if (label === null && !this.context.inIteration) {\n\t this.throwError(messages_1.Messages.IllegalContinue);\n\t }\n\t return this.finalize(node, new Node.ContinueStatement(label));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-break-statement\n\t Parser.prototype.parseBreakStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('break');\n\t var label = null;\n\t if (this.lookahead.type === 3 /* Identifier */ && !this.hasLineTerminator) {\n\t var id = this.parseVariableIdentifier();\n\t var key = '$' + id.name;\n\t if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\n\t this.throwError(messages_1.Messages.UnknownLabel, id.name);\n\t }\n\t label = id;\n\t }\n\t this.consumeSemicolon();\n\t if (label === null && !this.context.inIteration && !this.context.inSwitch) {\n\t this.throwError(messages_1.Messages.IllegalBreak);\n\t }\n\t return this.finalize(node, new Node.BreakStatement(label));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-return-statement\n\t Parser.prototype.parseReturnStatement = function () {\n\t if (!this.context.inFunctionBody) {\n\t this.tolerateError(messages_1.Messages.IllegalReturn);\n\t }\n\t var node = this.createNode();\n\t this.expectKeyword('return');\n\t var hasArgument = (!this.match(';') && !this.match('}') &&\n\t !this.hasLineTerminator && this.lookahead.type !== 2 /* EOF */) ||\n\t this.lookahead.type === 8 /* StringLiteral */ ||\n\t this.lookahead.type === 10 /* Template */;\n\t var argument = hasArgument ? this.parseExpression() : null;\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ReturnStatement(argument));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-with-statement\n\t Parser.prototype.parseWithStatement = function () {\n\t if (this.context.strict) {\n\t this.tolerateError(messages_1.Messages.StrictModeWith);\n\t }\n\t var node = this.createNode();\n\t var body;\n\t this.expectKeyword('with');\n\t this.expect('(');\n\t var object = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t body = this.parseStatement();\n\t }\n\t return this.finalize(node, new Node.WithStatement(object, body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-switch-statement\n\t Parser.prototype.parseSwitchCase = function () {\n\t var node = this.createNode();\n\t var test;\n\t if (this.matchKeyword('default')) {\n\t this.nextToken();\n\t test = null;\n\t }\n\t else {\n\t this.expectKeyword('case');\n\t test = this.parseExpression();\n\t }\n\t this.expect(':');\n\t var consequent = [];\n\t while (true) {\n\t if (this.match('}') || this.matchKeyword('default') || this.matchKeyword('case')) {\n\t break;\n\t }\n\t consequent.push(this.parseStatementListItem());\n\t }\n\t return this.finalize(node, new Node.SwitchCase(test, consequent));\n\t };\n\t Parser.prototype.parseSwitchStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('switch');\n\t this.expect('(');\n\t var discriminant = this.parseExpression();\n\t this.expect(')');\n\t var previousInSwitch = this.context.inSwitch;\n\t this.context.inSwitch = true;\n\t var cases = [];\n\t var defaultFound = false;\n\t this.expect('{');\n\t while (true) {\n\t if (this.match('}')) {\n\t break;\n\t }\n\t var clause = this.parseSwitchCase();\n\t if (clause.test === null) {\n\t if (defaultFound) {\n\t this.throwError(messages_1.Messages.MultipleDefaultsInSwitch);\n\t }\n\t defaultFound = true;\n\t }\n\t cases.push(clause);\n\t }\n\t this.expect('}');\n\t this.context.inSwitch = previousInSwitch;\n\t return this.finalize(node, new Node.SwitchStatement(discriminant, cases));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-labelled-statements\n\t Parser.prototype.parseLabelledStatement = function () {\n\t var node = this.createNode();\n\t var expr = this.parseExpression();\n\t var statement;\n\t if ((expr.type === syntax_1.Syntax.Identifier) && this.match(':')) {\n\t this.nextToken();\n\t var id = expr;\n\t var key = '$' + id.name;\n\t if (Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\n\t this.throwError(messages_1.Messages.Redeclaration, 'Label', id.name);\n\t }\n\t this.context.labelSet[key] = true;\n\t var body = void 0;\n\t if (this.matchKeyword('class')) {\n\t this.tolerateUnexpectedToken(this.lookahead);\n\t body = this.parseClassDeclaration();\n\t }\n\t else if (this.matchKeyword('function')) {\n\t var token = this.lookahead;\n\t var declaration = this.parseFunctionDeclaration();\n\t if (this.context.strict) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunction);\n\t }\n\t else if (declaration.generator) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.GeneratorInLegacyContext);\n\t }\n\t body = declaration;\n\t }\n\t else {\n\t body = this.parseStatement();\n\t }\n\t delete this.context.labelSet[key];\n\t statement = new Node.LabeledStatement(id, body);\n\t }\n\t else {\n\t this.consumeSemicolon();\n\t statement = new Node.ExpressionStatement(expr);\n\t }\n\t return this.finalize(node, statement);\n\t };\n\t // https://tc39.github.io/ecma262/#sec-throw-statement\n\t Parser.prototype.parseThrowStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('throw');\n\t if (this.hasLineTerminator) {\n\t this.throwError(messages_1.Messages.NewlineAfterThrow);\n\t }\n\t var argument = this.parseExpression();\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ThrowStatement(argument));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-try-statement\n\t Parser.prototype.parseCatchClause = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('catch');\n\t this.expect('(');\n\t if (this.match(')')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t var params = [];\n\t var param = this.parsePattern(params);\n\t var paramMap = {};\n\t for (var i = 0; i < params.length; i++) {\n\t var key = '$' + params[i].value;\n\t if (Object.prototype.hasOwnProperty.call(paramMap, key)) {\n\t this.tolerateError(messages_1.Messages.DuplicateBinding, params[i].value);\n\t }\n\t paramMap[key] = true;\n\t }\n\t if (this.context.strict && param.type === syntax_1.Syntax.Identifier) {\n\t if (this.scanner.isRestrictedWord(param.name)) {\n\t this.tolerateError(messages_1.Messages.StrictCatchVariable);\n\t }\n\t }\n\t this.expect(')');\n\t var body = this.parseBlock();\n\t return this.finalize(node, new Node.CatchClause(param, body));\n\t };\n\t Parser.prototype.parseFinallyClause = function () {\n\t this.expectKeyword('finally');\n\t return this.parseBlock();\n\t };\n\t Parser.prototype.parseTryStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('try');\n\t var block = this.parseBlock();\n\t var handler = this.matchKeyword('catch') ? this.parseCatchClause() : null;\n\t var finalizer = this.matchKeyword('finally') ? this.parseFinallyClause() : null;\n\t if (!handler && !finalizer) {\n\t this.throwError(messages_1.Messages.NoCatchOrFinally);\n\t }\n\t return this.finalize(node, new Node.TryStatement(block, handler, finalizer));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-debugger-statement\n\t Parser.prototype.parseDebuggerStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('debugger');\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.DebuggerStatement());\n\t };\n\t // https://tc39.github.io/ecma262/#sec-ecmascript-language-statements-and-declarations\n\t Parser.prototype.parseStatement = function () {\n\t var statement;\n\t switch (this.lookahead.type) {\n\t case 1 /* BooleanLiteral */:\n\t case 5 /* NullLiteral */:\n\t case 6 /* NumericLiteral */:\n\t case 8 /* StringLiteral */:\n\t case 10 /* Template */:\n\t case 9 /* RegularExpression */:\n\t statement = this.parseExpressionStatement();\n\t break;\n\t case 7 /* Punctuator */:\n\t var value = this.lookahead.value;\n\t if (value === '{') {\n\t statement = this.parseBlock();\n\t }\n\t else if (value === '(') {\n\t statement = this.parseExpressionStatement();\n\t }\n\t else if (value === ';') {\n\t statement = this.parseEmptyStatement();\n\t }\n\t else {\n\t statement = this.parseExpressionStatement();\n\t }\n\t break;\n\t case 3 /* Identifier */:\n\t statement = this.matchAsyncFunction() ? this.parseFunctionDeclaration() : this.parseLabelledStatement();\n\t break;\n\t case 4 /* Keyword */:\n\t switch (this.lookahead.value) {\n\t case 'break':\n\t statement = this.parseBreakStatement();\n\t break;\n\t case 'continue':\n\t statement = this.parseContinueStatement();\n\t break;\n\t case 'debugger':\n\t statement = this.parseDebuggerStatement();\n\t break;\n\t case 'do':\n\t statement = this.parseDoWhileStatement();\n\t break;\n\t case 'for':\n\t statement = this.parseForStatement();\n\t break;\n\t case 'function':\n\t statement = this.parseFunctionDeclaration();\n\t break;\n\t case 'if':\n\t statement = this.parseIfStatement();\n\t break;\n\t case 'return':\n\t statement = this.parseReturnStatement();\n\t break;\n\t case 'switch':\n\t statement = this.parseSwitchStatement();\n\t break;\n\t case 'throw':\n\t statement = this.parseThrowStatement();\n\t break;\n\t case 'try':\n\t statement = this.parseTryStatement();\n\t break;\n\t case 'var':\n\t statement = this.parseVariableStatement();\n\t break;\n\t case 'while':\n\t statement = this.parseWhileStatement();\n\t break;\n\t case 'with':\n\t statement = this.parseWithStatement();\n\t break;\n\t default:\n\t statement = this.parseExpressionStatement();\n\t break;\n\t }\n\t break;\n\t default:\n\t statement = this.throwUnexpectedToken(this.lookahead);\n\t }\n\t return statement;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-function-definitions\n\t Parser.prototype.parseFunctionSourceElements = function () {\n\t var node = this.createNode();\n\t this.expect('{');\n\t var body = this.parseDirectivePrologues();\n\t var previousLabelSet = this.context.labelSet;\n\t var previousInIteration = this.context.inIteration;\n\t var previousInSwitch = this.context.inSwitch;\n\t var previousInFunctionBody = this.context.inFunctionBody;\n\t this.context.labelSet = {};\n\t this.context.inIteration = false;\n\t this.context.inSwitch = false;\n\t this.context.inFunctionBody = true;\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t if (this.match('}')) {\n\t break;\n\t }\n\t body.push(this.parseStatementListItem());\n\t }\n\t this.expect('}');\n\t this.context.labelSet = previousLabelSet;\n\t this.context.inIteration = previousInIteration;\n\t this.context.inSwitch = previousInSwitch;\n\t this.context.inFunctionBody = previousInFunctionBody;\n\t return this.finalize(node, new Node.BlockStatement(body));\n\t };\n\t Parser.prototype.validateParam = function (options, param, name) {\n\t var key = '$' + name;\n\t if (this.context.strict) {\n\t if (this.scanner.isRestrictedWord(name)) {\n\t options.stricted = param;\n\t options.message = messages_1.Messages.StrictParamName;\n\t }\n\t if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) {\n\t options.stricted = param;\n\t options.message = messages_1.Messages.StrictParamDupe;\n\t }\n\t }\n\t else if (!options.firstRestricted) {\n\t if (this.scanner.isRestrictedWord(name)) {\n\t options.firstRestricted = param;\n\t options.message = messages_1.Messages.StrictParamName;\n\t }\n\t else if (this.scanner.isStrictModeReservedWord(name)) {\n\t options.firstRestricted = param;\n\t options.message = messages_1.Messages.StrictReservedWord;\n\t }\n\t else if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) {\n\t options.stricted = param;\n\t options.message = messages_1.Messages.StrictParamDupe;\n\t }\n\t }\n\t /* istanbul ignore next */\n\t if (typeof Object.defineProperty === 'function') {\n\t Object.defineProperty(options.paramSet, key, { value: true, enumerable: true, writable: true, configurable: true });\n\t }\n\t else {\n\t options.paramSet[key] = true;\n\t }\n\t };\n\t Parser.prototype.parseRestElement = function (params) {\n\t var node = this.createNode();\n\t this.expect('...');\n\t var arg = this.parsePattern(params);\n\t if (this.match('=')) {\n\t this.throwError(messages_1.Messages.DefaultRestParameter);\n\t }\n\t if (!this.match(')')) {\n\t this.throwError(messages_1.Messages.ParameterAfterRestParameter);\n\t }\n\t return this.finalize(node, new Node.RestElement(arg));\n\t };\n\t Parser.prototype.parseFormalParameter = function (options) {\n\t var params = [];\n\t var param = this.match('...') ? this.parseRestElement(params) : this.parsePatternWithDefault(params);\n\t for (var i = 0; i < params.length; i++) {\n\t this.validateParam(options, params[i], params[i].value);\n\t }\n\t options.simple = options.simple && (param instanceof Node.Identifier);\n\t options.params.push(param);\n\t };\n\t Parser.prototype.parseFormalParameters = function (firstRestricted) {\n\t var options;\n\t options = {\n\t simple: true,\n\t params: [],\n\t firstRestricted: firstRestricted\n\t };\n\t this.expect('(');\n\t if (!this.match(')')) {\n\t options.paramSet = {};\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t this.parseFormalParameter(options);\n\t if (this.match(')')) {\n\t break;\n\t }\n\t this.expect(',');\n\t if (this.match(')')) {\n\t break;\n\t }\n\t }\n\t }\n\t this.expect(')');\n\t return {\n\t simple: options.simple,\n\t params: options.params,\n\t stricted: options.stricted,\n\t firstRestricted: options.firstRestricted,\n\t message: options.message\n\t };\n\t };\n\t Parser.prototype.matchAsyncFunction = function () {\n\t var match = this.matchContextualKeyword('async');\n\t if (match) {\n\t var state = this.scanner.saveState();\n\t this.scanner.scanComments();\n\t var next = this.scanner.lex();\n\t this.scanner.restoreState(state);\n\t match = (state.lineNumber === next.lineNumber) && (next.type === 4 /* Keyword */) && (next.value === 'function');\n\t }\n\t return match;\n\t };\n\t Parser.prototype.parseFunctionDeclaration = function (identifierIsOptional) {\n\t var node = this.createNode();\n\t var isAsync = this.matchContextualKeyword('async');\n\t if (isAsync) {\n\t this.nextToken();\n\t }\n\t this.expectKeyword('function');\n\t var isGenerator = isAsync ? false : this.match('*');\n\t if (isGenerator) {\n\t this.nextToken();\n\t }\n\t var message;\n\t var id = null;\n\t var firstRestricted = null;\n\t if (!identifierIsOptional || !this.match('(')) {\n\t var token = this.lookahead;\n\t id = this.parseVariableIdentifier();\n\t if (this.context.strict) {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName);\n\t }\n\t }\n\t else {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictFunctionName;\n\t }\n\t else if (this.scanner.isStrictModeReservedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictReservedWord;\n\t }\n\t }\n\t }\n\t var previousAllowAwait = this.context.await;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.await = isAsync;\n\t this.context.allowYield = !isGenerator;\n\t var formalParameters = this.parseFormalParameters(firstRestricted);\n\t var params = formalParameters.params;\n\t var stricted = formalParameters.stricted;\n\t firstRestricted = formalParameters.firstRestricted;\n\t if (formalParameters.message) {\n\t message = formalParameters.message;\n\t }\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = formalParameters.simple;\n\t var body = this.parseFunctionSourceElements();\n\t if (this.context.strict && firstRestricted) {\n\t this.throwUnexpectedToken(firstRestricted, message);\n\t }\n\t if (this.context.strict && stricted) {\n\t this.tolerateUnexpectedToken(stricted, message);\n\t }\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t this.context.await = previousAllowAwait;\n\t this.context.allowYield = previousAllowYield;\n\t return isAsync ? this.finalize(node, new Node.AsyncFunctionDeclaration(id, params, body)) :\n\t this.finalize(node, new Node.FunctionDeclaration(id, params, body, isGenerator));\n\t };\n\t Parser.prototype.parseFunctionExpression = function () {\n\t var node = this.createNode();\n\t var isAsync = this.matchContextualKeyword('async');\n\t if (isAsync) {\n\t this.nextToken();\n\t }\n\t this.expectKeyword('function');\n\t var isGenerator = isAsync ? false : this.match('*');\n\t if (isGenerator) {\n\t this.nextToken();\n\t }\n\t var message;\n\t var id = null;\n\t var firstRestricted;\n\t var previousAllowAwait = this.context.await;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.await = isAsync;\n\t this.context.allowYield = !isGenerator;\n\t if (!this.match('(')) {\n\t var token = this.lookahead;\n\t id = (!this.context.strict && !isGenerator && this.matchKeyword('yield')) ? this.parseIdentifierName() : this.parseVariableIdentifier();\n\t if (this.context.strict) {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName);\n\t }\n\t }\n\t else {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictFunctionName;\n\t }\n\t else if (this.scanner.isStrictModeReservedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictReservedWord;\n\t }\n\t }\n\t }\n\t var formalParameters = this.parseFormalParameters(firstRestricted);\n\t var params = formalParameters.params;\n\t var stricted = formalParameters.stricted;\n\t firstRestricted = formalParameters.firstRestricted;\n\t if (formalParameters.message) {\n\t message = formalParameters.message;\n\t }\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = formalParameters.simple;\n\t var body = this.parseFunctionSourceElements();\n\t if (this.context.strict && firstRestricted) {\n\t this.throwUnexpectedToken(firstRestricted, message);\n\t }\n\t if (this.context.strict && stricted) {\n\t this.tolerateUnexpectedToken(stricted, message);\n\t }\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t this.context.await = previousAllowAwait;\n\t this.context.allowYield = previousAllowYield;\n\t return isAsync ? this.finalize(node, new Node.AsyncFunctionExpression(id, params, body)) :\n\t this.finalize(node, new Node.FunctionExpression(id, params, body, isGenerator));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-directive-prologues-and-the-use-strict-directive\n\t Parser.prototype.parseDirective = function () {\n\t var token = this.lookahead;\n\t var node = this.createNode();\n\t var expr = this.parseExpression();\n\t var directive = (expr.type === syntax_1.Syntax.Literal) ? this.getTokenRaw(token).slice(1, -1) : null;\n\t this.consumeSemicolon();\n\t return this.finalize(node, directive ? new Node.Directive(expr, directive) : new Node.ExpressionStatement(expr));\n\t };\n\t Parser.prototype.parseDirectivePrologues = function () {\n\t var firstRestricted = null;\n\t var body = [];\n\t while (true) {\n\t var token = this.lookahead;\n\t if (token.type !== 8 /* StringLiteral */) {\n\t break;\n\t }\n\t var statement = this.parseDirective();\n\t body.push(statement);\n\t var directive = statement.directive;\n\t if (typeof directive !== 'string') {\n\t break;\n\t }\n\t if (directive === 'use strict') {\n\t this.context.strict = true;\n\t if (firstRestricted) {\n\t this.tolerateUnexpectedToken(firstRestricted, messages_1.Messages.StrictOctalLiteral);\n\t }\n\t if (!this.context.allowStrictDirective) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.IllegalLanguageModeDirective);\n\t }\n\t }\n\t else {\n\t if (!firstRestricted && token.octal) {\n\t firstRestricted = token;\n\t }\n\t }\n\t }\n\t return body;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-method-definitions\n\t Parser.prototype.qualifiedPropertyName = function (token) {\n\t switch (token.type) {\n\t case 3 /* Identifier */:\n\t case 8 /* StringLiteral */:\n\t case 1 /* BooleanLiteral */:\n\t case 5 /* NullLiteral */:\n\t case 6 /* NumericLiteral */:\n\t case 4 /* Keyword */:\n\t return true;\n\t case 7 /* Punctuator */:\n\t return token.value === '[';\n\t default:\n\t break;\n\t }\n\t return false;\n\t };\n\t Parser.prototype.parseGetterMethod = function () {\n\t var node = this.createNode();\n\t var isGenerator = false;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = !isGenerator;\n\t var formalParameters = this.parseFormalParameters();\n\t if (formalParameters.params.length > 0) {\n\t this.tolerateError(messages_1.Messages.BadGetterArity);\n\t }\n\t var method = this.parsePropertyMethod(formalParameters);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, formalParameters.params, method, isGenerator));\n\t };\n\t Parser.prototype.parseSetterMethod = function () {\n\t var node = this.createNode();\n\t var isGenerator = false;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = !isGenerator;\n\t var formalParameters = this.parseFormalParameters();\n\t if (formalParameters.params.length !== 1) {\n\t this.tolerateError(messages_1.Messages.BadSetterArity);\n\t }\n\t else if (formalParameters.params[0] instanceof Node.RestElement) {\n\t this.tolerateError(messages_1.Messages.BadSetterRestParameter);\n\t }\n\t var method = this.parsePropertyMethod(formalParameters);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, formalParameters.params, method, isGenerator));\n\t };\n\t Parser.prototype.parseGeneratorMethod = function () {\n\t var node = this.createNode();\n\t var isGenerator = true;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = true;\n\t var params = this.parseFormalParameters();\n\t this.context.allowYield = false;\n\t var method = this.parsePropertyMethod(params);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-generator-function-definitions\n\t Parser.prototype.isStartOfExpression = function () {\n\t var start = true;\n\t var value = this.lookahead.value;\n\t switch (this.lookahead.type) {\n\t case 7 /* Punctuator */:\n\t start = (value === '[') || (value === '(') || (value === '{') ||\n\t (value === '+') || (value === '-') ||\n\t (value === '!') || (value === '~') ||\n\t (value === '++') || (value === '--') ||\n\t (value === '/') || (value === '/='); // regular expression literal\n\t break;\n\t case 4 /* Keyword */:\n\t start = (value === 'class') || (value === 'delete') ||\n\t (value === 'function') || (value === 'let') || (value === 'new') ||\n\t (value === 'super') || (value === 'this') || (value === 'typeof') ||\n\t (value === 'void') || (value === 'yield');\n\t break;\n\t default:\n\t break;\n\t }\n\t return start;\n\t };\n\t Parser.prototype.parseYieldExpression = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('yield');\n\t var argument = null;\n\t var delegate = false;\n\t if (!this.hasLineTerminator) {\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = false;\n\t delegate = this.match('*');\n\t if (delegate) {\n\t this.nextToken();\n\t argument = this.parseAssignmentExpression();\n\t }\n\t else if (this.isStartOfExpression()) {\n\t argument = this.parseAssignmentExpression();\n\t }\n\t this.context.allowYield = previousAllowYield;\n\t }\n\t return this.finalize(node, new Node.YieldExpression(argument, delegate));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-class-definitions\n\t Parser.prototype.parseClassElement = function (hasConstructor) {\n\t var token = this.lookahead;\n\t var node = this.createNode();\n\t var kind = '';\n\t var key = null;\n\t var value = null;\n\t var computed = false;\n\t var method = false;\n\t var isStatic = false;\n\t var isAsync = false;\n\t if (this.match('*')) {\n\t this.nextToken();\n\t }\n\t else {\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t var id = key;\n\t if (id.name === 'static' && (this.qualifiedPropertyName(this.lookahead) || this.match('*'))) {\n\t token = this.lookahead;\n\t isStatic = true;\n\t computed = this.match('[');\n\t if (this.match('*')) {\n\t this.nextToken();\n\t }\n\t else {\n\t key = this.parseObjectPropertyKey();\n\t }\n\t }\n\t if ((token.type === 3 /* Identifier */) && !this.hasLineTerminator && (token.value === 'async')) {\n\t var punctuator = this.lookahead.value;\n\t if (punctuator !== ':' && punctuator !== '(' && punctuator !== '*') {\n\t isAsync = true;\n\t token = this.lookahead;\n\t key = this.parseObjectPropertyKey();\n\t if (token.type === 3 /* Identifier */ && token.value === 'constructor') {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.ConstructorIsAsync);\n\t }\n\t }\n\t }\n\t }\n\t var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead);\n\t if (token.type === 3 /* Identifier */) {\n\t if (token.value === 'get' && lookaheadPropertyKey) {\n\t kind = 'get';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t this.context.allowYield = false;\n\t value = this.parseGetterMethod();\n\t }\n\t else if (token.value === 'set' && lookaheadPropertyKey) {\n\t kind = 'set';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseSetterMethod();\n\t }\n\t }\n\t else if (token.type === 7 /* Punctuator */ && token.value === '*' && lookaheadPropertyKey) {\n\t kind = 'init';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseGeneratorMethod();\n\t method = true;\n\t }\n\t if (!kind && key && this.match('(')) {\n\t kind = 'init';\n\t value = isAsync ? this.parsePropertyMethodAsyncFunction() : this.parsePropertyMethodFunction();\n\t method = true;\n\t }\n\t if (!kind) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t if (kind === 'init') {\n\t kind = 'method';\n\t }\n\t if (!computed) {\n\t if (isStatic && this.isPropertyKey(key, 'prototype')) {\n\t this.throwUnexpectedToken(token, messages_1.Messages.StaticPrototype);\n\t }\n\t if (!isStatic && this.isPropertyKey(key, 'constructor')) {\n\t if (kind !== 'method' || !method || (value && value.generator)) {\n\t this.throwUnexpectedToken(token, messages_1.Messages.ConstructorSpecialMethod);\n\t }\n\t if (hasConstructor.value) {\n\t this.throwUnexpectedToken(token, messages_1.Messages.DuplicateConstructor);\n\t }\n\t else {\n\t hasConstructor.value = true;\n\t }\n\t kind = 'constructor';\n\t }\n\t }\n\t return this.finalize(node, new Node.MethodDefinition(key, computed, value, kind, isStatic));\n\t };\n\t Parser.prototype.parseClassElementList = function () {\n\t var body = [];\n\t var hasConstructor = { value: false };\n\t this.expect('{');\n\t while (!this.match('}')) {\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t else {\n\t body.push(this.parseClassElement(hasConstructor));\n\t }\n\t }\n\t this.expect('}');\n\t return body;\n\t };\n\t Parser.prototype.parseClassBody = function () {\n\t var node = this.createNode();\n\t var elementList = this.parseClassElementList();\n\t return this.finalize(node, new Node.ClassBody(elementList));\n\t };\n\t Parser.prototype.parseClassDeclaration = function (identifierIsOptional) {\n\t var node = this.createNode();\n\t var previousStrict = this.context.strict;\n\t this.context.strict = true;\n\t this.expectKeyword('class');\n\t var id = (identifierIsOptional && (this.lookahead.type !== 3 /* Identifier */)) ? null : this.parseVariableIdentifier();\n\t var superClass = null;\n\t if (this.matchKeyword('extends')) {\n\t this.nextToken();\n\t superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\n\t }\n\t var classBody = this.parseClassBody();\n\t this.context.strict = previousStrict;\n\t return this.finalize(node, new Node.ClassDeclaration(id, superClass, classBody));\n\t };\n\t Parser.prototype.parseClassExpression = function () {\n\t var node = this.createNode();\n\t var previousStrict = this.context.strict;\n\t this.context.strict = true;\n\t this.expectKeyword('class');\n\t var id = (this.lookahead.type === 3 /* Identifier */) ? this.parseVariableIdentifier() : null;\n\t var superClass = null;\n\t if (this.matchKeyword('extends')) {\n\t this.nextToken();\n\t superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\n\t }\n\t var classBody = this.parseClassBody();\n\t this.context.strict = previousStrict;\n\t return this.finalize(node, new Node.ClassExpression(id, superClass, classBody));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-scripts\n\t // https://tc39.github.io/ecma262/#sec-modules\n\t Parser.prototype.parseModule = function () {\n\t this.context.strict = true;\n\t this.context.isModule = true;\n\t this.scanner.isModule = true;\n\t var node = this.createNode();\n\t var body = this.parseDirectivePrologues();\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t body.push(this.parseStatementListItem());\n\t }\n\t return this.finalize(node, new Node.Module(body));\n\t };\n\t Parser.prototype.parseScript = function () {\n\t var node = this.createNode();\n\t var body = this.parseDirectivePrologues();\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t body.push(this.parseStatementListItem());\n\t }\n\t return this.finalize(node, new Node.Script(body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-imports\n\t Parser.prototype.parseModuleSpecifier = function () {\n\t var node = this.createNode();\n\t if (this.lookahead.type !== 8 /* StringLiteral */) {\n\t this.throwError(messages_1.Messages.InvalidModuleSpecifier);\n\t }\n\t var token = this.nextToken();\n\t var raw = this.getTokenRaw(token);\n\t return this.finalize(node, new Node.Literal(token.value, raw));\n\t };\n\t // import {<foo as bar>} ...;\n\t Parser.prototype.parseImportSpecifier = function () {\n\t var node = this.createNode();\n\t var imported;\n\t var local;\n\t if (this.lookahead.type === 3 /* Identifier */) {\n\t imported = this.parseVariableIdentifier();\n\t local = imported;\n\t if (this.matchContextualKeyword('as')) {\n\t this.nextToken();\n\t local = this.parseVariableIdentifier();\n\t }\n\t }\n\t else {\n\t imported = this.parseIdentifierName();\n\t local = imported;\n\t if (this.matchContextualKeyword('as')) {\n\t this.nextToken();\n\t local = this.parseVariableIdentifier();\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.nextToken());\n\t }\n\t }\n\t return this.finalize(node, new Node.ImportSpecifier(local, imported));\n\t };\n\t // {foo, bar as bas}\n\t Parser.prototype.parseNamedImports = function () {\n\t this.expect('{');\n\t var specifiers = [];\n\t while (!this.match('}')) {\n\t specifiers.push(this.parseImportSpecifier());\n\t if (!this.match('}')) {\n\t this.expect(',');\n\t }\n\t }\n\t this.expect('}');\n\t return specifiers;\n\t };\n\t // import <foo> ...;\n\t Parser.prototype.parseImportDefaultSpecifier = function () {\n\t var node = this.createNode();\n\t var local = this.parseIdentifierName();\n\t return this.finalize(node, new Node.ImportDefaultSpecifier(local));\n\t };\n\t // import <* as foo> ...;\n\t Parser.prototype.parseImportNamespaceSpecifier = function () {\n\t var node = this.createNode();\n\t this.expect('*');\n\t if (!this.matchContextualKeyword('as')) {\n\t this.throwError(messages_1.Messages.NoAsAfterImportNamespace);\n\t }\n\t this.nextToken();\n\t var local = this.parseIdentifierName();\n\t return this.finalize(node, new Node.ImportNamespaceSpecifier(local));\n\t };\n\t Parser.prototype.parseImportDeclaration = function () {\n\t if (this.context.inFunctionBody) {\n\t this.throwError(messages_1.Messages.IllegalImportDeclaration);\n\t }\n\t var node = this.createNode();\n\t this.expectKeyword('import');\n\t var src;\n\t var specifiers = [];\n\t if (this.lookahead.type === 8 /* StringLiteral */) {\n\t // import 'foo';\n\t src = this.parseModuleSpecifier();\n\t }\n\t else {\n\t if (this.match('{')) {\n\t // import {bar}\n\t specifiers = specifiers.concat(this.parseNamedImports());\n\t }\n\t else if (this.match('*')) {\n\t // import * as foo\n\t specifiers.push(this.parseImportNamespaceSpecifier());\n\t }\n\t else if (this.isIdentifierName(this.lookahead) && !this.matchKeyword('default')) {\n\t // import foo\n\t specifiers.push(this.parseImportDefaultSpecifier());\n\t if (this.match(',')) {\n\t this.nextToken();\n\t if (this.match('*')) {\n\t // import foo, * as foo\n\t specifiers.push(this.parseImportNamespaceSpecifier());\n\t }\n\t else if (this.match('{')) {\n\t // import foo, {bar}\n\t specifiers = specifiers.concat(this.parseNamedImports());\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.nextToken());\n\t }\n\t if (!this.matchContextualKeyword('from')) {\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\n\t this.throwError(message, this.lookahead.value);\n\t }\n\t this.nextToken();\n\t src = this.parseModuleSpecifier();\n\t }\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ImportDeclaration(specifiers, src));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-exports\n\t Parser.prototype.parseExportSpecifier = function () {\n\t var node = this.createNode();\n\t var local = this.parseIdentifierName();\n\t var exported = local;\n\t if (this.matchContextualKeyword('as')) {\n\t this.nextToken();\n\t exported = this.parseIdentifierName();\n\t }\n\t return this.finalize(node, new Node.ExportSpecifier(local, exported));\n\t };\n\t Parser.prototype.parseExportDeclaration = function () {\n\t if (this.context.inFunctionBody) {\n\t this.throwError(messages_1.Messages.IllegalExportDeclaration);\n\t }\n\t var node = this.createNode();\n\t this.expectKeyword('export');\n\t var exportDeclaration;\n\t if (this.matchKeyword('default')) {\n\t // export default ...\n\t this.nextToken();\n\t if (this.matchKeyword('function')) {\n\t // export default function foo () {}\n\t // export default function () {}\n\t var declaration = this.parseFunctionDeclaration(true);\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t else if (this.matchKeyword('class')) {\n\t // export default class foo {}\n\t var declaration = this.parseClassDeclaration(true);\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t else if (this.matchContextualKeyword('async')) {\n\t // export default async function f () {}\n\t // export default async function () {}\n\t // export default async x => x\n\t var declaration = this.matchAsyncFunction() ? this.parseFunctionDeclaration(true) : this.parseAssignmentExpression();\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t else {\n\t if (this.matchContextualKeyword('from')) {\n\t this.throwError(messages_1.Messages.UnexpectedToken, this.lookahead.value);\n\t }\n\t // export default {};\n\t // export default [];\n\t // export default (1 + 2);\n\t var declaration = this.match('{') ? this.parseObjectInitializer() :\n\t this.match('[') ? this.parseArrayInitializer() : this.parseAssignmentExpression();\n\t this.consumeSemicolon();\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t }\n\t else if (this.match('*')) {\n\t // export * from 'foo';\n\t this.nextToken();\n\t if (!this.matchContextualKeyword('from')) {\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\n\t this.throwError(message, this.lookahead.value);\n\t }\n\t this.nextToken();\n\t var src = this.parseModuleSpecifier();\n\t this.consumeSemicolon();\n\t exportDeclaration = this.finalize(node, new Node.ExportAllDeclaration(src));\n\t }\n\t else if (this.lookahead.type === 4 /* Keyword */) {\n\t // export var f = 1;\n\t var declaration = void 0;\n\t switch (this.lookahead.value) {\n\t case 'let':\n\t case 'const':\n\t declaration = this.parseLexicalDeclaration({ inFor: false });\n\t break;\n\t case 'var':\n\t case 'class':\n\t case 'function':\n\t declaration = this.parseStatementListItem();\n\t break;\n\t default:\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(declaration, [], null));\n\t }\n\t else if (this.matchAsyncFunction()) {\n\t var declaration = this.parseFunctionDeclaration();\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(declaration, [], null));\n\t }\n\t else {\n\t var specifiers = [];\n\t var source = null;\n\t var isExportFromIdentifier = false;\n\t this.expect('{');\n\t while (!this.match('}')) {\n\t isExportFromIdentifier = isExportFromIdentifier || this.matchKeyword('default');\n\t specifiers.push(this.parseExportSpecifier());\n\t if (!this.match('}')) {\n\t this.expect(',');\n\t }\n\t }\n\t this.expect('}');\n\t if (this.matchContextualKeyword('from')) {\n\t // export {default} from 'foo';\n\t // export {foo} from 'foo';\n\t this.nextToken();\n\t source = this.parseModuleSpecifier();\n\t this.consumeSemicolon();\n\t }\n\t else if (isExportFromIdentifier) {\n\t // export {default}; // missing fromClause\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\n\t this.throwError(message, this.lookahead.value);\n\t }\n\t else {\n\t // export {foo};\n\t this.consumeSemicolon();\n\t }\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(null, specifiers, source));\n\t }\n\t return exportDeclaration;\n\t };\n\t return Parser;\n\t}());\n\texports.Parser = Parser;\n\n\n/***/ },\n/* 9 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t// Ensure the condition is true, otherwise throw an error.\n\t// This is only to have a better contract semantic, i.e. another safety net\n\t// to catch a logic error. The condition shall be fulfilled in normal case.\n\t// Do NOT use this to enforce a certain condition on any user input.\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tfunction assert(condition, message) {\n\t /* istanbul ignore if */\n\t if (!condition) {\n\t throw new Error('ASSERT: ' + message);\n\t }\n\t}\n\texports.assert = assert;\n\n\n/***/ },\n/* 10 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t/* tslint:disable:max-classes-per-file */\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar ErrorHandler = (function () {\n\t function ErrorHandler() {\n\t this.errors = [];\n\t this.tolerant = false;\n\t }\n\t ErrorHandler.prototype.recordError = function (error) {\n\t this.errors.push(error);\n\t };\n\t ErrorHandler.prototype.tolerate = function (error) {\n\t if (this.tolerant) {\n\t this.recordError(error);\n\t }\n\t else {\n\t throw error;\n\t }\n\t };\n\t ErrorHandler.prototype.constructError = function (msg, column) {\n\t var error = new Error(msg);\n\t try {\n\t throw error;\n\t }\n\t catch (base) {\n\t /* istanbul ignore else */\n\t if (Object.create && Object.defineProperty) {\n\t error = Object.create(base);\n\t Object.defineProperty(error, 'column', { value: column });\n\t }\n\t }\n\t /* istanbul ignore next */\n\t return error;\n\t };\n\t ErrorHandler.prototype.createError = function (index, line, col, description) {\n\t var msg = 'Line ' + line + ': ' + description;\n\t var error = this.constructError(msg, col);\n\t error.index = index;\n\t error.lineNumber = line;\n\t error.description = description;\n\t return error;\n\t };\n\t ErrorHandler.prototype.throwError = function (index, line, col, description) {\n\t throw this.createError(index, line, col, description);\n\t };\n\t ErrorHandler.prototype.tolerateError = function (index, line, col, description) {\n\t var error = this.createError(index, line, col, description);\n\t if (this.tolerant) {\n\t this.recordError(error);\n\t }\n\t else {\n\t throw error;\n\t }\n\t };\n\t return ErrorHandler;\n\t}());\n\texports.ErrorHandler = ErrorHandler;\n\n\n/***/ },\n/* 11 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\t// Error messages should be identical to V8.\n\texports.Messages = {\n\t BadGetterArity: 'Getter must not have any formal parameters',\n\t BadSetterArity: 'Setter must have exactly one formal parameter',\n\t BadSetterRestParameter: 'Setter function argument must not be a rest parameter',\n\t ConstructorIsAsync: 'Class constructor may not be an async method',\n\t ConstructorSpecialMethod: 'Class constructor may not be an accessor',\n\t DeclarationMissingInitializer: 'Missing initializer in %0 declaration',\n\t DefaultRestParameter: 'Unexpected token =',\n\t DuplicateBinding: 'Duplicate binding %0',\n\t DuplicateConstructor: 'A class may only have one constructor',\n\t DuplicateProtoProperty: 'Duplicate __proto__ fields are not allowed in object literals',\n\t ForInOfLoopInitializer: '%0 loop variable declaration may not have an initializer',\n\t GeneratorInLegacyContext: 'Generator declarations are not allowed in legacy contexts',\n\t IllegalBreak: 'Illegal break statement',\n\t IllegalContinue: 'Illegal continue statement',\n\t IllegalExportDeclaration: 'Unexpected token',\n\t IllegalImportDeclaration: 'Unexpected token',\n\t IllegalLanguageModeDirective: 'Illegal \\'use strict\\' directive in function with non-simple parameter list',\n\t IllegalReturn: 'Illegal return statement',\n\t InvalidEscapedReservedWord: 'Keyword must not contain escaped characters',\n\t InvalidHexEscapeSequence: 'Invalid hexadecimal escape sequence',\n\t InvalidLHSInAssignment: 'Invalid left-hand side in assignment',\n\t InvalidLHSInForIn: 'Invalid left-hand side in for-in',\n\t InvalidLHSInForLoop: 'Invalid left-hand side in for-loop',\n\t InvalidModuleSpecifier: 'Unexpected token',\n\t InvalidRegExp: 'Invalid regular expression',\n\t LetInLexicalBinding: 'let is disallowed as a lexically bound name',\n\t MissingFromClause: 'Unexpected token',\n\t MultipleDefaultsInSwitch: 'More than one default clause in switch statement',\n\t NewlineAfterThrow: 'Illegal newline after throw',\n\t NoAsAfterImportNamespace: 'Unexpected token',\n\t NoCatchOrFinally: 'Missing catch or finally after try',\n\t ParameterAfterRestParameter: 'Rest parameter must be last formal parameter',\n\t Redeclaration: '%0 \\'%1\\' has already been declared',\n\t StaticPrototype: 'Classes may not have static property named prototype',\n\t StrictCatchVariable: 'Catch variable may not be eval or arguments in strict mode',\n\t StrictDelete: 'Delete of an unqualified identifier in strict mode.',\n\t StrictFunction: 'In strict mode code, functions can only be declared at top level or inside a block',\n\t StrictFunctionName: 'Function name may not be eval or arguments in strict mode',\n\t StrictLHSAssignment: 'Assignment to eval or arguments is not allowed in strict mode',\n\t StrictLHSPostfix: 'Postfix increment/decrement may not have eval or arguments operand in strict mode',\n\t StrictLHSPrefix: 'Prefix increment/decrement may not have eval or arguments operand in strict mode',\n\t StrictModeWith: 'Strict mode code may not include a with statement',\n\t StrictOctalLiteral: 'Octal literals are not allowed in strict mode.',\n\t StrictParamDupe: 'Strict mode function may not have duplicate parameter names',\n\t StrictParamName: 'Parameter name eval or arguments is not allowed in strict mode',\n\t StrictReservedWord: 'Use of future reserved word in strict mode',\n\t StrictVarName: 'Variable name may not be eval or arguments in strict mode',\n\t TemplateOctalLiteral: 'Octal literals are not allowed in template strings.',\n\t UnexpectedEOS: 'Unexpected end of input',\n\t UnexpectedIdentifier: 'Unexpected identifier',\n\t UnexpectedNumber: 'Unexpected number',\n\t UnexpectedReserved: 'Unexpected reserved word',\n\t UnexpectedString: 'Unexpected string',\n\t UnexpectedTemplate: 'Unexpected quasi %0',\n\t UnexpectedToken: 'Unexpected token %0',\n\t UnexpectedTokenIllegal: 'Unexpected token ILLEGAL',\n\t UnknownLabel: 'Undefined label \\'%0\\'',\n\t UnterminatedRegExp: 'Invalid regular expression: missing /'\n\t};\n\n\n/***/ },\n/* 12 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar assert_1 = __webpack_require__(9);\n\tvar character_1 = __webpack_require__(4);\n\tvar messages_1 = __webpack_require__(11);\n\tfunction hexValue(ch) {\n\t return '0123456789abcdef'.indexOf(ch.toLowerCase());\n\t}\n\tfunction octalValue(ch) {\n\t return '01234567'.indexOf(ch);\n\t}\n\tvar Scanner = (function () {\n\t function Scanner(code, handler) {\n\t this.source = code;\n\t this.errorHandler = handler;\n\t this.trackComment = false;\n\t this.isModule = false;\n\t this.length = code.length;\n\t this.index = 0;\n\t this.lineNumber = (code.length > 0) ? 1 : 0;\n\t this.lineStart = 0;\n\t this.curlyStack = [];\n\t }\n\t Scanner.prototype.saveState = function () {\n\t return {\n\t index: this.index,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart\n\t };\n\t };\n\t Scanner.prototype.restoreState = function (state) {\n\t this.index = state.index;\n\t this.lineNumber = state.lineNumber;\n\t this.lineStart = state.lineStart;\n\t };\n\t Scanner.prototype.eof = function () {\n\t return this.index >= this.length;\n\t };\n\t Scanner.prototype.throwUnexpectedToken = function (message) {\n\t if (message === void 0) { message = messages_1.Messages.UnexpectedTokenIllegal; }\n\t return this.errorHandler.throwError(this.index, this.lineNumber, this.index - this.lineStart + 1, message);\n\t };\n\t Scanner.prototype.tolerateUnexpectedToken = function (message) {\n\t if (message === void 0) { message = messages_1.Messages.UnexpectedTokenIllegal; }\n\t this.errorHandler.tolerateError(this.index, this.lineNumber, this.index - this.lineStart + 1, message);\n\t };\n\t // https://tc39.github.io/ecma262/#sec-comments\n\t Scanner.prototype.skipSingleLineComment = function (offset) {\n\t var comments = [];\n\t var start, loc;\n\t if (this.trackComment) {\n\t comments = [];\n\t start = this.index - offset;\n\t loc = {\n\t start: {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart - offset\n\t },\n\t end: {}\n\t };\n\t }\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t ++this.index;\n\t if (character_1.Character.isLineTerminator(ch)) {\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart - 1\n\t };\n\t var entry = {\n\t multiLine: false,\n\t slice: [start + offset, this.index - 1],\n\t range: [start, this.index - 1],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t if (ch === 13 && this.source.charCodeAt(this.index) === 10) {\n\t ++this.index;\n\t }\n\t ++this.lineNumber;\n\t this.lineStart = this.index;\n\t return comments;\n\t }\n\t }\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart\n\t };\n\t var entry = {\n\t multiLine: false,\n\t slice: [start + offset, this.index],\n\t range: [start, this.index],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t return comments;\n\t };\n\t Scanner.prototype.skipMultiLineComment = function () {\n\t var comments = [];\n\t var start, loc;\n\t if (this.trackComment) {\n\t comments = [];\n\t start = this.index - 2;\n\t loc = {\n\t start: {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart - 2\n\t },\n\t end: {}\n\t };\n\t }\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t if (character_1.Character.isLineTerminator(ch)) {\n\t if (ch === 0x0D && this.source.charCodeAt(this.index + 1) === 0x0A) {\n\t ++this.index;\n\t }\n\t ++this.lineNumber;\n\t ++this.index;\n\t this.lineStart = this.index;\n\t }\n\t else if (ch === 0x2A) {\n\t // Block comment ends with '*/'.\n\t if (this.source.charCodeAt(this.index + 1) === 0x2F) {\n\t this.index += 2;\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart\n\t };\n\t var entry = {\n\t multiLine: true,\n\t slice: [start + 2, this.index - 2],\n\t range: [start, this.index],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t return comments;\n\t }\n\t ++this.index;\n\t }\n\t else {\n\t ++this.index;\n\t }\n\t }\n\t // Ran off the end of the file - the whole thing is a comment\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart\n\t };\n\t var entry = {\n\t multiLine: true,\n\t slice: [start + 2, this.index],\n\t range: [start, this.index],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t this.tolerateUnexpectedToken();\n\t return comments;\n\t };\n\t Scanner.prototype.scanComments = function () {\n\t var comments;\n\t if (this.trackComment) {\n\t comments = [];\n\t }\n\t var start = (this.index === 0);\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t if (character_1.Character.isWhiteSpace(ch)) {\n\t ++this.index;\n\t }\n\t else if (character_1.Character.isLineTerminator(ch)) {\n\t ++this.index;\n\t if (ch === 0x0D && this.source.charCodeAt(this.index) === 0x0A) {\n\t ++this.index;\n\t }\n\t ++this.lineNumber;\n\t this.lineStart = this.index;\n\t start = true;\n\t }\n\t else if (ch === 0x2F) {\n\t ch = this.source.charCodeAt(this.index + 1);\n\t if (ch === 0x2F) {\n\t this.index += 2;\n\t var comment = this.skipSingleLineComment(2);\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t start = true;\n\t }\n\t else if (ch === 0x2A) {\n\t this.index += 2;\n\t var comment = this.skipMultiLineComment();\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t else if (start && ch === 0x2D) {\n\t // U+003E is '>'\n\t if ((this.source.charCodeAt(this.index + 1) === 0x2D) && (this.source.charCodeAt(this.index + 2) === 0x3E)) {\n\t // '-->' is a single-line comment\n\t this.index += 3;\n\t var comment = this.skipSingleLineComment(3);\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t else if (ch === 0x3C && !this.isModule) {\n\t if (this.source.slice(this.index + 1, this.index + 4) === '!--') {\n\t this.index += 4; // `<!--`\n\t var comment = this.skipSingleLineComment(4);\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t return comments;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-future-reserved-words\n\t Scanner.prototype.isFutureReservedWord = function (id) {\n\t switch (id) {\n\t case 'enum':\n\t case 'export':\n\t case 'import':\n\t case 'super':\n\t return true;\n\t default:\n\t return false;\n\t }\n\t };\n\t Scanner.prototype.isStrictModeReservedWord = function (id) {\n\t switch (id) {\n\t case 'implements':\n\t case 'interface':\n\t case 'package':\n\t case 'private':\n\t case 'protected':\n\t case 'public':\n\t case 'static':\n\t case 'yield':\n\t case 'let':\n\t return true;\n\t default:\n\t return false;\n\t }\n\t };\n\t Scanner.prototype.isRestrictedWord = function (id) {\n\t return id === 'eval' || id === 'arguments';\n\t };\n\t // https://tc39.github.io/ecma262/#sec-keywords\n\t Scanner.prototype.isKeyword = function (id) {\n\t switch (id.length) {\n\t case 2:\n\t return (id === 'if') || (id === 'in') || (id === 'do');\n\t case 3:\n\t return (id === 'var') || (id === 'for') || (id === 'new') ||\n\t (id === 'try') || (id === 'let');\n\t case 4:\n\t return (id === 'this') || (id === 'else') || (id === 'case') ||\n\t (id === 'void') || (id === 'with') || (id === 'enum');\n\t case 5:\n\t return (id === 'while') || (id === 'break') || (id === 'catch') ||\n\t (id === 'throw') || (id === 'const') || (id === 'yield') ||\n\t (id === 'class') || (id === 'super');\n\t case 6:\n\t return (id === 'return') || (id === 'typeof') || (id === 'delete') ||\n\t (id === 'switch') || (id === 'export') || (id === 'import');\n\t case 7:\n\t return (id === 'default') || (id === 'finally') || (id === 'extends');\n\t case 8:\n\t return (id === 'function') || (id === 'continue') || (id === 'debugger');\n\t case 10:\n\t return (id === 'instanceof');\n\t default:\n\t return false;\n\t }\n\t };\n\t Scanner.prototype.codePointAt = function (i) {\n\t var cp = this.source.charCodeAt(i);\n\t if (cp >= 0xD800 && cp <= 0xDBFF) {\n\t var second = this.source.charCodeAt(i + 1);\n\t if (second >= 0xDC00 && second <= 0xDFFF) {\n\t var first = cp;\n\t cp = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n\t }\n\t }\n\t return cp;\n\t };\n\t Scanner.prototype.scanHexEscape = function (prefix) {\n\t var len = (prefix === 'u') ? 4 : 2;\n\t var code = 0;\n\t for (var i = 0; i < len; ++i) {\n\t if (!this.eof() && character_1.Character.isHexDigit(this.source.charCodeAt(this.index))) {\n\t code = code * 16 + hexValue(this.source[this.index++]);\n\t }\n\t else {\n\t return null;\n\t }\n\t }\n\t return String.fromCharCode(code);\n\t };\n\t Scanner.prototype.scanUnicodeCodePointEscape = function () {\n\t var ch = this.source[this.index];\n\t var code = 0;\n\t // At least, one hex digit is required.\n\t if (ch === '}') {\n\t this.throwUnexpectedToken();\n\t }\n\t while (!this.eof()) {\n\t ch = this.source[this.index++];\n\t if (!character_1.Character.isHexDigit(ch.charCodeAt(0))) {\n\t break;\n\t }\n\t code = code * 16 + hexValue(ch);\n\t }\n\t if (code > 0x10FFFF || ch !== '}') {\n\t this.throwUnexpectedToken();\n\t }\n\t return character_1.Character.fromCodePoint(code);\n\t };\n\t Scanner.prototype.getIdentifier = function () {\n\t var start = this.index++;\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t if (ch === 0x5C) {\n\t // Blackslash (U+005C) marks Unicode escape sequence.\n\t this.index = start;\n\t return this.getComplexIdentifier();\n\t }\n\t else if (ch >= 0xD800 && ch < 0xDFFF) {\n\t // Need to handle surrogate pairs.\n\t this.index = start;\n\t return this.getComplexIdentifier();\n\t }\n\t if (character_1.Character.isIdentifierPart(ch)) {\n\t ++this.index;\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t return this.source.slice(start, this.index);\n\t };\n\t Scanner.prototype.getComplexIdentifier = function () {\n\t var cp = this.codePointAt(this.index);\n\t var id = character_1.Character.fromCodePoint(cp);\n\t this.index += id.length;\n\t // '\\u' (U+005C, U+0075) denotes an escaped character.\n\t var ch;\n\t if (cp === 0x5C) {\n\t if (this.source.charCodeAt(this.index) !== 0x75) {\n\t this.throwUnexpectedToken();\n\t }\n\t ++this.index;\n\t if (this.source[this.index] === '{') {\n\t ++this.index;\n\t ch = this.scanUnicodeCodePointEscape();\n\t }\n\t else {\n\t ch = this.scanHexEscape('u');\n\t if (ch === null || ch === '\\\\' || !character_1.Character.isIdentifierStart(ch.charCodeAt(0))) {\n\t this.throwUnexpectedToken();\n\t }\n\t }\n\t id = ch;\n\t }\n\t while (!this.eof()) {\n\t cp = this.codePointAt(this.index);\n\t if (!character_1.Character.isIdentifierPart(cp)) {\n\t break;\n\t }\n\t ch = character_1.Character.fromCodePoint(cp);\n\t id += ch;\n\t this.index += ch.length;\n\t // '\\u' (U+005C, U+0075) denotes an escaped character.\n\t if (cp === 0x5C) {\n\t id = id.substr(0, id.length - 1);\n\t if (this.source.charCodeAt(this.index) !== 0x75) {\n\t this.throwUnexpectedToken();\n\t }\n\t ++this.index;\n\t if (this.source[this.index] === '{') {\n\t ++this.index;\n\t ch = this.scanUnicodeCodePointEscape();\n\t }\n\t else {\n\t ch = this.scanHexEscape('u');\n\t if (ch === null || ch === '\\\\' || !character_1.Character.isIdentifierPart(ch.charCodeAt(0))) {\n\t this.throwUnexpectedToken();\n\t }\n\t }\n\t id += ch;\n\t }\n\t }\n\t return id;\n\t };\n\t Scanner.prototype.octalToDecimal = function (ch) {\n\t // \\0 is not octal escape sequence\n\t var octal = (ch !== '0');\n\t var code = octalValue(ch);\n\t if (!this.eof() && character_1.Character.isOctalDigit(this.source.charCodeAt(this.index))) {\n\t octal = true;\n\t code = code * 8 + octalValue(this.source[this.index++]);\n\t // 3 digits are only allowed when string starts\n\t // with 0, 1, 2, 3\n\t if ('0123'.indexOf(ch) >= 0 && !this.eof() && character_1.Character.isOctalDigit(this.source.charCodeAt(this.index))) {\n\t code = code * 8 + octalValue(this.source[this.index++]);\n\t }\n\t }\n\t return {\n\t code: code,\n\t octal: octal\n\t };\n\t };\n\t // https://tc39.github.io/ecma262/#sec-names-and-keywords\n\t Scanner.prototype.scanIdentifier = function () {\n\t var type;\n\t var start = this.index;\n\t // Backslash (U+005C) starts an escaped character.\n\t var id = (this.source.charCodeAt(start) === 0x5C) ? this.getComplexIdentifier() : this.getIdentifier();\n\t // There is no keyword or literal with only one character.\n\t // Thus, it must be an identifier.\n\t if (id.length === 1) {\n\t type = 3 /* Identifier */;\n\t }\n\t else if (this.isKeyword(id)) {\n\t type = 4 /* Keyword */;\n\t }\n\t else if (id === 'null') {\n\t type = 5 /* NullLiteral */;\n\t }\n\t else if (id === 'true' || id === 'false') {\n\t type = 1 /* BooleanLiteral */;\n\t }\n\t else {\n\t type = 3 /* Identifier */;\n\t }\n\t if (type !== 3 /* Identifier */ && (start + id.length !== this.index)) {\n\t var restore = this.index;\n\t this.index = start;\n\t this.tolerateUnexpectedToken(messages_1.Messages.InvalidEscapedReservedWord);\n\t this.index = restore;\n\t }\n\t return {\n\t type: type,\n\t value: id,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t // https://tc39.github.io/ecma262/#sec-punctuators\n\t Scanner.prototype.scanPunctuator = function () {\n\t var start = this.index;\n\t // Check for most common single-character punctuators.\n\t var str = this.source[this.index];\n\t switch (str) {\n\t case '(':\n\t case '{':\n\t if (str === '{') {\n\t this.curlyStack.push('{');\n\t }\n\t ++this.index;\n\t break;\n\t case '.':\n\t ++this.index;\n\t if (this.source[this.index] === '.' && this.source[this.index + 1] === '.') {\n\t // Spread operator: ...\n\t this.index += 2;\n\t str = '...';\n\t }\n\t break;\n\t case '}':\n\t ++this.index;\n\t this.curlyStack.pop();\n\t break;\n\t case ')':\n\t case ';':\n\t case ',':\n\t case '[':\n\t case ']':\n\t case ':':\n\t case '?':\n\t case '~':\n\t ++this.index;\n\t break;\n\t default:\n\t // 4-character punctuator.\n\t str = this.source.substr(this.index, 4);\n\t if (str === '>>>=') {\n\t this.index += 4;\n\t }\n\t else {\n\t // 3-character punctuators.\n\t str = str.substr(0, 3);\n\t if (str === '===' || str === '!==' || str === '>>>' ||\n\t str === '<<=' || str === '>>=' || str === '**=') {\n\t this.index += 3;\n\t }\n\t else {\n\t // 2-character punctuators.\n\t str = str.substr(0, 2);\n\t if (str === '&&' || str === '||' || str === '==' || str === '!=' ||\n\t str === '+=' || str === '-=' || str === '*=' || str === '/=' ||\n\t str === '++' || str === '--' || str === '<<' || str === '>>' ||\n\t str === '&=' || str === '|=' || str === '^=' || str === '%=' ||\n\t str === '<=' || str === '>=' || str === '=>' || str === '**') {\n\t this.index += 2;\n\t }\n\t else {\n\t // 1-character punctuators.\n\t str = this.source[this.index];\n\t if ('<>=!+-*%&|^/'.indexOf(str) >= 0) {\n\t ++this.index;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t if (this.index === start) {\n\t this.throwUnexpectedToken();\n\t }\n\t return {\n\t type: 7 /* Punctuator */,\n\t value: str,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t // https://tc39.github.io/ecma262/#sec-literals-numeric-literals\n\t Scanner.prototype.scanHexLiteral = function (start) {\n\t var num = '';\n\t while (!this.eof()) {\n\t if (!character_1.Character.isHexDigit(this.source.charCodeAt(this.index))) {\n\t break;\n\t }\n\t num += this.source[this.index++];\n\t }\n\t if (num.length === 0) {\n\t this.throwUnexpectedToken();\n\t }\n\t if (character_1.Character.isIdentifierStart(this.source.charCodeAt(this.index))) {\n\t this.throwUnexpectedToken();\n\t }\n\t return {\n\t type: 6 /* NumericLiteral */,\n\t value: parseInt('0x' + num, 16),\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t Scanner.prototype.scanBinaryLiteral = function (start) {\n\t var num = '';\n\t var ch;\n\t while (!this.eof()) {\n\t ch = this.source[this.index];\n\t if (ch !== '0' && ch !== '1') {\n\t break;\n\t }\n\t num += this.source[this.index++];\n\t }\n\t if (num.length === 0) {\n\t // only 0b or 0B\n\t this.throwUnexpectedToken();\n\t }\n\t if (!this.eof()) {\n\t ch = this.source.charCodeAt(this.index);\n\t /* istanbul ignore else */\n\t if (character_1.Character.isIdentifierStart(ch) || character_1.Character.isDecimalDigit(ch)) {\n\t this.throwUnexpectedToken();\n\t }\n\t }\n\t return {\n\t type: 6 /* NumericLiteral */,\n\t value: parseInt(num, 2),\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t Scanner.prototype.scanOctalLiteral = function (prefix, start) {\n\t var num = '';\n\t var octal = false;\n\t if (character_1.Character.isOctalDigit(prefix.charCodeAt(0))) {\n\t octal = true;\n\t num = '0' + this.source[this.index++];\n\t }\n\t else {\n\t ++this.index;\n\t }\n\t while (!this.eof()) {\n\t if (!character_1.Character.isOctalDigit(this.source.charCodeAt(this.index))) {\n\t break;\n\t }\n\t num += this.source[this.index++];\n\t }\n\t if (!octal && num.length === 0) {\n\t // only 0o or 0O\n\t this.throwUnexpectedToken();\n\t }\n\t if (character_1.Character.isIdentifierStart(this.source.charCodeAt(this.index)) || character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {\n\t this.throwUnexpectedToken();\n\t }\n\t return {\n\t type: 6 /* NumericLiteral */,\n\t value: parseInt(num, 8),\n\t octal: octal,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t Scanner.prototype.isImplicitOctalLiteral = function () {\n\t // Implicit octal, unless there is a non-octal digit.\n\t // (Annex B.1.1 on Numeric Literals)\n\t for (var i = this.index + 1; i < this.length; ++i) {\n\t var ch = this.source[i];\n\t if (ch === '8' || ch === '9') {\n\t return false;\n\t }\n\t if (!character_1.Character.isOctalDigit(ch.charCodeAt(0))) {\n\t return true;\n\t }\n\t }\n\t return true;\n\t };\n\t Scanner.prototype.scanNumericLiteral = function () {\n\t var start = this.index;\n\t var ch = this.source[start];\n\t assert_1.assert(character_1.Character.isDecimalDigit(ch.charCodeAt(0)) || (ch === '.'), 'Numeric literal must start with a decimal digit or a decimal point');\n\t var num = '';\n\t if (ch !== '.') {\n\t num = this.source[this.index++];\n\t ch = this.source[this.index];\n\t // Hex number starts with '0x'.\n\t // Octal number starts with '0'.\n\t // Octal number in ES6 starts with '0o'.\n\t // Binary number in ES6 starts with '0b'.\n\t if (num === '0') {\n\t if (ch === 'x' || ch === 'X') {\n\t ++this.index;\n\t return this.scanHexLiteral(start);\n\t }\n\t if (ch === 'b' || ch === 'B') {\n\t ++this.index;\n\t return this.scanBinaryLiteral(start);\n\t }\n\t if (ch === 'o' || ch === 'O') {\n\t return this.scanOctalLiteral(ch, start);\n\t }\n\t if (ch && character_1.Character.isOctalDigit(ch.charCodeAt(0))) {\n\t if (this.isImplicitOctalLiteral()) {\n\t return this.scanOctalLiteral(ch, start);\n\t }\n\t }\n\t }\n\t while (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {\n\t num += this.source[this.index++];\n\t }\n\t ch = this.source[this.index];\n\t }\n\t if (ch === '.') {\n\t num += this.source[this.index++];\n\t while (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {\n\t num += this.source[this.index++];\n\t }\n\t ch = this.source[this.index];\n\t }\n\t if (ch === 'e' || ch === 'E') {\n\t num += this.source[this.index++];\n\t ch = this.source[this.index];\n\t if (ch === '+' || ch === '-') {\n\t num += this.source[this.index++];\n\t }\n\t if (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {\n\t while (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {\n\t num += this.source[this.index++];\n\t }\n\t }\n\t else {\n\t this.throwUnexpectedToken();\n\t }\n\t }\n\t if (character_1.Character.isIdentifierStart(this.source.charCodeAt(this.index))) {\n\t this.throwUnexpectedToken();\n\t }\n\t return {\n\t type: 6 /* NumericLiteral */,\n\t value: parseFloat(num),\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t // https://tc39.github.io/ecma262/#sec-literals-string-literals\n\t Scanner.prototype.scanStringLiteral = function () {\n\t var start = this.index;\n\t var quote = this.source[start];\n\t assert_1.assert((quote === '\\'' || quote === '\"'), 'String literal must starts with a quote');\n\t ++this.index;\n\t var octal = false;\n\t var str = '';\n\t while (!this.eof()) {\n\t var ch = this.source[this.index++];\n\t if (ch === quote) {\n\t quote = '';\n\t break;\n\t }\n\t else if (ch === '\\\\') {\n\t ch = this.source[this.index++];\n\t if (!ch || !character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t switch (ch) {\n\t case 'u':\n\t if (this.source[this.index] === '{') {\n\t ++this.index;\n\t str += this.scanUnicodeCodePointEscape();\n\t }\n\t else {\n\t var unescaped_1 = this.scanHexEscape(ch);\n\t if (unescaped_1 === null) {\n\t this.throwUnexpectedToken();\n\t }\n\t str += unescaped_1;\n\t }\n\t break;\n\t case 'x':\n\t var unescaped = this.scanHexEscape(ch);\n\t if (unescaped === null) {\n\t this.throwUnexpectedToken(messages_1.Messages.InvalidHexEscapeSequence);\n\t }\n\t str += unescaped;\n\t break;\n\t case 'n':\n\t str += '\\n';\n\t break;\n\t case 'r':\n\t str += '\\r';\n\t break;\n\t case 't':\n\t str += '\\t';\n\t break;\n\t case 'b':\n\t str += '\\b';\n\t break;\n\t case 'f':\n\t str += '\\f';\n\t break;\n\t case 'v':\n\t str += '\\x0B';\n\t break;\n\t case '8':\n\t case '9':\n\t str += ch;\n\t this.tolerateUnexpectedToken();\n\t break;\n\t default:\n\t if (ch && character_1.Character.isOctalDigit(ch.charCodeAt(0))) {\n\t var octToDec = this.octalToDecimal(ch);\n\t octal = octToDec.octal || octal;\n\t str += String.fromCharCode(octToDec.code);\n\t }\n\t else {\n\t str += ch;\n\t }\n\t break;\n\t }\n\t }\n\t else {\n\t ++this.lineNumber;\n\t if (ch === '\\r' && this.source[this.index] === '\\n') {\n\t ++this.index;\n\t }\n\t this.lineStart = this.index;\n\t }\n\t }\n\t else if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t break;\n\t }\n\t else {\n\t str += ch;\n\t }\n\t }\n\t if (quote !== '') {\n\t this.index = start;\n\t this.throwUnexpectedToken();\n\t }\n\t return {\n\t type: 8 /* StringLiteral */,\n\t value: str,\n\t octal: octal,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t // https://tc39.github.io/ecma262/#sec-template-literal-lexical-components\n\t Scanner.prototype.scanTemplate = function () {\n\t var cooked = '';\n\t var terminated = false;\n\t var start = this.index;\n\t var head = (this.source[start] === '`');\n\t var tail = false;\n\t var rawOffset = 2;\n\t ++this.index;\n\t while (!this.eof()) {\n\t var ch = this.source[this.index++];\n\t if (ch === '`') {\n\t rawOffset = 1;\n\t tail = true;\n\t terminated = true;\n\t break;\n\t }\n\t else if (ch === '$') {\n\t if (this.source[this.index] === '{') {\n\t this.curlyStack.push('${');\n\t ++this.index;\n\t terminated = true;\n\t break;\n\t }\n\t cooked += ch;\n\t }\n\t else if (ch === '\\\\') {\n\t ch = this.source[this.index++];\n\t if (!character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t switch (ch) {\n\t case 'n':\n\t cooked += '\\n';\n\t break;\n\t case 'r':\n\t cooked += '\\r';\n\t break;\n\t case 't':\n\t cooked += '\\t';\n\t break;\n\t case 'u':\n\t if (this.source[this.index] === '{') {\n\t ++this.index;\n\t cooked += this.scanUnicodeCodePointEscape();\n\t }\n\t else {\n\t var restore = this.index;\n\t var unescaped_2 = this.scanHexEscape(ch);\n\t if (unescaped_2 !== null) {\n\t cooked += unescaped_2;\n\t }\n\t else {\n\t this.index = restore;\n\t cooked += ch;\n\t }\n\t }\n\t break;\n\t case 'x':\n\t var unescaped = this.scanHexEscape(ch);\n\t if (unescaped === null) {\n\t this.throwUnexpectedToken(messages_1.Messages.InvalidHexEscapeSequence);\n\t }\n\t cooked += unescaped;\n\t break;\n\t case 'b':\n\t cooked += '\\b';\n\t break;\n\t case 'f':\n\t cooked += '\\f';\n\t break;\n\t case 'v':\n\t cooked += '\\v';\n\t break;\n\t default:\n\t if (ch === '0') {\n\t if (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {\n\t // Illegal: \\01 \\02 and so on\n\t this.throwUnexpectedToken(messages_1.Messages.TemplateOctalLiteral);\n\t }\n\t cooked += '\\0';\n\t }\n\t else if (character_1.Character.isOctalDigit(ch.charCodeAt(0))) {\n\t // Illegal: \\1 \\2\n\t this.throwUnexpectedToken(messages_1.Messages.TemplateOctalLiteral);\n\t }\n\t else {\n\t cooked += ch;\n\t }\n\t break;\n\t }\n\t }\n\t else {\n\t ++this.lineNumber;\n\t if (ch === '\\r' && this.source[this.index] === '\\n') {\n\t ++this.index;\n\t }\n\t this.lineStart = this.index;\n\t }\n\t }\n\t else if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t ++this.lineNumber;\n\t if (ch === '\\r' && this.source[this.index] === '\\n') {\n\t ++this.index;\n\t }\n\t this.lineStart = this.index;\n\t cooked += '\\n';\n\t }\n\t else {\n\t cooked += ch;\n\t }\n\t }\n\t if (!terminated) {\n\t this.throwUnexpectedToken();\n\t }\n\t if (!head) {\n\t this.curlyStack.pop();\n\t }\n\t return {\n\t type: 10 /* Template */,\n\t value: this.source.slice(start + 1, this.index - rawOffset),\n\t cooked: cooked,\n\t head: head,\n\t tail: tail,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t // https://tc39.github.io/ecma262/#sec-literals-regular-expression-literals\n\t Scanner.prototype.testRegExp = function (pattern, flags) {\n\t // The BMP character to use as a replacement for astral symbols when\n\t // translating an ES6 \"u\"-flagged pattern to an ES5-compatible\n\t // approximation.\n\t // Note: replacing with '\\uFFFF' enables false positives in unlikely\n\t // scenarios. For example, `[\\u{1044f}-\\u{10440}]` is an invalid\n\t // pattern that would not be detected by this substitution.\n\t var astralSubstitute = '\\uFFFF';\n\t var tmp = pattern;\n\t var self = this;\n\t if (flags.indexOf('u') >= 0) {\n\t tmp = tmp\n\t .replace(/\\\\u\\{([0-9a-fA-F]+)\\}|\\\\u([a-fA-F0-9]{4})/g, function ($0, $1, $2) {\n\t var codePoint = parseInt($1 || $2, 16);\n\t if (codePoint > 0x10FFFF) {\n\t self.throwUnexpectedToken(messages_1.Messages.InvalidRegExp);\n\t }\n\t if (codePoint <= 0xFFFF) {\n\t return String.fromCharCode(codePoint);\n\t }\n\t return astralSubstitute;\n\t })\n\t .replace(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g, astralSubstitute);\n\t }\n\t // First, detect invalid regular expressions.\n\t try {\n\t RegExp(tmp);\n\t }\n\t catch (e) {\n\t this.throwUnexpectedToken(messages_1.Messages.InvalidRegExp);\n\t }\n\t // Return a regular expression object for this pattern-flag pair, or\n\t // `null` in case the current environment doesn't support the flags it\n\t // uses.\n\t try {\n\t return new RegExp(pattern, flags);\n\t }\n\t catch (exception) {\n\t /* istanbul ignore next */\n\t return null;\n\t }\n\t };\n\t Scanner.prototype.scanRegExpBody = function () {\n\t var ch = this.source[this.index];\n\t assert_1.assert(ch === '/', 'Regular expression literal must start with a slash');\n\t var str = this.source[this.index++];\n\t var classMarker = false;\n\t var terminated = false;\n\t while (!this.eof()) {\n\t ch = this.source[this.index++];\n\t str += ch;\n\t if (ch === '\\\\') {\n\t ch = this.source[this.index++];\n\t // https://tc39.github.io/ecma262/#sec-literals-regular-expression-literals\n\t if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t this.throwUnexpectedToken(messages_1.Messages.UnterminatedRegExp);\n\t }\n\t str += ch;\n\t }\n\t else if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t this.throwUnexpectedToken(messages_1.Messages.UnterminatedRegExp);\n\t }\n\t else if (classMarker) {\n\t if (ch === ']') {\n\t classMarker = false;\n\t }\n\t }\n\t else {\n\t if (ch === '/') {\n\t terminated = true;\n\t break;\n\t }\n\t else if (ch === '[') {\n\t classMarker = true;\n\t }\n\t }\n\t }\n\t if (!terminated) {\n\t this.throwUnexpectedToken(messages_1.Messages.UnterminatedRegExp);\n\t }\n\t // Exclude leading and trailing slash.\n\t return str.substr(1, str.length - 2);\n\t };\n\t Scanner.prototype.scanRegExpFlags = function () {\n\t var str = '';\n\t var flags = '';\n\t while (!this.eof()) {\n\t var ch = this.source[this.index];\n\t if (!character_1.Character.isIdentifierPart(ch.charCodeAt(0))) {\n\t break;\n\t }\n\t ++this.index;\n\t if (ch === '\\\\' && !this.eof()) {\n\t ch = this.source[this.index];\n\t if (ch === 'u') {\n\t ++this.index;\n\t var restore = this.index;\n\t var char = this.scanHexEscape('u');\n\t if (char !== null) {\n\t flags += char;\n\t for (str += '\\\\u'; restore < this.index; ++restore) {\n\t str += this.source[restore];\n\t }\n\t }\n\t else {\n\t this.index = restore;\n\t flags += 'u';\n\t str += '\\\\u';\n\t }\n\t this.tolerateUnexpectedToken();\n\t }\n\t else {\n\t str += '\\\\';\n\t this.tolerateUnexpectedToken();\n\t }\n\t }\n\t else {\n\t flags += ch;\n\t str += ch;\n\t }\n\t }\n\t return flags;\n\t };\n\t Scanner.prototype.scanRegExp = function () {\n\t var start = this.index;\n\t var pattern = this.scanRegExpBody();\n\t var flags = this.scanRegExpFlags();\n\t var value = this.testRegExp(pattern, flags);\n\t return {\n\t type: 9 /* RegularExpression */,\n\t value: '',\n\t pattern: pattern,\n\t flags: flags,\n\t regex: value,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t Scanner.prototype.lex = function () {\n\t if (this.eof()) {\n\t return {\n\t type: 2 /* EOF */,\n\t value: '',\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: this.index,\n\t end: this.index\n\t };\n\t }\n\t var cp = this.source.charCodeAt(this.index);\n\t if (character_1.Character.isIdentifierStart(cp)) {\n\t return this.scanIdentifier();\n\t }\n\t // Very common: ( and ) and ;\n\t if (cp === 0x28 || cp === 0x29 || cp === 0x3B) {\n\t return this.scanPunctuator();\n\t }\n\t // String literal starts with single quote (U+0027) or double quote (U+0022).\n\t if (cp === 0x27 || cp === 0x22) {\n\t return this.scanStringLiteral();\n\t }\n\t // Dot (.) U+002E can also start a floating-point number, hence the need\n\t // to check the next character.\n\t if (cp === 0x2E) {\n\t if (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index + 1))) {\n\t return this.scanNumericLiteral();\n\t }\n\t return this.scanPunctuator();\n\t }\n\t if (character_1.Character.isDecimalDigit(cp)) {\n\t return this.scanNumericLiteral();\n\t }\n\t // Template literals start with ` (U+0060) for template head\n\t // or } (U+007D) for template middle or template tail.\n\t if (cp === 0x60 || (cp === 0x7D && this.curlyStack[this.curlyStack.length - 1] === '${')) {\n\t return this.scanTemplate();\n\t }\n\t // Possible identifier start in a surrogate pair.\n\t if (cp >= 0xD800 && cp < 0xDFFF) {\n\t if (character_1.Character.isIdentifierStart(this.codePointAt(this.index))) {\n\t return this.scanIdentifier();\n\t }\n\t }\n\t return this.scanPunctuator();\n\t };\n\t return Scanner;\n\t}());\n\texports.Scanner = Scanner;\n\n\n/***/ },\n/* 13 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.TokenName = {};\n\texports.TokenName[1 /* BooleanLiteral */] = 'Boolean';\n\texports.TokenName[2 /* EOF */] = '<end>';\n\texports.TokenName[3 /* Identifier */] = 'Identifier';\n\texports.TokenName[4 /* Keyword */] = 'Keyword';\n\texports.TokenName[5 /* NullLiteral */] = 'Null';\n\texports.TokenName[6 /* NumericLiteral */] = 'Numeric';\n\texports.TokenName[7 /* Punctuator */] = 'Punctuator';\n\texports.TokenName[8 /* StringLiteral */] = 'String';\n\texports.TokenName[9 /* RegularExpression */] = 'RegularExpression';\n\texports.TokenName[10 /* Template */] = 'Template';\n\n\n/***/ },\n/* 14 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t// Generated by generate-xhtml-entities.js. DO NOT MODIFY!\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.XHTMLEntities = {\n\t quot: '\\u0022',\n\t amp: '\\u0026',\n\t apos: '\\u0027',\n\t gt: '\\u003E',\n\t nbsp: '\\u00A0',\n\t iexcl: '\\u00A1',\n\t cent: '\\u00A2',\n\t pound: '\\u00A3',\n\t curren: '\\u00A4',\n\t yen: '\\u00A5',\n\t brvbar: '\\u00A6',\n\t sect: '\\u00A7',\n\t uml: '\\u00A8',\n\t copy: '\\u00A9',\n\t ordf: '\\u00AA',\n\t laquo: '\\u00AB',\n\t not: '\\u00AC',\n\t shy: '\\u00AD',\n\t reg: '\\u00AE',\n\t macr: '\\u00AF',\n\t deg: '\\u00B0',\n\t plusmn: '\\u00B1',\n\t sup2: '\\u00B2',\n\t sup3: '\\u00B3',\n\t acute: '\\u00B4',\n\t micro: '\\u00B5',\n\t para: '\\u00B6',\n\t middot: '\\u00B7',\n\t cedil: '\\u00B8',\n\t sup1: '\\u00B9',\n\t ordm: '\\u00BA',\n\t raquo: '\\u00BB',\n\t frac14: '\\u00BC',\n\t frac12: '\\u00BD',\n\t frac34: '\\u00BE',\n\t iquest: '\\u00BF',\n\t Agrave: '\\u00C0',\n\t Aacute: '\\u00C1',\n\t Acirc: '\\u00C2',\n\t Atilde: '\\u00C3',\n\t Auml: '\\u00C4',\n\t Aring: '\\u00C5',\n\t AElig: '\\u00C6',\n\t Ccedil: '\\u00C7',\n\t Egrave: '\\u00C8',\n\t Eacute: '\\u00C9',\n\t Ecirc: '\\u00CA',\n\t Euml: '\\u00CB',\n\t Igrave: '\\u00CC',\n\t Iacute: '\\u00CD',\n\t Icirc: '\\u00CE',\n\t Iuml: '\\u00CF',\n\t ETH: '\\u00D0',\n\t Ntilde: '\\u00D1',\n\t Ograve: '\\u00D2',\n\t Oacute: '\\u00D3',\n\t Ocirc: '\\u00D4',\n\t Otilde: '\\u00D5',\n\t Ouml: '\\u00D6',\n\t times: '\\u00D7',\n\t Oslash: '\\u00D8',\n\t Ugrave: '\\u00D9',\n\t Uacute: '\\u00DA',\n\t Ucirc: '\\u00DB',\n\t Uuml: '\\u00DC',\n\t Yacute: '\\u00DD',\n\t THORN: '\\u00DE',\n\t szlig: '\\u00DF',\n\t agrave: '\\u00E0',\n\t aacute: '\\u00E1',\n\t acirc: '\\u00E2',\n\t atilde: '\\u00E3',\n\t auml: '\\u00E4',\n\t aring: '\\u00E5',\n\t aelig: '\\u00E6',\n\t ccedil: '\\u00E7',\n\t egrave: '\\u00E8',\n\t eacute: '\\u00E9',\n\t ecirc: '\\u00EA',\n\t euml: '\\u00EB',\n\t igrave: '\\u00EC',\n\t iacute: '\\u00ED',\n\t icirc: '\\u00EE',\n\t iuml: '\\u00EF',\n\t eth: '\\u00F0',\n\t ntilde: '\\u00F1',\n\t ograve: '\\u00F2',\n\t oacute: '\\u00F3',\n\t ocirc: '\\u00F4',\n\t otilde: '\\u00F5',\n\t ouml: '\\u00F6',\n\t divide: '\\u00F7',\n\t oslash: '\\u00F8',\n\t ugrave: '\\u00F9',\n\t uacute: '\\u00FA',\n\t ucirc: '\\u00FB',\n\t uuml: '\\u00FC',\n\t yacute: '\\u00FD',\n\t thorn: '\\u00FE',\n\t yuml: '\\u00FF',\n\t OElig: '\\u0152',\n\t oelig: '\\u0153',\n\t Scaron: '\\u0160',\n\t scaron: '\\u0161',\n\t Yuml: '\\u0178',\n\t fnof: '\\u0192',\n\t circ: '\\u02C6',\n\t tilde: '\\u02DC',\n\t Alpha: '\\u0391',\n\t Beta: '\\u0392',\n\t Gamma: '\\u0393',\n\t Delta: '\\u0394',\n\t Epsilon: '\\u0395',\n\t Zeta: '\\u0396',\n\t Eta: '\\u0397',\n\t Theta: '\\u0398',\n\t Iota: '\\u0399',\n\t Kappa: '\\u039A',\n\t Lambda: '\\u039B',\n\t Mu: '\\u039C',\n\t Nu: '\\u039D',\n\t Xi: '\\u039E',\n\t Omicron: '\\u039F',\n\t Pi: '\\u03A0',\n\t Rho: '\\u03A1',\n\t Sigma: '\\u03A3',\n\t Tau: '\\u03A4',\n\t Upsilon: '\\u03A5',\n\t Phi: '\\u03A6',\n\t Chi: '\\u03A7',\n\t Psi: '\\u03A8',\n\t Omega: '\\u03A9',\n\t alpha: '\\u03B1',\n\t beta: '\\u03B2',\n\t gamma: '\\u03B3',\n\t delta: '\\u03B4',\n\t epsilon: '\\u03B5',\n\t zeta: '\\u03B6',\n\t eta: '\\u03B7',\n\t theta: '\\u03B8',\n\t iota: '\\u03B9',\n\t kappa: '\\u03BA',\n\t lambda: '\\u03BB',\n\t mu: '\\u03BC',\n\t nu: '\\u03BD',\n\t xi: '\\u03BE',\n\t omicron: '\\u03BF',\n\t pi: '\\u03C0',\n\t rho: '\\u03C1',\n\t sigmaf: '\\u03C2',\n\t sigma: '\\u03C3',\n\t tau: '\\u03C4',\n\t upsilon: '\\u03C5',\n\t phi: '\\u03C6',\n\t chi: '\\u03C7',\n\t psi: '\\u03C8',\n\t omega: '\\u03C9',\n\t thetasym: '\\u03D1',\n\t upsih: '\\u03D2',\n\t piv: '\\u03D6',\n\t ensp: '\\u2002',\n\t emsp: '\\u2003',\n\t thinsp: '\\u2009',\n\t zwnj: '\\u200C',\n\t zwj: '\\u200D',\n\t lrm: '\\u200E',\n\t rlm: '\\u200F',\n\t ndash: '\\u2013',\n\t mdash: '\\u2014',\n\t lsquo: '\\u2018',\n\t rsquo: '\\u2019',\n\t sbquo: '\\u201A',\n\t ldquo: '\\u201C',\n\t rdquo: '\\u201D',\n\t bdquo: '\\u201E',\n\t dagger: '\\u2020',\n\t Dagger: '\\u2021',\n\t bull: '\\u2022',\n\t hellip: '\\u2026',\n\t permil: '\\u2030',\n\t prime: '\\u2032',\n\t Prime: '\\u2033',\n\t lsaquo: '\\u2039',\n\t rsaquo: '\\u203A',\n\t oline: '\\u203E',\n\t frasl: '\\u2044',\n\t euro: '\\u20AC',\n\t image: '\\u2111',\n\t weierp: '\\u2118',\n\t real: '\\u211C',\n\t trade: '\\u2122',\n\t alefsym: '\\u2135',\n\t larr: '\\u2190',\n\t uarr: '\\u2191',\n\t rarr: '\\u2192',\n\t darr: '\\u2193',\n\t harr: '\\u2194',\n\t crarr: '\\u21B5',\n\t lArr: '\\u21D0',\n\t uArr: '\\u21D1',\n\t rArr: '\\u21D2',\n\t dArr: '\\u21D3',\n\t hArr: '\\u21D4',\n\t forall: '\\u2200',\n\t part: '\\u2202',\n\t exist: '\\u2203',\n\t empty: '\\u2205',\n\t nabla: '\\u2207',\n\t isin: '\\u2208',\n\t notin: '\\u2209',\n\t ni: '\\u220B',\n\t prod: '\\u220F',\n\t sum: '\\u2211',\n\t minus: '\\u2212',\n\t lowast: '\\u2217',\n\t radic: '\\u221A',\n\t prop: '\\u221D',\n\t infin: '\\u221E',\n\t ang: '\\u2220',\n\t and: '\\u2227',\n\t or: '\\u2228',\n\t cap: '\\u2229',\n\t cup: '\\u222A',\n\t int: '\\u222B',\n\t there4: '\\u2234',\n\t sim: '\\u223C',\n\t cong: '\\u2245',\n\t asymp: '\\u2248',\n\t ne: '\\u2260',\n\t equiv: '\\u2261',\n\t le: '\\u2264',\n\t ge: '\\u2265',\n\t sub: '\\u2282',\n\t sup: '\\u2283',\n\t nsub: '\\u2284',\n\t sube: '\\u2286',\n\t supe: '\\u2287',\n\t oplus: '\\u2295',\n\t otimes: '\\u2297',\n\t perp: '\\u22A5',\n\t sdot: '\\u22C5',\n\t lceil: '\\u2308',\n\t rceil: '\\u2309',\n\t lfloor: '\\u230A',\n\t rfloor: '\\u230B',\n\t loz: '\\u25CA',\n\t spades: '\\u2660',\n\t clubs: '\\u2663',\n\t hearts: '\\u2665',\n\t diams: '\\u2666',\n\t lang: '\\u27E8',\n\t rang: '\\u27E9'\n\t};\n\n\n/***/ },\n/* 15 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar error_handler_1 = __webpack_require__(10);\n\tvar scanner_1 = __webpack_require__(12);\n\tvar token_1 = __webpack_require__(13);\n\tvar Reader = (function () {\n\t function Reader() {\n\t this.values = [];\n\t this.curly = this.paren = -1;\n\t }\n\t // A function following one of those tokens is an expression.\n\t Reader.prototype.beforeFunctionExpression = function (t) {\n\t return ['(', '{', '[', 'in', 'typeof', 'instanceof', 'new',\n\t 'return', 'case', 'delete', 'throw', 'void',\n\t // assignment operators\n\t '=', '+=', '-=', '*=', '**=', '/=', '%=', '<<=', '>>=', '>>>=',\n\t '&=', '|=', '^=', ',',\n\t // binary/unary operators\n\t '+', '-', '*', '**', '/', '%', '++', '--', '<<', '>>', '>>>', '&',\n\t '|', '^', '!', '~', '&&', '||', '?', ':', '===', '==', '>=',\n\t '<=', '<', '>', '!=', '!=='].indexOf(t) >= 0;\n\t };\n\t // Determine if forward slash (/) is an operator or part of a regular expression\n\t // https://github.com/mozilla/sweet.js/wiki/design\n\t Reader.prototype.isRegexStart = function () {\n\t var previous = this.values[this.values.length - 1];\n\t var regex = (previous !== null);\n\t switch (previous) {\n\t case 'this':\n\t case ']':\n\t regex = false;\n\t break;\n\t case ')':\n\t var keyword = this.values[this.paren - 1];\n\t regex = (keyword === 'if' || keyword === 'while' || keyword === 'for' || keyword === 'with');\n\t break;\n\t case '}':\n\t // Dividing a function by anything makes little sense,\n\t // but we have to check for that.\n\t regex = false;\n\t if (this.values[this.curly - 3] === 'function') {\n\t // Anonymous function, e.g. function(){} /42\n\t var check = this.values[this.curly - 4];\n\t regex = check ? !this.beforeFunctionExpression(check) : false;\n\t }\n\t else if (this.values[this.curly - 4] === 'function') {\n\t // Named function, e.g. function f(){} /42/\n\t var check = this.values[this.curly - 5];\n\t regex = check ? !this.beforeFunctionExpression(check) : true;\n\t }\n\t break;\n\t default:\n\t break;\n\t }\n\t return regex;\n\t };\n\t Reader.prototype.push = function (token) {\n\t if (token.type === 7 /* Punctuator */ || token.type === 4 /* Keyword */) {\n\t if (token.value === '{') {\n\t this.curly = this.values.length;\n\t }\n\t else if (token.value === '(') {\n\t this.paren = this.values.length;\n\t }\n\t this.values.push(token.value);\n\t }\n\t else {\n\t this.values.push(null);\n\t }\n\t };\n\t return Reader;\n\t}());\n\tvar Tokenizer = (function () {\n\t function Tokenizer(code, config) {\n\t this.errorHandler = new error_handler_1.ErrorHandler();\n\t this.errorHandler.tolerant = config ? (typeof config.tolerant === 'boolean' && config.tolerant) : false;\n\t this.scanner = new scanner_1.Scanner(code, this.errorHandler);\n\t this.scanner.trackComment = config ? (typeof config.comment === 'boolean' && config.comment) : false;\n\t this.trackRange = config ? (typeof config.range === 'boolean' && config.range) : false;\n\t this.trackLoc = config ? (typeof config.loc === 'boolean' && config.loc) : false;\n\t this.buffer = [];\n\t this.reader = new Reader();\n\t }\n\t Tokenizer.prototype.errors = function () {\n\t return this.errorHandler.errors;\n\t };\n\t Tokenizer.prototype.getNextToken = function () {\n\t if (this.buffer.length === 0) {\n\t var comments = this.scanner.scanComments();\n\t if (this.scanner.trackComment) {\n\t for (var i = 0; i < comments.length; ++i) {\n\t var e = comments[i];\n\t var value = this.scanner.source.slice(e.slice[0], e.slice[1]);\n\t var comment = {\n\t type: e.multiLine ? 'BlockComment' : 'LineComment',\n\t value: value\n\t };\n\t if (this.trackRange) {\n\t comment.range = e.range;\n\t }\n\t if (this.trackLoc) {\n\t comment.loc = e.loc;\n\t }\n\t this.buffer.push(comment);\n\t }\n\t }\n\t if (!this.scanner.eof()) {\n\t var loc = void 0;\n\t if (this.trackLoc) {\n\t loc = {\n\t start: {\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t },\n\t end: {}\n\t };\n\t }\n\t var startRegex = (this.scanner.source[this.scanner.index] === '/') && this.reader.isRegexStart();\n\t var token = startRegex ? this.scanner.scanRegExp() : this.scanner.lex();\n\t this.reader.push(token);\n\t var entry = {\n\t type: token_1.TokenName[token.type],\n\t value: this.scanner.source.slice(token.start, token.end)\n\t };\n\t if (this.trackRange) {\n\t entry.range = [token.start, token.end];\n\t }\n\t if (this.trackLoc) {\n\t loc.end = {\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t entry.loc = loc;\n\t }\n\t if (token.type === 9 /* RegularExpression */) {\n\t var pattern = token.pattern;\n\t var flags = token.flags;\n\t entry.regex = { pattern: pattern, flags: flags };\n\t }\n\t this.buffer.push(entry);\n\t }\n\t }\n\t return this.buffer.shift();\n\t };\n\t return Tokenizer;\n\t}());\n\texports.Tokenizer = Tokenizer;\n\n\n/***/ }\n/******/ ])\n});\n;","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return '<Buffer ' + str + '>'\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('buffer').Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","/**\n * Default minimum size of a run.\n */\nconst DEFAULT_MIN_MERGE = 32\n\n/**\n * Minimum ordered subsequece required to do galloping.\n */\nconst DEFAULT_MIN_GALLOPING = 7\n\n/**\n * Default tmp storage length. Can increase depending on the size of the\n * smallest run to merge.\n */\nconst DEFAULT_TMP_STORAGE_LENGTH = 256\n\n/**\n * Pre-computed powers of 10 for efficient lexicographic comparison of\n * small integers.\n */\nconst POWERS_OF_TEN = [1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9]\n\nlet results\n\n/**\n * Estimate the logarithm base 10 of a small integer.\n *\n * @param {number} x - The integer to estimate the logarithm of.\n * @return {number} - The estimated logarithm of the integer.\n */\nconst log10 = x => x < 1e5\n ? x < 1e2\n ? x < 1e1\n ? 0\n : 1\n : x < 1e4\n ? x < 1e3\n ? 2\n : 3\n : 4\n : x < 1e7\n ? x < 1e6\n ? 5\n : 6\n : x < 1e9\n ? x < 1e8\n ? 7\n : 8\n : 9\n\n/**\n * Default alphabetical comparison of items.\n *\n * @param {string|object|number} a - First element to compare.\n * @param {string|object|number} b - Second element to compare.\n * @return {number} - A positive number if a.toString() > b.toString(), a\n * negative number if .toString() < b.toString(), 0 otherwise.\n */\nfunction alphabeticalCompare (a, b) {\n if (a === b) {\n return 0\n }\n\n if (~ ~ a === a && ~ ~ b === b) {\n if (a === 0 || b === 0) {\n return a < b ? - 1 : 1\n }\n\n if (a < 0 || b < 0) {\n if (b >= 0) {\n return - 1\n }\n\n if (a >= 0) {\n return 1\n }\n\n a = - a\n b = - b\n }\n\n const al = log10(a)\n const bl = log10(b)\n\n let t = 0\n\n if (al < bl) {\n a *= POWERS_OF_TEN[bl - al - 1]\n b /= 10\n t = - 1\n } else if (al > bl) {\n b *= POWERS_OF_TEN[al - bl - 1]\n a /= 10\n t = 1\n }\n\n if (a === b) {\n return t\n }\n\n return a < b ? - 1 : 1\n }\n\n const aStr = String(a)\n const bStr = String(b)\n\n if (aStr === bStr) {\n return 0\n }\n\n return aStr < bStr ? - 1 : 1\n}\n\n/**\n * Compute minimum run length for TimSort\n *\n * @param {number} n - The size of the array to sort.\n */\nfunction minRunLength (n) {\n let r = 0\n\n while (n >= DEFAULT_MIN_MERGE) {\n r |= (n & 1)\n n >>= 1\n }\n\n return n + r\n}\n\n/**\n * Counts the length of a monotonically ascending or strictly monotonically\n * descending sequence (run) starting at array[lo] in the range [lo, hi). If\n * the run is descending it is made ascending.\n *\n * @param {array} array - The array to reverse.\n * @param {number} lo - First element in the range (inclusive).\n * @param {number} hi - Last element in the range.\n * @param {function} compare - Item comparison function.\n * @return {number} - The length of the run.\n */\nfunction makeAscendingRun (array, lo, hi, compare) {\n let runHi = lo + 1\n\n if (runHi === hi) {\n return 1\n }\n\n // Descending\n if (compare(array[runHi ++], array[lo]) < 0) {\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) < 0) {\n runHi ++\n }\n\n reverseRun(array, lo, runHi)\n reverseRun(results, lo, runHi)\n // Ascending\n } else {\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) >= 0) {\n runHi ++\n }\n }\n\n return runHi - lo\n}\n\n/**\n * Reverse an array in the range [lo, hi).\n *\n * @param {array} array - The array to reverse.\n * @param {number} lo - First element in the range (inclusive).\n * @param {number} hi - Last element in the range.\n */\nfunction reverseRun (array, lo, hi) {\n hi --\n\n while (lo < hi) {\n const t = array[lo]\n array[lo ++] = array[hi]\n array[hi --] = t\n }\n}\n\n/**\n * Perform the binary sort of the array in the range [lo, hi) where start is\n * the first element possibly out of order.\n *\n * @param {array} array - The array to sort.\n * @param {number} lo - First element in the range (inclusive).\n * @param {number} hi - Last element in the range.\n * @param {number} start - First element possibly out of order.\n * @param {function} compare - Item comparison function.\n */\nfunction binaryInsertionSort (array, lo, hi, start, compare) {\n if (start === lo) {\n start ++\n }\n\n for (; start < hi; start ++) {\n const pivot = array[start]\n const pivotIndex = results[start]\n\n // Ranges of the array where pivot belongs\n let left = lo\n let right = start\n\n /*\n * pivot >= array[i] for i in [lo, left)\n * pivot < array[i] for i in in [right, start)\n */\n while (left < right) {\n const mid = (left + right) >>> 1\n\n if (compare(pivot, array[mid]) < 0) {\n right = mid\n } else {\n left = mid + 1\n }\n }\n\n /*\n * Move elements right to make room for the pivot. If there are elements\n * equal to pivot, left points to the first slot after them: this is also\n * a reason for which TimSort is stable\n */\n let n = start - left\n // Switch is just an optimization for small arrays\n switch (n) {\n case 3:\n array[left + 3] = array[left + 2]\n results[left + 3] = results[left + 2]\n /* falls through */\n case 2:\n array[left + 2] = array[left + 1]\n results[left + 2] = results[left + 1]\n /* falls through */\n case 1:\n array[left + 1] = array[left]\n results[left + 1] = results[left]\n break\n default:\n while (n > 0) {\n array[left + n] = array[left + n - 1]\n results[left + n] = results[left + n - 1]\n n --\n }\n }\n\n array[left] = pivot\n results[left] = pivotIndex\n }\n}\n\n/**\n * Find the position at which to insert a value in a sorted range. If the range\n * contains elements equal to the value the leftmost element index is returned\n * (for stability).\n *\n * @param {number} value - Value to insert.\n * @param {array} array - The array in which to insert value.\n * @param {number} start - First element in the range.\n * @param {number} length - Length of the range.\n * @param {number} hint - The index at which to begin the search.\n * @param {function} compare - Item comparison function.\n * @return {number} - The index where to insert value.\n */\nfunction gallopLeft (value, array, start, length, hint, compare) {\n let lastOffset = 0\n let maxOffset = 0\n let offset = 1\n\n if (compare(value, array[start + hint]) > 0) {\n maxOffset = length - hint\n\n while (\n offset < maxOffset\n && compare(value, array[start + hint + offset]) > 0\n ) {\n lastOffset = offset\n offset = (offset << 1) + 1\n\n if (offset <= 0) {\n offset = maxOffset\n }\n }\n\n if (offset > maxOffset) {\n offset = maxOffset\n }\n\n // Make offsets relative to start\n lastOffset += hint\n offset += hint\n\n // value <= array[start + hint]\n } else {\n maxOffset = hint + 1\n while (\n offset < maxOffset\n && compare(value, array[start + hint - offset]) <= 0\n ) {\n lastOffset = offset\n offset = (offset << 1) + 1\n\n if (offset <= 0) {\n offset = maxOffset\n }\n }\n if (offset > maxOffset) {\n offset = maxOffset\n }\n\n // Make offsets relative to start\n const tmp = lastOffset\n lastOffset = hint - offset\n offset = hint - tmp\n }\n\n /*\n * Now array[start+lastOffset] < value <= array[start+offset], so value\n * belongs somewhere in the range (start + lastOffset, start + offset]. Do a\n * binary search, with invariant array[start + lastOffset - 1] < value <=\n * array[start + offset].\n */\n lastOffset ++\n while (lastOffset < offset) {\n const m = lastOffset + ((offset - lastOffset) >>> 1)\n\n if (compare(value, array[start + m]) > 0) {\n lastOffset = m + 1\n } else {\n offset = m\n }\n }\n return offset\n}\n\n/**\n * Find the position at which to insert a value in a sorted range. If the range\n * contains elements equal to the value the rightmost element index is returned\n * (for stability).\n *\n * @param {number} value - Value to insert.\n * @param {array} array - The array in which to insert value.\n * @param {number} start - First element in the range.\n * @param {number} length - Length of the range.\n * @param {number} hint - The index at which to begin the search.\n * @param {function} compare - Item comparison function.\n * @return {number} - The index where to insert value.\n */\nfunction gallopRight (value, array, start, length, hint, compare) {\n let lastOffset = 0\n let maxOffset = 0\n let offset = 1\n\n if (compare(value, array[start + hint]) < 0) {\n maxOffset = hint + 1\n\n while (\n offset < maxOffset\n && compare(value, array[start + hint - offset]) < 0\n ) {\n lastOffset = offset\n offset = (offset << 1) + 1\n\n if (offset <= 0) {\n offset = maxOffset\n }\n }\n\n if (offset > maxOffset) {\n offset = maxOffset\n }\n\n // Make offsets relative to start\n const tmp = lastOffset\n lastOffset = hint - offset\n offset = hint - tmp\n\n // value >= array[start + hint]\n } else {\n maxOffset = length - hint\n\n while (\n offset < maxOffset\n && compare(value, array[start + hint + offset]) >= 0\n ) {\n lastOffset = offset\n offset = (offset << 1) + 1\n\n if (offset <= 0) {\n offset = maxOffset\n }\n }\n\n if (offset > maxOffset) {\n offset = maxOffset\n }\n\n // Make offsets relative to start\n lastOffset += hint\n offset += hint\n }\n\n /*\n * Now array[start+lastOffset] < value <= array[start+offset], so value\n * belongs somewhere in the range (start + lastOffset, start + offset]. Do a\n * binary search, with invariant array[start + lastOffset - 1] < value <=\n * array[start + offset].\n */\n lastOffset ++\n\n while (lastOffset < offset) {\n const m = lastOffset + ((offset - lastOffset) >>> 1)\n\n if (compare(value, array[start + m]) < 0) {\n offset = m\n } else {\n lastOffset = m + 1\n }\n }\n\n return offset\n}\n\nclass TimSort {\n constructor (array, compare) {\n this.array = array\n this.compare = compare\n\n const {length} = array\n\n this.length = length\n this.minGallop = DEFAULT_MIN_GALLOPING\n\n this.tmpStorageLength = length < 2 * DEFAULT_TMP_STORAGE_LENGTH\n ? length >>> 1\n : DEFAULT_TMP_STORAGE_LENGTH\n\n this.tmp = new Array(this.tmpStorageLength)\n this.tmpIndex = new Array(this.tmpStorageLength)\n\n this.stackLength = length < 120\n ? 5\n : length < 1542\n ? 10\n : length < 119151\n ? 19\n : 40\n\n this.runStart = new Array(this.stackLength)\n this.runLength = new Array(this.stackLength)\n\n this.stackSize = 0\n }\n\n /**\n * Push a new run on TimSort's stack.\n *\n * @param {number} runStart - Start index of the run in the original array.\n * @param {number} runLength - Length of the run;\n */\n pushRun (runStart, runLength) {\n this.runStart[this.stackSize] = runStart\n this.runLength[this.stackSize] = runLength\n this.stackSize += 1\n }\n\n /**\n * Merge runs on TimSort's stack so that the following holds for all i:\n * 1) runLength[i - 3] > runLength[i - 2] + runLength[i - 1]\n * 2) runLength[i - 2] > runLength[i - 1]\n */\n mergeRuns () {\n while (this.stackSize > 1) {\n let n = this.stackSize - 2\n\n if (\n (\n n >= 1\n && this.runLength[n - 1] <= this.runLength[n] + this.runLength[n + 1]\n )\n || (\n n >= 2\n && this.runLength[n - 2] <= this.runLength[n] + this.runLength[n - 1]\n )\n ) {\n if (this.runLength[n - 1] < this.runLength[n + 1]) {\n n --\n }\n } else if (this.runLength[n] > this.runLength[n + 1]) {\n break\n }\n this.mergeAt(n)\n }\n }\n\n /**\n * Merge all runs on TimSort's stack until only one remains.\n */\n forceMergeRuns () {\n while (this.stackSize > 1) {\n let n = this.stackSize - 2\n\n if (n > 0 && this.runLength[n - 1] < this.runLength[n + 1]) {\n n --\n }\n\n this.mergeAt(n)\n }\n }\n\n /**\n * Merge the runs on the stack at positions i and i+1. Must be always be called\n * with i=stackSize-2 or i=stackSize-3 (that is, we merge on top of the stack).\n *\n * @param {number} i - Index of the run to merge in TimSort's stack.\n */\n mergeAt (i) {\n const {compare} = this\n const {array} = this\n\n let start1 = this.runStart[i]\n let length1 = this.runLength[i]\n const start2 = this.runStart[i + 1]\n let length2 = this.runLength[i + 1]\n\n this.runLength[i] = length1 + length2\n\n if (i === this.stackSize - 3) {\n this.runStart[i + 1] = this.runStart[i + 2]\n this.runLength[i + 1] = this.runLength[i + 2]\n }\n\n this.stackSize --\n\n /*\n * Find where the first element in the second run goes in run1. Previous\n * elements in run1 are already in place\n */\n const k = gallopRight(array[start2], array, start1, length1, 0, compare)\n start1 += k\n length1 -= k\n\n if (length1 === 0) {\n return\n }\n\n /*\n * Find where the last element in the first run goes in run2. Next elements\n * in run2 are already in place\n */\n length2 = gallopLeft(\n array[start1 + length1 - 1],\n array,\n start2,\n length2,\n length2 - 1,\n compare\n )\n\n if (length2 === 0) {\n return\n }\n\n /*\n * Merge remaining runs. A tmp array with length = min(length1, length2) is\n * used\n */\n if (length1 <= length2) {\n this.mergeLow(start1, length1, start2, length2)\n } else {\n this.mergeHigh(start1, length1, start2, length2)\n }\n }\n\n /**\n * Merge two adjacent runs in a stable way. The runs must be such that the\n * first element of run1 is bigger than the first element in run2 and the\n * last element of run1 is greater than all the elements in run2.\n * The method should be called when run1.length <= run2.length as it uses\n * TimSort temporary array to store run1. Use mergeHigh if run1.length >\n * run2.length.\n *\n * @param {number} start1 - First element in run1.\n * @param {number} length1 - Length of run1.\n * @param {number} start2 - First element in run2.\n * @param {number} length2 - Length of run2.\n */\n mergeLow (start1, length1, start2, length2) {\n const {compare} = this\n const {array} = this\n const {tmp} = this\n const {tmpIndex} = this\n let i = 0\n\n for (i = 0; i < length1; i ++) {\n tmp[i] = array[start1 + i]\n tmpIndex[i] = results[start1 + i]\n }\n\n let cursor1 = 0\n let cursor2 = start2\n let dest = start1\n\n array[dest] = array[cursor2]\n results[dest] = results[cursor2]\n\n dest ++\n cursor2 ++\n\n if (-- length2 === 0) {\n for (i = 0; i < length1; i ++) {\n array[dest + i] = tmp[cursor1 + i]\n results[dest + i] = tmpIndex[cursor1 + i]\n }\n return\n }\n\n if (length1 === 1) {\n for (i = 0; i < length2; i ++) {\n array[dest + i] = array[cursor2 + i]\n results[dest + i] = results[cursor2 + i]\n }\n array[dest + length2] = tmp[cursor1]\n results[dest + length2] = tmpIndex[cursor1]\n return\n }\n\n let {minGallop} = this\n\n while (true) {\n let count1 = 0\n let count2 = 0\n let exit = false\n\n do {\n if (compare(array[cursor2], tmp[cursor1]) < 0) {\n array[dest] = array[cursor2]\n results[dest] = results[cursor2]\n dest ++\n cursor2 ++\n count2 ++\n count1 = 0\n\n if (-- length2 === 0) {\n exit = true\n break\n }\n } else {\n array[dest] = tmp[cursor1]\n results[dest] = tmpIndex[cursor1]\n dest ++\n cursor1 ++\n count1 ++\n count2 = 0\n if (-- length1 === 1) {\n exit = true\n break\n }\n }\n } while ((count1 | count2) < minGallop)\n\n if (exit) {\n break\n }\n\n do {\n count1 = gallopRight(array[cursor2], tmp, cursor1, length1, 0, compare)\n\n if (count1 !== 0) {\n for (i = 0; i < count1; i ++) {\n array[dest + i] = tmp[cursor1 + i]\n results[dest + i] = tmpIndex[cursor1 + i]\n }\n\n dest += count1\n cursor1 += count1\n length1 -= count1\n if (length1 <= 1) {\n exit = true\n break\n }\n }\n\n array[dest] = array[cursor2]\n results[dest] = results[cursor2]\n\n dest ++\n cursor2 ++\n\n if (-- length2 === 0) {\n exit = true\n break\n }\n\n count2 = gallopLeft(tmp[cursor1], array, cursor2, length2, 0, compare)\n\n if (count2 !== 0) {\n for (i = 0; i < count2; i ++) {\n array[dest + i] = array[cursor2 + i]\n results[dest + i] = results[cursor2 + i]\n }\n\n dest += count2\n cursor2 += count2\n length2 -= count2\n\n if (length2 === 0) {\n exit = true\n break\n }\n }\n array[dest] = tmp[cursor1]\n results[dest] = tmpIndex[cursor1]\n dest ++\n cursor1 ++\n\n if (-- length1 === 1) {\n exit = true\n break\n }\n\n minGallop --\n } while (\n count1 >= DEFAULT_MIN_GALLOPING\n || count2 >= DEFAULT_MIN_GALLOPING\n )\n\n if (exit) {\n break\n }\n\n if (minGallop < 0) {\n minGallop = 0\n }\n\n minGallop += 2\n }\n\n this.minGallop = minGallop\n\n if (minGallop < 1) {\n this.minGallop = 1\n }\n\n if (length1 === 1) {\n for (i = 0; i < length2; i ++) {\n array[dest + i] = array[cursor2 + i]\n results[dest + i] = results[cursor2 + i]\n }\n array[dest + length2] = tmp[cursor1]\n results[dest + length2] = tmpIndex[cursor1]\n } else if (length1 === 0) {\n throw new Error('mergeLow preconditions were not respected')\n } else {\n for (i = 0; i < length1; i ++) {\n array[dest + i] = tmp[cursor1 + i]\n results[dest + i] = tmpIndex[cursor1 + i]\n }\n }\n }\n\n /**\n * Merge two adjacent runs in a stable way. The runs must be such that the\n * first element of run1 is bigger than the first element in run2 and the\n * last element of run1 is greater than all the elements in run2.\n * The method should be called when run1.length > run2.length as it uses\n * TimSort temporary array to store run2. Use mergeLow if run1.length <=\n * run2.length.\n *\n * @param {number} start1 - First element in run1.\n * @param {number} length1 - Length of run1.\n * @param {number} start2 - First element in run2.\n * @param {number} length2 - Length of run2.\n */\n mergeHigh (start1, length1, start2, length2) {\n const {compare} = this\n const {array} = this\n const {tmp} = this\n const {tmpIndex} = this\n let i = 0\n\n for (i = 0; i < length2; i ++) {\n tmp[i] = array[start2 + i]\n tmpIndex[i] = results[start2 + i]\n }\n\n let cursor1 = start1 + length1 - 1\n let cursor2 = length2 - 1\n let dest = start2 + length2 - 1\n let customCursor = 0\n let customDest = 0\n\n array[dest] = array[cursor1]\n results[dest] = results[cursor1]\n\n dest --\n cursor1 --\n\n if (-- length1 === 0) {\n customCursor = dest - (length2 - 1)\n\n for (i = 0; i < length2; i ++) {\n array[customCursor + i] = tmp[i]\n results[customCursor + i] = tmpIndex[i]\n }\n\n return\n }\n\n if (length2 === 1) {\n dest -= length1\n cursor1 -= length1\n customDest = dest + 1\n customCursor = cursor1 + 1\n\n for (i = length1 - 1; i >= 0; i --) {\n array[customDest + i] = array[customCursor + i]\n results[customDest + i] = results[customCursor + i]\n }\n\n array[dest] = tmp[cursor2]\n results[dest] = tmpIndex[cursor2]\n return\n }\n\n let {minGallop} = this\n\n while (true) {\n let count1 = 0\n let count2 = 0\n let exit = false\n\n do {\n if (compare(tmp[cursor2], array[cursor1]) < 0) {\n array[dest] = array[cursor1]\n results[dest] = results[cursor1]\n dest --\n cursor1 --\n count1 ++\n count2 = 0\n if (-- length1 === 0) {\n exit = true\n break\n }\n } else {\n array[dest] = tmp[cursor2]\n results[dest] = tmpIndex[cursor2]\n dest --\n cursor2 --\n count2 ++\n count1 = 0\n if (-- length2 === 1) {\n exit = true\n break\n }\n }\n } while ((count1 | count2) < minGallop)\n\n if (exit) {\n break\n }\n\n do {\n count1 = length1 - gallopRight(\n tmp[cursor2],\n array,\n start1,\n length1,\n length1 - 1,\n compare\n )\n\n if (count1 !== 0) {\n dest -= count1\n cursor1 -= count1\n length1 -= count1\n customDest = dest + 1\n customCursor = cursor1 + 1\n\n for (i = count1 - 1; i >= 0; i --) {\n array[customDest + i] = array[customCursor + i]\n results[customDest + i] = results[customCursor + i]\n }\n\n if (length1 === 0) {\n exit = true\n break\n }\n }\n\n array[dest] = tmp[cursor2]\n results[dest] = tmpIndex[cursor2]\n dest --\n cursor2 --\n\n if (-- length2 === 1) {\n exit = true\n break\n }\n\n count2 = length2 - gallopLeft(\n array[cursor1],\n tmp,\n 0,\n length2,\n length2 - 1,\n compare\n )\n\n if (count2 !== 0) {\n dest -= count2\n cursor2 -= count2\n length2 -= count2\n customDest = dest + 1\n customCursor = cursor2 + 1\n\n for (i = 0; i < count2; i ++) {\n array[customDest + i] = tmp[customCursor + i]\n results[customDest + i] = tmpIndex[customCursor + i]\n }\n\n if (length2 <= 1) {\n exit = true\n break\n }\n }\n\n array[dest] = array[cursor1]\n results[dest] = results[cursor1]\n dest --\n cursor1 --\n\n if (-- length1 === 0) {\n exit = true\n break\n }\n\n minGallop --\n } while (\n count1 >= DEFAULT_MIN_GALLOPING\n || count2 >= DEFAULT_MIN_GALLOPING\n )\n\n if (exit) {\n break\n }\n\n if (minGallop < 0) {\n minGallop = 0\n }\n\n minGallop += 2\n }\n\n this.minGallop = minGallop\n\n if (minGallop < 1) {\n this.minGallop = 1\n }\n\n if (length2 === 1) {\n dest -= length1\n cursor1 -= length1\n customDest = dest + 1\n customCursor = cursor1 + 1\n\n for (i = length1 - 1; i >= 0; i --) {\n array[customDest + i] = array[customCursor + i]\n results[customDest + i] = results[customCursor + i]\n }\n\n array[dest] = tmp[cursor2]\n results[dest] = tmpIndex[cursor2]\n } else if (length2 === 0) {\n throw new Error('mergeHigh preconditions were not respected')\n } else {\n customCursor = dest - (length2 - 1)\n for (i = 0; i < length2; i ++) {\n array[customCursor + i] = tmp[i]\n results[customCursor + i] = tmpIndex[i]\n }\n }\n }\n}\n\n/**\n * Sort an array in the range [lo, hi) using TimSort.\n *\n * @param {array} array - The array to sort.\n * @param {function=} compare - Item comparison function. Default is\n * alphabetical\n * @param {number} lo - First element in the range (inclusive).\n * @param {number} hi - Last element in the range.\n * comparator.\n */\nfunction sort (array, compare, lo, hi) {\n if (!Array.isArray(array)) {\n throw new TypeError(\n `The \"array\" argument must be an array. Received ${array}`\n )\n }\n\n results = []\n\n const {length} = array\n\n let i = 0\n\n while (i < length) {\n results[i] = i ++\n }\n\n /*\n * Handle the case where a comparison function is not provided. We do\n * lexicographic sorting\n */\n if (!compare) {\n compare = alphabeticalCompare\n } else if (typeof compare !== 'function') {\n hi = lo\n lo = compare\n compare = alphabeticalCompare\n }\n\n if (!lo) {\n lo = 0\n }\n if (!hi) {\n hi = length\n }\n\n let remaining = hi - lo\n\n // The array is already sorted\n if (remaining < 2) {\n return results\n }\n\n let runLength = 0\n // On small arrays binary sort can be used directly\n if (remaining < DEFAULT_MIN_MERGE) {\n runLength = makeAscendingRun(array, lo, hi, compare)\n binaryInsertionSort(array, lo, hi, lo + runLength, compare)\n return results\n }\n\n const ts = new TimSort(array, compare)\n\n const minRun = minRunLength(remaining)\n\n do {\n runLength = makeAscendingRun(array, lo, hi, compare)\n if (runLength < minRun) {\n let force = remaining\n if (force > minRun) {\n force = minRun\n }\n\n binaryInsertionSort(array, lo, lo + force, lo + runLength, compare)\n runLength = force\n }\n // Push new run and merge if necessary\n ts.pushRun(lo, runLength)\n ts.mergeRuns()\n\n // Go find next run\n remaining -= runLength\n lo += runLength\n } while (remaining !== 0)\n\n // Force merging of remaining runs\n ts.forceMergeRuns()\n\n return results\n}\n\nmodule.exports = {\n sort\n}\n","'use strict';\nconst hasOwnProp = Object.prototype.hasOwnProperty;\n\nmodule.exports = (object, property) => hasOwnProp.call(object, property);\n","const hasOwnProperty = require('has-own-prop')\nconst {isObject, isArray} = require('core-util-is')\n\n\nconst PREFIX_BEFORE = 'before'\nconst PREFIX_AFTER_PROP = 'after-prop'\nconst PREFIX_AFTER_COLON = 'after-colon'\nconst PREFIX_AFTER_VALUE = 'after-value'\nconst PREFIX_AFTER = 'after'\n\nconst PREFIX_BEFORE_ALL = 'before-all'\nconst PREFIX_AFTER_ALL = 'after-all'\n\nconst BRACKET_OPEN = '['\nconst BRACKET_CLOSE = ']'\nconst CURLY_BRACKET_OPEN = '{'\nconst CURLY_BRACKET_CLOSE = '}'\nconst COMMA = ','\nconst EMPTY = ''\nconst MINUS = '-'\n\nconst SYMBOL_PREFIXES = [\n PREFIX_BEFORE,\n PREFIX_AFTER_PROP,\n PREFIX_AFTER_COLON,\n PREFIX_AFTER_VALUE,\n PREFIX_AFTER\n]\n\nconst NON_PROP_SYMBOL_KEYS = [\n PREFIX_BEFORE,\n PREFIX_BEFORE_ALL,\n PREFIX_AFTER_ALL\n].map(Symbol.for)\n\nconst COLON = ':'\nconst UNDEFINED = undefined\n\n\nconst symbol = (prefix, key) => Symbol.for(prefix + COLON + key)\n\nconst define = (target, key, value) => Object.defineProperty(target, key, {\n value,\n writable: true,\n configurable: true\n})\n\nconst copy_comments_by_kind = (\n target, source, target_key, source_key, prefix, remove_source\n) => {\n const source_prop = symbol(prefix, source_key)\n if (!hasOwnProperty(source, source_prop)) {\n return\n }\n\n const target_prop = target_key === source_key\n ? source_prop\n : symbol(prefix, target_key)\n\n define(target, target_prop, source[source_prop])\n\n if (remove_source) {\n delete source[source_prop]\n }\n}\n\nconst copy_comments = (\n target, source, target_key, source_key, remove_source\n) => {\n SYMBOL_PREFIXES.forEach(prefix => {\n copy_comments_by_kind(\n target, source, target_key, source_key, prefix, remove_source\n )\n })\n}\n\nconst swap_comments = (array, from, to) => {\n if (from === to) {\n return\n }\n\n SYMBOL_PREFIXES.forEach(prefix => {\n const target_prop = symbol(prefix, to)\n if (!hasOwnProperty(array, target_prop)) {\n copy_comments_by_kind(array, array, to, from, prefix, true)\n return\n }\n\n const comments = array[target_prop]\n delete array[target_prop]\n\n copy_comments_by_kind(array, array, to, from, prefix, true)\n define(array, symbol(prefix, from), comments)\n })\n}\n\nconst assign_non_prop_comments = (target, source) => {\n NON_PROP_SYMBOL_KEYS.forEach(key => {\n const comments = source[key]\n\n if (comments) {\n define(target, key, comments)\n }\n })\n}\n\n// Assign keys and comments\nconst assign = (target, source, keys) => {\n keys.forEach(key => {\n if (!hasOwnProperty(source, key)) {\n return\n }\n\n target[key] = source[key]\n copy_comments(target, source, key, key)\n })\n\n return target\n}\n\n\nmodule.exports = {\n SYMBOL_PREFIXES,\n\n PREFIX_BEFORE,\n PREFIX_AFTER_PROP,\n PREFIX_AFTER_COLON,\n PREFIX_AFTER_VALUE,\n PREFIX_AFTER,\n\n PREFIX_BEFORE_ALL,\n PREFIX_AFTER_ALL,\n\n BRACKET_OPEN,\n BRACKET_CLOSE,\n CURLY_BRACKET_OPEN,\n CURLY_BRACKET_CLOSE,\n\n COLON,\n COMMA,\n MINUS,\n EMPTY,\n\n UNDEFINED,\n\n symbol,\n define,\n copy_comments,\n swap_comments,\n assign_non_prop_comments,\n\n assign (target, source, keys) {\n if (!isObject(target)) {\n throw new TypeError('Cannot convert undefined or null to object')\n }\n\n if (!isObject(source)) {\n return target\n }\n\n if (keys === UNDEFINED) {\n keys = Object.keys(source)\n // We assign non-property comments\n // if argument `keys` is not specified\n assign_non_prop_comments(target, source)\n } else if (!isArray(keys)) {\n throw new TypeError('keys must be array or undefined')\n } else if (keys.length === 0) {\n // Or argument `keys` is an empty array\n assign_non_prop_comments(target, source)\n }\n\n return assign(target, source, keys)\n }\n}\n","const {isArray} = require('core-util-is')\nconst {sort} = require('array-timsort')\n\nconst {\n SYMBOL_PREFIXES,\n\n UNDEFINED,\n\n symbol,\n copy_comments,\n swap_comments\n} = require('./common')\n\n\nconst reverse_comments = array => {\n const {length} = array\n let i = 0\n const max = length / 2\n\n for (; i < max; i ++) {\n swap_comments(array, i, length - i - 1)\n }\n}\n\nconst move_comment = (target, source, i, offset, remove) => {\n copy_comments(target, source, i + offset, i, remove)\n}\n\nconst move_comments = (\n // `Array` target array\n target,\n // `Array` source array\n source,\n // `number` start index\n start,\n // `number` number of indexes to move\n count,\n // `number` offset to move\n offset,\n // `boolean` whether should remove the comments from source\n remove\n) => {\n if (offset > 0) {\n let i = count\n // | count | offset |\n // source: -------------\n // target: -------------\n // | remove |\n // => remove === offset\n\n // From [count - 1, 0]\n while (i -- > 0) {\n move_comment(target, source, start + i, offset, remove)\n }\n return\n }\n\n let i = 0\n // | remove | count |\n // -------------\n // -------------\n // | offset |\n\n // From [0, count - 1]\n while (i < count) {\n const ii = i ++\n move_comment(target, source, start + ii, offset, remove)\n }\n}\n\nconst remove_comments = (array, key) => {\n SYMBOL_PREFIXES.forEach(prefix => {\n const prop = symbol(prefix, key)\n delete array[prop]\n })\n}\n\nconst get_mapped = (map, key) => {\n let mapped = key\n\n while (mapped in map) {\n mapped = map[mapped]\n }\n\n return mapped\n}\n\n\nclass CommentArray extends Array {\n // - deleteCount + items.length\n\n // We should avoid `splice(begin, deleteCount, ...items)`,\n // because `splice(0, undefined)` is not equivalent to `splice(0)`,\n // as well as:\n // - slice\n splice (...args) {\n const {length} = this\n const ret = super.splice(...args)\n\n // #16\n // If no element removed, we might still need to move comments,\n // because splice could add new items\n\n // if (!ret.length) {\n // return ret\n // }\n\n // JavaScript syntax is silly\n // eslint-disable-next-line prefer-const\n let [begin, deleteCount, ...items] = args\n\n if (begin < 0) {\n begin += length\n }\n\n if (arguments.length === 1) {\n deleteCount = length - begin\n } else {\n deleteCount = Math.min(length - begin, deleteCount)\n }\n\n const {\n length: item_length\n } = items\n\n // itemsToDelete: -\n // itemsToAdd: +\n // | dc | count |\n // =======-------------============\n // =======++++++============\n // | il |\n const offset = item_length - deleteCount\n const start = begin + deleteCount\n const count = length - start\n\n move_comments(this, this, start, count, offset, true)\n\n return ret\n }\n\n slice (...args) {\n const {length} = this\n const array = super.slice(...args)\n if (!array.length) {\n return new CommentArray()\n }\n\n let [begin, before] = args\n\n // Ref:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice\n if (before === UNDEFINED) {\n before = length\n } else if (before < 0) {\n before += length\n }\n\n if (begin < 0) {\n begin += length\n } else if (begin === UNDEFINED) {\n begin = 0\n }\n\n move_comments(array, this, begin, before - begin, - begin)\n\n return array\n }\n\n unshift (...items) {\n const {length} = this\n const ret = super.unshift(...items)\n const {\n length: items_length\n } = items\n\n if (items_length > 0) {\n move_comments(this, this, 0, length, items_length, true)\n }\n\n return ret\n }\n\n shift () {\n const ret = super.shift()\n const {length} = this\n\n remove_comments(this, 0)\n move_comments(this, this, 1, length, - 1, true)\n\n return ret\n }\n\n reverse () {\n super.reverse()\n\n reverse_comments(this)\n\n return this\n }\n\n pop () {\n const ret = super.pop()\n\n // Removes comments\n remove_comments(this, this.length)\n\n return ret\n }\n\n concat (...items) {\n let {length} = this\n const ret = super.concat(...items)\n\n if (!items.length) {\n return ret\n }\n\n move_comments(ret, this, 0, this.length, 0)\n\n items.forEach(item => {\n const prev = length\n length += isArray(item)\n ? item.length\n : 1\n\n if (!(item instanceof CommentArray)) {\n return\n }\n\n move_comments(ret, item, 0, item.length, prev)\n })\n\n return ret\n }\n\n sort (...args) {\n const result = sort(\n this,\n // Make sure there is no more than one argument\n ...args.slice(0, 1)\n )\n\n // For example,\n // if we sort ['b', 'd', 'c', 'a'],\n // then `result` will be [3, 0, 2, 1], and the array is ['a', 'b', 'c', 'd']\n\n // First, we swap index 0 (b) and index 3 (a), then the array comments are\n // ['a.comments', 'd.comments', 'c.comments', 'b.comments']\n // index 0 is finalized\n // index 3 is actually mapped to original index 0, we present as 0 -> 3\n\n // Then swap index 1 (d) and index 0 (-> 3, b)\n // 1 (index) -> 0 (new index) -> 3 (real_index)\n // ['d.comments', 'b.comments', 'c.comments', 'd.comments']\n // index 1 is finalized\n // index 3 is contains the item of original index 1\n // - we present as 1 -> 3\n // - it is ok that we don't remove mapping 0 -> 3\n\n // Then index 2 should be skipped\n\n // Then swap index 3 (d) and index 1 (-> 3, b), skipped\n\n const map = Object.create(null)\n\n result.forEach((source_index, index) => {\n if (source_index === index) {\n return\n }\n\n const real_source_index = get_mapped(map, source_index)\n\n if (real_source_index === index) {\n return\n }\n\n // The item of index `index` gets the final value\n // delete map[index]\n map[index] = real_source_index\n\n swap_comments(this, index, real_source_index)\n })\n\n return this\n }\n}\n\n\nmodule.exports = {\n CommentArray\n}\n","// JSON formatting\n\nconst esprima = require('esprima')\n\nconst {\n CommentArray,\n} = require('./array')\n\nconst {\n PREFIX_BEFORE,\n PREFIX_AFTER_PROP,\n PREFIX_AFTER_COLON,\n PREFIX_AFTER_VALUE,\n PREFIX_AFTER,\n\n PREFIX_BEFORE_ALL,\n PREFIX_AFTER_ALL,\n\n BRACKET_OPEN,\n BRACKET_CLOSE,\n CURLY_BRACKET_OPEN,\n CURLY_BRACKET_CLOSE,\n\n COLON,\n COMMA,\n MINUS,\n EMPTY,\n\n UNDEFINED,\n\n define,\n assign_non_prop_comments\n} = require('./common')\n\nconst tokenize = code => esprima.tokenize(code, {\n comment: true,\n loc: true\n})\n\nconst previous_hosts = []\nlet comments_host = null\nlet unassigned_comments = null\n\nconst previous_props = []\nlet last_prop\n\nlet remove_comments = false\nlet inline = false\nlet tokens = null\nlet last = null\nlet current = null\nlet index\nlet reviver = null\n\nconst clean = () => {\n previous_props.length =\n previous_hosts.length = 0\n\n last = null\n last_prop = UNDEFINED\n}\n\nconst free = () => {\n clean()\n\n tokens.length = 0\n\n unassigned_comments =\n comments_host =\n tokens =\n last =\n current =\n reviver = null\n}\n\nconst symbolFor = prefix => Symbol.for(\n last_prop !== UNDEFINED\n ? prefix + COLON + last_prop\n : prefix\n)\n\nconst transform = (k, v) => reviver\n ? reviver(k, v)\n : v\n\nconst unexpected = () => {\n const error = new SyntaxError(`Unexpected token ${current.value.slice(0, 1)}`)\n Object.assign(error, current.loc.start)\n\n throw error\n}\n\nconst unexpected_end = () => {\n const error = new SyntaxError('Unexpected end of JSON input')\n Object.assign(error, last\n ? last.loc.end\n // Empty string\n : {\n line: 1,\n column: 0\n })\n\n throw error\n}\n\n// Move the reader to the next\nconst next = () => {\n const new_token = tokens[++ index]\n inline = current\n && new_token\n && current.loc.end.line === new_token.loc.start.line\n || false\n\n last = current\n current = new_token\n}\n\nconst type = () => {\n if (!current) {\n unexpected_end()\n }\n\n return current.type === 'Punctuator'\n ? current.value\n : current.type\n}\n\nconst is = t => type() === t\n\nconst expect = a => {\n if (!is(a)) {\n unexpected()\n }\n}\n\nconst set_comments_host = new_host => {\n previous_hosts.push(comments_host)\n comments_host = new_host\n}\n\nconst restore_comments_host = () => {\n comments_host = previous_hosts.pop()\n}\n\nconst assign_after_comments = () => {\n if (!unassigned_comments) {\n return\n }\n\n const after_comments = []\n\n for (const comment of unassigned_comments) {\n // If the comment is inline, then it is an after-comma comment\n if (comment.inline) {\n after_comments.push(comment)\n // Otherwise, all comments are before:<next-prop> comment\n } else {\n break\n }\n }\n\n const {length} = after_comments\n if (!length) {\n return\n }\n\n if (length === unassigned_comments.length) {\n // If unassigned_comments are all consumed\n unassigned_comments = null\n } else {\n unassigned_comments.splice(0, length)\n }\n\n define(comments_host, symbolFor(PREFIX_AFTER), after_comments)\n}\n\nconst assign_comments = prefix => {\n if (!unassigned_comments) {\n return\n }\n\n define(comments_host, symbolFor(prefix), unassigned_comments)\n\n unassigned_comments = null\n}\n\nconst parse_comments = prefix => {\n const comments = []\n\n while (\n current\n && (\n is('LineComment')\n || is('BlockComment')\n )\n ) {\n const comment = {\n ...current,\n inline\n }\n\n // delete comment.loc\n comments.push(comment)\n\n next()\n }\n\n if (remove_comments) {\n return\n }\n\n if (!comments.length) {\n return\n }\n\n if (prefix) {\n define(comments_host, symbolFor(prefix), comments)\n return\n }\n\n unassigned_comments = comments\n}\n\nconst set_prop = (prop, push) => {\n if (push) {\n previous_props.push(last_prop)\n }\n\n last_prop = prop\n}\n\nconst restore_prop = () => {\n last_prop = previous_props.pop()\n}\n\nconst parse_object = () => {\n const obj = {}\n set_comments_host(obj)\n set_prop(UNDEFINED, true)\n\n let started = false\n let name\n\n parse_comments()\n\n while (!is(CURLY_BRACKET_CLOSE)) {\n if (started) {\n assign_comments(PREFIX_AFTER_VALUE)\n\n // key-value pair delimiter\n expect(COMMA)\n next()\n parse_comments()\n\n assign_after_comments()\n\n // If there is a trailing comma, we might reach the end\n // ```\n // {\n // \"a\": 1,\n // }\n // ```\n if (is(CURLY_BRACKET_CLOSE)) {\n break\n }\n }\n\n started = true\n expect('String')\n name = JSON.parse(current.value)\n\n set_prop(name)\n assign_comments(PREFIX_BEFORE)\n\n next()\n parse_comments(PREFIX_AFTER_PROP)\n\n expect(COLON)\n\n next()\n parse_comments(PREFIX_AFTER_COLON)\n\n obj[name] = transform(name, walk())\n parse_comments()\n }\n\n if (started) {\n // If there are properties,\n // then the unassigned comments are after comments\n assign_comments(PREFIX_AFTER)\n }\n\n // bypass }\n next()\n last_prop = undefined\n\n if (!started) {\n // Otherwise, they are before comments\n assign_comments(PREFIX_BEFORE)\n }\n\n restore_comments_host()\n restore_prop()\n\n return obj\n}\n\nconst parse_array = () => {\n const array = new CommentArray()\n set_comments_host(array)\n set_prop(UNDEFINED, true)\n\n let started = false\n let i = 0\n\n parse_comments()\n\n while (!is(BRACKET_CLOSE)) {\n if (started) {\n assign_comments(PREFIX_AFTER_VALUE)\n expect(COMMA)\n next()\n parse_comments()\n\n assign_after_comments()\n\n if (is(BRACKET_CLOSE)) {\n break\n }\n }\n\n started = true\n\n set_prop(i)\n assign_comments(PREFIX_BEFORE)\n\n array[i] = transform(i, walk())\n i ++\n\n parse_comments()\n }\n\n if (started) {\n assign_comments(PREFIX_AFTER)\n }\n\n next()\n last_prop = undefined\n\n if (!started) {\n assign_comments(PREFIX_BEFORE)\n }\n\n restore_comments_host()\n restore_prop()\n\n return array\n}\n\nfunction walk () {\n let tt = type()\n\n if (tt === CURLY_BRACKET_OPEN) {\n next()\n return parse_object()\n }\n\n if (tt === BRACKET_OPEN) {\n next()\n return parse_array()\n }\n\n let negative = EMPTY\n\n // -1\n if (tt === MINUS) {\n next()\n tt = type()\n negative = MINUS\n }\n\n let v\n\n switch (tt) {\n case 'String':\n case 'Boolean':\n case 'Null':\n case 'Numeric':\n v = current.value\n next()\n return JSON.parse(negative + v)\n default:\n }\n}\n\nconst isObject = subject => Object(subject) === subject\n\nconst parse = (code, rev, no_comments) => {\n // Clean variables in closure\n clean()\n\n tokens = tokenize(code)\n reviver = rev\n remove_comments = no_comments\n\n if (!tokens.length) {\n unexpected_end()\n }\n\n index = - 1\n next()\n\n set_comments_host({})\n\n parse_comments(PREFIX_BEFORE_ALL)\n\n let result = walk()\n\n parse_comments(PREFIX_AFTER_ALL)\n\n if (current) {\n unexpected()\n }\n\n if (!no_comments && result !== null) {\n if (!isObject(result)) {\n // 1 -> new Number(1)\n // true -> new Boolean(1)\n // \"foo\" -> new String(\"foo\")\n\n // eslint-disable-next-line no-new-object\n result = new Object(result)\n }\n\n assign_non_prop_comments(result, comments_host)\n }\n\n restore_comments_host()\n\n // reviver\n result = transform('', result)\n\n free()\n\n return result\n}\n\nmodule.exports = {\n parse,\n tokenize\n}\n","/*!\n * repeat-string <https://github.com/jonschlinkert/repeat-string>\n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n'use strict';\n\n/**\n * Results cache\n */\n\nvar res = '';\nvar cache;\n\n/**\n * Expose `repeat`\n */\n\nmodule.exports = repeat;\n\n/**\n * Repeat the given `string` the specified `number`\n * of times.\n *\n * **Example:**\n *\n * ```js\n * var repeat = require('repeat-string');\n * repeat('A', 5);\n * //=> AAAAA\n * ```\n *\n * @param {String} `string` The string to repeat\n * @param {Number} `number` The number of times to repeat the string\n * @return {String} Repeated string\n * @api public\n */\n\nfunction repeat(str, num) {\n if (typeof str !== 'string') {\n throw new TypeError('expected a string');\n }\n\n // cover common, quick use cases\n if (num === 1) return str;\n if (num === 2) return str + str;\n\n var max = str.length * num;\n if (cache !== str || typeof cache === 'undefined') {\n cache = str;\n res = '';\n } else if (res.length >= max) {\n return res.substr(0, max);\n }\n\n while (max > res.length && num > 1) {\n if (num & 1) {\n res += str;\n }\n\n num >>= 1;\n str += str;\n }\n\n res += str;\n res = res.substr(0, max);\n return res;\n}\n","const {\n isArray, isObject, isFunction, isNumber, isString\n} = require('core-util-is')\nconst repeat = require('repeat-string')\n\nconst {\n PREFIX_BEFORE_ALL,\n PREFIX_BEFORE,\n PREFIX_AFTER_PROP,\n PREFIX_AFTER_COLON,\n PREFIX_AFTER_VALUE,\n PREFIX_AFTER,\n PREFIX_AFTER_ALL,\n\n BRACKET_OPEN,\n BRACKET_CLOSE,\n CURLY_BRACKET_OPEN,\n CURLY_BRACKET_CLOSE,\n COLON,\n COMMA,\n EMPTY,\n\n UNDEFINED\n} = require('./common')\n\n// eslint-disable-next-line no-control-regex, no-misleading-character-class\nconst ESCAPABLE = /[\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g\n\n// String constants\nconst SPACE = ' '\nconst LF = '\\n'\nconst STR_NULL = 'null'\n\n// Symbol tags\nconst BEFORE = prop => `${PREFIX_BEFORE}:${prop}`\nconst AFTER_PROP = prop => `${PREFIX_AFTER_PROP}:${prop}`\nconst AFTER_COLON = prop => `${PREFIX_AFTER_COLON}:${prop}`\nconst AFTER_VALUE = prop => `${PREFIX_AFTER_VALUE}:${prop}`\nconst AFTER = prop => `${PREFIX_AFTER}:${prop}`\n\n// table of character substitutions\nconst meta = {\n '\\b': '\\\\b',\n '\\t': '\\\\t',\n '\\n': '\\\\n',\n '\\f': '\\\\f',\n '\\r': '\\\\r',\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\'\n}\n\nconst escape = string => {\n ESCAPABLE.lastIndex = 0\n\n if (!ESCAPABLE.test(string)) {\n return string\n }\n\n return string.replace(ESCAPABLE, a => {\n const c = meta[a]\n return typeof c === 'string'\n ? c\n : a\n })\n}\n\n// Escape no control characters, no quote characters,\n// and no backslash characters,\n// then we can safely slap some quotes around it.\nconst quote = string => `\"${escape(string)}\"`\nconst comment_stringify = (value, line) => line\n ? `//${value}`\n : `/*${value}*/`\n\n// display_block `boolean` whether the\n// WHOLE block of comments is always a block group\nconst process_comments = (host, symbol_tag, deeper_gap, display_block) => {\n const comments = host[Symbol.for(symbol_tag)]\n if (!comments || !comments.length) {\n return EMPTY\n }\n\n let is_line_comment = false\n\n const str = comments.reduce((prev, {\n inline,\n type,\n value\n }) => {\n const delimiter = inline\n ? SPACE\n : LF + deeper_gap\n\n is_line_comment = type === 'LineComment'\n\n return prev + delimiter + comment_stringify(value, is_line_comment)\n }, EMPTY)\n\n\n return display_block\n // line comment should always end with a LF\n || is_line_comment\n ? str + LF + deeper_gap\n : str\n}\n\nlet replacer = null\nlet indent = EMPTY\n\nconst clean = () => {\n replacer = null\n indent = EMPTY\n}\n\nconst join = (one, two, gap) =>\n one\n ? two\n // Symbol.for('before') and Symbol.for('before:prop')\n // might both exist if user mannually add comments to the object\n // and make a mistake.\n // SO, we are not to only trimRight but trim for both sides\n ? one + two.trim() + LF + gap\n : one.trimRight() + LF + gap\n : two\n ? two.trimRight() + LF + gap\n : EMPTY\n\nconst join_content = (inside, value, gap) => {\n const comment = process_comments(value, PREFIX_BEFORE, gap + indent, true)\n\n return join(comment, inside, gap)\n}\n\n// | deeper_gap |\n// | gap | indent |\n// [\n// \"foo\",\n// \"bar\"\n// ]\nconst array_stringify = (value, gap) => {\n const deeper_gap = gap + indent\n\n const {length} = value\n\n // From the item to before close\n let inside = EMPTY\n let after_comma = EMPTY\n\n // Never use Array.prototype.forEach,\n // that we should iterate all items\n for (let i = 0; i < length; i ++) {\n if (i !== 0) {\n inside += COMMA\n }\n\n const before = join(\n after_comma,\n process_comments(value, BEFORE(i), deeper_gap),\n deeper_gap\n )\n\n inside += before || (LF + deeper_gap)\n\n // JSON.stringify([undefined]) => [null]\n inside += stringify(i, value, deeper_gap) || STR_NULL\n\n inside += process_comments(value, AFTER_VALUE(i), deeper_gap)\n\n after_comma = process_comments(value, AFTER(i), deeper_gap)\n }\n\n inside += join(\n after_comma,\n process_comments(value, PREFIX_AFTER, deeper_gap),\n deeper_gap\n )\n\n return BRACKET_OPEN\n + join_content(inside, value, gap)\n + BRACKET_CLOSE\n}\n\n// | deeper_gap |\n// | gap | indent |\n// {\n// \"foo\": 1,\n// \"bar\": 2\n// }\nconst object_stringify = (value, gap) => {\n // Due to a specification blunder in ECMAScript, typeof null is 'object',\n // so watch out for that case.\n if (!value) {\n return 'null'\n }\n\n const deeper_gap = gap + indent\n\n // From the first element to before close\n let inside = EMPTY\n let after_comma = EMPTY\n let first = true\n\n const keys = isArray(replacer)\n ? replacer\n : Object.keys(value)\n\n const iteratee = key => {\n // Stringified value\n const sv = stringify(key, value, deeper_gap)\n\n // If a value is undefined, then the key-value pair should be ignored\n if (sv === UNDEFINED) {\n return\n }\n\n // The treat ment\n if (!first) {\n inside += COMMA\n }\n\n first = false\n\n const before = join(\n after_comma,\n process_comments(value, BEFORE(key), deeper_gap),\n deeper_gap\n )\n\n inside += before || (LF + deeper_gap)\n\n inside += quote(key)\n + process_comments(value, AFTER_PROP(key), deeper_gap)\n + COLON\n + process_comments(value, AFTER_COLON(key), deeper_gap)\n + SPACE\n + sv\n + process_comments(value, AFTER_VALUE(key), deeper_gap)\n\n after_comma = process_comments(value, AFTER(key), deeper_gap)\n }\n\n keys.forEach(iteratee)\n\n // if (after_comma) {\n // inside += COMMA\n // }\n\n inside += join(\n after_comma,\n process_comments(value, PREFIX_AFTER, deeper_gap),\n deeper_gap\n )\n\n return CURLY_BRACKET_OPEN\n + join_content(inside, value, gap)\n + CURLY_BRACKET_CLOSE\n}\n\n// @param {string} key\n// @param {Object} holder\n// @param {function()|Array} replacer\n// @param {string} indent\n// @param {string} gap\nfunction stringify (key, holder, gap) {\n let value = holder[key]\n\n // If the value has a toJSON method, call it to obtain a replacement value.\n if (isObject(value) && isFunction(value.toJSON)) {\n value = value.toJSON(key)\n }\n\n // If we were called with a replacer function, then call the replacer to\n // obtain a replacement value.\n if (isFunction(replacer)) {\n value = replacer.call(holder, key, value)\n }\n\n switch (typeof value) {\n case 'string':\n return quote(value)\n\n case 'number':\n // JSON numbers must be finite. Encode non-finite numbers as null.\n return Number.isFinite(value) ? String(value) : STR_NULL\n\n case 'boolean':\n case 'null':\n\n // If the value is a boolean or null, convert it to a string. Note:\n // typeof null does not produce 'null'. The case is included here in\n // the remote chance that this gets fixed someday.\n return String(value)\n\n // If the type is 'object', we might be dealing with an object or an array or\n // null.\n case 'object':\n return isArray(value)\n ? array_stringify(value, gap)\n : object_stringify(value, gap)\n\n // undefined\n default:\n // JSON.stringify(undefined) === undefined\n // JSON.stringify('foo', () => undefined) === undefined\n }\n}\n\nconst get_indent = space => isString(space)\n // If the space parameter is a string, it will be used as the indent string.\n ? space\n : isNumber(space)\n ? repeat(SPACE, space)\n : EMPTY\n\nconst {toString} = Object.prototype\nconst PRIMITIVE_OBJECT_TYPES = [\n '[object Number]',\n '[object String]',\n '[object Boolean]'\n]\n\nconst is_primitive_object = subject => {\n if (typeof subject !== 'object') {\n return false\n }\n\n const str = toString.call(subject)\n return PRIMITIVE_OBJECT_TYPES.includes(str)\n}\n\n// @param {function()|Array} replacer\n// @param {string|number} space\nmodule.exports = (value, replacer_, space) => {\n // The stringify method takes a value and an optional replacer, and an optional\n // space parameter, and returns a JSON text. The replacer can be a function\n // that can replace values, or an array of strings that will select the keys.\n // A default replacer method can be provided. Use of the space parameter can\n // produce text that is more easily readable.\n\n // If the space parameter is a number, make an indent string containing that\n // many spaces.\n const indent_ = get_indent(space)\n\n if (!indent_) {\n return JSON.stringify(value, replacer_)\n }\n\n // vanilla `JSON.parse` allow invalid replacer\n if (!isFunction(replacer_) && !isArray(replacer_)) {\n replacer_ = null\n }\n\n replacer = replacer_\n indent = indent_\n\n const str = is_primitive_object(value)\n ? JSON.stringify(value)\n : stringify('', {'': value}, EMPTY)\n\n clean()\n\n return isObject(value)\n ? process_comments(value, PREFIX_BEFORE_ALL, EMPTY).trimLeft()\n + str\n + process_comments(value, PREFIX_AFTER_ALL, EMPTY).trimRight()\n : str\n}\n","const {parse, tokenize} = require('./parse')\nconst stringify = require('./stringify')\nconst {CommentArray} = require('./array')\nconst {assign} = require('./common')\n\nmodule.exports = {\n parse,\n stringify,\n tokenize,\n\n CommentArray,\n assign\n}\n","import type { DataModel, Hook } from '@mcschema/core'\nimport { ModelPath, relativePath } from '@mcschema/core'\nimport type { BlockStateRegistry } from '../services'\n\nexport function getOutput(model: DataModel, blockStates: BlockStateRegistry): any {\n\treturn model.schema.hook(transformOutput, new ModelPath(model), model.data, { blockStates })\n}\n\nexport type OutputProps = {\n\tblockStates: BlockStateRegistry,\n}\nexport const transformOutput: Hook<[any, OutputProps], any> = {\n\tbase({}, _, value) {\n\t\treturn value\n\t},\n\n\tchoice({ switchNode }, path, value, props) {\n\t\treturn switchNode.hook(this, path, value, props)\n\t},\n\n\tlist({ children }, path, value, props) {\n\t\tif (!Array.isArray(value)) return value\n\t\tconst res = value.map((obj, index) =>\n\t\t\tchildren.hook(this, path.push(index), obj.node, props)\n\t\t)\n\t\tfor (const a of Object.getOwnPropertySymbols(value)) {\n\t\t\tres[a as any] = value[a as any]\n\t\t}\n\t\treturn res\n\t},\n\n\tmap({ children, config }, path, value, props) {\n\t\tif (value === undefined) return undefined\n\t\tconst blockState = config.validation?.validator === 'block_state_map'? props.blockStates?.[relativePath(path, config.validation.params.id).get()] : null\n\t\tconst res: any = {}\n\t\tObject.keys(value).forEach(f => {\n\t\t\tif (blockState) {\n\t\t\t\tif (!Object.keys(blockState.properties ?? {}).includes(f)) return\n\t\t\t}\n\t\t\tres[f] = children.hook(this, path.push(f), value[f], props)\n\t\t})\n\t\tfor (const a of Object.getOwnPropertySymbols(value)) {\n\t\t\tres[a as any] = value[a]\n\t\t}\n\t\treturn res\n\t},\n\n\tobject({ getActiveFields }, path, value, props) {\n\t\tif (value === undefined || value === null || typeof value !== 'object') {\n\t\t\treturn value\n\t\t}\n\t\tconst res: any = {}\n\t\tconst activeFields = getActiveFields(path)\n\t\tObject.keys(activeFields)\n\t\t\t.filter(k => activeFields[k].enabled(path))\n\t\t\t.forEach(f => {\n\t\t\t\tconst out = activeFields[f].hook(this, path.push(f), value[f], props)\n\t\t\t\tif (out !== undefined && out !== null) {\n\t\t\t\t\tres[f] = out\n\t\t\t\t}\n\t\t\t})\n\t\tfor (const a of Object.getOwnPropertySymbols(value)) {\n\t\t\tres[a as any] = value[a]\n\t\t}\n\t\treturn res\n\t},\n}\n","import { DataModel } from '@mcschema/core'\nimport brace from 'brace'\nimport 'brace/mode/json'\nimport 'brace/mode/yaml'\nimport json from 'comment-json'\nimport yaml from 'js-yaml'\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks'\nimport { Btn, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useModel } from '../../hooks'\nimport { getOutput } from '../../schema/transformOutput'\nimport type { BlockStateRegistry } from '../../services'\nimport { Store } from '../../Store'\nimport { message } from '../../Utils'\n\nconst INDENT: Record<string, number | string | undefined> = {\n\t'2_spaces': 2,\n\t'4_spaces': 4,\n\ttabs: '\\t',\n\tminified: undefined,\n}\n\nconst FORMATS: Record<string, {\n\tparse: (v: string) => any,\n\tstringify: (v: any, indentation: string | number | undefined) => string,\n}> = {\n\tjson: {\n\t\tparse: json.parse,\n\t\tstringify: (v, i) => json.stringify(v, null, i) + '\\n',\n\t},\n\tyaml: {\n\t\tparse: yaml.load,\n\t\tstringify: (v, i) => yaml.dump(v, {\n\t\t\tflowLevel: i === undefined ? 0 : -1,\n\t\t\tindent: typeof i === 'string' ? 4 : i,\n\t\t}),\n\t},\n}\n\ninterface Editor {\n\tgetValue(): string\n\tsetValue(value: string): void\n\tconfigure(indent: string, format: string): void\n\tselect(): void\n}\n\ntype SourcePanelProps = {\n\tname: string,\n\tmodel: DataModel | null,\n\tblockStates: BlockStateRegistry | null,\n\tdoCopy?: number,\n\tdoDownload?: number,\n\tdoImport?: number,\n\tcopySuccess: () => unknown,\n\tonError: (message: string | Error) => unknown,\n}\nexport function SourcePanel({ name, model, blockStates, doCopy, doDownload, doImport, copySuccess, onError }: SourcePanelProps) {\n\tconst { locale } = useLocale()\n\tconst [indent, setIndent] = useState(Store.getIndent())\n\tconst [format, setFormat] = useState(Store.getFormat())\n\tconst [highlighting, setHighlighting] = useState(Store.getHighlighting())\n\tconst download = useRef<HTMLAnchorElement>(null)\n\tconst retransform = useRef<Function>()\n\tconst onImport = useRef<(e: any) => any>()\n\n\tconst textarea = useRef<HTMLTextAreaElement>()\n\tconst editor = useRef<Editor>()\n\n\tconst getSerializedOutput = useCallback((model: DataModel, blockStates: BlockStateRegistry) => {\n\t\tconst data = getOutput(model, blockStates)\n\t\treturn FORMATS[format].stringify(data, INDENT[indent])\n\t}, [indent, format])\n\n\tuseEffect(() => {\n\t\tretransform.current = () => {\n\t\t\tif (!model || !blockStates) return\n\t\t\ttry {\n\t\t\t\tconst output = getSerializedOutput(model, blockStates)\n\t\t\t\teditor.current.setValue(output)\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof Error) {\n\t\t\t\t\te.message = `Error getting JSON output: ${e.message}`\n\t\t\t\t\tonError(e)\n\t\t\t\t} else {\n\t\t\t\t\tonError(`Error getting JSON output: ${message(e)}`)\n\t\t\t\t}\n\t\t\t\tconsole.error(e)\n\t\t\t\teditor.current.setValue('')\n\t\t\t}\n\t\t}\n\n\t\tonImport.current = () => {\n\t\t\tconst value = editor.current.getValue()\n\t\t\tif (value.length === 0) return\n\t\t\ttry {\n\t\t\t\tconst data = FORMATS[format].parse(value)\n\t\t\t\tmodel?.reset(DataModel.wrapLists(data), false)\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof Error) {\n\t\t\t\t\te.message = `Error importing: ${e.message}`\n\t\t\t\t\tonError(e)\n\t\t\t\t} else {\n\t\t\t\t\tonError(`Error importing: ${message(e)}`)\n\t\t\t\t}\n\t\t\t\tconsole.error(e)\n\t\t\t}\n\t\t}\n\t}, [model, blockStates, indent, format, highlighting])\n\n\tuseEffect(() => {\n\t\tif (highlighting) {\n\t\t\tconst braceEditor = brace.edit('editor')\n\t\t\tbraceEditor.setOptions({\n\t\t\t\tfontSize: 14,\n\t\t\t\tshowFoldWidgets: false,\n\t\t\t\thighlightSelectedWord: false,\n\t\t\t})\n\t\t\tbraceEditor.$blockScrolling = Infinity\n\t\t\tbraceEditor.on('blur', e => onImport.current(e))\n\t\t\tbraceEditor.getSession().setMode('ace/mode/json')\n\n\t\t\teditor.current = {\n\t\t\t\tgetValue() {\n\t\t\t\t\treturn braceEditor.getSession().getValue()\n\t\t\t\t},\n\t\t\t\tsetValue(value) {\n\t\t\t\t\tbraceEditor.getSession().setValue(value)\n\t\t\t\t},\n\t\t\t\tconfigure(indent, format) {\n\t\t\t\t\tbraceEditor.setOption('useSoftTabs', indent !== 'tabs')\n\t\t\t\t\tbraceEditor.setOption('tabSize', indent === 'tabs' ? 4 : INDENT[indent])\n\t\t\t\t\tbraceEditor.getSession().setMode(`ace/mode/${format}`)\n\t\t\t\t},\n\t\t\t\tselect() {\n\t\t\t\t\tbraceEditor.selectAll()\n\t\t\t\t},\n\t\t\t}\n\t\t} else {\n\t\t\teditor.current = {\n\t\t\t\tgetValue() {\n\t\t\t\t\treturn textarea.current.value\n\t\t\t\t},\n\t\t\t\tsetValue(value: string) {\n\t\t\t\t\ttextarea.current.value = value\n\t\t\t\t},\n\t\t\t\tconfigure() {},\n\t\t\t\tselect() {},\n\t\t\t}\n\t\t}\n\t}, [highlighting])\n\n\tuseModel(model, () => {\n\t\tretransform.current()\n\t})\n\tuseEffect(() => {\n\t\tif (model) retransform.current()\n\t}, [model])\n\n\tuseEffect(() => {\n\t\teditor.current.configure(indent, format)\n\t\tretransform.current()\n\t}, [indent, format, highlighting])\n\n\tuseEffect(() => {\n\t\tif (doCopy && model && blockStates) {\n\t\t\tnavigator.clipboard.writeText(getSerializedOutput(model, blockStates)).then(() => {\n\t\t\t\tcopySuccess()\n\t\t\t})\n\t\t}\n\t}, [doCopy])\n\n\tuseEffect(() => {\n\t\tif (doDownload && model && blockStates && download.current) {\n\t\t\tconst content = encodeURIComponent(getSerializedOutput(model, blockStates))\n\t\t\tdownload.current.setAttribute('href', `data:text/json;charset=utf-8,${content}`)\n\t\t\tdownload.current.setAttribute('download', `${name}.${format}`)\n\t\t\tdownload.current.click()\n\t\t}\n\t}, [doDownload])\n\n\tuseEffect(() => {\n\t\tif (doImport && editor.current) {\n\t\t\teditor.current.setValue('')\n\t\t\teditor.current.select()\n\t\t}\n\t}, [doImport])\n\n\tconst changeIndent = (value: string) => {\n\t\tStore.setIndent(value)\n\t\tsetIndent(value)\n\t}\n\n\tconst changeFormat = (value: string) => {\n\t\tStore.setFormat(value)\n\t\tsetFormat(value)\n\t}\n\n\tconst changeHighlighting = (value: boolean) => {\n\t\tStore.setHighlighting(value)\n\t\tsetHighlighting(value)\n\t}\n\n\treturn <> \n\t\t<div class=\"controls source-controls\">\n\t\t\t<BtnMenu icon=\"gear\" tooltip={locale('output_settings')} data-cy=\"source-controls\">\n\t\t\t\t{Object.entries(INDENT).map(([key]) =>\n\t\t\t\t\t<Btn label={locale(`indentation.${key}`)} active={indent === key}\n\t\t\t\t\t\tonClick={() => changeIndent(key)}/>\n\t\t\t\t)}\n\t\t\t\t<hr />\n\t\t\t\t{Object.keys(FORMATS).map(key =>\n\t\t\t\t\t<Btn label={locale(`format.${key}`)} active={format === key}\n\t\t\t\t\t\tonClick={() => changeFormat(key)} />)}\n\t\t\t\t<hr />\n\t\t\t\t<Btn icon={highlighting ? 'square_fill' : 'square'} label={locale('highlighting')}\n\t\t\t\t\tonClick={() => changeHighlighting(!highlighting)} />\n\t\t\t</BtnMenu>\n\t\t</div>\n\t\t{highlighting\n\t\t\t? <pre id=\"editor\" class=\"source\"></pre>\n\t\t\t: <textarea ref={textarea} class=\"source\" spellcheck={false} autocorrect=\"off\" onBlur={onImport.current}></textarea>}\n\t\t<a ref={download} style=\"display: none;\"></a>\n\t</>\n}\n","import{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]<e[0])break;n.u=e=e[2]}};function T(n){return this.getChildContext=function(){return n.context},n.children}function j(n){var t=this,e=n.i;t.componentWillUnmount=function(){d(null,t.l),t.l=null,t.i=null},t.i&&t.i!==e&&t.componentWillUnmount(),n.__v?(t.l||(t.i=e,t.l={nodeType:1,parentNode:e,childNodes:[],appendChild:function(n){this.childNodes.push(n),t.i.appendChild(n)},insertBefore:function(n,e){this.childNodes.push(n),t.i.appendChild(n)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>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","import type { INode, Path } from '@mcschema/core'\nimport { DataModel } from '@mcschema/core'\n\nexport class ModelWrapper extends DataModel {\n\tconstructor(\n\t\tschema: INode<any>,\n\t\tprivate readonly mapper: (path: Path) => Path,\n\t\tprivate readonly getter: (path: Path) => any,\n\t\tprivate readonly setter: (path: Path, value: any, silent?: boolean) => any,\n\t) {\n\t\tsuper(schema)\n\t}\n\n\tmap(path: Path) {\n\t\treturn this.mapper(path)\n\t}\n\n\tget(path: Path) {\n\t\treturn this.getter(path)\n\t}\n\n\tset(path: Path, value: any, silent?: boolean) {\n\t\treturn this.setter(path, value, silent)\n\t}\n}\n","import type { BooleanHookParams, EnumOption, Hook, INode, NodeChildren, NumberHookParams, StringHookParams, ValidationOption } from '@mcschema/core'\nimport { DataModel, ListNode, MapNode, ModelPath, ObjectNode, Path, relativePath, StringNode } from '@mcschema/core'\nimport type { ComponentChildren, JSX } from 'preact'\nimport { memo } from 'preact/compat'\nimport { useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Btn, Octicon } from '../components'\nimport { localize } from '../contexts'\nimport { useFocus } from '../hooks'\nimport type { BlockStateRegistry, VersionId } from '../services'\nimport { CachedDecorator, CachedFeature } from '../services'\nimport { deepClone, deepEqual, hexId, isObject, newSeed } from '../Utils'\nimport { ModelWrapper } from './ModelWrapper'\n\nconst selectRegistries = ['loot_table.type', 'loot_entry.type', 'function.function', 'condition.condition', 'criterion.trigger', 'recipe.type', 'dimension.generator.type', 'dimension.generator.biome_source.type', 'dimension.generator.biome_source.preset', 'carver.type', 'feature.type', 'decorator.type', 'feature.tree.minimum_size.type', 'block_state_provider.type', 'trunk_placer.type', 'foliage_placer.type', 'tree_decorator.type', 'int_provider.type', 'float_provider.type', 'height_provider.type', 'structure_feature.type', 'surface_builder.type', 'processor.processor_type', 'rule_test.predicate_type', 'pos_rule_test.predicate_type', 'template_element.element_type', 'block_placer.type', 'block_predicate.type', 'material_rule.type', 'material_condition.type', 'structure_placement.type', 'density_function.type', 'root_placer.type', 'entity.type_specific.cat.variant', 'entity.type_specific.frog.variant']\nconst hiddenFields = ['number_provider.type', 'score_provider.type', 'nbt_provider.type', 'int_provider.type', 'float_provider.type', 'height_provider.type']\nconst flattenedFields = ['feature.config', 'decorator.config', 'int_provider.value', 'float_provider.value', 'block_state_provider.simple_state_provider.state', 'block_state_provider.rotated_block_provider.state', 'block_state_provider.weighted_state_provider.entries.entry.data', 'rule_test.block_state', 'structure_feature.config', 'surface_builder.config', 'template_pool.elements.entry.element', 'decorator.block_survives_filter.state', 'material_rule.block.result_state']\nconst inlineFields = ['loot_entry.type', 'function.function', 'condition.condition', 'criterion.trigger', 'dimension.generator.type', 'dimension.generator.biome_source.type', 'feature.type', 'decorator.type', 'block_state_provider.type', 'feature.tree.minimum_size.type', 'trunk_placer.type', 'foliage_placer.type', 'tree_decorator.type', 'block_placer.type', 'rule_test.predicate_type', 'processor.processor_type', 'template_element.element_type', 'nbt_operation.op', 'number_provider.value', 'score_provider.name', 'score_provider.target', 'nbt_provider.source', 'nbt_provider.target', 'generator_biome.biome', 'block_predicate.type', 'material_rule.type', 'material_condition.type', 'density_function.type', 'root_placer.type', 'entity.type_specific.type']\nconst nbtFields = ['function.set_nbt.tag', 'advancement.display.icon.nbt', 'text_component_object.nbt', 'entity.nbt', 'block.nbt', 'item.nbt']\nconst fixedLists = ['generator_biome.parameters.temperature', 'generator_biome.parameters.humidity', 'generator_biome.parameters.continentalness', 'generator_biome.parameters.erosion', 'generator_biome.parameters.depth', 'generator_biome.parameters.weirdness', 'feature.end_spike.crystal_beam_target', 'feature.end_gateway.exit', 'decorator.block_filter.offset', 'block_predicate.matching_blocks.offset', 'block_predicate.matching_fluids.offset', 'model_element.from', 'model_element.to', 'model_element.rotation.origin', 'model_element.faces.uv', 'item_transform.rotation', 'item_transform.translation', 'item_transform.scale', 'generator_structure.random_spread.locate_offset']\nconst collapsedFields = ['noise_settings.surface_rule', 'noise_settings.noise.terrain_shaper']\nconst collapsableFields = ['density_function.argument', 'density_function.argument1', 'density_function.argument2', 'density_function.input', 'density_function.when_in_range', 'density_function.when_out_of_range']\n\nconst findGenerator = (id: string) => {\n\treturn config.generators.find(g => g.id === id.replace(/^\\$/, ''))\n}\n\n/**\n * Secondary model used to remember the keys of a map\n */\nconst keysModel = new DataModel(MapNode(\n\tStringNode(),\n\tStringNode()\n), { historyMax: 0 })\n\ntype JSXTriple = [JSX.Element | null, JSX.Element | null, JSX.Element | null]\ntype RenderHook = Hook<[any, string, VersionId, BlockStateRegistry, Record<string, any>], JSXTriple>\n\ntype NodeProps<T> = T & {\n\tnode: INode<any>,\n\tpath: ModelPath,\n\tvalue: any,\n\tlang: string,\n\tversion: VersionId,\n\tstates: BlockStateRegistry,\n\tctx: Record<string, any>,\n}\n\nexport function FullNode({ model, lang, version, blockStates }: { model: DataModel, lang: string, version: VersionId, blockStates: BlockStateRegistry }) {\n\tconst path = new ModelPath(model)\n\tconst [prefix, suffix, body] = model.schema.hook(renderHtml, path, deepClone(model.data), lang, version, blockStates, {})\n\treturn suffix?.props?.children.some((c: any) => c) ? <div class={`node ${model.schema.type(path)}-node`} data-category={model.schema.category(path)}>\n\t\t<div class=\"node-header\">{prefix}{suffix}</div>\n\t\t<div class=\"node-body\">{body}</div>\n\t</div> : body\n}\n\nconst renderHtml: RenderHook = {\n\tbase() {\n\t\treturn [null, null, null]\n\t},\n\n\tboolean(params, path, value, lang, version, states, ctx) {\n\t\treturn [null, <BooleanSuffix {...{...params, path, value, lang, version, states, ctx}} />, null]\n\t},\n\n\tchoice({ choices, config, switchNode }, path, value, lang, version, states, ctx) {\n\t\tconst choice = switchNode.activeCase(path, true) as typeof choices[number]\n\t\tconst contextPath = (config?.context) ? new ModelPath(path.getModel(), new Path(path.getArray(), [config.context])) : path\n\t\tconst [prefix, suffix, body] = choice.node.hook(this, contextPath, value, lang, version, states, ctx)\n\t\tif (choices.length === 1) {\n\t\t\treturn [prefix, suffix, body]\n\t\t}\n\t\tconst choiceContextPath = config?.choiceContext ? new Path([], [config.choiceContext]) : config?.context ? new Path([], [config.context]) : path\n\t\tconst set = (type: string) => {\n\t\t\tconst c = choices.find(c => c.type === type) ?? choice\n\t\t\tconst def = c.node.default()\n\t\t\tconst newValue = c.change\n\t\t\t\t? c.change(DataModel.unwrapLists(value))\n\t\t\t\t: config.choiceContext === 'feature' && def?.type === 'minecraft:decorated' ? def.config.feature : def\n\t\t\tpath.model.set(path, DataModel.wrapLists(newValue))\n\t\t}\n\t\tconst inject = <select value={choice.type} onChange={(e) => set((e.target as HTMLSelectElement).value)}>\n\t\t\t{choices.map(c => <option value={c.type}>\n\t\t\t\t{pathLocale(lang, choiceContextPath.contextPush(c.type))}\n\t\t\t</option>)}\n\t\t</select>\n\t\treturn [prefix, <>{inject}{suffix}</>, body]\n\t},\n\n\tlist({ children, config }, path, value, lang, version, states, ctx) {\n\t\tconst { expand, collapse, isToggled } = useToggles()\n\t\tconst [maxShown, setMaxShown] = useState(50)\n\n\t\tconst context = path.getContext().join('.')\n\t\tif (fixedLists.includes(context)) {\n\t\t\tconst prefix = <>\n\t\t\t\t{[...Array(config.maxLength!)].map((_, i) =>\n\t\t\t\t\t<ErrorPopup lang={lang} path={path.modelPush(i)} />)}\n\t\t\t\t<div class=\"fixed-list\"></div>\n\t\t\t</>\n\t\t\tconst suffix = <>{[...Array(config.maxLength)].map((_, i) => {\n\t\t\t\tconst child = children.hook(this, path.modelPush(i), value?.[i]?.node, lang, version, states, ctx)\n\t\t\t\treturn child[1]\n\t\t\t})}</>\n\t\t\treturn [prefix, suffix, null]\n\t\t}\n\n\t\tconst onAdd = () => {\n\t\t\tif (!Array.isArray(value)) value = []\n\t\t\tconst node = DataModel.wrapLists(children.default())\n\t\t\tpath.model.set(path, [{ node, id: hexId() }, ...value])\n\t\t}\n\t\tconst onAddBottom = () => {\n\t\t\tif (!Array.isArray(value)) value = []\n\t\t\tconst node = DataModel.wrapLists(children.default())\n\t\t\tpath.model.set(path, [...value, { node, id: hexId() }])\n\t\t}\n\t\tconst suffix = <button class=\"add tooltipped tip-se\" aria-label={localize(lang, 'add_top')} onClick={onAdd}>{Octicon.plus_circle}</button>\n\t\tconst body = <>\n\t\t\t{(value && Array.isArray(value)) && value.map(({ node: cValue, id: cId }, index) => {\n\t\t\t\tif (index === maxShown) {\n\t\t\t\t\treturn <div class=\"node node-header\">\n\t\t\t\t\t\t<label>{localize(lang, 'entries_hidden', `${value.length - maxShown}`)}</label>\n\t\t\t\t\t\t<button onClick={() => setMaxShown(Math.min(maxShown + 50, value.length))}>{localize(lang, 'entries_hidden.more', '50')}</button>\n\t\t\t\t\t\t<button onClick={() => setMaxShown(value.length)}>{localize(lang, 'entries_hidden.all')}</button>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\tif (index > maxShown) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\n\t\t\t\tconst cPath = path.push(index).contextPush('entry')\n\t\t\t\tconst canToggle = children.type(cPath) === 'object'\n\t\t\t\tconst toggle = isToggled(cId)\n\t\t\t\tif (canToggle && (toggle === false || (toggle === undefined && value.length > 20))) {\n\t\t\t\t\treturn <div class=\"node node-header\" data-category={children.category(cPath)}>\n\t\t\t\t\t\t<ErrorPopup lang={lang} path={cPath} nested />\n\t\t\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'expand')}\\n${localize(lang, 'expand_all', 'Ctrl')}`} onClick={expand(cId)}>{Octicon.chevron_right}</button>\n\t\t\t\t\t\t<label>{pathLocale(lang, cPath, `${index}`)}</label>\n\t\t\t\t\t\t<Collapsed key={cId} path={cPath} value={cValue} schema={children} />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\n\t\t\t\tconst onRemove = () => cPath.set(undefined)\n\t\t\t\tconst onMoveUp = () => {\n\t\t\t\t\tconst v = [...path.get()];\n\t\t\t\t\t[v[index - 1], v[index]] = [v[index], v[index - 1]]\n\t\t\t\t\tpath.model.set(path, v)\n\t\t\t\t}\n\t\t\t\tconst onMoveDown = () => {\n\t\t\t\t\tconst v = [...path.get()];\n\t\t\t\t\t[v[index + 1], v[index]] = [v[index], v[index + 1]]\n\t\t\t\t\tpath.model.set(path, v)\n\t\t\t\t}\n\t\t\t\tconst actions: MenuAction[] = [\n\t\t\t\t\t{\n\t\t\t\t\t\ticon: 'duplicate',\n\t\t\t\t\t\tlabel: 'duplicate',\n\t\t\t\t\t\tonSelect: () => {\n\t\t\t\t\t\t\tconst v = [...path.get()]\n\t\t\t\t\t\t\tv.splice(index, 0, { id: hexId(), node: deepClone(cValue) })\n\t\t\t\t\t\t\tpath.model.set(path, v)\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t]\n\t\t\t\treturn <MemoedTreeNode key={cId} path={cPath} schema={children} value={cValue} {...{lang, version, states, actions}} ctx={{...ctx, index: (index === 0 ? 1 : 0) + (index === value.length - 1 ? 2 : 0)}}>\n\t\t\t\t\t{canToggle && <button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'collapse')}\\n${localize(lang, 'collapse_all', 'Ctrl')}`} onClick={collapse(cId)}>{Octicon.chevron_down}</button>}\n\t\t\t\t\t<button class=\"remove tooltipped tip-se\" aria-label={localize(lang, 'remove')} onClick={onRemove}>{Octicon.trashcan}</button>\n\t\t\t\t\t{value.length > 1 && <div class=\"node-move\">\n\t\t\t\t\t\t<button class=\"move tooltipped tip-se\" aria-label={localize(lang, 'move_up')} onClick={onMoveUp} disabled={index === 0}>{Octicon.chevron_up}</button>\n\t\t\t\t\t\t<button class=\"move tooltipped tip-se\" aria-label={localize(lang, 'move_down')} onClick={onMoveDown} disabled={index === value.length - 1}>{Octicon.chevron_down}</button>\n\t\t\t\t\t</div>}\n\t\t\t\t</MemoedTreeNode>\n\t\t\t})}\n\t\t\t{(value && value.length > 0 && value.length <= maxShown) && <div class=\"node node-header\">\n\t\t\t\t<button class=\"add tooltipped tip-se\" aria-label={localize(lang, 'add_bottom')} onClick={onAddBottom}>{Octicon.plus_circle}</button>\n\t\t\t</div>}\n\t\t</>\n\t\treturn [null, suffix, body]\n\t},\n\n\tmap({ children, keys, config }, path, value, lang, version, states, ctx) {\n\t\tconst { expand, collapse, isToggled } = useToggles()\n\n\t\tconst keyPath = new ModelPath(keysModel, new Path([hashString(path.toString())]))\n\t\tconst onAdd = () => {\n\t\t\tconst key = keyPath.get()\n\t\t\tpath.model.set(path.push(key), DataModel.wrapLists(children.default()))\n\t\t}\n\t\tconst blockState = config.validation?.validator === 'block_state_map' ? states?.[relativePath(path, config.validation.params.id).get()] : null\n\t\tconst keysSchema = blockState?.properties\n\t\t\t? StringNode(null!, { enum: Object.keys(blockState.properties ?? {}) })\n\t\t\t: keys\n\t\tif (blockState && path.last() === 'Properties') {\n\t\t\tif (typeof value !== 'object') value = {}\n\t\t\tconst properties = Object.entries(blockState.properties ?? {})\n\t\t\t\t.map(([key, values]) => [key, StringNode(null!, { enum: values })])\n\t\t\tObject.entries(blockState.properties ?? {}).forEach(([key, values]) => {\n\t\t\t\tif (typeof value[key] !== 'string') {\n\t\t\t\t\tpath.model.errors.add(path.push(key), 'error.expected_string')\n\t\t\t\t} else if (!values.includes(value[key])) {\n\t\t\t\t\tpath.model.errors.add(path.push(key), 'error.invalid_enum_option', value[key])\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn ObjectNode(Object.fromEntries(properties)).hook(this, path, value, lang, version, states, ctx)\n\t\t}\n\t\tconst suffix = <>\n\t\t\t{keysSchema.hook(this, keyPath, keyPath.get() ?? '', lang, version, states, ctx)[1]}\n\t\t\t<button class=\"add tooltipped tip-se\" aria-label={localize(lang, 'add')} onClick={onAdd}>{Octicon.plus_circle}</button>\n\t\t</>\n\t\tconst body = <>\n\t\t\t{typeof value === 'object' && Object.entries(value).map(([key, cValue]) => {\n\n\t\t\t\tconst cPath = path.modelPush(key)\n\t\t\t\tconst canToggle = children.type(cPath) === 'object'\n\t\t\t\tconst toggle = isToggled(key)\n\t\t\t\tif (canToggle && (toggle === false || (toggle === undefined && value.length > 20))) {\n\t\t\t\t\treturn <div class=\"node node-header\" data-category={children.category(cPath)}>\n\t\t\t\t\t\t<ErrorPopup lang={lang} path={cPath} nested />\n\t\t\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'expand')}\\n${localize(lang, 'expand_all', 'Ctrl')}`} onClick={expand(key)}>{Octicon.chevron_right}</button>\n\t\t\t\t\t\t<label>{key}</label>\n\t\t\t\t\t\t<Collapsed key={key} path={cPath} value={cValue} schema={children} />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\tconst cSchema = blockState\n\t\t\t\t\t? StringNode(null!, { enum: blockState.properties?.[key] ?? [] })\n\t\t\t\t\t: children\n\t\t\t\tif (blockState?.properties?.[key] && typeof cValue === 'string'\n\t\t\t\t\t&& !blockState.properties?.[key].includes(cValue)) {\n\t\t\t\t\tpath.model.errors.add(cPath, 'error.invalid_enum_option', cValue)\n\t\t\t\t}\n\t\t\t\tconst onRemove = () => cPath.set(undefined)\n\t\t\t\treturn <MemoedTreeNode key={key} schema={cSchema} path={cPath} value={cValue} {...{lang, version, states, ctx}} label={key}>\n\t\t\t\t\t{canToggle && <button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'collapse')}\\n${localize(lang, 'collapse_all', 'Ctrl')}`} onClick={collapse(key)}>{Octicon.chevron_down}</button>}\n\t\t\t\t\t<button class=\"remove tooltipped tip-se\" aria-label={localize(lang, 'remove')} onClick={onRemove}>{Octicon.trashcan}</button>\n\t\t\t\t</MemoedTreeNode>\n\t\t\t})}\n\t\t</>\n\t\treturn [null, suffix, body]\n\t},\n\n\tnumber(params, path, value, lang, version, states, ctx) {\n\t\treturn [null, <NumberSuffix {...{...params, path, value, lang, version, states, ctx}} />, null]\n\t},\n\n\tobject({ node, config, getActiveFields, getChildModelPath }, path, value, lang, version, states, ctx) {\n\t\tconst { expand, collapse, isToggled } = useToggles()\n\n\t\tif (path.getArray().length == 0 && isDecorated(config.context, value)) {\n\t\t\tconst { wrapper, fields } = createDecoratorsWrapper(getActiveFields(path), path, value)\n\t\t\tvalue = wrapper.data\n\t\t\tgetActiveFields = () => fields\n\t\t\tgetChildModelPath = (path, key) => new ModelPath(wrapper, new Path(path.getArray(), ['feature'])).push(key)\n\t\t}\n\n\t\tlet prefix: JSX.Element | null = null\n\t\tlet suffix: JSX.Element | null = null\n\t\tif (node.optional()) {\n\t\t\tif (value === undefined) {\n\t\t\t\tconst onExpand = () => path.set(DataModel.wrapLists(node.default()))\n\t\t\t\tsuffix = <button class=\"collapse closed tooltipped tip-se\" aria-label={localize(lang, 'expand')} onClick={onExpand}>{Octicon.plus_circle}</button>\n\t\t\t} else {\n\t\t\t\tconst onCollapse = () => path.set(undefined)\n\t\t\t\tsuffix = <button class=\"collapse open tooltipped tip-se\" aria-label={localize(lang, 'remove')} onClick={onCollapse}>{Octicon.trashcan}</button>\n\t\t\t}\n\t\t}\n\t\tconst context = path.getContext().join('.')\n\t\tif (collapsableFields.includes(context) || collapsedFields.includes(context)) {\n\t\t\tconst toggled = isToggled('')\n\t\t\tconst expanded = collapsedFields.includes(context) ? toggled : !toggled\n\t\t\tprefix = <>\n\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={localize(lang, expanded ? 'collapse' : 'expand')} onClick={toggled ? collapse('') : expand('')}>{expanded ? Octicon.chevron_down : Octicon.chevron_right}</button>\n\t\t\t</>\n\t\t\tif (!expanded) {\n\t\t\t\treturn [prefix, suffix, null]\n\t\t\t}\n\t\t}\n\n\t\tconst newCtx = (typeof value === 'object' && value !== null && node.default()?.pools)\n\t\t\t? { ...ctx, loot: value?.type } : ctx\n\t\tconst body = <>\n\t\t\t{(typeof value === 'object' && value !== null && !(node.optional() && value === undefined)) &&\n\t\t\t\tObject.entries(getActiveFields(path))\n\t\t\t\t\t.filter(([_, child]) => child.enabled(path))\n\t\t\t\t\t.map(([key, child]) => {\n\t\t\t\t\t\tconst cPath = getChildModelPath(path, key)\n\t\t\t\t\t\tconst context = cPath.getContext().join('.')\n\t\t\t\t\t\tif (hiddenFields.includes(context)) return null\n\t\t\t\t\t\tconst [cPrefix, cSuffix, cBody] = child.hook(this, cPath, value[key], lang, version, states, newCtx)\n\t\t\t\t\t\tconst isFlattened = child.type(cPath) === 'object' && flattenedFields.includes(context)\n\t\t\t\t\t\tconst isInlined = inlineFields.includes(context)\n\t\t\t\t\t\tif (isFlattened || isInlined) {\n\t\t\t\t\t\t\tprefix = <>{prefix}<ErrorPopup lang={lang} path={cPath} /><HelpPopup lang={lang} path={cPath} />{cPrefix}</>\n\t\t\t\t\t\t\tsuffix = <>{suffix}{cSuffix}</>\n\t\t\t\t\t\t\treturn isFlattened ? cBody : null\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn <MemoedTreeNode key={key} schema={child} path={cPath} value={value[key]} {...{lang, version, states, ctx: newCtx}} />\n\t\t\t\t\t})\n\t\t\t}\n\t\t</>\n\t\treturn [prefix, suffix, body]\n\t},\n\n\tstring(params, path, value, lang, version, states, ctx) {\n\t\treturn [null, <StringSuffix {...{...params, path, value, lang, version, states, ctx}} />, null]\n\t},\n}\n\nfunction Collapsed({ path, value }: { path: ModelPath, value: any, schema: INode<any> }) {\n\tconst context = path.getContext().join('.')\n\tswitch (context) {\n\t\tcase 'loot_table.pools.entry':\n\t\t\treturn <label>{value?.entries?.length ?? 0} entries</label>\n\t\tcase 'function.set_contents.entries.entry':\n\t\tcase 'loot_pool.entries.entry':\n\t\t\treturn <label>{value?.name?.replace(/^minecraft:/, '') ?? value?.type?.replace(/^minecraft:/, '')}</label>\n\t}\n\tfor (const child of Object.values(value ?? {})) {\n\t\tif (typeof child === 'string') {\n\t\t\treturn <label>{child.replace(/^minecraft:/, '')}</label>\n\t\t}\n\t}\n\treturn null\n}\n\nfunction useToggles() {\n\tconst [toggleState, setToggleState] = useState(new Map<string, boolean>())\n\tconst [toggleAll, setToggleAll] = useState<boolean | undefined>(undefined)\n\n\tconst expand = (key: string) => (evt: MouseEvent) => {\n\t\tif (evt.ctrlKey) {\n\t\t\tsetToggleState(new Map())\n\t\t\tsetToggleAll(true)\n\t\t} else {\n\t\t\tsetToggleState(state => new Map(state.set(key, true)))\n\t\t}\n\t}\n\tconst collapse = (key: string) => (evt: MouseEvent) => {\n\t\tif (evt.ctrlKey) {\n\t\t\tsetToggleState(new Map())\n\t\t\tsetToggleAll(false)\n\t\t} else {\n\t\t\tsetToggleState(state => new Map(state.set(key, false)))\n\t\t}\n\t}\n\t\n\tconst isToggled = (key: string) => {\n\t\tif (!(toggleState instanceof Map)) return false\n\t\treturn toggleState.get(key) ?? toggleAll\n\t}\n\n\treturn { expand, collapse, isToggled }\n}\n\nfunction BooleanSuffix({ path, node, value, lang }: NodeProps<BooleanHookParams>) {\n\tconst set = (target: boolean) => {\n\t\tpath.model.set(path, node.optional() && value === target ? undefined : target)\n\t}\n\treturn <>\n\t\t<button class={value === false ? 'selected' : ''} onClick={() => set(false)}>{localize(lang, 'false')}</button>\n\t\t<button class={value === true ? 'selected' : ''} onClick={() => set(true)}>{localize(lang, 'true')}</button>\n\t</>\n}\n\nfunction NumberSuffix({ path, config, integer, value, lang }: NodeProps<NumberHookParams>) {\n\tconst onChange = (evt: Event) => {\n\t\tconst value = (evt.target as HTMLInputElement).value\n\t\tconst parsed = integer ? parseInt(value) : parseFloat(value)\n\t\tpath.model.set(path, parsed)\n\t}\n\tconst onColor = (evt: Event) => {\n\t\tconst value = (evt.target as HTMLInputElement).value\n\t\tconst parsed = parseInt(value.slice(1), 16)\n\t\tpath.model.set(path, parsed)\n\t}\n\treturn <>\n\t\t<input type=\"text\" value={value ?? ''} onBlur={onChange} onKeyDown={evt => {if (evt.key === 'Enter') onChange(evt)}} />\n\t\t{config?.color && <input type=\"color\" value={'#' + (value?.toString(16).padStart(6, '0') ?? '000000')} onChange={onColor} />}\n\t\t{['dimension.generator.seed', 'dimension.generator.biome_source.seed', 'world_settings.seed', 'structure_placement.salt'].includes(path.getContext().join('.')) && <button onClick={() => newSeed(path.model)} class=\"tooltipped tip-se\" aria-label={localize(lang, 'generate_new_seed')}>{Octicon.sync}</button>}\n\t</>\n}\n\nfunction StringSuffix({ path, getValues, config, node, value, lang, version, states }: NodeProps<StringHookParams>) {\n\tconst onChange = (evt: Event) => {\n\t\tevt.stopPropagation()\n\t\tconst newValue = (evt.target as HTMLSelectElement).value\n\t\tif (newValue === value) return\n\t\tpath.model.set(path, newValue.length === 0 ? undefined : newValue)\n\t}\n\tconst values = getValues()\n\tconst context = path.getContext().join('.')\n\tconst id = !isEnum(config) && config?.validator === 'resource' && typeof config.params.pool === 'string' ? config.params.pool : undefined\n\n\tif (nbtFields.includes(context)) {\n\t\treturn <textarea value={value ?? ''} onBlur={onChange}></textarea>\n\t} else if ((isEnum(config) && !config.additional) || selectRegistries.includes(context)) {\n\t\tlet context = new Path([])\n\t\tif (isEnum(config) && typeof config.enum === 'string') {\n\t\t\tcontext = context.contextPush(config.enum)\n\t\t} else if (id) {\n\t\t\tcontext = context.contextPush(id)\n\t\t} else if (isEnum(config)) {\n\t\t\tcontext = path\n\t\t}\n\t\treturn <select value={value ?? ''} onChange={onChange}>\n\t\t\t{node.optional() && <option value=\"\">{localize(lang, 'unset')}</option>}\n\t\t\t{values.map(v => <option value={v}>\n\t\t\t\t{pathLocale(lang, context.contextPush(v.replace(/^minecraft:/, '')))}\n\t\t\t</option>)}\n\t\t</select>\n\t} else if (!isEnum(config) && config?.validator === 'block_state_key') {\n\t\tconst blockState = states?.[relativePath(path, config.params.id).get()]\n\t\tconst values = Object.keys(blockState?.properties ?? {})\n\t\treturn <select value={value ?? ''} onChange={onChange}>\n\t\t\t{values.map(v => <option>{v}</option>)}\n\t\t</select>\n\t} else {\n\t\tconst datalistId = hexId()\n\t\tconst gen = id ? findGenerator(id) : undefined\n\t\treturn <>\n\t\t\t<input value={value ?? ''} onBlur={onChange} onKeyDown={evt => {if (evt.key === 'Enter') onChange(evt)}}\n\t\t\t\tlist={values.length > 0 ? datalistId : ''} />\n\t\t\t{values.length > 0 && <datalist id={datalistId}>\n\t\t\t\t{values.map(v => <option value={v} />)}\n\t\t\t</datalist>}\n\t\t\t{gen && values.includes(value) && value.startsWith('minecraft:') &&\n\t\t\t\t<a href={`/${gen.url}/?version=${version}&preset=${value.replace(/^minecraft:/, '')}`} class=\"tooltipped tip-se\" aria-label={localize(lang, 'follow_reference')}>{Octicon.link_external}</a>}\n\t\t</>\n\t}\n}\n\ntype MenuAction = {\n\tlabel: string,\n\tdescription?: string,\n\ticon: keyof typeof Octicon,\n\tonSelect: () => unknown,\n}\n\ntype TreeNodeProps = {\n\tschema: INode<any>,\n\tpath: ModelPath,\n\tvalue: any,\n\tlang: string,\n\tversion: VersionId,\n\tstates: BlockStateRegistry,\n\tctx: Record<string, any>,\n\tcompare?: any,\n\tlabel?: string,\n\tactions?: MenuAction[],\n\tchildren?: ComponentChildren,\n}\nfunction TreeNode({ label, schema, path, value, lang, version, states, ctx, actions, children }: TreeNodeProps) {\n\tconst type = schema.type(path)\n\tconst category = schema.category(path)\n\tconst context = path.getContext().join('.')\n\n\tconst [active, setActive] = useFocus()\n\tconst onContextMenu = (evt: MouseEvent) => {\n\t\tevt.preventDefault()\n\t\tsetActive()\n\t}\n\n\tconst newCtx: Record<string, any> = { ...ctx, depth: (ctx.depth ?? 0) + 1 }\n\tdelete newCtx.index\n\tconst [prefix, suffix, body] = schema.hook(renderHtml, path, value, lang, version, states, newCtx)\n\treturn <div class={`node ${type}-node`} data-category={category}>\n\t\t<div class=\"node-header\" onContextMenu={onContextMenu}>\n\t\t\t<ErrorPopup lang={lang} path={path} />\n\t\t\t<HelpPopup lang={lang} path={path} />\n\t\t\t{children}\n\t\t\t{prefix}\n\t\t\t<label>\n\t\t\t\t{label ?? pathLocale(lang, path, `${path.last()}`)}\n\t\t\t\t{active && <div class=\"node-menu\">\n\t\t\t\t\t{actions?.map(a => <div key={a.label} class=\"menu-item\">\n\t\t\t\t\t\t<Btn icon={a.icon} tooltip={localize(lang, a.label)} tooltipLoc=\"se\" onClick={() => a.onSelect()}/>\n\t\t\t\t\t\t<span>{a.description ?? localize(lang, a.label)}</span>\n\t\t\t\t\t</div>)}\n\t\t\t\t\t<div class=\"menu-item\">\n\t\t\t\t\t\t<Btn icon=\"clippy\" tooltip={localize(lang, 'copy_context')} tooltipLoc=\"se\" onClick={() => navigator.clipboard.writeText(context)} />\n\t\t\t\t\t\t<span>{context}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>}\n\t\t\t</label>\n\t\t\t{suffix}\n\t\t</div>\n\t\t{body && <div class=\"node-body\">{body}</div>}\n\t</div>\n}\n\nconst MemoedTreeNode = memo(TreeNode, (prev, next) => {\n\treturn prev.schema === next.schema\n\t\t&& prev.lang === next.lang\n\t\t&& prev.path.equals(next.path)\n\t\t&& deepEqual(prev.ctx, next.ctx)\n\t\t&& deepEqual(prev.value, next.value)\n})\n\nfunction isEnum(value?: ValidationOption | EnumOption): value is EnumOption {\n\treturn !!(value as any)?.enum\n}\n\nfunction hashString(str: string) {\n\tvar hash = 0, i, chr\n\tfor (i = 0; i < str.length; i++) {\n\t\tchr = str.charCodeAt(i)\n\t\thash = ((hash << 5) - hash) + chr\n\t\thash |= 0\n\t}\n\treturn hash\n}\n\nfunction pathLocale(lang: string, path: Path, ...params: string[]) {\n\tconst ctx = path.getContext()\n\tfor (let i = 0; i < ctx.length; i += 1) {\n\t\tconst key = ctx.slice(i).join('.')\n\t\tconst result = localize(lang, key, ...params)\n\t\tif (key !== result) {\n\t\t\treturn result\n\t\t}\n\t}\n\treturn ctx[ctx.length - 1]\n}\n\nfunction ErrorPopup({ lang, path, nested }: { lang: string, path: ModelPath, nested?: boolean }) {\n\tif (path.model instanceof ModelWrapper) {\n\t\tpath = path.model.map(path).withModel(path.model)\n\t}\n\tconst e = nested\n\t\t?\tpath.model.errors.getAll().filter(e => e.path.startsWith(path))\n\t\t: path.model.errors.get(path, true)\n\tif (e.length === 0) return null\n\tconst message = localize(lang, e[0].error, ...(e[0].params ?? []))\n\treturn popupIcon('node-error', 'issue_opened', message)\n}\n\nfunction HelpPopup({ lang, path }: { lang: string, path: Path }) {\n\tconst key = path.contextPush('help').getContext().join('.')\n\tconst message = localize(lang, key)\n\tif (message === key) return null\n\treturn popupIcon('node-help', 'info', message)\n}\n\nconst popupIcon = (type: string, icon: keyof typeof Octicon, popup: string) => {\n\tconst [active, setActive] = useFocus()\n\n\treturn <div class={`node-icon ${type}${active ? ' show' : ''}`} onClick={setActive}>\n\t\t{Octicon[icon]}\n\t\t<span class=\"icon-popup\">{popup}</span>\n\t</div>\n}\n\nfunction isDecorated(context: string | undefined, value: any) {\n\treturn context === 'feature'\n\t\t&& value?.type?.replace(/^minecraft:/, '') === 'decorated'\n\t\t&& isObject(value?.config)\n}\n\nfunction createDecoratorsWrapper(originalFields: NodeChildren, path: ModelPath, value: any) {\n\tconst decorators: any[] = []\n\tconst feature = iterateNestedDecorators(value, decorators)\n\tconst fields = {\n\t\ttype: originalFields.type,\n\t\tconfig: ObjectNode({\n\t\t\tdecorators: ListNode(CachedDecorator),\n\t\t\tfeature: CachedFeature,\n\t\t}, { context: 'feature.decorated' }),\n\t}\n\tconst schema = ObjectNode(fields, { context: 'feature' })\n\tconst featurePath = new Path(['config', 'feature'])\n\tconst decoratorsPath = new Path(['config', 'decorators'])\n\tconst model = path.getModel()\n\tconst wrapper: ModelWrapper = new ModelWrapper(schema, path => {\n\t\tif (path.startsWith(featurePath)) {\n\t\t\treturn new Path([...[...Array(decorators.length - 1)].flatMap(() => ['config', 'feature']), ...path.modelArr])\n\t\t} else if (path.startsWith(decoratorsPath)) {\n\t\t\tif (path.modelArr.length === 2) {\n\t\t\t\treturn new Path([])\n\t\t\t}\n\t\t\tconst index = path.modelArr[2]\n\t\t\tif (typeof index === 'number') {\n\t\t\t\treturn new Path([...[...Array(index)].flatMap(() => ['config', 'feature']), 'config', 'decorator', ...path.modelArr.slice(3)])\n\t\t\t}\n\t\t}\n\t\treturn path\n\t}, path => {\n\t\tif (path.equals(decoratorsPath)) {\n\t\t\tconst newDecorators: any[] = []\n\t\t\titerateNestedDecorators(model.data, newDecorators)\n\t\t\treturn newDecorators\n\t\t}\n\t\treturn model.get(wrapper.map(path))\n\t}, (path, value, silent) => {\n\t\tif (path.startsWith(featurePath)) {\n\t\t\tconst newDecorators: any[] = []\n\t\t\titerateNestedDecorators(model.data, newDecorators)\n\t\t\tconst newPath =new Path([...[...Array(newDecorators.length - 1)].flatMap(() => ['config', 'feature']), ...path.modelArr])\n\t\t\treturn model.set(newPath, value, silent)\n\t\t} else if (path.startsWith(decoratorsPath)) {\n\t\t\tconst index = path.modelArr[2]\n\t\t\tif (path.modelArr.length === 2) {\n\t\t\t\tconst feature = wrapper.get(featurePath)\n\t\t\t\treturn model.set(new Path(), produceNestedDecorators(feature, value), silent)\n\t\t\t} else if (typeof index === 'number') {\n\t\t\t\tif (path.modelArr.length === 3 && value === undefined) {\n\t\t\t\t\tconst feature = wrapper.get(featurePath)\n\t\t\t\t\tconst newDecorators: any[] = []\n\t\t\t\t\titerateNestedDecorators(model.data, newDecorators)\n\t\t\t\t\tnewDecorators.splice(index, 1)\n\t\t\t\t\tconst newValue = produceNestedDecorators(feature, newDecorators)\n\t\t\t\t\treturn model.set(new Path(), newValue, silent)\n\t\t\t\t} else {\n\t\t\t\t\tconst newPath = new Path([...[...Array(index)].flatMap(() => ['config', 'feature']), 'config', 'decorator', ...path.modelArr.slice(3)])\n\t\t\t\t\treturn model.set(newPath, value, silent)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tmodel.set(path, value, silent)\n\t})\n\twrapper.data = {\n\t\ttype: model.data.type,\n\t\tconfig: {\n\t\t\tdecorators,\n\t\t\tfeature,\n\t\t},\n\t}\n\twrapper.errors = model.errors\n\treturn { fields, wrapper }\n}\n\nfunction iterateNestedDecorators(value: any, decorators: any[]): any {\n\tif (value?.type?.replace(/^minecraft:/, '') !== 'decorated') {\n\t\treturn value\n\t}\n\tif (!isObject(value?.config)) {\n\t\treturn value\n\t}\n\tdecorators.push({ id: decorators.length, node: value.config.decorator })\n\treturn iterateNestedDecorators(value.config.feature ?? '', decorators)\n}\n\nfunction produceNestedDecorators(feature: any, decorators: any[]): any {\n\tif (decorators.length === 0) return feature\n\treturn {\n\t\ttype: 'minecraft:decorated',\n\t\tconfig: {\n\t\t\tdecorator: decorators.shift().node,\n\t\t\tfeature: produceNestedDecorators(feature, decorators),\n\t\t},\n\t}\n}\n","import type { DataModel } from '@mcschema/core'\nimport { useErrorBoundary, useState } from 'preact/hooks'\nimport { useLocale } from '../../contexts'\nimport { useModel } from '../../hooks'\nimport { FullNode } from '../../schema/renderHtml'\nimport type { BlockStateRegistry, VersionId } from '../../services'\n\ntype TreePanelProps = {\n\tversion: VersionId,\n\tmodel: DataModel | null,\n\tblockStates: BlockStateRegistry | null,\n\tonError: (message: string) => unknown,\n}\nexport function Tree({ version, model, blockStates, onError }: TreePanelProps) {\n\tconst { lang } = useLocale()\n\tif (!model || !blockStates || lang === 'none') return <></>\n\n\tconst [error] = useErrorBoundary(e => {\n\t\tonError(`Error rendering the tree: ${e.message}`)\n\t\tconsole.error(e)\n\t})\n\tif (error) return <></>\n\n\tconst [, setState] = useState(0)\n\tuseModel(model, () => {\n\t\tsetState(state => state + 1)\n\t})\n\n\treturn <div class=\"tree\" data-cy=\"tree\">\n\t\t<FullNode {...{model, lang, version, blockStates}}/>\n\t</div>\n}\n","var e=Object.defineProperty,t=Object.defineProperties,s=Object.getOwnPropertyDescriptors,r=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable,i=(t,s,r)=>s in t?e(t,s,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[s]=r,c=(e,t)=>{for(var s in t||(t={}))n.call(t,s)&&i(e,s,t[s]);if(r)for(var s of r(t))o.call(t,s)&&i(e,s,t[s]);return e};import a,{useState as l,useEffect as u,useRef as m}from\"react\";const g=\"Please consider reporting this error at https://github.com/laymonage/giscus/issues/new.\";function d(e){return`[giscus] An error occurred. Error message: \"${e}\".`}function p(e){const t=document.querySelector(`meta[property='og:${e}'],meta[name='${e}']`);return t?t.content:\"\"}function f(){const e=document.getElementById(\"giscus-css\")||document.createElement(\"style\");e.id=\"giscus-css\",e.textContent=\"\\n .giscus, .giscus-frame {\\n width: 100%;\\n }\\n .giscus-frame {\\n border: none;\\n color-scheme: normal;\\n }\\n \",document.head.prepend(e)}function h(e){const[r,n]=l(\"\"),o=function({repo:e,repoId:t,category:s=\"\",categoryId:r=\"\",mapping:n,term:o=\"\",theme:i=\"light\",reactionsEnabled:c=\"1\",emitMetadata:a=\"0\",inputPosition:l=\"bottom\",lang:u=\"en\",session:m,origin:g}){const d=new URL(location.href);d.searchParams.delete(\"giscus\");const f=d.toString(),h={origin:g=g||f,session:m,theme:i,reactionsEnabled:c,emitMetadata:a,inputPosition:l,repo:e,repoId:t,category:s,categoryId:r,description:p(\"description\")};switch(n){case\"url\":h.term=f;break;case\"title\":h.term=document.title;break;case\"og:title\":h.term=p(\"title\");break;case\"specific\":h.term=o;break;case\"number\":h.number=o;break;case\"pathname\":default:h.term=location.pathname.length<2?\"index\":location.pathname.substring(1).replace(/\\.\\w+$/,\"\")}return`https://giscus.app/${u}/widget?${new URLSearchParams(h)}`}((i=c({},e),t(i,s({session:r}))));var i;const h=m(null);return u((()=>{const e=location.href,t=new URL(e),s=localStorage.getItem(\"giscus-session\"),r=t.searchParams.get(\"giscus\")||\"\";if(r)return localStorage.setItem(\"giscus-session\",JSON.stringify(r)),n(r),t.searchParams.delete(\"giscus\"),void history.replaceState(void 0,document.title,t.toString());if(s)try{n(JSON.parse(s||\"\")||\"\")}catch(o){n(\"\"),localStorage.removeItem(\"giscus-session\"),console.warn(`${d(null==o?void 0:o.message)} Session has been cleared.`)}}),[]),u(f,[]),u((()=>{const e=function(e,t=null){return function(s){if(\"https://giscus.app\"!==s.origin)return;const{data:r}=s;if(\"object\"!=typeof r||!r.giscus)return;if(t&&r.giscus.resizeHeight&&(t.style.height=`${r.giscus.resizeHeight}px`),!r.giscus.error)return;const n=r.giscus.error;if(n.includes(\"Bad credentials\")||n.includes(\"Invalid state value\")){if(null!==localStorage.getItem(\"giscus-session\"))return localStorage.removeItem(\"giscus-session\"),e(),void console.warn(`${d(n)} Session has been cleared.`);console.error(`${d(n)} No session is stored initially. ${g}`)}n.includes(\"Discussion not found\")?console.warn(`[giscus] ${n}. A new discussion will be created if a comment/reaction is submitted.`):console.error(`${d(n)} ${g}`)}}((()=>n(\"\")),h.current);return window.addEventListener(\"message\",e),()=>window.removeEventListener(\"message\",e)}),[]),a.createElement(\"div\",{className:\"giscus\"},a.createElement(\"iframe\",{className:\"giscus-frame\",title:\"Comments\",scrolling:\"no\",src:o,ref:h}))}function b(e){const[t,s]=l(!1);return u((()=>s(!0)),[]),t?a.createElement(h,c({},e)):null}export{b as Giscus};\n","import { Giscus as GiscusReact } from '@giscus/react'\nimport { useTheme } from '../contexts'\n\ninterface Props {\n\tterm?: string,\n}\nexport function Giscus({ term }: Props) {\n\tconst { actualTheme } = useTheme()\n\tconst themeSuffix = actualTheme === 'light' ? '-burn' : ''\n\tconst themeUrl = (import.meta as any).env.DEV\n\t\t? `http://localhost:3000/src/styles/giscus${themeSuffix}.css`\n\t\t: `${location.protocol}//${location.host}/assets/giscus${themeSuffix}.css`\n\n\treturn <GiscusReact\n\t\trepo=\"misode/misode.github.io\"\n\t\trepoId=\"MDEwOlJlcG9zaXRvcnkxOTIyNTQyMzA=\"\n\t\tcategory=\"Site\"\n\t\tcategoryId=\"DIC_kwDOC3WRFs4COB8r\"\n\t\tmapping={term ? 'specific' : 'pathname'}\n\t\tterm={term}\n\t\treactionsEnabled=\"1\"\n\t\temitMetadata=\"0\"\n\t\tinputPosition=\"top\"\n\t\ttheme={themeUrl}\n\t\tlang=\"en\" />\n}\n","/**\n * marked - a markdown parser\n * Copyright (c) 2011-2022, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\nfunction getDefaults() {\n return {\n baseUrl: null,\n breaks: false,\n extensions: null,\n gfm: true,\n headerIds: true,\n headerPrefix: '',\n highlight: null,\n langPrefix: 'language-',\n mangle: true,\n pedantic: false,\n renderer: null,\n sanitize: false,\n sanitizer: null,\n silent: false,\n smartLists: false,\n smartypants: false,\n tokenizer: null,\n walkTokens: null,\n xhtml: false\n };\n}\n\nlet defaults = getDefaults();\n\nfunction changeDefaults(newDefaults) {\n defaults = newDefaults;\n}\n\n/**\n * Helpers\n */\nconst escapeTest = /[&<>\"']/;\nconst escapeReplace = /[&<>\"']/g;\nconst escapeTestNoEncode = /[<>\"']|&(?!#?\\w+;)/;\nconst escapeReplaceNoEncode = /[<>\"']|&(?!#?\\w+;)/g;\nconst escapeReplacements = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\nconst getEscapeReplacement = (ch) => escapeReplacements[ch];\nfunction escape(html, encode) {\n if (encode) {\n if (escapeTest.test(html)) {\n return html.replace(escapeReplace, getEscapeReplacement);\n }\n } else {\n if (escapeTestNoEncode.test(html)) {\n return html.replace(escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n\n return html;\n}\n\nconst unescapeTest = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig;\n\nfunction unescape(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(unescapeTest, (_, n) => {\n n = n.toLowerCase();\n if (n === 'colon') return ':';\n if (n.charAt(0) === '#') {\n return n.charAt(1) === 'x'\n ? String.fromCharCode(parseInt(n.substring(2), 16))\n : String.fromCharCode(+n.substring(1));\n }\n return '';\n });\n}\n\nconst caret = /(^|[^\\[])\\^/g;\nfunction edit(regex, opt) {\n regex = regex.source || regex;\n opt = opt || '';\n const obj = {\n replace: (name, val) => {\n val = val.source || val;\n val = val.replace(caret, '$1');\n regex = regex.replace(name, val);\n return obj;\n },\n getRegex: () => {\n return new RegExp(regex, opt);\n }\n };\n return obj;\n}\n\nconst nonWordAndColonTest = /[^\\w:]/g;\nconst originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;\nfunction cleanUrl(sanitize, base, href) {\n if (sanitize) {\n let prot;\n try {\n prot = decodeURIComponent(unescape(href))\n .replace(nonWordAndColonTest, '')\n .toLowerCase();\n } catch (e) {\n return null;\n }\n if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) {\n return null;\n }\n }\n if (base && !originIndependentUrl.test(href)) {\n href = resolveUrl(base, href);\n }\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n } catch (e) {\n return null;\n }\n return href;\n}\n\nconst baseUrls = {};\nconst justDomain = /^[^:]+:\\/*[^/]*$/;\nconst protocol = /^([^:]+:)[\\s\\S]*$/;\nconst domain = /^([^:]+:\\/*[^/]*)[\\s\\S]*$/;\n\nfunction resolveUrl(base, href) {\n if (!baseUrls[' ' + base]) {\n // we can ignore everything in base after the last slash of its path component,\n // but we might need to add _that_\n // https://tools.ietf.org/html/rfc3986#section-3\n if (justDomain.test(base)) {\n baseUrls[' ' + base] = base + '/';\n } else {\n baseUrls[' ' + base] = rtrim(base, '/', true);\n }\n }\n base = baseUrls[' ' + base];\n const relativeBase = base.indexOf(':') === -1;\n\n if (href.substring(0, 2) === '//') {\n if (relativeBase) {\n return href;\n }\n return base.replace(protocol, '$1') + href;\n } else if (href.charAt(0) === '/') {\n if (relativeBase) {\n return href;\n }\n return base.replace(domain, '$1') + href;\n } else {\n return base + href;\n }\n}\n\nconst noopTest = { exec: function noopTest() {} };\n\nfunction merge(obj) {\n let i = 1,\n target,\n key;\n\n for (; i < arguments.length; i++) {\n target = arguments[i];\n for (key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n obj[key] = target[key];\n }\n }\n }\n\n return obj;\n}\n\nfunction splitCells(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n const row = tableRow.replace(/\\|/g, (match, offset, str) => {\n let escaped = false,\n curr = offset;\n while (--curr >= 0 && str[curr] === '\\\\') escaped = !escaped;\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n } else {\n // add space before unescaped |\n return ' |';\n }\n }),\n cells = row.split(/ \\|/);\n let i = 0;\n\n // First/last cell in a row cannot be empty if it has no leading/trailing pipe\n if (!cells[0].trim()) { cells.shift(); }\n if (!cells[cells.length - 1].trim()) { cells.pop(); }\n\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) cells.push('');\n }\n\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n }\n return cells;\n}\n\n// Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n// /c*$/ is vulnerable to REDOS.\n// invert: Remove suffix of non-c chars instead. Default falsey.\nfunction rtrim(str, c, invert) {\n const l = str.length;\n if (l === 0) {\n return '';\n }\n\n // Length of suffix matching the invert condition.\n let suffLen = 0;\n\n // Step left until we fail to match the invert condition.\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n } else if (currChar !== c && invert) {\n suffLen++;\n } else {\n break;\n }\n }\n\n return str.substr(0, l - suffLen);\n}\n\nfunction findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n const l = str.length;\n let level = 0,\n i = 0;\n for (; i < l; i++) {\n if (str[i] === '\\\\') {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n return -1;\n}\n\nfunction checkSanitizeDeprecation(opt) {\n if (opt && opt.sanitize && !opt.silent) {\n console.warn('marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options');\n }\n}\n\n// copied from https://stackoverflow.com/a/5450113/806777\nfunction repeatString(pattern, count) {\n if (count < 1) {\n return '';\n }\n let result = '';\n while (count > 1) {\n if (count & 1) {\n result += pattern;\n }\n count >>= 1;\n pattern += pattern;\n }\n return result + pattern;\n}\n\nfunction outputLink(cap, link, raw, lexer) {\n const href = link.href;\n const title = link.title ? escape(link.title) : null;\n const text = cap[1].replace(/\\\\([\\[\\]])/g, '$1');\n\n if (cap[0].charAt(0) !== '!') {\n lexer.state.inLink = true;\n const token = {\n type: 'link',\n raw,\n href,\n title,\n text,\n tokens: lexer.inlineTokens(text, [])\n };\n lexer.state.inLink = false;\n return token;\n } else {\n return {\n type: 'image',\n raw,\n href,\n title,\n text: escape(text)\n };\n }\n}\n\nfunction indentCodeCompensation(raw, text) {\n const matchIndentToCode = raw.match(/^(\\s+)(?:```)/);\n\n if (matchIndentToCode === null) {\n return text;\n }\n\n const indentToCode = matchIndentToCode[1];\n\n return text\n .split('\\n')\n .map(node => {\n const matchIndentInNode = node.match(/^\\s+/);\n if (matchIndentInNode === null) {\n return node;\n }\n\n const [indentInNode] = matchIndentInNode;\n\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n\n return node;\n })\n .join('\\n');\n}\n\n/**\n * Tokenizer\n */\nclass Tokenizer {\n constructor(options) {\n this.options = options || defaults;\n }\n\n space(src) {\n const cap = this.rules.block.newline.exec(src);\n if (cap && cap[0].length > 0) {\n return {\n type: 'space',\n raw: cap[0]\n };\n }\n }\n\n code(src) {\n const cap = this.rules.block.code.exec(src);\n if (cap) {\n const text = cap[0].replace(/^ {1,4}/gm, '');\n return {\n type: 'code',\n raw: cap[0],\n codeBlockStyle: 'indented',\n text: !this.options.pedantic\n ? rtrim(text, '\\n')\n : text\n };\n }\n }\n\n fences(src) {\n const cap = this.rules.block.fences.exec(src);\n if (cap) {\n const raw = cap[0];\n const text = indentCodeCompensation(raw, cap[3] || '');\n\n return {\n type: 'code',\n raw,\n lang: cap[2] ? cap[2].trim() : cap[2],\n text\n };\n }\n }\n\n heading(src) {\n const cap = this.rules.block.heading.exec(src);\n if (cap) {\n let text = cap[2].trim();\n\n // remove trailing #s\n if (/#$/.test(text)) {\n const trimmed = rtrim(text, '#');\n if (this.options.pedantic) {\n text = trimmed.trim();\n } else if (!trimmed || / $/.test(trimmed)) {\n // CommonMark requires space before trailing #s\n text = trimmed.trim();\n }\n }\n\n const token = {\n type: 'heading',\n raw: cap[0],\n depth: cap[1].length,\n text: text,\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n\n hr(src) {\n const cap = this.rules.block.hr.exec(src);\n if (cap) {\n return {\n type: 'hr',\n raw: cap[0]\n };\n }\n }\n\n blockquote(src) {\n const cap = this.rules.block.blockquote.exec(src);\n if (cap) {\n const text = cap[0].replace(/^ *> ?/gm, '');\n\n return {\n type: 'blockquote',\n raw: cap[0],\n tokens: this.lexer.blockTokens(text, []),\n text\n };\n }\n }\n\n list(src) {\n let cap = this.rules.block.list.exec(src);\n if (cap) {\n let raw, istask, ischecked, indent, i, blankLine, endsWithBlankLine,\n line, nextLine, rawLine, itemContents, endEarly;\n\n let bull = cap[1].trim();\n const isordered = bull.length > 1;\n\n const list = {\n type: 'list',\n raw: '',\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : '',\n loose: false,\n items: []\n };\n\n bull = isordered ? `\\\\d{1,9}\\\\${bull.slice(-1)}` : `\\\\${bull}`;\n\n if (this.options.pedantic) {\n bull = isordered ? bull : '[*+-]';\n }\n\n // Get next list item\n const itemRegex = new RegExp(`^( {0,3}${bull})((?: [^\\\\n]*)?(?:\\\\n|$))`);\n\n // Check if current bullet point can start a new List Item\n while (src) {\n endEarly = false;\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n\n if (this.rules.block.hr.test(src)) { // End list if bullet was actually HR (possibly move into itemRegex?)\n break;\n }\n\n raw = cap[0];\n src = src.substring(raw.length);\n\n line = cap[2].split('\\n', 1)[0];\n nextLine = src.split('\\n', 1)[0];\n\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimLeft();\n } else {\n indent = cap[2].search(/[^ ]/); // Find first non-space char\n indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n\n blankLine = false;\n\n if (!line && /^ *$/.test(nextLine)) { // Items begin with at most one blank line\n raw += nextLine + '\\n';\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n\n if (!endEarly) {\n const nextBulletRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\\\d{1,9}[.)])`);\n\n // Check if following lines should be included in List Item\n while (src) {\n rawLine = src.split('\\n', 1)[0];\n line = rawLine;\n\n // Re-align to follow commonmark nesting rules\n if (this.options.pedantic) {\n line = line.replace(/^ {1,4}(?=( {4})*[^ ])/g, ' ');\n }\n\n // End list item if found start of new bullet\n if (nextBulletRegex.test(line)) {\n break;\n }\n\n if (line.search(/[^ ]/) >= indent || !line.trim()) { // Dedent if possible\n itemContents += '\\n' + line.slice(indent);\n } else if (!blankLine) { // Until blank line, item doesn't need indentation\n itemContents += '\\n' + line;\n } else { // Otherwise, improper indentation ends this item\n break;\n }\n\n if (!blankLine && !line.trim()) { // Check if current line is blank\n blankLine = true;\n }\n\n raw += rawLine + '\\n';\n src = src.substring(rawLine.length + 1);\n }\n }\n\n if (!list.loose) {\n // If the previous item ended with a blank line, the list is loose\n if (endsWithBlankLine) {\n list.loose = true;\n } else if (/\\n *\\n *$/.test(raw)) {\n endsWithBlankLine = true;\n }\n }\n\n // Check for task list items\n if (this.options.gfm) {\n istask = /^\\[[ xX]\\] /.exec(itemContents);\n if (istask) {\n ischecked = istask[0] !== '[ ] ';\n itemContents = itemContents.replace(/^\\[[ xX]\\] +/, '');\n }\n }\n\n list.items.push({\n type: 'list_item',\n raw: raw,\n task: !!istask,\n checked: ischecked,\n loose: false,\n text: itemContents\n });\n\n list.raw += raw;\n }\n\n // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic\n list.items[list.items.length - 1].raw = raw.trimRight();\n list.items[list.items.length - 1].text = itemContents.trimRight();\n list.raw = list.raw.trimRight();\n\n const l = list.items.length;\n\n // Item child tokens handled here at end because we needed to have the final item to trim it first\n for (i = 0; i < l; i++) {\n this.lexer.state.top = false;\n list.items[i].tokens = this.lexer.blockTokens(list.items[i].text, []);\n const spacers = list.items[i].tokens.filter(t => t.type === 'space');\n const hasMultipleLineBreaks = spacers.every(t => {\n const chars = t.raw.split('');\n let lineBreaks = 0;\n for (const char of chars) {\n if (char === '\\n') {\n lineBreaks += 1;\n }\n if (lineBreaks > 1) {\n return true;\n }\n }\n\n return false;\n });\n\n if (!list.loose && spacers.length && hasMultipleLineBreaks) {\n // Having a single line break doesn't mean a list is loose. A single line break is terminating the last list item\n list.loose = true;\n list.items[i].loose = true;\n }\n }\n\n return list;\n }\n }\n\n html(src) {\n const cap = this.rules.block.html.exec(src);\n if (cap) {\n const token = {\n type: 'html',\n raw: cap[0],\n pre: !this.options.sanitizer\n && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'),\n text: cap[0]\n };\n if (this.options.sanitize) {\n token.type = 'paragraph';\n token.text = this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0]);\n token.tokens = [];\n this.lexer.inline(token.text, token.tokens);\n }\n return token;\n }\n }\n\n def(src) {\n const cap = this.rules.block.def.exec(src);\n if (cap) {\n if (cap[3]) cap[3] = cap[3].substring(1, cap[3].length - 1);\n const tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n return {\n type: 'def',\n tag,\n raw: cap[0],\n href: cap[2],\n title: cap[3]\n };\n }\n }\n\n table(src) {\n const cap = this.rules.block.table.exec(src);\n if (cap) {\n const item = {\n type: 'table',\n header: splitCells(cap[1]).map(c => { return { text: c }; }),\n align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n rows: cap[3] ? cap[3].replace(/\\n[ \\t]*$/, '').split('\\n') : []\n };\n\n if (item.header.length === item.align.length) {\n item.raw = cap[0];\n\n let l = item.align.length;\n let i, j, k, row;\n for (i = 0; i < l; i++) {\n if (/^ *-+: *$/.test(item.align[i])) {\n item.align[i] = 'right';\n } else if (/^ *:-+: *$/.test(item.align[i])) {\n item.align[i] = 'center';\n } else if (/^ *:-+ *$/.test(item.align[i])) {\n item.align[i] = 'left';\n } else {\n item.align[i] = null;\n }\n }\n\n l = item.rows.length;\n for (i = 0; i < l; i++) {\n item.rows[i] = splitCells(item.rows[i], item.header.length).map(c => { return { text: c }; });\n }\n\n // parse child tokens inside headers and cells\n\n // header child tokens\n l = item.header.length;\n for (j = 0; j < l; j++) {\n item.header[j].tokens = [];\n this.lexer.inlineTokens(item.header[j].text, item.header[j].tokens);\n }\n\n // cell child tokens\n l = item.rows.length;\n for (j = 0; j < l; j++) {\n row = item.rows[j];\n for (k = 0; k < row.length; k++) {\n row[k].tokens = [];\n this.lexer.inlineTokens(row[k].text, row[k].tokens);\n }\n }\n\n return item;\n }\n }\n }\n\n lheading(src) {\n const cap = this.rules.block.lheading.exec(src);\n if (cap) {\n const token = {\n type: 'heading',\n raw: cap[0],\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text: cap[1],\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n\n paragraph(src) {\n const cap = this.rules.block.paragraph.exec(src);\n if (cap) {\n const token = {\n type: 'paragraph',\n raw: cap[0],\n text: cap[1].charAt(cap[1].length - 1) === '\\n'\n ? cap[1].slice(0, -1)\n : cap[1],\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n\n text(src) {\n const cap = this.rules.block.text.exec(src);\n if (cap) {\n const token = {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n\n escape(src) {\n const cap = this.rules.inline.escape.exec(src);\n if (cap) {\n return {\n type: 'escape',\n raw: cap[0],\n text: escape(cap[1])\n };\n }\n }\n\n tag(src) {\n const cap = this.rules.inline.tag.exec(src);\n if (cap) {\n if (!this.lexer.state.inLink && /^<a /i.test(cap[0])) {\n this.lexer.state.inLink = true;\n } else if (this.lexer.state.inLink && /^<\\/a>/i.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n if (!this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n } else if (this.lexer.state.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n\n return {\n type: this.options.sanitize\n ? 'text'\n : 'html',\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n text: this.options.sanitize\n ? (this.options.sanitizer\n ? this.options.sanitizer(cap[0])\n : escape(cap[0]))\n : cap[0]\n };\n }\n }\n\n link(src) {\n const cap = this.rules.inline.link.exec(src);\n if (cap) {\n const trimmedUrl = cap[2].trim();\n if (!this.options.pedantic && /^</.test(trimmedUrl)) {\n // commonmark requires matching angle brackets\n if (!(/>$/.test(trimmedUrl))) {\n return;\n }\n\n // ending angle bracket cannot be escaped\n const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\\\');\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n } else {\n // find closing parenthesis\n const lastParenIndex = findClosingBracket(cap[2], '()');\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf('!') === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n }\n let href = cap[2];\n let title = '';\n if (this.options.pedantic) {\n // split pedantic href and title\n const link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n\n if (link) {\n href = link[1];\n title = link[3];\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n\n href = href.trim();\n if (/^</.test(href)) {\n if (this.options.pedantic && !(/>$/.test(trimmedUrl))) {\n // pedantic allows starting angle bracket without ending angle bracket\n href = href.slice(1);\n } else {\n href = href.slice(1, -1);\n }\n }\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline._escapes, '$1') : href,\n title: title ? title.replace(this.rules.inline._escapes, '$1') : title\n }, cap[0], this.lexer);\n }\n }\n\n reflink(src, links) {\n let cap;\n if ((cap = this.rules.inline.reflink.exec(src))\n || (cap = this.rules.inline.nolink.exec(src))) {\n let link = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n link = links[link.toLowerCase()];\n if (!link || !link.href) {\n const text = cap[0].charAt(0);\n return {\n type: 'text',\n raw: text,\n text\n };\n }\n return outputLink(cap, link, cap[0], this.lexer);\n }\n }\n\n emStrong(src, maskedSrc, prevChar = '') {\n let match = this.rules.inline.emStrong.lDelim.exec(src);\n if (!match) return;\n\n // _ can't be between two alphanumerics. \\p{L}\\p{N} includes non-english alphabet/numbers as well\n if (match[3] && prevChar.match(/[\\p{L}\\p{N}]/u)) return;\n\n const nextChar = match[1] || match[2] || '';\n\n if (!nextChar || (nextChar && (prevChar === '' || this.rules.inline.punctuation.exec(prevChar)))) {\n const lLength = match[0].length - 1;\n let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0;\n\n const endReg = match[0][0] === '*' ? this.rules.inline.emStrong.rDelimAst : this.rules.inline.emStrong.rDelimUnd;\n endReg.lastIndex = 0;\n\n // Clip maskedSrc to same section of string as src (move to lexer?)\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n\n while ((match = endReg.exec(maskedSrc)) != null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n\n if (!rDelim) continue; // skip single * in __abc*abc__\n\n rLength = rDelim.length;\n\n if (match[3] || match[4]) { // found another Left Delim\n delimTotal += rLength;\n continue;\n } else if (match[5] || match[6]) { // either Left or Right Delim\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue; // CommonMark Emphasis Rules 9-10\n }\n }\n\n delimTotal -= rLength;\n\n if (delimTotal > 0) continue; // Haven't found enough closing delimiters\n\n // Remove extra characters. *a*** -> *a*\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n\n // Create `em` if smallest delimiter has odd char count. *a***\n if (Math.min(lLength, rLength) % 2) {\n const text = src.slice(1, lLength + match.index + rLength);\n return {\n type: 'em',\n raw: src.slice(0, lLength + match.index + rLength + 1),\n text,\n tokens: this.lexer.inlineTokens(text, [])\n };\n }\n\n // Create 'strong' if smallest delimiter has even char count. **a***\n const text = src.slice(2, lLength + match.index + rLength - 1);\n return {\n type: 'strong',\n raw: src.slice(0, lLength + match.index + rLength + 1),\n text,\n tokens: this.lexer.inlineTokens(text, [])\n };\n }\n }\n }\n\n codespan(src) {\n const cap = this.rules.inline.code.exec(src);\n if (cap) {\n let text = cap[2].replace(/\\n/g, ' ');\n const hasNonSpaceChars = /[^ ]/.test(text);\n const hasSpaceCharsOnBothEnds = /^ /.test(text) && / $/.test(text);\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n text = escape(text, true);\n return {\n type: 'codespan',\n raw: cap[0],\n text\n };\n }\n }\n\n br(src) {\n const cap = this.rules.inline.br.exec(src);\n if (cap) {\n return {\n type: 'br',\n raw: cap[0]\n };\n }\n }\n\n del(src) {\n const cap = this.rules.inline.del.exec(src);\n if (cap) {\n return {\n type: 'del',\n raw: cap[0],\n text: cap[2],\n tokens: this.lexer.inlineTokens(cap[2], [])\n };\n }\n }\n\n autolink(src, mangle) {\n const cap = this.rules.inline.autolink.exec(src);\n if (cap) {\n let text, href;\n if (cap[2] === '@') {\n text = escape(this.options.mangle ? mangle(cap[1]) : cap[1]);\n href = 'mailto:' + text;\n } else {\n text = escape(cap[1]);\n href = text;\n }\n\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text\n }\n ]\n };\n }\n }\n\n url(src, mangle) {\n let cap;\n if (cap = this.rules.inline.url.exec(src)) {\n let text, href;\n if (cap[2] === '@') {\n text = escape(this.options.mangle ? mangle(cap[0]) : cap[0]);\n href = 'mailto:' + text;\n } else {\n // do extended autolink path validation\n let prevCapZero;\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])[0];\n } while (prevCapZero !== cap[0]);\n text = escape(cap[0]);\n if (cap[1] === 'www.') {\n href = 'http://' + text;\n } else {\n href = text;\n }\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text\n }\n ]\n };\n }\n }\n\n inlineText(src, smartypants) {\n const cap = this.rules.inline.text.exec(src);\n if (cap) {\n let text;\n if (this.lexer.state.inRawBlock) {\n text = this.options.sanitize ? (this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0])) : cap[0];\n } else {\n text = escape(this.options.smartypants ? smartypants(cap[0]) : cap[0]);\n }\n return {\n type: 'text',\n raw: cap[0],\n text\n };\n }\n }\n}\n\n/**\n * Block-Level Grammar\n */\nconst block = {\n newline: /^(?: *(?:\\n|$))+/,\n code: /^( {4}[^\\n]+(?:\\n(?: *(?:\\n|$))*)?)+/,\n fences: /^ {0,3}(`{3,}(?=[^`\\n]*\\n)|~{3,})([^\\n]*)\\n(?:|([\\s\\S]*?)\\n)(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/,\n hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)/,\n heading: /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,\n blockquote: /^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/,\n list: /^( {0,3}bull)( [^\\n]+?)?(?:\\n|$)/,\n html: '^ {0,3}(?:' // optional indentation\n + '<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n + '|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)' // (4)\n + '|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)' // (5)\n + '|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (6)\n + '|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) open tag\n + '|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) closing tag\n + ')',\n def: /^ {0,3}\\[(label)\\]: *(?:\\n *)?<?([^\\s>]+)>?(?:(?: +(?:\\n *)?| *\\n *)(title))? *(?:\\n+|$)/,\n table: noopTest,\n lheading: /^([^\\n]+)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n // regex template, placeholders will be replaced according to different paragraph\n // interruption rules of commonmark and the original markdown spec:\n _paragraph: /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/,\n text: /^[^\\n]+/\n};\n\nblock._label = /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/;\nblock._title = /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/;\nblock.def = edit(block.def)\n .replace('label', block._label)\n .replace('title', block._title)\n .getRegex();\n\nblock.bullet = /(?:[*+-]|\\d{1,9}[.)])/;\nblock.listItemStart = edit(/^( *)(bull) */)\n .replace('bull', block.bullet)\n .getRegex();\n\nblock.list = edit(block.list)\n .replace(/bull/g, block.bullet)\n .replace('hr', '\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))')\n .replace('def', '\\\\n+(?=' + block.def.source + ')')\n .getRegex();\n\nblock._tag = 'address|article|aside|base|basefont|blockquote|body|caption'\n + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption'\n + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe'\n + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option'\n + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr'\n + '|track|ul';\nblock._comment = /<!--(?!-?>)[\\s\\S]*?(?:-->|$)/;\nblock.html = edit(block.html, 'i')\n .replace('comment', block._comment)\n .replace('tag', block._tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\n\nblock.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.blockquote = edit(block.blockquote)\n .replace('paragraph', block.paragraph)\n .getRegex();\n\n/**\n * Normal Block Grammar\n */\n\nblock.normal = merge({}, block);\n\n/**\n * GFM Block Grammar\n */\n\nblock.gfm = merge({}, block.normal, {\n table: '^ *([^\\\\n ].*\\\\|.*)\\\\n' // Header\n + ' {0,3}(?:\\\\| *)?(:?-+:? *(?:\\\\| *:?-+:? *)*)(?:\\\\| *)?' // Align\n + '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)' // Cells\n});\n\nblock.gfm.table = edit(block.gfm.table)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('blockquote', ' {0,3}>')\n .replace('code', ' {4}[^\\\\n]')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.gfm.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('table', block.gfm.table) // interrupt paragraphs with table\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\n\nblock.pedantic = merge({}, block.normal, {\n html: edit(\n '^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|<tag(?:\"[^\"]*\"|\\'[^\\']*\\'|\\\\s[^\\'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', block._comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest, // fences not supported\n paragraph: edit(block.normal._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', block.lheading)\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .getRegex()\n});\n\n/**\n * Inline-Level Grammar\n */\nconst inline = {\n escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n url: noopTest,\n tag: '^comment'\n + '|^</[a-zA-Z][\\\\w:-]*\\\\s*>' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. <?php ?>\n + '|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>' // declaration, e.g. <!DOCTYPE html>\n + '|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>', // CDATA section\n link: /^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,\n reflink: /^!?\\[(label)\\]\\[(ref)\\]/,\n nolink: /^!?\\[(ref)\\](?:\\[\\])?/,\n reflinkSearch: 'reflink|nolink(?!\\\\()',\n emStrong: {\n lDelim: /^(?:\\*+(?:([punct_])|[^\\s*]))|^_+(?:([punct*])|([^\\s_]))/,\n // (1) and (2) can only be a Right Delimiter. (3) and (4) can only be Left. (5) and (6) can be either Left or Right.\n // () Skip orphan delim inside strong (1) #*** (2) a***#, a*** (3) #***a, ***a (4) ***# (5) #***# (6) a***a\n rDelimAst: /^[^_*]*?\\_\\_[^_*]*?\\*[^_*]*?(?=\\_\\_)|[punct_](\\*+)(?=[\\s]|$)|[^punct*_\\s](\\*+)(?=[punct_\\s]|$)|[punct_\\s](\\*+)(?=[^punct*_\\s])|[\\s](\\*+)(?=[punct_])|[punct_](\\*+)(?=[punct_])|[^punct*_\\s](\\*+)(?=[^punct*_\\s])/,\n rDelimUnd: /^[^_*]*?\\*\\*[^_*]*?\\_[^_*]*?(?=\\*\\*)|[punct*](\\_+)(?=[\\s]|$)|[^punct*_\\s](\\_+)(?=[punct*\\s]|$)|[punct*\\s](\\_+)(?=[^punct*_\\s])|[\\s](\\_+)(?=[punct*])|[punct*](\\_+)(?=[punct*])/ // ^- Not allowed for _\n },\n code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n del: noopTest,\n text: /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/,\n punctuation: /^([\\spunctuation])/\n};\n\n// list of punctuation marks from CommonMark spec\n// without * and _ to handle the different emphasis markers * and _\ninline._punctuation = '!\"#$%&\\'()+\\\\-.,/:;<=>?@\\\\[\\\\]`^{|}~';\ninline.punctuation = edit(inline.punctuation).replace(/punctuation/g, inline._punctuation).getRegex();\n\n// sequences em should skip over [title](link), `code`, <html>\ninline.blockSkip = /\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>/g;\ninline.escapedEmSt = /\\\\\\*|\\\\_/g;\n\ninline._comment = edit(block._comment).replace('(?:-->|$)', '-->').getRegex();\n\ninline.emStrong.lDelim = edit(inline.emStrong.lDelim)\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline.emStrong.rDelimAst = edit(inline.emStrong.rDelimAst, 'g')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline.emStrong.rDelimUnd = edit(inline.emStrong.rDelimUnd, 'g')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g;\n\ninline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\ninline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;\ninline.autolink = edit(inline.autolink)\n .replace('scheme', inline._scheme)\n .replace('email', inline._email)\n .getRegex();\n\ninline._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\n\ninline.tag = edit(inline.tag)\n .replace('comment', inline._comment)\n .replace('attribute', inline._attribute)\n .getRegex();\n\ninline._label = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\ninline._href = /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/;\ninline._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\n\ninline.link = edit(inline.link)\n .replace('label', inline._label)\n .replace('href', inline._href)\n .replace('title', inline._title)\n .getRegex();\n\ninline.reflink = edit(inline.reflink)\n .replace('label', inline._label)\n .replace('ref', block._label)\n .getRegex();\n\ninline.nolink = edit(inline.nolink)\n .replace('ref', block._label)\n .getRegex();\n\ninline.reflinkSearch = edit(inline.reflinkSearch, 'g')\n .replace('reflink', inline.reflink)\n .replace('nolink', inline.nolink)\n .getRegex();\n\n/**\n * Normal Inline Grammar\n */\n\ninline.normal = merge({}, inline);\n\n/**\n * Pedantic Inline Grammar\n */\n\ninline.pedantic = merge({}, inline.normal, {\n strong: {\n start: /^__|\\*\\*/,\n middle: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n endAst: /\\*\\*(?!\\*)/g,\n endUnd: /__(?!_)/g\n },\n em: {\n start: /^_|\\*/,\n middle: /^()\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)|^_(?=\\S)([\\s\\S]*?\\S)_(?!_)/,\n endAst: /\\*(?!\\*)/g,\n endUnd: /_(?!_)/g\n },\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', inline._label)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', inline._label)\n .getRegex()\n});\n\n/**\n * GFM Inline Grammar\n */\n\ninline.gfm = merge({}, inline.normal, {\n escape: edit(inline.escape).replace('])', '~|])').getRegex(),\n _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n _backpedal: /(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|https?:\\/\\/|ftp:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/\n});\n\ninline.gfm.url = edit(inline.gfm.url, 'i')\n .replace('email', inline.gfm._extended_email)\n .getRegex();\n/**\n * GFM + Line Breaks Inline Grammar\n */\n\ninline.breaks = merge({}, inline.gfm, {\n br: edit(inline.br).replace('{2,}', '*').getRegex(),\n text: edit(inline.gfm.text)\n .replace('\\\\b_', '\\\\b_| {2,}\\\\n')\n .replace(/\\{2,\\}/g, '*')\n .getRegex()\n});\n\n/**\n * smartypants text replacement\n */\nfunction smartypants(text) {\n return text\n // em-dashes\n .replace(/---/g, '\\u2014')\n // en-dashes\n .replace(/--/g, '\\u2013')\n // opening singles\n .replace(/(^|[-\\u2014/(\\[{\"\\s])'/g, '$1\\u2018')\n // closing singles & apostrophes\n .replace(/'/g, '\\u2019')\n // opening doubles\n .replace(/(^|[-\\u2014/(\\[{\\u2018\\s])\"/g, '$1\\u201c')\n // closing doubles\n .replace(/\"/g, '\\u201d')\n // ellipses\n .replace(/\\.{3}/g, '\\u2026');\n}\n\n/**\n * mangle email addresses\n */\nfunction mangle(text) {\n let out = '',\n i,\n ch;\n\n const l = text.length;\n for (i = 0; i < l; i++) {\n ch = text.charCodeAt(i);\n if (Math.random() > 0.5) {\n ch = 'x' + ch.toString(16);\n }\n out += '&#' + ch + ';';\n }\n\n return out;\n}\n\n/**\n * Block Lexer\n */\nclass Lexer {\n constructor(options) {\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || defaults;\n this.options.tokenizer = this.options.tokenizer || new Tokenizer();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true\n };\n\n const rules = {\n block: block.normal,\n inline: inline.normal\n };\n\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n } else if (this.options.gfm) {\n rules.block = block.gfm;\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n } else {\n rules.inline = inline.gfm;\n }\n }\n this.tokenizer.rules = rules;\n }\n\n /**\n * Expose Rules\n */\n static get rules() {\n return {\n block,\n inline\n };\n }\n\n /**\n * Static Lex Method\n */\n static lex(src, options) {\n const lexer = new Lexer(options);\n return lexer.lex(src);\n }\n\n /**\n * Static Lex Inline Method\n */\n static lexInline(src, options) {\n const lexer = new Lexer(options);\n return lexer.inlineTokens(src);\n }\n\n /**\n * Preprocessing\n */\n lex(src) {\n src = src\n .replace(/\\r\\n|\\r/g, '\\n')\n .replace(/\\t/g, ' ');\n\n this.blockTokens(src, this.tokens);\n\n let next;\n while (next = this.inlineQueue.shift()) {\n this.inlineTokens(next.src, next.tokens);\n }\n\n return this.tokens;\n }\n\n /**\n * Lexing\n */\n blockTokens(src, tokens = []) {\n if (this.options.pedantic) {\n src = src.replace(/^ +$/gm, '');\n }\n let token, lastToken, cutSrc, lastParagraphClipped;\n\n while (src) {\n if (this.options.extensions\n && this.options.extensions.block\n && this.options.extensions.block.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // newline\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n if (token.raw.length === 1 && tokens.length > 0) {\n // if there's a single \\n as a spacer, it's terminating the last line,\n // so move it there so that we don't get unecessary paragraph tags\n tokens[tokens.length - 1].raw += '\\n';\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // code\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n // An indented code block cannot interrupt a paragraph.\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // fences\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // heading\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // hr\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // blockquote\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // list\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // html\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // def\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n continue;\n }\n\n // table (gfm)\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // lheading\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach(function(getStartIndex) {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) { startIndex = Math.min(startIndex, tempStart); }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n lastToken = tokens[tokens.length - 1];\n if (lastParagraphClipped && lastToken.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n lastParagraphClipped = (cutSrc.length !== src.length);\n src = src.substring(token.raw.length);\n continue;\n }\n\n // text\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n this.state.top = true;\n return tokens;\n }\n\n inline(src, tokens) {\n this.inlineQueue.push({ src, tokens });\n }\n\n /**\n * Lexing/Compiling\n */\n inlineTokens(src, tokens = []) {\n let token, lastToken, cutSrc;\n\n // String with links masked to avoid interference with em and strong\n let maskedSrc = src;\n let match;\n let keepPrevChar, prevChar;\n\n // Mask out reflinks\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n // Mask out other blocks\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n\n // Mask out escaped em & strong delimiters\n while ((match = this.tokenizer.rules.inline.escapedEmSt.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);\n }\n\n while (src) {\n if (!keepPrevChar) {\n prevChar = '';\n }\n keepPrevChar = false;\n\n // extensions\n if (this.options.extensions\n && this.options.extensions.inline\n && this.options.extensions.inline.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // escape\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // tag\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // link\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // reflink, nolink\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // em & strong\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // code\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // br\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // del (gfm)\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // autolink\n if (token = this.tokenizer.autolink(src, mangle)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // url (gfm)\n if (!this.state.inLink && (token = this.tokenizer.url(src, mangle))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach(function(getStartIndex) {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) { startIndex = Math.min(startIndex, tempStart); }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc, smartypants)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== '_') { // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n return tokens;\n }\n}\n\n/**\n * Renderer\n */\nclass Renderer {\n constructor(options) {\n this.options = options || defaults;\n }\n\n code(code, infostring, escaped) {\n const lang = (infostring || '').match(/\\S*/)[0];\n if (this.options.highlight) {\n const out = this.options.highlight(code, lang);\n if (out != null && out !== code) {\n escaped = true;\n code = out;\n }\n }\n\n code = code.replace(/\\n$/, '') + '\\n';\n\n if (!lang) {\n return '<pre><code>'\n + (escaped ? code : escape(code, true))\n + '</code></pre>\\n';\n }\n\n return '<pre><code class=\"'\n + this.options.langPrefix\n + escape(lang, true)\n + '\">'\n + (escaped ? code : escape(code, true))\n + '</code></pre>\\n';\n }\n\n blockquote(quote) {\n return '<blockquote>\\n' + quote + '</blockquote>\\n';\n }\n\n html(html) {\n return html;\n }\n\n heading(text, level, raw, slugger) {\n if (this.options.headerIds) {\n return '<h'\n + level\n + ' id=\"'\n + this.options.headerPrefix\n + slugger.slug(raw)\n + '\">'\n + text\n + '</h'\n + level\n + '>\\n';\n }\n // ignore IDs\n return '<h' + level + '>' + text + '</h' + level + '>\\n';\n }\n\n hr() {\n return this.options.xhtml ? '<hr/>\\n' : '<hr>\\n';\n }\n\n list(body, ordered, start) {\n const type = ordered ? 'ol' : 'ul',\n startatt = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startatt + '>\\n' + body + '</' + type + '>\\n';\n }\n\n listitem(text) {\n return '<li>' + text + '</li>\\n';\n }\n\n checkbox(checked) {\n return '<input '\n + (checked ? 'checked=\"\" ' : '')\n + 'disabled=\"\" type=\"checkbox\"'\n + (this.options.xhtml ? ' /' : '')\n + '> ';\n }\n\n paragraph(text) {\n return '<p>' + text + '</p>\\n';\n }\n\n table(header, body) {\n if (body) body = '<tbody>' + body + '</tbody>';\n\n return '<table>\\n'\n + '<thead>\\n'\n + header\n + '</thead>\\n'\n + body\n + '</table>\\n';\n }\n\n tablerow(content) {\n return '<tr>\\n' + content + '</tr>\\n';\n }\n\n tablecell(content, flags) {\n const type = flags.header ? 'th' : 'td';\n const tag = flags.align\n ? '<' + type + ' align=\"' + flags.align + '\">'\n : '<' + type + '>';\n return tag + content + '</' + type + '>\\n';\n }\n\n // span level renderer\n strong(text) {\n return '<strong>' + text + '</strong>';\n }\n\n em(text) {\n return '<em>' + text + '</em>';\n }\n\n codespan(text) {\n return '<code>' + text + '</code>';\n }\n\n br() {\n return this.options.xhtml ? '<br/>' : '<br>';\n }\n\n del(text) {\n return '<del>' + text + '</del>';\n }\n\n link(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n let out = '<a href=\"' + escape(href) + '\"';\n if (title) {\n out += ' title=\"' + title + '\"';\n }\n out += '>' + text + '</a>';\n return out;\n }\n\n image(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n\n let out = '<img src=\"' + href + '\" alt=\"' + text + '\"';\n if (title) {\n out += ' title=\"' + title + '\"';\n }\n out += this.options.xhtml ? '/>' : '>';\n return out;\n }\n\n text(text) {\n return text;\n }\n}\n\n/**\n * TextRenderer\n * returns only the textual part of the token\n */\nclass TextRenderer {\n // no need for block level renderers\n strong(text) {\n return text;\n }\n\n em(text) {\n return text;\n }\n\n codespan(text) {\n return text;\n }\n\n del(text) {\n return text;\n }\n\n html(text) {\n return text;\n }\n\n text(text) {\n return text;\n }\n\n link(href, title, text) {\n return '' + text;\n }\n\n image(href, title, text) {\n return '' + text;\n }\n\n br() {\n return '';\n }\n}\n\n/**\n * Slugger generates header id\n */\nclass Slugger {\n constructor() {\n this.seen = {};\n }\n\n serialize(value) {\n return value\n .toLowerCase()\n .trim()\n // remove html tags\n .replace(/<[!\\/a-z].*?>/ig, '')\n // remove unwanted chars\n .replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g, '')\n .replace(/\\s/g, '-');\n }\n\n /**\n * Finds the next safe (unique) slug to use\n */\n getNextSafeSlug(originalSlug, isDryRun) {\n let slug = originalSlug;\n let occurenceAccumulator = 0;\n if (this.seen.hasOwnProperty(slug)) {\n occurenceAccumulator = this.seen[originalSlug];\n do {\n occurenceAccumulator++;\n slug = originalSlug + '-' + occurenceAccumulator;\n } while (this.seen.hasOwnProperty(slug));\n }\n if (!isDryRun) {\n this.seen[originalSlug] = occurenceAccumulator;\n this.seen[slug] = 0;\n }\n return slug;\n }\n\n /**\n * Convert string to unique id\n * @param {object} options\n * @param {boolean} options.dryrun Generates the next unique slug without updating the internal accumulator.\n */\n slug(value, options = {}) {\n const slug = this.serialize(value);\n return this.getNextSafeSlug(slug, options.dryrun);\n }\n}\n\n/**\n * Parsing & Compiling\n */\nclass Parser {\n constructor(options) {\n this.options = options || defaults;\n this.options.renderer = this.options.renderer || new Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.textRenderer = new TextRenderer();\n this.slugger = new Slugger();\n }\n\n /**\n * Static Parse Method\n */\n static parse(tokens, options) {\n const parser = new Parser(options);\n return parser.parse(tokens);\n }\n\n /**\n * Static Parse Inline Method\n */\n static parseInline(tokens, options) {\n const parser = new Parser(options);\n return parser.parseInline(tokens);\n }\n\n /**\n * Parse Loop\n */\n parse(tokens, top = true) {\n let out = '',\n i,\n j,\n k,\n l2,\n l3,\n row,\n cell,\n header,\n body,\n token,\n ordered,\n start,\n loose,\n itemBody,\n item,\n checked,\n task,\n checkbox,\n ret;\n\n const l = tokens.length;\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'paragraph', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'space': {\n continue;\n }\n case 'hr': {\n out += this.renderer.hr();\n continue;\n }\n case 'heading': {\n out += this.renderer.heading(\n this.parseInline(token.tokens),\n token.depth,\n unescape(this.parseInline(token.tokens, this.textRenderer)),\n this.slugger);\n continue;\n }\n case 'code': {\n out += this.renderer.code(token.text,\n token.lang,\n token.escaped);\n continue;\n }\n case 'table': {\n header = '';\n\n // header\n cell = '';\n l2 = token.header.length;\n for (j = 0; j < l2; j++) {\n cell += this.renderer.tablecell(\n this.parseInline(token.header[j].tokens),\n { header: true, align: token.align[j] }\n );\n }\n header += this.renderer.tablerow(cell);\n\n body = '';\n l2 = token.rows.length;\n for (j = 0; j < l2; j++) {\n row = token.rows[j];\n\n cell = '';\n l3 = row.length;\n for (k = 0; k < l3; k++) {\n cell += this.renderer.tablecell(\n this.parseInline(row[k].tokens),\n { header: false, align: token.align[k] }\n );\n }\n\n body += this.renderer.tablerow(cell);\n }\n out += this.renderer.table(header, body);\n continue;\n }\n case 'blockquote': {\n body = this.parse(token.tokens);\n out += this.renderer.blockquote(body);\n continue;\n }\n case 'list': {\n ordered = token.ordered;\n start = token.start;\n loose = token.loose;\n l2 = token.items.length;\n\n body = '';\n for (j = 0; j < l2; j++) {\n item = token.items[j];\n checked = item.checked;\n task = item.task;\n\n itemBody = '';\n if (item.task) {\n checkbox = this.renderer.checkbox(checked);\n if (loose) {\n if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n } else {\n item.tokens.unshift({\n type: 'text',\n text: checkbox\n });\n }\n } else {\n itemBody += checkbox;\n }\n }\n\n itemBody += this.parse(item.tokens, loose);\n body += this.renderer.listitem(itemBody, task, checked);\n }\n\n out += this.renderer.list(body, ordered, start);\n continue;\n }\n case 'html': {\n // TODO parse inline content if parameter markdown=1\n out += this.renderer.html(token.text);\n continue;\n }\n case 'paragraph': {\n out += this.renderer.paragraph(this.parseInline(token.tokens));\n continue;\n }\n case 'text': {\n body = token.tokens ? this.parseInline(token.tokens) : token.text;\n while (i + 1 < l && tokens[i + 1].type === 'text') {\n token = tokens[++i];\n body += '\\n' + (token.tokens ? this.parseInline(token.tokens) : token.text);\n }\n out += top ? this.renderer.paragraph(body) : body;\n continue;\n }\n\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n\n return out;\n }\n\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens, renderer) {\n renderer = renderer || this.renderer;\n let out = '',\n i,\n token,\n ret;\n\n const l = tokens.length;\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'escape': {\n out += renderer.text(token.text);\n break;\n }\n case 'html': {\n out += renderer.html(token.text);\n break;\n }\n case 'link': {\n out += renderer.link(token.href, token.title, this.parseInline(token.tokens, renderer));\n break;\n }\n case 'image': {\n out += renderer.image(token.href, token.title, token.text);\n break;\n }\n case 'strong': {\n out += renderer.strong(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'em': {\n out += renderer.em(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'codespan': {\n out += renderer.codespan(token.text);\n break;\n }\n case 'br': {\n out += renderer.br();\n break;\n }\n case 'del': {\n out += renderer.del(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'text': {\n out += renderer.text(token.text);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n}\n\n/**\n * Marked\n */\nfunction marked(src, opt, callback) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n if (typeof opt === 'function') {\n callback = opt;\n opt = null;\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n if (callback) {\n const highlight = opt.highlight;\n let tokens;\n\n try {\n tokens = Lexer.lex(src, opt);\n } catch (e) {\n return callback(e);\n }\n\n const done = function(err) {\n let out;\n\n if (!err) {\n try {\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n out = Parser.parse(tokens, opt);\n } catch (e) {\n err = e;\n }\n }\n\n opt.highlight = highlight;\n\n return err\n ? callback(err)\n : callback(null, out);\n };\n\n if (!highlight || highlight.length < 3) {\n return done();\n }\n\n delete opt.highlight;\n\n if (!tokens.length) return done();\n\n let pending = 0;\n marked.walkTokens(tokens, function(token) {\n if (token.type === 'code') {\n pending++;\n setTimeout(() => {\n highlight(token.text, token.lang, function(err, code) {\n if (err) {\n return done(err);\n }\n if (code != null && code !== token.text) {\n token.text = code;\n token.escaped = true;\n }\n\n pending--;\n if (pending === 0) {\n done();\n }\n });\n }, 0);\n }\n });\n\n if (pending === 0) {\n done();\n }\n\n return;\n }\n\n try {\n const tokens = Lexer.lex(src, opt);\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n return Parser.parse(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (opt.silent) {\n return '<p>An error occurred:</p><pre>'\n + escape(e.message + '', true)\n + '</pre>';\n }\n throw e;\n }\n}\n\n/**\n * Options\n */\n\nmarked.options =\nmarked.setOptions = function(opt) {\n merge(marked.defaults, opt);\n changeDefaults(marked.defaults);\n return marked;\n};\n\nmarked.getDefaults = getDefaults;\n\nmarked.defaults = defaults;\n\n/**\n * Use Extension\n */\n\nmarked.use = function(...args) {\n const opts = merge({}, ...args);\n const extensions = marked.defaults.extensions || { renderers: {}, childTokens: {} };\n let hasExtensions;\n\n args.forEach((pack) => {\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n hasExtensions = true;\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n if (ext.renderer) { // Renderer extensions\n const prevRenderer = extensions.renderers ? extensions.renderers[ext.name] : null;\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function(...args) {\n let ret = ext.renderer.apply(this, args);\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n return ret;\n };\n } else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if (ext.tokenizer) { // Tokenizer Extensions\n if (!ext.level || (ext.level !== 'block' && ext.level !== 'inline')) {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n if (extensions[ext.level]) {\n extensions[ext.level].unshift(ext.tokenizer);\n } else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) { // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n } else {\n extensions.startBlock = [ext.start];\n }\n } else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n } else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if (ext.childTokens) { // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n }\n\n // ==-- Parse \"overwrite\" extensions --== //\n if (pack.renderer) {\n const renderer = marked.defaults.renderer || new Renderer();\n for (const prop in pack.renderer) {\n const prevRenderer = renderer[prop];\n // Replace renderer with func to run extension, but fall back if false\n renderer[prop] = (...args) => {\n let ret = pack.renderer[prop].apply(renderer, args);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n return ret;\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = marked.defaults.tokenizer || new Tokenizer();\n for (const prop in pack.tokenizer) {\n const prevTokenizer = tokenizer[prop];\n // Replace tokenizer with func to run extension, but fall back if false\n tokenizer[prop] = (...args) => {\n let ret = pack.tokenizer[prop].apply(tokenizer, args);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n\n // ==-- Parse WalkTokens extensions --== //\n if (pack.walkTokens) {\n const walkTokens = marked.defaults.walkTokens;\n opts.walkTokens = function(token) {\n pack.walkTokens.call(this, token);\n if (walkTokens) {\n walkTokens.call(this, token);\n }\n };\n }\n\n if (hasExtensions) {\n opts.extensions = extensions;\n }\n\n marked.setOptions(opts);\n });\n};\n\n/**\n * Run callback for every token\n */\n\nmarked.walkTokens = function(tokens, callback) {\n for (const token of tokens) {\n callback.call(marked, token);\n switch (token.type) {\n case 'table': {\n for (const cell of token.header) {\n marked.walkTokens(cell.tokens, callback);\n }\n for (const row of token.rows) {\n for (const cell of row) {\n marked.walkTokens(cell.tokens, callback);\n }\n }\n break;\n }\n case 'list': {\n marked.walkTokens(token.items, callback);\n break;\n }\n default: {\n if (marked.defaults.extensions && marked.defaults.extensions.childTokens && marked.defaults.extensions.childTokens[token.type]) { // Walk any extensions\n marked.defaults.extensions.childTokens[token.type].forEach(function(childTokens) {\n marked.walkTokens(token[childTokens], callback);\n });\n } else if (token.tokens) {\n marked.walkTokens(token.tokens, callback);\n }\n }\n }\n }\n};\n\n/**\n * Parse Inline\n */\nmarked.parseInline = function(src, opt) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked.parseInline(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked.parseInline(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n try {\n const tokens = Lexer.lexInline(src, opt);\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n return Parser.parseInline(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (opt.silent) {\n return '<p>An error occurred:</p><pre>'\n + escape(e.message + '', true)\n + '</pre>';\n }\n throw e;\n }\n};\n\n/**\n * Expose\n */\nmarked.Parser = Parser;\nmarked.parser = Parser.parse;\nmarked.Renderer = Renderer;\nmarked.TextRenderer = TextRenderer;\nmarked.Lexer = Lexer;\nmarked.lexer = Lexer.lex;\nmarked.Tokenizer = Tokenizer;\nmarked.Slugger = Slugger;\nmarked.parse = marked;\n\nconst options = marked.options;\nconst setOptions = marked.setOptions;\nconst use = marked.use;\nconst walkTokens = marked.walkTokens;\nconst parseInline = marked.parseInline;\nconst parse = marked;\nconst parser = Parser.parse;\nconst lexer = Lexer.lex;\n\nexport { Lexer, Parser, Renderer, Slugger, TextRenderer, Tokenizer, defaults, getDefaults, lexer, marked, options, parse, parseInline, parser, setOptions, use, walkTokens };\n","import { marked } from 'marked'\nimport { ChangelogTag } from '.'\nimport type { Change, ChangelogVersion } from '../../services'\n\ntype Props = {\n\tchange: Change,\n\tactiveTags?: string[],\n\ttoggleTag?: (tag: string) => unknown,\n}\nexport function ChangelogEntry({ change, activeTags, toggleTag }: Props) {\n\treturn <div class=\"changelog-entry\">\n\t\t<div class=\"changelog-version\">\n\t\t\t<ArticleLink {...change.version}/>\n\t\t\t<ArticleLink {...change.group}/>\n\t\t</div>\n\t\t<div class=\"changelog-tags\">\n\t\t\t{change.tags.map(tag => <ChangelogTag label={tag} onClick={toggleTag ? () => toggleTag(tag) : undefined} active={activeTags?.includes(tag)} />)}\n\t\t</div>\n\t\t<div class=\"changelog-content\" dangerouslySetInnerHTML={{ __html: marked(change.content) }} />\n\t</div>\n}\n\nfunction ArticleLink({ id, article }: ChangelogVersion) {\n\treturn article === null\n\t\t? <span>{id}</span>\n\t\t: <a href={`https://www.minecraft.net/en-us/article/${article}`} target=\"_blank\">{id}</a>\n}\n","import { Octicon } from '..'\nimport { hashString } from '../../Utils'\n\ntype TagProps = {\n\tlabel: string,\n\tactive?: boolean,\n\tonClick?: (e: MouseEvent) => unknown,\n}\nexport function ChangelogTag({ label, active, onClick }: TagProps) {\n\tconst color = label === 'breaking' ? 5 : hashString(label) % 360\n\treturn <div class={`changelog-tag${active ? ' active' : ''}${onClick ? ' clickable' : ''}`} style={`--tint: ${color}`} onClick={onClick}>\n\t\t{label === 'breaking' && Octicon.alert}\n\t\t{label}\n\t</div>\n}\n","import { useMemo, useState } from 'preact/hooks'\nimport { Btn, TextInput } from '..'\nimport { useLocale } from '../../contexts'\nimport type { Change } from '../../services'\nimport { ChangelogEntry } from './ChangelogEntry'\nimport { ChangelogTag } from './ChangelogTag'\n\ninterface Props {\n\tchanges: Change[] | undefined,\n\tdefaultOrder: 'asc' | 'desc',\n}\nexport function ChangelogList({ changes, defaultOrder }: Props) {\n\tconst { locale } = useLocale()\n\t\n\tconst [search, setSearch] = useState('')\n\tconst [tags, setTags] = useState<string[]>([])\n\tconst toggleTag = (tag: string) => {\n\t\tif (!tags.includes(tag)) {\n\t\t\tsetTags([...tags, tag])\n\t\t} else {\n\t\t\tsetTags(tags.filter(t => t !== tag))\n\t\t}\n\t}\n\n\tconst filteredChangelogs = useMemo(() => {\n\t\tconst query = search.split(' ').map(q => q.trim().toLowerCase()).filter(q => q.length > 0)\n\t\tif (query.length === 0 && tags.length === 0) return changes\n\t\treturn changes?.filter(change => {\n\t\t\tif (!tags.every(tag => change.tags.includes(tag))) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tconst content = change.tags.join(' ') + ' ' + change.content.toLowerCase()\n\t\t\treturn query.every(q => {\n\t\t\t\tif (q.startsWith('!')) {\n\t\t\t\t\treturn q.length === 1 || !content.includes(q.slice(1))\n\t\t\t\t}\n\t\t\t\treturn content.includes(q)\n\t\t\t})\n\t\t})\n\t}, [changes, search, tags])\n\n\tconst [sort, setSort] = useState(defaultOrder === 'desc')\n\n\tconst sortedChangelogs = useMemo(() => {\n\t\treturn filteredChangelogs?.sort((a, b) => sort ? b.order - a.order : a.order - b.order)\n\t}, [filteredChangelogs, sort])\n\n\treturn <>\n\t\t<div class=\"changelog-query\">\n\t\t\t<TextInput class=\"btn btn-input changelog-search\" list=\"sound-list\" placeholder={locale('changelog.search')}\n\t\t\t\tvalue={search} onChange={setSearch} />\n\t\t\t<Btn icon={sort ? 'sort_desc' : 'sort_asc'} label={sort ? 'Newest first' : 'Oldest first'} onClick={() => setSort(!sort)} />\n\t\t</div>\n\t\t{tags.length > 0 && <div class=\"changelog-tags\">\n\t\t\t{tags.map(tag => <ChangelogTag label={tag} onClick={() => setTags(tags.filter(t => t !== tag))} />)}\n\t\t</div>}\n\t\t<div class=\"changelog-list\">\n\t\t\t{sortedChangelogs === undefined\n\t\t\t\t? <span class=\"note\">{locale('loading')}</span>\n\t\t\t\t: sortedChangelogs.length === 0\n\t\t\t\t\t? <span class=\"note\">{locale('changelog.no_results')}</span>\n\t\t\t\t\t:\tsortedChangelogs.map(change =>\n\t\t\t\t\t\t<ChangelogEntry change={change} activeTags={tags} toggleTag={toggleTag} />)}\n\t\t</div>\n\t</>\n}\n","import { useEffect, useMemo, useState } from 'preact/hooks'\nimport { VersionMetaData } from '.'\nimport { useLocale } from '../../contexts'\nimport type { Change, VersionMeta } from '../../services'\nimport { getChangelogs } from '../../services'\nimport { Giscus } from '../Giscus'\nimport { ChangelogList } from './ChangelogList'\n\ntype Tab = 'changelog' | 'discussion' \n\ninterface Props {\n\tversion: VersionMeta\n}\nexport function VersionDetail({ version }: Props) {\n\tconst { locale } = useLocale()\n\n\tconst [tab, setTab] = useState<Tab>('changelog')\n\n\tconst [changelogs, setChangelogs] = useState<Change[] | undefined>(undefined)\n\tuseEffect(() => {\n\t\tgetChangelogs()\n\t\t\t.then(changelogs => setChangelogs(\n\t\t\t\tchangelogs.map(c => ({ ...c, tags: c.tags.filter(t => t !== c.group.id) }))\n\t\t\t))\n\t\t\t.catch(e => console.error(e))\n\t}, [])\n\n\tconst filteredChangelogs = useMemo(() =>\n\t\tchangelogs?.filter(c => c.version.id === version.id || c.group.id === version.id),\n\t[version.id, changelogs])\n\n\treturn <>\n\t\t<div class=\"version-detail\">\n\t\t\t<h2>{version.name}</h2>\n\t\t\t<div class=\"version-info\">\n\t\t\t\t<VersionMetaData label={locale('versions.released')} value={releaseDate(version)} />\n\t\t\t\t<VersionMetaData label={locale('versions.release_target')} value={version.release_target} link={version.id !== version.release_target ? `/versions/?id=${version.release_target}` : undefined} />\n\t\t\t\t<VersionMetaData label={locale('versions.data_version')} value={version.data_version} />\n\t\t\t\t<VersionMetaData label={locale('versions.protocol_version')} value={version.protocol_version} />\n\t\t\t\t<VersionMetaData label={locale('versions.data_pack_format')} value={version.data_pack_version} />\n\t\t\t\t<VersionMetaData label={locale('versions.resource_pack_format')} value={version.resource_pack_version} />\n\t\t\t</div>\n\t\t\t<div class=\"version-tabs\">\n\t\t\t\t<span class={tab === 'changelog' ? 'selected' : ''} onClick={() => setTab('changelog')}>{locale('versions.technical_changes')}</span>\n\t\t\t\t<span class={tab === 'discussion' ? 'selected' : ''} onClick={() => setTab('discussion')}>{locale('versions.discussion')}</span>\n\t\t\t</div>\n\t\t\t<div class=\"version-tab\">\n\t\t\t\t{tab === 'changelog' && <ChangelogList changes={filteredChangelogs} defaultOrder=\"asc\" />}\n\t\t\t\t{tab === 'discussion' && <Giscus term={`version/${version.id}`} />}\n\t\t\t</div>\n\t\t</div>\n\t</>\n}\n\nexport function releaseDate(version: VersionMeta) {\n\treturn new Date(version.release_time).toLocaleDateString(undefined, { day: 'numeric', month: 'short', year: 'numeric' })\n}\n","import { releaseDate, VersionMetaData } from '.'\nimport { useLocale } from '../../contexts'\nimport type { VersionMeta } from '../../services'\n\ninterface Props {\n\tversion: VersionMeta,\n\tlink?: string,\n}\nexport function VersionEntry({ version, link }: Props) {\n\tconst { locale } = useLocale()\n\n\treturn <a class=\"version-entry\" href={link}>\n\t\t<span class=\"version-id\">{version.id}</span>\n\t\t<VersionMetaData label={locale('versions.released')} value={releaseDate(version)} compact />\n\t\t<VersionMetaData label={locale('versions.data_version')} value={version.data_version} optional />\n\t\t<VersionMetaData label={locale('versions.pack_format')} value={version.data_pack_version} optional />\n\t</a>\n}\n","import { useMemo, useState } from 'preact/hooks'\nimport { Checkbox, TextInput } from '..'\nimport { useLocale } from '../../contexts'\nimport type { VersionMeta } from '../../services'\nimport { VersionEntry } from './VersionEntry'\n\ninterface Props {\n\tversions: VersionMeta[]\n\tlink?: (id: string) => string\n}\nexport function VersionList({ versions, link }: Props) {\n\tconst { locale } = useLocale()\n\t\n\tconst [snapshots, setSnapshots] = useState(true)\n\tconst [search, setSearch] = useState('')\n\n\tconst filteredVersions = useMemo(() => versions.filter(v => {\n\t\tif (v.type === 'snapshot' && !snapshots) return false\n\t\treturn v.id.includes(search)\n\t}), [versions, snapshots, search])\n\n\n\treturn <>\n\t\t<div class=\"versions-controls\">\n\t\t\t<TextInput class=\"btn btn-input version-search\" placeholder={locale('versions.search')}\n\t\t\t\tvalue={search} onChange={setSearch} />\n\t\t\t<Checkbox label=\"Include snapshots\" value={snapshots} onChange={setSnapshots} />\n\t\t</div>\n\t\t<div class=\"version-list\">\n\t\t\t{filteredVersions.map(v => <VersionEntry version={v} link={link?.(v.id)} />)}\n\t\t\t{filteredVersions.length === 0 && <span>\n\t\t\t\t{locale('versions.no_results')}\n\t\t\t</span>}\n\t\t</div>\n\t</>\n}\n","import { Octicon } from '..'\n\ninterface Props {\n\tlabel: string,\n\tvalue: string | number,\n\tlink?: string,\n\tcompact?: boolean,\n\toptional?: boolean,\n}\nexport function VersionMetaData({ label, value, link, compact, optional }: Props) {\n\treturn <div class={`version-metadata${optional ? ' version-metadata-hide' : ''}`}>\n\t\t<span class={compact ? 'version-metadata-hide' : undefined}>{label}: </span>\n\t\t<span class=\"version-metadata-value\">{value}</span>\n\t\t{link && <a href={link} class=\"version-metadata-link\">{Octicon.link_external}</a>}\n\t</div>\n}\n","import { ChangelogTag } from './versions'\n\ninterface Props {\n\ttitle: string,\n\tlink: string,\n\tversions: string[],\n\ttags: string[],\n\tactiveTags?: string[],\n\ttoggleTag?: (tag: string) => unknown,\n}\nexport function GuideCard({ title, link, versions, tags, activeTags, toggleTag }: Props) {\n\tconst onToggleTag = (tag: string) => (e: MouseEvent) => {\n\t\tif (toggleTag) toggleTag(tag)\n\t\te.preventDefault()\n\t\te.stopImmediatePropagation()\n\t}\n\n\treturn <a class=\"guide-card\" href={link} >\n\t\t<span class=\"guide-versions\">{versions.join(' • ')}</span>\n\t\t<h3>{title}</h3>\n\t\t<div class=\"guide-tags\">\n\t\t\t{tags.sort().map(tag => <ChangelogTag label={tag} onClick={onToggleTag(tag)} active={activeTags?.includes(tag)} />)}\n\t\t</div>\n\t</a>\n}\n","import { getCurrentUrl, Link, route } from 'preact-router'\nimport { Btn, BtnMenu, Icons, Octicon } from '.'\nimport config from '../../config.json'\nimport { useLocale, useTheme, useTitle, useVersion } from '../contexts'\nimport { checkVersion } from '../services'\nimport { cleanUrl, getGenerator } from '../Utils'\n\nconst Themes: Record<string, keyof typeof Octicon> = {\n\tsystem: 'device_desktop',\n\tdark: 'moon',\n\tlight: 'sun',\n}\n\nexport function Header() {\n\tconst { lang, locale, changeLanguage } = useLocale()\n\tconst { theme, changeTheme } = useTheme()\n\tconst { version } = useVersion()\n\tconst { title } = useTitle()\n\tconst gen = getGenerator(getCurrentUrl())\n\n\treturn <header>\n\t\t<div class=\"title\">\n\t\t\t<Link class=\"home-link\" href=\"/\" aria-label={locale('home')} data-cy=\"home-link\">{Icons.home}</Link>\n\t\t\t<h1>{title}</h1>\n\t\t\t{gen && <BtnMenu icon=\"chevron_down\" tooltip={locale('switch_generator')} data-cy=\"generator-switcher\">\n\t\t\t\t{config.generators\n\t\t\t\t\t.filter(g => g.category === gen?.category && checkVersion(version, g.minVersion))\n\t\t\t\t\t.map(g =>\n\t\t\t\t\t\t<Btn label={locale(g.id)} active={g.id === gen.id} onClick={() => route(cleanUrl(g.url))} />\n\t\t\t\t\t)}\n\t\t\t</BtnMenu>}\n\t\t</div>\n\t\t<nav>\n\t\t\t<ul>\n\t\t\t\t<li data-cy=\"language-switcher\">\n\t\t\t\t\t<BtnMenu icon=\"globe\" tooltip={locale('language')}>\n\t\t\t\t\t\t{config.languages.map(({ code, name }) =>\n\t\t\t\t\t\t\t<Btn label={name} active={code === lang}\n\t\t\t\t\t\t\t\tonClick={() => changeLanguage(code)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t</li>\n\t\t\t\t<li data-cy=\"theme-switcher\">\n\t\t\t\t\t<BtnMenu icon={Themes[theme]} tooltip={locale('theme')}>\n\t\t\t\t\t\t{Object.entries(Themes).map(([th, icon]) =>\n\t\t\t\t\t\t\t<Btn icon={icon} label={locale(`theme.${th}`)} active={th === theme}\n\t\t\t\t\t\t\t\tonClick={() => changeTheme(th)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t</li>\n\t\t\t\t<li class=\"dimmed\">\n\t\t\t\t\t<a href=\"https://github.com/misode/misode.github.io\" target=\"_blank\" rel=\"noreferrer\" class=\"tooltipped tip-sw\" aria-label={locale('github')}>\n\t\t\t\t\t\t{Octicon.mark_github}\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</nav>\n\t</header>\n}\n","export const Icons = {\n\thome: <svg width=\"32\" height=\"28\" viewBox=\"0 0 32 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"26\" height=\"6\" rx=\"3\" fill=\"#7CB45C\"/><rect x=\"8\" width=\"18\" height=\"6\" rx=\"3\" fill=\"#4BA041\"/><rect y=\"11\" width=\"32\" height=\"6\" rx=\"3\" fill=\"#AAA8A8\"/><rect x=\"11\" y=\"11\" width=\"21\" height=\"6\" rx=\"3\" fill=\"#91908F\"/><rect x=\"11\" y=\"22\" width=\"21\" height=\"6\" rx=\"3\" fill=\"#70B5C3\"/><rect x=\"17\" y=\"22\" width=\"15\" height=\"6\" rx=\"3\" fill=\"#4D989B\"/></svg>,\n\treport: <svg width=\"30\" height=\"36\" viewBox=\"0 0 30 36\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 16C0 13.7909 1.79086 12 4 12V12C6.20914 12 8 13.7909 8 16V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V16Z\" fill=\"#6ACC5D\"/><path d=\"M11 4C11 1.79086 12.7909 0 15 0V0C17.2091 0 19 1.79086 19 4V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V4Z\" fill=\"#FF4C4C\"/><path d=\"M22 10C22 7.79086 23.7909 6 26 6V6C28.2091 6 30 7.79086 30 10V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V10Z\" fill=\"#E5B442\"/><path d=\"M0 23C0 20.7909 1.79086 19 4 19V19C6.20914 19 8 20.7909 8 23V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V23Z\" fill=\"#2BAD1D\"/><path d=\"M11 15C11 12.7909 12.7909 11 15 11V11C17.2091 11 19 12.7909 19 15V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V15Z\" fill=\"#C10B0B\"/><path d=\"M22 19C22 16.7909 23.7909 15 26 15V15C28.2091 15 30 16.7909 30 19V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V19Z\" fill=\"#CC8E00\"/></svg>,\n\tsounds: <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"10\" cy=\"10\" r=\"10\" fill=\"#451475\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3.5 10C3.5 8.27609 4.18482 6.62279 5.40381 5.40381C6.62279 4.18482 8.27609 3.5 10 3.5C11.7239 3.5 13.3772 4.18482 14.5962 5.40381C15.8152 6.62279 16.5 8.27609 16.5 10C16.5 11.7239 15.8152 13.3772 14.5962 14.5962C13.3772 15.8152 11.7239 16.5 10 16.5C8.27609 16.5 6.62279 15.8152 5.40381 14.5962C4.18482 13.3772 3.5 11.7239 3.5 10V10ZM10 2C7.87827 2 5.84344 2.84285 4.34315 4.34315C2.84285 5.84344 2 7.87827 2 10C2 12.1217 2.84285 14.1566 4.34315 15.6569C5.84344 17.1571 7.87827 18 10 18C12.1217 18 14.1566 17.1571 15.6569 15.6569C17.1571 14.1566 18 12.1217 18 10C18 7.87827 17.1571 5.84344 15.6569 4.34315C14.1566 2.84285 12.1217 2 10 2V2ZM8.379 7.227C8.34101 7.20412 8.29762 7.19175 8.25327 7.19117C8.20892 7.19059 8.16522 7.20181 8.12664 7.2237C8.08807 7.24558 8.05601 7.27733 8.03375 7.3157C8.0115 7.35406 7.99985 7.39765 8 7.442V12.559C8.00003 12.6033 8.0118 12.6467 8.03413 12.685C8.05646 12.7232 8.08854 12.7548 8.12708 12.7765C8.16563 12.7983 8.20926 12.8095 8.25352 12.8088C8.29778 12.8082 8.34108 12.7958 8.379 12.773L12.643 10.214C12.6798 10.1917 12.7103 10.1604 12.7315 10.1229C12.7526 10.0854 12.7638 10.043 12.7638 10C12.7638 9.95695 12.7526 9.91463 12.7315 9.87714C12.7103 9.83965 12.6798 9.80825 12.643 9.786L8.379 7.227Z\" fill=\"#C5A5E6\"/></svg>,\n}\n","/*!\n * howler.js v2.2.3\n * howlerjs.com\n *\n * (c) 2013-2020, James Simpson of GoldFire Studios\n * goldfirestudios.com\n *\n * MIT License\n */\n\n(function() {\n\n 'use strict';\n\n /** Global Methods **/\n /***************************************************************************/\n\n /**\n * Create the global controller. All contained methods and properties apply\n * to all sounds that are currently playing or will be in the future.\n */\n var HowlerGlobal = function() {\n this.init();\n };\n HowlerGlobal.prototype = {\n /**\n * Initialize the global Howler object.\n * @return {Howler}\n */\n init: function() {\n var self = this || Howler;\n\n // Create a global ID counter.\n self._counter = 1000;\n\n // Pool of unlocked HTML5 Audio objects.\n self._html5AudioPool = [];\n self.html5PoolSize = 10;\n\n // Internal properties.\n self._codecs = {};\n self._howls = [];\n self._muted = false;\n self._volume = 1;\n self._canPlayEvent = 'canplaythrough';\n self._navigator = (typeof window !== 'undefined' && window.navigator) ? window.navigator : null;\n\n // Public properties.\n self.masterGain = null;\n self.noAudio = false;\n self.usingWebAudio = true;\n self.autoSuspend = true;\n self.ctx = null;\n\n // Set to false to disable the auto audio unlocker.\n self.autoUnlock = true;\n\n // Setup the various state values for global tracking.\n self._setup();\n\n return self;\n },\n\n /**\n * Get/set the global volume for all sounds.\n * @param {Float} vol Volume from 0.0 to 1.0.\n * @return {Howler/Float} Returns self or current volume.\n */\n volume: function(vol) {\n var self = this || Howler;\n vol = parseFloat(vol);\n\n // If we don't have an AudioContext created yet, run the setup.\n if (!self.ctx) {\n setupAudioContext();\n }\n\n if (typeof vol !== 'undefined' && vol >= 0 && vol <= 1) {\n self._volume = vol;\n\n // Don't update any of the nodes if we are muted.\n if (self._muted) {\n return self;\n }\n\n // When using Web Audio, we just need to adjust the master gain.\n if (self.usingWebAudio) {\n self.masterGain.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n }\n\n // Loop through and change volume for all HTML5 audio nodes.\n for (var i=0; i<self._howls.length; i++) {\n if (!self._howls[i]._webAudio) {\n // Get all of the sounds in this Howl group.\n var ids = self._howls[i]._getSoundIds();\n\n // Loop through all sounds and change the volumes.\n for (var j=0; j<ids.length; j++) {\n var sound = self._howls[i]._soundById(ids[j]);\n\n if (sound && sound._node) {\n sound._node.volume = sound._volume * vol;\n }\n }\n }\n }\n\n return self;\n }\n\n return self._volume;\n },\n\n /**\n * Handle muting and unmuting globally.\n * @param {Boolean} muted Is muted or not.\n */\n mute: function(muted) {\n var self = this || Howler;\n\n // If we don't have an AudioContext created yet, run the setup.\n if (!self.ctx) {\n setupAudioContext();\n }\n\n self._muted = muted;\n\n // With Web Audio, we just need to mute the master gain.\n if (self.usingWebAudio) {\n self.masterGain.gain.setValueAtTime(muted ? 0 : self._volume, Howler.ctx.currentTime);\n }\n\n // Loop through and mute all HTML5 Audio nodes.\n for (var i=0; i<self._howls.length; i++) {\n if (!self._howls[i]._webAudio) {\n // Get all of the sounds in this Howl group.\n var ids = self._howls[i]._getSoundIds();\n\n // Loop through all sounds and mark the audio node as muted.\n for (var j=0; j<ids.length; j++) {\n var sound = self._howls[i]._soundById(ids[j]);\n\n if (sound && sound._node) {\n sound._node.muted = (muted) ? true : sound._muted;\n }\n }\n }\n }\n\n return self;\n },\n\n /**\n * Handle stopping all sounds globally.\n */\n stop: function() {\n var self = this || Howler;\n\n // Loop through all Howls and stop them.\n for (var i=0; i<self._howls.length; i++) {\n self._howls[i].stop();\n }\n\n return self;\n },\n\n /**\n * Unload and destroy all currently loaded Howl objects.\n * @return {Howler}\n */\n unload: function() {\n var self = this || Howler;\n\n for (var i=self._howls.length-1; i>=0; i--) {\n self._howls[i].unload();\n }\n\n // Create a new AudioContext to make sure it is fully reset.\n if (self.usingWebAudio && self.ctx && typeof self.ctx.close !== 'undefined') {\n self.ctx.close();\n self.ctx = null;\n setupAudioContext();\n }\n\n return self;\n },\n\n /**\n * Check for codec support of specific extension.\n * @param {String} ext Audio file extention.\n * @return {Boolean}\n */\n codecs: function(ext) {\n return (this || Howler)._codecs[ext.replace(/^x-/, '')];\n },\n\n /**\n * Setup various state values for global tracking.\n * @return {Howler}\n */\n _setup: function() {\n var self = this || Howler;\n\n // Keeps track of the suspend/resume state of the AudioContext.\n self.state = self.ctx ? self.ctx.state || 'suspended' : 'suspended';\n\n // Automatically begin the 30-second suspend process\n self._autoSuspend();\n\n // Check if audio is available.\n if (!self.usingWebAudio) {\n // No audio is available on this system if noAudio is set to true.\n if (typeof Audio !== 'undefined') {\n try {\n var test = new Audio();\n\n // Check if the canplaythrough event is available.\n if (typeof test.oncanplaythrough === 'undefined') {\n self._canPlayEvent = 'canplay';\n }\n } catch(e) {\n self.noAudio = true;\n }\n } else {\n self.noAudio = true;\n }\n }\n\n // Test to make sure audio isn't disabled in Internet Explorer.\n try {\n var test = new Audio();\n if (test.muted) {\n self.noAudio = true;\n }\n } catch (e) {}\n\n // Check for supported codecs.\n if (!self.noAudio) {\n self._setupCodecs();\n }\n\n return self;\n },\n\n /**\n * Check for browser support for various codecs and cache the results.\n * @return {Howler}\n */\n _setupCodecs: function() {\n var self = this || Howler;\n var audioTest = null;\n\n // Must wrap in a try/catch because IE11 in server mode throws an error.\n try {\n audioTest = (typeof Audio !== 'undefined') ? new Audio() : null;\n } catch (err) {\n return self;\n }\n\n if (!audioTest || typeof audioTest.canPlayType !== 'function') {\n return self;\n }\n\n var mpegTest = audioTest.canPlayType('audio/mpeg;').replace(/^no$/, '');\n\n // Opera version <33 has mixed MP3 support, so we need to check for and block it.\n var ua = self._navigator ? self._navigator.userAgent : '';\n var checkOpera = ua.match(/OPR\\/([0-6].)/g);\n var isOldOpera = (checkOpera && parseInt(checkOpera[0].split('/')[1], 10) < 33);\n var checkSafari = ua.indexOf('Safari') !== -1 && ua.indexOf('Chrome') === -1;\n var safariVersion = ua.match(/Version\\/(.*?) /);\n var isOldSafari = (checkSafari && safariVersion && parseInt(safariVersion[1], 10) < 15);\n\n self._codecs = {\n mp3: !!(!isOldOpera && (mpegTest || audioTest.canPlayType('audio/mp3;').replace(/^no$/, ''))),\n mpeg: !!mpegTest,\n opus: !!audioTest.canPlayType('audio/ogg; codecs=\"opus\"').replace(/^no$/, ''),\n ogg: !!audioTest.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, ''),\n oga: !!audioTest.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, ''),\n wav: !!(audioTest.canPlayType('audio/wav; codecs=\"1\"') || audioTest.canPlayType('audio/wav')).replace(/^no$/, ''),\n aac: !!audioTest.canPlayType('audio/aac;').replace(/^no$/, ''),\n caf: !!audioTest.canPlayType('audio/x-caf;').replace(/^no$/, ''),\n m4a: !!(audioTest.canPlayType('audio/x-m4a;') || audioTest.canPlayType('audio/m4a;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n m4b: !!(audioTest.canPlayType('audio/x-m4b;') || audioTest.canPlayType('audio/m4b;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n mp4: !!(audioTest.canPlayType('audio/x-mp4;') || audioTest.canPlayType('audio/mp4;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n weba: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/, '')),\n webm: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/, '')),\n dolby: !!audioTest.canPlayType('audio/mp4; codecs=\"ec-3\"').replace(/^no$/, ''),\n flac: !!(audioTest.canPlayType('audio/x-flac;') || audioTest.canPlayType('audio/flac;')).replace(/^no$/, '')\n };\n\n return self;\n },\n\n /**\n * Some browsers/devices will only allow audio to be played after a user interaction.\n * Attempt to automatically unlock audio on the first user interaction.\n * Concept from: http://paulbakaus.com/tutorials/html5/web-audio-on-ios/\n * @return {Howler}\n */\n _unlockAudio: function() {\n var self = this || Howler;\n\n // Only run this if Web Audio is supported and it hasn't already been unlocked.\n if (self._audioUnlocked || !self.ctx) {\n return;\n }\n\n self._audioUnlocked = false;\n self.autoUnlock = false;\n\n // Some mobile devices/platforms have distortion issues when opening/closing tabs and/or web views.\n // Bugs in the browser (especially Mobile Safari) can cause the sampleRate to change from 44100 to 48000.\n // By calling Howler.unload(), we create a new AudioContext with the correct sampleRate.\n if (!self._mobileUnloaded && self.ctx.sampleRate !== 44100) {\n self._mobileUnloaded = true;\n self.unload();\n }\n\n // Scratch buffer for enabling iOS to dispose of web audio buffers correctly, as per:\n // http://stackoverflow.com/questions/24119684\n self._scratchBuffer = self.ctx.createBuffer(1, 1, 22050);\n\n // Call this method on touch start to create and play a buffer,\n // then check if the audio actually played to determine if\n // audio has now been unlocked on iOS, Android, etc.\n var unlock = function(e) {\n // Create a pool of unlocked HTML5 Audio objects that can\n // be used for playing sounds without user interaction. HTML5\n // Audio objects must be individually unlocked, as opposed\n // to the WebAudio API which only needs a single activation.\n // This must occur before WebAudio setup or the source.onended\n // event will not fire.\n while (self._html5AudioPool.length < self.html5PoolSize) {\n try {\n var audioNode = new Audio();\n\n // Mark this Audio object as unlocked to ensure it can get returned\n // to the unlocked pool when released.\n audioNode._unlocked = true;\n\n // Add the audio node to the pool.\n self._releaseHtml5Audio(audioNode);\n } catch (e) {\n self.noAudio = true;\n break;\n }\n }\n\n // Loop through any assigned audio nodes and unlock them.\n for (var i=0; i<self._howls.length; i++) {\n if (!self._howls[i]._webAudio) {\n // Get all of the sounds in this Howl group.\n var ids = self._howls[i]._getSoundIds();\n\n // Loop through all sounds and unlock the audio nodes.\n for (var j=0; j<ids.length; j++) {\n var sound = self._howls[i]._soundById(ids[j]);\n\n if (sound && sound._node && !sound._node._unlocked) {\n sound._node._unlocked = true;\n sound._node.load();\n }\n }\n }\n }\n\n // Fix Android can not play in suspend state.\n self._autoResume();\n\n // Create an empty buffer.\n var source = self.ctx.createBufferSource();\n source.buffer = self._scratchBuffer;\n source.connect(self.ctx.destination);\n\n // Play the empty buffer.\n if (typeof source.start === 'undefined') {\n source.noteOn(0);\n } else {\n source.start(0);\n }\n\n // Calling resume() on a stack initiated by user gesture is what actually unlocks the audio on Android Chrome >= 55.\n if (typeof self.ctx.resume === 'function') {\n self.ctx.resume();\n }\n\n // Setup a timeout to check that we are unlocked on the next event loop.\n source.onended = function() {\n source.disconnect(0);\n\n // Update the unlocked state and prevent this check from happening again.\n self._audioUnlocked = true;\n\n // Remove the touch start listener.\n document.removeEventListener('touchstart', unlock, true);\n document.removeEventListener('touchend', unlock, true);\n document.removeEventListener('click', unlock, true);\n document.removeEventListener('keydown', unlock, true);\n\n // Let all sounds know that audio has been unlocked.\n for (var i=0; i<self._howls.length; i++) {\n self._howls[i]._emit('unlock');\n }\n };\n };\n\n // Setup a touch start listener to attempt an unlock in.\n document.addEventListener('touchstart', unlock, true);\n document.addEventListener('touchend', unlock, true);\n document.addEventListener('click', unlock, true);\n document.addEventListener('keydown', unlock, true);\n\n return self;\n },\n\n /**\n * Get an unlocked HTML5 Audio object from the pool. If none are left,\n * return a new Audio object and throw a warning.\n * @return {Audio} HTML5 Audio object.\n */\n _obtainHtml5Audio: function() {\n var self = this || Howler;\n\n // Return the next object from the pool if one exists.\n if (self._html5AudioPool.length) {\n return self._html5AudioPool.pop();\n }\n\n //.Check if the audio is locked and throw a warning.\n var testPlay = new Audio().play();\n if (testPlay && typeof Promise !== 'undefined' && (testPlay instanceof Promise || typeof testPlay.then === 'function')) {\n testPlay.catch(function() {\n console.warn('HTML5 Audio pool exhausted, returning potentially locked audio object.');\n });\n }\n\n return new Audio();\n },\n\n /**\n * Return an activated HTML5 Audio object to the pool.\n * @return {Howler}\n */\n _releaseHtml5Audio: function(audio) {\n var self = this || Howler;\n\n // Don't add audio to the pool if we don't know if it has been unlocked.\n if (audio._unlocked) {\n self._html5AudioPool.push(audio);\n }\n\n return self;\n },\n\n /**\n * Automatically suspend the Web Audio AudioContext after no sound has played for 30 seconds.\n * This saves processing/energy and fixes various browser-specific bugs with audio getting stuck.\n * @return {Howler}\n */\n _autoSuspend: function() {\n var self = this;\n\n if (!self.autoSuspend || !self.ctx || typeof self.ctx.suspend === 'undefined' || !Howler.usingWebAudio) {\n return;\n }\n\n // Check if any sounds are playing.\n for (var i=0; i<self._howls.length; i++) {\n if (self._howls[i]._webAudio) {\n for (var j=0; j<self._howls[i]._sounds.length; j++) {\n if (!self._howls[i]._sounds[j]._paused) {\n return self;\n }\n }\n }\n }\n\n if (self._suspendTimer) {\n clearTimeout(self._suspendTimer);\n }\n\n // If no sound has played after 30 seconds, suspend the context.\n self._suspendTimer = setTimeout(function() {\n if (!self.autoSuspend) {\n return;\n }\n\n self._suspendTimer = null;\n self.state = 'suspending';\n\n // Handle updating the state of the audio context after suspending.\n var handleSuspension = function() {\n self.state = 'suspended';\n\n if (self._resumeAfterSuspend) {\n delete self._resumeAfterSuspend;\n self._autoResume();\n }\n };\n\n // Either the state gets suspended or it is interrupted.\n // Either way, we need to update the state to suspended.\n self.ctx.suspend().then(handleSuspension, handleSuspension);\n }, 30000);\n\n return self;\n },\n\n /**\n * Automatically resume the Web Audio AudioContext when a new sound is played.\n * @return {Howler}\n */\n _autoResume: function() {\n var self = this;\n\n if (!self.ctx || typeof self.ctx.resume === 'undefined' || !Howler.usingWebAudio) {\n return;\n }\n\n if (self.state === 'running' && self.ctx.state !== 'interrupted' && self._suspendTimer) {\n clearTimeout(self._suspendTimer);\n self._suspendTimer = null;\n } else if (self.state === 'suspended' || self.state === 'running' && self.ctx.state === 'interrupted') {\n self.ctx.resume().then(function() {\n self.state = 'running';\n\n // Emit to all Howls that the audio has resumed.\n for (var i=0; i<self._howls.length; i++) {\n self._howls[i]._emit('resume');\n }\n });\n\n if (self._suspendTimer) {\n clearTimeout(self._suspendTimer);\n self._suspendTimer = null;\n }\n } else if (self.state === 'suspending') {\n self._resumeAfterSuspend = true;\n }\n\n return self;\n }\n };\n\n // Setup the global audio controller.\n var Howler = new HowlerGlobal();\n\n /** Group Methods **/\n /***************************************************************************/\n\n /**\n * Create an audio group controller.\n * @param {Object} o Passed in properties for this group.\n */\n var Howl = function(o) {\n var self = this;\n\n // Throw an error if no source is provided.\n if (!o.src || o.src.length === 0) {\n console.error('An array of source files must be passed with any new Howl.');\n return;\n }\n\n self.init(o);\n };\n Howl.prototype = {\n /**\n * Initialize a new Howl group object.\n * @param {Object} o Passed in properties for this group.\n * @return {Howl}\n */\n init: function(o) {\n var self = this;\n\n // If we don't have an AudioContext created yet, run the setup.\n if (!Howler.ctx) {\n setupAudioContext();\n }\n\n // Setup user-defined default properties.\n self._autoplay = o.autoplay || false;\n self._format = (typeof o.format !== 'string') ? o.format : [o.format];\n self._html5 = o.html5 || false;\n self._muted = o.mute || false;\n self._loop = o.loop || false;\n self._pool = o.pool || 5;\n self._preload = (typeof o.preload === 'boolean' || o.preload === 'metadata') ? o.preload : true;\n self._rate = o.rate || 1;\n self._sprite = o.sprite || {};\n self._src = (typeof o.src !== 'string') ? o.src : [o.src];\n self._volume = o.volume !== undefined ? o.volume : 1;\n self._xhr = {\n method: o.xhr && o.xhr.method ? o.xhr.method : 'GET',\n headers: o.xhr && o.xhr.headers ? o.xhr.headers : null,\n withCredentials: o.xhr && o.xhr.withCredentials ? o.xhr.withCredentials : false,\n };\n\n // Setup all other default properties.\n self._duration = 0;\n self._state = 'unloaded';\n self._sounds = [];\n self._endTimers = {};\n self._queue = [];\n self._playLock = false;\n\n // Setup event listeners.\n self._onend = o.onend ? [{fn: o.onend}] : [];\n self._onfade = o.onfade ? [{fn: o.onfade}] : [];\n self._onload = o.onload ? [{fn: o.onload}] : [];\n self._onloaderror = o.onloaderror ? [{fn: o.onloaderror}] : [];\n self._onplayerror = o.onplayerror ? [{fn: o.onplayerror}] : [];\n self._onpause = o.onpause ? [{fn: o.onpause}] : [];\n self._onplay = o.onplay ? [{fn: o.onplay}] : [];\n self._onstop = o.onstop ? [{fn: o.onstop}] : [];\n self._onmute = o.onmute ? [{fn: o.onmute}] : [];\n self._onvolume = o.onvolume ? [{fn: o.onvolume}] : [];\n self._onrate = o.onrate ? [{fn: o.onrate}] : [];\n self._onseek = o.onseek ? [{fn: o.onseek}] : [];\n self._onunlock = o.onunlock ? [{fn: o.onunlock}] : [];\n self._onresume = [];\n\n // Web Audio or HTML5 Audio?\n self._webAudio = Howler.usingWebAudio && !self._html5;\n\n // Automatically try to enable audio.\n if (typeof Howler.ctx !== 'undefined' && Howler.ctx && Howler.autoUnlock) {\n Howler._unlockAudio();\n }\n\n // Keep track of this Howl group in the global controller.\n Howler._howls.push(self);\n\n // If they selected autoplay, add a play event to the load queue.\n if (self._autoplay) {\n self._queue.push({\n event: 'play',\n action: function() {\n self.play();\n }\n });\n }\n\n // Load the source file unless otherwise specified.\n if (self._preload && self._preload !== 'none') {\n self.load();\n }\n\n return self;\n },\n\n /**\n * Load the audio file.\n * @return {Howler}\n */\n load: function() {\n var self = this;\n var url = null;\n\n // If no audio is available, quit immediately.\n if (Howler.noAudio) {\n self._emit('loaderror', null, 'No audio support.');\n return;\n }\n\n // Make sure our source is in an array.\n if (typeof self._src === 'string') {\n self._src = [self._src];\n }\n\n // Loop through the sources and pick the first one that is compatible.\n for (var i=0; i<self._src.length; i++) {\n var ext, str;\n\n if (self._format && self._format[i]) {\n // If an extension was specified, use that instead.\n ext = self._format[i];\n } else {\n // Make sure the source is a string.\n str = self._src[i];\n if (typeof str !== 'string') {\n self._emit('loaderror', null, 'Non-string found in selected audio sources - ignoring.');\n continue;\n }\n\n // Extract the file extension from the URL or base64 data URI.\n ext = /^data:audio\\/([^;,]+);/i.exec(str);\n if (!ext) {\n ext = /\\.([^.]+)$/.exec(str.split('?', 1)[0]);\n }\n\n if (ext) {\n ext = ext[1].toLowerCase();\n }\n }\n\n // Log a warning if no extension was found.\n if (!ext) {\n console.warn('No file extension was found. Consider using the \"format\" property or specify an extension.');\n }\n\n // Check if this extension is available.\n if (ext && Howler.codecs(ext)) {\n url = self._src[i];\n break;\n }\n }\n\n if (!url) {\n self._emit('loaderror', null, 'No codec support for selected audio sources.');\n return;\n }\n\n self._src = url;\n self._state = 'loading';\n\n // If the hosting page is HTTPS and the source isn't,\n // drop down to HTML5 Audio to avoid Mixed Content errors.\n if (window.location.protocol === 'https:' && url.slice(0, 5) === 'http:') {\n self._html5 = true;\n self._webAudio = false;\n }\n\n // Create a new sound object and add it to the pool.\n new Sound(self);\n\n // Load and decode the audio data for playback.\n if (self._webAudio) {\n loadBuffer(self);\n }\n\n return self;\n },\n\n /**\n * Play a sound or resume previous playback.\n * @param {String/Number} sprite Sprite name for sprite playback or sound id to continue previous.\n * @param {Boolean} internal Internal Use: true prevents event firing.\n * @return {Number} Sound ID.\n */\n play: function(sprite, internal) {\n var self = this;\n var id = null;\n\n // Determine if a sprite, sound id or nothing was passed\n if (typeof sprite === 'number') {\n id = sprite;\n sprite = null;\n } else if (typeof sprite === 'string' && self._state === 'loaded' && !self._sprite[sprite]) {\n // If the passed sprite doesn't exist, do nothing.\n return null;\n } else if (typeof sprite === 'undefined') {\n // Use the default sound sprite (plays the full audio length).\n sprite = '__default';\n\n // Check if there is a single paused sound that isn't ended.\n // If there is, play that sound. If not, continue as usual.\n if (!self._playLock) {\n var num = 0;\n for (var i=0; i<self._sounds.length; i++) {\n if (self._sounds[i]._paused && !self._sounds[i]._ended) {\n num++;\n id = self._sounds[i]._id;\n }\n }\n\n if (num === 1) {\n sprite = null;\n } else {\n id = null;\n }\n }\n }\n\n // Get the selected node, or get one from the pool.\n var sound = id ? self._soundById(id) : self._inactiveSound();\n\n // If the sound doesn't exist, do nothing.\n if (!sound) {\n return null;\n }\n\n // Select the sprite definition.\n if (id && !sprite) {\n sprite = sound._sprite || '__default';\n }\n\n // If the sound hasn't loaded, we must wait to get the audio's duration.\n // We also need to wait to make sure we don't run into race conditions with\n // the order of function calls.\n if (self._state !== 'loaded') {\n // Set the sprite value on this sound.\n sound._sprite = sprite;\n\n // Mark this sound as not ended in case another sound is played before this one loads.\n sound._ended = false;\n\n // Add the sound to the queue to be played on load.\n var soundId = sound._id;\n self._queue.push({\n event: 'play',\n action: function() {\n self.play(soundId);\n }\n });\n\n return soundId;\n }\n\n // Don't play the sound if an id was passed and it is already playing.\n if (id && !sound._paused) {\n // Trigger the play event, in order to keep iterating through queue.\n if (!internal) {\n self._loadQueue('play');\n }\n\n return sound._id;\n }\n\n // Make sure the AudioContext isn't suspended, and resume it if it is.\n if (self._webAudio) {\n Howler._autoResume();\n }\n\n // Determine how long to play for and where to start playing.\n var seek = Math.max(0, sound._seek > 0 ? sound._seek : self._sprite[sprite][0] / 1000);\n var duration = Math.max(0, ((self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000) - seek);\n var timeout = (duration * 1000) / Math.abs(sound._rate);\n var start = self._sprite[sprite][0] / 1000;\n var stop = (self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000;\n sound._sprite = sprite;\n\n // Mark the sound as ended instantly so that this async playback\n // doesn't get grabbed by another call to play while this one waits to start.\n sound._ended = false;\n\n // Update the parameters of the sound.\n var setParams = function() {\n sound._paused = false;\n sound._seek = seek;\n sound._start = start;\n sound._stop = stop;\n sound._loop = !!(sound._loop || self._sprite[sprite][2]);\n };\n\n // End the sound instantly if seek is at the end.\n if (seek >= stop) {\n self._ended(sound);\n return;\n }\n\n // Begin the actual playback.\n var node = sound._node;\n if (self._webAudio) {\n // Fire this when the sound is ready to play to begin Web Audio playback.\n var playWebAudio = function() {\n self._playLock = false;\n setParams();\n self._refreshBuffer(sound);\n\n // Setup the playback params.\n var vol = (sound._muted || self._muted) ? 0 : sound._volume;\n node.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n sound._playStart = Howler.ctx.currentTime;\n\n // Play the sound using the supported method.\n if (typeof node.bufferSource.start === 'undefined') {\n sound._loop ? node.bufferSource.noteGrainOn(0, seek, 86400) : node.bufferSource.noteGrainOn(0, seek, duration);\n } else {\n sound._loop ? node.bufferSource.start(0, seek, 86400) : node.bufferSource.start(0, seek, duration);\n }\n\n // Start a new timer if none is present.\n if (timeout !== Infinity) {\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n if (!internal) {\n setTimeout(function() {\n self._emit('play', sound._id);\n self._loadQueue();\n }, 0);\n }\n };\n\n if (Howler.state === 'running' && Howler.ctx.state !== 'interrupted') {\n playWebAudio();\n } else {\n self._playLock = true;\n\n // Wait for the audio context to resume before playing.\n self.once('resume', playWebAudio);\n\n // Cancel the end timer.\n self._clearTimer(sound._id);\n }\n } else {\n // Fire this when the sound is ready to play to begin HTML5 Audio playback.\n var playHtml5 = function() {\n node.currentTime = seek;\n node.muted = sound._muted || self._muted || Howler._muted || node.muted;\n node.volume = sound._volume * Howler.volume();\n node.playbackRate = sound._rate;\n\n // Some browsers will throw an error if this is called without user interaction.\n try {\n var play = node.play();\n\n // Support older browsers that don't support promises, and thus don't have this issue.\n if (play && typeof Promise !== 'undefined' && (play instanceof Promise || typeof play.then === 'function')) {\n // Implements a lock to prevent DOMException: The play() request was interrupted by a call to pause().\n self._playLock = true;\n\n // Set param values immediately.\n setParams();\n\n // Releases the lock and executes queued actions.\n play\n .then(function() {\n self._playLock = false;\n node._unlocked = true;\n if (!internal) {\n self._emit('play', sound._id);\n } else {\n self._loadQueue();\n }\n })\n .catch(function() {\n self._playLock = false;\n self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' +\n 'on mobile devices and Chrome where playback was not within a user interaction.');\n\n // Reset the ended and paused values.\n sound._ended = true;\n sound._paused = true;\n });\n } else if (!internal) {\n self._playLock = false;\n setParams();\n self._emit('play', sound._id);\n }\n\n // Setting rate before playing won't work in IE, so we set it again here.\n node.playbackRate = sound._rate;\n\n // If the node is still paused, then we can assume there was a playback issue.\n if (node.paused) {\n self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' +\n 'on mobile devices and Chrome where playback was not within a user interaction.');\n return;\n }\n\n // Setup the end timer on sprites or listen for the ended event.\n if (sprite !== '__default' || sound._loop) {\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n } else {\n self._endTimers[sound._id] = function() {\n // Fire ended on this audio node.\n self._ended(sound);\n\n // Clear this listener.\n node.removeEventListener('ended', self._endTimers[sound._id], false);\n };\n node.addEventListener('ended', self._endTimers[sound._id], false);\n }\n } catch (err) {\n self._emit('playerror', sound._id, err);\n }\n };\n\n // If this is streaming audio, make sure the src is set and load again.\n if (node.src === 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA') {\n node.src = self._src;\n node.load();\n }\n\n // Play immediately if ready, or wait for the 'canplaythrough'e vent.\n var loadedNoReadyState = (window && window.ejecta) || (!node.readyState && Howler._navigator.isCocoonJS);\n if (node.readyState >= 3 || loadedNoReadyState) {\n playHtml5();\n } else {\n self._playLock = true;\n self._state = 'loading';\n\n var listener = function() {\n self._state = 'loaded';\n \n // Begin playback.\n playHtml5();\n\n // Clear this listener.\n node.removeEventListener(Howler._canPlayEvent, listener, false);\n };\n node.addEventListener(Howler._canPlayEvent, listener, false);\n\n // Cancel the end timer.\n self._clearTimer(sound._id);\n }\n }\n\n return sound._id;\n },\n\n /**\n * Pause playback and save current position.\n * @param {Number} id The sound ID (empty to pause all in group).\n * @return {Howl}\n */\n pause: function(id) {\n var self = this;\n\n // If the sound hasn't loaded or a play() promise is pending, add it to the load queue to pause when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'pause',\n action: function() {\n self.pause(id);\n }\n });\n\n return self;\n }\n\n // If no id is passed, get all ID's to be paused.\n var ids = self._getSoundIds(id);\n\n for (var i=0; i<ids.length; i++) {\n // Clear the end timer.\n self._clearTimer(ids[i]);\n\n // Get the sound.\n var sound = self._soundById(ids[i]);\n\n if (sound && !sound._paused) {\n // Reset the seek position.\n sound._seek = self.seek(ids[i]);\n sound._rateSeek = 0;\n sound._paused = true;\n\n // Stop currently running fades.\n self._stopFade(ids[i]);\n\n if (sound._node) {\n if (self._webAudio) {\n // Make sure the sound has been created.\n if (!sound._node.bufferSource) {\n continue;\n }\n\n if (typeof sound._node.bufferSource.stop === 'undefined') {\n sound._node.bufferSource.noteOff(0);\n } else {\n sound._node.bufferSource.stop(0);\n }\n\n // Clean up the buffer source.\n self._cleanBuffer(sound._node);\n } else if (!isNaN(sound._node.duration) || sound._node.duration === Infinity) {\n sound._node.pause();\n }\n }\n }\n\n // Fire the pause event, unless `true` is passed as the 2nd argument.\n if (!arguments[1]) {\n self._emit('pause', sound ? sound._id : null);\n }\n }\n\n return self;\n },\n\n /**\n * Stop playback and reset to start.\n * @param {Number} id The sound ID (empty to stop all in group).\n * @param {Boolean} internal Internal Use: true prevents event firing.\n * @return {Howl}\n */\n stop: function(id, internal) {\n var self = this;\n\n // If the sound hasn't loaded, add it to the load queue to stop when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'stop',\n action: function() {\n self.stop(id);\n }\n });\n\n return self;\n }\n\n // If no id is passed, get all ID's to be stopped.\n var ids = self._getSoundIds(id);\n\n for (var i=0; i<ids.length; i++) {\n // Clear the end timer.\n self._clearTimer(ids[i]);\n\n // Get the sound.\n var sound = self._soundById(ids[i]);\n\n if (sound) {\n // Reset the seek position.\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n sound._paused = true;\n sound._ended = true;\n\n // Stop currently running fades.\n self._stopFade(ids[i]);\n\n if (sound._node) {\n if (self._webAudio) {\n // Make sure the sound's AudioBufferSourceNode has been created.\n if (sound._node.bufferSource) {\n if (typeof sound._node.bufferSource.stop === 'undefined') {\n sound._node.bufferSource.noteOff(0);\n } else {\n sound._node.bufferSource.stop(0);\n }\n\n // Clean up the buffer source.\n self._cleanBuffer(sound._node);\n }\n } else if (!isNaN(sound._node.duration) || sound._node.duration === Infinity) {\n sound._node.currentTime = sound._start || 0;\n sound._node.pause();\n\n // If this is a live stream, stop download once the audio is stopped.\n if (sound._node.duration === Infinity) {\n self._clearSound(sound._node);\n }\n }\n }\n\n if (!internal) {\n self._emit('stop', sound._id);\n }\n }\n }\n\n return self;\n },\n\n /**\n * Mute/unmute a single sound or all sounds in this Howl group.\n * @param {Boolean} muted Set to true to mute and false to unmute.\n * @param {Number} id The sound ID to update (omit to mute/unmute all).\n * @return {Howl}\n */\n mute: function(muted, id) {\n var self = this;\n\n // If the sound hasn't loaded, add it to the load queue to mute when capable.\n if (self._state !== 'loaded'|| self._playLock) {\n self._queue.push({\n event: 'mute',\n action: function() {\n self.mute(muted, id);\n }\n });\n\n return self;\n }\n\n // If applying mute/unmute to all sounds, update the group's value.\n if (typeof id === 'undefined') {\n if (typeof muted === 'boolean') {\n self._muted = muted;\n } else {\n return self._muted;\n }\n }\n\n // If no id is passed, get all ID's to be muted.\n var ids = self._getSoundIds(id);\n\n for (var i=0; i<ids.length; i++) {\n // Get the sound.\n var sound = self._soundById(ids[i]);\n\n if (sound) {\n sound._muted = muted;\n\n // Cancel active fade and set the volume to the end value.\n if (sound._interval) {\n self._stopFade(sound._id);\n }\n\n if (self._webAudio && sound._node) {\n sound._node.gain.setValueAtTime(muted ? 0 : sound._volume, Howler.ctx.currentTime);\n } else if (sound._node) {\n sound._node.muted = Howler._muted ? true : muted;\n }\n\n self._emit('mute', sound._id);\n }\n }\n\n return self;\n },\n\n /**\n * Get/set the volume of this sound or of the Howl group. This method can optionally take 0, 1 or 2 arguments.\n * volume() -> Returns the group's volume value.\n * volume(id) -> Returns the sound id's current volume.\n * volume(vol) -> Sets the volume of all sounds in this Howl group.\n * volume(vol, id) -> Sets the volume of passed sound id.\n * @return {Howl/Number} Returns self or current volume.\n */\n volume: function() {\n var self = this;\n var args = arguments;\n var vol, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // Return the value of the groups' volume.\n return self._volume;\n } else if (args.length === 1 || args.length === 2 && typeof args[1] === 'undefined') {\n // First check if this is an ID, and if not, assume it is a new volume.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else {\n vol = parseFloat(args[0]);\n }\n } else if (args.length >= 2) {\n vol = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // Update the volume or return the current volume.\n var sound;\n if (typeof vol !== 'undefined' && vol >= 0 && vol <= 1) {\n // If the sound hasn't loaded, add it to the load queue to change volume when capable.\n if (self._state !== 'loaded'|| self._playLock) {\n self._queue.push({\n event: 'volume',\n action: function() {\n self.volume.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Set the group volume.\n if (typeof id === 'undefined') {\n self._volume = vol;\n }\n\n // Update one or all volumes.\n id = self._getSoundIds(id);\n for (var i=0; i<id.length; i++) {\n // Get the sound.\n sound = self._soundById(id[i]);\n\n if (sound) {\n sound._volume = vol;\n\n // Stop currently running fades.\n if (!args[2]) {\n self._stopFade(id[i]);\n }\n\n if (self._webAudio && sound._node && !sound._muted) {\n sound._node.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n } else if (sound._node && !sound._muted) {\n sound._node.volume = vol * Howler.volume();\n }\n\n self._emit('volume', sound._id);\n }\n }\n } else {\n sound = id ? self._soundById(id) : self._sounds[0];\n return sound ? sound._volume : 0;\n }\n\n return self;\n },\n\n /**\n * Fade a currently playing sound between two volumes (if no id is passed, all sounds will fade).\n * @param {Number} from The value to fade from (0.0 to 1.0).\n * @param {Number} to The volume to fade to (0.0 to 1.0).\n * @param {Number} len Time in milliseconds to fade.\n * @param {Number} id The sound id (omit to fade all sounds).\n * @return {Howl}\n */\n fade: function(from, to, len, id) {\n var self = this;\n\n // If the sound hasn't loaded, add it to the load queue to fade when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'fade',\n action: function() {\n self.fade(from, to, len, id);\n }\n });\n\n return self;\n }\n\n // Make sure the to/from/len values are numbers.\n from = Math.min(Math.max(0, parseFloat(from)), 1);\n to = Math.min(Math.max(0, parseFloat(to)), 1);\n len = parseFloat(len);\n\n // Set the volume to the start position.\n self.volume(from, id);\n\n // Fade the volume of one or all sounds.\n var ids = self._getSoundIds(id);\n for (var i=0; i<ids.length; i++) {\n // Get the sound.\n var sound = self._soundById(ids[i]);\n\n // Create a linear fade or fall back to timeouts with HTML5 Audio.\n if (sound) {\n // Stop the previous fade if no sprite is being used (otherwise, volume handles this).\n if (!id) {\n self._stopFade(ids[i]);\n }\n\n // If we are using Web Audio, let the native methods do the actual fade.\n if (self._webAudio && !sound._muted) {\n var currentTime = Howler.ctx.currentTime;\n var end = currentTime + (len / 1000);\n sound._volume = from;\n sound._node.gain.setValueAtTime(from, currentTime);\n sound._node.gain.linearRampToValueAtTime(to, end);\n }\n\n self._startFadeInterval(sound, from, to, len, ids[i], typeof id === 'undefined');\n }\n }\n\n return self;\n },\n\n /**\n * Starts the internal interval to fade a sound.\n * @param {Object} sound Reference to sound to fade.\n * @param {Number} from The value to fade from (0.0 to 1.0).\n * @param {Number} to The volume to fade to (0.0 to 1.0).\n * @param {Number} len Time in milliseconds to fade.\n * @param {Number} id The sound id to fade.\n * @param {Boolean} isGroup If true, set the volume on the group.\n */\n _startFadeInterval: function(sound, from, to, len, id, isGroup) {\n var self = this;\n var vol = from;\n var diff = to - from;\n var steps = Math.abs(diff / 0.01);\n var stepLen = Math.max(4, (steps > 0) ? len / steps : len);\n var lastTick = Date.now();\n\n // Store the value being faded to.\n sound._fadeTo = to;\n\n // Update the volume value on each interval tick.\n sound._interval = setInterval(function() {\n // Update the volume based on the time since the last tick.\n var tick = (Date.now() - lastTick) / len;\n lastTick = Date.now();\n vol += diff * tick;\n\n // Round to within 2 decimal points.\n vol = Math.round(vol * 100) / 100;\n\n // Make sure the volume is in the right bounds.\n if (diff < 0) {\n vol = Math.max(to, vol);\n } else {\n vol = Math.min(to, vol);\n }\n\n // Change the volume.\n if (self._webAudio) {\n sound._volume = vol;\n } else {\n self.volume(vol, sound._id, true);\n }\n\n // Set the group's volume.\n if (isGroup) {\n self._volume = vol;\n }\n\n // When the fade is complete, stop it and fire event.\n if ((to < from && vol <= to) || (to > from && vol >= to)) {\n clearInterval(sound._interval);\n sound._interval = null;\n sound._fadeTo = null;\n self.volume(to, sound._id);\n self._emit('fade', sound._id);\n }\n }, stepLen);\n },\n\n /**\n * Internal method that stops the currently playing fade when\n * a new fade starts, volume is changed or the sound is stopped.\n * @param {Number} id The sound id.\n * @return {Howl}\n */\n _stopFade: function(id) {\n var self = this;\n var sound = self._soundById(id);\n\n if (sound && sound._interval) {\n if (self._webAudio) {\n sound._node.gain.cancelScheduledValues(Howler.ctx.currentTime);\n }\n\n clearInterval(sound._interval);\n sound._interval = null;\n self.volume(sound._fadeTo, id);\n sound._fadeTo = null;\n self._emit('fade', id);\n }\n\n return self;\n },\n\n /**\n * Get/set the loop parameter on a sound. This method can optionally take 0, 1 or 2 arguments.\n * loop() -> Returns the group's loop value.\n * loop(id) -> Returns the sound id's loop value.\n * loop(loop) -> Sets the loop value for all sounds in this Howl group.\n * loop(loop, id) -> Sets the loop value of passed sound id.\n * @return {Howl/Boolean} Returns self or current loop value.\n */\n loop: function() {\n var self = this;\n var args = arguments;\n var loop, id, sound;\n\n // Determine the values for loop and id.\n if (args.length === 0) {\n // Return the grou's loop value.\n return self._loop;\n } else if (args.length === 1) {\n if (typeof args[0] === 'boolean') {\n loop = args[0];\n self._loop = loop;\n } else {\n // Return this sound's loop value.\n sound = self._soundById(parseInt(args[0], 10));\n return sound ? sound._loop : false;\n }\n } else if (args.length === 2) {\n loop = args[0];\n id = parseInt(args[1], 10);\n }\n\n // If no id is passed, get all ID's to be looped.\n var ids = self._getSoundIds(id);\n for (var i=0; i<ids.length; i++) {\n sound = self._soundById(ids[i]);\n\n if (sound) {\n sound._loop = loop;\n if (self._webAudio && sound._node && sound._node.bufferSource) {\n sound._node.bufferSource.loop = loop;\n if (loop) {\n sound._node.bufferSource.loopStart = sound._start || 0;\n sound._node.bufferSource.loopEnd = sound._stop;\n\n // If playing, restart playback to ensure looping updates.\n if (self.playing(ids[i])) {\n self.pause(ids[i], true);\n self.play(ids[i], true);\n }\n }\n }\n }\n }\n\n return self;\n },\n\n /**\n * Get/set the playback rate of a sound. This method can optionally take 0, 1 or 2 arguments.\n * rate() -> Returns the first sound node's current playback rate.\n * rate(id) -> Returns the sound id's current playback rate.\n * rate(rate) -> Sets the playback rate of all sounds in this Howl group.\n * rate(rate, id) -> Sets the playback rate of passed sound id.\n * @return {Howl/Number} Returns self or the current playback rate.\n */\n rate: function() {\n var self = this;\n var args = arguments;\n var rate, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // We will simply return the current rate of the first node.\n id = self._sounds[0]._id;\n } else if (args.length === 1) {\n // First check if this is an ID, and if not, assume it is a new rate value.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else {\n rate = parseFloat(args[0]);\n }\n } else if (args.length === 2) {\n rate = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // Update the playback rate or return the current value.\n var sound;\n if (typeof rate === 'number') {\n // If the sound hasn't loaded, add it to the load queue to change playback rate when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'rate',\n action: function() {\n self.rate.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Set the group rate.\n if (typeof id === 'undefined') {\n self._rate = rate;\n }\n\n // Update one or all volumes.\n id = self._getSoundIds(id);\n for (var i=0; i<id.length; i++) {\n // Get the sound.\n sound = self._soundById(id[i]);\n\n if (sound) {\n // Keep track of our position when the rate changed and update the playback\n // start position so we can properly adjust the seek position for time elapsed.\n if (self.playing(id[i])) {\n sound._rateSeek = self.seek(id[i]);\n sound._playStart = self._webAudio ? Howler.ctx.currentTime : sound._playStart;\n }\n sound._rate = rate;\n\n // Change the playback rate.\n if (self._webAudio && sound._node && sound._node.bufferSource) {\n sound._node.bufferSource.playbackRate.setValueAtTime(rate, Howler.ctx.currentTime);\n } else if (sound._node) {\n sound._node.playbackRate = rate;\n }\n\n // Reset the timers.\n var seek = self.seek(id[i]);\n var duration = ((self._sprite[sound._sprite][0] + self._sprite[sound._sprite][1]) / 1000) - seek;\n var timeout = (duration * 1000) / Math.abs(sound._rate);\n\n // Start a new end timer if sound is already playing.\n if (self._endTimers[id[i]] || !sound._paused) {\n self._clearTimer(id[i]);\n self._endTimers[id[i]] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n self._emit('rate', sound._id);\n }\n }\n } else {\n sound = self._soundById(id);\n return sound ? sound._rate : self._rate;\n }\n\n return self;\n },\n\n /**\n * Get/set the seek position of a sound. This method can optionally take 0, 1 or 2 arguments.\n * seek() -> Returns the first sound node's current seek position.\n * seek(id) -> Returns the sound id's current seek position.\n * seek(seek) -> Sets the seek position of the first sound node.\n * seek(seek, id) -> Sets the seek position of passed sound id.\n * @return {Howl/Number} Returns self or the current seek position.\n */\n seek: function() {\n var self = this;\n var args = arguments;\n var seek, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // We will simply return the current position of the first node.\n if (self._sounds.length) {\n id = self._sounds[0]._id;\n }\n } else if (args.length === 1) {\n // First check if this is an ID, and if not, assume it is a new seek position.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else if (self._sounds.length) {\n id = self._sounds[0]._id;\n seek = parseFloat(args[0]);\n }\n } else if (args.length === 2) {\n seek = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // If there is no ID, bail out.\n if (typeof id === 'undefined') {\n return 0;\n }\n\n // If the sound hasn't loaded, add it to the load queue to seek when capable.\n if (typeof seek === 'number' && (self._state !== 'loaded' || self._playLock)) {\n self._queue.push({\n event: 'seek',\n action: function() {\n self.seek.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Get the sound.\n var sound = self._soundById(id);\n\n if (sound) {\n if (typeof seek === 'number' && seek >= 0) {\n // Pause the sound and update position for restarting playback.\n var playing = self.playing(id);\n if (playing) {\n self.pause(id, true);\n }\n\n // Move the position of the track and cancel timer.\n sound._seek = seek;\n sound._ended = false;\n self._clearTimer(id);\n\n // Update the seek position for HTML5 Audio.\n if (!self._webAudio && sound._node && !isNaN(sound._node.duration)) {\n sound._node.currentTime = seek;\n }\n\n // Seek and emit when ready.\n var seekAndEmit = function() {\n // Restart the playback if the sound was playing.\n if (playing) {\n self.play(id, true);\n }\n\n self._emit('seek', id);\n };\n\n // Wait for the play lock to be unset before emitting (HTML5 Audio).\n if (playing && !self._webAudio) {\n var emitSeek = function() {\n if (!self._playLock) {\n seekAndEmit();\n } else {\n setTimeout(emitSeek, 0);\n }\n };\n setTimeout(emitSeek, 0);\n } else {\n seekAndEmit();\n }\n } else {\n if (self._webAudio) {\n var realTime = self.playing(id) ? Howler.ctx.currentTime - sound._playStart : 0;\n var rateSeek = sound._rateSeek ? sound._rateSeek - sound._seek : 0;\n return sound._seek + (rateSeek + realTime * Math.abs(sound._rate));\n } else {\n return sound._node.currentTime;\n }\n }\n }\n\n return self;\n },\n\n /**\n * Check if a specific sound is currently playing or not (if id is provided), or check if at least one of the sounds in the group is playing or not.\n * @param {Number} id The sound id to check. If none is passed, the whole sound group is checked.\n * @return {Boolean} True if playing and false if not.\n */\n playing: function(id) {\n var self = this;\n\n // Check the passed sound ID (if any).\n if (typeof id === 'number') {\n var sound = self._soundById(id);\n return sound ? !sound._paused : false;\n }\n\n // Otherwise, loop through all sounds and check if any are playing.\n for (var i=0; i<self._sounds.length; i++) {\n if (!self._sounds[i]._paused) {\n return true;\n }\n }\n\n return false;\n },\n\n /**\n * Get the duration of this sound. Passing a sound id will return the sprite duration.\n * @param {Number} id The sound id to check. If none is passed, return full source duration.\n * @return {Number} Audio duration in seconds.\n */\n duration: function(id) {\n var self = this;\n var duration = self._duration;\n\n // If we pass an ID, get the sound and return the sprite length.\n var sound = self._soundById(id);\n if (sound) {\n duration = self._sprite[sound._sprite][1] / 1000;\n }\n\n return duration;\n },\n\n /**\n * Returns the current loaded state of this Howl.\n * @return {String} 'unloaded', 'loading', 'loaded'\n */\n state: function() {\n return this._state;\n },\n\n /**\n * Unload and destroy the current Howl object.\n * This will immediately stop all sound instances attached to this group.\n */\n unload: function() {\n var self = this;\n\n // Stop playing any active sounds.\n var sounds = self._sounds;\n for (var i=0; i<sounds.length; i++) {\n // Stop the sound if it is currently playing.\n if (!sounds[i]._paused) {\n self.stop(sounds[i]._id);\n }\n\n // Remove the source or disconnect.\n if (!self._webAudio) {\n // Set the source to 0-second silence to stop any downloading (except in IE).\n self._clearSound(sounds[i]._node);\n\n // Remove any event listeners.\n sounds[i]._node.removeEventListener('error', sounds[i]._errorFn, false);\n sounds[i]._node.removeEventListener(Howler._canPlayEvent, sounds[i]._loadFn, false);\n sounds[i]._node.removeEventListener('ended', sounds[i]._endFn, false);\n\n // Release the Audio object back to the pool.\n Howler._releaseHtml5Audio(sounds[i]._node);\n }\n\n // Empty out all of the nodes.\n delete sounds[i]._node;\n\n // Make sure all timers are cleared out.\n self._clearTimer(sounds[i]._id);\n }\n\n // Remove the references in the global Howler object.\n var index = Howler._howls.indexOf(self);\n if (index >= 0) {\n Howler._howls.splice(index, 1);\n }\n\n // Delete this sound from the cache (if no other Howl is using it).\n var remCache = true;\n for (i=0; i<Howler._howls.length; i++) {\n if (Howler._howls[i]._src === self._src || self._src.indexOf(Howler._howls[i]._src) >= 0) {\n remCache = false;\n break;\n }\n }\n\n if (cache && remCache) {\n delete cache[self._src];\n }\n\n // Clear global errors.\n Howler.noAudio = false;\n\n // Clear out `self`.\n self._state = 'unloaded';\n self._sounds = [];\n self = null;\n\n return null;\n },\n\n /**\n * Listen to a custom event.\n * @param {String} event Event name.\n * @param {Function} fn Listener to call.\n * @param {Number} id (optional) Only listen to events for this sound.\n * @param {Number} once (INTERNAL) Marks event to fire only once.\n * @return {Howl}\n */\n on: function(event, fn, id, once) {\n var self = this;\n var events = self['_on' + event];\n\n if (typeof fn === 'function') {\n events.push(once ? {id: id, fn: fn, once: once} : {id: id, fn: fn});\n }\n\n return self;\n },\n\n /**\n * Remove a custom event. Call without parameters to remove all events.\n * @param {String} event Event name.\n * @param {Function} fn Listener to remove. Leave empty to remove all.\n * @param {Number} id (optional) Only remove events for this sound.\n * @return {Howl}\n */\n off: function(event, fn, id) {\n var self = this;\n var events = self['_on' + event];\n var i = 0;\n\n // Allow passing just an event and ID.\n if (typeof fn === 'number') {\n id = fn;\n fn = null;\n }\n\n if (fn || id) {\n // Loop through event store and remove the passed function.\n for (i=0; i<events.length; i++) {\n var isId = (id === events[i].id);\n if (fn === events[i].fn && isId || !fn && isId) {\n events.splice(i, 1);\n break;\n }\n }\n } else if (event) {\n // Clear out all events of this type.\n self['_on' + event] = [];\n } else {\n // Clear out all events of every type.\n var keys = Object.keys(self);\n for (i=0; i<keys.length; i++) {\n if ((keys[i].indexOf('_on') === 0) && Array.isArray(self[keys[i]])) {\n self[keys[i]] = [];\n }\n }\n }\n\n return self;\n },\n\n /**\n * Listen to a custom event and remove it once fired.\n * @param {String} event Event name.\n * @param {Function} fn Listener to call.\n * @param {Number} id (optional) Only listen to events for this sound.\n * @return {Howl}\n */\n once: function(event, fn, id) {\n var self = this;\n\n // Setup the event listener.\n self.on(event, fn, id, 1);\n\n return self;\n },\n\n /**\n * Emit all events of a specific type and pass the sound id.\n * @param {String} event Event name.\n * @param {Number} id Sound ID.\n * @param {Number} msg Message to go with event.\n * @return {Howl}\n */\n _emit: function(event, id, msg) {\n var self = this;\n var events = self['_on' + event];\n\n // Loop through event store and fire all functions.\n for (var i=events.length-1; i>=0; i--) {\n // Only fire the listener if the correct ID is used.\n if (!events[i].id || events[i].id === id || event === 'load') {\n setTimeout(function(fn) {\n fn.call(this, id, msg);\n }.bind(self, events[i].fn), 0);\n\n // If this event was setup with `once`, remove it.\n if (events[i].once) {\n self.off(event, events[i].fn, events[i].id);\n }\n }\n }\n\n // Pass the event type into load queue so that it can continue stepping.\n self._loadQueue(event);\n\n return self;\n },\n\n /**\n * Queue of actions initiated before the sound has loaded.\n * These will be called in sequence, with the next only firing\n * after the previous has finished executing (even if async like play).\n * @return {Howl}\n */\n _loadQueue: function(event) {\n var self = this;\n\n if (self._queue.length > 0) {\n var task = self._queue[0];\n\n // Remove this task if a matching event was passed.\n if (task.event === event) {\n self._queue.shift();\n self._loadQueue();\n }\n\n // Run the task if no event type is passed.\n if (!event) {\n task.action();\n }\n }\n\n return self;\n },\n\n /**\n * Fired when playback ends at the end of the duration.\n * @param {Sound} sound The sound object to work with.\n * @return {Howl}\n */\n _ended: function(sound) {\n var self = this;\n var sprite = sound._sprite;\n\n // If we are using IE and there was network latency we may be clipping\n // audio before it completes playing. Lets check the node to make sure it\n // believes it has completed, before ending the playback.\n if (!self._webAudio && sound._node && !sound._node.paused && !sound._node.ended && sound._node.currentTime < sound._stop) {\n setTimeout(self._ended.bind(self, sound), 100);\n return self;\n }\n\n // Should this sound loop?\n var loop = !!(sound._loop || self._sprite[sprite][2]);\n\n // Fire the ended event.\n self._emit('end', sound._id);\n\n // Restart the playback for HTML5 Audio loop.\n if (!self._webAudio && loop) {\n self.stop(sound._id, true).play(sound._id);\n }\n\n // Restart this timer if on a Web Audio loop.\n if (self._webAudio && loop) {\n self._emit('play', sound._id);\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n sound._playStart = Howler.ctx.currentTime;\n\n var timeout = ((sound._stop - sound._start) * 1000) / Math.abs(sound._rate);\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n // Mark the node as paused.\n if (self._webAudio && !loop) {\n sound._paused = true;\n sound._ended = true;\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n self._clearTimer(sound._id);\n\n // Clean up the buffer source.\n self._cleanBuffer(sound._node);\n\n // Attempt to auto-suspend AudioContext if no sounds are still playing.\n Howler._autoSuspend();\n }\n\n // When using a sprite, end the track.\n if (!self._webAudio && !loop) {\n self.stop(sound._id, true);\n }\n\n return self;\n },\n\n /**\n * Clear the end timer for a sound playback.\n * @param {Number} id The sound ID.\n * @return {Howl}\n */\n _clearTimer: function(id) {\n var self = this;\n\n if (self._endTimers[id]) {\n // Clear the timeout or remove the ended listener.\n if (typeof self._endTimers[id] !== 'function') {\n clearTimeout(self._endTimers[id]);\n } else {\n var sound = self._soundById(id);\n if (sound && sound._node) {\n sound._node.removeEventListener('ended', self._endTimers[id], false);\n }\n }\n\n delete self._endTimers[id];\n }\n\n return self;\n },\n\n /**\n * Return the sound identified by this ID, or return null.\n * @param {Number} id Sound ID\n * @return {Object} Sound object or null.\n */\n _soundById: function(id) {\n var self = this;\n\n // Loop through all sounds and find the one with this ID.\n for (var i=0; i<self._sounds.length; i++) {\n if (id === self._sounds[i]._id) {\n return self._sounds[i];\n }\n }\n\n return null;\n },\n\n /**\n * Return an inactive sound from the pool or create a new one.\n * @return {Sound} Sound playback object.\n */\n _inactiveSound: function() {\n var self = this;\n\n self._drain();\n\n // Find the first inactive node to recycle.\n for (var i=0; i<self._sounds.length; i++) {\n if (self._sounds[i]._ended) {\n return self._sounds[i].reset();\n }\n }\n\n // If no inactive node was found, create a new one.\n return new Sound(self);\n },\n\n /**\n * Drain excess inactive sounds from the pool.\n */\n _drain: function() {\n var self = this;\n var limit = self._pool;\n var cnt = 0;\n var i = 0;\n\n // If there are less sounds than the max pool size, we are done.\n if (self._sounds.length < limit) {\n return;\n }\n\n // Count the number of inactive sounds.\n for (i=0; i<self._sounds.length; i++) {\n if (self._sounds[i]._ended) {\n cnt++;\n }\n }\n\n // Remove excess inactive sounds, going in reverse order.\n for (i=self._sounds.length - 1; i>=0; i--) {\n if (cnt <= limit) {\n return;\n }\n\n if (self._sounds[i]._ended) {\n // Disconnect the audio source when using Web Audio.\n if (self._webAudio && self._sounds[i]._node) {\n self._sounds[i]._node.disconnect(0);\n }\n\n // Remove sounds until we have the pool size.\n self._sounds.splice(i, 1);\n cnt--;\n }\n }\n },\n\n /**\n * Get all ID's from the sounds pool.\n * @param {Number} id Only return one ID if one is passed.\n * @return {Array} Array of IDs.\n */\n _getSoundIds: function(id) {\n var self = this;\n\n if (typeof id === 'undefined') {\n var ids = [];\n for (var i=0; i<self._sounds.length; i++) {\n ids.push(self._sounds[i]._id);\n }\n\n return ids;\n } else {\n return [id];\n }\n },\n\n /**\n * Load the sound back into the buffer source.\n * @param {Sound} sound The sound object to work with.\n * @return {Howl}\n */\n _refreshBuffer: function(sound) {\n var self = this;\n\n // Setup the buffer source for playback.\n sound._node.bufferSource = Howler.ctx.createBufferSource();\n sound._node.bufferSource.buffer = cache[self._src];\n\n // Connect to the correct node.\n if (sound._panner) {\n sound._node.bufferSource.connect(sound._panner);\n } else {\n sound._node.bufferSource.connect(sound._node);\n }\n\n // Setup looping and playback rate.\n sound._node.bufferSource.loop = sound._loop;\n if (sound._loop) {\n sound._node.bufferSource.loopStart = sound._start || 0;\n sound._node.bufferSource.loopEnd = sound._stop || 0;\n }\n sound._node.bufferSource.playbackRate.setValueAtTime(sound._rate, Howler.ctx.currentTime);\n\n return self;\n },\n\n /**\n * Prevent memory leaks by cleaning up the buffer source after playback.\n * @param {Object} node Sound's audio node containing the buffer source.\n * @return {Howl}\n */\n _cleanBuffer: function(node) {\n var self = this;\n var isIOS = Howler._navigator && Howler._navigator.vendor.indexOf('Apple') >= 0;\n\n if (Howler._scratchBuffer && node.bufferSource) {\n node.bufferSource.onended = null;\n node.bufferSource.disconnect(0);\n if (isIOS) {\n try { node.bufferSource.buffer = Howler._scratchBuffer; } catch(e) {}\n }\n }\n node.bufferSource = null;\n\n return self;\n },\n\n /**\n * Set the source to a 0-second silence to stop any downloading (except in IE).\n * @param {Object} node Audio node to clear.\n */\n _clearSound: function(node) {\n var checkIE = /MSIE |Trident\\//.test(Howler._navigator && Howler._navigator.userAgent);\n if (!checkIE) {\n node.src = 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA';\n }\n }\n };\n\n /** Single Sound Methods **/\n /***************************************************************************/\n\n /**\n * Setup the sound object, which each node attached to a Howl group is contained in.\n * @param {Object} howl The Howl parent group.\n */\n var Sound = function(howl) {\n this._parent = howl;\n this.init();\n };\n Sound.prototype = {\n /**\n * Initialize a new Sound object.\n * @return {Sound}\n */\n init: function() {\n var self = this;\n var parent = self._parent;\n\n // Setup the default parameters.\n self._muted = parent._muted;\n self._loop = parent._loop;\n self._volume = parent._volume;\n self._rate = parent._rate;\n self._seek = 0;\n self._paused = true;\n self._ended = true;\n self._sprite = '__default';\n\n // Generate a unique ID for this sound.\n self._id = ++Howler._counter;\n\n // Add itself to the parent's pool.\n parent._sounds.push(self);\n\n // Create the new node.\n self.create();\n\n return self;\n },\n\n /**\n * Create and setup a new sound object, whether HTML5 Audio or Web Audio.\n * @return {Sound}\n */\n create: function() {\n var self = this;\n var parent = self._parent;\n var volume = (Howler._muted || self._muted || self._parent._muted) ? 0 : self._volume;\n\n if (parent._webAudio) {\n // Create the gain node for controlling volume (the source will connect to this).\n self._node = (typeof Howler.ctx.createGain === 'undefined') ? Howler.ctx.createGainNode() : Howler.ctx.createGain();\n self._node.gain.setValueAtTime(volume, Howler.ctx.currentTime);\n self._node.paused = true;\n self._node.connect(Howler.masterGain);\n } else if (!Howler.noAudio) {\n // Get an unlocked Audio object from the pool.\n self._node = Howler._obtainHtml5Audio();\n\n // Listen for errors (http://dev.w3.org/html5/spec-author-view/spec.html#mediaerror).\n self._errorFn = self._errorListener.bind(self);\n self._node.addEventListener('error', self._errorFn, false);\n\n // Listen for 'canplaythrough' event to let us know the sound is ready.\n self._loadFn = self._loadListener.bind(self);\n self._node.addEventListener(Howler._canPlayEvent, self._loadFn, false);\n\n // Listen for the 'ended' event on the sound to account for edge-case where\n // a finite sound has a duration of Infinity.\n self._endFn = self._endListener.bind(self);\n self._node.addEventListener('ended', self._endFn, false);\n\n // Setup the new audio node.\n self._node.src = parent._src;\n self._node.preload = parent._preload === true ? 'auto' : parent._preload;\n self._node.volume = volume * Howler.volume();\n\n // Begin loading the source.\n self._node.load();\n }\n\n return self;\n },\n\n /**\n * Reset the parameters of this sound to the original state (for recycle).\n * @return {Sound}\n */\n reset: function() {\n var self = this;\n var parent = self._parent;\n\n // Reset all of the parameters of this sound.\n self._muted = parent._muted;\n self._loop = parent._loop;\n self._volume = parent._volume;\n self._rate = parent._rate;\n self._seek = 0;\n self._rateSeek = 0;\n self._paused = true;\n self._ended = true;\n self._sprite = '__default';\n\n // Generate a new ID so that it isn't confused with the previous sound.\n self._id = ++Howler._counter;\n\n return self;\n },\n\n /**\n * HTML5 Audio error listener callback.\n */\n _errorListener: function() {\n var self = this;\n\n // Fire an error event and pass back the code.\n self._parent._emit('loaderror', self._id, self._node.error ? self._node.error.code : 0);\n\n // Clear the event listener.\n self._node.removeEventListener('error', self._errorFn, false);\n },\n\n /**\n * HTML5 Audio canplaythrough listener callback.\n */\n _loadListener: function() {\n var self = this;\n var parent = self._parent;\n\n // Round up the duration to account for the lower precision in HTML5 Audio.\n parent._duration = Math.ceil(self._node.duration * 10) / 10;\n\n // Setup a sprite if none is defined.\n if (Object.keys(parent._sprite).length === 0) {\n parent._sprite = {__default: [0, parent._duration * 1000]};\n }\n\n if (parent._state !== 'loaded') {\n parent._state = 'loaded';\n parent._emit('load');\n parent._loadQueue();\n }\n\n // Clear the event listener.\n self._node.removeEventListener(Howler._canPlayEvent, self._loadFn, false);\n },\n\n /**\n * HTML5 Audio ended listener callback.\n */\n _endListener: function() {\n var self = this;\n var parent = self._parent;\n\n // Only handle the `ended`` event if the duration is Infinity.\n if (parent._duration === Infinity) {\n // Update the parent duration to match the real audio duration.\n // Round up the duration to account for the lower precision in HTML5 Audio.\n parent._duration = Math.ceil(self._node.duration * 10) / 10;\n\n // Update the sprite that corresponds to the real duration.\n if (parent._sprite.__default[1] === Infinity) {\n parent._sprite.__default[1] = parent._duration * 1000;\n }\n\n // Run the regular ended method.\n parent._ended(self);\n }\n\n // Clear the event listener since the duration is now correct.\n self._node.removeEventListener('ended', self._endFn, false);\n }\n };\n\n /** Helper Methods **/\n /***************************************************************************/\n\n var cache = {};\n\n /**\n * Buffer a sound from URL, Data URI or cache and decode to audio source (Web Audio API).\n * @param {Howl} self\n */\n var loadBuffer = function(self) {\n var url = self._src;\n\n // Check if the buffer has already been cached and use it instead.\n if (cache[url]) {\n // Set the duration from the cache.\n self._duration = cache[url].duration;\n\n // Load the sound into this Howl.\n loadSound(self);\n\n return;\n }\n\n if (/^data:[^;]+;base64,/.test(url)) {\n // Decode the base64 data URI without XHR, since some browsers don't support it.\n var data = atob(url.split(',')[1]);\n var dataView = new Uint8Array(data.length);\n for (var i=0; i<data.length; ++i) {\n dataView[i] = data.charCodeAt(i);\n }\n\n decodeAudioData(dataView.buffer, self);\n } else {\n // Load the buffer from the URL.\n var xhr = new XMLHttpRequest();\n xhr.open(self._xhr.method, url, true);\n xhr.withCredentials = self._xhr.withCredentials;\n xhr.responseType = 'arraybuffer';\n\n // Apply any custom headers to the request.\n if (self._xhr.headers) {\n Object.keys(self._xhr.headers).forEach(function(key) {\n xhr.setRequestHeader(key, self._xhr.headers[key]);\n });\n }\n\n xhr.onload = function() {\n // Make sure we get a successful response back.\n var code = (xhr.status + '')[0];\n if (code !== '0' && code !== '2' && code !== '3') {\n self._emit('loaderror', null, 'Failed loading audio file with status: ' + xhr.status + '.');\n return;\n }\n\n decodeAudioData(xhr.response, self);\n };\n xhr.onerror = function() {\n // If there is an error, switch to HTML5 Audio.\n if (self._webAudio) {\n self._html5 = true;\n self._webAudio = false;\n self._sounds = [];\n delete cache[url];\n self.load();\n }\n };\n safeXhrSend(xhr);\n }\n };\n\n /**\n * Send the XHR request wrapped in a try/catch.\n * @param {Object} xhr XHR to send.\n */\n var safeXhrSend = function(xhr) {\n try {\n xhr.send();\n } catch (e) {\n xhr.onerror();\n }\n };\n\n /**\n * Decode audio data from an array buffer.\n * @param {ArrayBuffer} arraybuffer The audio data.\n * @param {Howl} self\n */\n var decodeAudioData = function(arraybuffer, self) {\n // Fire a load error if something broke.\n var error = function() {\n self._emit('loaderror', null, 'Decoding audio data failed.');\n };\n\n // Load the sound on success.\n var success = function(buffer) {\n if (buffer && self._sounds.length > 0) {\n cache[self._src] = buffer;\n loadSound(self, buffer);\n } else {\n error();\n }\n };\n\n // Decode the buffer into an audio source.\n if (typeof Promise !== 'undefined' && Howler.ctx.decodeAudioData.length === 1) {\n Howler.ctx.decodeAudioData(arraybuffer).then(success).catch(error);\n } else {\n Howler.ctx.decodeAudioData(arraybuffer, success, error);\n }\n }\n\n /**\n * Sound is now loaded, so finish setting everything up and fire the loaded event.\n * @param {Howl} self\n * @param {Object} buffer The decoded buffer sound source.\n */\n var loadSound = function(self, buffer) {\n // Set the duration.\n if (buffer && !self._duration) {\n self._duration = buffer.duration;\n }\n\n // Setup a sprite if none is defined.\n if (Object.keys(self._sprite).length === 0) {\n self._sprite = {__default: [0, self._duration * 1000]};\n }\n\n // Fire the loaded event.\n if (self._state !== 'loaded') {\n self._state = 'loaded';\n self._emit('load');\n self._loadQueue();\n }\n };\n\n /**\n * Setup the audio context when available, or switch to HTML5 Audio mode.\n */\n var setupAudioContext = function() {\n // If we have already detected that Web Audio isn't supported, don't run this step again.\n if (!Howler.usingWebAudio) {\n return;\n }\n\n // Check if we are using Web Audio and setup the AudioContext if we are.\n try {\n if (typeof AudioContext !== 'undefined') {\n Howler.ctx = new AudioContext();\n } else if (typeof webkitAudioContext !== 'undefined') {\n Howler.ctx = new webkitAudioContext();\n } else {\n Howler.usingWebAudio = false;\n }\n } catch(e) {\n Howler.usingWebAudio = false;\n }\n\n // If the audio context creation still failed, set using web audio to false.\n if (!Howler.ctx) {\n Howler.usingWebAudio = false;\n }\n\n // Check if a webview is being used on iOS8 or earlier (rather than the browser).\n // If it is, disable Web Audio as it causes crashing.\n var iOS = (/iP(hone|od|ad)/.test(Howler._navigator && Howler._navigator.platform));\n var appVersion = Howler._navigator && Howler._navigator.appVersion.match(/OS (\\d+)_(\\d+)_?(\\d+)?/);\n var version = appVersion ? parseInt(appVersion[1], 10) : null;\n if (iOS && version && version < 9) {\n var safari = /safari/.test(Howler._navigator && Howler._navigator.userAgent.toLowerCase());\n if (Howler._navigator && !safari) {\n Howler.usingWebAudio = false;\n }\n }\n\n // Create and expose the master GainNode when using Web Audio (useful for plugins or advanced usage).\n if (Howler.usingWebAudio) {\n Howler.masterGain = (typeof Howler.ctx.createGain === 'undefined') ? Howler.ctx.createGainNode() : Howler.ctx.createGain();\n Howler.masterGain.gain.setValueAtTime(Howler._muted ? 0 : Howler._volume, Howler.ctx.currentTime);\n Howler.masterGain.connect(Howler.ctx.destination);\n }\n\n // Re-run the setup on Howler.\n Howler._setup();\n };\n\n // Add support for AMD (Asynchronous Module Definition) libraries such as require.js.\n if (typeof define === 'function' && define.amd) {\n define([], function() {\n return {\n Howler: Howler,\n Howl: Howl\n };\n });\n }\n\n // Add support for CommonJS libraries such as browserify.\n if (typeof exports !== 'undefined') {\n exports.Howler = Howler;\n exports.Howl = Howl;\n }\n\n // Add to global in Node.js (for testing, etc).\n if (typeof global !== 'undefined') {\n global.HowlerGlobal = HowlerGlobal;\n global.Howler = Howler;\n global.Howl = Howl;\n global.Sound = Sound;\n } else if (typeof window !== 'undefined') { // Define globally in case AMD is not available or unused.\n window.HowlerGlobal = HowlerGlobal;\n window.Howler = Howler;\n window.Howl = Howl;\n window.Sound = Sound;\n }\n})();\n\n\n/*!\n * Spatial Plugin - Adds support for stereo and 3D audio where Web Audio is supported.\n * \n * howler.js v2.2.3\n * howlerjs.com\n *\n * (c) 2013-2020, James Simpson of GoldFire Studios\n * goldfirestudios.com\n *\n * MIT License\n */\n\n(function() {\n\n 'use strict';\n\n // Setup default properties.\n HowlerGlobal.prototype._pos = [0, 0, 0];\n HowlerGlobal.prototype._orientation = [0, 0, -1, 0, 1, 0];\n\n /** Global Methods **/\n /***************************************************************************/\n\n /**\n * Helper method to update the stereo panning position of all current Howls.\n * Future Howls will not use this value unless explicitly set.\n * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right.\n * @return {Howler/Number} Self or current stereo panning value.\n */\n HowlerGlobal.prototype.stereo = function(pan) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Loop through all Howls and update their stereo panning.\n for (var i=self._howls.length-1; i>=0; i--) {\n self._howls[i].stereo(pan);\n }\n\n return self;\n };\n\n /**\n * Get/set the position of the listener in 3D cartesian space. Sounds using\n * 3D position will be relative to the listener's position.\n * @param {Number} x The x-position of the listener.\n * @param {Number} y The y-position of the listener.\n * @param {Number} z The z-position of the listener.\n * @return {Howler/Array} Self or current listener position.\n */\n HowlerGlobal.prototype.pos = function(x, y, z) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n y = (typeof y !== 'number') ? self._pos[1] : y;\n z = (typeof z !== 'number') ? self._pos[2] : z;\n\n if (typeof x === 'number') {\n self._pos = [x, y, z];\n\n if (typeof self.ctx.listener.positionX !== 'undefined') {\n self.ctx.listener.positionX.setTargetAtTime(self._pos[0], Howler.ctx.currentTime, 0.1);\n self.ctx.listener.positionY.setTargetAtTime(self._pos[1], Howler.ctx.currentTime, 0.1);\n self.ctx.listener.positionZ.setTargetAtTime(self._pos[2], Howler.ctx.currentTime, 0.1);\n } else {\n self.ctx.listener.setPosition(self._pos[0], self._pos[1], self._pos[2]);\n }\n } else {\n return self._pos;\n }\n\n return self;\n };\n\n /**\n * Get/set the direction the listener is pointing in the 3D cartesian space.\n * A front and up vector must be provided. The front is the direction the\n * face of the listener is pointing, and up is the direction the top of the\n * listener is pointing. Thus, these values are expected to be at right angles\n * from each other.\n * @param {Number} x The x-orientation of the listener.\n * @param {Number} y The y-orientation of the listener.\n * @param {Number} z The z-orientation of the listener.\n * @param {Number} xUp The x-orientation of the top of the listener.\n * @param {Number} yUp The y-orientation of the top of the listener.\n * @param {Number} zUp The z-orientation of the top of the listener.\n * @return {Howler/Array} Returns self or the current orientation vectors.\n */\n HowlerGlobal.prototype.orientation = function(x, y, z, xUp, yUp, zUp) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n var or = self._orientation;\n y = (typeof y !== 'number') ? or[1] : y;\n z = (typeof z !== 'number') ? or[2] : z;\n xUp = (typeof xUp !== 'number') ? or[3] : xUp;\n yUp = (typeof yUp !== 'number') ? or[4] : yUp;\n zUp = (typeof zUp !== 'number') ? or[5] : zUp;\n\n if (typeof x === 'number') {\n self._orientation = [x, y, z, xUp, yUp, zUp];\n\n if (typeof self.ctx.listener.forwardX !== 'undefined') {\n self.ctx.listener.forwardX.setTargetAtTime(x, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.forwardY.setTargetAtTime(y, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.forwardZ.setTargetAtTime(z, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upX.setTargetAtTime(xUp, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upY.setTargetAtTime(yUp, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upZ.setTargetAtTime(zUp, Howler.ctx.currentTime, 0.1);\n } else {\n self.ctx.listener.setOrientation(x, y, z, xUp, yUp, zUp);\n }\n } else {\n return or;\n }\n\n return self;\n };\n\n /** Group Methods **/\n /***************************************************************************/\n\n /**\n * Add new properties to the core init.\n * @param {Function} _super Core init method.\n * @return {Howl}\n */\n Howl.prototype.init = (function(_super) {\n return function(o) {\n var self = this;\n\n // Setup user-defined default properties.\n self._orientation = o.orientation || [1, 0, 0];\n self._stereo = o.stereo || null;\n self._pos = o.pos || null;\n self._pannerAttr = {\n coneInnerAngle: typeof o.coneInnerAngle !== 'undefined' ? o.coneInnerAngle : 360,\n coneOuterAngle: typeof o.coneOuterAngle !== 'undefined' ? o.coneOuterAngle : 360,\n coneOuterGain: typeof o.coneOuterGain !== 'undefined' ? o.coneOuterGain : 0,\n distanceModel: typeof o.distanceModel !== 'undefined' ? o.distanceModel : 'inverse',\n maxDistance: typeof o.maxDistance !== 'undefined' ? o.maxDistance : 10000,\n panningModel: typeof o.panningModel !== 'undefined' ? o.panningModel : 'HRTF',\n refDistance: typeof o.refDistance !== 'undefined' ? o.refDistance : 1,\n rolloffFactor: typeof o.rolloffFactor !== 'undefined' ? o.rolloffFactor : 1\n };\n\n // Setup event listeners.\n self._onstereo = o.onstereo ? [{fn: o.onstereo}] : [];\n self._onpos = o.onpos ? [{fn: o.onpos}] : [];\n self._onorientation = o.onorientation ? [{fn: o.onorientation}] : [];\n\n // Complete initilization with howler.js core's init function.\n return _super.call(this, o);\n };\n })(Howl.prototype.init);\n\n /**\n * Get/set the stereo panning of the audio source for this sound or all in the group.\n * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right.\n * @param {Number} id (optional) The sound ID. If none is passed, all in group will be updated.\n * @return {Howl/Number} Returns self or the current stereo panning value.\n */\n Howl.prototype.stereo = function(pan, id) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // If the sound hasn't loaded, add it to the load queue to change stereo pan when capable.\n if (self._state !== 'loaded') {\n self._queue.push({\n event: 'stereo',\n action: function() {\n self.stereo(pan, id);\n }\n });\n\n return self;\n }\n\n // Check for PannerStereoNode support and fallback to PannerNode if it doesn't exist.\n var pannerType = (typeof Howler.ctx.createStereoPanner === 'undefined') ? 'spatial' : 'stereo';\n\n // Setup the group's stereo panning if no ID is passed.\n if (typeof id === 'undefined') {\n // Return the group's stereo panning if no parameters are passed.\n if (typeof pan === 'number') {\n self._stereo = pan;\n self._pos = [pan, 0, 0];\n } else {\n return self._stereo;\n }\n }\n\n // Change the streo panning of one or all sounds in group.\n var ids = self._getSoundIds(id);\n for (var i=0; i<ids.length; i++) {\n // Get the sound.\n var sound = self._soundById(ids[i]);\n\n if (sound) {\n if (typeof pan === 'number') {\n sound._stereo = pan;\n sound._pos = [pan, 0, 0];\n\n if (sound._node) {\n // If we are falling back, make sure the panningModel is equalpower.\n sound._pannerAttr.panningModel = 'equalpower';\n\n // Check if there is a panner setup and create a new one if not.\n if (!sound._panner || !sound._panner.pan) {\n setupPanner(sound, pannerType);\n }\n\n if (pannerType === 'spatial') {\n if (typeof sound._panner.positionX !== 'undefined') {\n sound._panner.positionX.setValueAtTime(pan, Howler.ctx.currentTime);\n sound._panner.positionY.setValueAtTime(0, Howler.ctx.currentTime);\n sound._panner.positionZ.setValueAtTime(0, Howler.ctx.currentTime);\n } else {\n sound._panner.setPosition(pan, 0, 0);\n }\n } else {\n sound._panner.pan.setValueAtTime(pan, Howler.ctx.currentTime);\n }\n }\n\n self._emit('stereo', sound._id);\n } else {\n return sound._stereo;\n }\n }\n }\n\n return self;\n };\n\n /**\n * Get/set the 3D spatial position of the audio source for this sound or group relative to the global listener.\n * @param {Number} x The x-position of the audio source.\n * @param {Number} y The y-position of the audio source.\n * @param {Number} z The z-position of the audio source.\n * @param {Number} id (optional) The sound ID. If none is passed, all in group will be updated.\n * @return {Howl/Array} Returns self or the current 3D spatial position: [x, y, z].\n */\n Howl.prototype.pos = function(x, y, z, id) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // If the sound hasn't loaded, add it to the load queue to change position when capable.\n if (self._state !== 'loaded') {\n self._queue.push({\n event: 'pos',\n action: function() {\n self.pos(x, y, z, id);\n }\n });\n\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n y = (typeof y !== 'number') ? 0 : y;\n z = (typeof z !== 'number') ? -0.5 : z;\n\n // Setup the group's spatial position if no ID is passed.\n if (typeof id === 'undefined') {\n // Return the group's spatial position if no parameters are passed.\n if (typeof x === 'number') {\n self._pos = [x, y, z];\n } else {\n return self._pos;\n }\n }\n\n // Change the spatial position of one or all sounds in group.\n var ids = self._getSoundIds(id);\n for (var i=0; i<ids.length; i++) {\n // Get the sound.\n var sound = self._soundById(ids[i]);\n\n if (sound) {\n if (typeof x === 'number') {\n sound._pos = [x, y, z];\n\n if (sound._node) {\n // Check if there is a panner setup and create a new one if not.\n if (!sound._panner || sound._panner.pan) {\n setupPanner(sound, 'spatial');\n }\n\n if (typeof sound._panner.positionX !== 'undefined') {\n sound._panner.positionX.setValueAtTime(x, Howler.ctx.currentTime);\n sound._panner.positionY.setValueAtTime(y, Howler.ctx.currentTime);\n sound._panner.positionZ.setValueAtTime(z, Howler.ctx.currentTime);\n } else {\n sound._panner.setPosition(x, y, z);\n }\n }\n\n self._emit('pos', sound._id);\n } else {\n return sound._pos;\n }\n }\n }\n\n return self;\n };\n\n /**\n * Get/set the direction the audio source is pointing in the 3D cartesian coordinate\n * space. Depending on how direction the sound is, based on the `cone` attributes,\n * a sound pointing away from the listener can be quiet or silent.\n * @param {Number} x The x-orientation of the source.\n * @param {Number} y The y-orientation of the source.\n * @param {Number} z The z-orientation of the source.\n * @param {Number} id (optional) The sound ID. If none is passed, all in group will be updated.\n * @return {Howl/Array} Returns self or the current 3D spatial orientation: [x, y, z].\n */\n Howl.prototype.orientation = function(x, y, z, id) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // If the sound hasn't loaded, add it to the load queue to change orientation when capable.\n if (self._state !== 'loaded') {\n self._queue.push({\n event: 'orientation',\n action: function() {\n self.orientation(x, y, z, id);\n }\n });\n\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n y = (typeof y !== 'number') ? self._orientation[1] : y;\n z = (typeof z !== 'number') ? self._orientation[2] : z;\n\n // Setup the group's spatial orientation if no ID is passed.\n if (typeof id === 'undefined') {\n // Return the group's spatial orientation if no parameters are passed.\n if (typeof x === 'number') {\n self._orientation = [x, y, z];\n } else {\n return self._orientation;\n }\n }\n\n // Change the spatial orientation of one or all sounds in group.\n var ids = self._getSoundIds(id);\n for (var i=0; i<ids.length; i++) {\n // Get the sound.\n var sound = self._soundById(ids[i]);\n\n if (sound) {\n if (typeof x === 'number') {\n sound._orientation = [x, y, z];\n\n if (sound._node) {\n // Check if there is a panner setup and create a new one if not.\n if (!sound._panner) {\n // Make sure we have a position to setup the node with.\n if (!sound._pos) {\n sound._pos = self._pos || [0, 0, -0.5];\n }\n\n setupPanner(sound, 'spatial');\n }\n\n if (typeof sound._panner.orientationX !== 'undefined') {\n sound._panner.orientationX.setValueAtTime(x, Howler.ctx.currentTime);\n sound._panner.orientationY.setValueAtTime(y, Howler.ctx.currentTime);\n sound._panner.orientationZ.setValueAtTime(z, Howler.ctx.currentTime);\n } else {\n sound._panner.setOrientation(x, y, z);\n }\n }\n\n self._emit('orientation', sound._id);\n } else {\n return sound._orientation;\n }\n }\n }\n\n return self;\n };\n\n /**\n * Get/set the panner node's attributes for a sound or group of sounds.\n * This method can optionall take 0, 1 or 2 arguments.\n * pannerAttr() -> Returns the group's values.\n * pannerAttr(id) -> Returns the sound id's values.\n * pannerAttr(o) -> Set's the values of all sounds in this Howl group.\n * pannerAttr(o, id) -> Set's the values of passed sound id.\n *\n * Attributes:\n * coneInnerAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees,\n * inside of which there will be no volume reduction.\n * coneOuterAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees,\n * outside of which the volume will be reduced to a constant value of `coneOuterGain`.\n * coneOuterGain - (0 by default) A parameter for directional audio sources, this is the gain outside of the\n * `coneOuterAngle`. It is a linear value in the range `[0, 1]`.\n * distanceModel - ('inverse' by default) Determines algorithm used to reduce volume as audio moves away from\n * listener. Can be `linear`, `inverse` or `exponential.\n * maxDistance - (10000 by default) The maximum distance between source and listener, after which the volume\n * will not be reduced any further.\n * refDistance - (1 by default) A reference distance for reducing volume as source moves further from the listener.\n * This is simply a variable of the distance model and has a different effect depending on which model\n * is used and the scale of your coordinates. Generally, volume will be equal to 1 at this distance.\n * rolloffFactor - (1 by default) How quickly the volume reduces as source moves from listener. This is simply a\n * variable of the distance model and can be in the range of `[0, 1]` with `linear` and `[0, ∞]`\n * with `inverse` and `exponential`.\n * panningModel - ('HRTF' by default) Determines which spatialization algorithm is used to position audio.\n * Can be `HRTF` or `equalpower`.\n *\n * @return {Howl/Object} Returns self or current panner attributes.\n */\n Howl.prototype.pannerAttr = function() {\n var self = this;\n var args = arguments;\n var o, id, sound;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // Return the group's panner attribute values.\n return self._pannerAttr;\n } else if (args.length === 1) {\n if (typeof args[0] === 'object') {\n o = args[0];\n\n // Set the grou's panner attribute values.\n if (typeof id === 'undefined') {\n if (!o.pannerAttr) {\n o.pannerAttr = {\n coneInnerAngle: o.coneInnerAngle,\n coneOuterAngle: o.coneOuterAngle,\n coneOuterGain: o.coneOuterGain,\n distanceModel: o.distanceModel,\n maxDistance: o.maxDistance,\n refDistance: o.refDistance,\n rolloffFactor: o.rolloffFactor,\n panningModel: o.panningModel\n };\n }\n\n self._pannerAttr = {\n coneInnerAngle: typeof o.pannerAttr.coneInnerAngle !== 'undefined' ? o.pannerAttr.coneInnerAngle : self._coneInnerAngle,\n coneOuterAngle: typeof o.pannerAttr.coneOuterAngle !== 'undefined' ? o.pannerAttr.coneOuterAngle : self._coneOuterAngle,\n coneOuterGain: typeof o.pannerAttr.coneOuterGain !== 'undefined' ? o.pannerAttr.coneOuterGain : self._coneOuterGain,\n distanceModel: typeof o.pannerAttr.distanceModel !== 'undefined' ? o.pannerAttr.distanceModel : self._distanceModel,\n maxDistance: typeof o.pannerAttr.maxDistance !== 'undefined' ? o.pannerAttr.maxDistance : self._maxDistance,\n refDistance: typeof o.pannerAttr.refDistance !== 'undefined' ? o.pannerAttr.refDistance : self._refDistance,\n rolloffFactor: typeof o.pannerAttr.rolloffFactor !== 'undefined' ? o.pannerAttr.rolloffFactor : self._rolloffFactor,\n panningModel: typeof o.pannerAttr.panningModel !== 'undefined' ? o.pannerAttr.panningModel : self._panningModel\n };\n }\n } else {\n // Return this sound's panner attribute values.\n sound = self._soundById(parseInt(args[0], 10));\n return sound ? sound._pannerAttr : self._pannerAttr;\n }\n } else if (args.length === 2) {\n o = args[0];\n id = parseInt(args[1], 10);\n }\n\n // Update the values of the specified sounds.\n var ids = self._getSoundIds(id);\n for (var i=0; i<ids.length; i++) {\n sound = self._soundById(ids[i]);\n\n if (sound) {\n // Merge the new values into the sound.\n var pa = sound._pannerAttr;\n pa = {\n coneInnerAngle: typeof o.coneInnerAngle !== 'undefined' ? o.coneInnerAngle : pa.coneInnerAngle,\n coneOuterAngle: typeof o.coneOuterAngle !== 'undefined' ? o.coneOuterAngle : pa.coneOuterAngle,\n coneOuterGain: typeof o.coneOuterGain !== 'undefined' ? o.coneOuterGain : pa.coneOuterGain,\n distanceModel: typeof o.distanceModel !== 'undefined' ? o.distanceModel : pa.distanceModel,\n maxDistance: typeof o.maxDistance !== 'undefined' ? o.maxDistance : pa.maxDistance,\n refDistance: typeof o.refDistance !== 'undefined' ? o.refDistance : pa.refDistance,\n rolloffFactor: typeof o.rolloffFactor !== 'undefined' ? o.rolloffFactor : pa.rolloffFactor,\n panningModel: typeof o.panningModel !== 'undefined' ? o.panningModel : pa.panningModel\n };\n\n // Update the panner values or create a new panner if none exists.\n var panner = sound._panner;\n if (panner) {\n panner.coneInnerAngle = pa.coneInnerAngle;\n panner.coneOuterAngle = pa.coneOuterAngle;\n panner.coneOuterGain = pa.coneOuterGain;\n panner.distanceModel = pa.distanceModel;\n panner.maxDistance = pa.maxDistance;\n panner.refDistance = pa.refDistance;\n panner.rolloffFactor = pa.rolloffFactor;\n panner.panningModel = pa.panningModel;\n } else {\n // Make sure we have a position to setup the node with.\n if (!sound._pos) {\n sound._pos = self._pos || [0, 0, -0.5];\n }\n\n // Create a new panner node.\n setupPanner(sound, 'spatial');\n }\n }\n }\n\n return self;\n };\n\n /** Single Sound Methods **/\n /***************************************************************************/\n\n /**\n * Add new properties to the core Sound init.\n * @param {Function} _super Core Sound init method.\n * @return {Sound}\n */\n Sound.prototype.init = (function(_super) {\n return function() {\n var self = this;\n var parent = self._parent;\n\n // Setup user-defined default properties.\n self._orientation = parent._orientation;\n self._stereo = parent._stereo;\n self._pos = parent._pos;\n self._pannerAttr = parent._pannerAttr;\n\n // Complete initilization with howler.js core Sound's init function.\n _super.call(this);\n\n // If a stereo or position was specified, set it up.\n if (self._stereo) {\n parent.stereo(self._stereo);\n } else if (self._pos) {\n parent.pos(self._pos[0], self._pos[1], self._pos[2], self._id);\n }\n };\n })(Sound.prototype.init);\n\n /**\n * Override the Sound.reset method to clean up properties from the spatial plugin.\n * @param {Function} _super Sound reset method.\n * @return {Sound}\n */\n Sound.prototype.reset = (function(_super) {\n return function() {\n var self = this;\n var parent = self._parent;\n\n // Reset all spatial plugin properties on this sound.\n self._orientation = parent._orientation;\n self._stereo = parent._stereo;\n self._pos = parent._pos;\n self._pannerAttr = parent._pannerAttr;\n\n // If a stereo or position was specified, set it up.\n if (self._stereo) {\n parent.stereo(self._stereo);\n } else if (self._pos) {\n parent.pos(self._pos[0], self._pos[1], self._pos[2], self._id);\n } else if (self._panner) {\n // Disconnect the panner.\n self._panner.disconnect(0);\n self._panner = undefined;\n parent._refreshBuffer(self);\n }\n\n // Complete resetting of the sound.\n return _super.call(this);\n };\n })(Sound.prototype.reset);\n\n /** Helper Methods **/\n /***************************************************************************/\n\n /**\n * Create a new panner node and save it on the sound.\n * @param {Sound} sound Specific sound to setup panning on.\n * @param {String} type Type of panner to create: 'stereo' or 'spatial'.\n */\n var setupPanner = function(sound, type) {\n type = type || 'spatial';\n\n // Create the new panner node.\n if (type === 'spatial') {\n sound._panner = Howler.ctx.createPanner();\n sound._panner.coneInnerAngle = sound._pannerAttr.coneInnerAngle;\n sound._panner.coneOuterAngle = sound._pannerAttr.coneOuterAngle;\n sound._panner.coneOuterGain = sound._pannerAttr.coneOuterGain;\n sound._panner.distanceModel = sound._pannerAttr.distanceModel;\n sound._panner.maxDistance = sound._pannerAttr.maxDistance;\n sound._panner.refDistance = sound._pannerAttr.refDistance;\n sound._panner.rolloffFactor = sound._pannerAttr.rolloffFactor;\n sound._panner.panningModel = sound._pannerAttr.panningModel;\n\n if (typeof sound._panner.positionX !== 'undefined') {\n sound._panner.positionX.setValueAtTime(sound._pos[0], Howler.ctx.currentTime);\n sound._panner.positionY.setValueAtTime(sound._pos[1], Howler.ctx.currentTime);\n sound._panner.positionZ.setValueAtTime(sound._pos[2], Howler.ctx.currentTime);\n } else {\n sound._panner.setPosition(sound._pos[0], sound._pos[1], sound._pos[2]);\n }\n\n if (typeof sound._panner.orientationX !== 'undefined') {\n sound._panner.orientationX.setValueAtTime(sound._orientation[0], Howler.ctx.currentTime);\n sound._panner.orientationY.setValueAtTime(sound._orientation[1], Howler.ctx.currentTime);\n sound._panner.orientationZ.setValueAtTime(sound._orientation[2], Howler.ctx.currentTime);\n } else {\n sound._panner.setOrientation(sound._orientation[0], sound._orientation[1], sound._orientation[2]);\n }\n } else {\n sound._panner = Howler.ctx.createStereoPanner();\n sound._panner.pan.setValueAtTime(sound._stereo, Howler.ctx.currentTime);\n }\n\n sound._panner.connect(sound._node);\n\n // Update the connections.\n if (!sound._paused) {\n sound._parent.pause(sound._id, true).play(sound._id, true);\n }\n };\n})();\n","import { Howl } from 'howler'\nimport { useEffect, useRef, useState } from 'preact/hooks'\nimport { Btn, NumberInput, RangeInput, TextInput } from '..'\nimport { useLocale, useVersion } from '../../contexts'\nimport type { SoundEvents } from '../../services'\nimport { getSoundUrl } from '../../services'\n\nexport interface SoundConfig {\n\tid: string,\n\tsound: string,\n\tdelay: number,\n\tpitch: number,\n\tvolume: number,\n}\ntype SoundConfigProps = SoundConfig & {\n\tsounds: SoundEvents,\n\tonEdit: (changes: Partial<SoundConfig>) => unknown,\n\tonDelete: () => unknown,\n\tdelayedPlay?: number,\n}\nexport function SoundConfig({ sounds, sound, delay, pitch, volume, onEdit, onDelete, delayedPlay }: SoundConfigProps) {\n\tconst { locale } = useLocale()\n\tconst { version } = useVersion()\n\tconst [loading, setLoading] = useState(true)\n\tconst [playing, setPlaying] = useState(false)\n\tconst [invalid, setInvalid] = useState(false)\n\tconst howls = useRef<Howl[]>([])\n\tconst command = `playsound minecraft:${sound} master @s ~ ~ ~ ${volume} ${pitch}`\n\n\tuseEffect(() => {\n\t\tconst soundEvent = sounds[sound]\n\t\tsetInvalid((soundEvent?.sounds?.length ?? 0) === 0)\n\t\thowls.current.forEach(h => h.stop())\n\t\thowls.current = (soundEvent?.sounds ?? []).map(entry => {\n\t\t\tconst soundPath = typeof entry === 'string' ? entry : entry.name\n\t\t\tconst url = getSoundUrl(version, soundPath)\n\t\t\tconst howl = new Howl({\n\t\t\t\tsrc: [url],\n\t\t\t\tformat: ['ogg'],\n\t\t\t\tvolume,\n\t\t\t\trate: pitch,\n\t\t\t})\n\t\t\thowl.on('end', () => {\n\t\t\t\tsetPlaying(false)\n\t\t\t})\n\t\t\tconst completed = () => {\n\t\t\t\tif (loading && howls.current.every(h => h.state() === 'loaded')) {\n\t\t\t\t\tsetLoading(false)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (howl.state() === 'loaded') {\n\t\t\t\tsetTimeout(() => completed())\n\t\t\t} else {\n\t\t\t\thowl.on('load', () => {\n\t\t\t\t\tcompleted()\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn howl\n\t\t})\n\t\tsetLoading(true)\n\t}, [sound, sounds])\n\n\tuseEffect(() => {\n\t\thowls.current.forEach(h => h.rate(pitch))\n\t}, [pitch])\n\n\tuseEffect(() => {\n\t\thowls.current.forEach(h => h.volume(volume))\n\t}, [volume])\n\n\tconst play = () => {\n\t\tif (loading || invalid) return\n\t\tstop()\n\t\tconst howl = Math.floor(Math.random() * howls.current.length)\n\t\thowls.current[howl].play()\n\t\tsetPlaying(true)\n\t}\n\tconst stop = () => {\n\t\thowls.current.forEach(h => h.stop())\n\t}\n\tuseEffect(() => {\n\t\tif (delayedPlay) setTimeout(() => play(), delay * 50)\n\t}, [delayedPlay])\n\n\tuseEffect(() => {\n\t\treturn () => stop()\n\t}, [])\n\n\tconst [copyActive, setCopyActive] = useState(false)\n\tconst copyTimeout = useRef<number | undefined>(undefined)\n\tconst copy = () => {\n\t\tnavigator.clipboard.writeText(command)\n\t\tsetCopyActive(true)\n\t\tif (copyTimeout.current !== undefined) clearTimeout(copyTimeout.current)\n\t\tcopyTimeout.current = setTimeout(() => {\n\t\t\tsetCopyActive(false)\n\t\t}, 2000) as any\n\t}\n\n\treturn <div class={`sound-config${loading ? ' loading' : playing ? ' playing' : ''}${invalid ? ' invalid' : ''}`}>\n\t\t<Btn class=\"play\" icon={invalid ? 'alert' : loading ? 'sync' : 'play'} label={locale('sounds.play')} onClick={play} tooltip={invalid ? locale('sounds.unknown_sound') : loading ? locale('sounds.loading_sound') : locale('sounds.play_sound')} tooltipLoc=\"se\" />\n\t\t<TextInput class=\"btn btn-input sound\" list=\"sound-list\" spellcheck={false}\n\t\t\tvalue={sound} onChange={sound => onEdit({ sound })} />\n\t\t<label class=\"delay-label\">{locale('sounds.delay')}: </label>\n\t\t<NumberInput class=\"btn btn-input delay\" min={0}\n\t\t\tvalue={delay} onChange={delay => onEdit({ delay })} />\n\t\t<label class=\"pitch-label\">{locale('sounds.pitch')}: </label>\n\t\t<RangeInput class=\"pitch tooltipped tip-s\" min={0.5} max={2} step={0.01}\n\t\t\taria-label={pitch.toFixed(2)} style={`--x: ${(pitch - 0.5) * (100 / 1.5)}%`}\n\t\t\tvalue={pitch} onChange={pitch => onEdit({ pitch })} />\n\t\t<label class=\"volume-label\">{locale('sounds.volume')}: </label>\n\t\t<RangeInput class=\"volume tooltipped tip-s\" min={0} max={1} step={0.01}\n\t\t\taria-label={volume.toFixed(2)} style={`--x: ${volume * 100}%`}\n\t\t\tvalue={volume} onChange={volume => onEdit({ volume })} />\n\t\t<Btn class={`copy${copyActive ? ' active' : ''}`} icon={copyActive ? 'check' : 'terminal'} label={locale('copy')} tooltip={copyActive ? locale('copied') : locale('sounds.copy_command')}\n\t\t\tonClick={copy} />\n\t\t<Btn class=\"remove\" icon=\"trashcan\" tooltip={locale('sounds.remove_sound')}\n\t\t\tonClick={() => {onDelete(); stop()}} />\n\t</div>\n}\n","import type { ComponentChildren } from 'preact'\nimport { Icons } from './Icons'\n\ntype ToolCardProps = {\n\ttitle: string,\n\tdesc?: string,\n\tlink?: string,\n\ticon?: keyof typeof Icons,\n\tchildren?: ComponentChildren,\n}\nexport function ToolCard({ title, desc, link, icon, children }: ToolCardProps) {\n\tconst content = <>\n\t\t<div class=\"tool-head\">\n\t\t\t{icon && Icons[icon]}\n\t\t\t<div>\n\t\t\t\t<h3>{title}</h3>\n\t\t\t\t<p>{desc}</p>\n\t\t\t</div>\n\t\t</div>\n\t\t{children && <div class=\"tool-body\">\n\t\t\t{children}\n\t\t</div>}\n\t</>\n\treturn link\n\t\t? <a class=\"tool-card\" href={link}>{content}</a>\n\t\t: <div class=\"tool-card\">{content}</div>\n}\n","import { useMemo, useState } from 'preact/hooks'\nimport { Octicon } from '.'\n\nconst SEPARATOR = '/'\n\ninterface Props {\n\tentries: string[],\n\tonSelect: (entry: string) => unknown,\n\tindent?: number,\n}\nexport function TreeView({ entries, onSelect, indent }: Props) {\n\tconst roots = useMemo(() => {\n\t\tconst groups: Record<string, string[]> = {}\n\t\tfor (const entry of entries) {\n\t\t\tconst i = entry.indexOf(SEPARATOR)\n\t\t\tif (i >= 0) {\n\t\t\t\tconst root = entry.slice(0, i)\n\t\t\t\t;(groups[root] ??= []).push(entry.slice(i + 1))\n\t\t\t}\n\t\t}\n\t\treturn Object.entries(groups)\n\t}, entries)\n\n\tconst leaves = useMemo(() => {\n\t\treturn entries.filter(e => !e.includes(SEPARATOR))\n\t}, entries)\n\n\tconst [hidden, setHidden] = useState(new Set<string>())\n\tconst toggle = (root: string) => {\n\t\tif (hidden.has(root)) {\n\t\t\thidden.delete(root)\n\t\t} else {\n\t\t\thidden.add(root)\n\t\t}\n\t\tsetHidden(new Set(hidden))\n\t}\n\n\treturn <div class=\"tree-view\" style={`--indent: ${indent ?? 0};`}>\n\t\t{roots.map(([r, entries]) => <div>\n\t\t\t<TreeViewEntry icon={hidden.has(r) ? 'chevron_right' : 'chevron_down'} key={r} label={r} onClick={() => toggle(r)}/>\n\t\t\t{!hidden.has(r) &&\n\t\t\t\t<TreeView entries={entries} onSelect={e => onSelect(`${r}/${e}`)} indent={(indent ?? 0) + 1} />}\n\t\t</div>)}\n\t\t{leaves.map(e => <TreeViewEntry icon=\"file\" key={e} label={e} onClick={() => onSelect(e)} />)}\n\t</div>\n}\n\ninterface TreeViewEntryProps {\n\ticon: keyof typeof Octicon,\n\tlabel: string,\n\tonClick?: () => unknown,\n}\nfunction TreeViewEntry({ icon, label, onClick }: TreeViewEntryProps) {\n\treturn <div class=\"entry\" onClick={onClick} >\n\t\t{Octicon[icon]}\n\t\t{label}\n\t</div>\n}\n","import config from '../../config.json'\nimport { ToolCard } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport { cleanUrl } from '../Utils'\n\ninterface Props {\n\tcategory: string,\n\tpath?: string,\n}\nexport function Category({ category }: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.generator_category', locale(category)))\n\treturn <main>\n\t\t<div class=\"category\">\n\t\t\t{config.generators.filter(g => g.category === category).map(g => \n\t\t\t\t<ToolCard title={locale(g.id)} link={cleanUrl(g.url)} />\n\t\t\t)}\n\t\t</div>\n\t</main>\n}\n","import { useEffect, useState } from 'preact/hooks'\nimport { Ad, ChangelogList, ErrorPanel } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport type { Change } from '../services'\nimport { getChangelogs } from '../services'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Changelog({}: Props) {\n\tconst { locale } = useLocale()\n\tconst [error, setError] = useState<Error | null>(null)\n\tuseTitle(locale('title.changelog'))\n\n\tconst [changelogs, setChangelogs] = useState<Change[]>([])\n\tuseEffect(() => {\n\t\tgetChangelogs()\n\t\t\t.then(changelogs => setChangelogs(changelogs))\n\t\t\t.catch(e => { console.error(e); setError(e) })\n\t}, [])\n\n\n\treturn <main>\n\t\t<Ad type=\"text\" id=\"changelog\" />\n\t\t{error && <ErrorPanel error={error} onDismiss={() => setError(null)} />}\n\t\t<div class=\"changelog\">\n\t\t\t<ChangelogList changes={changelogs} defaultOrder=\"desc\" />\n\t\t</div>\n\t</main>\n}\n","import { DataModel, Path } from '@mcschema/core'\nimport { getCurrentUrl, route } from 'preact-router'\nimport { useEffect, useErrorBoundary, useMemo, useRef, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Analytics } from '../Analytics'\nimport { Ad, Btn, BtnMenu, ErrorPanel, HasPreview, Octicon, PreviewPanel, SearchList, SourcePanel, TextInput, Tree } from '../components'\nimport { useLocale, useProject, useTitle, useVersion } from '../contexts'\nimport { useActiveTimeout, useModel, useSearchParam } from '../hooks'\nimport { getOutput } from '../schema/transformOutput'\nimport type { BlockStateRegistry, VersionId } from '../services'\nimport { checkVersion, fetchPreset, getBlockStates, getCollections, getModel, getSnippet, shareSnippet, SHARE_KEY } from '../services'\nimport { Store } from '../Store'\nimport { cleanUrl, deepEqual, getGenerator } from '../Utils'\n\ninterface Props {\n\tdefault?: true,\n}\nexport function Generator({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion, changeTargetVersion } = useVersion()\n\tconst { project, file, updateFile, openFile, closeFile } = useProject()\n\tconst [error, setError] = useState<Error | string | null>(null)\n\tconst [errorBoundary, errorRetry] = useErrorBoundary()\n\tif (errorBoundary) {\n\t\terrorBoundary.message = `Something went wrong rendering the generator: ${errorBoundary.message}`\n\t\treturn <main><ErrorPanel error={errorBoundary} onDismiss={errorRetry} /></main>\n\t}\n\n\tconst gen = getGenerator(getCurrentUrl())\n\tif (!gen) {\n\t\treturn <main><ErrorPanel error={`Cannot find generator \"${getCurrentUrl()}\"`} /></main>\n\t}\n\n\tconst allowedVersions = useMemo(() => {\n\t\treturn config.versions\n\t\t\t.filter(v => checkVersion(v.id, gen.minVersion, gen.maxVersion))\n\t\t\t.map(v => v.id as VersionId)\n\t\t\t.reverse()\n\t}, [gen.minVersion, gen.maxVersion])\n\n\tuseTitle(locale('title.generator', locale(gen.id)), allowedVersions)\n\n\tif (!checkVersion(version, gen.minVersion)) {\n\t\tsetError(`The minimum version for this generator is ${gen.minVersion}`)\n\t}\n\tif (!checkVersion(version, undefined, gen.maxVersion)) {\n\t\tsetError(`This generator is not available in versions above ${gen.maxVersion}`)\n\t}\n\n\tconst [currentPreset, setCurrentPreset] = useSearchParam('preset')\n\tconst [sharedSnippetId, setSharedSnippetId] = useSearchParam(SHARE_KEY)\n\tconst ignoreChange = useRef(false)\n\tuseEffect(() => {\n\t\tif (model && currentPreset) {\n\t\t\tloadPreset(currentPreset).then(preset => {\n\t\t\t\tignoreChange.current = true\n\t\t\t\tmodel.reset(DataModel.wrapLists(preset), false)\n\t\t\t\tsetSharedSnippetId(undefined)\n\t\t\t})\n\t\t} else if (model && sharedSnippetId) {\n\t\t\tgetSnippet(sharedSnippetId).then(s => loadSnippet(model, s))\n\t\t}\n\t}, [currentPreset, sharedSnippetId])\n\n\tconst loadSnippet = (model: DataModel, snippet: any) => {\n\t\tif (snippet.version && snippet.version !== version) {\n\t\t\tchangeVersion(snippet.version, false)\n\t\t}\n\t\tif (snippet.type && snippet.type !== gen.id) {\n\t\t\tconst snippetGen = config.generators.find(g => g.id === snippet.type)\n\t\t\tif (snippetGen) {\n\t\t\t\troute(`${cleanUrl(snippetGen.url)}?${SHARE_KEY}=${snippet.id}`)\n\t\t\t}\n\t\t}\n\t\tif (snippet.show_preview && !previewShown) {\n\t\t\tsetPreviewShown(true)\n\t\t\tsetSourceShown(false)\n\t\t}\n\t\tmodel.reset(DataModel.wrapLists(snippet.data), false)\n\t}\n\n\tconst backup = useMemo(() => Store.getBackup(gen.id), [gen.id])\n\n\tconst loadBackup = () => {\n\t\tif (backup !== undefined) {\n\t\t\tmodel?.reset(DataModel.wrapLists(backup), false)\n\t\t}\n\t}\n\n\tconst [model, setModel] = useState<DataModel | null>(null)\n\tconst [blockStates, setBlockStates] = useState<BlockStateRegistry | null>(null)\n\tuseEffect(() => {\n\t\tsetError(null)\n\t\tsetModel(null)\n\t\tgetBlockStates(version)\n\t\t\t.then(b => setBlockStates(b))\n\t\tgetModel(version, gen.id)\n\t\t\t.then(async m => {\n\t\t\t\tAnalytics.setGenerator(gen.id)\n\t\t\t\tif (currentPreset) {\n\t\t\t\t\tconst preset = await loadPreset(currentPreset)\n\t\t\t\t\tm.reset(DataModel.wrapLists(preset), false)\n\t\t\t\t} else if (sharedSnippetId) {\n\t\t\t\t\tconst snippet = await getSnippet(sharedSnippetId)\n\t\t\t\t\tloadSnippet(m, snippet)\n\t\t\t\t}\n\t\t\t\tsetModel(m)\n\t\t\t})\n\t\t\t.catch(e => { console.error(e); setError(e) })\n\t}, [version, gen.id])\n\n\tconst [dirty, setDirty] = useState(false)\n\tuseModel(model, () => {\n\t\tif (!ignoreChange.current) {\n\t\t\tsetCurrentPreset(undefined, true)\n\t\t\tsetSharedSnippetId(undefined, true)\n\t\t}\n\t\tignoreChange.current = false\n\t\tStore.setBackup(gen.id, DataModel.unwrapLists(model?.data))\n\t\tsetError(null)\n\t\tsetDirty(true)\n\t}, [gen.id, setCurrentPreset, setSharedSnippetId])\n\n\tconst [fileRename, setFileRename] = useState('')\n\tconst [fileSaved, doSave] = useActiveTimeout()\n\tconst [fileError, doFileError] = useActiveTimeout()\n\n\tconst doFileRename = () => {\n\t\tif (fileRename !== file?.id && fileRename && model && blockStates) {\n\t\t\tconst data = getOutput(model, blockStates)\n\t\t\tconst success = updateFile(gen.id, file?.id, { id: fileRename, data })\n\t\t\tif (success) {\n\t\t\t\tdoSave()\n\t\t\t} else {\n\t\t\t\tdoFileError()\n\t\t\t\tif (file) {\n\t\t\t\t\tsetFileRename(file?.id)\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (file) {\n\t\t\tsetFileRename(file?.id)\n\t\t}\n\t}\n\n\tconst deleteFile = () => {\n\t\tif (file) {\n\t\t\tupdateFile(gen.id, file.id, {})\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tif (file) {\n\t\t\tsetFileRename(file.id)\n\t\t}\n\t}, [file])\n\n\tuseEffect(() => {\n\t\tif (model) {\n\t\t\tsetFileRename(file?.id ?? '')\n\t\t\tif (file && gen.id === file.type) {\n\t\t\t\tmodel.reset(DataModel.wrapLists(file.data))\n\t\t\t}\n\t\t\tsetDirty(false)\n\t\t}\n\t}, [file, model])\n\n\tconst reset = () => {\n\t\tAnalytics.generatorEvent('reset')\n\t\tmodel?.reset(DataModel.wrapLists(model.schema.default()), true)\n\t}\n\tconst undo = (e: MouseEvent) => {\n\t\te.stopPropagation()\n\t\tAnalytics.generatorEvent('undo', 'Menu')\n\t\tmodel?.undo()\n\t}\n\tconst redo = (e: MouseEvent) => {\n\t\te.stopPropagation()\n\t\tAnalytics.generatorEvent('redo', 'Menu')\n\t\tmodel?.redo()\n\t}\n\n\tconst onKeyUp = (e: KeyboardEvent) => {\n\t\tif (e.ctrlKey && e.key === 'z') {\n\t\t\tAnalytics.generatorEvent('undo', 'Hotkey')\n\t\t\tmodel?.undo()\n\t\t} else if (e.ctrlKey && e.key === 'y') {\n\t\t\tAnalytics.generatorEvent('redo', 'Hotkey')\n\t\t\tmodel?.redo()\n\t\t}\n\t}\n\tconst onKeyDown = (e: KeyboardEvent) => {\n\t\tif (e.ctrlKey && e.key === 's') {\n\t\t\te.preventDefault()\n\t\t\tif (model && blockStates && file) {\n\t\t\t\tAnalytics.generatorEvent('save', 'Hotkey')\n\t\t\t\tconst data = getOutput(model, blockStates)\n\t\t\t\tupdateFile(gen.id, file?.id, { id: file?.id, data })\n\t\t\t\tsetDirty(false)\n\t\t\t\tdoSave()\n\t\t\t}\n\t\t}\n\t}\n\tuseEffect(() => {\n\t\tdocument.addEventListener('keyup', onKeyUp)\n\t\tdocument.addEventListener('keydown', onKeyDown)\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('keyup', onKeyUp)\n\t\t\tdocument.removeEventListener('keydown', onKeyDown)\n\t\t}\n\t}, [model, blockStates, file])\n\n\tconst [presets, setPresets] = useState<string[]>([])\n\tuseEffect(() => {\n\t\tgetCollections(version).then(collections => {\n\t\t\tsetPresets(collections.get(gen.id).map(p => p.slice(10)))\n\t\t})\n\t\t\t.catch(e => { console.error(e); setError(e) })\n\t}, [version, gen.id])\n\n\tconst selectPreset = (id: string) => {\n\t\tAnalytics.generatorEvent('load-preset', id)\n\t\tsetSharedSnippetId(undefined, true)\n\t\tchangeTargetVersion(version, true)\n\t\tsetCurrentPreset(id)\n\t}\n\n\tconst loadPreset = async (id: string) => {\n\t\ttry {\n\t\t\tconst preset = await fetchPreset(version, gen.path ?? gen.id, id)\n\t\t\tconst seed = model?.get(new Path(['generator', 'seed']))\n\t\t\tif (preset?.generator?.seed !== undefined && seed !== undefined) {\n\t\t\t\tpreset.generator.seed = seed\n\t\t\t\tif (preset.generator.biome_source?.seed !== undefined) {\n\t\t\t\t\tpreset.generator.biome_source.seed = seed\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn preset\n\t\t} catch (e) {\n\t\t\tsetError(`Cannot load preset ${id} in ${version}`)\n\t\t\tsetCurrentPreset(undefined, true)\n\t\t}\n\t}\n\n\tconst selectVersion = (version: VersionId) => {\n\t\tsetSharedSnippetId(undefined, true)\n\t\tchangeVersion(version)\n\t}\n\n\tconst [shareUrl, setShareUrl] = useState<string | undefined>(undefined)\n\tconst [shareShown, setShareShown] = useState(false)\n\tconst [shareCopyActive, shareCopySuccess] = useActiveTimeout({ cooldown: 3000 })\n\tconst share = () => {\n\t\tif (shareShown) {\n\t\t\tsetShareShown(false)\n\t\t\treturn\n\t\t}\n\t\tif (currentPreset) {\n\t\t\tsetShareUrl(`${location.origin}/${gen.url}/?version=${version}&preset=${currentPreset}`)\n\t\t\tsetShareShown(true)\n\t\t\tcopySharedId()\n\t\t} else if (model && blockStates) {\n\t\t\tconst output = getOutput(model, blockStates)\n\t\t\tif (deepEqual(output, model.schema.default())) {\n\t\t\t\tsetShareUrl(`${location.origin}/${gen.url}/?version=${version}`)\n\t\t\t\tsetShareShown(true)\n\t\t\t} else {\n\t\t\t\tshareSnippet(gen.id, version, output, previewShown)\n\t\t\t\t\t.then(url => {\n\t\t\t\t\t\tsetShareUrl(url)\n\t\t\t\t\t\tsetShareShown(true)\n\t\t\t\t\t})\n\t\t\t\t\t.catch(e => {\n\t\t\t\t\t\tif (e instanceof Error) {\n\t\t\t\t\t\t\tsetError(e)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\tconst copySharedId = () => {\n\t\tnavigator.clipboard.writeText(shareUrl ?? '')\n\t\tshareCopySuccess()\n\t}\n\tuseEffect(() => {\n\t\tif (!shareCopyActive) {\n\t\t\tsetShareUrl(undefined)\n\t\t\tsetShareShown(false)\n\t\t}\n\t}, [shareCopyActive])\n\n\tconst [sourceShown, setSourceShown] = useState(window.innerWidth > 820)\n\tconst [doCopy, setCopy] = useState(0)\n\tconst [doDownload, setDownload] = useState(0)\n\tconst [doImport, setImport] = useState(0)\n\n\tconst copySource = () => {\n\t\tAnalytics.generatorEvent('copy')\n\t\tsetCopy(doCopy + 1)\n\t}\n\tconst downloadSource = () => {\n\t\tAnalytics.generatorEvent('download')\n\t\tsetDownload(doDownload + 1)\n\t}\n\tconst importSource = () => {\n\t\tAnalytics.generatorEvent('import')\n\t\tsetSourceShown(true)\n\t\tsetImport(doImport + 1)\n\t}\n\tconst toggleSource = () => {\n\t\tAnalytics.generatorEvent('toggle-output', !sourceShown ? 'visible' : 'hidden')\n\t\tsetSourceShown(!sourceShown)\n\t\tsetCopy(0)\n\t\tsetDownload(0)\n\t\tsetImport(0)\n\t}\n\n\tconst [copyActive, copySuccess] = useActiveTimeout()\n\n\tconst [previewShown, setPreviewShown] = useState(false)\n\tconst hasPreview = HasPreview.includes(gen.id) && !(gen.id === 'worldgen/configured_feature' && checkVersion(version, '1.18'))\n\tif (previewShown && !hasPreview) setPreviewShown(false)\n\tlet actionsShown = 2\n\tif (hasPreview) actionsShown += 1\n\tif (sourceShown) actionsShown += 2\n\n\tconst togglePreview = () => {\n\t\tAnalytics.generatorEvent('toggle-preview', !previewShown ? 'visible' : 'hidden')\n\t\tsetPreviewShown(!previewShown)\n\t\tif (!previewShown && sourceShown) {\n\t\t\tsetSourceShown(false)\n\t\t}\n\t}\n\n\treturn <>\n\t\t<main class={previewShown ? 'has-preview' : ''}>\n\t\t\t<Ad id=\"data-pack-generator\" type=\"text\" />\n\t\t\t<div class=\"controls\">\n\t\t\t\t<div class={`project-controls ${file && 'has-file'}`}>\n\t\t\t\t\t<div class=\"btn-row\">\n\t\t\t\t\t\t<BtnMenu icon=\"repo\" label={project.name} relative={false}>\n\t\t\t\t\t\t\t<Btn icon=\"arrow_left\" label={locale('project.go_to')} onClick={() => route('/project')} />\n\t\t\t\t\t\t\t{file && <Btn icon=\"file\" label={locale('project.new_file')} onClick={closeFile} />}\n\t\t\t\t\t\t\t{backup !== undefined && <Btn icon=\"history\" label={locale('restore_backup')} onClick={loadBackup} />}\n\t\t\t\t\t\t\t<SearchList searchPlaceholder={locale(project.name === 'Drafts' ? 'project.search_drafts' : 'project.search')} noResults={locale('project.no_files')} values={project.files.filter(f => f.type === gen.id).map(f => f.id)} onSelect={(id) => openFile(gen.id, id)} />\n\t\t\t\t\t\t</BtnMenu>\n\t\t\t\t\t\t<TextInput class=\"btn btn-input\" placeholder={locale('project.unsaved_file')} value={fileRename} onChange={setFileRename} onEnter={doFileRename} onBlur={doFileRename} />\n\t\t\t\t\t\t{file && <Btn icon=\"trashcan\" tooltip={locale('project.delete_file')} onClick={deleteFile} />}\n\t\t\t\t\t</div>\n\t\t\t\t\t{dirty ? <div class=\"status-icon\">{Octicon.dot_fill}</div>\n\t\t\t\t\t\t: fileSaved ? <div class=\"status-icon active\">{Octicon.check}</div>\n\t\t\t\t\t\t\t: fileError && <div class=\"status-icon danger\">{Octicon.x}</div> }\n\t\t\t\t</div>\n\t\t\t\t<div class=\"generator-controls\">\n\t\t\t\t\t<Btn icon=\"upload\" label={locale('import')} onClick={importSource} />\n\t\t\t\t\t<BtnMenu icon=\"archive\" label={locale('presets')} relative={false}>\n\t\t\t\t\t\t<SearchList searchPlaceholder={locale('search')} noResults={locale('no_presets')} values={presets} onSelect={selectPreset}/>\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t\t<BtnMenu icon=\"tag\" label={version} tooltip={locale('switch_version')} data-cy=\"version-switcher\">\n\t\t\t\t\t\t{allowedVersions.map(v =>\n\t\t\t\t\t\t\t<Btn label={v} active={v === version} onClick={() => selectVersion(v)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t\t<BtnMenu icon=\"kebab_horizontal\" tooltip={locale('more')}>\n\t\t\t\t\t\t<Btn icon=\"history\" label={locale('reset')} onClick={reset} />\n\t\t\t\t\t\t<Btn icon=\"arrow_left\" label={locale('undo')} onClick={undo} />\n\t\t\t\t\t\t<Btn icon=\"arrow_right\" label={locale('redo')} onClick={redo} />\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t{error && <ErrorPanel error={error} onDismiss={() => setError(null)} />}\n\t\t\t<Tree {...{model, version, blockStates}} onError={setError} />\n\t\t</main>\n\t\t<div class=\"popup-actions\" style={`--offset: -${8 + actionsShown * 50}px;`}>\n\t\t\t<div class={`popup-action action-preview${hasPreview ? ' shown' : ''} tooltipped tip-nw`} aria-label={locale(previewShown ? 'hide_preview' : 'show_preview')} onClick={togglePreview}>\n\t\t\t\t{previewShown ? Octicon.x_circle : Octicon.play}\n\t\t\t</div>\n\t\t\t<div class={'popup-action action-share shown tooltipped tip-nw'} aria-label={locale('share')} onClick={share}>\n\t\t\t\t{Octicon.link}\n\t\t\t</div>\n\t\t\t<div class={`popup-action action-download${sourceShown ? ' shown' : ''} tooltipped tip-nw`} aria-label={locale('download')} onClick={downloadSource}>\n\t\t\t\t{Octicon.download}\n\t\t\t</div>\n\t\t\t<div class={`popup-action action-copy${sourceShown ? ' shown' : ''}${copyActive ? ' active' : ''} tooltipped tip-nw`} aria-label={locale(copyActive ? 'copied' : 'copy')} onClick={copySource}>\n\t\t\t\t{copyActive ? Octicon.check : Octicon.clippy}\n\t\t\t</div>\n\t\t\t<div class={'popup-action action-code shown tooltipped tip-nw'} aria-label={locale(sourceShown ? 'hide_output' : 'show_output')} onClick={toggleSource}>\n\t\t\t\t{sourceShown ? Octicon.chevron_right : Octicon.code}\n\t\t\t</div>\n\t\t</div>\n\t\t<div class={`popup-preview${previewShown ? ' shown' : ''}`}>\n\t\t\t<PreviewPanel {...{model, version, id: gen.id}} shown={previewShown} onError={setError} />\n\t\t</div>\n\t\t<div class={`popup-source${sourceShown ? ' shown' : ''}`}>\n\t\t\t<SourcePanel {...{model, blockStates, doCopy, doDownload, doImport}} name={gen.schema ?? 'data'} copySuccess={copySuccess} onError={setError} />\n\t\t</div>\n\t\t<div class={`popup-share${shareShown ? ' shown' : ''}`}>\n\t\t\t<TextInput value={shareUrl} readonly />\n\t\t\t<Btn icon={shareCopyActive ? 'check' : 'clippy'} onClick={copySharedId} tooltip={locale(shareCopyActive ? 'copied' : 'copy_share')} tooltipLoc=\"nw\" active={shareCopyActive} showTooltip={shareCopyActive} />\n\t\t</div>\n\t</>\n}\n","var deepFreezeEs6 = {exports: {}};\n\nfunction deepFreeze(obj) {\n if (obj instanceof Map) {\n obj.clear = obj.delete = obj.set = function () {\n throw new Error('map is read-only');\n };\n } else if (obj instanceof Set) {\n obj.add = obj.clear = obj.delete = function () {\n throw new Error('set is read-only');\n };\n }\n\n // Freeze self\n Object.freeze(obj);\n\n Object.getOwnPropertyNames(obj).forEach(function (name) {\n var prop = obj[name];\n\n // Freeze prop if it is an object\n if (typeof prop == 'object' && !Object.isFrozen(prop)) {\n deepFreeze(prop);\n }\n });\n\n return obj;\n}\n\ndeepFreezeEs6.exports = deepFreeze;\ndeepFreezeEs6.exports.default = deepFreeze;\n\nvar deepFreeze$1 = deepFreezeEs6.exports;\n\n/** @typedef {import('highlight.js').CallbackResponse} CallbackResponse */\n/** @typedef {import('highlight.js').CompiledMode} CompiledMode */\n/** @implements CallbackResponse */\n\nclass Response {\n /**\n * @param {CompiledMode} mode\n */\n constructor(mode) {\n // eslint-disable-next-line no-undefined\n if (mode.data === undefined) mode.data = {};\n\n this.data = mode.data;\n this.isMatchIgnored = false;\n }\n\n ignoreMatch() {\n this.isMatchIgnored = true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction escapeHTML(value) {\n return value\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n\n/**\n * performs a shallow merge of multiple objects into one\n *\n * @template T\n * @param {T} original\n * @param {Record<string,any>[]} objects\n * @returns {T} a single new object\n */\nfunction inherit$1(original, ...objects) {\n /** @type Record<string,any> */\n const result = Object.create(null);\n\n for (const key in original) {\n result[key] = original[key];\n }\n objects.forEach(function(obj) {\n for (const key in obj) {\n result[key] = obj[key];\n }\n });\n return /** @type {T} */ (result);\n}\n\n/**\n * @typedef {object} Renderer\n * @property {(text: string) => void} addText\n * @property {(node: Node) => void} openNode\n * @property {(node: Node) => void} closeNode\n * @property {() => string} value\n */\n\n/** @typedef {{kind?: string, sublanguage?: boolean}} Node */\n/** @typedef {{walk: (r: Renderer) => void}} Tree */\n/** */\n\nconst SPAN_CLOSE = '</span>';\n\n/**\n * Determines if a node needs to be wrapped in <span>\n *\n * @param {Node} node */\nconst emitsWrappingTags = (node) => {\n return !!node.kind;\n};\n\n/**\n *\n * @param {string} name\n * @param {{prefix:string}} options\n */\nconst expandScopeName = (name, { prefix }) => {\n if (name.includes(\".\")) {\n const pieces = name.split(\".\");\n return [\n `${prefix}${pieces.shift()}`,\n ...(pieces.map((x, i) => `${x}${\"_\".repeat(i + 1)}`))\n ].join(\" \");\n }\n return `${prefix}${name}`;\n};\n\n/** @type {Renderer} */\nclass HTMLRenderer {\n /**\n * Creates a new HTMLRenderer\n *\n * @param {Tree} parseTree - the parse tree (must support `walk` API)\n * @param {{classPrefix: string}} options\n */\n constructor(parseTree, options) {\n this.buffer = \"\";\n this.classPrefix = options.classPrefix;\n parseTree.walk(this);\n }\n\n /**\n * Adds texts to the output stream\n *\n * @param {string} text */\n addText(text) {\n this.buffer += escapeHTML(text);\n }\n\n /**\n * Adds a node open to the output stream (if needed)\n *\n * @param {Node} node */\n openNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n let scope = node.kind;\n if (node.sublanguage) {\n scope = `language-${scope}`;\n } else {\n scope = expandScopeName(scope, { prefix: this.classPrefix });\n }\n this.span(scope);\n }\n\n /**\n * Adds a node close to the output stream (if needed)\n *\n * @param {Node} node */\n closeNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n this.buffer += SPAN_CLOSE;\n }\n\n /**\n * returns the accumulated buffer\n */\n value() {\n return this.buffer;\n }\n\n // helpers\n\n /**\n * Builds a span element\n *\n * @param {string} className */\n span(className) {\n this.buffer += `<span class=\"${className}\">`;\n }\n}\n\n/** @typedef {{kind?: string, sublanguage?: boolean, children: Node[]} | string} Node */\n/** @typedef {{kind?: string, sublanguage?: boolean, children: Node[]} } DataNode */\n/** @typedef {import('highlight.js').Emitter} Emitter */\n/** */\n\nclass TokenTree {\n constructor() {\n /** @type DataNode */\n this.rootNode = { children: [] };\n this.stack = [this.rootNode];\n }\n\n get top() {\n return this.stack[this.stack.length - 1];\n }\n\n get root() { return this.rootNode; }\n\n /** @param {Node} node */\n add(node) {\n this.top.children.push(node);\n }\n\n /** @param {string} kind */\n openNode(kind) {\n /** @type Node */\n const node = { kind, children: [] };\n this.add(node);\n this.stack.push(node);\n }\n\n closeNode() {\n if (this.stack.length > 1) {\n return this.stack.pop();\n }\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n\n closeAllNodes() {\n while (this.closeNode());\n }\n\n toJSON() {\n return JSON.stringify(this.rootNode, null, 4);\n }\n\n /**\n * @typedef { import(\"./html_renderer\").Renderer } Renderer\n * @param {Renderer} builder\n */\n walk(builder) {\n // this does not\n return this.constructor._walk(builder, this.rootNode);\n // this works\n // return TokenTree._walk(builder, this.rootNode);\n }\n\n /**\n * @param {Renderer} builder\n * @param {Node} node\n */\n static _walk(builder, node) {\n if (typeof node === \"string\") {\n builder.addText(node);\n } else if (node.children) {\n builder.openNode(node);\n node.children.forEach((child) => this._walk(builder, child));\n builder.closeNode(node);\n }\n return builder;\n }\n\n /**\n * @param {Node} node\n */\n static _collapse(node) {\n if (typeof node === \"string\") return;\n if (!node.children) return;\n\n if (node.children.every(el => typeof el === \"string\")) {\n // node.text = node.children.join(\"\");\n // delete node.children;\n node.children = [node.children.join(\"\")];\n } else {\n node.children.forEach((child) => {\n TokenTree._collapse(child);\n });\n }\n }\n}\n\n/**\n Currently this is all private API, but this is the minimal API necessary\n that an Emitter must implement to fully support the parser.\n\n Minimal interface:\n\n - addKeyword(text, kind)\n - addText(text)\n - addSublanguage(emitter, subLanguageName)\n - finalize()\n - openNode(kind)\n - closeNode()\n - closeAllNodes()\n - toHTML()\n\n*/\n\n/**\n * @implements {Emitter}\n */\nclass TokenTreeEmitter extends TokenTree {\n /**\n * @param {*} options\n */\n constructor(options) {\n super();\n this.options = options;\n }\n\n /**\n * @param {string} text\n * @param {string} kind\n */\n addKeyword(text, kind) {\n if (text === \"\") { return; }\n\n this.openNode(kind);\n this.addText(text);\n this.closeNode();\n }\n\n /**\n * @param {string} text\n */\n addText(text) {\n if (text === \"\") { return; }\n\n this.add(text);\n }\n\n /**\n * @param {Emitter & {root: DataNode}} emitter\n * @param {string} name\n */\n addSublanguage(emitter, name) {\n /** @type DataNode */\n const node = emitter.root;\n node.kind = name;\n node.sublanguage = true;\n this.add(node);\n }\n\n toHTML() {\n const renderer = new HTMLRenderer(this, this.options);\n return renderer.value();\n }\n\n finalize() {\n return true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction anyNumberOfTimes(re) {\n return concat('(?:', re, ')*');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n return concat('(?:', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * @param { Array<string | RegExp | Object> } args\n * @returns {object}\n */\nfunction stripOptionsFromArgs(args) {\n const opts = args[args.length - 1];\n\n if (typeof opts === 'object' && opts.constructor === Object) {\n args.splice(args.length - 1, 1);\n return opts;\n } else {\n return {};\n }\n}\n\n/** @typedef { {capture?: boolean} } RegexEitherOptions */\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args\n * @returns {string}\n */\nfunction either(...args) {\n /** @type { object & {capture?: boolean} } */\n const opts = stripOptionsFromArgs(args);\n const joined = '('\n + (opts.capture ? \"\" : \"?:\")\n + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/**\n * @param {RegExp | string} re\n * @returns {number}\n */\nfunction countMatchGroups(re) {\n return (new RegExp(re.toString() + '|')).exec('').length - 1;\n}\n\n/**\n * Does lexeme start with a regular expression match at the beginning\n * @param {RegExp} re\n * @param {string} lexeme\n */\nfunction startsWith(re, lexeme) {\n const match = re && re.exec(lexeme);\n return match && match.index === 0;\n}\n\n// BACKREF_RE matches an open parenthesis or backreference. To avoid\n// an incorrect parse, it additionally matches the following:\n// - [...] elements, where the meaning of parentheses and escapes change\n// - other escape sequences, so we do not misparse escape sequences as\n// interesting elements\n// - non-matching or lookahead parentheses, which do not capture. These\n// follow the '(' with a '?'.\nconst BACKREF_RE = /\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./;\n\n// **INTERNAL** Not intended for outside usage\n// join logically computes regexps.join(separator), but fixes the\n// backreferences so they continue to match.\n// it also places each individual regular expression into it's own\n// match group, keeping track of the sequencing of those match groups\n// is currently an exercise for the caller. :-)\n/**\n * @param {(string | RegExp)[]} regexps\n * @param {{joinWith: string}} opts\n * @returns {string}\n */\nfunction _rewriteBackreferences(regexps, { joinWith }) {\n let numCaptures = 0;\n\n return regexps.map((regex) => {\n numCaptures += 1;\n const offset = numCaptures;\n let re = source(regex);\n let out = '';\n\n while (re.length > 0) {\n const match = BACKREF_RE.exec(re);\n if (!match) {\n out += re;\n break;\n }\n out += re.substring(0, match.index);\n re = re.substring(match.index + match[0].length);\n if (match[0][0] === '\\\\' && match[1]) {\n // Adjust the backreference.\n out += '\\\\' + String(Number(match[1]) + offset);\n } else {\n out += match[0];\n if (match[0] === '(') {\n numCaptures++;\n }\n }\n }\n return out;\n }).map(re => `(${re})`).join(joinWith);\n}\n\n/** @typedef {import('highlight.js').Mode} Mode */\n/** @typedef {import('highlight.js').ModeCallback} ModeCallback */\n\n// Common regexps\nconst MATCH_NOTHING_RE = /\\b\\B/;\nconst IDENT_RE = '[a-zA-Z]\\\\w*';\nconst UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\\\w*';\nconst NUMBER_RE = '\\\\b\\\\d+(\\\\.\\\\d+)?';\nconst C_NUMBER_RE = '(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)'; // 0x..., 0..., decimal, float\nconst BINARY_NUMBER_RE = '\\\\b(0b[01]+)'; // 0b...\nconst RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~';\n\n/**\n* @param { Partial<Mode> & {binary?: string | RegExp} } opts\n*/\nconst SHEBANG = (opts = {}) => {\n const beginShebang = /^#![ ]*\\//;\n if (opts.binary) {\n opts.begin = concat(\n beginShebang,\n /.*\\b/,\n opts.binary,\n /\\b.*/);\n }\n return inherit$1({\n scope: 'meta',\n begin: beginShebang,\n end: /$/,\n relevance: 0,\n /** @type {ModeCallback} */\n \"on:begin\": (m, resp) => {\n if (m.index !== 0) resp.ignoreMatch();\n }\n }, opts);\n};\n\n// Common modes\nconst BACKSLASH_ESCAPE = {\n begin: '\\\\\\\\[\\\\s\\\\S]', relevance: 0\n};\nconst APOS_STRING_MODE = {\n scope: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst QUOTE_STRING_MODE = {\n scope: 'string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst PHRASAL_WORDS_MODE = {\n begin: /\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/\n};\n/**\n * Creates a comment mode\n *\n * @param {string | RegExp} begin\n * @param {string | RegExp} end\n * @param {Mode | {}} [modeOptions]\n * @returns {Partial<Mode>}\n */\nconst COMMENT = function(begin, end, modeOptions = {}) {\n const mode = inherit$1(\n {\n scope: 'comment',\n begin,\n end,\n contains: []\n },\n modeOptions\n );\n mode.contains.push({\n scope: 'doctag',\n // hack to avoid the space from being included. the space is necessary to\n // match here to prevent the plain text rule below from gobbling up doctags\n begin: '[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',\n end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,\n excludeBegin: true,\n relevance: 0\n });\n const ENGLISH_WORD = either(\n // list of common 1 and 2 letter words in English\n \"I\",\n \"a\",\n \"is\",\n \"so\",\n \"us\",\n \"to\",\n \"at\",\n \"if\",\n \"in\",\n \"it\",\n \"on\",\n // note: this is not an exhaustive list of contractions, just popular ones\n /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, // contractions - can't we'd they're let's, etc\n /[A-Za-z]+[-][a-z]+/, // `no-way`, etc.\n /[A-Za-z][a-z]{2,}/ // allow capitalized words at beginning of sentences\n );\n // looking like plain text, more likely to be a comment\n mode.contains.push(\n {\n // TODO: how to include \", (, ) without breaking grammars that use these for\n // comment delimiters?\n // begin: /[ ]+([()\"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()\":]?([.][ ]|[ ]|\\))){3}/\n // ---\n\n // this tries to find sequences of 3 english words in a row (without any\n // \"programming\" type syntax) this gives us a strong signal that we've\n // TRULY found a comment - vs perhaps scanning with the wrong language.\n // It's possible to find something that LOOKS like the start of the\n // comment - but then if there is no readable text - good chance it is a\n // false match and not a comment.\n //\n // for a visual example please see:\n // https://github.com/highlightjs/highlight.js/issues/2827\n\n begin: concat(\n /[ ]+/, // necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */\n '(',\n ENGLISH_WORD,\n /[.]?[:]?([.][ ]|[ ])/,\n '){3}') // look for 3 words in a row\n }\n );\n return mode;\n};\nconst C_LINE_COMMENT_MODE = COMMENT('//', '$');\nconst C_BLOCK_COMMENT_MODE = COMMENT('/\\\\*', '\\\\*/');\nconst HASH_COMMENT_MODE = COMMENT('#', '$');\nconst NUMBER_MODE = {\n scope: 'number',\n begin: NUMBER_RE,\n relevance: 0\n};\nconst C_NUMBER_MODE = {\n scope: 'number',\n begin: C_NUMBER_RE,\n relevance: 0\n};\nconst BINARY_NUMBER_MODE = {\n scope: 'number',\n begin: BINARY_NUMBER_RE,\n relevance: 0\n};\nconst REGEXP_MODE = {\n // this outer rule makes sure we actually have a WHOLE regex and not simply\n // an expression such as:\n //\n // 3 / something\n //\n // (which will then blow up when regex's `illegal` sees the newline)\n begin: /(?=\\/[^/\\n]*\\/)/,\n contains: [{\n scope: 'regexp',\n begin: /\\//,\n end: /\\/[gimuy]*/,\n illegal: /\\n/,\n contains: [\n BACKSLASH_ESCAPE,\n {\n begin: /\\[/,\n end: /\\]/,\n relevance: 0,\n contains: [BACKSLASH_ESCAPE]\n }\n ]\n }]\n};\nconst TITLE_MODE = {\n scope: 'title',\n begin: IDENT_RE,\n relevance: 0\n};\nconst UNDERSCORE_TITLE_MODE = {\n scope: 'title',\n begin: UNDERSCORE_IDENT_RE,\n relevance: 0\n};\nconst METHOD_GUARD = {\n // excludes method names from keyword processing\n begin: '\\\\.\\\\s*' + UNDERSCORE_IDENT_RE,\n relevance: 0\n};\n\n/**\n * Adds end same as begin mechanics to a mode\n *\n * Your mode must include at least a single () match group as that first match\n * group is what is used for comparison\n * @param {Partial<Mode>} mode\n */\nconst END_SAME_AS_BEGIN = function(mode) {\n return Object.assign(mode,\n {\n /** @type {ModeCallback} */\n 'on:begin': (m, resp) => { resp.data._beginMatch = m[1]; },\n /** @type {ModeCallback} */\n 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); }\n });\n};\n\nvar MODES = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MATCH_NOTHING_RE: MATCH_NOTHING_RE,\n IDENT_RE: IDENT_RE,\n UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE,\n NUMBER_RE: NUMBER_RE,\n C_NUMBER_RE: C_NUMBER_RE,\n BINARY_NUMBER_RE: BINARY_NUMBER_RE,\n RE_STARTERS_RE: RE_STARTERS_RE,\n SHEBANG: SHEBANG,\n BACKSLASH_ESCAPE: BACKSLASH_ESCAPE,\n APOS_STRING_MODE: APOS_STRING_MODE,\n QUOTE_STRING_MODE: QUOTE_STRING_MODE,\n PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE,\n COMMENT: COMMENT,\n C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE,\n C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE,\n HASH_COMMENT_MODE: HASH_COMMENT_MODE,\n NUMBER_MODE: NUMBER_MODE,\n C_NUMBER_MODE: C_NUMBER_MODE,\n BINARY_NUMBER_MODE: BINARY_NUMBER_MODE,\n REGEXP_MODE: REGEXP_MODE,\n TITLE_MODE: TITLE_MODE,\n UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE,\n METHOD_GUARD: METHOD_GUARD,\n END_SAME_AS_BEGIN: END_SAME_AS_BEGIN\n});\n\n/**\n@typedef {import('highlight.js').CallbackResponse} CallbackResponse\n@typedef {import('highlight.js').CompilerExt} CompilerExt\n*/\n\n// Grammar extensions / plugins\n// See: https://github.com/highlightjs/highlight.js/issues/2833\n\n// Grammar extensions allow \"syntactic sugar\" to be added to the grammar modes\n// without requiring any underlying changes to the compiler internals.\n\n// `compileMatch` being the perfect small example of now allowing a grammar\n// author to write `match` when they desire to match a single expression rather\n// than being forced to use `begin`. The extension then just moves `match` into\n// `begin` when it runs. Ie, no features have been added, but we've just made\n// the experience of writing (and reading grammars) a little bit nicer.\n\n// ------\n\n// TODO: We need negative look-behind support to do this properly\n/**\n * Skip a match if it has a preceding dot\n *\n * This is used for `beginKeywords` to prevent matching expressions such as\n * `bob.keyword.do()`. The mode compiler automatically wires this up as a\n * special _internal_ 'on:begin' callback for modes with `beginKeywords`\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\nfunction skipIfHasPrecedingDot(match, response) {\n const before = match.input[match.index - 1];\n if (before === \".\") {\n response.ignoreMatch();\n }\n}\n\n/**\n *\n * @type {CompilerExt}\n */\nfunction scopeClassName(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.className !== undefined) {\n mode.scope = mode.className;\n delete mode.className;\n }\n}\n\n/**\n * `beginKeywords` syntactic sugar\n * @type {CompilerExt}\n */\nfunction beginKeywords(mode, parent) {\n if (!parent) return;\n if (!mode.beginKeywords) return;\n\n // for languages with keywords that include non-word characters checking for\n // a word boundary is not sufficient, so instead we check for a word boundary\n // or whitespace - this does no harm in any case since our keyword engine\n // doesn't allow spaces in keywords anyways and we still check for the boundary\n // first\n mode.begin = '\\\\b(' + mode.beginKeywords.split(' ').join('|') + ')(?!\\\\.)(?=\\\\b|\\\\s)';\n mode.__beforeBegin = skipIfHasPrecedingDot;\n mode.keywords = mode.keywords || mode.beginKeywords;\n delete mode.beginKeywords;\n\n // prevents double relevance, the keywords themselves provide\n // relevance, the mode doesn't need to double it\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 0;\n}\n\n/**\n * Allow `illegal` to contain an array of illegal values\n * @type {CompilerExt}\n */\nfunction compileIllegal(mode, _parent) {\n if (!Array.isArray(mode.illegal)) return;\n\n mode.illegal = either(...mode.illegal);\n}\n\n/**\n * `match` to match a single expression for readability\n * @type {CompilerExt}\n */\nfunction compileMatch(mode, _parent) {\n if (!mode.match) return;\n if (mode.begin || mode.end) throw new Error(\"begin & end are not supported with match\");\n\n mode.begin = mode.match;\n delete mode.match;\n}\n\n/**\n * provides the default 1 relevance to all modes\n * @type {CompilerExt}\n */\nfunction compileRelevance(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 1;\n}\n\n// allow beforeMatch to act as a \"qualifier\" for the match\n// the full match begin must be [beforeMatch][begin]\nconst beforeMatchExt = (mode, parent) => {\n if (!mode.beforeMatch) return;\n // starts conflicts with endsParent which we need to make sure the child\n // rule is not matched multiple times\n if (mode.starts) throw new Error(\"beforeMatch cannot be used with starts\");\n\n const originalMode = Object.assign({}, mode);\n Object.keys(mode).forEach((key) => { delete mode[key]; });\n\n mode.keywords = originalMode.keywords;\n mode.begin = concat(originalMode.beforeMatch, lookahead(originalMode.begin));\n mode.starts = {\n relevance: 0,\n contains: [\n Object.assign(originalMode, { endsParent: true })\n ]\n };\n mode.relevance = 0;\n\n delete originalMode.beforeMatch;\n};\n\n// keywords that should have no default relevance value\nconst COMMON_KEYWORDS = [\n 'of',\n 'and',\n 'for',\n 'in',\n 'not',\n 'or',\n 'if',\n 'then',\n 'parent', // common variable name\n 'list', // common variable name\n 'value' // common variable name\n];\n\nconst DEFAULT_KEYWORD_SCOPE = \"keyword\";\n\n/**\n * Given raw keywords from a language definition, compile them.\n *\n * @param {string | Record<string,string|string[]> | Array<string>} rawKeywords\n * @param {boolean} caseInsensitive\n */\nfunction compileKeywords(rawKeywords, caseInsensitive, scopeName = DEFAULT_KEYWORD_SCOPE) {\n /** @type KeywordDict */\n const compiledKeywords = Object.create(null);\n\n // input can be a string of keywords, an array of keywords, or a object with\n // named keys representing scopeName (which can then point to a string or array)\n if (typeof rawKeywords === 'string') {\n compileList(scopeName, rawKeywords.split(\" \"));\n } else if (Array.isArray(rawKeywords)) {\n compileList(scopeName, rawKeywords);\n } else {\n Object.keys(rawKeywords).forEach(function(scopeName) {\n // collapse all our objects back into the parent object\n Object.assign(\n compiledKeywords,\n compileKeywords(rawKeywords[scopeName], caseInsensitive, scopeName)\n );\n });\n }\n return compiledKeywords;\n\n // ---\n\n /**\n * Compiles an individual list of keywords\n *\n * Ex: \"for if when while|5\"\n *\n * @param {string} scopeName\n * @param {Array<string>} keywordList\n */\n function compileList(scopeName, keywordList) {\n if (caseInsensitive) {\n keywordList = keywordList.map(x => x.toLowerCase());\n }\n keywordList.forEach(function(keyword) {\n const pair = keyword.split('|');\n compiledKeywords[pair[0]] = [scopeName, scoreForKeyword(pair[0], pair[1])];\n });\n }\n}\n\n/**\n * Returns the proper score for a given keyword\n *\n * Also takes into account comment keywords, which will be scored 0 UNLESS\n * another score has been manually assigned.\n * @param {string} keyword\n * @param {string} [providedScore]\n */\nfunction scoreForKeyword(keyword, providedScore) {\n // manual scores always win over common keywords\n // so you can force a score of 1 if you really insist\n if (providedScore) {\n return Number(providedScore);\n }\n\n return commonKeyword(keyword) ? 0 : 1;\n}\n\n/**\n * Determines if a given keyword is common or not\n *\n * @param {string} keyword */\nfunction commonKeyword(keyword) {\n return COMMON_KEYWORDS.includes(keyword.toLowerCase());\n}\n\n/*\n\nFor the reasoning behind this please see:\nhttps://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419\n\n*/\n\n/**\n * @type {Record<string, boolean>}\n */\nconst seenDeprecations = {};\n\n/**\n * @param {string} message\n */\nconst error = (message) => {\n console.error(message);\n};\n\n/**\n * @param {string} message\n * @param {any} args\n */\nconst warn = (message, ...args) => {\n console.log(`WARN: ${message}`, ...args);\n};\n\n/**\n * @param {string} version\n * @param {string} message\n */\nconst deprecated = (version, message) => {\n if (seenDeprecations[`${version}/${message}`]) return;\n\n console.log(`Deprecated as of ${version}. ${message}`);\n seenDeprecations[`${version}/${message}`] = true;\n};\n\n/* eslint-disable no-throw-literal */\n\n/**\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n*/\n\nconst MultiClassError = new Error();\n\n/**\n * Renumbers labeled scope names to account for additional inner match\n * groups that otherwise would break everything.\n *\n * Lets say we 3 match scopes:\n *\n * { 1 => ..., 2 => ..., 3 => ... }\n *\n * So what we need is a clean match like this:\n *\n * (a)(b)(c) => [ \"a\", \"b\", \"c\" ]\n *\n * But this falls apart with inner match groups:\n *\n * (a)(((b)))(c) => [\"a\", \"b\", \"b\", \"b\", \"c\" ]\n *\n * Our scopes are now \"out of alignment\" and we're repeating `b` 3 times.\n * What needs to happen is the numbers are remapped:\n *\n * { 1 => ..., 2 => ..., 5 => ... }\n *\n * We also need to know that the ONLY groups that should be output\n * are 1, 2, and 5. This function handles this behavior.\n *\n * @param {CompiledMode} mode\n * @param {Array<RegExp | string>} regexes\n * @param {{key: \"beginScope\"|\"endScope\"}} opts\n */\nfunction remapScopeNames(mode, regexes, { key }) {\n let offset = 0;\n const scopeNames = mode[key];\n /** @type Record<number,boolean> */\n const emit = {};\n /** @type Record<number,string> */\n const positions = {};\n\n for (let i = 1; i <= regexes.length; i++) {\n positions[i + offset] = scopeNames[i];\n emit[i + offset] = true;\n offset += countMatchGroups(regexes[i - 1]);\n }\n // we use _emit to keep track of which match groups are \"top-level\" to avoid double\n // output from inside match groups\n mode[key] = positions;\n mode[key]._emit = emit;\n mode[key]._multi = true;\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction beginMultiClass(mode) {\n if (!Array.isArray(mode.begin)) return;\n\n if (mode.skip || mode.excludeBegin || mode.returnBegin) {\n error(\"skip, excludeBegin, returnBegin not compatible with beginScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.beginScope !== \"object\" || mode.beginScope === null) {\n error(\"beginScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.begin, { key: \"beginScope\" });\n mode.begin = _rewriteBackreferences(mode.begin, { joinWith: \"\" });\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction endMultiClass(mode) {\n if (!Array.isArray(mode.end)) return;\n\n if (mode.skip || mode.excludeEnd || mode.returnEnd) {\n error(\"skip, excludeEnd, returnEnd not compatible with endScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.endScope !== \"object\" || mode.endScope === null) {\n error(\"endScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.end, { key: \"endScope\" });\n mode.end = _rewriteBackreferences(mode.end, { joinWith: \"\" });\n}\n\n/**\n * this exists only to allow `scope: {}` to be used beside `match:`\n * Otherwise `beginScope` would necessary and that would look weird\n\n {\n match: [ /def/, /\\w+/ ]\n scope: { 1: \"keyword\" , 2: \"title\" }\n }\n\n * @param {CompiledMode} mode\n */\nfunction scopeSugar(mode) {\n if (mode.scope && typeof mode.scope === \"object\" && mode.scope !== null) {\n mode.beginScope = mode.scope;\n delete mode.scope;\n }\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction MultiClass(mode) {\n scopeSugar(mode);\n\n if (typeof mode.beginScope === \"string\") {\n mode.beginScope = { _wrap: mode.beginScope };\n }\n if (typeof mode.endScope === \"string\") {\n mode.endScope = { _wrap: mode.endScope };\n }\n\n beginMultiClass(mode);\n endMultiClass(mode);\n}\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').CompiledLanguage} CompiledLanguage\n*/\n\n// compilation\n\n/**\n * Compiles a language definition result\n *\n * Given the raw result of a language definition (Language), compiles this so\n * that it is ready for highlighting code.\n * @param {Language} language\n * @returns {CompiledLanguage}\n */\nfunction compileLanguage(language) {\n /**\n * Builds a regex with the case sensitivity of the current language\n *\n * @param {RegExp | string} value\n * @param {boolean} [global]\n */\n function langRe(value, global) {\n return new RegExp(\n source(value),\n 'm'\n + (language.case_insensitive ? 'i' : '')\n + (language.unicodeRegex ? 'u' : '')\n + (global ? 'g' : '')\n );\n }\n\n /**\n Stores multiple regular expressions and allows you to quickly search for\n them all in a string simultaneously - returning the first match. It does\n this by creating a huge (a|b|c) regex - each individual item wrapped with ()\n and joined by `|` - using match groups to track position. When a match is\n found checking which position in the array has content allows us to figure\n out which of the original regexes / match groups triggered the match.\n\n The match object itself (the result of `Regex.exec`) is returned but also\n enhanced by merging in any meta-data that was registered with the regex.\n This is how we keep track of which mode matched, and what type of rule\n (`illegal`, `begin`, end, etc).\n */\n class MultiRegex {\n constructor() {\n this.matchIndexes = {};\n // @ts-ignore\n this.regexes = [];\n this.matchAt = 1;\n this.position = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n opts.position = this.position++;\n // @ts-ignore\n this.matchIndexes[this.matchAt] = opts;\n this.regexes.push([opts, re]);\n this.matchAt += countMatchGroups(re) + 1;\n }\n\n compile() {\n if (this.regexes.length === 0) {\n // avoids the need to check length every time exec is called\n // @ts-ignore\n this.exec = () => null;\n }\n const terminators = this.regexes.map(el => el[1]);\n this.matcherRe = langRe(_rewriteBackreferences(terminators, { joinWith: '|' }), true);\n this.lastIndex = 0;\n }\n\n /** @param {string} s */\n exec(s) {\n this.matcherRe.lastIndex = this.lastIndex;\n const match = this.matcherRe.exec(s);\n if (!match) { return null; }\n\n // eslint-disable-next-line no-undefined\n const i = match.findIndex((el, i) => i > 0 && el !== undefined);\n // @ts-ignore\n const matchData = this.matchIndexes[i];\n // trim off any earlier non-relevant match groups (ie, the other regex\n // match groups that make up the multi-matcher)\n match.splice(0, i);\n\n return Object.assign(match, matchData);\n }\n }\n\n /*\n Created to solve the key deficiently with MultiRegex - there is no way to\n test for multiple matches at a single location. Why would we need to do\n that? In the future a more dynamic engine will allow certain matches to be\n ignored. An example: if we matched say the 3rd regex in a large group but\n decided to ignore it - we'd need to started testing again at the 4th\n regex... but MultiRegex itself gives us no real way to do that.\n\n So what this class creates MultiRegexs on the fly for whatever search\n position they are needed.\n\n NOTE: These additional MultiRegex objects are created dynamically. For most\n grammars most of the time we will never actually need anything more than the\n first MultiRegex - so this shouldn't have too much overhead.\n\n Say this is our search group, and we match regex3, but wish to ignore it.\n\n regex1 | regex2 | regex3 | regex4 | regex5 ' ie, startAt = 0\n\n What we need is a new MultiRegex that only includes the remaining\n possibilities:\n\n regex4 | regex5 ' ie, startAt = 3\n\n This class wraps all that complexity up in a simple API... `startAt` decides\n where in the array of expressions to start doing the matching. It\n auto-increments, so if a match is found at position 2, then startAt will be\n set to 3. If the end is reached startAt will return to 0.\n\n MOST of the time the parser will be setting startAt manually to 0.\n */\n class ResumableMultiRegex {\n constructor() {\n // @ts-ignore\n this.rules = [];\n // @ts-ignore\n this.multiRegexes = [];\n this.count = 0;\n\n this.lastIndex = 0;\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n getMatcher(index) {\n if (this.multiRegexes[index]) return this.multiRegexes[index];\n\n const matcher = new MultiRegex();\n this.rules.slice(index).forEach(([re, opts]) => matcher.addRule(re, opts));\n matcher.compile();\n this.multiRegexes[index] = matcher;\n return matcher;\n }\n\n resumingScanAtSamePosition() {\n return this.regexIndex !== 0;\n }\n\n considerAll() {\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n this.rules.push([re, opts]);\n if (opts.type === \"begin\") this.count++;\n }\n\n /** @param {string} s */\n exec(s) {\n const m = this.getMatcher(this.regexIndex);\n m.lastIndex = this.lastIndex;\n let result = m.exec(s);\n\n // The following is because we have no easy way to say \"resume scanning at the\n // existing position but also skip the current rule ONLY\". What happens is\n // all prior rules are also skipped which can result in matching the wrong\n // thing. Example of matching \"booger\":\n\n // our matcher is [string, \"booger\", number]\n //\n // ....booger....\n\n // if \"booger\" is ignored then we'd really need a regex to scan from the\n // SAME position for only: [string, number] but ignoring \"booger\" (if it\n // was the first match), a simple resume would scan ahead who knows how\n // far looking only for \"number\", ignoring potential string matches (or\n // future \"booger\" matches that might be valid.)\n\n // So what we do: We execute two matchers, one resuming at the same\n // position, but the second full matcher starting at the position after:\n\n // /--- resume first regex match here (for [number])\n // |/---- full match here for [string, \"booger\", number]\n // vv\n // ....booger....\n\n // Which ever results in a match first is then used. So this 3-4 step\n // process essentially allows us to say \"match at this position, excluding\n // a prior rule that was ignored\".\n //\n // 1. Match \"booger\" first, ignore. Also proves that [string] does non match.\n // 2. Resume matching for [number]\n // 3. Match at index + 1 for [string, \"booger\", number]\n // 4. If #2 and #3 result in matches, which came first?\n if (this.resumingScanAtSamePosition()) {\n if (result && result.index === this.lastIndex) ; else { // use the second matcher result\n const m2 = this.getMatcher(0);\n m2.lastIndex = this.lastIndex + 1;\n result = m2.exec(s);\n }\n }\n\n if (result) {\n this.regexIndex += result.position + 1;\n if (this.regexIndex === this.count) {\n // wrap-around to considering all matches again\n this.considerAll();\n }\n }\n\n return result;\n }\n }\n\n /**\n * Given a mode, builds a huge ResumableMultiRegex that can be used to walk\n * the content and find matches.\n *\n * @param {CompiledMode} mode\n * @returns {ResumableMultiRegex}\n */\n function buildModeRegex(mode) {\n const mm = new ResumableMultiRegex();\n\n mode.contains.forEach(term => mm.addRule(term.begin, { rule: term, type: \"begin\" }));\n\n if (mode.terminatorEnd) {\n mm.addRule(mode.terminatorEnd, { type: \"end\" });\n }\n if (mode.illegal) {\n mm.addRule(mode.illegal, { type: \"illegal\" });\n }\n\n return mm;\n }\n\n /** skip vs abort vs ignore\n *\n * @skip - The mode is still entered and exited normally (and contains rules apply),\n * but all content is held and added to the parent buffer rather than being\n * output when the mode ends. Mostly used with `sublanguage` to build up\n * a single large buffer than can be parsed by sublanguage.\n *\n * - The mode begin ands ends normally.\n * - Content matched is added to the parent mode buffer.\n * - The parser cursor is moved forward normally.\n *\n * @abort - A hack placeholder until we have ignore. Aborts the mode (as if it\n * never matched) but DOES NOT continue to match subsequent `contains`\n * modes. Abort is bad/suboptimal because it can result in modes\n * farther down not getting applied because an earlier rule eats the\n * content but then aborts.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is added to the mode buffer.\n * - The parser cursor is moved forward accordingly.\n *\n * @ignore - Ignores the mode (as if it never matched) and continues to match any\n * subsequent `contains` modes. Ignore isn't technically possible with\n * the current parser implementation.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is ignored.\n * - The parser cursor is not moved forward.\n */\n\n /**\n * Compiles an individual mode\n *\n * This can raise an error if the mode contains certain detectable known logic\n * issues.\n * @param {Mode} mode\n * @param {CompiledMode | null} [parent]\n * @returns {CompiledMode | never}\n */\n function compileMode(mode, parent) {\n const cmode = /** @type CompiledMode */ (mode);\n if (mode.isCompiled) return cmode;\n\n [\n scopeClassName,\n // do this early so compiler extensions generally don't have to worry about\n // the distinction between match/begin\n compileMatch,\n MultiClass,\n beforeMatchExt\n ].forEach(ext => ext(mode, parent));\n\n language.compilerExtensions.forEach(ext => ext(mode, parent));\n\n // __beforeBegin is considered private API, internal use only\n mode.__beforeBegin = null;\n\n [\n beginKeywords,\n // do this later so compiler extensions that come earlier have access to the\n // raw array if they wanted to perhaps manipulate it, etc.\n compileIllegal,\n // default to 1 relevance if not specified\n compileRelevance\n ].forEach(ext => ext(mode, parent));\n\n mode.isCompiled = true;\n\n let keywordPattern = null;\n if (typeof mode.keywords === \"object\" && mode.keywords.$pattern) {\n // we need a copy because keywords might be compiled multiple times\n // so we can't go deleting $pattern from the original on the first\n // pass\n mode.keywords = Object.assign({}, mode.keywords);\n keywordPattern = mode.keywords.$pattern;\n delete mode.keywords.$pattern;\n }\n keywordPattern = keywordPattern || /\\w+/;\n\n if (mode.keywords) {\n mode.keywords = compileKeywords(mode.keywords, language.case_insensitive);\n }\n\n cmode.keywordPatternRe = langRe(keywordPattern, true);\n\n if (parent) {\n if (!mode.begin) mode.begin = /\\B|\\b/;\n cmode.beginRe = langRe(cmode.begin);\n if (!mode.end && !mode.endsWithParent) mode.end = /\\B|\\b/;\n if (mode.end) cmode.endRe = langRe(cmode.end);\n cmode.terminatorEnd = source(cmode.end) || '';\n if (mode.endsWithParent && parent.terminatorEnd) {\n cmode.terminatorEnd += (mode.end ? '|' : '') + parent.terminatorEnd;\n }\n }\n if (mode.illegal) cmode.illegalRe = langRe(/** @type {RegExp | string} */ (mode.illegal));\n if (!mode.contains) mode.contains = [];\n\n mode.contains = [].concat(...mode.contains.map(function(c) {\n return expandOrCloneMode(c === 'self' ? mode : c);\n }));\n mode.contains.forEach(function(c) { compileMode(/** @type Mode */ (c), cmode); });\n\n if (mode.starts) {\n compileMode(mode.starts, parent);\n }\n\n cmode.matcher = buildModeRegex(cmode);\n return cmode;\n }\n\n if (!language.compilerExtensions) language.compilerExtensions = [];\n\n // self is not valid at the top-level\n if (language.contains && language.contains.includes('self')) {\n throw new Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\");\n }\n\n // we need a null object, which inherit will guarantee\n language.classNameAliases = inherit$1(language.classNameAliases || {});\n\n return compileMode(/** @type Mode */ (language));\n}\n\n/**\n * Determines if a mode has a dependency on it's parent or not\n *\n * If a mode does have a parent dependency then often we need to clone it if\n * it's used in multiple places so that each copy points to the correct parent,\n * where-as modes without a parent can often safely be re-used at the bottom of\n * a mode chain.\n *\n * @param {Mode | null} mode\n * @returns {boolean} - is there a dependency on the parent?\n * */\nfunction dependencyOnParent(mode) {\n if (!mode) return false;\n\n return mode.endsWithParent || dependencyOnParent(mode.starts);\n}\n\n/**\n * Expands a mode or clones it if necessary\n *\n * This is necessary for modes with parental dependenceis (see notes on\n * `dependencyOnParent`) and for nodes that have `variants` - which must then be\n * exploded into their own individual modes at compile time.\n *\n * @param {Mode} mode\n * @returns {Mode | Mode[]}\n * */\nfunction expandOrCloneMode(mode) {\n if (mode.variants && !mode.cachedVariants) {\n mode.cachedVariants = mode.variants.map(function(variant) {\n return inherit$1(mode, { variants: null }, variant);\n });\n }\n\n // EXPAND\n // if we have variants then essentially \"replace\" the mode with the variants\n // this happens in compileMode, where this function is called from\n if (mode.cachedVariants) {\n return mode.cachedVariants;\n }\n\n // CLONE\n // if we have dependencies on parents then we need a unique\n // instance of ourselves, so we can be reused with many\n // different parents without issue\n if (dependencyOnParent(mode)) {\n return inherit$1(mode, { starts: mode.starts ? inherit$1(mode.starts) : null });\n }\n\n if (Object.isFrozen(mode)) {\n return inherit$1(mode);\n }\n\n // no special dependency issues, just return ourselves\n return mode;\n}\n\nvar version = \"11.5.1\";\n\nclass HTMLInjectionError extends Error {\n constructor(reason, html) {\n super(reason);\n this.name = \"HTMLInjectionError\";\n this.html = html;\n }\n}\n\n/*\nSyntax highlighting with language autodetection.\nhttps://highlightjs.org/\n*/\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').CompiledScope} CompiledScope\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSApi} HLJSApi\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').PluginEvent} PluginEvent\n@typedef {import('highlight.js').HLJSOptions} HLJSOptions\n@typedef {import('highlight.js').LanguageFn} LanguageFn\n@typedef {import('highlight.js').HighlightedHTMLElement} HighlightedHTMLElement\n@typedef {import('highlight.js').BeforeHighlightContext} BeforeHighlightContext\n@typedef {import('highlight.js/private').MatchType} MatchType\n@typedef {import('highlight.js/private').KeywordData} KeywordData\n@typedef {import('highlight.js/private').EnhancedMatch} EnhancedMatch\n@typedef {import('highlight.js/private').AnnotatedError} AnnotatedError\n@typedef {import('highlight.js').AutoHighlightResult} AutoHighlightResult\n@typedef {import('highlight.js').HighlightOptions} HighlightOptions\n@typedef {import('highlight.js').HighlightResult} HighlightResult\n*/\n\n\nconst escape = escapeHTML;\nconst inherit = inherit$1;\nconst NO_MATCH = Symbol(\"nomatch\");\nconst MAX_KEYWORD_HITS = 7;\n\n/**\n * @param {any} hljs - object that is extended (legacy)\n * @returns {HLJSApi}\n */\nconst HLJS = function(hljs) {\n // Global internal variables used within the highlight.js library.\n /** @type {Record<string, Language>} */\n const languages = Object.create(null);\n /** @type {Record<string, string>} */\n const aliases = Object.create(null);\n /** @type {HLJSPlugin[]} */\n const plugins = [];\n\n // safe/production mode - swallows more errors, tries to keep running\n // even if a single syntax or parse hits a fatal error\n let SAFE_MODE = true;\n const LANGUAGE_NOT_FOUND = \"Could not find the language '{}', did you forget to load/include a language module?\";\n /** @type {Language} */\n const PLAINTEXT_LANGUAGE = { disableAutodetect: true, name: 'Plain text', contains: [] };\n\n // Global options used when within external APIs. This is modified when\n // calling the `hljs.configure` function.\n /** @type HLJSOptions */\n let options = {\n ignoreUnescapedHTML: false,\n throwUnescapedHTML: false,\n noHighlightRe: /^(no-?highlight)$/i,\n languageDetectRe: /\\blang(?:uage)?-([\\w-]+)\\b/i,\n classPrefix: 'hljs-',\n cssSelector: 'pre code',\n languages: null,\n // beta configuration options, subject to change, welcome to discuss\n // https://github.com/highlightjs/highlight.js/issues/1086\n __emitter: TokenTreeEmitter\n };\n\n /* Utility functions */\n\n /**\n * Tests a language name to see if highlighting should be skipped\n * @param {string} languageName\n */\n function shouldNotHighlight(languageName) {\n return options.noHighlightRe.test(languageName);\n }\n\n /**\n * @param {HighlightedHTMLElement} block - the HTML element to determine language for\n */\n function blockLanguage(block) {\n let classes = block.className + ' ';\n\n classes += block.parentNode ? block.parentNode.className : '';\n\n // language-* takes precedence over non-prefixed class names.\n const match = options.languageDetectRe.exec(classes);\n if (match) {\n const language = getLanguage(match[1]);\n if (!language) {\n warn(LANGUAGE_NOT_FOUND.replace(\"{}\", match[1]));\n warn(\"Falling back to no-highlight mode for this block.\", block);\n }\n return language ? match[1] : 'no-highlight';\n }\n\n return classes\n .split(/\\s+/)\n .find((_class) => shouldNotHighlight(_class) || getLanguage(_class));\n }\n\n /**\n * Core highlighting function.\n *\n * OLD API\n * highlight(lang, code, ignoreIllegals, continuation)\n *\n * NEW API\n * highlight(code, {lang, ignoreIllegals})\n *\n * @param {string} codeOrLanguageName - the language to use for highlighting\n * @param {string | HighlightOptions} optionsOrCode - the code to highlight\n * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n *\n * @returns {HighlightResult} Result - an object that represents the result\n * @property {string} language - the language name\n * @property {number} relevance - the relevance score\n * @property {string} value - the highlighted HTML code\n * @property {string} code - the original raw code\n * @property {CompiledMode} top - top of the current mode stack\n * @property {boolean} illegal - indicates whether any illegal matches were found\n */\n function highlight(codeOrLanguageName, optionsOrCode, ignoreIllegals) {\n let code = \"\";\n let languageName = \"\";\n if (typeof optionsOrCode === \"object\") {\n code = codeOrLanguageName;\n ignoreIllegals = optionsOrCode.ignoreIllegals;\n languageName = optionsOrCode.language;\n } else {\n // old API\n deprecated(\"10.7.0\", \"highlight(lang, code, ...args) has been deprecated.\");\n deprecated(\"10.7.0\", \"Please use highlight(code, options) instead.\\nhttps://github.com/highlightjs/highlight.js/issues/2277\");\n languageName = codeOrLanguageName;\n code = optionsOrCode;\n }\n\n // https://github.com/highlightjs/highlight.js/issues/3149\n // eslint-disable-next-line no-undefined\n if (ignoreIllegals === undefined) { ignoreIllegals = true; }\n\n /** @type {BeforeHighlightContext} */\n const context = {\n code,\n language: languageName\n };\n // the plugin can change the desired language or the code to be highlighted\n // just be changing the object it was passed\n fire(\"before:highlight\", context);\n\n // a before plugin can usurp the result completely by providing it's own\n // in which case we don't even need to call highlight\n const result = context.result\n ? context.result\n : _highlight(context.language, context.code, ignoreIllegals);\n\n result.code = context.code;\n // the plugin can change anything in result to suite it\n fire(\"after:highlight\", result);\n\n return result;\n }\n\n /**\n * private highlight that's used internally and does not fire callbacks\n *\n * @param {string} languageName - the language to use for highlighting\n * @param {string} codeToHighlight - the code to highlight\n * @param {boolean?} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n * @param {CompiledMode?} [continuation] - current continuation mode, if any\n * @returns {HighlightResult} - result of the highlight operation\n */\n function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) {\n const keywordHits = Object.create(null);\n\n /**\n * Return keyword data if a match is a keyword\n * @param {CompiledMode} mode - current mode\n * @param {string} matchText - the textual match\n * @returns {KeywordData | false}\n */\n function keywordData(mode, matchText) {\n return mode.keywords[matchText];\n }\n\n function processKeywords() {\n if (!top.keywords) {\n emitter.addText(modeBuffer);\n return;\n }\n\n let lastIndex = 0;\n top.keywordPatternRe.lastIndex = 0;\n let match = top.keywordPatternRe.exec(modeBuffer);\n let buf = \"\";\n\n while (match) {\n buf += modeBuffer.substring(lastIndex, match.index);\n const word = language.case_insensitive ? match[0].toLowerCase() : match[0];\n const data = keywordData(top, word);\n if (data) {\n const [kind, keywordRelevance] = data;\n emitter.addText(buf);\n buf = \"\";\n\n keywordHits[word] = (keywordHits[word] || 0) + 1;\n if (keywordHits[word] <= MAX_KEYWORD_HITS) relevance += keywordRelevance;\n if (kind.startsWith(\"_\")) {\n // _ implied for relevance only, do not highlight\n // by applying a class name\n buf += match[0];\n } else {\n const cssClass = language.classNameAliases[kind] || kind;\n emitter.addKeyword(match[0], cssClass);\n }\n } else {\n buf += match[0];\n }\n lastIndex = top.keywordPatternRe.lastIndex;\n match = top.keywordPatternRe.exec(modeBuffer);\n }\n buf += modeBuffer.substr(lastIndex);\n emitter.addText(buf);\n }\n\n function processSubLanguage() {\n if (modeBuffer === \"\") return;\n /** @type HighlightResult */\n let result = null;\n\n if (typeof top.subLanguage === 'string') {\n if (!languages[top.subLanguage]) {\n emitter.addText(modeBuffer);\n return;\n }\n result = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]);\n continuations[top.subLanguage] = /** @type {CompiledMode} */ (result._top);\n } else {\n result = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null);\n }\n\n // Counting embedded language score towards the host language may be disabled\n // with zeroing the containing mode relevance. Use case in point is Markdown that\n // allows XML everywhere and makes every XML snippet to have a much larger Markdown\n // score.\n if (top.relevance > 0) {\n relevance += result.relevance;\n }\n emitter.addSublanguage(result._emitter, result.language);\n }\n\n function processBuffer() {\n if (top.subLanguage != null) {\n processSubLanguage();\n } else {\n processKeywords();\n }\n modeBuffer = '';\n }\n\n /**\n * @param {CompiledScope} scope\n * @param {RegExpMatchArray} match\n */\n function emitMultiClass(scope, match) {\n let i = 1;\n const max = match.length - 1;\n while (i <= max) {\n if (!scope._emit[i]) { i++; continue; }\n const klass = language.classNameAliases[scope[i]] || scope[i];\n const text = match[i];\n if (klass) {\n emitter.addKeyword(text, klass);\n } else {\n modeBuffer = text;\n processKeywords();\n modeBuffer = \"\";\n }\n i++;\n }\n }\n\n /**\n * @param {CompiledMode} mode - new mode to start\n * @param {RegExpMatchArray} match\n */\n function startNewMode(mode, match) {\n if (mode.scope && typeof mode.scope === \"string\") {\n emitter.openNode(language.classNameAliases[mode.scope] || mode.scope);\n }\n if (mode.beginScope) {\n // beginScope just wraps the begin match itself in a scope\n if (mode.beginScope._wrap) {\n emitter.addKeyword(modeBuffer, language.classNameAliases[mode.beginScope._wrap] || mode.beginScope._wrap);\n modeBuffer = \"\";\n } else if (mode.beginScope._multi) {\n // at this point modeBuffer should just be the match\n emitMultiClass(mode.beginScope, match);\n modeBuffer = \"\";\n }\n }\n\n top = Object.create(mode, { parent: { value: top } });\n return top;\n }\n\n /**\n * @param {CompiledMode } mode - the mode to potentially end\n * @param {RegExpMatchArray} match - the latest match\n * @param {string} matchPlusRemainder - match plus remainder of content\n * @returns {CompiledMode | void} - the next mode, or if void continue on in current mode\n */\n function endOfMode(mode, match, matchPlusRemainder) {\n let matched = startsWith(mode.endRe, matchPlusRemainder);\n\n if (matched) {\n if (mode[\"on:end\"]) {\n const resp = new Response(mode);\n mode[\"on:end\"](match, resp);\n if (resp.isMatchIgnored) matched = false;\n }\n\n if (matched) {\n while (mode.endsParent && mode.parent) {\n mode = mode.parent;\n }\n return mode;\n }\n }\n // even if on:end fires an `ignore` it's still possible\n // that we might trigger the end node because of a parent mode\n if (mode.endsWithParent) {\n return endOfMode(mode.parent, match, matchPlusRemainder);\n }\n }\n\n /**\n * Handle matching but then ignoring a sequence of text\n *\n * @param {string} lexeme - string containing full match text\n */\n function doIgnore(lexeme) {\n if (top.matcher.regexIndex === 0) {\n // no more regexes to potentially match here, so we move the cursor forward one\n // space\n modeBuffer += lexeme[0];\n return 1;\n } else {\n // no need to move the cursor, we still have additional regexes to try and\n // match at this very spot\n resumeScanAtSamePosition = true;\n return 0;\n }\n }\n\n /**\n * Handle the start of a new potential mode match\n *\n * @param {EnhancedMatch} match - the current match\n * @returns {number} how far to advance the parse cursor\n */\n function doBeginMatch(match) {\n const lexeme = match[0];\n const newMode = match.rule;\n\n const resp = new Response(newMode);\n // first internal before callbacks, then the public ones\n const beforeCallbacks = [newMode.__beforeBegin, newMode[\"on:begin\"]];\n for (const cb of beforeCallbacks) {\n if (!cb) continue;\n cb(match, resp);\n if (resp.isMatchIgnored) return doIgnore(lexeme);\n }\n\n if (newMode.skip) {\n modeBuffer += lexeme;\n } else {\n if (newMode.excludeBegin) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (!newMode.returnBegin && !newMode.excludeBegin) {\n modeBuffer = lexeme;\n }\n }\n startNewMode(newMode, match);\n return newMode.returnBegin ? 0 : lexeme.length;\n }\n\n /**\n * Handle the potential end of mode\n *\n * @param {RegExpMatchArray} match - the current match\n */\n function doEndMatch(match) {\n const lexeme = match[0];\n const matchPlusRemainder = codeToHighlight.substr(match.index);\n\n const endMode = endOfMode(top, match, matchPlusRemainder);\n if (!endMode) { return NO_MATCH; }\n\n const origin = top;\n if (top.endScope && top.endScope._wrap) {\n processBuffer();\n emitter.addKeyword(lexeme, top.endScope._wrap);\n } else if (top.endScope && top.endScope._multi) {\n processBuffer();\n emitMultiClass(top.endScope, match);\n } else if (origin.skip) {\n modeBuffer += lexeme;\n } else {\n if (!(origin.returnEnd || origin.excludeEnd)) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (origin.excludeEnd) {\n modeBuffer = lexeme;\n }\n }\n do {\n if (top.scope) {\n emitter.closeNode();\n }\n if (!top.skip && !top.subLanguage) {\n relevance += top.relevance;\n }\n top = top.parent;\n } while (top !== endMode.parent);\n if (endMode.starts) {\n startNewMode(endMode.starts, match);\n }\n return origin.returnEnd ? 0 : lexeme.length;\n }\n\n function processContinuations() {\n const list = [];\n for (let current = top; current !== language; current = current.parent) {\n if (current.scope) {\n list.unshift(current.scope);\n }\n }\n list.forEach(item => emitter.openNode(item));\n }\n\n /** @type {{type?: MatchType, index?: number, rule?: Mode}}} */\n let lastMatch = {};\n\n /**\n * Process an individual match\n *\n * @param {string} textBeforeMatch - text preceding the match (since the last match)\n * @param {EnhancedMatch} [match] - the match itself\n */\n function processLexeme(textBeforeMatch, match) {\n const lexeme = match && match[0];\n\n // add non-matched text to the current mode buffer\n modeBuffer += textBeforeMatch;\n\n if (lexeme == null) {\n processBuffer();\n return 0;\n }\n\n // we've found a 0 width match and we're stuck, so we need to advance\n // this happens when we have badly behaved rules that have optional matchers to the degree that\n // sometimes they can end up matching nothing at all\n // Ref: https://github.com/highlightjs/highlight.js/issues/2140\n if (lastMatch.type === \"begin\" && match.type === \"end\" && lastMatch.index === match.index && lexeme === \"\") {\n // spit the \"skipped\" character that our regex choked on back into the output sequence\n modeBuffer += codeToHighlight.slice(match.index, match.index + 1);\n if (!SAFE_MODE) {\n /** @type {AnnotatedError} */\n const err = new Error(`0 width match regex (${languageName})`);\n err.languageName = languageName;\n err.badRule = lastMatch.rule;\n throw err;\n }\n return 1;\n }\n lastMatch = match;\n\n if (match.type === \"begin\") {\n return doBeginMatch(match);\n } else if (match.type === \"illegal\" && !ignoreIllegals) {\n // illegal match, we do not continue processing\n /** @type {AnnotatedError} */\n const err = new Error('Illegal lexeme \"' + lexeme + '\" for mode \"' + (top.scope || '<unnamed>') + '\"');\n err.mode = top;\n throw err;\n } else if (match.type === \"end\") {\n const processed = doEndMatch(match);\n if (processed !== NO_MATCH) {\n return processed;\n }\n }\n\n // edge case for when illegal matches $ (end of line) which is technically\n // a 0 width match but not a begin/end match so it's not caught by the\n // first handler (when ignoreIllegals is true)\n if (match.type === \"illegal\" && lexeme === \"\") {\n // advance so we aren't stuck in an infinite loop\n return 1;\n }\n\n // infinite loops are BAD, this is a last ditch catch all. if we have a\n // decent number of iterations yet our index (cursor position in our\n // parsing) still 3x behind our index then something is very wrong\n // so we bail\n if (iterations > 100000 && iterations > match.index * 3) {\n const err = new Error('potential infinite loop, way more iterations than matches');\n throw err;\n }\n\n /*\n Why might be find ourselves here? An potential end match that was\n triggered but could not be completed. IE, `doEndMatch` returned NO_MATCH.\n (this could be because a callback requests the match be ignored, etc)\n\n This causes no real harm other than stopping a few times too many.\n */\n\n modeBuffer += lexeme;\n return lexeme.length;\n }\n\n const language = getLanguage(languageName);\n if (!language) {\n error(LANGUAGE_NOT_FOUND.replace(\"{}\", languageName));\n throw new Error('Unknown language: \"' + languageName + '\"');\n }\n\n const md = compileLanguage(language);\n let result = '';\n /** @type {CompiledMode} */\n let top = continuation || md;\n /** @type Record<string,CompiledMode> */\n const continuations = {}; // keep continuations for sub-languages\n const emitter = new options.__emitter(options);\n processContinuations();\n let modeBuffer = '';\n let relevance = 0;\n let index = 0;\n let iterations = 0;\n let resumeScanAtSamePosition = false;\n\n try {\n top.matcher.considerAll();\n\n for (;;) {\n iterations++;\n if (resumeScanAtSamePosition) {\n // only regexes not matched previously will now be\n // considered for a potential match\n resumeScanAtSamePosition = false;\n } else {\n top.matcher.considerAll();\n }\n top.matcher.lastIndex = index;\n\n const match = top.matcher.exec(codeToHighlight);\n // console.log(\"match\", match[0], match.rule && match.rule.begin)\n\n if (!match) break;\n\n const beforeMatch = codeToHighlight.substring(index, match.index);\n const processedCount = processLexeme(beforeMatch, match);\n index = match.index + processedCount;\n }\n processLexeme(codeToHighlight.substr(index));\n emitter.closeAllNodes();\n emitter.finalize();\n result = emitter.toHTML();\n\n return {\n language: languageName,\n value: result,\n relevance: relevance,\n illegal: false,\n _emitter: emitter,\n _top: top\n };\n } catch (err) {\n if (err.message && err.message.includes('Illegal')) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: true,\n relevance: 0,\n _illegalBy: {\n message: err.message,\n index: index,\n context: codeToHighlight.slice(index - 100, index + 100),\n mode: err.mode,\n resultSoFar: result\n },\n _emitter: emitter\n };\n } else if (SAFE_MODE) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: false,\n relevance: 0,\n errorRaised: err,\n _emitter: emitter,\n _top: top\n };\n } else {\n throw err;\n }\n }\n }\n\n /**\n * returns a valid highlight result, without actually doing any actual work,\n * auto highlight starts with this and it's possible for small snippets that\n * auto-detection may not find a better match\n * @param {string} code\n * @returns {HighlightResult}\n */\n function justTextHighlightResult(code) {\n const result = {\n value: escape(code),\n illegal: false,\n relevance: 0,\n _top: PLAINTEXT_LANGUAGE,\n _emitter: new options.__emitter(options)\n };\n result._emitter.addText(code);\n return result;\n }\n\n /**\n Highlighting with language detection. Accepts a string with the code to\n highlight. Returns an object with the following properties:\n\n - language (detected language)\n - relevance (int)\n - value (an HTML string with highlighting markup)\n - secondBest (object with the same structure for second-best heuristically\n detected language, may be absent)\n\n @param {string} code\n @param {Array<string>} [languageSubset]\n @returns {AutoHighlightResult}\n */\n function highlightAuto(code, languageSubset) {\n languageSubset = languageSubset || options.languages || Object.keys(languages);\n const plaintext = justTextHighlightResult(code);\n\n const results = languageSubset.filter(getLanguage).filter(autoDetection).map(name =>\n _highlight(name, code, false)\n );\n results.unshift(plaintext); // plaintext is always an option\n\n const sorted = results.sort((a, b) => {\n // sort base on relevance\n if (a.relevance !== b.relevance) return b.relevance - a.relevance;\n\n // always award the tie to the base language\n // ie if C++ and Arduino are tied, it's more likely to be C++\n if (a.language && b.language) {\n if (getLanguage(a.language).supersetOf === b.language) {\n return 1;\n } else if (getLanguage(b.language).supersetOf === a.language) {\n return -1;\n }\n }\n\n // otherwise say they are equal, which has the effect of sorting on\n // relevance while preserving the original ordering - which is how ties\n // have historically been settled, ie the language that comes first always\n // wins in the case of a tie\n return 0;\n });\n\n const [best, secondBest] = sorted;\n\n /** @type {AutoHighlightResult} */\n const result = best;\n result.secondBest = secondBest;\n\n return result;\n }\n\n /**\n * Builds new class name for block given the language name\n *\n * @param {HTMLElement} element\n * @param {string} [currentLang]\n * @param {string} [resultLang]\n */\n function updateClassName(element, currentLang, resultLang) {\n const language = (currentLang && aliases[currentLang]) || resultLang;\n\n element.classList.add(\"hljs\");\n element.classList.add(`language-${language}`);\n }\n\n /**\n * Applies highlighting to a DOM node containing code.\n *\n * @param {HighlightedHTMLElement} element - the HTML element to highlight\n */\n function highlightElement(element) {\n /** @type HTMLElement */\n let node = null;\n const language = blockLanguage(element);\n\n if (shouldNotHighlight(language)) return;\n\n fire(\"before:highlightElement\",\n { el: element, language: language });\n\n // we should be all text, no child nodes (unescaped HTML) - this is possibly\n // an HTML injection attack - it's likely too late if this is already in\n // production (the code has likely already done its damage by the time\n // we're seeing it)... but we yell loudly about this so that hopefully it's\n // more likely to be caught in development before making it to production\n if (element.children.length > 0) {\n if (!options.ignoreUnescapedHTML) {\n console.warn(\"One of your code blocks includes unescaped HTML. This is a potentially serious security risk.\");\n console.warn(\"https://github.com/highlightjs/highlight.js/wiki/security\");\n console.warn(\"The element with unescaped HTML:\");\n console.warn(element);\n }\n if (options.throwUnescapedHTML) {\n const err = new HTMLInjectionError(\n \"One of your code blocks includes unescaped HTML.\",\n element.innerHTML\n );\n throw err;\n }\n }\n\n node = element;\n const text = node.textContent;\n const result = language ? highlight(text, { language, ignoreIllegals: true }) : highlightAuto(text);\n\n element.innerHTML = result.value;\n updateClassName(element, language, result.language);\n element.result = {\n language: result.language,\n // TODO: remove with version 11.0\n re: result.relevance,\n relevance: result.relevance\n };\n if (result.secondBest) {\n element.secondBest = {\n language: result.secondBest.language,\n relevance: result.secondBest.relevance\n };\n }\n\n fire(\"after:highlightElement\", { el: element, result, text });\n }\n\n /**\n * Updates highlight.js global options with the passed options\n *\n * @param {Partial<HLJSOptions>} userOptions\n */\n function configure(userOptions) {\n options = inherit(options, userOptions);\n }\n\n // TODO: remove v12, deprecated\n const initHighlighting = () => {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlighting() deprecated. Use highlightAll() now.\");\n };\n\n // TODO: remove v12, deprecated\n function initHighlightingOnLoad() {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlightingOnLoad() deprecated. Use highlightAll() now.\");\n }\n\n let wantsHighlight = false;\n\n /**\n * auto-highlights all pre>code elements on the page\n */\n function highlightAll() {\n // if we are called too early in the loading process\n if (document.readyState === \"loading\") {\n wantsHighlight = true;\n return;\n }\n\n const blocks = document.querySelectorAll(options.cssSelector);\n blocks.forEach(highlightElement);\n }\n\n function boot() {\n // if a highlight was requested before DOM was loaded, do now\n if (wantsHighlight) highlightAll();\n }\n\n // make sure we are in the browser environment\n if (typeof window !== 'undefined' && window.addEventListener) {\n window.addEventListener('DOMContentLoaded', boot, false);\n }\n\n /**\n * Register a language grammar module\n *\n * @param {string} languageName\n * @param {LanguageFn} languageDefinition\n */\n function registerLanguage(languageName, languageDefinition) {\n let lang = null;\n try {\n lang = languageDefinition(hljs);\n } catch (error$1) {\n error(\"Language definition for '{}' could not be registered.\".replace(\"{}\", languageName));\n // hard or soft error\n if (!SAFE_MODE) { throw error$1; } else { error(error$1); }\n // languages that have serious errors are replaced with essentially a\n // \"plaintext\" stand-in so that the code blocks will still get normal\n // css classes applied to them - and one bad language won't break the\n // entire highlighter\n lang = PLAINTEXT_LANGUAGE;\n }\n // give it a temporary name if it doesn't have one in the meta-data\n if (!lang.name) lang.name = languageName;\n languages[languageName] = lang;\n lang.rawDefinition = languageDefinition.bind(null, hljs);\n\n if (lang.aliases) {\n registerAliases(lang.aliases, { languageName });\n }\n }\n\n /**\n * Remove a language grammar module\n *\n * @param {string} languageName\n */\n function unregisterLanguage(languageName) {\n delete languages[languageName];\n for (const alias of Object.keys(aliases)) {\n if (aliases[alias] === languageName) {\n delete aliases[alias];\n }\n }\n }\n\n /**\n * @returns {string[]} List of language internal names\n */\n function listLanguages() {\n return Object.keys(languages);\n }\n\n /**\n * @param {string} name - name of the language to retrieve\n * @returns {Language | undefined}\n */\n function getLanguage(name) {\n name = (name || '').toLowerCase();\n return languages[name] || languages[aliases[name]];\n }\n\n /**\n *\n * @param {string|string[]} aliasList - single alias or list of aliases\n * @param {{languageName: string}} opts\n */\n function registerAliases(aliasList, { languageName }) {\n if (typeof aliasList === 'string') {\n aliasList = [aliasList];\n }\n aliasList.forEach(alias => { aliases[alias.toLowerCase()] = languageName; });\n }\n\n /**\n * Determines if a given language has auto-detection enabled\n * @param {string} name - name of the language\n */\n function autoDetection(name) {\n const lang = getLanguage(name);\n return lang && !lang.disableAutodetect;\n }\n\n /**\n * Upgrades the old highlightBlock plugins to the new\n * highlightElement API\n * @param {HLJSPlugin} plugin\n */\n function upgradePluginAPI(plugin) {\n // TODO: remove with v12\n if (plugin[\"before:highlightBlock\"] && !plugin[\"before:highlightElement\"]) {\n plugin[\"before:highlightElement\"] = (data) => {\n plugin[\"before:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n if (plugin[\"after:highlightBlock\"] && !plugin[\"after:highlightElement\"]) {\n plugin[\"after:highlightElement\"] = (data) => {\n plugin[\"after:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function addPlugin(plugin) {\n upgradePluginAPI(plugin);\n plugins.push(plugin);\n }\n\n /**\n *\n * @param {PluginEvent} event\n * @param {any} args\n */\n function fire(event, args) {\n const cb = event;\n plugins.forEach(function(plugin) {\n if (plugin[cb]) {\n plugin[cb](args);\n }\n });\n }\n\n /**\n * DEPRECATED\n * @param {HighlightedHTMLElement} el\n */\n function deprecateHighlightBlock(el) {\n deprecated(\"10.7.0\", \"highlightBlock will be removed entirely in v12.0\");\n deprecated(\"10.7.0\", \"Please use highlightElement now.\");\n\n return highlightElement(el);\n }\n\n /* Interface definition */\n Object.assign(hljs, {\n highlight,\n highlightAuto,\n highlightAll,\n highlightElement,\n // TODO: Remove with v12 API\n highlightBlock: deprecateHighlightBlock,\n configure,\n initHighlighting,\n initHighlightingOnLoad,\n registerLanguage,\n unregisterLanguage,\n listLanguages,\n getLanguage,\n registerAliases,\n autoDetection,\n inherit,\n addPlugin\n });\n\n hljs.debugMode = function() { SAFE_MODE = false; };\n hljs.safeMode = function() { SAFE_MODE = true; };\n hljs.versionString = version;\n\n hljs.regex = {\n concat: concat,\n lookahead: lookahead,\n either: either,\n optional: optional,\n anyNumberOfTimes: anyNumberOfTimes\n };\n\n for (const key in MODES) {\n // @ts-ignore\n if (typeof MODES[key] === \"object\") {\n // @ts-ignore\n deepFreeze$1(MODES[key]);\n }\n }\n\n // merge all the modes/regexes into our main object\n Object.assign(hljs, MODES);\n\n return hljs;\n};\n\n// export an \"instance\" of the highlighter\nvar highlight = HLJS({});\n\nmodule.exports = highlight;\nhighlight.HighlightJS = highlight;\nhighlight.default = highlight;\n","/*\nLanguage: JSON\nDescription: JSON (JavaScript Object Notation) is a lightweight data-interchange format.\nAuthor: Ivan Sagalaev <maniac@softwaremaniacs.org>\nWebsite: http://www.json.org\nCategory: common, protocols, web\n*/\n\nfunction json(hljs) {\n const ATTRIBUTE = {\n className: 'attr',\n begin: /\"(\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/,\n relevance: 1.01\n };\n const PUNCTUATION = {\n match: /[{}[\\],:]/,\n className: \"punctuation\",\n relevance: 0\n };\n // normally we would rely on `keywords` for this but using a mode here allows us\n // to use the very tight `illegal: \\S` rule later to flag any other character\n // as illegal indicating that despite looking like JSON we do not truly have\n // JSON and thus improve false-positively greatly since JSON will try and claim\n // all sorts of JSON looking stuff\n const LITERALS = { beginKeywords: [\n \"true\",\n \"false\",\n \"null\"\n ].join(\" \") };\n\n return {\n name: 'JSON',\n contains: [\n ATTRIBUTE,\n PUNCTUATION,\n hljs.QUOTE_STRING_MODE,\n LITERALS,\n hljs.C_NUMBER_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ],\n illegal: '\\\\S'\n };\n}\n\nexport { json as default };\n","import hljs from 'highlight.js/lib/core'\nimport json from 'highlight.js/lib/languages/json'\nimport { marked } from 'marked'\nimport { route } from 'preact-router'\nimport { useCallback, useEffect, useMemo, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Ad, Btn, BtnMenu, ChangelogTag, Giscus, Octicon } from '../components'\nimport { useLocale, useTitle, useVersion } from '../contexts'\nimport { useActiveTimeout, useHash } from '../hooks'\nimport type { VersionId } from '../services'\nimport { parseFrontMatter, versionContent } from '../Utils'\n\nconst HASH = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M6.368 1.01a.75.75 0 01.623.859L6.57 4.5h3.98l.46-2.868a.75.75 0 011.48.237L12.07 4.5h2.18a.75.75 0 010 1.5h-2.42l-.64 4h2.56a.75.75 0 010 1.5h-2.8l-.46 2.869a.75.75 0 01-1.48-.237l.42-2.632H5.45l-.46 2.869a.75.75 0 01-1.48-.237l.42-2.632H1.75a.75.75 0 010-1.5h2.42l.64-4H2.25a.75.75 0 010-1.5h2.8l.46-2.868a.75.75 0 01.858-.622zM9.67 10l.64-4H6.33l-.64 4h3.98z\"></path></svg>'\n\nhljs.registerLanguage('json', json)\n\nmarked.use({\n\thighlight: (code, lang) => {\n\t\tif (lang === '') return undefined\n\t\treturn hljs.highlight(code, { language: lang }).value\n\t},\n})\n\ninterface Props {\n\tpath?: string\n\tid?: string\n}\nexport function Guide({ id }: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion } = useVersion()\n\tconst { changeTitle } = useTitle()\n\n\tconst [content, setContent] = useState<string | undefined>(undefined)\n\n\tconst frontMatter = useMemo(() => {\n\t\tif (!content) return undefined\n\t\tconst data = parseFrontMatter(content)\n\t\tchangeTitle(data?.title, data?.versions)\n\t\treturn data\n\t}, [content])\n\n\tconst allowedVersions = useMemo(() => {\n\t\tconst orderedVersions = config.versions.map(v => v.id)\n\t\treturn (frontMatter?.versions as string[])\n\t\t\t?.sort((a, b) => orderedVersions.indexOf(b) - orderedVersions.indexOf(a))\n\t}, [frontMatter?.versions])\n\n\tconst guideVersion = useMemo(() => {\n\t\tif (!allowedVersions) return version\n\t\tif (allowedVersions.includes(version)) return version\n\t\treturn allowedVersions[0]\n\t}, [version, frontMatter?.versions])\n\n\tconst versionedContent = useMemo(() => {\n\t\tif (!content) return undefined\n\t\tconst guide = content.substring(content.indexOf('---', 3) + 3)\n\t\treturn versionContent(guide, guideVersion)\n\t}, [guideVersion, content])\n\n\tconst html = useMemo(() => {\n\t\tif (!versionedContent) return undefined\n\t\tmarked.use({ renderer: {\n\t\t\tlink(href, title, text) {\n\t\t\t\tif (href === null) return text\n\t\t\t\tconst title2 = title ? ` title=\"${title}\"` : '' \n\t\t\t\tconst target = href?.match(/^https?:\\/\\//) ? ' target=\"_blank\"' : ''\n\t\t\t\treturn `<a href=\"${href}\"${title2}${target}>${text}</a>`\n\t\t\t},\n\t\t\theading(text, level, raw, slugger) {\n\t\t\t\tconst id = slugger.slug(raw)\n\t\t\t\tconst link = `<span id=\"guide-${id}\" href=\"?version=${version}#${id}\">${HASH}</span>`\n\t\t\t\treturn `<h${level}>${link}${text}</h${level}>`\n\t\t\t},\n\t\t}})\n\t\treturn marked(versionedContent, { version: '1.19' } as any)\n\t}, [versionedContent])\n\n\tconst [hash, setHash] = useHash()\n\n\tconst scrollToHeading = useCallback(() => {\n\t\tif (!html) return\n\t\tconst heading = document.querySelector(`[id=guide-${hash.slice(1)}]`)\n\t\tif (heading) {\n\t\t\tconst top = heading.getBoundingClientRect().top + window.scrollY\n\t\t\twindow.scrollTo({ top: top - 68, behavior: 'smooth' })\n\t\t}\n\t}, [html, hash])\n\n\tuseEffect(() => {\n\t\tscrollToHeading()\n\t}, [html === undefined, hash])\n\n\tconst clickGuideContent = useCallback((e: MouseEvent) => {\n\t\tif (!(e.target instanceof HTMLSpanElement)) return\n\t\tconst targetHash = '#' + e.target.id.replace(/^guide-/, '')\n\t\tchangeVersion(version, false, true)\n\t\tsetHash(targetHash)\n\t\tif (targetHash === hash) {\n\t\t\tscrollToHeading()\n\t\t}\n\t}, [scrollToHeading, hash, version])\n\n\tuseEffect(() => {\n\t\t(async () => {\n\t\t\tconst res = await fetch(`../../guides/${id}.md`)\n\t\t\tconst text = await res.text()\n\t\t\tsetContent(text)\n\t\t})()\n\t}, [id])\n\n\tconst [shareActive, shareSuccess] = useActiveTimeout()\n\n\tconst onShare = useCallback(() => {\n\t\tconst url = `${location.origin}/guides/${id}/?version=${version}`\n\t\tnavigator.clipboard.writeText(url)\n\t\tshareSuccess()\n\t}, [id, version])\n\n\tconst onClickTag = (tag: string) => {\n\t\troute(`/guides/?tags=${tag}`)\n\t}\n\n\tconst [largeWidth] = useState(window.innerWidth > 600)\n\n\treturn <main>\n\t\t<div class=\"guide\">\n\t\t\t<div class=\"navigation\">\n\t\t\t\t<a class=\"btn btn-link\" href=\"/guides/\">\n\t\t\t\t\t{Octicon.arrow_left}\n\t\t\t\t\t{locale('guides.all')}\n\t\t\t\t</a>\n\t\t\t\t<Btn icon={shareActive ? 'check' : 'link'} label={locale('share')} onClick={onShare} active={shareActive} tooltip={locale(shareActive ? 'copied' : 'copy_share')} class=\"guide-share\" />\n\t\t\t\t{allowedVersions && <BtnMenu icon=\"tag\" label={guideVersion} tooltip={locale('switch_version')}>\n\t\t\t\t\t{allowedVersions.map((v: string) => \n\t\t\t\t\t\t<Btn label={v} active={v === guideVersion} onClick={() => changeVersion(v as VersionId)} />)}\n\t\t\t\t</BtnMenu>}\n\t\t\t</div>\n\t\t\t{(frontMatter?.tags && frontMatter.tags.length > 0) && <div class=\"guide-tags\">\n\t\t\t\t{frontMatter.tags.map((tag: string) =>\n\t\t\t\t\t<ChangelogTag label={tag} active onClick={() => onClickTag(tag)} />\n\t\t\t\t)}\n\t\t\t</div>}\n\t\t\t{html && <>\n\t\t\t\t<Ad id=\"guide\" type={largeWidth ? 'image' : 'text'} />\n\t\t\t\t<div class=\"guide-content\" dangerouslySetInnerHTML={{ __html: html }} onClick={clickGuideContent}></div>\n\t\t\t\t<Giscus />\n\t\t\t</>}\n\t\t</div>\n\t</main>\n}\n","import { useMemo, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Btn, BtnMenu, ChangelogTag, GuideCard, TextInput } from '../components'\nimport { useLocale, useTitle, useVersion } from '../contexts'\nimport { useSearchParam } from '../hooks'\nimport type { VersionId } from '../services'\n\ninterface Guide {\n\tid: string,\n\ttitle: string,\n\tversions?: string[],\n\ttags?: string[],\n}\n\ndeclare var __GUIDES__: Guide[]\n\nconst TAG_KEY = 'tags'\nconst TAG_SEP = '|'\n\ninterface Props {\n\tpath?: string\n}\nexport function Guides({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion } = useVersion()\n\tuseTitle(locale('title.guides'))\n\n\tconst [search, setSearch] = useState('')\n\tconst [tags, setTags] = useSearchParam(TAG_KEY)\n\tconst activeTags = useMemo(() => tags?.split(TAG_SEP) ?? [], [tags])\n\tconst toggleTag = (tag: string) => {\n\t\tif (activeTags.includes(tag)) {\n\t\t\tsetTags(activeTags.filter(t => t !== tag).join(TAG_SEP))\n\t\t} else {\n\t\t\tsetTags([...activeTags, tag].sort().join(TAG_SEP))\n\t\t}\n\t}\n\n\tconst [versionFilter, setVersionFiler] = useState(false)\n\n\tconst versionedGuides = useMemo(() => {\n\t\tif (versionFilter === false) return __GUIDES__\n\t\treturn __GUIDES__.filter(guide => {\n\t\t\treturn guide.versions?.includes(version)\n\t\t})\n\t}, [version, versionFilter])\n\n\tconst filteredGuides = useMemo(() => {\n\t\tconst query = search.split(' ').map(q => q.trim().toLowerCase()).filter(q => q.length > 0)\n\t\treturn versionedGuides.filter(guide => {\n\t\t\tif (!activeTags.every(tag => guide.tags?.includes(tag))) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tconst content = guide.tags?.join(' ') + ' ' + guide.title.toLowerCase()\n\t\t\treturn query.every(q => {\n\t\t\t\tif (q.startsWith('!')) {\n\t\t\t\t\treturn q.length === 1 || !content.includes(q.slice(1))\n\t\t\t\t}\n\t\t\t\treturn content.includes(q)\n\t\t\t})\n\t\t})\n\t}, [versionedGuides, search, tags])\n\n\treturn <main>\n\t\t<div class=\"guides\">\n\t\t\t<div class=\"changelog-query\">\n\t\t\t\t<TextInput class=\"btn btn-input changelog-search\" placeholder={locale('guides.search')} value={search} onChange={setSearch} />\n\t\t\t\t<BtnMenu icon=\"tag\" label={versionFilter ? version : locale('any_version')} tooltip={locale('switch_version')}>\n\t\t\t\t\t<Btn label={locale('any_version')} active={!versionFilter} onClick={() => setVersionFiler(!versionFilter)} />\n\t\t\t\t\t{config.versions.slice().reverse().map(v =>\n\t\t\t\t\t\t<Btn label={v.id} active={versionFilter && v.id === version} onClick={() => {changeVersion(v.id as VersionId); setVersionFiler(true)}} />\n\t\t\t\t\t)}\n\t\t\t\t</BtnMenu>\n\t\t\t</div>\n\t\t\t{activeTags.length > 0 && <div class=\"changelog-tags\">\n\t\t\t\t{activeTags.map(tag => <ChangelogTag label={tag} onClick={() => toggleTag(tag)} />)}\n\t\t\t</div>}\n\t\t\t{versionedGuides.length === 0 ? <>\n\t\t\t\t<span class=\"note\">{locale('guides.no_results.version')}</span>\n\t\t\t</> : filteredGuides.length === 0 ? <>\n\t\t\t\t<span class=\"note\">{locale('guides.no_results.query')}</span>\n\t\t\t</> : filteredGuides.map(g =>\n\t\t\t\t<GuideCard title={g.title} link={`/guides/${g.id}/`} tags={g.tags ?? []} versions={g.versions ?? []} activeTags={activeTags} toggleTag={toggleTag} />\n\t\t\t)}\n\t\t</div>\n\t</main>\n}\n","import config from '../../config.json'\nimport { Giscus, ToolCard } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport { cleanUrl } from '../Utils'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Home({}: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.home'))\n\treturn <main>\n\t\t<div class=\"home\">\n\t\t\t<ToolCard title=\"Data packs\">\n\t\t\t\t{config.generators.filter(g => !g.category).map(g => \n\t\t\t\t\t<ToolCard title={locale(g.id)} link={cleanUrl(g.url)} />\n\t\t\t\t)}\n\t\t\t\t<ToolCard title={locale('worldgen')} link=\"/worldgen/\" />\n\t\t\t</ToolCard>\n\t\t\t<ToolCard title=\"Resource packs\">\n\t\t\t\t{config.generators.filter(g => g.category === 'assets').map(g =>\n\t\t\t\t\t<ToolCard title={locale(g.id)} link={cleanUrl(g.url)} />\n\t\t\t\t)}\n\t\t\t</ToolCard>\n\t\t\t<ToolCard title=\"Report Inspector\" icon=\"report\"\n\t\t\t\tlink=\"https://misode.github.io/report/\"\n\t\t\t\tdesc=\"Analyse your performance reports\" />\n\t\t\t<ToolCard title=\"Minecraft Sounds\" icon=\"sounds\"\n\t\t\t\tlink=\"/sounds/\"\n\t\t\t\tdesc=\"Browse through and mix all the vanilla sounds\" />\n\t\t\t<ToolCard title=\"Data Pack Upgrader\"\n\t\t\t\tlink=\"https://misode.github.io/upgrader/\"\n\t\t\t\tdesc=\"Convert your data packs from 1.16 to 1.17 to 1.18\" />\n\t\t\t<ToolCard title=\"Technical Changelog\" link=\"/changelog/\" />\n\t\t\t<ToolCard title=\"Minecraft Versions\" link=\"/versions/\" />\n\t\t\t<ToolCard title=\"Data Pack Guides\" link=\"/guides/\" />\n\t\t\t<Giscus />\n\t\t</div>\n\t</main>\n}\n","import { useMemo } from 'preact/hooks'\nimport { Ad, TreeView } from '../components'\nimport { getFilePath, useLocale, useProject, useTitle } from '../contexts'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Project({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { project, openFile } = useProject()\n\tuseTitle(locale('title.project', project.name))\n\tconst entries = useMemo(() => project.files.map(getFilePath), project.files)\n\n\tconst selectFile = (entry: string) => {\n\t\tconst [, namespace, type, ...id] = entry.split('/')\n\t\topenFile(type, `${namespace}:${id}`)\n\t}\n\n\treturn <main>\n\t\t<Ad id=\"data-pack-project\" type=\"text\" />\n\t\t<div class=\"project\">\n\t\t\t<h2>{project.name}</h2>\n\t\t\t<div class=\"file-view\">\n\t\t\t\t<TreeView entries={entries} onSelect={selectFile}/>\n\t\t\t</div>\n\t\t</div>\n\t</main>\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Btn, BtnMenu, ErrorPanel, SoundConfig, TextInput } from '../components'\nimport { useLocale, useTitle, useVersion } from '../contexts'\nimport type { SoundEvents, VersionId } from '../services'\nimport { fetchSounds } from '../services'\nimport { hexId } from '../Utils'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Sounds({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion } = useVersion()\n\tconst [error, setError] = useState<Error | null>(null)\n\tuseTitle(locale('title.sounds'))\n\n\tconst [sounds, setSounds] = useState<SoundEvents>({})\n\tconst soundKeys = Object.keys(sounds ?? {})\n\tuseEffect(() => {\n\t\tfetchSounds(version)\n\t\t\t.then(setSounds)\n\t\t\t.catch(e => { console.error(e); setError(e) })\n\t}, [version])\n\n\tconst [search, setSearch] = useState('')\n\tconst [configs, setConfigs] = useState<SoundConfig[]>([])\n\tconst addConfig = () => {\n\t\tsetConfigs([{ id: hexId(), sound: search, delay: 0, pitch: 1, volume: 1 }, ...configs])\n\t}\n\tconst editConfig = (id: string) => (changes: Partial<SoundConfig>) => {\n\t\tsetConfigs(configs.map(c => c.id === id ? { ...c, ...changes } : c))\n\t}\n\tconst deleteConfig = (id: string) => () => {\n\t\tsetConfigs(configs.filter(c => c.id !== id))\n\t}\n\n\tconst [delayedPlay, setDelayedPlay] = useState(0)\n\tconst playAll = () => {\n\t\tsetDelayedPlay(delayedPlay + 1)\n\t}\n\n\tconst download = useRef<HTMLAnchorElement>(null)\n\tconst downloadFunction = () => {\n\t\tconst hasDelay = configs.some(c => c.delay > 0)\n\t\tconst content = configs\n\t\t\t.sort((a, b) => a.delay - b.delay)\n\t\t\t.map(c => `${hasDelay ? `execute if score @s delay matches ${c.delay} run ` : ''}playsound minecraft:${c.sound} master @s ~ ~ ~ ${c.volume} ${c.pitch}`)\n\t\t\t.join('\\n')\n\t\tdownload.current.setAttribute('href', 'data:text/plain;charset=utf-8,' + content + '%0A')\n\t\tdownload.current.setAttribute('download', 'sounds.mcfunction')\n\t\tdownload.current.click()\n\t}\n\n\treturn <main>\n\t\t{error && <ErrorPanel error={error} onDismiss={() => setError(null)} />}\n\t\t{soundKeys.length > 0 && <>\n\t\t\t<div class=\"controls sounds-controls\">\n\t\t\t\t<div class=\"sound-search-group\">\n\t\t\t\t\t<TextInput class=\"btn btn-input sound-search\" list=\"sound-list\" placeholder={locale('sounds.search')}\n\t\t\t\t\t\tvalue={search} onChange={setSearch} onEnter={addConfig} />\n\t\t\t\t\t<Btn icon=\"plus\" tooltip={locale('sounds.add_sound')} class=\"add-sound\" onClick={addConfig} />\n\t\t\t\t</div>\n\t\t\t\t{configs.length > 1 && <Btn icon=\"play\" label={ locale('sounds.play_all')} class=\"play-all-sounds\" onClick={playAll} />}\n\t\t\t\t<div class=\"spacer\"></div>\n\t\t\t\t<Btn icon=\"download\" label={locale('download')} tooltip={locale('sounds.download_function')} class=\"download-sounds\" onClick={downloadFunction} />\n\t\t\t\t<BtnMenu icon=\"tag\" label={version} tooltip={locale('switch_version')}>\n\t\t\t\t\t{config.versions.slice().reverse().map(v =>\n\t\t\t\t\t\t<Btn label={v.id} active={v.id === version} onClick={() => changeVersion(v.id as VersionId)} />\n\t\t\t\t\t)}\n\t\t\t\t</BtnMenu>\n\t\t\t</div>\n\t\t\t<div class=\"sounds\">\n\t\t\t\t{configs.map(c => <SoundConfig key={c.id} {...c} {...{ sounds, delayedPlay }} onEdit={editConfig(c.id)} onDelete={deleteConfig(c.id)} />)}\n\t\t\t</div>\n\t\t\t<a ref={download} style=\"display: none;\"></a>\n\t\t</>}\n\t\t<datalist id=\"sound-list\">\n\t\t\t{soundKeys.map(s => <option key={s} value={s} />)}\n\t\t</datalist>\n\t</main>\n}\n","import { useEffect, useState } from 'preact/hooks'\nimport { Ad, ErrorPanel, Octicon, VersionDetail, VersionList } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport { useSearchParam } from '../hooks'\nimport type { VersionMeta } from '../services'\nimport { fetchVersions } from '../services'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Versions({}: Props) {\n\tconst { locale } = useLocale()\n\tconst [error, setError] = useState<Error | null>(null)\n\tuseTitle(locale('title.versions'))\n\n\tconst [versions, setVersions] = useState<VersionMeta[]>([])\n\tuseEffect(() => {\n\t\tfetchVersions()\n\t\t\t.then(versions => setVersions(versions))\n\t\t\t.catch(e => { console.error(e); setError(e) })\n\t}, [])\n\n\tconst [selectedId] = useSearchParam('id')\n\tconst selected = versions.find(v => v.id === selectedId)\n\n\tuseTitle(selected ? selected.name : 'Versions Explorer', selected ? [] : undefined)\n\n\tconst nextVersion = selected && getOffsetVersion(versions, selected, -1)\n\tconst previousVersion = selected && getOffsetVersion(versions, selected, 1)\n\n\treturn <main>\n\t\t<Ad type=\"text\" id=\"versions\" />\n\t\t{error && <ErrorPanel error={error} onDismiss={() => setError(null)} />}\n\t\t<div class=\"versions\">\n\t\t\t{selectedId ? <>\n\t\t\t\t<div class=\"navigation\">\n\t\t\t\t\t<a class=\"btn btn-link\" href=\"/versions/\">\n\t\t\t\t\t\t{Octicon.three_bars}\n\t\t\t\t\t\t{locale('versions.all')}\n\t\t\t\t\t</a>\n\t\t\t\t\t<a class=\"btn btn-link\" {...previousVersion ? {href: `/versions/?id=${previousVersion.id}`} : {disabled: true}}>\n\t\t\t\t\t\t{Octicon.arrow_left}\n\t\t\t\t\t\t{locale('versions.previous')}\n\t\t\t\t\t</a>\n\t\t\t\t\t<a class=\"btn btn-link\" {...nextVersion ? {href: `/versions/?id=${nextVersion.id}`} : {disabled: true}}>\n\t\t\t\t\t\t{locale('versions.next')}\n\t\t\t\t\t\t{Octicon.arrow_right}\n\t\t\t\t\t</a>\n\t\t\t\t</div>\n\t\t\t\t{selected ? <VersionDetail version={selected} />\n\t\t\t\t\t: <div class=\"version-detail\">\n\t\t\t\t\t\t<h2>{selectedId}</h2>\n\t\t\t\t\t\t<div class=\"version-info\">\n\t\t\t\t\t\t\t<p>This version does not exist. Only versions since 1.14 are tracked, or it may be too recent.</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>}\n\t\t\t</> : <VersionList versions={versions} link={id => `/versions/?id=${id}`} />}\n\t\t</div>\n\t</main>\n}\n\nfunction getOffsetVersion(versions: VersionMeta[], current: VersionMeta, offset: number) {\n\tconst currentIndex = versions.findIndex(v => v.id === current.id)\n\tconst offsetIndex = currentIndex + offset\n\tif (offsetIndex < 0 || offsetIndex >= versions.length) {\n\t\treturn undefined\n\t}\n\treturn versions[offsetIndex]\n}\n","import type { RouterOnChangeArgs } from 'preact-router'\nimport { Router } from 'preact-router'\nimport '../styles/global.css'\nimport '../styles/nodes.css'\nimport { Analytics } from './Analytics'\nimport { Header } from './components'\nimport { Category, Changelog, Generator, Guide, Guides, Home, Project, Sounds, Versions } from './pages'\nimport { cleanUrl } from './Utils'\n\nexport function App() {\n\tconst changeRoute = (e: RouterOnChangeArgs) => {\n\t\twindow.dispatchEvent(new CustomEvent('replacestate'))\n\t\t// Needs a timeout to ensure the title is set correctly\n\t\tsetTimeout(() => Analytics.pageview(cleanUrl(e.url)))\n\t}\n\n\treturn <>\n\t\t<Header />\n\t\t<Router onChange={changeRoute}>\n\t\t\t<Home path=\"/\" />\n\t\t\t<Category path=\"/worldgen\" category=\"worldgen\" />\n\t\t\t<Category path=\"/assets\" category=\"assets\" />\n\t\t\t<Sounds path=\"/sounds\" />\n\t\t\t<Changelog path=\"/changelog\" />\n\t\t\t<Versions path=\"/versions\" />\n\t\t\t<Project path=\"/project\" />\n\t\t\t<Guides path=\"/guides/\" />\n\t\t\t<Guide path=\"/guides/:id\" />\n\t\t\t<Generator default />\n\t\t</Router>\n\t</>\n}\n","import { render } from 'preact'\nimport '../styles/global.css'\nimport '../styles/nodes.css'\nimport { App } from './App'\nimport { LocaleProvider, ProjectProvider, ThemeProvider, TitleProvider, VersionProvider } from './contexts'\n\nfunction Main() {\n\treturn <LocaleProvider>\n\t\t<ThemeProvider>\n\t\t\t<VersionProvider>\n\t\t\t\t<TitleProvider>\n\t\t\t\t\t<ProjectProvider>\n\t\t\t\t\t\t<App />\n\t\t\t\t\t</ProjectProvider>\n\t\t\t\t</TitleProvider>\n\t\t\t</VersionProvider>\n\t\t</ThemeProvider>\n\t</LocaleProvider>\n}\n\nrender(<Main />, document.body)\n"],"file":"assets/index.36354f76.js"} \ No newline at end of file diff --git a/assets/index.a00dac78.js b/assets/index.43e8f1d5.js similarity index 99% rename from assets/index.a00dac78.js rename to assets/index.43e8f1d5.js index 7849fbad..bc11e462 100644 --- a/assets/index.a00dac78.js +++ b/assets/index.43e8f1d5.js @@ -1,2 +1,2 @@ -var $e=Object.defineProperty,Te=Object.defineProperties;var De=Object.getOwnPropertyDescriptors;var je=Object.getOwnPropertySymbols;var Ae=Object.prototype.hasOwnProperty,qe=Object.prototype.propertyIsEnumerable;var Me=(r,o,e)=>o in r?$e(r,o,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[o]=e,k=(r,o)=>{for(var e in o||(o={}))Ae.call(o,e)&&Me(r,e,o[e]);if(je)for(var e of je(o))qe.call(o,e)&&Me(r,e,o[e]);return r},xe=(r,o)=>Te(r,De(o));import{l as v,c as W}from"./index.36354f76.js";function Fe(r,o){return o.forEach(function(e){e&&typeof e!="string"&&!Array.isArray(e)&&Object.keys(e).forEach(function(t){if(t!=="default"&&!(t in r)){var s=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,s.get?s:{enumerable:!0,get:function(){return e[t]}})}})}),Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var q={},Z={};Object.defineProperty(Z,"__esModule",{value:!0});Z.initCollections=void 0;function Ie(r){r.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"]),r.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),r.register("dimension_type",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),r.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"]),r.register("slot",["mainhand","offhand","head","chest","legs","feet"]),r.register("gamemode",["survival","creative","adventure","spectator"]),r.register("worldgen/noise_settings",["minecraft:overworld","minecraft:nether","minecraft:end","minecraft:amplified","minecraft:caves","minecraft:floating_islands"]),r.register("entity_source",["this","direct_killer","killer","killer_player"]),r.register("copy_source",["block_entity","this","killer","killer_player"]),r.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),r.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"]),r.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"]),r.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"]),r.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"]),r.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"]),r.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"]),r.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end"]),r.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),r.register("generation_step",["air","liquid"]),r.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"]),r.register("cat_texture",["textures/entity/cat/tabby.png","textures/entity/cat/black.png","textures/entity/cat/red.png","textures/entity/cat/siamese.png","textures/entity/cat/british_shorthair.png","textures/entity/cat/calico.png","textures/entity/cat/persian.png","textures/entity/cat/ragdoll.png","textures/entity/cat/white.png","textures/entity/cat/jellie.png","textures/entity/cat/all_black.png"])}Z.initCollections=Ie;var Y={},J={},$={};(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.initCommonSchemas=r.UniformInt=r.Range=r.NoiseSettingsPresets=r.DefaultNoiseSettings=r.DimensionTypePresets=r.DefaultDimensionType=r.ConditionCases=void 0;const o=v;r.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"},r.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"}}};function e(t,s){const i=o.StringNode.bind(void 0,s),m=o.Reference.bind(void 0,t);t.register("block_state",(0,o.Mod)((0,o.ObjectNode)({Name:i({validator:"resource",params:{pool:"block"}}),Properties:(0,o.Opt)((0,o.MapNode)(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),t.register("fluid_state",(0,o.Mod)((0,o.ObjectNode)({Name:i({validator:"resource",params:{pool:"fluid"}}),Properties:(0,o.Opt)((0,o.MapNode)(i(),i()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),t.register("block_pos",(0,o.Mod)((0,o.ListNode)((0,o.NumberNode)({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]})),r.Range=l=>(0,o.ChoiceNode)([...l!=null&&l.forceRange?[]:[{type:"number",node:(0,o.NumberNode)(l),change:N=>{var w,T,U;return N===void 0?0:(U=(T=(w=N.min)!==null&&w!==void 0?w:N.max)!==null&&T!==void 0?T:N.n)!==null&&U!==void 0?U:0}}],{type:"object",priority:-1,node:(0,o.ObjectNode)({min:l!=null&&l.bounds?(0,o.NumberNode)(l):(0,o.Opt)((0,o.NumberNode)(l)),max:l!=null&&l.bounds?(0,o.NumberNode)(l):(0,o.Opt)((0,o.NumberNode)(l))},{context:"range"}),change:N=>({min:typeof N=="number"?N:N===void 0?1:N.n,max:typeof N=="number"?N:N===void 0?1:N.n})},...l!=null&&l.allowBinomial?[{type:"binomial",node:(0,o.ObjectNode)({type:i({enum:["minecraft:binomial"]}),n:(0,o.NumberNode)({integer:!0,min:0}),p:(0,o.NumberNode)({min:0,max:1})},{context:"range"}),match:N=>N!==void 0&&N.type==="minecraft:binomial",change:N=>{var w,T;return{type:"minecraft:binomial",n:typeof N=="number"?N:N===void 0?1:(T=(w=N.min)!==null&&w!==void 0?w:N.max)!==null&&T!==void 0?T:1,p:.5}}}]:[]],{choiceContext:"range"}),r.UniformInt=l=>(0,o.ChoiceNode)([{type:"number",node:(0,o.NumberNode)({integer:!0,min:l==null?void 0:l.min,max:l==null?void 0:l.max}),change:N=>N.base},{type:"object",node:(0,o.ObjectNode)({base:(0,o.NumberNode)({integer:!0,min:l==null?void 0:l.min,max:l==null?void 0:l.max}),spread:(0,o.NumberNode)({integer:!0,min:0,max:l==null?void 0:l.maxSpread})}),change:N=>({base:N,spread:0})}],{context:"uniform_int"}),r.ConditionCases={"minecraft:alternative":{terms:(0,o.ListNode)(m("condition"))},"minecraft:block_state_property":{block:i({validator:"resource",params:{pool:"block"}}),properties:(0,o.MapNode)(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:m("damage_source_predicate")},"minecraft:entity_properties":{entity:i({enum:"entity_source"}),predicate:m("entity_predicate")},"minecraft:entity_scores":{entity:i({enum:"entity_source"}),scores:(0,o.MapNode)(i({validator:"objective"}),(0,r.Range)({forceRange:!0}))},"minecraft:inverted":{term:m("condition")},"minecraft:killed_by_player":{inverse:(0,o.Opt)((0,o.BooleanNode)())},"minecraft:location_check":{offsetX:(0,o.Opt)((0,o.NumberNode)({integer:!0})),offsetY:(0,o.Opt)((0,o.NumberNode)({integer:!0})),offsetZ:(0,o.Opt)((0,o.NumberNode)({integer:!0})),predicate:m("location_predicate")},"minecraft:match_tool":{predicate:m("item_predicate")},"minecraft:random_chance":{chance:(0,o.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,o.NumberNode)({min:0,max:1}),looting_multiplier:(0,o.NumberNode)()},"minecraft:reference":{name:i({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:i({validator:"resource",params:{pool:"enchantment"}}),chances:(0,o.ListNode)((0,o.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:(0,r.Range)(),period:(0,o.Opt)((0,o.NumberNode)())},"minecraft:weather_check":{raining:(0,o.Opt)((0,o.BooleanNode)()),thundering:(0,o.Opt)((0,o.BooleanNode)())}},r.DimensionTypePresets=l=>(0,o.ObjectOrPreset)(i({validator:"resource",params:{pool:"$dimension_type"}}),l,{"minecraft:overworld":r.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"}}),r.NoiseSettingsPresets=l=>(0,o.ObjectOrPreset)(i({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),l,{"minecraft:overworld":r.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"}}}})}r.initCommonSchemas=e})($);Object.defineProperty(J,"__esModule",{value:!0});J.initAdvancementSchemas=void 0;const c=v,L=$;function Ee(r,o){const e=c.Reference.bind(void 0,r),t=c.StringNode.bind(void 0,o),s=(0,c.ChoiceNode)([{type:"object",node:(0,c.Opt)(e("entity_predicate")),change:i=>{var m,l;return(l=(m=i[0])===null||m===void 0?void 0:m.predicate)!==null&&l!==void 0?l:{}}},{type:"list",node:(0,c.ListNode)(e("condition")),change:i=>[{condition:"minecraft:entity_properties",predicate:i}]}],{context:"conditions"});r.register("advancement",(0,c.Mod)((0,c.ObjectNode)({display:(0,c.Opt)((0,c.Mod)((0,c.ObjectNode)({icon:(0,c.ObjectNode)({item:t({validator:"resource",params:{pool:"item"}}),nbt:(0,c.Opt)(t({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:e("text_component"),description:e("text_component"),background:(0,c.Opt)(t()),frame:(0,c.Opt)(t({enum:["task","challenge","goal"]})),show_toast:(0,c.Opt)((0,c.BooleanNode)()),announce_to_chat:(0,c.Opt)((0,c.BooleanNode)()),hidden:(0,c.Opt)((0,c.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,c.Opt)(t({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,c.MapNode)(t(),e("advancement_criteria")),requirements:(0,c.Opt)((0,c.ListNode)((0,c.ListNode)(t()))),rewards:(0,c.Opt)((0,c.ObjectNode)({function:(0,c.Opt)(t({validator:"resource",params:{pool:"$function"}})),loot:(0,c.Opt)((0,c.ListNode)(t({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,c.Opt)((0,c.ListNode)(t({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,c.Opt)((0,c.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),r.register("advancement_criteria",(0,c.ObjectNode)({trigger:t({validator:"resource",params:{pool:o.get("advancement_trigger")}}),conditions:(0,c.Opt)((0,c.ObjectNode)({player:(0,c.Mod)(s,{enabled:i=>i.pop().push("trigger").get()!=="minecraft:impossible"}),[c.Switch]:["pop",{push:"trigger"}],[c.Case]:{"minecraft:bee_nest_destroyed":{block:(0,c.Opt)(t({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,c.Opt)((0,c.NumberNode)({integer:!0})),item:(0,c.Opt)(e("item_predicate"))},"minecraft:bred_animals":{parent:s,partner:s,child:s},"minecraft:brewed_potion":{potion:(0,c.Opt)(t({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,c.Opt)(t({validator:"resource",params:{pool:"$dimension"}})),to:(0,c.Opt)(t({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:(0,c.Opt)((0,c.ListNode)(s))},"minecraft:construct_beacon":{level:(0,c.Opt)((0,L.Range)())},"minecraft:consume_item":{item:(0,c.Opt)(e("item_predicate"))},"minecraft:cured_zombie_villager":{villager:s,zombie:s},"minecraft:effects_changed":{effects:(0,c.Opt)((0,c.MapNode)(t({validator:"resource",params:{pool:"mob_effect"}}),e("status_effect_predicate")))},"minecraft:enter_block":{block:(0,c.Opt)(t({validator:"resource",params:{pool:"block"}})),state:(0,c.Opt)((0,c.MapNode)(t(),t(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:(0,c.Opt)((0,L.Range)()),item:(0,c.Opt)(e("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,c.Opt)(e("damage_predicate"))},"minecraft:entity_killed_player":{entity:s,killing_blow:(0,c.Opt)(e("damage_source_predicate"))},"minecraft:filled_bucket":{item:(0,c.Opt)(e("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:s,item:(0,c.Opt)(e("item_predicate"))},"minecraft:hero_of_the_village":{location:(0,c.Opt)(e("location_predicate"))},"minecraft:inventory_changed":{slots:(0,c.Opt)((0,c.ObjectNode)({empty:(0,c.Opt)((0,L.Range)()),occupied:(0,c.Opt)((0,L.Range)()),full:(0,c.Opt)((0,L.Range)())})),items:(0,c.Opt)((0,c.ListNode)(e("item_predicate")))},"minecraft:item_durability_changed":{delta:(0,c.Opt)((0,L.Range)()),durability:(0,c.Opt)((0,L.Range)()),item:(0,c.Opt)(e("item_predicate"))},"minecraft:item_used_on_block":{item:(0,c.Opt)(e("item_predicate")),location:(0,c.Opt)(e("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:(0,c.Opt)((0,L.Range)()),victims:(0,c.Opt)((0,c.ListNode)(s))},"minecraft:levitation":{distance:(0,c.Opt)((0,L.Range)()),duration:(0,c.Opt)((0,L.Range)())},"minecraft:location":{location:(0,c.Opt)(e("location_predicate"))},"minecraft:nether_travel":{distance:(0,c.Opt)((0,L.Range)()),entered:(0,c.Opt)(e("location_predicate")),exited:(0,c.Opt)(e("location_predicate"))},"minecraft:placed_block":{block:(0,c.Opt)(t({validator:"resource",params:{pool:"block"}})),state:(0,c.Opt)((0,c.MapNode)(t(),t(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,c.Opt)(e("item_predicate")),location:(0,c.Opt)(e("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:t({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:(0,c.Opt)(e("damage_predicate")),entity:s},"minecraft:player_interacted_with_entity":{item:(0,c.Opt)(e("item_predicate")),entity:s},"minecraft:player_killed_entity":{entity:s,killing_blow:(0,c.Opt)(e("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:t({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:(0,c.Opt)(e("location_predicate"))},"minecraft:slide_down_block":{block:(0,c.Opt)(t({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,c.Opt)(e("item_predicate"))},"minecraft:summoned_entity":{entity:s},"minecraft:tame_animal":{entity:s},"minecraft:target_hit":{projectile:s,shooter:s,signal_strength:(0,c.Opt)((0,L.Range)({integer:!0}))},"minecraft:thrown_item_picked_up_by_entity":{entity:s,item:(0,c.Opt)(e("item_predicate"))},"minecraft:used_ender_eye":{distance:(0,c.Opt)((0,L.Range)())},"minecraft:used_totem":{item:(0,c.Opt)(e("item_predicate"))},"minecraft:villager_trade":{villager:s,item:(0,c.Opt)(e("item_predicate"))},"minecraft:voluntary_exile":{location:e("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))}J.initAdvancementSchemas=Ee;var Q={},ee={};Object.defineProperty(ee,"__esModule",{value:!0});ee.initModelSchemas=void 0;const b=v;function Ue(r,o){b.Reference.bind(void 0,r);const e=b.StringNode.bind(void 0,o),t=(i,m,l)=>(0,b.ListNode)((0,b.NumberNode)({min:m,max:l}),{minLength:i,maxLength:i}),s=(0,b.ChoiceNode)([{type:"alias",match:i=>typeof i=="string"&&i.startsWith("#"),node:e(),change:i=>typeof i=="string"?`#${i}`:"#0"},{type:"reference",match:i=>typeof i=="string",node:e({validator:"resource",params:{pool:"$texture"}}),change:i=>typeof i=="string"?i.replace(/^#/,""):""}],{choiceContext:"texture"});r.register("model",(0,b.Mod)((0,b.ObjectNode)({parent:(0,b.Opt)(e({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,b.Opt)((0,b.BooleanNode)()),gui_light:(0,b.Opt)(e({enum:"gui_light"})),textures:(0,b.Opt)((0,b.MapNode)(e(),s)),elements:(0,b.Opt)((0,b.ListNode)((0,b.ObjectNode)({from:t(3,-16,32),to:t(3,-16,32),rotation:(0,b.Opt)((0,b.ObjectNode)({origin:t(3),axis:e({enum:"axis"}),angle:(0,b.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,b.Opt)((0,b.BooleanNode)())})),shade:(0,b.Opt)((0,b.BooleanNode)()),faces:(0,b.MapNode)(e({enum:"direction"}),(0,b.ObjectNode)({texture:s,uv:(0,b.Opt)(t(4)),cullface:(0,b.Opt)(e({enum:"direction"})),rotation:(0,b.Opt)((0,b.NumberNode)({integer:!0})),tintindex:(0,b.Opt)((0,b.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,b.Opt)((0,b.MapNode)(e({enum:"display_position"}),(0,b.ObjectNode)({rotation:t(3),translation:t(3,-80,80),scale:t(3,-4,4)},{context:"item_transform"}))),overrides:(0,b.Opt)((0,b.ListNode)((0,b.ObjectNode)({predicate:(0,b.MapNode)(e({enum:"item_model_predicates"}),(0,b.NumberNode)()),model:e({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))}ee.initModelSchemas=Ue;var te={};Object.defineProperty(te,"__esModule",{value:!0});te.initBlockDefinitionSchemas=void 0;const h=v;function We(r,o){const e=h.Reference.bind(void 0,r),t=h.StringNode.bind(void 0,o);r.register("block_definition",(0,h.Mod)((0,h.ChoiceNode)([{type:"variants",match:i=>i.variants!==void 0,node:(0,h.ObjectNode)({variants:(0,h.MapNode)(t(),e("model_variant"))}),change:i=>({variants:{"":{}}})},{type:"multipart",match:i=>i.multipart!==void 0,node:(0,h.ObjectNode)({multipart:(0,h.ListNode)((0,h.ObjectNode)({when:(0,h.Opt)(e("multipart_condition")),apply:e("model_variant")}))}),change:i=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const s={model:t({validator:"resource",params:{pool:"$model"}}),x:(0,h.Opt)((0,h.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,h.Opt)((0,h.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,h.Opt)((0,h.BooleanNode)())};r.register("model_variant",(0,h.ChoiceNode)([{type:"object",node:(0,h.ObjectNode)(s),change:i=>Array.isArray(i)&&i.length>0?i[0]:{}},{type:"list",node:(0,h.ListNode)((0,h.ObjectNode)(xe(k({},s),{weight:(0,h.Opt)((0,h.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:i=>[k({weight:1},i)]}],{context:"model_variant"})),r.register("multipart_condition",(0,h.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,h.MapNode)(t(),t()),change:i=>typeof i=="object"&&Array.isArray(i==null?void 0:i.OR)&&i.OR.length>0?i.OR[0]:{}},{type:"or",match:i=>typeof i=="object"&&(i==null?void 0:i.OR)!==void 0,node:(0,h.ObjectNode)({OR:(0,h.ListNode)(e("multipart_condition"))}),change:i=>({OR:[i!=null?i:{}]})}],{context:"multipart_condition"}))}te.initBlockDefinitionSchemas=We;Object.defineProperty(Q,"__esModule",{value:!0});Q.initAssetsSchemas=void 0;const Ge=ee,Ve=te;function He(r,o){(0,Ve.initBlockDefinitionSchemas)(r,o),(0,Ge.initModelSchemas)(r,o)}Q.initAssetsSchemas=He;var re={};Object.defineProperty(re,"__esModule",{value:!0});re.initConditionSchemas=void 0;const I=v,Ke=$;function Xe(r,o){const e=I.Reference.bind(void 0,r),t=I.StringNode.bind(void 0,o);r.register("predicate",(0,I.ObjectOrList)(e("condition"),{choiceContext:"condition"})),r.register("condition",(0,I.Mod)((0,I.ObjectNode)({condition:t({validator:"resource",params:{pool:"loot_condition_type"}}),[I.Switch]:[{push:"condition"}],[I.Case]:Ke.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))}re.initConditionSchemas=Xe;var oe={};Object.defineProperty(oe,"__esModule",{value:!0});oe.initDimensionSchemas=void 0;const g=v,Ce=$;function Ze(r,o){const e=g.Reference.bind(void 0,r),t=g.StringNode.bind(void 0,o),s=i=>(0,g.Mod)(i,{enabled:m=>m.push("preset").get()===void 0});r.register("dimension",(0,g.Mod)((0,g.ObjectNode)({type:(0,Ce.DimensionTypePresets)(e("dimension_type")),generator:(0,g.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[g.Switch]:[{push:"type"}],[g.Case]:{"minecraft:noise":{seed:(0,g.NumberNode)({integer:!0}),settings:(0,Ce.NoiseSettingsPresets)(e("noise_settings")),biome_source:(0,g.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/biome_source"}}),[g.Switch]:[{push:"type"}],[g.Case]:{"minecraft:fixed":{biome:t({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:(0,g.NumberNode)({integer:!0}),preset:(0,g.Opt)(t({enum:["nether"]})),altitude_noise:s(e("generator_biome_noise")),temperature_noise:s(e("generator_biome_noise")),humidity_noise:s(e("generator_biome_noise")),weirdness_noise:s(e("generator_biome_noise")),biomes:s((0,g.Mod)((0,g.ListNode)(e("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:(0,g.Opt)((0,g.NumberNode)({integer:!0,min:0,max:62})),biomes:(0,g.ListNode)(t({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:(0,g.NumberNode)({integer:!0})},"minecraft:vanilla_layered":{seed:(0,g.NumberNode)({integer:!0}),large_biomes:(0,g.Opt)((0,g.BooleanNode)()),legacy_biome_init_layer:(0,g.Opt)((0,g.BooleanNode)())}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:(0,g.ObjectNode)({biome:(0,g.Opt)(t({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:(0,g.Opt)((0,g.BooleanNode)()),features:(0,g.Opt)((0,g.BooleanNode)()),layers:(0,g.ListNode)(e("generator_layer")),structures:e("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const i=Math.floor(Math.random()*4294967296)-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:i,biome_source:{type:"minecraft:fixed",seed:i,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}})),r.register("generator_biome",(0,g.Mod)((0,g.ObjectNode)({biome:t({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:(0,g.ObjectNode)({altitude:(0,g.NumberNode)(),temperature:(0,g.NumberNode)(),humidity:(0,g.NumberNode)(),weirdness:(0,g.NumberNode)(),offset:(0,g.NumberNode)()})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),r.register("generator_biome_noise",(0,g.Mod)((0,g.ObjectNode)({firstOctave:(0,g.NumberNode)({integer:!0}),amplitudes:(0,g.ListNode)((0,g.NumberNode)())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))}oe.initDimensionSchemas=Ze;var ae={};Object.defineProperty(ae,"__esModule",{value:!0});ae.initDimensionTypeSchemas=void 0;const x=v,Ye=$;function Je(r,o){const e=x.StringNode.bind(void 0,o);r.register("dimension_type",(0,x.Mod)((0,x.ObjectNode)({name:(0,x.Mod)(e({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:t=>t.getArray().length>0}),ultrawarm:(0,x.BooleanNode)(),natural:(0,x.BooleanNode)(),piglin_safe:(0,x.BooleanNode)(),respawn_anchor_works:(0,x.BooleanNode)(),bed_works:(0,x.BooleanNode)(),has_raids:(0,x.BooleanNode)(),has_skylight:(0,x.BooleanNode)(),has_ceiling:(0,x.BooleanNode)(),coordinate_scale:(0,x.NumberNode)({min:1e-5,max:3e7}),ambient_light:(0,x.NumberNode)(),fixed_time:(0,x.Opt)((0,x.NumberNode)({integer:!0})),logical_height:(0,x.NumberNode)({integer:!0,min:0,max:256}),effects:(0,x.Opt)(e({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:e({validator:"resource",params:{pool:"$tag/block"}})},{context:"dimension_type"}),{default:()=>Ye.DefaultDimensionType}))}ae.initDimensionTypeSchemas=Je;var ie={},B={};Object.defineProperty(B,"__esModule",{value:!0});B.LootFunctions=B.LootConditions=B.LootCopySources=B.LootEntitySources=B.LootTableTypes=void 0;B.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]}]]);B.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]);B.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]);B.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",[]]]);B.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(ie,"__esModule",{value:!0});ie.initLootTableSchemas=void 0;const d=v,V=B,z=$;function Qe(r,o){const e=d.Reference.bind(void 0,r),t=d.StringNode.bind(void 0,o),s={conditions:(0,d.Opt)((0,d.ListNode)(e("loot_condition")))},i=k({functions:(0,d.Opt)((0,d.ListNode)(e("loot_function")))},s);function m(j,D,C){const Oe=[],ze=X=>o.get(D).filter(ke=>{var G;return((G=j.get(ke))!==null&&G!==void 0?G:[]).every(we=>X.includes(we))});for(const[X,{allows:ke,requires:G}]of V.LootTableTypes){const Se=[...ke,...G];Oe.push({match:we=>we.getModel().get(new d.Path(["type"]))===X,node:C(ze(Se))})}return Oe.push({match:X=>!0,node:C(D)}),(0,d.SwitchNode)(Oe)}const l=m(V.LootConditions,"loot_condition_type",j=>t({validator:"resource",params:{pool:j instanceof Array?j:"loot_condition_type"}})),N=m(V.LootFunctions,"loot_function_type",j=>t({validator:"resource",params:{pool:j instanceof Array?j:"loot_function_type"}})),w=m(V.LootEntitySources,"entity_source",j=>t({enum:j})),T=m(V.LootCopySources,"copy_source",j=>t({enum:j}));r.register("loot_table",(0,d.Mod)((0,d.ObjectNode)({type:(0,d.Opt)(t({validator:"resource",params:{pool:o.get("loot_context_type")}})),pools:(0,d.Opt)((0,d.ListNode)((0,d.Mod)((0,d.ObjectNode)(k({rolls:(0,z.Range)({allowBinomial:!0,integer:!0}),bonus_rolls:(0,d.Opt)((0,z.Range)({integer:!0})),entries:(0,d.ListNode)(e("loot_entry"))},i),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,d.Opt)((0,d.ListNode)(e("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const U={enabled:j=>{var D;return((D=j.pop().get())===null||D===void 0?void 0:D.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(j.push("type").get())}};r.register("loot_entry",(0,d.Mod)((0,d.ObjectNode)({type:t({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,d.Opt)((0,d.Mod)((0,d.NumberNode)({integer:!0,min:1}),U)),quality:(0,d.Opt)((0,d.Mod)((0,d.NumberNode)({integer:!0}),U)),[d.Switch]:[{push:"type"}],[d.Case]:{"minecraft:alternatives":k({children:(0,d.ListNode)(e("loot_entry"))},i),"minecraft:dynamic":k({name:t()},i),"minecraft:group":k({children:(0,d.ListNode)(e("loot_entry"))},i),"minecraft:item":k({name:t({validator:"resource",params:{pool:"item"}})},i),"minecraft:loot_table":k({name:t({validator:"resource",params:{pool:"$loot_table"}})},i),"minecraft:sequence":k({children:(0,d.ListNode)(e("loot_entry"))},i),"minecraft:tag":k({name:t({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,d.Opt)((0,d.BooleanNode)())},i)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),r.register("loot_function",(0,d.Mod)((0,d.ObjectNode)({function:N,[d.Switch]:[{push:"function"}],[d.Case]:(()=>{const j={"minecraft:apply_bonus":{enchantment:t({validator:"resource",params:{pool:"enchantment"}}),formula:t({validator:"resource",params:{pool:o.get("loot_table_apply_bonus_formula")}}),parameters:(0,d.Mod)((0,d.ObjectNode)({bonusMultiplier:(0,d.Mod)((0,d.NumberNode)(),{enabled:C=>C.pop().push("formula").get()==="minecraft:uniform_bonus_count"}),extra:(0,d.Mod)((0,d.NumberNode)(),{enabled:C=>C.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"}),probability:(0,d.Mod)((0,d.NumberNode)(),{enabled:C=>C.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"})}),{enabled:C=>C.push("formula").get()!=="minecraft:ore_drops"})},"minecraft:copy_name":{source:T},"minecraft:copy_nbt":{source:T,ops:(0,d.ListNode)((0,d.ObjectNode)({source:t({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:t({validator:"nbt_path",params:{category:"minecraft:item"}}),op:t({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:t({validator:"resource",params:{pool:"block"}}),properties:(0,d.ListNode)(t({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,d.Opt)((0,d.ListNode)(t({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:(0,z.Range)({allowBinomial:!0}),treasure:(0,d.Opt)((0,d.BooleanNode)())},"minecraft:exploration_map":{destination:(0,d.Opt)(t({enum:"map_feature"})),decoration:(0,d.Opt)(t({enum:"map_decoration"})),zoom:(0,d.Opt)((0,d.NumberNode)({integer:!0})),search_radius:(0,d.Opt)((0,d.NumberNode)({integer:!0})),skip_existing_chunks:(0,d.Opt)((0,d.BooleanNode)())},"minecraft:fill_player_head":{entity:w},"minecraft:limit_count":{limit:(0,z.Range)({bounds:!0})},"minecraft:looting_enchant":{count:(0,z.Range)({bounds:!0}),limit:(0,d.Opt)((0,d.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,d.ListNode)(e("attribute_modifier"))},"minecraft:set_contents":{entries:(0,d.ListNode)(e("loot_entry"))},"minecraft:set_count":{count:(0,z.Range)({allowBinomial:!0})},"minecraft:set_damage":{damage:(0,z.Range)({forceRange:!0})},"minecraft:set_loot_table":{name:t({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,d.Opt)((0,d.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,d.Opt)(w),lore:(0,d.ListNode)(e("text_component")),replace:(0,d.Opt)((0,d.BooleanNode)())},"minecraft:set_name":{entity:(0,d.Opt)(w),name:(0,d.Opt)(e("text_component"))},"minecraft:set_nbt":{tag:t({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:(0,d.Opt)((0,d.ListNode)((0,d.ObjectNode)({type:t({validator:"resource",params:{pool:"mob_effect"}}),duration:(0,z.Range)()})))}},D={};return o.get("loot_function_type").forEach(C=>{D[C]=k(k({},j[C]),s)}),D})()},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),r.register("loot_condition",(0,d.Mod)((0,d.ObjectNode)({condition:l,[d.Switch]:[{push:"condition"}],[d.Case]:xe(k({},z.ConditionCases),{"minecraft:entity_properties":{entity:w,predicate:e("entity_predicate")},"minecraft:entity_scores":{entity:w,scores:(0,d.MapNode)(t({validator:"objective"}),(0,z.Range)({bounds:!0}))}})},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),r.register("attribute_modifier",(0,d.Mod)((0,d.ObjectNode)({attribute:t({validator:"resource",params:{pool:"attribute"}}),name:t(),amount:(0,z.Range)({bounds:!0}),operation:t({enum:["addition","multiply_base","multiply_total"]}),slot:(0,d.StringOrList)(t({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))}ie.initLootTableSchemas=Qe;var ne={};Object.defineProperty(ne,"__esModule",{value:!0});ne.initPackMcmetaSchemas=void 0;const E=v;function et(r,o){r.register("pack_mcmeta",(0,E.Mod)((0,E.ObjectNode)({pack:(0,E.Mod)((0,E.ObjectNode)({pack_format:(0,E.Mod)((0,E.NumberNode)({integer:!0,min:6,max:6}),{default:()=>6}),description:(0,E.Reference)(r,"text_component")}),{default:()=>({pack_format:6,description:""})})}),{default:()=>({pack:{pack_format:6,description:""}})}))}ne.initPackMcmetaSchemas=et;var ce={};Object.defineProperty(ce,"__esModule",{value:!0});ce.initPredicatesSchemas=void 0;const a=v,S=$;function tt(r,o){const e=a.Reference.bind(void 0,r),t=a.StringNode.bind(void 0,o),s=(0,a.ChoiceNode)([{type:"string",node:t(),change:i=>typeof i=="boolean"||typeof i=="number"?i.toString():""},{type:"number",node:(0,a.NumberNode)(),change:i=>typeof i=="string"?parseInt(i):0},{type:"object",node:(0,a.ObjectNode)({min:(0,a.Opt)((0,a.NumberNode)({integer:!0})),max:(0,a.Opt)((0,a.NumberNode)({integer:!0}))}),change:i=>typeof i=="number"?{min:i,max:i}:{}},{type:"boolean",node:(0,a.BooleanNode)(),change:i=>i==="true"||i===1}]);r.register("item_predicate",(0,a.ObjectNode)({item:(0,a.Opt)(t({validator:"resource",params:{pool:"item"}})),tag:(0,a.Opt)(t({validator:"resource",params:{pool:"$tag/item"}})),count:(0,a.Opt)((0,S.Range)()),durability:(0,a.Opt)((0,S.Range)()),potion:(0,a.Opt)(t({validator:"resource",params:{pool:"potion"}})),nbt:(0,a.Opt)(t({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,a.Opt)((0,a.ListNode)(e("enchantment_predicate")))},{context:"item"})),r.register("enchantment_predicate",(0,a.ObjectNode)({enchantment:(0,a.Opt)(t({validator:"resource",params:{pool:"enchantment"}})),levels:(0,a.Opt)((0,S.Range)())},{context:"enchantment"})),r.register("block_predicate",(0,a.ObjectNode)({block:(0,a.Opt)(t({validator:"resource",params:{pool:"block"}})),tag:(0,a.Opt)(t({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,a.Opt)(t({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,a.Opt)((0,a.MapNode)(t(),s,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),r.register("fluid_predicate",(0,a.ObjectNode)({fluid:(0,a.Opt)(t({validator:"resource",params:{pool:"fluid"}})),tag:(0,a.Opt)(t({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,a.Opt)((0,a.MapNode)(t(),s))},{context:"fluid"})),r.register("location_predicate",(0,a.ObjectNode)({position:(0,a.Opt)((0,a.ObjectNode)({x:(0,a.Opt)((0,S.Range)()),y:(0,a.Opt)((0,S.Range)()),z:(0,a.Opt)((0,S.Range)())})),biome:(0,a.Opt)(t({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:(0,a.Opt)(t({enum:o.get("worldgen/structure_feature").map(i=>i.slice(10))})),dimension:(0,a.Opt)(t({validator:"resource",params:{pool:"$dimension"}})),light:(0,a.Opt)((0,a.ObjectNode)({light:(0,a.Opt)((0,S.Range)({integer:!0,min:0,max:15}))})),smokey:(0,a.Opt)((0,a.BooleanNode)()),block:(0,a.Opt)(e("block_predicate")),fluid:(0,a.Opt)(e("fluid_predicate"))},{context:"location"})),r.register("statistic_predicate",(0,a.ObjectNode)({type:t({validator:"resource",params:{pool:"stat_type"}}),stat:t(),value:(0,S.Range)(),[a.Switch]:[{push:"type"}],[a.Case]:{"minecraft:mined":{stat:t({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:t({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:t({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:t({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:t({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:t({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:t({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:t({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:t({validator:"resource",params:{pool:"custom_stat"}})}}})),r.register("player_predicate",(0,a.ObjectNode)({gamemode:(0,a.Opt)(t({enum:"gamemode"})),level:(0,a.Opt)((0,S.Range)()),advancements:(0,a.Opt)((0,a.MapNode)(t({validator:"resource",params:{pool:"$advancement"}}),(0,a.ChoiceNode)([{type:"boolean",node:(0,a.BooleanNode)(),change:i=>!0},{type:"object",node:(0,a.MapNode)(t(),(0,a.BooleanNode)())}]))),recipes:(0,a.Opt)((0,a.MapNode)(t({validator:"resource",params:{pool:"$recipe"}}),(0,a.BooleanNode)())),stats:(0,a.Opt)((0,a.ListNode)(e("statistic_predicate")))},{context:"player"})),r.register("status_effect_predicate",(0,a.ObjectNode)({amplifier:(0,a.Opt)((0,S.Range)()),duration:(0,a.Opt)((0,S.Range)()),ambient:(0,a.Opt)((0,a.BooleanNode)()),visible:(0,a.Opt)((0,a.BooleanNode)())},{context:"status_effect"})),r.register("distance_predicate",(0,a.ObjectNode)({x:(0,a.Opt)((0,S.Range)()),y:(0,a.Opt)((0,S.Range)()),z:(0,a.Opt)((0,S.Range)()),absolute:(0,a.Opt)((0,S.Range)()),horizontal:(0,a.Opt)((0,S.Range)())},{context:"distance"})),r.register("entity_predicate",(0,a.ObjectNode)({type:(0,a.Opt)(t({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:(0,a.Opt)(t({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,a.Opt)(t({validator:"team"})),location:(0,a.Opt)(e("location_predicate")),distance:(0,a.Opt)(e("distance_predicate")),flags:(0,a.Opt)((0,a.ObjectNode)({is_on_fire:(0,a.Opt)((0,a.BooleanNode)()),is_sneaking:(0,a.Opt)((0,a.BooleanNode)()),is_sprinting:(0,a.Opt)((0,a.BooleanNode)()),is_swimming:(0,a.Opt)((0,a.BooleanNode)()),is_baby:(0,a.Opt)((0,a.BooleanNode)())})),equipment:(0,a.Opt)((0,a.MapNode)(t({enum:"slot"}),e("item_predicate"))),vehicle:(0,a.Opt)(e("entity_predicate")),targeted_entity:(0,a.Opt)(e("entity_predicate")),player:(0,a.Opt)(e("player_predicate")),fishing_hook:(0,a.Opt)((0,a.ObjectNode)({in_open_water:(0,a.Opt)((0,a.BooleanNode)())})),catType:(0,a.Opt)(t({enum:"cat_texture"})),effects:(0,a.Opt)((0,a.MapNode)(t({validator:"resource",params:{pool:"mob_effect"}}),e("status_effect_predicate")))},{context:"entity"})),r.register("damage_source_predicate",(0,a.ObjectNode)({is_explosion:(0,a.Opt)((0,a.BooleanNode)()),is_fire:(0,a.Opt)((0,a.BooleanNode)()),is_magic:(0,a.Opt)((0,a.BooleanNode)()),is_projectile:(0,a.Opt)((0,a.BooleanNode)()),is_lightning:(0,a.Opt)((0,a.BooleanNode)()),bypasses_armor:(0,a.Opt)((0,a.BooleanNode)()),bypasses_invulnerability:(0,a.Opt)((0,a.BooleanNode)()),bypasses_magic:(0,a.Opt)((0,a.BooleanNode)()),source_entity:(0,a.Opt)(e("entity_predicate")),direct_entity:(0,a.Opt)(e("entity_predicate"))},{context:"damage_source"})),r.register("damage_predicate",(0,a.ObjectNode)({dealt:(0,a.Opt)((0,S.Range)()),taken:(0,a.Opt)((0,S.Range)()),blocked:(0,a.Opt)((0,a.BooleanNode)()),source_entity:(0,a.Opt)(e("entity_predicate")),type:(0,a.Opt)(e("damage_source_predicate"))},{context:"damage"}))}ce.initPredicatesSchemas=tt;var se={};Object.defineProperty(se,"__esModule",{value:!0});se.initRecipeSchemas=void 0;const f=v;function rt(r,o){const e=f.Reference.bind(void 0,r),t=f.StringNode.bind(void 0,o);r.register("recipe",(0,f.Mod)((0,f.ObjectNode)({type:t({validator:"resource",params:{pool:"recipe_serializer"}}),[f.Switch]:[{push:"type"}],[f.Case]:{"minecraft:crafting_shaped":{group:(0,f.Opt)(t({enum:"recipe_group",additional:!0})),pattern:(0,f.ListNode)(t()),key:(0,f.MapNode)(t(),e("recipe_ingredient")),result:e("recipe_result")},"minecraft:crafting_shapeless":{group:(0,f.Opt)(t()),ingredients:(0,f.ListNode)(e("recipe_ingredient")),result:e("recipe_result")},"minecraft:smelting":{group:(0,f.Opt)(t()),ingredient:e("recipe_ingredient"),result:t({validator:"resource",params:{pool:"item"}}),experience:(0,f.Opt)((0,f.NumberNode)()),cookingtime:(0,f.Opt)((0,f.Mod)((0,f.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,f.Opt)(t()),ingredient:e("recipe_ingredient"),result:t({validator:"resource",params:{pool:"item"}}),experience:(0,f.Opt)((0,f.NumberNode)()),cookingtime:(0,f.Opt)((0,f.Mod)((0,f.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,f.Opt)(t()),ingredient:e("recipe_ingredient"),result:t({validator:"resource",params:{pool:"item"}}),experience:(0,f.Opt)((0,f.NumberNode)()),cookingtime:(0,f.Opt)((0,f.Mod)((0,f.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,f.Opt)(t()),ingredient:e("recipe_ingredient"),result:t({validator:"resource",params:{pool:"item"}}),experience:(0,f.Opt)((0,f.NumberNode)()),cookingtime:(0,f.Opt)((0,f.Mod)((0,f.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,f.Opt)(t()),ingredient:e("recipe_ingredient"),result:t({validator:"resource",params:{pool:"item"}}),count:(0,f.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,f.Opt)(t()),base:e("recipe_ingredient_object"),addition:e("recipe_ingredient_object"),result:e("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),r.register("recipe_ingredient",(0,f.Mod)((0,f.ChoiceNode)([{type:"object",node:e("recipe_ingredient_object"),change:s=>s[0]},{type:"list",node:(0,f.ListNode)(e("recipe_ingredient_object")),change:s=>[s]}]),{default:()=>({item:"minecraft:stone"})})),r.register("recipe_ingredient_object",(0,f.Mod)((0,f.ObjectNode)({item:(0,f.Opt)(t({validator:"resource",params:{pool:"item"}})),tag:(0,f.Opt)(t({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),r.register("recipe_result",(0,f.Mod)((0,f.ObjectNode)({item:t({validator:"resource",params:{pool:"item"}}),count:(0,f.Opt)((0,f.Mod)((0,f.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))}se.initRecipeSchemas=rt;var de={};Object.defineProperty(de,"__esModule",{value:!0});de.initTagsSchemas=void 0;const A=v;function ot(r,o){const e=A.StringNode.bind(void 0,o),t=s=>(0,A.Mod)((0,A.ObjectNode)({replace:(0,A.Opt)((0,A.BooleanNode)()),values:(0,A.ListNode)((0,A.ChoiceNode)([{type:"string",node:e({validator:"resource",params:{pool:s,allowTag:!0}}),change:i=>i.id},{type:"object",node:(0,A.ObjectNode)({id:e({validator:"resource",params:{pool:s,allowTag:!0,allowUnknown:!0}}),required:(0,A.BooleanNode)()}),change:i=>({id:i})}]))},{context:"tag"}),{default:()=>({values:[]})});r.register("block_tag",t("block")),r.register("entity_type_tag",t("entity_type")),r.register("fluid_tag",t("fluid")),r.register("function_tag",t("$function")),r.register("item_tag",t("item"))}de.initTagsSchemas=ot;var me={};Object.defineProperty(me,"__esModule",{value:!0});me.initTextComponentSchemas=void 0;const _=v;function at(r,o){const e=_.Reference.bind(void 0,r),t=_.StringNode.bind(void 0,o),s=m=>{var l;return m instanceof Array?s(m[0]):(l=m==null?void 0:m.text)!==null&&l!==void 0?l:typeof m=="object"?"":m==null?void 0:m.toString()};r.register("text_component",(0,_.Mod)((0,_.ChoiceNode)([{type:"object",node:e("text_component_object"),change:m=>m instanceof Array?typeof m[0]=="object"?m[0]:{text:s(m[0])}:typeof m=="object"?m:{text:s(m)}},{type:"list",node:e("text_component_list"),change:m=>[m]},{type:"string",priority:1,node:t(),change:s},{type:"number",node:(0,_.NumberNode)(),change:m=>{const l=parseFloat(s(m));return isFinite(l)?l:m?1:0}},{type:"boolean",node:(0,_.BooleanNode)(),change:m=>{const l=s(m);return l==="true"||l==="false"?l==="true":!!l}}],{context:"text_component"}),{default:()=>({text:""})}));const i={color:(0,_.Opt)(t()),font:(0,_.Opt)(t()),bold:(0,_.Opt)((0,_.BooleanNode)()),italic:(0,_.Opt)((0,_.BooleanNode)()),underlined:(0,_.Opt)((0,_.BooleanNode)()),strikethrough:(0,_.Opt)((0,_.BooleanNode)()),obfuscated:(0,_.Opt)((0,_.BooleanNode)()),insertion:(0,_.Opt)(t()),clickEvent:(0,_.Opt)((0,_.ObjectNode)({action:t({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[_.Switch]:[{push:"action"}],[_.Case]:{change_page:{value:t()},copy_to_clipboard:{value:t()},open_file:{value:t()},open_url:{value:t()},run_command:{value:t({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:t({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:(0,_.Opt)((0,_.ObjectNode)({action:t({enum:["show_text","show_item","show_entity"]}),[_.Switch]:[{push:"action"}],[_.Case]:{show_text:{value:(0,_.Opt)(e("text_component")),contents:(0,_.Opt)(e("text_component"))},show_item:{value:(0,_.Opt)(t({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:(0,_.Opt)((0,_.ObjectNode)({id:t({validator:"resource",params:{pool:"item"}}),count:(0,_.Opt)((0,_.NumberNode)({integer:!0})),tag:(0,_.Opt)(t({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:(0,_.Opt)((0,_.ObjectNode)({name:(0,_.Opt)(t()),type:(0,_.Opt)(t()),id:(0,_.Opt)(t())})),contents:(0,_.Opt)((0,_.Mod)((0,_.ObjectNode)({name:(0,_.Opt)(e("text_component")),type:t({validator:"resource",params:{pool:"entity_type"}}),id:t({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:(0,_.Opt)(e("text_component_list"))};r.register("text_component_object",(0,_.Mod)((0,_.ChoiceNode)([{type:"text",match:m=>typeof m=="object",change:m=>({text:""}),priority:-1,node:(0,_.ObjectNode)(k({text:t()},i))},{type:"translation",match:m=>(m==null?void 0:m.translate)!==void 0,change:m=>({translate:""}),node:(0,_.ObjectNode)(k({translate:t(),with:(0,_.Opt)(e("text_component_list"))},i))},{type:"score",match:m=>(m==null?void 0:m.score)!==void 0,change:m=>({score:{}}),node:(0,_.ObjectNode)(k({score:(0,_.ObjectNode)({name:t({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:t({validator:"objective"}),value:(0,_.Opt)(t())})},i))},{type:"selector",match:m=>(m==null?void 0:m.selector)!==void 0,change:m=>({selector:""}),node:(0,_.ObjectNode)(k({selector:t({validator:"entity",params:{amount:"multiple",type:"entities"}})},i))},{type:"keybind",match:m=>(m==null?void 0:m.keybind)!==void 0,change:m=>({keybind:""}),node:(0,_.ObjectNode)(k({keybind:t({enum:"keybind",additional:!0})},i))},{type:"nbt",match:m=>(m==null?void 0:m.nbt)!==void 0,change:m=>({nbt:""}),node:(0,_.ObjectNode)(k({nbt:t({validator:"nbt_path"}),block:(0,_.Opt)(t({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,_.Opt)(t({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,_.Opt)(t({validator:"resource",params:{pool:"$storage"}})),interpret:(0,_.Opt)((0,_.BooleanNode)())},i))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),r.register("text_component_list",(0,_.Mod)((0,_.ListNode)(e("text_component")),{default:()=>[{text:""}]}))}me.initTextComponentSchemas=at;var le={},_e={};Object.defineProperty(_e,"__esModule",{value:!0});_e.initBiomeSchemas=void 0;const p=v;function it(r,o){const e=p.StringNode.bind(void 0,o);r.register("biome",(0,p.Mod)((0,p.ObjectNode)({surface_builder:e({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:(0,p.NumberNode)(),scale:(0,p.NumberNode)(),temperature:(0,p.NumberNode)(),downfall:(0,p.NumberNode)(),precipitation:e({enum:["none","rain","snow"]}),temperature_modifier:(0,p.Opt)(e({enum:["none","frozen"]})),category:e({enum:"biome_category"}),player_spawn_friendly:(0,p.Opt)((0,p.BooleanNode)()),creature_spawn_probability:(0,p.Opt)((0,p.NumberNode)({min:0,max:1})),effects:(0,p.ObjectNode)({sky_color:(0,p.NumberNode)({color:!0}),fog_color:(0,p.NumberNode)({color:!0}),water_color:(0,p.NumberNode)({color:!0}),water_fog_color:(0,p.NumberNode)({color:!0}),grass_color:(0,p.Opt)((0,p.NumberNode)({color:!0})),foliage_color:(0,p.Opt)((0,p.NumberNode)({color:!0})),grass_color_modifier:(0,p.Opt)(e({enum:["none","dark_forest","swamp"]})),ambient_sound:(0,p.Opt)(e()),mood_sound:(0,p.Opt)((0,p.ObjectNode)({sound:e(),tick_delay:(0,p.NumberNode)({integer:!0}),block_search_extent:(0,p.NumberNode)({integer:!0}),offset:(0,p.NumberNode)()})),additions_sound:(0,p.Opt)((0,p.ObjectNode)({sound:e(),tick_chance:(0,p.NumberNode)({min:0,max:1})})),music:(0,p.Opt)((0,p.ObjectNode)({sound:e(),min_delay:(0,p.NumberNode)({integer:!0,min:0}),max_delay:(0,p.NumberNode)({integer:!0,min:0}),replace_current_music:(0,p.BooleanNode)()})),particle:(0,p.Opt)((0,p.ObjectNode)({options:(0,p.ObjectNode)({type:e()}),probability:(0,p.NumberNode)({min:0,max:1})}))}),starts:(0,p.ListNode)(e({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:(0,p.MapNode)(e({enum:["water_ambient","ambient","misc","water_creature","creature","monster"]}),(0,p.Mod)((0,p.ListNode)((0,p.ObjectNode)({type:e({validator:"resource",params:{pool:"entity_type"}}),weight:(0,p.NumberNode)({integer:!0}),minCount:(0,p.NumberNode)({integer:!0}),maxCount:(0,p.NumberNode)({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:(0,p.MapNode)(e({validator:"resource",params:{pool:"entity_type"}}),(0,p.Mod)((0,p.ObjectNode)({energy_budget:(0,p.NumberNode)(),charge:(0,p.NumberNode)()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:(0,p.MapNode)(e({enum:["air","liquid"]}),(0,p.Mod)((0,p.ListNode)(e({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:(0,p.ListNode)((0,p.Mod)((0,p.ListNode)(e({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}})}))}_e.initBiomeSchemas=it;var pe={};Object.defineProperty(pe,"__esModule",{value:!0});pe.initCarverSchemas=void 0;const H=v;function nt(r,o){const e=H.StringNode.bind(void 0,o);r.register("configured_carver",(0,H.Mod)((0,H.ObjectNode)({type:e({validator:"resource",params:{pool:"worldgen/carver"}}),config:(0,H.ObjectNode)({probability:(0,H.NumberNode)({min:0,max:1})})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))}pe.initCarverSchemas=nt;var ue={};Object.defineProperty(ue,"__esModule",{value:!0});ue.initDecoratorSchemas=void 0;const O=v,ct=$;function st(r,o){const e=O.Reference.bind(void 0,r),t=O.StringNode.bind(void 0,o),s={maximum:(0,O.NumberNode)({integer:!0}),bottom_offset:(0,O.NumberNode)({integer:!0}),top_offset:(0,O.NumberNode)({integer:!0})},i={chance:(0,O.NumberNode)({integer:!0,min:0})},m={count:(0,ct.UniformInt)({min:-10,max:128,maxSpread:128})};r.register("configured_decorator",(0,O.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/decorator"}}),config:(0,O.ObjectNode)({[O.Switch]:["pop",{push:"type"}],[O.Case]:{"minecraft:carving_mask":{step:t({enum:"generation_step"}),probability:(0,O.NumberNode)({min:0,max:1})},"minecraft:chance":i,"minecraft:count":m,"minecraft:count_extra":{count:(0,O.NumberNode)({integer:!0}),extra_count:(0,O.NumberNode)({integer:!0}),extra_chance:(0,O.NumberNode)({min:0,max:1})},"minecraft:count_multilayer":m,"minecraft:count_noise":{noise_level:(0,O.NumberNode)(),below_noise:(0,O.NumberNode)({integer:!0}),above_noise:(0,O.NumberNode)({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:(0,O.NumberNode)({integer:!0}),noise_factor:(0,O.NumberNode)(),noise_offset:(0,O.Opt)((0,O.NumberNode)())},"minecraft:decorated":{outer:e("configured_decorator"),inner:e("configured_decorator")},"minecraft:depth_average":{baseline:(0,O.NumberNode)({integer:!0}),spread:(0,O.NumberNode)({integer:!0})},"minecraft:fire":m,"minecraft:glowstone":m,"minecraft:lava_lake":i,"minecraft:range":s,"minecraft:range_biased":s,"minecraft:range_very_biased":s,"minecraft:water_lake":i}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))}ue.initDecoratorSchemas=st;var fe={},ge={};Object.defineProperty(ge,"__esModule",{value:!0});ge.initProcessorListSchemas=void 0;const y=v;function dt(r,o){const e=y.Reference.bind(void 0,r),t=y.StringNode.bind(void 0,o);r.register("processor_list",(0,y.Mod)((0,y.ObjectNode)({processors:(0,y.ListNode)(e("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"}}]}]})})),r.register("processor",(0,y.Mod)((0,y.ObjectNode)({processor_type:t({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[y.Switch]:[{push:"processor_type"}],[y.Case]:{"minecraft:block_age":{mossiness:(0,y.NumberNode)()},"minecraft:block_ignore":{blocks:(0,y.ListNode)(e("block_state"))},"minecraft:block_rot":{integrity:(0,y.NumberNode)({min:0,max:1})},"minecraft:gravity":{heightmap:t({enum:"heightmap_type"}),offset:(0,y.NumberNode)({integer:!0})},"minecraft:rule":{rules:(0,y.ListNode)(e("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"}}]})})),r.register("processor_rule",(0,y.Mod)((0,y.ObjectNode)({position_predicate:(0,y.Opt)(e("pos_rule_test")),location_predicate:e("rule_test"),input_predicate:e("rule_test"),output_state:e("block_state"),output_nbt:(0,y.Opt)(t({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 s={min_dist:(0,y.NumberNode)({min:0,max:255,integer:!0}),max_dist:(0,y.NumberNode)({min:0,max:255,integer:!0}),min_chance:(0,y.NumberNode)({min:0,max:1}),max_chance:(0,y.NumberNode)({min:0,max:1})};r.register("pos_rule_test",(0,y.ObjectNode)({predicate_type:t({validator:"resource",params:{pool:"pos_rule_test"}}),[y.Switch]:[{push:"predicate_type"}],[y.Case]:{"minecraft:axis_aligned_linear_pos":k({axis:t({enum:["x","y","z"]})},s),"minecraft:linear_pos":s}},{context:"pos_rule_test",disableSwitchContext:!0})),r.register("rule_test",(0,y.ObjectNode)({predicate_type:t({validator:"resource",params:{pool:"rule_test"}}),[y.Switch]:[{push:"predicate_type"}],[y.Case]:{"minecraft:block_match":{block:t({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:e("block_state")},"minecraft:random_block_match":{block:t({validator:"resource",params:{pool:"block"}}),probability:(0,y.NumberNode)({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:e("block_state"),probability:(0,y.NumberNode)({min:0,max:1})},"minecraft:tag_match":{tag:t({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))}ge.initProcessorListSchemas=dt;Object.defineProperty(fe,"__esModule",{value:!0});fe.initFeatureSchemas=void 0;const n=v,P=$;function mt(r,o){const e=n.Reference.bind(void 0,r),t=n.StringNode.bind(void 0,o),s={can_replace:(0,n.BooleanNode)(),project:(0,n.BooleanNode)(),need_water:(0,n.BooleanNode)(),xspread:(0,n.NumberNode)({integer:!0}),yspread:(0,n.NumberNode)({integer:!0}),zspread:(0,n.NumberNode)({integer:!0}),tries:(0,n.NumberNode)({integer:!0}),state_provider:e("block_state_provider"),block_placer:e("block_placer"),whitelist:(0,n.ListNode)(e("block_state")),blacklist:(0,n.ListNode)(e("block_state"))},i={state:e("block_state"),radius:(0,P.UniformInt)({min:0,max:4,maxSpread:4}),half_height:(0,n.NumberNode)({integer:!0,min:0,max:4}),targets:(0,n.ListNode)(e("block_state"))},m={cap_provider:e("block_state_provider"),stem_provider:e("block_state_provider"),foliage_radius:(0,n.Opt)((0,n.NumberNode)({integer:!0}))},l={state:e("block_state"),size:(0,n.NumberNode)({integer:!0,min:0,max:64}),target:e("rule_test")},N={count:(0,P.UniformInt)({min:-10,max:128,maxSpread:128})},w=(0,n.ChoiceNode)([{type:"string",node:t({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:e("configured_feature")}],{choiceContext:"feature"});r.register("configured_feature",(0,n.Mod)((0,n.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/feature"}}),config:(0,n.ObjectNode)({[n.Switch]:["pop",{push:"type"}],[n.Case]:{"minecraft:bamboo":{probability:(0,n.NumberNode)({min:0,max:1})},"minecraft:basalt_columns":{reach:(0,P.UniformInt)({min:0,max:2,maxSpread:1}),height:(0,P.UniformInt)({min:1,max:5,maxSpread:5})},"minecraft:block_pile":{state_provider:e("block_state_provider")},"minecraft:decorated":{decorator:e("configured_decorator"),feature:w},"minecraft:delta_feature":{contents:e("block_state"),rim:e("block_state"),size:(0,P.UniformInt)({min:0,max:8,maxSpread:8}),rim_size:(0,P.UniformInt)({min:0,max:8,maxSpread:8})},"minecraft:disk":i,"minecraft:emerald_ore":{state:e("block_state"),target:e("block_state")},"minecraft:end_gateway":{exact:(0,n.BooleanNode)(),exit:(0,n.Opt)(e("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:(0,n.Opt)((0,n.BooleanNode)()),crystal_beam_target:(0,n.Opt)(e("block_pos")),spikes:(0,n.ListNode)((0,n.ObjectNode)({centerX:(0,n.Opt)((0,n.NumberNode)({integer:!0})),centerZ:(0,n.Opt)((0,n.NumberNode)({integer:!0})),radius:(0,n.Opt)((0,n.NumberNode)({integer:!0})),height:(0,n.Opt)((0,n.NumberNode)({integer:!0})),guarded:(0,n.Opt)((0,n.BooleanNode)())}))},"minecraft:fill_layer":{state:e("block_state"),height:(0,n.NumberNode)({integer:!0,min:0,max:255})},"minecraft:flower":s,"minecraft:forest_rock":{state:e("block_state")},"minecraft:huge_brown_mushroom":m,"minecraft:huge_fungus":{hat_state:e("block_state"),decor_state:e("block_state"),stem_state:e("block_state"),valid_base_block:e("block_state"),planted:(0,n.Opt)((0,n.BooleanNode)())},"minecraft:huge_red_mushroom":m,"minecraft:ice_patch":i,"minecraft:iceberg":{state:e("block_state")},"minecraft:lake":{state:e("block_state")},"minecraft:nether_forest_vegetation":{state_provider:e("block_state_provider")},"minecraft:netherrack_replace_blobs":{state:e("block_state"),target:e("block_state"),radius:(0,P.UniformInt)()},"minecraft:no_bonemeal_flower":s,"minecraft:no_surface_ore":l,"minecraft:ore":l,"minecraft:random_patch":s,"minecraft:random_boolean_selector":{feature_false:w,feature_true:w},"minecraft:random_selector":{features:(0,n.ListNode)((0,n.ObjectNode)({chance:(0,n.NumberNode)({min:0,max:1}),feature:w})),default:w},"minecraft:sea_pickle":N,"minecraft:seagrass":{probability:(0,n.NumberNode)({min:0,max:1})},"minecraft:simple_block":{to_place:e("block_state"),place_on:(0,n.ListNode)(e("block_state")),place_in:(0,n.ListNode)(e("block_state")),place_under:(0,n.ListNode)(e("block_state"))},"minecraft:simple_random_selector":{features:(0,n.ListNode)(w)},"minecraft:spring_feature":{state:e("fluid_state"),rock_count:(0,n.NumberNode)({integer:!0}),hole_count:(0,n.NumberNode)({integer:!0}),requires_block_below:(0,n.BooleanNode)(),valid_blocks:(0,n.ListNode)(t({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{max_water_depth:(0,n.NumberNode)({integer:!0}),ignore_vines:(0,n.BooleanNode)(),heightmap:t({enum:"heightmap_type"}),minimum_size:e("feature_size"),trunk_provider:e("block_state_provider"),leaves_provider:e("block_state_provider"),trunk_placer:(0,n.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:(0,n.NumberNode)({integer:!0,min:0,max:32}),height_rand_a:(0,n.NumberNode)({integer:!0,min:0,max:24}),height_rand_b:(0,n.NumberNode)({integer:!0,min:0,max:24})},{context:"trunk_placer"}),foliage_placer:(0,n.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:(0,P.UniformInt)({min:0,max:8,maxSpread:8}),offset:(0,P.UniformInt)({min:0,max:8,maxSpread:8}),[n.Switch]:[{push:"type"}],[n.Case]:{"minecraft:blob_foliage_placer":{height:(0,n.NumberNode)({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:(0,n.NumberNode)({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:(0,n.NumberNode)({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:(0,n.NumberNode)({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:(0,P.UniformInt)({min:0,max:16,maxSpread:8})},"minecraft:pine_foliage_placer":{height:(0,P.UniformInt)({min:0,max:16,maxSpread:8})},"minecraft:spruce_foliage_placer":{trunk_height:(0,P.UniformInt)({min:0,max:16,maxSpread:8})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:(0,n.ListNode)((0,n.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[n.Switch]:[{push:"type"}],[n.Case]:{"minecraft:alter_ground":{provider:e("block_state_provider")},"minecraft:beehive":{probability:(0,n.NumberNode)({min:0,max:1})},"minecraft:cocoa":{probability:(0,n.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}}}}})})),r.register("feature_size",(0,n.Mod)((0,n.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:(0,n.Opt)((0,n.NumberNode)({min:0,max:80})),[n.Switch]:[{push:"type"}],[n.Case]:{"minecraft:two_layers_feature_size":{limit:(0,n.Opt)((0,n.NumberNode)({integer:!0,min:0,max:81})),lower_size:(0,n.Opt)((0,n.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,n.Opt)((0,n.NumberNode)({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:(0,n.Opt)((0,n.NumberNode)({integer:!0,min:0,max:80})),upper_limit:(0,n.Opt)((0,n.NumberNode)({integer:!0,min:0,max:80})),lower_size:(0,n.Opt)((0,n.NumberNode)({integer:!0,min:0,max:16})),middle_size:(0,n.Opt)((0,n.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,n.Opt)((0,n.NumberNode)({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),r.register("block_state_provider",(0,n.Mod)((0,n.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[n.Switch]:[{push:"type"}],[n.Case]:{"minecraft:rotated_block_provider":{state:e("block_state")},"minecraft:simple_state_provider":{state:e("block_state")},"minecraft:weighted_state_provider":{entries:(0,n.ListNode)((0,n.Mod)((0,n.ObjectNode)({weight:(0,n.NumberNode)({integer:!0,min:1}),data:e("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),r.register("block_placer",(0,n.Mod)((0,n.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[n.Switch]:[{push:"type"}],[n.Case]:{"minecraft:column_placer":{min_size:(0,n.NumberNode)({integer:!0}),extra_size:(0,n.NumberNode)({integer:!0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))}fe.initFeatureSchemas=mt;var be={};Object.defineProperty(be,"__esModule",{value:!0});be.initNoiseSettingsSchemas=void 0;const u=v,lt=$;function _t(r,o){const e=u.Reference.bind(void 0,r),t=u.StringNode.bind(void 0,o);r.register("noise_settings",(0,u.Mod)((0,u.ObjectNode)({name:(0,u.Mod)(t({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:s=>s.getArray().length>0}),bedrock_roof_position:(0,u.NumberNode)({integer:!0}),bedrock_floor_position:(0,u.NumberNode)({integer:!0}),sea_level:(0,u.NumberNode)({integer:!0}),disable_mob_generation:(0,u.BooleanNode)(),default_block:e("block_state"),default_fluid:e("block_state"),noise:(0,u.ObjectNode)({height:(0,u.NumberNode)({integer:!0}),density_factor:(0,u.NumberNode)(),density_offset:(0,u.NumberNode)(),size_horizontal:(0,u.NumberNode)({integer:!0}),size_vertical:(0,u.NumberNode)({integer:!0}),simplex_surface_noise:(0,u.BooleanNode)(),random_density_offset:(0,u.Opt)((0,u.BooleanNode)()),island_noise_override:(0,u.Opt)((0,u.BooleanNode)()),amplified:(0,u.Opt)((0,u.BooleanNode)()),sampling:(0,u.ObjectNode)({xz_scale:(0,u.NumberNode)(),y_scale:(0,u.NumberNode)(),xz_factor:(0,u.NumberNode)(),y_factor:(0,u.NumberNode)()}),bottom_slide:(0,u.ObjectNode)({target:(0,u.NumberNode)({integer:!0}),size:(0,u.NumberNode)({integer:!0}),offset:(0,u.NumberNode)({integer:!0})}),top_slide:(0,u.ObjectNode)({target:(0,u.NumberNode)({integer:!0}),size:(0,u.NumberNode)({integer:!0}),offset:(0,u.NumberNode)({integer:!0})})}),structures:e("generator_structures")},{context:"noise_settings"}),{default:()=>lt.DefaultNoiseSettings})),r.register("generator_structures",(0,u.ObjectNode)({stronghold:(0,u.Opt)((0,u.ObjectNode)({distance:(0,u.NumberNode)({integer:!0,min:0,max:1023}),spread:(0,u.NumberNode)({integer:!0,min:0,max:1023}),count:(0,u.NumberNode)({integer:!0,min:1,max:4095})})),structures:(0,u.MapNode)(t({validator:"resource",params:{pool:"worldgen/structure_feature"}}),(0,u.Mod)((0,u.ObjectNode)({spacing:(0,u.NumberNode)({integer:!0,min:0,max:4096}),separation:(0,u.Mod)((0,u.NumberNode)({integer:!0,min:0,max:4096}),s=>({validate:(i,m,l,N)=>(i.pop().push("spacing").get()<=m&&l.add(i,"error.separation_smaller_spacing"),s.validate(i,m,l,N))})),salt:(0,u.NumberNode)({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),r.register("generator_layer",(0,u.Mod)((0,u.ObjectNode)({block:t({validator:"resource",params:{pool:"block"}}),height:(0,u.NumberNode)({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))}be.initNoiseSettingsSchemas=_t;var Ne={};Object.defineProperty(Ne,"__esModule",{value:!0});Ne.initStructureFeatureSchemas=void 0;const R=v;function pt(r,o){const e=R.StringNode.bind(void 0,o),t={start_pool:e({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:(0,R.NumberNode)({integer:!0})};r.register("configured_structure_feature",(0,R.Mod)((0,R.ObjectNode)({type:e({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:(0,R.ObjectNode)({[R.Switch]:["pop",{push:"type"}],[R.Case]:{"minecraft:bastion_remnant":t,"minecraft:buried_treasure":{probability:(0,R.NumberNode)({min:0,max:1})},"minecraft:mineshaft":{type:e({enum:["normal","mesa"]}),probability:(0,R.NumberNode)({min:0,max:1})},"minecraft:ocean_ruin":{biome_temp:e({enum:["cold","warm"]}),large_probability:(0,R.NumberNode)({min:0,max:1}),cluster_probability:(0,R.NumberNode)({min:0,max:1})},"minecraft:pillager_outpost":t,"minecraft:ruined_portal":{portal_type:e({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:(0,R.Opt)((0,R.BooleanNode)())},"minecraft:village":t}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))}Ne.initStructureFeatureSchemas=pt;var ye={};Object.defineProperty(ye,"__esModule",{value:!0});ye.initSurfaceBuilderSchemas=void 0;const K=v;function ut(r,o){const e=K.StringNode.bind(void 0,o),t=K.Reference.bind(void 0,r);r.register("configured_surface_builder",(0,K.Mod)((0,K.ObjectNode)({type:e({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:(0,K.ObjectNode)({top_material:t("block_state"),under_material:t("block_state"),underwater_material:t("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"}}})}))}ye.initSurfaceBuilderSchemas=ut;var he={};Object.defineProperty(he,"__esModule",{value:!0});he.initTemplatePoolSchemas=void 0;const M=v;function ft(r,o){const e=M.Reference.bind(void 0,r),t=M.StringNode.bind(void 0,o),s=(0,M.ChoiceNode)([{type:"string",node:t({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:i=>{}},{type:"object",node:e("processor_list"),change:i=>({processors:[{processor_type:"minecraft:nop"}]})}]);r.register("template_pool",(0,M.Mod)((0,M.ObjectNode)({name:t(),fallback:t(),elements:(0,M.ListNode)(e("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"}}]})})),r.register("template_weighted_element",(0,M.Mod)((0,M.ObjectNode)({weight:(0,M.NumberNode)({integer:!0,min:1}),element:e("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),r.register("template_element",(0,M.Mod)((0,M.ObjectNode)({element_type:t({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:t({enum:["rigid","terrain_matching"]}),[M.Switch]:[{push:"element_type"}],[M.Case]:{"minecraft:feature_pool_element":{feature:t({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},"minecraft:legacy_single_pool_element":{location:t({validator:"resource",params:{pool:"$structure"}}),processors:s},"minecraft:list_pool_element":{elements:(0,M.ListNode)(e("template_element"))},"minecraft:single_pool_element":{location:t({validator:"resource",params:{pool:"$structure"}}),processors:s}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))}he.initTemplatePoolSchemas=ft;Object.defineProperty(le,"__esModule",{value:!0});le.initWorldgenSchemas=void 0;const gt=_e,bt=pe,Nt=ue,yt=fe,ht=be,vt=ge,Ot=Ne,kt=ye,wt=he;function xt(r,o){(0,gt.initBiomeSchemas)(r,o),(0,bt.initCarverSchemas)(r,o),(0,Nt.initDecoratorSchemas)(r,o),(0,yt.initFeatureSchemas)(r,o),(0,ht.initNoiseSettingsSchemas)(r,o),(0,vt.initProcessorListSchemas)(r,o),(0,Ot.initStructureFeatureSchemas)(r,o),(0,kt.initSurfaceBuilderSchemas)(r,o),(0,wt.initTemplatePoolSchemas)(r,o)}le.initWorldgenSchemas=xt;var ve={};Object.defineProperty(ve,"__esModule",{value:!0});ve.initWorldSettingsSchemas=void 0;const F=v;function St(r,o){const e=F.Reference.bind(void 0,r),t=F.StringNode.bind(void 0,o);r.register("world_settings",(0,F.Mod)((0,F.ObjectNode)({generate_features:(0,F.BooleanNode)(),bonus_chest:(0,F.BooleanNode)(),seed:(0,F.NumberNode)({integer:!0}),dimensions:(0,F.MapNode)(t({validator:"resource",params:{pool:"$dimension"}}),e("dimension"))},{context:"world_settings"}),{default:()=>{const s=Math.floor(Math.random()*4294967296)-2147483648;return{generate_features:!0,bonus_chest:!1,seed:s,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:s,biome_source:{type:"minecraft:vanilla_layered",seed:s},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:s,biome_source:{type:"minecraft:multi_noise",seed:s,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:s,biome_source:{type:"minecraft:the_end",seed:s},settings:"minecraft:end"}}}}}}))}ve.initWorldSettingsSchemas=St;Object.defineProperty(Y,"__esModule",{value:!0});Y.initSchemas=void 0;const jt=J,Mt=Q,Ct=$,Lt=re,Rt=oe,Bt=ae,Pt=ie,zt=ne,$t=ce,Tt=se,Dt=de,At=me,qt=le,Ft=ve;function It(r,o){(0,Ct.initCommonSchemas)(r,o),(0,jt.initAdvancementSchemas)(r,o),(0,Mt.initAssetsSchemas)(r,o),(0,Lt.initConditionSchemas)(r,o),(0,Bt.initDimensionTypeSchemas)(r,o),(0,Rt.initDimensionSchemas)(r,o),(0,Pt.initLootTableSchemas)(r,o),(0,zt.initPackMcmetaSchemas)(r,o),(0,$t.initPredicatesSchemas)(r,o),(0,Tt.initRecipeSchemas)(r,o),(0,Dt.initTagsSchemas)(r,o),(0,At.initTextComponentSchemas)(r,o),(0,qt.initWorldgenSchemas)(r,o),(0,Ft.initWorldSettingsSchemas)(r,o)}Y.initSchemas=It;var Et=W&&W.__createBinding||(Object.create?function(r,o,e,t){t===void 0&&(t=e);var s=Object.getOwnPropertyDescriptor(o,e);(!s||("get"in s?!o.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return o[e]}}),Object.defineProperty(r,t,s)}:function(r,o,e,t){t===void 0&&(t=e),r[t]=o[e]}),Ut=W&&W.__setModuleDefault||(Object.create?function(r,o){Object.defineProperty(r,"default",{enumerable:!0,value:o})}:function(r,o){r.default=o}),Wt=W&&W.__importStar||function(r){if(r&&r.__esModule)return r;var o={};if(r!=null)for(var e in r)e!=="default"&&Object.prototype.hasOwnProperty.call(r,e)&&Et(o,r,e);return Ut(o,r),o};Object.defineProperty(q,"__esModule",{value:!0});var Le=q.getSchemas=Pe=q.getCollections=Be=q.lootContext=void 0;const Re=v,Gt=Z,Vt=Y;var Be=q.lootContext=Wt(B);function Ht(){const r=new Re.CollectionRegistry;return(0,Gt.initCollections)(r),r}var Pe=q.getCollections=Ht;function Kt(r){const o=new Re.SchemaRegistry;return(0,Vt.initSchemas)(o,r),o}Le=q.getSchemas=Kt;var Yt=Fe({__proto__:null,get getSchemas(){return Le},get getCollections(){return Pe},get lootContext(){return Be},default:q},[q]);export{Yt as i}; -//# sourceMappingURL=index.a00dac78.js.map +var $e=Object.defineProperty,Te=Object.defineProperties;var De=Object.getOwnPropertyDescriptors;var je=Object.getOwnPropertySymbols;var Ae=Object.prototype.hasOwnProperty,qe=Object.prototype.propertyIsEnumerable;var Me=(r,o,e)=>o in r?$e(r,o,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[o]=e,k=(r,o)=>{for(var e in o||(o={}))Ae.call(o,e)&&Me(r,e,o[e]);if(je)for(var e of je(o))qe.call(o,e)&&Me(r,e,o[e]);return r},xe=(r,o)=>Te(r,De(o));import{l as v,c as W}from"./index.18869b2a.js";function Fe(r,o){return o.forEach(function(e){e&&typeof e!="string"&&!Array.isArray(e)&&Object.keys(e).forEach(function(t){if(t!=="default"&&!(t in r)){var s=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,s.get?s:{enumerable:!0,get:function(){return e[t]}})}})}),Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var q={},Z={};Object.defineProperty(Z,"__esModule",{value:!0});Z.initCollections=void 0;function Ie(r){r.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"]),r.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),r.register("dimension_type",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),r.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"]),r.register("slot",["mainhand","offhand","head","chest","legs","feet"]),r.register("gamemode",["survival","creative","adventure","spectator"]),r.register("worldgen/noise_settings",["minecraft:overworld","minecraft:nether","minecraft:end","minecraft:amplified","minecraft:caves","minecraft:floating_islands"]),r.register("entity_source",["this","direct_killer","killer","killer_player"]),r.register("copy_source",["block_entity","this","killer","killer_player"]),r.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),r.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"]),r.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"]),r.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"]),r.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"]),r.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"]),r.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"]),r.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end"]),r.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),r.register("generation_step",["air","liquid"]),r.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"]),r.register("cat_texture",["textures/entity/cat/tabby.png","textures/entity/cat/black.png","textures/entity/cat/red.png","textures/entity/cat/siamese.png","textures/entity/cat/british_shorthair.png","textures/entity/cat/calico.png","textures/entity/cat/persian.png","textures/entity/cat/ragdoll.png","textures/entity/cat/white.png","textures/entity/cat/jellie.png","textures/entity/cat/all_black.png"])}Z.initCollections=Ie;var Y={},J={},$={};(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.initCommonSchemas=r.UniformInt=r.Range=r.NoiseSettingsPresets=r.DefaultNoiseSettings=r.DimensionTypePresets=r.DefaultDimensionType=r.ConditionCases=void 0;const o=v;r.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"},r.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"}}};function e(t,s){const i=o.StringNode.bind(void 0,s),m=o.Reference.bind(void 0,t);t.register("block_state",(0,o.Mod)((0,o.ObjectNode)({Name:i({validator:"resource",params:{pool:"block"}}),Properties:(0,o.Opt)((0,o.MapNode)(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),t.register("fluid_state",(0,o.Mod)((0,o.ObjectNode)({Name:i({validator:"resource",params:{pool:"fluid"}}),Properties:(0,o.Opt)((0,o.MapNode)(i(),i()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),t.register("block_pos",(0,o.Mod)((0,o.ListNode)((0,o.NumberNode)({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]})),r.Range=l=>(0,o.ChoiceNode)([...l!=null&&l.forceRange?[]:[{type:"number",node:(0,o.NumberNode)(l),change:N=>{var w,T,U;return N===void 0?0:(U=(T=(w=N.min)!==null&&w!==void 0?w:N.max)!==null&&T!==void 0?T:N.n)!==null&&U!==void 0?U:0}}],{type:"object",priority:-1,node:(0,o.ObjectNode)({min:l!=null&&l.bounds?(0,o.NumberNode)(l):(0,o.Opt)((0,o.NumberNode)(l)),max:l!=null&&l.bounds?(0,o.NumberNode)(l):(0,o.Opt)((0,o.NumberNode)(l))},{context:"range"}),change:N=>({min:typeof N=="number"?N:N===void 0?1:N.n,max:typeof N=="number"?N:N===void 0?1:N.n})},...l!=null&&l.allowBinomial?[{type:"binomial",node:(0,o.ObjectNode)({type:i({enum:["minecraft:binomial"]}),n:(0,o.NumberNode)({integer:!0,min:0}),p:(0,o.NumberNode)({min:0,max:1})},{context:"range"}),match:N=>N!==void 0&&N.type==="minecraft:binomial",change:N=>{var w,T;return{type:"minecraft:binomial",n:typeof N=="number"?N:N===void 0?1:(T=(w=N.min)!==null&&w!==void 0?w:N.max)!==null&&T!==void 0?T:1,p:.5}}}]:[]],{choiceContext:"range"}),r.UniformInt=l=>(0,o.ChoiceNode)([{type:"number",node:(0,o.NumberNode)({integer:!0,min:l==null?void 0:l.min,max:l==null?void 0:l.max}),change:N=>N.base},{type:"object",node:(0,o.ObjectNode)({base:(0,o.NumberNode)({integer:!0,min:l==null?void 0:l.min,max:l==null?void 0:l.max}),spread:(0,o.NumberNode)({integer:!0,min:0,max:l==null?void 0:l.maxSpread})}),change:N=>({base:N,spread:0})}],{context:"uniform_int"}),r.ConditionCases={"minecraft:alternative":{terms:(0,o.ListNode)(m("condition"))},"minecraft:block_state_property":{block:i({validator:"resource",params:{pool:"block"}}),properties:(0,o.MapNode)(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:m("damage_source_predicate")},"minecraft:entity_properties":{entity:i({enum:"entity_source"}),predicate:m("entity_predicate")},"minecraft:entity_scores":{entity:i({enum:"entity_source"}),scores:(0,o.MapNode)(i({validator:"objective"}),(0,r.Range)({forceRange:!0}))},"minecraft:inverted":{term:m("condition")},"minecraft:killed_by_player":{inverse:(0,o.Opt)((0,o.BooleanNode)())},"minecraft:location_check":{offsetX:(0,o.Opt)((0,o.NumberNode)({integer:!0})),offsetY:(0,o.Opt)((0,o.NumberNode)({integer:!0})),offsetZ:(0,o.Opt)((0,o.NumberNode)({integer:!0})),predicate:m("location_predicate")},"minecraft:match_tool":{predicate:m("item_predicate")},"minecraft:random_chance":{chance:(0,o.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,o.NumberNode)({min:0,max:1}),looting_multiplier:(0,o.NumberNode)()},"minecraft:reference":{name:i({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:i({validator:"resource",params:{pool:"enchantment"}}),chances:(0,o.ListNode)((0,o.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:(0,r.Range)(),period:(0,o.Opt)((0,o.NumberNode)())},"minecraft:weather_check":{raining:(0,o.Opt)((0,o.BooleanNode)()),thundering:(0,o.Opt)((0,o.BooleanNode)())}},r.DimensionTypePresets=l=>(0,o.ObjectOrPreset)(i({validator:"resource",params:{pool:"$dimension_type"}}),l,{"minecraft:overworld":r.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"}}),r.NoiseSettingsPresets=l=>(0,o.ObjectOrPreset)(i({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),l,{"minecraft:overworld":r.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"}}}})}r.initCommonSchemas=e})($);Object.defineProperty(J,"__esModule",{value:!0});J.initAdvancementSchemas=void 0;const c=v,L=$;function Ee(r,o){const e=c.Reference.bind(void 0,r),t=c.StringNode.bind(void 0,o),s=(0,c.ChoiceNode)([{type:"object",node:(0,c.Opt)(e("entity_predicate")),change:i=>{var m,l;return(l=(m=i[0])===null||m===void 0?void 0:m.predicate)!==null&&l!==void 0?l:{}}},{type:"list",node:(0,c.ListNode)(e("condition")),change:i=>[{condition:"minecraft:entity_properties",predicate:i}]}],{context:"conditions"});r.register("advancement",(0,c.Mod)((0,c.ObjectNode)({display:(0,c.Opt)((0,c.Mod)((0,c.ObjectNode)({icon:(0,c.ObjectNode)({item:t({validator:"resource",params:{pool:"item"}}),nbt:(0,c.Opt)(t({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:e("text_component"),description:e("text_component"),background:(0,c.Opt)(t()),frame:(0,c.Opt)(t({enum:["task","challenge","goal"]})),show_toast:(0,c.Opt)((0,c.BooleanNode)()),announce_to_chat:(0,c.Opt)((0,c.BooleanNode)()),hidden:(0,c.Opt)((0,c.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,c.Opt)(t({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,c.MapNode)(t(),e("advancement_criteria")),requirements:(0,c.Opt)((0,c.ListNode)((0,c.ListNode)(t()))),rewards:(0,c.Opt)((0,c.ObjectNode)({function:(0,c.Opt)(t({validator:"resource",params:{pool:"$function"}})),loot:(0,c.Opt)((0,c.ListNode)(t({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,c.Opt)((0,c.ListNode)(t({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,c.Opt)((0,c.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),r.register("advancement_criteria",(0,c.ObjectNode)({trigger:t({validator:"resource",params:{pool:o.get("advancement_trigger")}}),conditions:(0,c.Opt)((0,c.ObjectNode)({player:(0,c.Mod)(s,{enabled:i=>i.pop().push("trigger").get()!=="minecraft:impossible"}),[c.Switch]:["pop",{push:"trigger"}],[c.Case]:{"minecraft:bee_nest_destroyed":{block:(0,c.Opt)(t({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,c.Opt)((0,c.NumberNode)({integer:!0})),item:(0,c.Opt)(e("item_predicate"))},"minecraft:bred_animals":{parent:s,partner:s,child:s},"minecraft:brewed_potion":{potion:(0,c.Opt)(t({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,c.Opt)(t({validator:"resource",params:{pool:"$dimension"}})),to:(0,c.Opt)(t({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:(0,c.Opt)((0,c.ListNode)(s))},"minecraft:construct_beacon":{level:(0,c.Opt)((0,L.Range)())},"minecraft:consume_item":{item:(0,c.Opt)(e("item_predicate"))},"minecraft:cured_zombie_villager":{villager:s,zombie:s},"minecraft:effects_changed":{effects:(0,c.Opt)((0,c.MapNode)(t({validator:"resource",params:{pool:"mob_effect"}}),e("status_effect_predicate")))},"minecraft:enter_block":{block:(0,c.Opt)(t({validator:"resource",params:{pool:"block"}})),state:(0,c.Opt)((0,c.MapNode)(t(),t(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:(0,c.Opt)((0,L.Range)()),item:(0,c.Opt)(e("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,c.Opt)(e("damage_predicate"))},"minecraft:entity_killed_player":{entity:s,killing_blow:(0,c.Opt)(e("damage_source_predicate"))},"minecraft:filled_bucket":{item:(0,c.Opt)(e("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:s,item:(0,c.Opt)(e("item_predicate"))},"minecraft:hero_of_the_village":{location:(0,c.Opt)(e("location_predicate"))},"minecraft:inventory_changed":{slots:(0,c.Opt)((0,c.ObjectNode)({empty:(0,c.Opt)((0,L.Range)()),occupied:(0,c.Opt)((0,L.Range)()),full:(0,c.Opt)((0,L.Range)())})),items:(0,c.Opt)((0,c.ListNode)(e("item_predicate")))},"minecraft:item_durability_changed":{delta:(0,c.Opt)((0,L.Range)()),durability:(0,c.Opt)((0,L.Range)()),item:(0,c.Opt)(e("item_predicate"))},"minecraft:item_used_on_block":{item:(0,c.Opt)(e("item_predicate")),location:(0,c.Opt)(e("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:(0,c.Opt)((0,L.Range)()),victims:(0,c.Opt)((0,c.ListNode)(s))},"minecraft:levitation":{distance:(0,c.Opt)((0,L.Range)()),duration:(0,c.Opt)((0,L.Range)())},"minecraft:location":{location:(0,c.Opt)(e("location_predicate"))},"minecraft:nether_travel":{distance:(0,c.Opt)((0,L.Range)()),entered:(0,c.Opt)(e("location_predicate")),exited:(0,c.Opt)(e("location_predicate"))},"minecraft:placed_block":{block:(0,c.Opt)(t({validator:"resource",params:{pool:"block"}})),state:(0,c.Opt)((0,c.MapNode)(t(),t(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,c.Opt)(e("item_predicate")),location:(0,c.Opt)(e("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:t({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:(0,c.Opt)(e("damage_predicate")),entity:s},"minecraft:player_interacted_with_entity":{item:(0,c.Opt)(e("item_predicate")),entity:s},"minecraft:player_killed_entity":{entity:s,killing_blow:(0,c.Opt)(e("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:t({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:(0,c.Opt)(e("location_predicate"))},"minecraft:slide_down_block":{block:(0,c.Opt)(t({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,c.Opt)(e("item_predicate"))},"minecraft:summoned_entity":{entity:s},"minecraft:tame_animal":{entity:s},"minecraft:target_hit":{projectile:s,shooter:s,signal_strength:(0,c.Opt)((0,L.Range)({integer:!0}))},"minecraft:thrown_item_picked_up_by_entity":{entity:s,item:(0,c.Opt)(e("item_predicate"))},"minecraft:used_ender_eye":{distance:(0,c.Opt)((0,L.Range)())},"minecraft:used_totem":{item:(0,c.Opt)(e("item_predicate"))},"minecraft:villager_trade":{villager:s,item:(0,c.Opt)(e("item_predicate"))},"minecraft:voluntary_exile":{location:e("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))}J.initAdvancementSchemas=Ee;var Q={},ee={};Object.defineProperty(ee,"__esModule",{value:!0});ee.initModelSchemas=void 0;const b=v;function Ue(r,o){b.Reference.bind(void 0,r);const e=b.StringNode.bind(void 0,o),t=(i,m,l)=>(0,b.ListNode)((0,b.NumberNode)({min:m,max:l}),{minLength:i,maxLength:i}),s=(0,b.ChoiceNode)([{type:"alias",match:i=>typeof i=="string"&&i.startsWith("#"),node:e(),change:i=>typeof i=="string"?`#${i}`:"#0"},{type:"reference",match:i=>typeof i=="string",node:e({validator:"resource",params:{pool:"$texture"}}),change:i=>typeof i=="string"?i.replace(/^#/,""):""}],{choiceContext:"texture"});r.register("model",(0,b.Mod)((0,b.ObjectNode)({parent:(0,b.Opt)(e({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,b.Opt)((0,b.BooleanNode)()),gui_light:(0,b.Opt)(e({enum:"gui_light"})),textures:(0,b.Opt)((0,b.MapNode)(e(),s)),elements:(0,b.Opt)((0,b.ListNode)((0,b.ObjectNode)({from:t(3,-16,32),to:t(3,-16,32),rotation:(0,b.Opt)((0,b.ObjectNode)({origin:t(3),axis:e({enum:"axis"}),angle:(0,b.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,b.Opt)((0,b.BooleanNode)())})),shade:(0,b.Opt)((0,b.BooleanNode)()),faces:(0,b.MapNode)(e({enum:"direction"}),(0,b.ObjectNode)({texture:s,uv:(0,b.Opt)(t(4)),cullface:(0,b.Opt)(e({enum:"direction"})),rotation:(0,b.Opt)((0,b.NumberNode)({integer:!0})),tintindex:(0,b.Opt)((0,b.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,b.Opt)((0,b.MapNode)(e({enum:"display_position"}),(0,b.ObjectNode)({rotation:t(3),translation:t(3,-80,80),scale:t(3,-4,4)},{context:"item_transform"}))),overrides:(0,b.Opt)((0,b.ListNode)((0,b.ObjectNode)({predicate:(0,b.MapNode)(e({enum:"item_model_predicates"}),(0,b.NumberNode)()),model:e({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))}ee.initModelSchemas=Ue;var te={};Object.defineProperty(te,"__esModule",{value:!0});te.initBlockDefinitionSchemas=void 0;const h=v;function We(r,o){const e=h.Reference.bind(void 0,r),t=h.StringNode.bind(void 0,o);r.register("block_definition",(0,h.Mod)((0,h.ChoiceNode)([{type:"variants",match:i=>i.variants!==void 0,node:(0,h.ObjectNode)({variants:(0,h.MapNode)(t(),e("model_variant"))}),change:i=>({variants:{"":{}}})},{type:"multipart",match:i=>i.multipart!==void 0,node:(0,h.ObjectNode)({multipart:(0,h.ListNode)((0,h.ObjectNode)({when:(0,h.Opt)(e("multipart_condition")),apply:e("model_variant")}))}),change:i=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const s={model:t({validator:"resource",params:{pool:"$model"}}),x:(0,h.Opt)((0,h.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,h.Opt)((0,h.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,h.Opt)((0,h.BooleanNode)())};r.register("model_variant",(0,h.ChoiceNode)([{type:"object",node:(0,h.ObjectNode)(s),change:i=>Array.isArray(i)&&i.length>0?i[0]:{}},{type:"list",node:(0,h.ListNode)((0,h.ObjectNode)(xe(k({},s),{weight:(0,h.Opt)((0,h.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:i=>[k({weight:1},i)]}],{context:"model_variant"})),r.register("multipart_condition",(0,h.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,h.MapNode)(t(),t()),change:i=>typeof i=="object"&&Array.isArray(i==null?void 0:i.OR)&&i.OR.length>0?i.OR[0]:{}},{type:"or",match:i=>typeof i=="object"&&(i==null?void 0:i.OR)!==void 0,node:(0,h.ObjectNode)({OR:(0,h.ListNode)(e("multipart_condition"))}),change:i=>({OR:[i!=null?i:{}]})}],{context:"multipart_condition"}))}te.initBlockDefinitionSchemas=We;Object.defineProperty(Q,"__esModule",{value:!0});Q.initAssetsSchemas=void 0;const Ge=ee,Ve=te;function He(r,o){(0,Ve.initBlockDefinitionSchemas)(r,o),(0,Ge.initModelSchemas)(r,o)}Q.initAssetsSchemas=He;var re={};Object.defineProperty(re,"__esModule",{value:!0});re.initConditionSchemas=void 0;const I=v,Ke=$;function Xe(r,o){const e=I.Reference.bind(void 0,r),t=I.StringNode.bind(void 0,o);r.register("predicate",(0,I.ObjectOrList)(e("condition"),{choiceContext:"condition"})),r.register("condition",(0,I.Mod)((0,I.ObjectNode)({condition:t({validator:"resource",params:{pool:"loot_condition_type"}}),[I.Switch]:[{push:"condition"}],[I.Case]:Ke.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))}re.initConditionSchemas=Xe;var oe={};Object.defineProperty(oe,"__esModule",{value:!0});oe.initDimensionSchemas=void 0;const g=v,Ce=$;function Ze(r,o){const e=g.Reference.bind(void 0,r),t=g.StringNode.bind(void 0,o),s=i=>(0,g.Mod)(i,{enabled:m=>m.push("preset").get()===void 0});r.register("dimension",(0,g.Mod)((0,g.ObjectNode)({type:(0,Ce.DimensionTypePresets)(e("dimension_type")),generator:(0,g.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[g.Switch]:[{push:"type"}],[g.Case]:{"minecraft:noise":{seed:(0,g.NumberNode)({integer:!0}),settings:(0,Ce.NoiseSettingsPresets)(e("noise_settings")),biome_source:(0,g.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/biome_source"}}),[g.Switch]:[{push:"type"}],[g.Case]:{"minecraft:fixed":{biome:t({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:(0,g.NumberNode)({integer:!0}),preset:(0,g.Opt)(t({enum:["nether"]})),altitude_noise:s(e("generator_biome_noise")),temperature_noise:s(e("generator_biome_noise")),humidity_noise:s(e("generator_biome_noise")),weirdness_noise:s(e("generator_biome_noise")),biomes:s((0,g.Mod)((0,g.ListNode)(e("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:(0,g.Opt)((0,g.NumberNode)({integer:!0,min:0,max:62})),biomes:(0,g.ListNode)(t({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:(0,g.NumberNode)({integer:!0})},"minecraft:vanilla_layered":{seed:(0,g.NumberNode)({integer:!0}),large_biomes:(0,g.Opt)((0,g.BooleanNode)()),legacy_biome_init_layer:(0,g.Opt)((0,g.BooleanNode)())}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:(0,g.ObjectNode)({biome:(0,g.Opt)(t({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:(0,g.Opt)((0,g.BooleanNode)()),features:(0,g.Opt)((0,g.BooleanNode)()),layers:(0,g.ListNode)(e("generator_layer")),structures:e("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const i=Math.floor(Math.random()*4294967296)-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:i,biome_source:{type:"minecraft:fixed",seed:i,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}})),r.register("generator_biome",(0,g.Mod)((0,g.ObjectNode)({biome:t({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:(0,g.ObjectNode)({altitude:(0,g.NumberNode)(),temperature:(0,g.NumberNode)(),humidity:(0,g.NumberNode)(),weirdness:(0,g.NumberNode)(),offset:(0,g.NumberNode)()})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),r.register("generator_biome_noise",(0,g.Mod)((0,g.ObjectNode)({firstOctave:(0,g.NumberNode)({integer:!0}),amplitudes:(0,g.ListNode)((0,g.NumberNode)())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))}oe.initDimensionSchemas=Ze;var ae={};Object.defineProperty(ae,"__esModule",{value:!0});ae.initDimensionTypeSchemas=void 0;const x=v,Ye=$;function Je(r,o){const e=x.StringNode.bind(void 0,o);r.register("dimension_type",(0,x.Mod)((0,x.ObjectNode)({name:(0,x.Mod)(e({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:t=>t.getArray().length>0}),ultrawarm:(0,x.BooleanNode)(),natural:(0,x.BooleanNode)(),piglin_safe:(0,x.BooleanNode)(),respawn_anchor_works:(0,x.BooleanNode)(),bed_works:(0,x.BooleanNode)(),has_raids:(0,x.BooleanNode)(),has_skylight:(0,x.BooleanNode)(),has_ceiling:(0,x.BooleanNode)(),coordinate_scale:(0,x.NumberNode)({min:1e-5,max:3e7}),ambient_light:(0,x.NumberNode)(),fixed_time:(0,x.Opt)((0,x.NumberNode)({integer:!0})),logical_height:(0,x.NumberNode)({integer:!0,min:0,max:256}),effects:(0,x.Opt)(e({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:e({validator:"resource",params:{pool:"$tag/block"}})},{context:"dimension_type"}),{default:()=>Ye.DefaultDimensionType}))}ae.initDimensionTypeSchemas=Je;var ie={},B={};Object.defineProperty(B,"__esModule",{value:!0});B.LootFunctions=B.LootConditions=B.LootCopySources=B.LootEntitySources=B.LootTableTypes=void 0;B.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]}]]);B.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]);B.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]);B.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",[]]]);B.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(ie,"__esModule",{value:!0});ie.initLootTableSchemas=void 0;const d=v,V=B,z=$;function Qe(r,o){const e=d.Reference.bind(void 0,r),t=d.StringNode.bind(void 0,o),s={conditions:(0,d.Opt)((0,d.ListNode)(e("loot_condition")))},i=k({functions:(0,d.Opt)((0,d.ListNode)(e("loot_function")))},s);function m(j,D,C){const Oe=[],ze=X=>o.get(D).filter(ke=>{var G;return((G=j.get(ke))!==null&&G!==void 0?G:[]).every(we=>X.includes(we))});for(const[X,{allows:ke,requires:G}]of V.LootTableTypes){const Se=[...ke,...G];Oe.push({match:we=>we.getModel().get(new d.Path(["type"]))===X,node:C(ze(Se))})}return Oe.push({match:X=>!0,node:C(D)}),(0,d.SwitchNode)(Oe)}const l=m(V.LootConditions,"loot_condition_type",j=>t({validator:"resource",params:{pool:j instanceof Array?j:"loot_condition_type"}})),N=m(V.LootFunctions,"loot_function_type",j=>t({validator:"resource",params:{pool:j instanceof Array?j:"loot_function_type"}})),w=m(V.LootEntitySources,"entity_source",j=>t({enum:j})),T=m(V.LootCopySources,"copy_source",j=>t({enum:j}));r.register("loot_table",(0,d.Mod)((0,d.ObjectNode)({type:(0,d.Opt)(t({validator:"resource",params:{pool:o.get("loot_context_type")}})),pools:(0,d.Opt)((0,d.ListNode)((0,d.Mod)((0,d.ObjectNode)(k({rolls:(0,z.Range)({allowBinomial:!0,integer:!0}),bonus_rolls:(0,d.Opt)((0,z.Range)({integer:!0})),entries:(0,d.ListNode)(e("loot_entry"))},i),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,d.Opt)((0,d.ListNode)(e("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const U={enabled:j=>{var D;return((D=j.pop().get())===null||D===void 0?void 0:D.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(j.push("type").get())}};r.register("loot_entry",(0,d.Mod)((0,d.ObjectNode)({type:t({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,d.Opt)((0,d.Mod)((0,d.NumberNode)({integer:!0,min:1}),U)),quality:(0,d.Opt)((0,d.Mod)((0,d.NumberNode)({integer:!0}),U)),[d.Switch]:[{push:"type"}],[d.Case]:{"minecraft:alternatives":k({children:(0,d.ListNode)(e("loot_entry"))},i),"minecraft:dynamic":k({name:t()},i),"minecraft:group":k({children:(0,d.ListNode)(e("loot_entry"))},i),"minecraft:item":k({name:t({validator:"resource",params:{pool:"item"}})},i),"minecraft:loot_table":k({name:t({validator:"resource",params:{pool:"$loot_table"}})},i),"minecraft:sequence":k({children:(0,d.ListNode)(e("loot_entry"))},i),"minecraft:tag":k({name:t({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,d.Opt)((0,d.BooleanNode)())},i)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),r.register("loot_function",(0,d.Mod)((0,d.ObjectNode)({function:N,[d.Switch]:[{push:"function"}],[d.Case]:(()=>{const j={"minecraft:apply_bonus":{enchantment:t({validator:"resource",params:{pool:"enchantment"}}),formula:t({validator:"resource",params:{pool:o.get("loot_table_apply_bonus_formula")}}),parameters:(0,d.Mod)((0,d.ObjectNode)({bonusMultiplier:(0,d.Mod)((0,d.NumberNode)(),{enabled:C=>C.pop().push("formula").get()==="minecraft:uniform_bonus_count"}),extra:(0,d.Mod)((0,d.NumberNode)(),{enabled:C=>C.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"}),probability:(0,d.Mod)((0,d.NumberNode)(),{enabled:C=>C.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"})}),{enabled:C=>C.push("formula").get()!=="minecraft:ore_drops"})},"minecraft:copy_name":{source:T},"minecraft:copy_nbt":{source:T,ops:(0,d.ListNode)((0,d.ObjectNode)({source:t({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:t({validator:"nbt_path",params:{category:"minecraft:item"}}),op:t({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:t({validator:"resource",params:{pool:"block"}}),properties:(0,d.ListNode)(t({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,d.Opt)((0,d.ListNode)(t({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:(0,z.Range)({allowBinomial:!0}),treasure:(0,d.Opt)((0,d.BooleanNode)())},"minecraft:exploration_map":{destination:(0,d.Opt)(t({enum:"map_feature"})),decoration:(0,d.Opt)(t({enum:"map_decoration"})),zoom:(0,d.Opt)((0,d.NumberNode)({integer:!0})),search_radius:(0,d.Opt)((0,d.NumberNode)({integer:!0})),skip_existing_chunks:(0,d.Opt)((0,d.BooleanNode)())},"minecraft:fill_player_head":{entity:w},"minecraft:limit_count":{limit:(0,z.Range)({bounds:!0})},"minecraft:looting_enchant":{count:(0,z.Range)({bounds:!0}),limit:(0,d.Opt)((0,d.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,d.ListNode)(e("attribute_modifier"))},"minecraft:set_contents":{entries:(0,d.ListNode)(e("loot_entry"))},"minecraft:set_count":{count:(0,z.Range)({allowBinomial:!0})},"minecraft:set_damage":{damage:(0,z.Range)({forceRange:!0})},"minecraft:set_loot_table":{name:t({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,d.Opt)((0,d.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,d.Opt)(w),lore:(0,d.ListNode)(e("text_component")),replace:(0,d.Opt)((0,d.BooleanNode)())},"minecraft:set_name":{entity:(0,d.Opt)(w),name:(0,d.Opt)(e("text_component"))},"minecraft:set_nbt":{tag:t({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:(0,d.Opt)((0,d.ListNode)((0,d.ObjectNode)({type:t({validator:"resource",params:{pool:"mob_effect"}}),duration:(0,z.Range)()})))}},D={};return o.get("loot_function_type").forEach(C=>{D[C]=k(k({},j[C]),s)}),D})()},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),r.register("loot_condition",(0,d.Mod)((0,d.ObjectNode)({condition:l,[d.Switch]:[{push:"condition"}],[d.Case]:xe(k({},z.ConditionCases),{"minecraft:entity_properties":{entity:w,predicate:e("entity_predicate")},"minecraft:entity_scores":{entity:w,scores:(0,d.MapNode)(t({validator:"objective"}),(0,z.Range)({bounds:!0}))}})},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),r.register("attribute_modifier",(0,d.Mod)((0,d.ObjectNode)({attribute:t({validator:"resource",params:{pool:"attribute"}}),name:t(),amount:(0,z.Range)({bounds:!0}),operation:t({enum:["addition","multiply_base","multiply_total"]}),slot:(0,d.StringOrList)(t({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))}ie.initLootTableSchemas=Qe;var ne={};Object.defineProperty(ne,"__esModule",{value:!0});ne.initPackMcmetaSchemas=void 0;const E=v;function et(r,o){r.register("pack_mcmeta",(0,E.Mod)((0,E.ObjectNode)({pack:(0,E.Mod)((0,E.ObjectNode)({pack_format:(0,E.Mod)((0,E.NumberNode)({integer:!0,min:6,max:6}),{default:()=>6}),description:(0,E.Reference)(r,"text_component")}),{default:()=>({pack_format:6,description:""})})}),{default:()=>({pack:{pack_format:6,description:""}})}))}ne.initPackMcmetaSchemas=et;var ce={};Object.defineProperty(ce,"__esModule",{value:!0});ce.initPredicatesSchemas=void 0;const a=v,S=$;function tt(r,o){const e=a.Reference.bind(void 0,r),t=a.StringNode.bind(void 0,o),s=(0,a.ChoiceNode)([{type:"string",node:t(),change:i=>typeof i=="boolean"||typeof i=="number"?i.toString():""},{type:"number",node:(0,a.NumberNode)(),change:i=>typeof i=="string"?parseInt(i):0},{type:"object",node:(0,a.ObjectNode)({min:(0,a.Opt)((0,a.NumberNode)({integer:!0})),max:(0,a.Opt)((0,a.NumberNode)({integer:!0}))}),change:i=>typeof i=="number"?{min:i,max:i}:{}},{type:"boolean",node:(0,a.BooleanNode)(),change:i=>i==="true"||i===1}]);r.register("item_predicate",(0,a.ObjectNode)({item:(0,a.Opt)(t({validator:"resource",params:{pool:"item"}})),tag:(0,a.Opt)(t({validator:"resource",params:{pool:"$tag/item"}})),count:(0,a.Opt)((0,S.Range)()),durability:(0,a.Opt)((0,S.Range)()),potion:(0,a.Opt)(t({validator:"resource",params:{pool:"potion"}})),nbt:(0,a.Opt)(t({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,a.Opt)((0,a.ListNode)(e("enchantment_predicate")))},{context:"item"})),r.register("enchantment_predicate",(0,a.ObjectNode)({enchantment:(0,a.Opt)(t({validator:"resource",params:{pool:"enchantment"}})),levels:(0,a.Opt)((0,S.Range)())},{context:"enchantment"})),r.register("block_predicate",(0,a.ObjectNode)({block:(0,a.Opt)(t({validator:"resource",params:{pool:"block"}})),tag:(0,a.Opt)(t({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,a.Opt)(t({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,a.Opt)((0,a.MapNode)(t(),s,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),r.register("fluid_predicate",(0,a.ObjectNode)({fluid:(0,a.Opt)(t({validator:"resource",params:{pool:"fluid"}})),tag:(0,a.Opt)(t({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,a.Opt)((0,a.MapNode)(t(),s))},{context:"fluid"})),r.register("location_predicate",(0,a.ObjectNode)({position:(0,a.Opt)((0,a.ObjectNode)({x:(0,a.Opt)((0,S.Range)()),y:(0,a.Opt)((0,S.Range)()),z:(0,a.Opt)((0,S.Range)())})),biome:(0,a.Opt)(t({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:(0,a.Opt)(t({enum:o.get("worldgen/structure_feature").map(i=>i.slice(10))})),dimension:(0,a.Opt)(t({validator:"resource",params:{pool:"$dimension"}})),light:(0,a.Opt)((0,a.ObjectNode)({light:(0,a.Opt)((0,S.Range)({integer:!0,min:0,max:15}))})),smokey:(0,a.Opt)((0,a.BooleanNode)()),block:(0,a.Opt)(e("block_predicate")),fluid:(0,a.Opt)(e("fluid_predicate"))},{context:"location"})),r.register("statistic_predicate",(0,a.ObjectNode)({type:t({validator:"resource",params:{pool:"stat_type"}}),stat:t(),value:(0,S.Range)(),[a.Switch]:[{push:"type"}],[a.Case]:{"minecraft:mined":{stat:t({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:t({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:t({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:t({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:t({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:t({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:t({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:t({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:t({validator:"resource",params:{pool:"custom_stat"}})}}})),r.register("player_predicate",(0,a.ObjectNode)({gamemode:(0,a.Opt)(t({enum:"gamemode"})),level:(0,a.Opt)((0,S.Range)()),advancements:(0,a.Opt)((0,a.MapNode)(t({validator:"resource",params:{pool:"$advancement"}}),(0,a.ChoiceNode)([{type:"boolean",node:(0,a.BooleanNode)(),change:i=>!0},{type:"object",node:(0,a.MapNode)(t(),(0,a.BooleanNode)())}]))),recipes:(0,a.Opt)((0,a.MapNode)(t({validator:"resource",params:{pool:"$recipe"}}),(0,a.BooleanNode)())),stats:(0,a.Opt)((0,a.ListNode)(e("statistic_predicate")))},{context:"player"})),r.register("status_effect_predicate",(0,a.ObjectNode)({amplifier:(0,a.Opt)((0,S.Range)()),duration:(0,a.Opt)((0,S.Range)()),ambient:(0,a.Opt)((0,a.BooleanNode)()),visible:(0,a.Opt)((0,a.BooleanNode)())},{context:"status_effect"})),r.register("distance_predicate",(0,a.ObjectNode)({x:(0,a.Opt)((0,S.Range)()),y:(0,a.Opt)((0,S.Range)()),z:(0,a.Opt)((0,S.Range)()),absolute:(0,a.Opt)((0,S.Range)()),horizontal:(0,a.Opt)((0,S.Range)())},{context:"distance"})),r.register("entity_predicate",(0,a.ObjectNode)({type:(0,a.Opt)(t({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:(0,a.Opt)(t({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,a.Opt)(t({validator:"team"})),location:(0,a.Opt)(e("location_predicate")),distance:(0,a.Opt)(e("distance_predicate")),flags:(0,a.Opt)((0,a.ObjectNode)({is_on_fire:(0,a.Opt)((0,a.BooleanNode)()),is_sneaking:(0,a.Opt)((0,a.BooleanNode)()),is_sprinting:(0,a.Opt)((0,a.BooleanNode)()),is_swimming:(0,a.Opt)((0,a.BooleanNode)()),is_baby:(0,a.Opt)((0,a.BooleanNode)())})),equipment:(0,a.Opt)((0,a.MapNode)(t({enum:"slot"}),e("item_predicate"))),vehicle:(0,a.Opt)(e("entity_predicate")),targeted_entity:(0,a.Opt)(e("entity_predicate")),player:(0,a.Opt)(e("player_predicate")),fishing_hook:(0,a.Opt)((0,a.ObjectNode)({in_open_water:(0,a.Opt)((0,a.BooleanNode)())})),catType:(0,a.Opt)(t({enum:"cat_texture"})),effects:(0,a.Opt)((0,a.MapNode)(t({validator:"resource",params:{pool:"mob_effect"}}),e("status_effect_predicate")))},{context:"entity"})),r.register("damage_source_predicate",(0,a.ObjectNode)({is_explosion:(0,a.Opt)((0,a.BooleanNode)()),is_fire:(0,a.Opt)((0,a.BooleanNode)()),is_magic:(0,a.Opt)((0,a.BooleanNode)()),is_projectile:(0,a.Opt)((0,a.BooleanNode)()),is_lightning:(0,a.Opt)((0,a.BooleanNode)()),bypasses_armor:(0,a.Opt)((0,a.BooleanNode)()),bypasses_invulnerability:(0,a.Opt)((0,a.BooleanNode)()),bypasses_magic:(0,a.Opt)((0,a.BooleanNode)()),source_entity:(0,a.Opt)(e("entity_predicate")),direct_entity:(0,a.Opt)(e("entity_predicate"))},{context:"damage_source"})),r.register("damage_predicate",(0,a.ObjectNode)({dealt:(0,a.Opt)((0,S.Range)()),taken:(0,a.Opt)((0,S.Range)()),blocked:(0,a.Opt)((0,a.BooleanNode)()),source_entity:(0,a.Opt)(e("entity_predicate")),type:(0,a.Opt)(e("damage_source_predicate"))},{context:"damage"}))}ce.initPredicatesSchemas=tt;var se={};Object.defineProperty(se,"__esModule",{value:!0});se.initRecipeSchemas=void 0;const f=v;function rt(r,o){const e=f.Reference.bind(void 0,r),t=f.StringNode.bind(void 0,o);r.register("recipe",(0,f.Mod)((0,f.ObjectNode)({type:t({validator:"resource",params:{pool:"recipe_serializer"}}),[f.Switch]:[{push:"type"}],[f.Case]:{"minecraft:crafting_shaped":{group:(0,f.Opt)(t({enum:"recipe_group",additional:!0})),pattern:(0,f.ListNode)(t()),key:(0,f.MapNode)(t(),e("recipe_ingredient")),result:e("recipe_result")},"minecraft:crafting_shapeless":{group:(0,f.Opt)(t()),ingredients:(0,f.ListNode)(e("recipe_ingredient")),result:e("recipe_result")},"minecraft:smelting":{group:(0,f.Opt)(t()),ingredient:e("recipe_ingredient"),result:t({validator:"resource",params:{pool:"item"}}),experience:(0,f.Opt)((0,f.NumberNode)()),cookingtime:(0,f.Opt)((0,f.Mod)((0,f.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,f.Opt)(t()),ingredient:e("recipe_ingredient"),result:t({validator:"resource",params:{pool:"item"}}),experience:(0,f.Opt)((0,f.NumberNode)()),cookingtime:(0,f.Opt)((0,f.Mod)((0,f.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,f.Opt)(t()),ingredient:e("recipe_ingredient"),result:t({validator:"resource",params:{pool:"item"}}),experience:(0,f.Opt)((0,f.NumberNode)()),cookingtime:(0,f.Opt)((0,f.Mod)((0,f.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,f.Opt)(t()),ingredient:e("recipe_ingredient"),result:t({validator:"resource",params:{pool:"item"}}),experience:(0,f.Opt)((0,f.NumberNode)()),cookingtime:(0,f.Opt)((0,f.Mod)((0,f.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,f.Opt)(t()),ingredient:e("recipe_ingredient"),result:t({validator:"resource",params:{pool:"item"}}),count:(0,f.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,f.Opt)(t()),base:e("recipe_ingredient_object"),addition:e("recipe_ingredient_object"),result:e("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),r.register("recipe_ingredient",(0,f.Mod)((0,f.ChoiceNode)([{type:"object",node:e("recipe_ingredient_object"),change:s=>s[0]},{type:"list",node:(0,f.ListNode)(e("recipe_ingredient_object")),change:s=>[s]}]),{default:()=>({item:"minecraft:stone"})})),r.register("recipe_ingredient_object",(0,f.Mod)((0,f.ObjectNode)({item:(0,f.Opt)(t({validator:"resource",params:{pool:"item"}})),tag:(0,f.Opt)(t({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),r.register("recipe_result",(0,f.Mod)((0,f.ObjectNode)({item:t({validator:"resource",params:{pool:"item"}}),count:(0,f.Opt)((0,f.Mod)((0,f.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))}se.initRecipeSchemas=rt;var de={};Object.defineProperty(de,"__esModule",{value:!0});de.initTagsSchemas=void 0;const A=v;function ot(r,o){const e=A.StringNode.bind(void 0,o),t=s=>(0,A.Mod)((0,A.ObjectNode)({replace:(0,A.Opt)((0,A.BooleanNode)()),values:(0,A.ListNode)((0,A.ChoiceNode)([{type:"string",node:e({validator:"resource",params:{pool:s,allowTag:!0}}),change:i=>i.id},{type:"object",node:(0,A.ObjectNode)({id:e({validator:"resource",params:{pool:s,allowTag:!0,allowUnknown:!0}}),required:(0,A.BooleanNode)()}),change:i=>({id:i})}]))},{context:"tag"}),{default:()=>({values:[]})});r.register("block_tag",t("block")),r.register("entity_type_tag",t("entity_type")),r.register("fluid_tag",t("fluid")),r.register("function_tag",t("$function")),r.register("item_tag",t("item"))}de.initTagsSchemas=ot;var me={};Object.defineProperty(me,"__esModule",{value:!0});me.initTextComponentSchemas=void 0;const _=v;function at(r,o){const e=_.Reference.bind(void 0,r),t=_.StringNode.bind(void 0,o),s=m=>{var l;return m instanceof Array?s(m[0]):(l=m==null?void 0:m.text)!==null&&l!==void 0?l:typeof m=="object"?"":m==null?void 0:m.toString()};r.register("text_component",(0,_.Mod)((0,_.ChoiceNode)([{type:"object",node:e("text_component_object"),change:m=>m instanceof Array?typeof m[0]=="object"?m[0]:{text:s(m[0])}:typeof m=="object"?m:{text:s(m)}},{type:"list",node:e("text_component_list"),change:m=>[m]},{type:"string",priority:1,node:t(),change:s},{type:"number",node:(0,_.NumberNode)(),change:m=>{const l=parseFloat(s(m));return isFinite(l)?l:m?1:0}},{type:"boolean",node:(0,_.BooleanNode)(),change:m=>{const l=s(m);return l==="true"||l==="false"?l==="true":!!l}}],{context:"text_component"}),{default:()=>({text:""})}));const i={color:(0,_.Opt)(t()),font:(0,_.Opt)(t()),bold:(0,_.Opt)((0,_.BooleanNode)()),italic:(0,_.Opt)((0,_.BooleanNode)()),underlined:(0,_.Opt)((0,_.BooleanNode)()),strikethrough:(0,_.Opt)((0,_.BooleanNode)()),obfuscated:(0,_.Opt)((0,_.BooleanNode)()),insertion:(0,_.Opt)(t()),clickEvent:(0,_.Opt)((0,_.ObjectNode)({action:t({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[_.Switch]:[{push:"action"}],[_.Case]:{change_page:{value:t()},copy_to_clipboard:{value:t()},open_file:{value:t()},open_url:{value:t()},run_command:{value:t({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:t({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:(0,_.Opt)((0,_.ObjectNode)({action:t({enum:["show_text","show_item","show_entity"]}),[_.Switch]:[{push:"action"}],[_.Case]:{show_text:{value:(0,_.Opt)(e("text_component")),contents:(0,_.Opt)(e("text_component"))},show_item:{value:(0,_.Opt)(t({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:(0,_.Opt)((0,_.ObjectNode)({id:t({validator:"resource",params:{pool:"item"}}),count:(0,_.Opt)((0,_.NumberNode)({integer:!0})),tag:(0,_.Opt)(t({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:(0,_.Opt)((0,_.ObjectNode)({name:(0,_.Opt)(t()),type:(0,_.Opt)(t()),id:(0,_.Opt)(t())})),contents:(0,_.Opt)((0,_.Mod)((0,_.ObjectNode)({name:(0,_.Opt)(e("text_component")),type:t({validator:"resource",params:{pool:"entity_type"}}),id:t({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:(0,_.Opt)(e("text_component_list"))};r.register("text_component_object",(0,_.Mod)((0,_.ChoiceNode)([{type:"text",match:m=>typeof m=="object",change:m=>({text:""}),priority:-1,node:(0,_.ObjectNode)(k({text:t()},i))},{type:"translation",match:m=>(m==null?void 0:m.translate)!==void 0,change:m=>({translate:""}),node:(0,_.ObjectNode)(k({translate:t(),with:(0,_.Opt)(e("text_component_list"))},i))},{type:"score",match:m=>(m==null?void 0:m.score)!==void 0,change:m=>({score:{}}),node:(0,_.ObjectNode)(k({score:(0,_.ObjectNode)({name:t({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:t({validator:"objective"}),value:(0,_.Opt)(t())})},i))},{type:"selector",match:m=>(m==null?void 0:m.selector)!==void 0,change:m=>({selector:""}),node:(0,_.ObjectNode)(k({selector:t({validator:"entity",params:{amount:"multiple",type:"entities"}})},i))},{type:"keybind",match:m=>(m==null?void 0:m.keybind)!==void 0,change:m=>({keybind:""}),node:(0,_.ObjectNode)(k({keybind:t({enum:"keybind",additional:!0})},i))},{type:"nbt",match:m=>(m==null?void 0:m.nbt)!==void 0,change:m=>({nbt:""}),node:(0,_.ObjectNode)(k({nbt:t({validator:"nbt_path"}),block:(0,_.Opt)(t({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,_.Opt)(t({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,_.Opt)(t({validator:"resource",params:{pool:"$storage"}})),interpret:(0,_.Opt)((0,_.BooleanNode)())},i))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),r.register("text_component_list",(0,_.Mod)((0,_.ListNode)(e("text_component")),{default:()=>[{text:""}]}))}me.initTextComponentSchemas=at;var le={},_e={};Object.defineProperty(_e,"__esModule",{value:!0});_e.initBiomeSchemas=void 0;const p=v;function it(r,o){const e=p.StringNode.bind(void 0,o);r.register("biome",(0,p.Mod)((0,p.ObjectNode)({surface_builder:e({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:(0,p.NumberNode)(),scale:(0,p.NumberNode)(),temperature:(0,p.NumberNode)(),downfall:(0,p.NumberNode)(),precipitation:e({enum:["none","rain","snow"]}),temperature_modifier:(0,p.Opt)(e({enum:["none","frozen"]})),category:e({enum:"biome_category"}),player_spawn_friendly:(0,p.Opt)((0,p.BooleanNode)()),creature_spawn_probability:(0,p.Opt)((0,p.NumberNode)({min:0,max:1})),effects:(0,p.ObjectNode)({sky_color:(0,p.NumberNode)({color:!0}),fog_color:(0,p.NumberNode)({color:!0}),water_color:(0,p.NumberNode)({color:!0}),water_fog_color:(0,p.NumberNode)({color:!0}),grass_color:(0,p.Opt)((0,p.NumberNode)({color:!0})),foliage_color:(0,p.Opt)((0,p.NumberNode)({color:!0})),grass_color_modifier:(0,p.Opt)(e({enum:["none","dark_forest","swamp"]})),ambient_sound:(0,p.Opt)(e()),mood_sound:(0,p.Opt)((0,p.ObjectNode)({sound:e(),tick_delay:(0,p.NumberNode)({integer:!0}),block_search_extent:(0,p.NumberNode)({integer:!0}),offset:(0,p.NumberNode)()})),additions_sound:(0,p.Opt)((0,p.ObjectNode)({sound:e(),tick_chance:(0,p.NumberNode)({min:0,max:1})})),music:(0,p.Opt)((0,p.ObjectNode)({sound:e(),min_delay:(0,p.NumberNode)({integer:!0,min:0}),max_delay:(0,p.NumberNode)({integer:!0,min:0}),replace_current_music:(0,p.BooleanNode)()})),particle:(0,p.Opt)((0,p.ObjectNode)({options:(0,p.ObjectNode)({type:e()}),probability:(0,p.NumberNode)({min:0,max:1})}))}),starts:(0,p.ListNode)(e({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:(0,p.MapNode)(e({enum:["water_ambient","ambient","misc","water_creature","creature","monster"]}),(0,p.Mod)((0,p.ListNode)((0,p.ObjectNode)({type:e({validator:"resource",params:{pool:"entity_type"}}),weight:(0,p.NumberNode)({integer:!0}),minCount:(0,p.NumberNode)({integer:!0}),maxCount:(0,p.NumberNode)({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:(0,p.MapNode)(e({validator:"resource",params:{pool:"entity_type"}}),(0,p.Mod)((0,p.ObjectNode)({energy_budget:(0,p.NumberNode)(),charge:(0,p.NumberNode)()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:(0,p.MapNode)(e({enum:["air","liquid"]}),(0,p.Mod)((0,p.ListNode)(e({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:(0,p.ListNode)((0,p.Mod)((0,p.ListNode)(e({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}})}))}_e.initBiomeSchemas=it;var pe={};Object.defineProperty(pe,"__esModule",{value:!0});pe.initCarverSchemas=void 0;const H=v;function nt(r,o){const e=H.StringNode.bind(void 0,o);r.register("configured_carver",(0,H.Mod)((0,H.ObjectNode)({type:e({validator:"resource",params:{pool:"worldgen/carver"}}),config:(0,H.ObjectNode)({probability:(0,H.NumberNode)({min:0,max:1})})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))}pe.initCarverSchemas=nt;var ue={};Object.defineProperty(ue,"__esModule",{value:!0});ue.initDecoratorSchemas=void 0;const O=v,ct=$;function st(r,o){const e=O.Reference.bind(void 0,r),t=O.StringNode.bind(void 0,o),s={maximum:(0,O.NumberNode)({integer:!0}),bottom_offset:(0,O.NumberNode)({integer:!0}),top_offset:(0,O.NumberNode)({integer:!0})},i={chance:(0,O.NumberNode)({integer:!0,min:0})},m={count:(0,ct.UniformInt)({min:-10,max:128,maxSpread:128})};r.register("configured_decorator",(0,O.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/decorator"}}),config:(0,O.ObjectNode)({[O.Switch]:["pop",{push:"type"}],[O.Case]:{"minecraft:carving_mask":{step:t({enum:"generation_step"}),probability:(0,O.NumberNode)({min:0,max:1})},"minecraft:chance":i,"minecraft:count":m,"minecraft:count_extra":{count:(0,O.NumberNode)({integer:!0}),extra_count:(0,O.NumberNode)({integer:!0}),extra_chance:(0,O.NumberNode)({min:0,max:1})},"minecraft:count_multilayer":m,"minecraft:count_noise":{noise_level:(0,O.NumberNode)(),below_noise:(0,O.NumberNode)({integer:!0}),above_noise:(0,O.NumberNode)({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:(0,O.NumberNode)({integer:!0}),noise_factor:(0,O.NumberNode)(),noise_offset:(0,O.Opt)((0,O.NumberNode)())},"minecraft:decorated":{outer:e("configured_decorator"),inner:e("configured_decorator")},"minecraft:depth_average":{baseline:(0,O.NumberNode)({integer:!0}),spread:(0,O.NumberNode)({integer:!0})},"minecraft:fire":m,"minecraft:glowstone":m,"minecraft:lava_lake":i,"minecraft:range":s,"minecraft:range_biased":s,"minecraft:range_very_biased":s,"minecraft:water_lake":i}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))}ue.initDecoratorSchemas=st;var fe={},ge={};Object.defineProperty(ge,"__esModule",{value:!0});ge.initProcessorListSchemas=void 0;const y=v;function dt(r,o){const e=y.Reference.bind(void 0,r),t=y.StringNode.bind(void 0,o);r.register("processor_list",(0,y.Mod)((0,y.ObjectNode)({processors:(0,y.ListNode)(e("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"}}]}]})})),r.register("processor",(0,y.Mod)((0,y.ObjectNode)({processor_type:t({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[y.Switch]:[{push:"processor_type"}],[y.Case]:{"minecraft:block_age":{mossiness:(0,y.NumberNode)()},"minecraft:block_ignore":{blocks:(0,y.ListNode)(e("block_state"))},"minecraft:block_rot":{integrity:(0,y.NumberNode)({min:0,max:1})},"minecraft:gravity":{heightmap:t({enum:"heightmap_type"}),offset:(0,y.NumberNode)({integer:!0})},"minecraft:rule":{rules:(0,y.ListNode)(e("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"}}]})})),r.register("processor_rule",(0,y.Mod)((0,y.ObjectNode)({position_predicate:(0,y.Opt)(e("pos_rule_test")),location_predicate:e("rule_test"),input_predicate:e("rule_test"),output_state:e("block_state"),output_nbt:(0,y.Opt)(t({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 s={min_dist:(0,y.NumberNode)({min:0,max:255,integer:!0}),max_dist:(0,y.NumberNode)({min:0,max:255,integer:!0}),min_chance:(0,y.NumberNode)({min:0,max:1}),max_chance:(0,y.NumberNode)({min:0,max:1})};r.register("pos_rule_test",(0,y.ObjectNode)({predicate_type:t({validator:"resource",params:{pool:"pos_rule_test"}}),[y.Switch]:[{push:"predicate_type"}],[y.Case]:{"minecraft:axis_aligned_linear_pos":k({axis:t({enum:["x","y","z"]})},s),"minecraft:linear_pos":s}},{context:"pos_rule_test",disableSwitchContext:!0})),r.register("rule_test",(0,y.ObjectNode)({predicate_type:t({validator:"resource",params:{pool:"rule_test"}}),[y.Switch]:[{push:"predicate_type"}],[y.Case]:{"minecraft:block_match":{block:t({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:e("block_state")},"minecraft:random_block_match":{block:t({validator:"resource",params:{pool:"block"}}),probability:(0,y.NumberNode)({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:e("block_state"),probability:(0,y.NumberNode)({min:0,max:1})},"minecraft:tag_match":{tag:t({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))}ge.initProcessorListSchemas=dt;Object.defineProperty(fe,"__esModule",{value:!0});fe.initFeatureSchemas=void 0;const n=v,P=$;function mt(r,o){const e=n.Reference.bind(void 0,r),t=n.StringNode.bind(void 0,o),s={can_replace:(0,n.BooleanNode)(),project:(0,n.BooleanNode)(),need_water:(0,n.BooleanNode)(),xspread:(0,n.NumberNode)({integer:!0}),yspread:(0,n.NumberNode)({integer:!0}),zspread:(0,n.NumberNode)({integer:!0}),tries:(0,n.NumberNode)({integer:!0}),state_provider:e("block_state_provider"),block_placer:e("block_placer"),whitelist:(0,n.ListNode)(e("block_state")),blacklist:(0,n.ListNode)(e("block_state"))},i={state:e("block_state"),radius:(0,P.UniformInt)({min:0,max:4,maxSpread:4}),half_height:(0,n.NumberNode)({integer:!0,min:0,max:4}),targets:(0,n.ListNode)(e("block_state"))},m={cap_provider:e("block_state_provider"),stem_provider:e("block_state_provider"),foliage_radius:(0,n.Opt)((0,n.NumberNode)({integer:!0}))},l={state:e("block_state"),size:(0,n.NumberNode)({integer:!0,min:0,max:64}),target:e("rule_test")},N={count:(0,P.UniformInt)({min:-10,max:128,maxSpread:128})},w=(0,n.ChoiceNode)([{type:"string",node:t({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:e("configured_feature")}],{choiceContext:"feature"});r.register("configured_feature",(0,n.Mod)((0,n.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/feature"}}),config:(0,n.ObjectNode)({[n.Switch]:["pop",{push:"type"}],[n.Case]:{"minecraft:bamboo":{probability:(0,n.NumberNode)({min:0,max:1})},"minecraft:basalt_columns":{reach:(0,P.UniformInt)({min:0,max:2,maxSpread:1}),height:(0,P.UniformInt)({min:1,max:5,maxSpread:5})},"minecraft:block_pile":{state_provider:e("block_state_provider")},"minecraft:decorated":{decorator:e("configured_decorator"),feature:w},"minecraft:delta_feature":{contents:e("block_state"),rim:e("block_state"),size:(0,P.UniformInt)({min:0,max:8,maxSpread:8}),rim_size:(0,P.UniformInt)({min:0,max:8,maxSpread:8})},"minecraft:disk":i,"minecraft:emerald_ore":{state:e("block_state"),target:e("block_state")},"minecraft:end_gateway":{exact:(0,n.BooleanNode)(),exit:(0,n.Opt)(e("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:(0,n.Opt)((0,n.BooleanNode)()),crystal_beam_target:(0,n.Opt)(e("block_pos")),spikes:(0,n.ListNode)((0,n.ObjectNode)({centerX:(0,n.Opt)((0,n.NumberNode)({integer:!0})),centerZ:(0,n.Opt)((0,n.NumberNode)({integer:!0})),radius:(0,n.Opt)((0,n.NumberNode)({integer:!0})),height:(0,n.Opt)((0,n.NumberNode)({integer:!0})),guarded:(0,n.Opt)((0,n.BooleanNode)())}))},"minecraft:fill_layer":{state:e("block_state"),height:(0,n.NumberNode)({integer:!0,min:0,max:255})},"minecraft:flower":s,"minecraft:forest_rock":{state:e("block_state")},"minecraft:huge_brown_mushroom":m,"minecraft:huge_fungus":{hat_state:e("block_state"),decor_state:e("block_state"),stem_state:e("block_state"),valid_base_block:e("block_state"),planted:(0,n.Opt)((0,n.BooleanNode)())},"minecraft:huge_red_mushroom":m,"minecraft:ice_patch":i,"minecraft:iceberg":{state:e("block_state")},"minecraft:lake":{state:e("block_state")},"minecraft:nether_forest_vegetation":{state_provider:e("block_state_provider")},"minecraft:netherrack_replace_blobs":{state:e("block_state"),target:e("block_state"),radius:(0,P.UniformInt)()},"minecraft:no_bonemeal_flower":s,"minecraft:no_surface_ore":l,"minecraft:ore":l,"minecraft:random_patch":s,"minecraft:random_boolean_selector":{feature_false:w,feature_true:w},"minecraft:random_selector":{features:(0,n.ListNode)((0,n.ObjectNode)({chance:(0,n.NumberNode)({min:0,max:1}),feature:w})),default:w},"minecraft:sea_pickle":N,"minecraft:seagrass":{probability:(0,n.NumberNode)({min:0,max:1})},"minecraft:simple_block":{to_place:e("block_state"),place_on:(0,n.ListNode)(e("block_state")),place_in:(0,n.ListNode)(e("block_state")),place_under:(0,n.ListNode)(e("block_state"))},"minecraft:simple_random_selector":{features:(0,n.ListNode)(w)},"minecraft:spring_feature":{state:e("fluid_state"),rock_count:(0,n.NumberNode)({integer:!0}),hole_count:(0,n.NumberNode)({integer:!0}),requires_block_below:(0,n.BooleanNode)(),valid_blocks:(0,n.ListNode)(t({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{max_water_depth:(0,n.NumberNode)({integer:!0}),ignore_vines:(0,n.BooleanNode)(),heightmap:t({enum:"heightmap_type"}),minimum_size:e("feature_size"),trunk_provider:e("block_state_provider"),leaves_provider:e("block_state_provider"),trunk_placer:(0,n.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:(0,n.NumberNode)({integer:!0,min:0,max:32}),height_rand_a:(0,n.NumberNode)({integer:!0,min:0,max:24}),height_rand_b:(0,n.NumberNode)({integer:!0,min:0,max:24})},{context:"trunk_placer"}),foliage_placer:(0,n.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:(0,P.UniformInt)({min:0,max:8,maxSpread:8}),offset:(0,P.UniformInt)({min:0,max:8,maxSpread:8}),[n.Switch]:[{push:"type"}],[n.Case]:{"minecraft:blob_foliage_placer":{height:(0,n.NumberNode)({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:(0,n.NumberNode)({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:(0,n.NumberNode)({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:(0,n.NumberNode)({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:(0,P.UniformInt)({min:0,max:16,maxSpread:8})},"minecraft:pine_foliage_placer":{height:(0,P.UniformInt)({min:0,max:16,maxSpread:8})},"minecraft:spruce_foliage_placer":{trunk_height:(0,P.UniformInt)({min:0,max:16,maxSpread:8})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:(0,n.ListNode)((0,n.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[n.Switch]:[{push:"type"}],[n.Case]:{"minecraft:alter_ground":{provider:e("block_state_provider")},"minecraft:beehive":{probability:(0,n.NumberNode)({min:0,max:1})},"minecraft:cocoa":{probability:(0,n.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}}}}})})),r.register("feature_size",(0,n.Mod)((0,n.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:(0,n.Opt)((0,n.NumberNode)({min:0,max:80})),[n.Switch]:[{push:"type"}],[n.Case]:{"minecraft:two_layers_feature_size":{limit:(0,n.Opt)((0,n.NumberNode)({integer:!0,min:0,max:81})),lower_size:(0,n.Opt)((0,n.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,n.Opt)((0,n.NumberNode)({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:(0,n.Opt)((0,n.NumberNode)({integer:!0,min:0,max:80})),upper_limit:(0,n.Opt)((0,n.NumberNode)({integer:!0,min:0,max:80})),lower_size:(0,n.Opt)((0,n.NumberNode)({integer:!0,min:0,max:16})),middle_size:(0,n.Opt)((0,n.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,n.Opt)((0,n.NumberNode)({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),r.register("block_state_provider",(0,n.Mod)((0,n.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[n.Switch]:[{push:"type"}],[n.Case]:{"minecraft:rotated_block_provider":{state:e("block_state")},"minecraft:simple_state_provider":{state:e("block_state")},"minecraft:weighted_state_provider":{entries:(0,n.ListNode)((0,n.Mod)((0,n.ObjectNode)({weight:(0,n.NumberNode)({integer:!0,min:1}),data:e("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),r.register("block_placer",(0,n.Mod)((0,n.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[n.Switch]:[{push:"type"}],[n.Case]:{"minecraft:column_placer":{min_size:(0,n.NumberNode)({integer:!0}),extra_size:(0,n.NumberNode)({integer:!0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))}fe.initFeatureSchemas=mt;var be={};Object.defineProperty(be,"__esModule",{value:!0});be.initNoiseSettingsSchemas=void 0;const u=v,lt=$;function _t(r,o){const e=u.Reference.bind(void 0,r),t=u.StringNode.bind(void 0,o);r.register("noise_settings",(0,u.Mod)((0,u.ObjectNode)({name:(0,u.Mod)(t({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:s=>s.getArray().length>0}),bedrock_roof_position:(0,u.NumberNode)({integer:!0}),bedrock_floor_position:(0,u.NumberNode)({integer:!0}),sea_level:(0,u.NumberNode)({integer:!0}),disable_mob_generation:(0,u.BooleanNode)(),default_block:e("block_state"),default_fluid:e("block_state"),noise:(0,u.ObjectNode)({height:(0,u.NumberNode)({integer:!0}),density_factor:(0,u.NumberNode)(),density_offset:(0,u.NumberNode)(),size_horizontal:(0,u.NumberNode)({integer:!0}),size_vertical:(0,u.NumberNode)({integer:!0}),simplex_surface_noise:(0,u.BooleanNode)(),random_density_offset:(0,u.Opt)((0,u.BooleanNode)()),island_noise_override:(0,u.Opt)((0,u.BooleanNode)()),amplified:(0,u.Opt)((0,u.BooleanNode)()),sampling:(0,u.ObjectNode)({xz_scale:(0,u.NumberNode)(),y_scale:(0,u.NumberNode)(),xz_factor:(0,u.NumberNode)(),y_factor:(0,u.NumberNode)()}),bottom_slide:(0,u.ObjectNode)({target:(0,u.NumberNode)({integer:!0}),size:(0,u.NumberNode)({integer:!0}),offset:(0,u.NumberNode)({integer:!0})}),top_slide:(0,u.ObjectNode)({target:(0,u.NumberNode)({integer:!0}),size:(0,u.NumberNode)({integer:!0}),offset:(0,u.NumberNode)({integer:!0})})}),structures:e("generator_structures")},{context:"noise_settings"}),{default:()=>lt.DefaultNoiseSettings})),r.register("generator_structures",(0,u.ObjectNode)({stronghold:(0,u.Opt)((0,u.ObjectNode)({distance:(0,u.NumberNode)({integer:!0,min:0,max:1023}),spread:(0,u.NumberNode)({integer:!0,min:0,max:1023}),count:(0,u.NumberNode)({integer:!0,min:1,max:4095})})),structures:(0,u.MapNode)(t({validator:"resource",params:{pool:"worldgen/structure_feature"}}),(0,u.Mod)((0,u.ObjectNode)({spacing:(0,u.NumberNode)({integer:!0,min:0,max:4096}),separation:(0,u.Mod)((0,u.NumberNode)({integer:!0,min:0,max:4096}),s=>({validate:(i,m,l,N)=>(i.pop().push("spacing").get()<=m&&l.add(i,"error.separation_smaller_spacing"),s.validate(i,m,l,N))})),salt:(0,u.NumberNode)({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),r.register("generator_layer",(0,u.Mod)((0,u.ObjectNode)({block:t({validator:"resource",params:{pool:"block"}}),height:(0,u.NumberNode)({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))}be.initNoiseSettingsSchemas=_t;var Ne={};Object.defineProperty(Ne,"__esModule",{value:!0});Ne.initStructureFeatureSchemas=void 0;const R=v;function pt(r,o){const e=R.StringNode.bind(void 0,o),t={start_pool:e({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:(0,R.NumberNode)({integer:!0})};r.register("configured_structure_feature",(0,R.Mod)((0,R.ObjectNode)({type:e({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:(0,R.ObjectNode)({[R.Switch]:["pop",{push:"type"}],[R.Case]:{"minecraft:bastion_remnant":t,"minecraft:buried_treasure":{probability:(0,R.NumberNode)({min:0,max:1})},"minecraft:mineshaft":{type:e({enum:["normal","mesa"]}),probability:(0,R.NumberNode)({min:0,max:1})},"minecraft:ocean_ruin":{biome_temp:e({enum:["cold","warm"]}),large_probability:(0,R.NumberNode)({min:0,max:1}),cluster_probability:(0,R.NumberNode)({min:0,max:1})},"minecraft:pillager_outpost":t,"minecraft:ruined_portal":{portal_type:e({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:(0,R.Opt)((0,R.BooleanNode)())},"minecraft:village":t}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))}Ne.initStructureFeatureSchemas=pt;var ye={};Object.defineProperty(ye,"__esModule",{value:!0});ye.initSurfaceBuilderSchemas=void 0;const K=v;function ut(r,o){const e=K.StringNode.bind(void 0,o),t=K.Reference.bind(void 0,r);r.register("configured_surface_builder",(0,K.Mod)((0,K.ObjectNode)({type:e({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:(0,K.ObjectNode)({top_material:t("block_state"),under_material:t("block_state"),underwater_material:t("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"}}})}))}ye.initSurfaceBuilderSchemas=ut;var he={};Object.defineProperty(he,"__esModule",{value:!0});he.initTemplatePoolSchemas=void 0;const M=v;function ft(r,o){const e=M.Reference.bind(void 0,r),t=M.StringNode.bind(void 0,o),s=(0,M.ChoiceNode)([{type:"string",node:t({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:i=>{}},{type:"object",node:e("processor_list"),change:i=>({processors:[{processor_type:"minecraft:nop"}]})}]);r.register("template_pool",(0,M.Mod)((0,M.ObjectNode)({name:t(),fallback:t(),elements:(0,M.ListNode)(e("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"}}]})})),r.register("template_weighted_element",(0,M.Mod)((0,M.ObjectNode)({weight:(0,M.NumberNode)({integer:!0,min:1}),element:e("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),r.register("template_element",(0,M.Mod)((0,M.ObjectNode)({element_type:t({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:t({enum:["rigid","terrain_matching"]}),[M.Switch]:[{push:"element_type"}],[M.Case]:{"minecraft:feature_pool_element":{feature:t({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},"minecraft:legacy_single_pool_element":{location:t({validator:"resource",params:{pool:"$structure"}}),processors:s},"minecraft:list_pool_element":{elements:(0,M.ListNode)(e("template_element"))},"minecraft:single_pool_element":{location:t({validator:"resource",params:{pool:"$structure"}}),processors:s}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))}he.initTemplatePoolSchemas=ft;Object.defineProperty(le,"__esModule",{value:!0});le.initWorldgenSchemas=void 0;const gt=_e,bt=pe,Nt=ue,yt=fe,ht=be,vt=ge,Ot=Ne,kt=ye,wt=he;function xt(r,o){(0,gt.initBiomeSchemas)(r,o),(0,bt.initCarverSchemas)(r,o),(0,Nt.initDecoratorSchemas)(r,o),(0,yt.initFeatureSchemas)(r,o),(0,ht.initNoiseSettingsSchemas)(r,o),(0,vt.initProcessorListSchemas)(r,o),(0,Ot.initStructureFeatureSchemas)(r,o),(0,kt.initSurfaceBuilderSchemas)(r,o),(0,wt.initTemplatePoolSchemas)(r,o)}le.initWorldgenSchemas=xt;var ve={};Object.defineProperty(ve,"__esModule",{value:!0});ve.initWorldSettingsSchemas=void 0;const F=v;function St(r,o){const e=F.Reference.bind(void 0,r),t=F.StringNode.bind(void 0,o);r.register("world_settings",(0,F.Mod)((0,F.ObjectNode)({generate_features:(0,F.BooleanNode)(),bonus_chest:(0,F.BooleanNode)(),seed:(0,F.NumberNode)({integer:!0}),dimensions:(0,F.MapNode)(t({validator:"resource",params:{pool:"$dimension"}}),e("dimension"))},{context:"world_settings"}),{default:()=>{const s=Math.floor(Math.random()*4294967296)-2147483648;return{generate_features:!0,bonus_chest:!1,seed:s,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:s,biome_source:{type:"minecraft:vanilla_layered",seed:s},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:s,biome_source:{type:"minecraft:multi_noise",seed:s,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:s,biome_source:{type:"minecraft:the_end",seed:s},settings:"minecraft:end"}}}}}}))}ve.initWorldSettingsSchemas=St;Object.defineProperty(Y,"__esModule",{value:!0});Y.initSchemas=void 0;const jt=J,Mt=Q,Ct=$,Lt=re,Rt=oe,Bt=ae,Pt=ie,zt=ne,$t=ce,Tt=se,Dt=de,At=me,qt=le,Ft=ve;function It(r,o){(0,Ct.initCommonSchemas)(r,o),(0,jt.initAdvancementSchemas)(r,o),(0,Mt.initAssetsSchemas)(r,o),(0,Lt.initConditionSchemas)(r,o),(0,Bt.initDimensionTypeSchemas)(r,o),(0,Rt.initDimensionSchemas)(r,o),(0,Pt.initLootTableSchemas)(r,o),(0,zt.initPackMcmetaSchemas)(r,o),(0,$t.initPredicatesSchemas)(r,o),(0,Tt.initRecipeSchemas)(r,o),(0,Dt.initTagsSchemas)(r,o),(0,At.initTextComponentSchemas)(r,o),(0,qt.initWorldgenSchemas)(r,o),(0,Ft.initWorldSettingsSchemas)(r,o)}Y.initSchemas=It;var Et=W&&W.__createBinding||(Object.create?function(r,o,e,t){t===void 0&&(t=e);var s=Object.getOwnPropertyDescriptor(o,e);(!s||("get"in s?!o.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return o[e]}}),Object.defineProperty(r,t,s)}:function(r,o,e,t){t===void 0&&(t=e),r[t]=o[e]}),Ut=W&&W.__setModuleDefault||(Object.create?function(r,o){Object.defineProperty(r,"default",{enumerable:!0,value:o})}:function(r,o){r.default=o}),Wt=W&&W.__importStar||function(r){if(r&&r.__esModule)return r;var o={};if(r!=null)for(var e in r)e!=="default"&&Object.prototype.hasOwnProperty.call(r,e)&&Et(o,r,e);return Ut(o,r),o};Object.defineProperty(q,"__esModule",{value:!0});var Le=q.getSchemas=Pe=q.getCollections=Be=q.lootContext=void 0;const Re=v,Gt=Z,Vt=Y;var Be=q.lootContext=Wt(B);function Ht(){const r=new Re.CollectionRegistry;return(0,Gt.initCollections)(r),r}var Pe=q.getCollections=Ht;function Kt(r){const o=new Re.SchemaRegistry;return(0,Vt.initSchemas)(o,r),o}Le=q.getSchemas=Kt;var Yt=Fe({__proto__:null,get getSchemas(){return Le},get getCollections(){return Pe},get lootContext(){return Be},default:q},[q]);export{Yt as i}; +//# sourceMappingURL=index.43e8f1d5.js.map diff --git a/assets/index.a00dac78.js.map b/assets/index.43e8f1d5.js.map similarity index 99% rename from assets/index.a00dac78.js.map rename to assets/index.43e8f1d5.js.map index 1be4985e..4ec9c99b 100644 --- a/assets/index.a00dac78.js.map +++ b/assets/index.43e8f1d5.js.map @@ -1 +1 @@ -{"version":3,"file":"index.a00dac78.js","sources":["../../node_modules/@mcschema/java-1.16/lib/Collections.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.16/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.16/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.16/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.16/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.16/lib/LootContext.js","../../node_modules/@mcschema/java-1.16/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.16/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.16/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/SurfaceBuilder.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.16/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.16/lib/schemas/index.js","../../node_modules/@mcschema/java-1.16/lib/index.js"],"sourcesContent":["\"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 collections.register('cat_texture', [\r\n 'textures/entity/cat/tabby.png',\r\n 'textures/entity/cat/black.png',\r\n 'textures/entity/cat/red.png',\r\n 'textures/entity/cat/siamese.png',\r\n 'textures/entity/cat/british_shorthair.png',\r\n 'textures/entity/cat/calico.png',\r\n 'textures/entity/cat/persian.png',\r\n 'textures/entity/cat/ragdoll.png',\r\n 'textures/entity/cat/white.png',\r\n 'textures/entity/cat/jellie.png',\r\n 'textures/entity/cat/all_black.png'\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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => (0, core_1.ChoiceNode)([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? (0, core_1.NumberNode)(config) : (0, core_1.Opt)((0, core_1.NumberNode)(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? (0, core_1.NumberNode)(config) : (0, core_1.Opt)((0, 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: (0, core_1.ObjectNode)({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n p: (0, 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) => (0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n base: (0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.MapNode)(StringNode({ validator: 'objective' }), (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: (0, exports.Range)(),\r\n period: (0, core_1.Opt)((0, core_1.NumberNode)())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }\r\n };\r\n exports.DimensionTypePresets = (node) => (0, 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) => (0, 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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n player: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, core_1.ListNode)(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: (0, core_1.Opt)((0, Common_1.Range)())\r\n },\r\n 'minecraft:consume_item': {\r\n item: (0, 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: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, Common_1.Range)()),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n empty: (0, core_1.Opt)((0, Common_1.Range)()),\r\n occupied: (0, core_1.Opt)((0, Common_1.Range)()),\r\n full: (0, core_1.Opt)((0, Common_1.Range)())\r\n })),\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: (0, core_1.Opt)((0, Common_1.Range)()),\r\n durability: (0, core_1.Opt)((0, Common_1.Range)()),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: (0, core_1.Opt)((0, Common_1.Range)()),\r\n victims: (0, core_1.Opt)((0, core_1.ListNode)(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: (0, core_1.Opt)((0, Common_1.Range)()),\r\n duration: (0, core_1.Opt)((0, Common_1.Range)())\r\n },\r\n 'minecraft:location': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n distance: (0, core_1.Opt)((0, Common_1.Range)()),\r\n entered: (0, core_1.Opt)(Reference('location_predicate')),\r\n exited: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: (0, 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: (0, 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: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, 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: (0, core_1.Opt)((0, Common_1.Range)({ integer: true }))\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: (0, core_1.Opt)((0, Common_1.Range)())\r\n },\r\n 'minecraft:used_totem': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: Reference('location_predicate')\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, core_1.ObjectNode)({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, core_1.NumberNode)()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, core_1.MapNode)(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, core_1.Opt)(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, core_1.MapNode)(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n OR: (0, core_1.ListNode)(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, Model_1.initModelSchemas)(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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) => (0, core_1.Mod)(node, {\r\n enabled: path => path.push('preset').get() === undefined\r\n });\r\n schemas.register('dimension', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, Common_1.DimensionTypePresets)(Reference('dimension_type')),\r\n generator: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n settings: (0, Common_1.NoiseSettingsPresets)(Reference('noise_settings')),\r\n biome_source: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n preset: (0, 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((0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 62 })),\r\n biomes: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:vanilla_layered': {\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n large_biomes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n legacy_biome_init_layer: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: (0, core_1.ObjectNode)({\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n features: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n layers: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: (0, core_1.ObjectNode)({\r\n altitude: (0, core_1.NumberNode)(),\r\n temperature: (0, core_1.NumberNode)(),\r\n humidity: (0, core_1.NumberNode)(),\r\n weirdness: (0, core_1.NumberNode)(),\r\n offset: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n firstOctave: (0, core_1.NumberNode)({ integer: true }),\r\n amplitudes: (0, core_1.ListNode)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.BooleanNode)(),\r\n natural: (0, core_1.BooleanNode)(),\r\n piglin_safe: (0, core_1.BooleanNode)(),\r\n respawn_anchor_works: (0, core_1.BooleanNode)(),\r\n bed_works: (0, core_1.BooleanNode)(),\r\n has_raids: (0, core_1.BooleanNode)(),\r\n has_skylight: (0, core_1.BooleanNode)(),\r\n has_ceiling: (0, core_1.BooleanNode)(),\r\n coordinate_scale: (0, core_1.NumberNode)({ min: 0.00001, max: 30000000 }),\r\n ambient_light: (0, core_1.NumberNode)(),\r\n fixed_time: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n logical_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 }),\r\n effects: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: (0, Common_1.Range)({ allowBinomial: true, integer: true }),\r\n bonus_rolls: (0, core_1.Opt)((0, Common_1.Range)({ integer: true })),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: (0, Common_1.Range)({ allowBinomial: true }),\r\n treasure: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)(StringNode({ enum: 'map_feature' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, Common_1.Range)({ bounds: true })\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: (0, Common_1.Range)({ bounds: true }),\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_contents': {\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: (0, Common_1.Range)({ allowBinomial: true })\r\n },\r\n 'minecraft:set_damage': {\r\n damage: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceSwtichNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceSwtichNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.MapNode)(StringNode({ validator: 'objective' }), (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: (0, Common_1.Range)({ bounds: true }),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 6, max: 6 }), { default: () => 6 }),\r\n description: (0, 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 = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: (0, core_1.Opt)((0, Common_1.Range)()),\r\n durability: (0, core_1.Opt)((0, Common_1.Range)()),\r\n potion: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: (0, core_1.Opt)((0, Common_1.Range)())\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', (0, core_1.ObjectNode)({\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)({\r\n position: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n x: (0, core_1.Opt)((0, Common_1.Range)()),\r\n y: (0, core_1.Opt)((0, Common_1.Range)()),\r\n z: (0, core_1.Opt)((0, Common_1.Range)())\r\n })),\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: (0, core_1.Opt)(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: (0, core_1.Opt)((0, Common_1.Range)({ integer: true, min: 0, max: 15 }))\r\n })),\r\n smokey: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: (0, 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', (0, core_1.ObjectNode)({\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: (0, core_1.Opt)((0, Common_1.Range)()),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n { type: 'boolean', node: (0, core_1.BooleanNode)(), change: _ => true },\r\n {\r\n type: 'object', node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate')))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: (0, core_1.Opt)((0, Common_1.Range)()),\r\n duration: (0, core_1.Opt)((0, Common_1.Range)()),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, core_1.ObjectNode)({\r\n x: (0, core_1.Opt)((0, Common_1.Range)()),\r\n y: (0, core_1.Opt)((0, Common_1.Range)()),\r\n z: (0, core_1.Opt)((0, Common_1.Range)()),\r\n absolute: (0, core_1.Opt)((0, Common_1.Range)()),\r\n horizontal: (0, core_1.Opt)((0, Common_1.Range)())\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: (0, core_1.Opt)(Reference('entity_predicate')),\r\n targeted_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n player: (0, core_1.Opt)(Reference('player_predicate')),\r\n fishing_hook: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n in_open_water: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n catType: (0, core_1.Opt)(StringNode({ enum: 'cat_texture' })),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: (0, core_1.Opt)((0, Common_1.Range)()),\r\n taken: (0, core_1.Opt)((0, Common_1.Range)()),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, core_1.Opt)(StringNode()) /* TODO */,\r\n font: (0, core_1.Opt)(StringNode()),\r\n bold: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component')),\r\n contents: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tag: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n })),\r\n contents: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n surface_builder: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_surface_builder' } }),\r\n depth: (0, core_1.NumberNode)(),\r\n scale: (0, core_1.NumberNode)(),\r\n temperature: (0, core_1.NumberNode)(),\r\n downfall: (0, core_1.NumberNode)(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n player_spawn_friendly: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n creature_spawn_probability: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n effects: (0, core_1.ObjectNode)({\r\n sky_color: (0, core_1.NumberNode)({ color: true }),\r\n fog_color: (0, core_1.NumberNode)({ color: true }),\r\n water_color: (0, core_1.NumberNode)({ color: true }),\r\n water_fog_color: (0, core_1.NumberNode)({ color: true }),\r\n grass_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n foliage_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n grass_color_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: (0, core_1.Opt)(StringNode()),\r\n mood_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_delay: (0, core_1.NumberNode)({ integer: true }),\r\n block_search_extent: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)()\r\n })),\r\n additions_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n music: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n min_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n max_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n replace_current_music: (0, core_1.BooleanNode)()\r\n })),\r\n particle: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n options: (0, core_1.ObjectNode)({\r\n type: StringNode()\r\n }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }))\r\n }),\r\n starts: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n spawners: (0, 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 ] }), (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n minCount: (0, core_1.NumberNode)({ integer: true }),\r\n maxCount: (0, 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: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n energy_budget: (0, core_1.NumberNode)(),\r\n charge: (0, 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: (0, core_1.MapNode)(StringNode({ enum: ['air', 'liquid'] }), (0, core_1.Mod)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: (0, core_1.ListNode)((0, core_1.Mod)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: (0, core_1.ObjectNode)({\r\n probability: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n bottom_offset: (0, core_1.NumberNode)({ integer: true }),\r\n top_offset: (0, core_1.NumberNode)({ integer: true })\r\n };\r\n const ChanceConfig = {\r\n chance: (0, core_1.NumberNode)({ integer: true, min: 0 })\r\n };\r\n const CountConfig = {\r\n count: (0, Common_1.UniformInt)({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n schemas.register('configured_decorator', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/decorator' } }),\r\n config: (0, 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: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n extra_count: (0, core_1.NumberNode)({ integer: true }),\r\n extra_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:count_multilayer': CountConfig,\r\n 'minecraft:count_noise': {\r\n noise_level: (0, core_1.NumberNode)(),\r\n below_noise: (0, core_1.NumberNode)({ integer: true }),\r\n above_noise: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:count_noise_biased': {\r\n noise_to_count_ratio: (0, core_1.NumberNode)({ integer: true }),\r\n noise_factor: (0, core_1.NumberNode)(),\r\n noise_offset: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n spread: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n processors: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:rule': {\r\n rules: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n position_predicate: (0, 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: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 255, integer: true }),\r\n max_dist: (0, core_1.NumberNode)({ min: 0, max: 255, integer: true }),\r\n min_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n max_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n };\r\n schemas.register('pos_rule_test', (0, 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', (0, 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: (0, 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: (0, 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: (0, core_1.BooleanNode)(),\r\n project: (0, core_1.BooleanNode)(),\r\n need_water: (0, core_1.BooleanNode)(),\r\n xspread: (0, core_1.NumberNode)({ integer: true }),\r\n yspread: (0, core_1.NumberNode)({ integer: true }),\r\n zspread: (0, core_1.NumberNode)({ integer: true }),\r\n tries: (0, core_1.NumberNode)({ integer: true }),\r\n state_provider: Reference('block_state_provider'),\r\n block_placer: Reference('block_placer'),\r\n whitelist: (0, core_1.ListNode)(Reference('block_state')),\r\n blacklist: (0, core_1.ListNode)(Reference('block_state'))\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: (0, Common_1.UniformInt)({ min: 0, max: 4, maxSpread: 4 }),\r\n half_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4 }),\r\n targets: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n };\r\n const OreConfig = {\r\n state: Reference('block_state'),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n target: Reference('rule_test')\r\n };\r\n const CountConfig = {\r\n count: (0, Common_1.UniformInt)({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n const Feature = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: (0, core_1.ObjectNode)({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: (0, Common_1.UniformInt)({ min: 0, max: 2, maxSpread: 1 }),\r\n height: (0, 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: (0, Common_1.UniformInt)({ min: 0, max: 8, maxSpread: 8 }),\r\n rim_size: (0, 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: (0, core_1.BooleanNode)(),\r\n exit: (0, core_1.Opt)(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n crystal_beam_target: (0, core_1.Opt)(Reference('block_pos')),\r\n spikes: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n centerX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n centerZ: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n guarded: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: (0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n chance: (0, 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: (0, 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: (0, core_1.ListNode)(Reference('block_state')),\r\n place_in: (0, core_1.ListNode)(Reference('block_state')),\r\n place_under: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: (0, core_1.ListNode)(Feature)\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: (0, core_1.NumberNode)({ integer: true }),\r\n hole_count: (0, core_1.NumberNode)({ integer: true }),\r\n requires_block_below: (0, core_1.BooleanNode)(),\r\n valid_blocks: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n max_water_depth: (0, core_1.NumberNode)({ integer: true }),\r\n ignore_vines: (0, 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: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 })\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: (0, Common_1.UniformInt)({ min: 0, max: 8, maxSpread: 8 }),\r\n offset: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: (0, Common_1.UniformInt)({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: (0, Common_1.UniformInt)({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: (0, Common_1.UniformInt)({ min: 0, max: 16, maxSpread: 8 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: (0, core_1.ListNode)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 81 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n upper_limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n middle_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n extra_size: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n bedrock_floor_position: (0, core_1.NumberNode)({ integer: true }),\r\n sea_level: (0, core_1.NumberNode)({ integer: true }),\r\n disable_mob_generation: (0, core_1.BooleanNode)(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: (0, core_1.ObjectNode)({\r\n height: (0, core_1.NumberNode)({ integer: true }),\r\n density_factor: (0, core_1.NumberNode)(),\r\n density_offset: (0, core_1.NumberNode)(),\r\n size_horizontal: (0, core_1.NumberNode)({ integer: true }),\r\n size_vertical: (0, core_1.NumberNode)({ integer: true }),\r\n simplex_surface_noise: (0, core_1.BooleanNode)(),\r\n random_density_offset: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n island_noise_override: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n amplified: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n sampling: (0, core_1.ObjectNode)({\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n xz_factor: (0, core_1.NumberNode)(),\r\n y_factor: (0, core_1.NumberNode)()\r\n }),\r\n bottom_slide: (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)({ integer: true }),\r\n size: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n }),\r\n top_slide: (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)({ integer: true }),\r\n size: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, 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', (0, core_1.ObjectNode)({\r\n stronghold: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n distance: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n spread: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n spacing: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n separation: (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n cluster_probability: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/surface_builder' } }),\r\n config: (0, 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 = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, 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: (0, 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 (0, Biome_1.initBiomeSchemas)(schemas, collections);\r\n (0, Carver_1.initCarverSchemas)(schemas, collections);\r\n (0, Decorator_1.initDecoratorSchemas)(schemas, collections);\r\n (0, Feature_1.initFeatureSchemas)(schemas, collections);\r\n (0, NoiseSettings_1.initNoiseSettingsSchemas)(schemas, collections);\r\n (0, ProcessorList_1.initProcessorListSchemas)(schemas, collections);\r\n (0, StructureFeature_1.initStructureFeatureSchemas)(schemas, collections);\r\n (0, SurfaceBuilder_1.initSurfaceBuilderSchemas)(schemas, collections);\r\n (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n generate_features: (0, core_1.BooleanNode)(),\r\n bonus_chest: (0, core_1.BooleanNode)(),\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n dimensions: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:vanilla_layered',\r\n seed\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n seed,\r\n humidity_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n altitude_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n weirdness_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n temperature_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n biomes: [\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: 0.0 },\r\n biome: 'minecraft:nether_wastes'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: -0.5 },\r\n biome: 'minecraft:soul_sand_valley'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.4, humidity: 0.0 },\r\n biome: 'minecraft:crimson_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.375, temperature: 0.0, humidity: 0.5 },\r\n biome: 'minecraft:warped_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.175, temperature: -0.5, humidity: 0.0 },\r\n biome: 'minecraft:basalt_deltas'\r\n }\r\n ]\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, DimensionType_1.initDimensionTypeSchemas)(schemas, collections);\r\n (0, Dimension_1.initDimensionSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, TextComponent_1.initTextComponentSchemas)(schemas, collections);\r\n (0, worldgen_1.initWorldgenSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, schemas_1.initSchemas)(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n"],"names":["require$$0","core_1","Common_1","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","this"],"mappings":"81BACA,OAAO,eAAe,EAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EACrC,EAAA,gBAAG,OAC1B,YAAyB,EAAa,CAClC,EAAY,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,2BACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,sBACA,uBACA,mBACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,sBACA,uBACA,mBACR,CAAK,EACD,EAAY,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,SACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,MACR,CAAK,EACD,EAAY,SAAS,WAAY,CAC7B,WACA,WACA,YACA,WACR,CAAK,EACD,EAAY,SAAS,0BAA2B,CAC5C,sBACA,mBACA,gBACA,sBACA,kBACA,4BACR,CAAK,EACD,EAAY,SAAS,gBAAiB,CAClC,OACA,gBACA,SACA,eACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,eACA,OACA,SACA,eACR,CAAK,EACD,EAAY,SAAS,iCAAkC,CACnD,gCACA,sCACA,qBACR,CAAK,EACD,EAAY,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,cACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,SACR,CAAK,EACD,EAAY,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,iBACR,CAAK,EACD,EAAY,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,yBACR,CAAK,EACD,EAAY,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,yBACR,CAAK,EACD,EAAY,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,2BACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,SACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,kBACR,CAAK,EACD,EAAY,SAAS,kBAAmB,CACpC,MACA,QACR,CAAK,EACD,EAAY,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,iBACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,gCACA,gCACA,8BACA,kCACA,4CACA,iCACA,kCACA,kCACA,gCACA,iCACA,mCACR,CAAK,CACL,CACA,EAAA,gBAA0B,mCCnhB1B,OAAO,eAAc,EAAU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"} \ No newline at end of file +{"version":3,"file":"index.43e8f1d5.js","sources":["../../node_modules/@mcschema/java-1.16/lib/Collections.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.16/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.16/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.16/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.16/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.16/lib/LootContext.js","../../node_modules/@mcschema/java-1.16/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.16/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.16/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/SurfaceBuilder.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.16/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.16/lib/schemas/index.js","../../node_modules/@mcschema/java-1.16/lib/index.js"],"sourcesContent":["\"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 collections.register('cat_texture', [\r\n 'textures/entity/cat/tabby.png',\r\n 'textures/entity/cat/black.png',\r\n 'textures/entity/cat/red.png',\r\n 'textures/entity/cat/siamese.png',\r\n 'textures/entity/cat/british_shorthair.png',\r\n 'textures/entity/cat/calico.png',\r\n 'textures/entity/cat/persian.png',\r\n 'textures/entity/cat/ragdoll.png',\r\n 'textures/entity/cat/white.png',\r\n 'textures/entity/cat/jellie.png',\r\n 'textures/entity/cat/all_black.png'\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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => (0, core_1.ChoiceNode)([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? (0, core_1.NumberNode)(config) : (0, core_1.Opt)((0, core_1.NumberNode)(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? (0, core_1.NumberNode)(config) : (0, core_1.Opt)((0, 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: (0, core_1.ObjectNode)({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n p: (0, 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) => (0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n base: (0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.MapNode)(StringNode({ validator: 'objective' }), (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: (0, exports.Range)(),\r\n period: (0, core_1.Opt)((0, core_1.NumberNode)())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }\r\n };\r\n exports.DimensionTypePresets = (node) => (0, 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) => (0, 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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n player: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, core_1.ListNode)(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: (0, core_1.Opt)((0, Common_1.Range)())\r\n },\r\n 'minecraft:consume_item': {\r\n item: (0, 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: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, Common_1.Range)()),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n empty: (0, core_1.Opt)((0, Common_1.Range)()),\r\n occupied: (0, core_1.Opt)((0, Common_1.Range)()),\r\n full: (0, core_1.Opt)((0, Common_1.Range)())\r\n })),\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: (0, core_1.Opt)((0, Common_1.Range)()),\r\n durability: (0, core_1.Opt)((0, Common_1.Range)()),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: (0, core_1.Opt)((0, Common_1.Range)()),\r\n victims: (0, core_1.Opt)((0, core_1.ListNode)(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: (0, core_1.Opt)((0, Common_1.Range)()),\r\n duration: (0, core_1.Opt)((0, Common_1.Range)())\r\n },\r\n 'minecraft:location': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n distance: (0, core_1.Opt)((0, Common_1.Range)()),\r\n entered: (0, core_1.Opt)(Reference('location_predicate')),\r\n exited: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: (0, 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: (0, 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: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, 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: (0, core_1.Opt)((0, Common_1.Range)({ integer: true }))\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: (0, core_1.Opt)((0, Common_1.Range)())\r\n },\r\n 'minecraft:used_totem': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: Reference('location_predicate')\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, core_1.ObjectNode)({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, core_1.NumberNode)()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, core_1.MapNode)(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, core_1.Opt)(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, core_1.MapNode)(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n OR: (0, core_1.ListNode)(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, Model_1.initModelSchemas)(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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) => (0, core_1.Mod)(node, {\r\n enabled: path => path.push('preset').get() === undefined\r\n });\r\n schemas.register('dimension', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, Common_1.DimensionTypePresets)(Reference('dimension_type')),\r\n generator: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n settings: (0, Common_1.NoiseSettingsPresets)(Reference('noise_settings')),\r\n biome_source: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n preset: (0, 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((0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 62 })),\r\n biomes: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:vanilla_layered': {\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n large_biomes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n legacy_biome_init_layer: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: (0, core_1.ObjectNode)({\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n features: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n layers: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: (0, core_1.ObjectNode)({\r\n altitude: (0, core_1.NumberNode)(),\r\n temperature: (0, core_1.NumberNode)(),\r\n humidity: (0, core_1.NumberNode)(),\r\n weirdness: (0, core_1.NumberNode)(),\r\n offset: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n firstOctave: (0, core_1.NumberNode)({ integer: true }),\r\n amplitudes: (0, core_1.ListNode)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.BooleanNode)(),\r\n natural: (0, core_1.BooleanNode)(),\r\n piglin_safe: (0, core_1.BooleanNode)(),\r\n respawn_anchor_works: (0, core_1.BooleanNode)(),\r\n bed_works: (0, core_1.BooleanNode)(),\r\n has_raids: (0, core_1.BooleanNode)(),\r\n has_skylight: (0, core_1.BooleanNode)(),\r\n has_ceiling: (0, core_1.BooleanNode)(),\r\n coordinate_scale: (0, core_1.NumberNode)({ min: 0.00001, max: 30000000 }),\r\n ambient_light: (0, core_1.NumberNode)(),\r\n fixed_time: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n logical_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 }),\r\n effects: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: (0, Common_1.Range)({ allowBinomial: true, integer: true }),\r\n bonus_rolls: (0, core_1.Opt)((0, Common_1.Range)({ integer: true })),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: (0, Common_1.Range)({ allowBinomial: true }),\r\n treasure: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)(StringNode({ enum: 'map_feature' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, Common_1.Range)({ bounds: true })\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: (0, Common_1.Range)({ bounds: true }),\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_contents': {\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: (0, Common_1.Range)({ allowBinomial: true })\r\n },\r\n 'minecraft:set_damage': {\r\n damage: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceSwtichNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceSwtichNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.MapNode)(StringNode({ validator: 'objective' }), (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: (0, Common_1.Range)({ bounds: true }),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 6, max: 6 }), { default: () => 6 }),\r\n description: (0, 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 = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: (0, core_1.Opt)((0, Common_1.Range)()),\r\n durability: (0, core_1.Opt)((0, Common_1.Range)()),\r\n potion: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: (0, core_1.Opt)((0, Common_1.Range)())\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', (0, core_1.ObjectNode)({\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)({\r\n position: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n x: (0, core_1.Opt)((0, Common_1.Range)()),\r\n y: (0, core_1.Opt)((0, Common_1.Range)()),\r\n z: (0, core_1.Opt)((0, Common_1.Range)())\r\n })),\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: (0, core_1.Opt)(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: (0, core_1.Opt)((0, Common_1.Range)({ integer: true, min: 0, max: 15 }))\r\n })),\r\n smokey: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: (0, 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', (0, core_1.ObjectNode)({\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: (0, core_1.Opt)((0, Common_1.Range)()),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n { type: 'boolean', node: (0, core_1.BooleanNode)(), change: _ => true },\r\n {\r\n type: 'object', node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate')))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: (0, core_1.Opt)((0, Common_1.Range)()),\r\n duration: (0, core_1.Opt)((0, Common_1.Range)()),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, core_1.ObjectNode)({\r\n x: (0, core_1.Opt)((0, Common_1.Range)()),\r\n y: (0, core_1.Opt)((0, Common_1.Range)()),\r\n z: (0, core_1.Opt)((0, Common_1.Range)()),\r\n absolute: (0, core_1.Opt)((0, Common_1.Range)()),\r\n horizontal: (0, core_1.Opt)((0, Common_1.Range)())\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: (0, core_1.Opt)(Reference('entity_predicate')),\r\n targeted_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n player: (0, core_1.Opt)(Reference('player_predicate')),\r\n fishing_hook: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n in_open_water: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n catType: (0, core_1.Opt)(StringNode({ enum: 'cat_texture' })),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: (0, core_1.Opt)((0, Common_1.Range)()),\r\n taken: (0, core_1.Opt)((0, Common_1.Range)()),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, core_1.Opt)(StringNode()) /* TODO */,\r\n font: (0, core_1.Opt)(StringNode()),\r\n bold: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component')),\r\n contents: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tag: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n })),\r\n contents: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n surface_builder: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_surface_builder' } }),\r\n depth: (0, core_1.NumberNode)(),\r\n scale: (0, core_1.NumberNode)(),\r\n temperature: (0, core_1.NumberNode)(),\r\n downfall: (0, core_1.NumberNode)(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n player_spawn_friendly: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n creature_spawn_probability: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n effects: (0, core_1.ObjectNode)({\r\n sky_color: (0, core_1.NumberNode)({ color: true }),\r\n fog_color: (0, core_1.NumberNode)({ color: true }),\r\n water_color: (0, core_1.NumberNode)({ color: true }),\r\n water_fog_color: (0, core_1.NumberNode)({ color: true }),\r\n grass_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n foliage_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n grass_color_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: (0, core_1.Opt)(StringNode()),\r\n mood_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_delay: (0, core_1.NumberNode)({ integer: true }),\r\n block_search_extent: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)()\r\n })),\r\n additions_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n music: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n min_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n max_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n replace_current_music: (0, core_1.BooleanNode)()\r\n })),\r\n particle: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n options: (0, core_1.ObjectNode)({\r\n type: StringNode()\r\n }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }))\r\n }),\r\n starts: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n spawners: (0, 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 ] }), (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n minCount: (0, core_1.NumberNode)({ integer: true }),\r\n maxCount: (0, 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: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n energy_budget: (0, core_1.NumberNode)(),\r\n charge: (0, 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: (0, core_1.MapNode)(StringNode({ enum: ['air', 'liquid'] }), (0, core_1.Mod)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: (0, core_1.ListNode)((0, core_1.Mod)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: (0, core_1.ObjectNode)({\r\n probability: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n bottom_offset: (0, core_1.NumberNode)({ integer: true }),\r\n top_offset: (0, core_1.NumberNode)({ integer: true })\r\n };\r\n const ChanceConfig = {\r\n chance: (0, core_1.NumberNode)({ integer: true, min: 0 })\r\n };\r\n const CountConfig = {\r\n count: (0, Common_1.UniformInt)({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n schemas.register('configured_decorator', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/decorator' } }),\r\n config: (0, 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: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n extra_count: (0, core_1.NumberNode)({ integer: true }),\r\n extra_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:count_multilayer': CountConfig,\r\n 'minecraft:count_noise': {\r\n noise_level: (0, core_1.NumberNode)(),\r\n below_noise: (0, core_1.NumberNode)({ integer: true }),\r\n above_noise: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:count_noise_biased': {\r\n noise_to_count_ratio: (0, core_1.NumberNode)({ integer: true }),\r\n noise_factor: (0, core_1.NumberNode)(),\r\n noise_offset: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n spread: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n processors: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:rule': {\r\n rules: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n position_predicate: (0, 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: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 255, integer: true }),\r\n max_dist: (0, core_1.NumberNode)({ min: 0, max: 255, integer: true }),\r\n min_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n max_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n };\r\n schemas.register('pos_rule_test', (0, 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', (0, 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: (0, 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: (0, 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: (0, core_1.BooleanNode)(),\r\n project: (0, core_1.BooleanNode)(),\r\n need_water: (0, core_1.BooleanNode)(),\r\n xspread: (0, core_1.NumberNode)({ integer: true }),\r\n yspread: (0, core_1.NumberNode)({ integer: true }),\r\n zspread: (0, core_1.NumberNode)({ integer: true }),\r\n tries: (0, core_1.NumberNode)({ integer: true }),\r\n state_provider: Reference('block_state_provider'),\r\n block_placer: Reference('block_placer'),\r\n whitelist: (0, core_1.ListNode)(Reference('block_state')),\r\n blacklist: (0, core_1.ListNode)(Reference('block_state'))\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: (0, Common_1.UniformInt)({ min: 0, max: 4, maxSpread: 4 }),\r\n half_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4 }),\r\n targets: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n };\r\n const OreConfig = {\r\n state: Reference('block_state'),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n target: Reference('rule_test')\r\n };\r\n const CountConfig = {\r\n count: (0, Common_1.UniformInt)({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n const Feature = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: (0, core_1.ObjectNode)({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: (0, Common_1.UniformInt)({ min: 0, max: 2, maxSpread: 1 }),\r\n height: (0, 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: (0, Common_1.UniformInt)({ min: 0, max: 8, maxSpread: 8 }),\r\n rim_size: (0, 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: (0, core_1.BooleanNode)(),\r\n exit: (0, core_1.Opt)(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n crystal_beam_target: (0, core_1.Opt)(Reference('block_pos')),\r\n spikes: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n centerX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n centerZ: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n guarded: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: (0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n chance: (0, 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: (0, 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: (0, core_1.ListNode)(Reference('block_state')),\r\n place_in: (0, core_1.ListNode)(Reference('block_state')),\r\n place_under: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: (0, core_1.ListNode)(Feature)\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: (0, core_1.NumberNode)({ integer: true }),\r\n hole_count: (0, core_1.NumberNode)({ integer: true }),\r\n requires_block_below: (0, core_1.BooleanNode)(),\r\n valid_blocks: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n max_water_depth: (0, core_1.NumberNode)({ integer: true }),\r\n ignore_vines: (0, 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: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 })\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: (0, Common_1.UniformInt)({ min: 0, max: 8, maxSpread: 8 }),\r\n offset: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: (0, Common_1.UniformInt)({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: (0, Common_1.UniformInt)({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: (0, Common_1.UniformInt)({ min: 0, max: 16, maxSpread: 8 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: (0, core_1.ListNode)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 81 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n upper_limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n middle_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n extra_size: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n bedrock_floor_position: (0, core_1.NumberNode)({ integer: true }),\r\n sea_level: (0, core_1.NumberNode)({ integer: true }),\r\n disable_mob_generation: (0, core_1.BooleanNode)(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: (0, core_1.ObjectNode)({\r\n height: (0, core_1.NumberNode)({ integer: true }),\r\n density_factor: (0, core_1.NumberNode)(),\r\n density_offset: (0, core_1.NumberNode)(),\r\n size_horizontal: (0, core_1.NumberNode)({ integer: true }),\r\n size_vertical: (0, core_1.NumberNode)({ integer: true }),\r\n simplex_surface_noise: (0, core_1.BooleanNode)(),\r\n random_density_offset: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n island_noise_override: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n amplified: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n sampling: (0, core_1.ObjectNode)({\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n xz_factor: (0, core_1.NumberNode)(),\r\n y_factor: (0, core_1.NumberNode)()\r\n }),\r\n bottom_slide: (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)({ integer: true }),\r\n size: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n }),\r\n top_slide: (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)({ integer: true }),\r\n size: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, 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', (0, core_1.ObjectNode)({\r\n stronghold: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n distance: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n spread: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n spacing: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n separation: (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n cluster_probability: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/surface_builder' } }),\r\n config: (0, 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 = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, 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: (0, 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 (0, Biome_1.initBiomeSchemas)(schemas, collections);\r\n (0, Carver_1.initCarverSchemas)(schemas, collections);\r\n (0, Decorator_1.initDecoratorSchemas)(schemas, collections);\r\n (0, Feature_1.initFeatureSchemas)(schemas, collections);\r\n (0, NoiseSettings_1.initNoiseSettingsSchemas)(schemas, collections);\r\n (0, ProcessorList_1.initProcessorListSchemas)(schemas, collections);\r\n (0, StructureFeature_1.initStructureFeatureSchemas)(schemas, collections);\r\n (0, SurfaceBuilder_1.initSurfaceBuilderSchemas)(schemas, collections);\r\n (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n generate_features: (0, core_1.BooleanNode)(),\r\n bonus_chest: (0, core_1.BooleanNode)(),\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n dimensions: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:vanilla_layered',\r\n seed\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n seed,\r\n humidity_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n altitude_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n weirdness_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n temperature_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n biomes: [\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: 0.0 },\r\n biome: 'minecraft:nether_wastes'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: -0.5 },\r\n biome: 'minecraft:soul_sand_valley'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.4, humidity: 0.0 },\r\n biome: 'minecraft:crimson_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.375, temperature: 0.0, humidity: 0.5 },\r\n biome: 'minecraft:warped_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.175, temperature: -0.5, humidity: 0.0 },\r\n biome: 'minecraft:basalt_deltas'\r\n }\r\n ]\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, DimensionType_1.initDimensionTypeSchemas)(schemas, collections);\r\n (0, Dimension_1.initDimensionSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, TextComponent_1.initTextComponentSchemas)(schemas, collections);\r\n (0, worldgen_1.initWorldgenSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, schemas_1.initSchemas)(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n"],"names":["require$$0","core_1","Common_1","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","this"],"mappings":"81BACA,OAAO,eAAe,EAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EACrC,EAAA,gBAAG,OAC1B,YAAyB,EAAa,CAClC,EAAY,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,2BACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,sBACA,uBACA,mBACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,sBACA,uBACA,mBACR,CAAK,EACD,EAAY,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,SACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,MACR,CAAK,EACD,EAAY,SAAS,WAAY,CAC7B,WACA,WACA,YACA,WACR,CAAK,EACD,EAAY,SAAS,0BAA2B,CAC5C,sBACA,mBACA,gBACA,sBACA,kBACA,4BACR,CAAK,EACD,EAAY,SAAS,gBAAiB,CAClC,OACA,gBACA,SACA,eACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,eACA,OACA,SACA,eACR,CAAK,EACD,EAAY,SAAS,iCAAkC,CACnD,gCACA,sCACA,qBACR,CAAK,EACD,EAAY,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,cACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,SACR,CAAK,EACD,EAAY,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,iBACR,CAAK,EACD,EAAY,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,yBACR,CAAK,EACD,EAAY,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,yBACR,CAAK,EACD,EAAY,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,2BACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,SACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,kBACR,CAAK,EACD,EAAY,SAAS,kBAAmB,CACpC,MACA,QACR,CAAK,EACD,EAAY,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,iBACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,gCACA,gCACA,8BACA,kCACA,4CACA,iCACA,kCACA,kCACA,gCACA,iCACA,mCACR,CAAK,CACL,CACA,EAAA,gBAA0B,mCCnhB1B,OAAO,eAAc,EAAU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"} \ No newline at end of file diff --git a/assets/index.8ac52a74.js b/assets/index.8ac52a74.js new file mode 100644 index 00000000..43cf9673 --- /dev/null +++ b/assets/index.8ac52a74.js @@ -0,0 +1,34 @@ +function re(B,E){return E.forEach(function(K){K&&typeof K!="string"&&!Array.isArray(K)&&Object.keys(K).forEach(function($){if($!=="default"&&!($ in B)){var C=Object.getOwnPropertyDescriptor(K,$);Object.defineProperty(B,$,C.get?C:{enumerable:!0,get:function(){return K[$]}})}})}),Object.freeze(Object.defineProperty(B,Symbol.toStringTag,{value:"Module"}))}(function(){var B="ace",E=function(){return this}();!E&&typeof window!="undefined"&&(E=window);var K=function(t,e,n){if(typeof t!="string"){K.original?K.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(n=e),K.modules[t]||(K.payloads[t]=n,K.modules[t]=null)};K.modules={},K.payloads={};var $=function(t,e,n){if(typeof e=="string"){var i=a(t,e);if(i!=null)return n&&n(),i}else if(Object.prototype.toString.call(e)==="[object Array]"){for(var r=[],o=0,u=e.length;o<u;++o){var f=a(t,e[o]);if(f==null&&C.original)return;r.push(f)}return n&&n.apply(null,r)||!0}},C=function(t,e){var n=$("",t,e);return n==null&&C.original?C.original.apply(this,arguments):n},d=function(t,e){if(e.indexOf("!")!==-1){var n=e.split("!");return d(t,n[0])+"!"+d(t,n[1])}if(e.charAt(0)=="."){var i=t.split("/").slice(0,-1).join("/");for(e=i+"/"+e;e.indexOf(".")!==-1&&r!=e;){var r=e;e=e.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return e},a=function(t,e){e=d(t,e);var n=K.modules[e];if(!n){if(n=K.payloads[e],typeof n=="function"){var i={},r={id:e,uri:"",exports:i,packaged:!0},o=function(f,v){return $(e,f,v)},u=n(o,i,r);i=u||r.exports,K.modules[e]=i,delete K.payloads[e]}n=K.modules[e]=i||n}return n};function s(t){var e=E;t&&(E[t]||(E[t]={}),e=E[t]),(!e.define||!e.define.packaged)&&(K.original=e.define,e.define=K,e.define.packaged=!0),(!e.acequire||!e.acequire.packaged)&&(C.original=e.acequire,e.acequire=C,e.acequire.packaged=!0)}s(B)})();ace.define("ace/lib/regexp",["require","exports","module"],function(B,E,K){var $={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},C=$.exec.call(/()??/,"")[1]===void 0,d=function(){var t=/^/g;return $.test.call(t,""),!t.lastIndex}();if(d&&C)return;RegExp.prototype.exec=function(t){var e=$.exec.apply(this,arguments),n,i;if(typeof t=="string"&&e){if(!C&&e.length>1&&s(e,"")>-1&&(i=RegExp(this.source,$.replace.call(a(this),"g","")),$.replace.call(t.slice(e.index),i,function(){for(var o=1;o<arguments.length-2;o++)arguments[o]===void 0&&(e[o]=void 0)})),this._xregexp&&this._xregexp.captureNames)for(var r=1;r<e.length;r++)n=this._xregexp.captureNames[r-1],n&&(e[n]=e[r]);!d&&this.global&&!e[0].length&&this.lastIndex>e.index&&this.lastIndex--}return e},d||(RegExp.prototype.test=function(t){var e=$.exec.call(this,t);return e&&this.global&&!e[0].length&&this.lastIndex>e.index&&this.lastIndex--,!!e});function a(t){return(t.global?"g":"")+(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.extended?"x":"")+(t.sticky?"y":"")}function s(t,e,n){if(Array.prototype.indexOf)return t.indexOf(e,n);for(var i=n||0;i<t.length;i++)if(t[i]===e)return i;return-1}});ace.define("ace/lib/es5-shim",["require","exports","module"],function(B,E,K){function $(){}Function.prototype.bind||(Function.prototype.bind=function(y){var x=this;if(typeof x!="function")throw new TypeError("Function.prototype.bind called on incompatible "+x);var R=s.call(arguments,1),T=function(){if(this instanceof T){var P=x.apply(this,R.concat(s.call(arguments)));return Object(P)===P?P:this}else return x.apply(y,R.concat(s.call(arguments)))};return x.prototype&&($.prototype=x.prototype,T.prototype=new $,$.prototype=null),T});var C=Function.prototype.call,d=Array.prototype,a=Object.prototype,s=d.slice,t=C.bind(a.toString),e=C.bind(a.hasOwnProperty),n,i,r,o,u;if((u=e(a,"__defineGetter__"))&&(n=C.bind(a.__defineGetter__),i=C.bind(a.__defineSetter__),r=C.bind(a.__lookupGetter__),o=C.bind(a.__lookupSetter__)),[1,2].splice(0).length!=2)if(function(){function M(R){var T=new Array(R+2);return T[0]=T[1]=0,T}var y=[],x;if(y.splice.apply(y,M(20)),y.splice.apply(y,M(26)),x=y.length,y.splice(5,0,"XXX"),x+1==y.length,x+1==y.length)return!0}()){var f=Array.prototype.splice;Array.prototype.splice=function(M,y){return arguments.length?f.apply(this,[M===void 0?0:M,y===void 0?this.length-M:y].concat(s.call(arguments,2))):[]}}else Array.prototype.splice=function(M,y){var x=this.length;M>0?M>x&&(M=x):M==null?M=0:M<0&&(M=Math.max(x+M,0)),M+y<x||(y=x-M);var R=this.slice(M,M+y),T=s.call(arguments,2),P=T.length;if(M===x)P&&this.push.apply(this,T);else{var N=Math.min(y,x-M),_=M+N,U=_+P-N,j=x-_,Q=x-N;if(U<_)for(var X=0;X<j;++X)this[U+X]=this[_+X];else if(U>_)for(X=j;X--;)this[U+X]=this[_+X];if(P&&M===Q)this.length=Q,this.push.apply(this,T);else for(this.length=Q+P,X=0;X<P;++X)this[M+X]=T[X]}return R};Array.isArray||(Array.isArray=function(y){return t(y)=="[object Array]"});var v=Object("a"),w=v[0]!="a"||!(0 in v);if(Array.prototype.forEach||(Array.prototype.forEach=function(y){var x=z(this),R=w&&t(this)=="[object String]"?this.split(""):x,T=arguments[1],P=-1,N=R.length>>>0;if(t(y)!="[object Function]")throw new TypeError;for(;++P<N;)P in R&&y.call(T,R[P],P,x)}),Array.prototype.map||(Array.prototype.map=function(y){var x=z(this),R=w&&t(this)=="[object String]"?this.split(""):x,T=R.length>>>0,P=Array(T),N=arguments[1];if(t(y)!="[object Function]")throw new TypeError(y+" is not a function");for(var _=0;_<T;_++)_ in R&&(P[_]=y.call(N,R[_],_,x));return P}),Array.prototype.filter||(Array.prototype.filter=function(y){var x=z(this),R=w&&t(this)=="[object String]"?this.split(""):x,T=R.length>>>0,P=[],N,_=arguments[1];if(t(y)!="[object Function]")throw new TypeError(y+" is not a function");for(var U=0;U<T;U++)U in R&&(N=R[U],y.call(_,N,U,x)&&P.push(N));return P}),Array.prototype.every||(Array.prototype.every=function(y){var x=z(this),R=w&&t(this)=="[object String]"?this.split(""):x,T=R.length>>>0,P=arguments[1];if(t(y)!="[object Function]")throw new TypeError(y+" is not a function");for(var N=0;N<T;N++)if(N in R&&!y.call(P,R[N],N,x))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(y){var x=z(this),R=w&&t(this)=="[object String]"?this.split(""):x,T=R.length>>>0,P=arguments[1];if(t(y)!="[object Function]")throw new TypeError(y+" is not a function");for(var N=0;N<T;N++)if(N in R&&y.call(P,R[N],N,x))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(y){var x=z(this),R=w&&t(this)=="[object String]"?this.split(""):x,T=R.length>>>0;if(t(y)!="[object Function]")throw new TypeError(y+" is not a function");if(!T&&arguments.length==1)throw new TypeError("reduce of empty array with no initial value");var P=0,N;if(arguments.length>=2)N=arguments[1];else do{if(P in R){N=R[P++];break}if(++P>=T)throw new TypeError("reduce of empty array with no initial value")}while(!0);for(;P<T;P++)P in R&&(N=y.call(void 0,N,R[P],P,x));return N}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(y){var x=z(this),R=w&&t(this)=="[object String]"?this.split(""):x,T=R.length>>>0;if(t(y)!="[object Function]")throw new TypeError(y+" is not a function");if(!T&&arguments.length==1)throw new TypeError("reduceRight of empty array with no initial value");var P,N=T-1;if(arguments.length>=2)P=arguments[1];else do{if(N in R){P=R[N--];break}if(--N<0)throw new TypeError("reduceRight of empty array with no initial value")}while(!0);do N in this&&(P=y.call(void 0,P,R[N],N,x));while(N--);return P}),(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)&&(Array.prototype.indexOf=function(y){var x=w&&t(this)=="[object String]"?this.split(""):z(this),R=x.length>>>0;if(!R)return-1;var T=0;for(arguments.length>1&&(T=H(arguments[1])),T=T>=0?T:Math.max(0,R+T);T<R;T++)if(T in x&&x[T]===y)return T;return-1}),(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)&&(Array.prototype.lastIndexOf=function(y){var x=w&&t(this)=="[object String]"?this.split(""):z(this),R=x.length>>>0;if(!R)return-1;var T=R-1;for(arguments.length>1&&(T=Math.min(T,H(arguments[1]))),T=T>=0?T:R-Math.abs(T);T>=0;T--)if(T in x&&y===x[T])return T;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(y){return y.__proto__||(y.constructor?y.constructor.prototype:a)}),!Object.getOwnPropertyDescriptor){var c="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(y,x){if(typeof y!="object"&&typeof y!="function"||y===null)throw new TypeError(c+y);if(!!e(y,x)){var R,T,P;if(R={enumerable:!0,configurable:!0},u){var N=y.__proto__;y.__proto__=a;var T=r(y,x),P=o(y,x);if(y.__proto__=N,T||P)return T&&(R.get=T),P&&(R.set=P),R}return R.value=y[x],R}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(y){return Object.keys(y)}),!Object.create){var m;Object.prototype.__proto__===null?m=function(){return{__proto__:null}}:m=function(){var M={};for(var y in M)M[y]=null;return M.constructor=M.hasOwnProperty=M.propertyIsEnumerable=M.isPrototypeOf=M.toLocaleString=M.toString=M.valueOf=M.__proto__=null,M},Object.create=function(y,x){var R;if(y===null)R=m();else{if(typeof y!="object")throw new TypeError("typeof prototype["+typeof y+"] != 'object'");var T=function(){};T.prototype=y,R=new T,R.__proto__=y}return x!==void 0&&Object.defineProperties(R,x),R}}function l(M){try{return Object.defineProperty(M,"sentinel",{}),"sentinel"in M}catch{}}if(Object.defineProperty){var g=l({}),A=typeof document=="undefined"||l(document.createElement("div"));if(!g||!A)var F=Object.defineProperty}if(!Object.defineProperty||F){var h="Property description must be an object: ",p="Object.defineProperty called on non-object: ",b="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(y,x,R){if(typeof y!="object"&&typeof y!="function"||y===null)throw new TypeError(p+y);if(typeof R!="object"&&typeof R!="function"||R===null)throw new TypeError(h+R);if(F)try{return F.call(Object,y,x,R)}catch{}if(e(R,"value"))if(u&&(r(y,x)||o(y,x))){var T=y.__proto__;y.__proto__=a,delete y[x],y[x]=R.value,y.__proto__=T}else y[x]=R.value;else{if(!u)throw new TypeError(b);e(R,"get")&&n(y,x,R.get),e(R,"set")&&i(y,x,R.set)}return y}}Object.defineProperties||(Object.defineProperties=function(y,x){for(var R in x)e(x,R)&&Object.defineProperty(y,R,x[R]);return y}),Object.seal||(Object.seal=function(y){return y}),Object.freeze||(Object.freeze=function(y){return y});try{Object.freeze(function(){})}catch{Object.freeze=function(x){return function(T){return typeof T=="function"?T:x(T)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(y){return y}),Object.isSealed||(Object.isSealed=function(y){return!1}),Object.isFrozen||(Object.isFrozen=function(y){return!1}),Object.isExtensible||(Object.isExtensible=function(y){if(Object(y)===y)throw new TypeError;for(var x="";e(y,x);)x+="?";y[x]=!0;var R=e(y,x);return delete y[x],R}),!Object.keys){var S=!0,k=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],L=k.length;for(var D in{toString:null})S=!1;Object.keys=function(y){if(typeof y!="object"&&typeof y!="function"||y===null)throw new TypeError("Object.keys called on a non-object");var x=[];for(var R in y)e(y,R)&&x.push(R);if(S)for(var T=0,P=L;T<P;T++){var N=k[T];e(y,N)&&x.push(N)}return x}}Date.now||(Date.now=function(){return new Date().getTime()});var O=` +\v\f\r \xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF`;if(!String.prototype.trim||O.trim()){O="["+O+"]";var I=new RegExp("^"+O+O+"*"),W=new RegExp(O+O+"*$");String.prototype.trim=function(){return String(this).replace(I,"").replace(W,"")}}function H(M){return M=+M,M!==M?M=0:M!==0&&M!==1/0&&M!==-(1/0)&&(M=(M>0||-1)*Math.floor(Math.abs(M))),M}var z=function(M){if(M==null)throw new TypeError("can't convert "+M+" to object");return Object(M)}});ace.define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/regexp","ace/lib/es5-shim"],function(B,E,K){B("./regexp"),B("./es5-shim")});ace.define("ace/lib/dom",["require","exports","module"],function(B,E,K){var $="http://www.w3.org/1999/xhtml";if(E.getDocumentHead=function(C){return C||(C=document),C.head||C.getElementsByTagName("head")[0]||C.documentElement},E.createElement=function(C,d){return document.createElementNS?document.createElementNS(d||$,C):document.createElement(C)},E.hasCssClass=function(C,d){var a=(C.className+"").split(/\s+/g);return a.indexOf(d)!==-1},E.addCssClass=function(C,d){E.hasCssClass(C,d)||(C.className+=" "+d)},E.removeCssClass=function(C,d){for(var a=C.className.split(/\s+/g);;){var s=a.indexOf(d);if(s==-1)break;a.splice(s,1)}C.className=a.join(" ")},E.toggleCssClass=function(C,d){for(var a=C.className.split(/\s+/g),s=!0;;){var t=a.indexOf(d);if(t==-1)break;s=!1,a.splice(t,1)}return s&&a.push(d),C.className=a.join(" "),s},E.setCssClass=function(C,d,a){a?E.addCssClass(C,d):E.removeCssClass(C,d)},E.hasCssString=function(C,d){var a=0,s;if(d=d||document,d.createStyleSheet&&(s=d.styleSheets)){for(;a<s.length;)if(s[a++].owningElement.id===C)return!0}else if(s=d.getElementsByTagName("style")){for(;a<s.length;)if(s[a++].id===C)return!0}return!1},E.importCssString=function(d,a,s){if(s=s||document,a&&E.hasCssString(a,s))return null;var t;a&&(d+=` +/*# sourceURL=ace/css/`+a+" */"),s.createStyleSheet?(t=s.createStyleSheet(),t.cssText=d,a&&(t.owningElement.id=a)):(t=E.createElement("style"),t.appendChild(s.createTextNode(d)),a&&(t.id=a),E.getDocumentHead(s).appendChild(t))},E.importCssStylsheet=function(C,d){if(d.createStyleSheet)d.createStyleSheet(C);else{var a=E.createElement("link");a.rel="stylesheet",a.href=C,E.getDocumentHead(d).appendChild(a)}},E.getInnerWidth=function(C){return parseInt(E.computedStyle(C,"paddingLeft"),10)+parseInt(E.computedStyle(C,"paddingRight"),10)+C.clientWidth},E.getInnerHeight=function(C){return parseInt(E.computedStyle(C,"paddingTop"),10)+parseInt(E.computedStyle(C,"paddingBottom"),10)+C.clientHeight},E.scrollbarWidth=function(C){var d=E.createElement("ace_inner");d.style.width="100%",d.style.minWidth="0px",d.style.height="200px",d.style.display="block";var a=E.createElement("ace_outer"),s=a.style;s.position="absolute",s.left="-10000px",s.overflow="hidden",s.width="200px",s.minWidth="0px",s.height="150px",s.display="block",a.appendChild(d);var t=C.documentElement;t.appendChild(a);var e=d.offsetWidth;s.overflow="scroll";var n=d.offsetWidth;return e==n&&(n=a.clientWidth),t.removeChild(a),e-n},typeof document=="undefined"){E.importCssString=function(){};return}window.pageYOffset!==void 0?(E.getPageScrollTop=function(){return window.pageYOffset},E.getPageScrollLeft=function(){return window.pageXOffset}):(E.getPageScrollTop=function(){return document.body.scrollTop},E.getPageScrollLeft=function(){return document.body.scrollLeft}),window.getComputedStyle?E.computedStyle=function(C,d){return d?(window.getComputedStyle(C,"")||{})[d]||"":window.getComputedStyle(C,"")||{}}:E.computedStyle=function(C,d){return d?C.currentStyle[d]:C.currentStyle},E.setInnerHtml=function(C,d){var a=C.cloneNode(!1);return a.innerHTML=d,C.parentNode.replaceChild(a,C),a},"textContent"in document.documentElement?(E.setInnerText=function(C,d){C.textContent=d},E.getInnerText=function(C){return C.textContent}):(E.setInnerText=function(C,d){C.innerText=d},E.getInnerText=function(C){return C.innerText}),E.getParentWindow=function(C){return C.defaultView||C.parentWindow}});ace.define("ace/lib/oop",["require","exports","module"],function(B,E,K){E.inherits=function($,C){$.super_=C,$.prototype=Object.create(C.prototype,{constructor:{value:$,enumerable:!1,writable:!0,configurable:!0}})},E.mixin=function($,C){for(var d in C)$[d]=C[d];return $},E.implement=function($,C){E.mixin($,C)}});ace.define("ace/lib/keys",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop"],function(B,E,K){B("./fixoldbrowsers");var $=B("./oop"),C=function(){var d={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,super:8,meta:8,command:8,cmd:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",96:"Numpad0",97:"Numpad1",98:"Numpad2",99:"Numpad3",100:"Numpad4",101:"Numpad5",102:"Numpad6",103:"Numpad7",104:"Numpad8",105:"Numpad9","-13":"NumpadEnter",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",111:"/",106:"*"}},a,s;for(s in d.FUNCTION_KEYS)a=d.FUNCTION_KEYS[s].toLowerCase(),d[a]=parseInt(s,10);for(s in d.PRINTABLE_KEYS)a=d.PRINTABLE_KEYS[s].toLowerCase(),d[a]=parseInt(s,10);return $.mixin(d,d.MODIFIER_KEYS),$.mixin(d,d.PRINTABLE_KEYS),$.mixin(d,d.FUNCTION_KEYS),d.enter=d.return,d.escape=d.esc,d.del=d.delete,d[173]="-",function(){for(var t=["cmd","ctrl","alt","shift"],e=Math.pow(2,t.length);e--;)d.KEY_MODS[e]=t.filter(function(n){return e&d.KEY_MODS[n]}).join("-")+"-"}(),d.KEY_MODS[0]="",d.KEY_MODS[-1]="input-",d}();$.mixin(E,C),E.keyCodeToString=function(d){var a=C[d];return typeof a!="string"&&(a=String.fromCharCode(d)),a.toLowerCase()}});ace.define("ace/lib/useragent",["require","exports","module"],function(B,E,K){if(E.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},E.getOS=function(){return E.isMac?E.OS.MAC:E.isLinux?E.OS.LINUX:E.OS.WINDOWS},typeof navigator=="object"){var $=(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase(),C=navigator.userAgent;E.isWin=$=="win",E.isMac=$=="mac",E.isLinux=$=="linux",E.isIE=navigator.appName=="Microsoft Internet Explorer"||navigator.appName.indexOf("MSAppHost")>=0?parseFloat((C.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((C.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),E.isOldIE=E.isIE&&E.isIE<9,E.isGecko=E.isMozilla=(window.Controllers||window.controllers)&&window.navigator.product==="Gecko",E.isOldGecko=E.isGecko&&parseInt((C.match(/rv:(\d+)/)||[])[1],10)<4,E.isOpera=window.opera&&Object.prototype.toString.call(window.opera)=="[object Opera]",E.isWebKit=parseFloat(C.split("WebKit/")[1])||void 0,E.isChrome=parseFloat(C.split(" Chrome/")[1])||void 0,E.isAIR=C.indexOf("AdobeAIR")>=0,E.isIPad=C.indexOf("iPad")>=0,E.isChromeOS=C.indexOf(" CrOS ")>=0,E.isIOS=/iPad|iPhone|iPod/.test(C)&&!window.MSStream,E.isIOS&&(E.isMac=!0)}});ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(B,E,K){var $=B("./keys"),C=B("./useragent"),d=null,a=0;E.addListener=function(i,r,o){if(i.addEventListener)return i.addEventListener(r,o,!1);if(i.attachEvent){var u=function(){o.call(i,window.event)};o._wrapper=u,i.attachEvent("on"+r,u)}},E.removeListener=function(i,r,o){if(i.removeEventListener)return i.removeEventListener(r,o,!1);i.detachEvent&&i.detachEvent("on"+r,o._wrapper||o)},E.stopEvent=function(i){return E.stopPropagation(i),E.preventDefault(i),!1},E.stopPropagation=function(i){i.stopPropagation?i.stopPropagation():i.cancelBubble=!0},E.preventDefault=function(i){i.preventDefault?i.preventDefault():i.returnValue=!1},E.getButton=function(i){return i.type=="dblclick"?0:i.type=="contextmenu"||C.isMac&&i.ctrlKey&&!i.altKey&&!i.shiftKey?2:i.preventDefault?i.button:{1:0,2:2,4:1}[i.button]},E.capture=function(i,r,o){function u(f){r&&r(f),o&&o(f),E.removeListener(document,"mousemove",r,!0),E.removeListener(document,"mouseup",u,!0),E.removeListener(document,"dragstart",u,!0)}return E.addListener(document,"mousemove",r,!0),E.addListener(document,"mouseup",u,!0),E.addListener(document,"dragstart",u,!0),u},E.addTouchMoveListener=function(i,r){var o,u;E.addListener(i,"touchstart",function(f){var v=f.touches,w=v[0];o=w.clientX,u=w.clientY}),E.addListener(i,"touchmove",function(f){var v=f.touches;if(!(v.length>1)){var w=v[0];f.wheelX=o-w.clientX,f.wheelY=u-w.clientY,o=w.clientX,u=w.clientY,r(f)}})},E.addMouseWheelListener=function(i,r){"onmousewheel"in i?E.addListener(i,"mousewheel",function(o){var u=8;o.wheelDeltaX!==void 0?(o.wheelX=-o.wheelDeltaX/u,o.wheelY=-o.wheelDeltaY/u):(o.wheelX=0,o.wheelY=-o.wheelDelta/u),r(o)}):"onwheel"in i?E.addListener(i,"wheel",function(o){var u=.35;switch(o.deltaMode){case o.DOM_DELTA_PIXEL:o.wheelX=o.deltaX*u||0,o.wheelY=o.deltaY*u||0;break;case o.DOM_DELTA_LINE:case o.DOM_DELTA_PAGE:o.wheelX=(o.deltaX||0)*5,o.wheelY=(o.deltaY||0)*5;break}r(o)}):E.addListener(i,"DOMMouseScroll",function(o){o.axis&&o.axis==o.HORIZONTAL_AXIS?(o.wheelX=(o.detail||0)*5,o.wheelY=0):(o.wheelX=0,o.wheelY=(o.detail||0)*5),r(o)})},E.addMultiMouseDownListener=function(i,r,o,u){var f=0,v,w,c,m={2:"dblclick",3:"tripleclick",4:"quadclick"};function l(A){if(E.getButton(A)!==0?f=0:A.detail>1?(f++,f>4&&(f=1)):f=1,C.isIE){var F=Math.abs(A.clientX-v)>5||Math.abs(A.clientY-w)>5;(!c||F)&&(f=1),c&&clearTimeout(c),c=setTimeout(function(){c=null},r[f-1]||600),f==1&&(v=A.clientX,w=A.clientY)}if(A._clicks=f,o[u]("mousedown",A),f>4)f=0;else if(f>1)return o[u](m[f],A)}function g(A){f=2,c&&clearTimeout(c),c=setTimeout(function(){c=null},r[f-1]||600),o[u]("mousedown",A),o[u](m[f],A)}Array.isArray(i)||(i=[i]),i.forEach(function(A){E.addListener(A,"mousedown",l),C.isOldIE&&E.addListener(A,"dblclick",g)})};var s=C.isMac&&C.isOpera&&!("KeyboardEvent"in window)?function(i){return 0|(i.metaKey?1:0)|(i.altKey?2:0)|(i.shiftKey?4:0)|(i.ctrlKey?8:0)}:function(i){return 0|(i.ctrlKey?1:0)|(i.altKey?2:0)|(i.shiftKey?4:0)|(i.metaKey?8:0)};E.getModifierString=function(i){return $.KEY_MODS[s(i)]};function t(i,r,o){var u=s(r);if(!C.isMac&&d){if(r.getModifierState&&(r.getModifierState("OS")||r.getModifierState("Win"))&&(u|=8),d.altGr)if((3&u)!=3)d.altGr=0;else return;if(o===18||o===17){var f="location"in r?r.location:r.keyLocation;if(o===17&&f===1)d[o]==1&&(a=r.timeStamp);else if(o===18&&u===3&&f===2){var v=r.timeStamp-a;v<50&&(d.altGr=!0)}}}if(o in $.MODIFIER_KEYS&&(o=-1),u&8&&o>=91&&o<=93&&(o=-1),!u&&o===13){var f="location"in r?r.location:r.keyLocation;if(f===3&&(i(r,u,-o),r.defaultPrevented))return}if(C.isChromeOS&&u&8){if(i(r,u,o),r.defaultPrevented)return;u&=-9}return!u&&!(o in $.FUNCTION_KEYS)&&!(o in $.PRINTABLE_KEYS)?!1:i(r,u,o)}E.addCommandKeyListener=function(i,r){var o=E.addListener;if(C.isOldGecko||C.isOpera&&!("KeyboardEvent"in window)){var u=null;o(i,"keydown",function(v){u=v.keyCode}),o(i,"keypress",function(v){return t(r,v,u)})}else{var f=null;o(i,"keydown",function(v){d[v.keyCode]=(d[v.keyCode]||0)+1;var w=t(r,v,v.keyCode);return f=v.defaultPrevented,w}),o(i,"keypress",function(v){f&&(v.ctrlKey||v.altKey||v.shiftKey||v.metaKey)&&(E.stopEvent(v),f=null)}),o(i,"keyup",function(v){d[v.keyCode]=null}),d||(e(),o(window,"focus",e))}};function e(){d=Object.create(null)}if(typeof window=="object"&&window.postMessage&&!C.isOldIE){var n=1;E.nextTick=function(i,r){r=r||window;var o="zero-timeout-message-"+n;E.addListener(r,"message",function u(f){f.data==o&&(E.stopPropagation(f),E.removeListener(r,"message",u),i())}),r.postMessage(o,"*")}}E.nextFrame=typeof window=="object"&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),E.nextFrame?E.nextFrame=E.nextFrame.bind(window):E.nextFrame=function(i){setTimeout(i,17)}});ace.define("ace/lib/lang",["require","exports","module"],function(B,E,K){E.last=function(d){return d[d.length-1]},E.stringReverse=function(d){return d.split("").reverse().join("")},E.stringRepeat=function(d,a){for(var s="";a>0;)a&1&&(s+=d),(a>>=1)&&(d+=d);return s};var $=/^\s\s*/,C=/\s\s*$/;E.stringTrimLeft=function(d){return d.replace($,"")},E.stringTrimRight=function(d){return d.replace(C,"")},E.copyObject=function(d){var a={};for(var s in d)a[s]=d[s];return a},E.copyArray=function(d){for(var a=[],s=0,t=d.length;s<t;s++)d[s]&&typeof d[s]=="object"?a[s]=this.copyObject(d[s]):a[s]=d[s];return a},E.deepCopy=function d(a){if(typeof a!="object"||!a)return a;var s;if(Array.isArray(a)){s=[];for(var t=0;t<a.length;t++)s[t]=d(a[t]);return s}if(Object.prototype.toString.call(a)!=="[object Object]")return a;s={};for(var t in a)s[t]=d(a[t]);return s},E.arrayToMap=function(d){for(var a={},s=0;s<d.length;s++)a[d[s]]=1;return a},E.createMap=function(d){var a=Object.create(null);for(var s in d)a[s]=d[s];return a},E.arrayRemove=function(d,a){for(var s=0;s<=d.length;s++)a===d[s]&&d.splice(s,1)},E.escapeRegExp=function(d){return d.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},E.escapeHTML=function(d){return d.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<")},E.getMatchOffsets=function(d,a){var s=[];return d.replace(a,function(t){s.push({offset:arguments[arguments.length-2],length:t.length})}),s},E.deferredCall=function(d){var a=null,s=function(){a=null,d()},t=function(e){return t.cancel(),a=setTimeout(s,e||0),t};return t.schedule=t,t.call=function(){return this.cancel(),d(),t},t.cancel=function(){return clearTimeout(a),a=null,t},t.isPending=function(){return a},t},E.delayedCall=function(d,a){var s=null,t=function(){s=null,d()},e=function(n){s==null&&(s=setTimeout(t,n||a))};return e.delay=function(n){s&&clearTimeout(s),s=setTimeout(t,n||a)},e.schedule=e,e.call=function(){this.cancel(),d()},e.cancel=function(){s&&clearTimeout(s),s=null},e.isPending=function(){return s},e}});ace.define("ace/keyboard/textinput_ios",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/lib/keys"],function(B,E,K){var $=B("../lib/event"),C=B("../lib/useragent"),d=B("../lib/dom"),a=B("../lib/lang"),s=B("../lib/keys"),t=s.KEY_MODS,e=C.isChrome<18,n=C.isIE,i=function(r,o){var u=d.createElement("textarea");u.className=C.isIOS?"ace_text-input ace_text-input-ios":"ace_text-input",C.isTouchPad&&u.setAttribute("x-palm-disable-auto-cap",!0),u.setAttribute("wrap","off"),u.setAttribute("autocorrect","off"),u.setAttribute("autocapitalize","off"),u.setAttribute("spellcheck",!1),u.style.opacity="0",r.insertBefore(u,r.firstChild);var f=` + aaaa a +`,v=!1,w=!1,c=!1,m=!1,l="",g=!0;try{var A=document.activeElement===u}catch{}$.addListener(u,"blur",function(V){o.onBlur(V),A=!1}),$.addListener(u,"focus",function(V){A=!0,o.onFocus(V),p()}),this.focus=function(){if(l)return u.focus();u.style.position="fixed",u.focus()},this.blur=function(){u.blur()},this.isFocused=function(){return A};var F=a.delayedCall(function(){A&&p(g)}),h=a.delayedCall(function(){m||(u.value=f,A&&p())});function p(V){if(!m){if(m=!0,L)G=0,Y=V?0:u.value.length-1;else var G=4,Y=5;try{u.setSelectionRange(G,Y)}catch{}m=!1}}function b(){m||(u.value=f,C.isWebKit&&h.schedule())}C.isWebKit||o.addEventListener("changeSelection",function(){o.selection.isEmpty()!=g&&(g=!g,F.schedule())}),b(),A&&o.onFocus();var S=function(V){return V.selectionStart===0&&V.selectionEnd===V.value.length},k=function(V){S(u)?(o.selectAll(),p()):L&&p(o.selection.isEmpty())},L=null;this.setInputHandler=function(V){L=V},this.getInputHandler=function(){return L};var D=!1,O=function(V){u.selectionStart===4&&u.selectionEnd===5||(L&&(V=L(V),L=null),c?(p(),V&&o.onPaste(V),c=!1):V==f.substr(0)&&u.selectionStart===4?D?o.execCommand("del",{source:"ace"}):o.execCommand("backspace",{source:"ace"}):v||(V.substring(0,9)==f&&V.length>f.length?V=V.substr(9):V.substr(0,4)==f.substr(0,4)?V=V.substr(4,V.length-f.length+1):V.charAt(V.length-1)==f.charAt(0)&&(V=V.slice(0,-1)),V==f.charAt(0)||V.charAt(V.length-1)==f.charAt(0)&&(V=V.slice(0,-1)),V&&o.onTextInput(V)),v&&(v=!1),D&&(D=!1))},I=function(V){if(!m){var G=u.value;O(G),b()}},W=function(V,G,Y){var Z=V.clipboardData||window.clipboardData;if(!(!Z||e)){var J=n||Y?"Text":"text/plain";try{return G?Z.setData(J,G)!==!1:Z.getData(J)}catch(q){if(!Y)return W(q,G,!0)}}},H=function(V,G){var Y=o.getCopyText();if(!Y)return $.preventDefault(V);W(V,Y)?(C.isIOS&&(w=G,u.value=` + aa`+Y+`a a +`,u.setSelectionRange(4,4+Y.length),v={value:Y}),G?o.onCut():o.onCopy(),C.isIOS||$.preventDefault(V)):(v=!0,u.value=Y,u.select(),setTimeout(function(){v=!1,b(),p(),G?o.onCut():o.onCopy()}))},z=function(V){H(V,!0)},M=function(V){H(V,!1)},y=function(V){var G=W(V);typeof G=="string"?(G&&o.onPaste(G,V),C.isIE&&setTimeout(p),$.preventDefault(V)):(u.value="",c=!0)};$.addCommandKeyListener(u,o.onCommandKey.bind(o)),$.addListener(u,"select",k),$.addListener(u,"input",I),$.addListener(u,"cut",z),$.addListener(u,"copy",M),$.addListener(u,"paste",y);var x=function(V){m||!o.onCompositionStart||o.$readOnly||(m={},m.canUndo=o.session.$undoManager,o.onCompositionStart(),setTimeout(R,0),o.on("mousedown",T),m.canUndo&&!o.selection.isEmpty()&&(o.insert(""),o.session.markUndoGroup(),o.selection.clearSelection()),o.session.markUndoGroup())},R=function(){if(!(!m||!o.onCompositionUpdate||o.$readOnly)){var V=u.value.replace(/\x01/g,"");if(m.lastValue!==V&&(o.onCompositionUpdate(V),m.lastValue&&o.undo(),m.canUndo&&(m.lastValue=V),m.lastValue)){var G=o.selection.getRange();o.insert(m.lastValue),o.session.markUndoGroup(),m.range=o.selection.getRange(),o.selection.setRange(G),o.selection.clearSelection()}}},T=function(V){if(!(!o.onCompositionEnd||o.$readOnly)){var G=m;m=!1;var Y=setTimeout(function(){Y=null;var J=u.value.replace(/\x01/g,"");m||(J==G.lastValue?b():!G.lastValue&&J&&(b(),O(J)))});L=function(q){return Y&&clearTimeout(Y),q=q.replace(/\x01/g,""),q==G.lastValue?"":(G.lastValue&&Y&&o.undo(),q)},o.onCompositionEnd(),o.removeListener("mousedown",T),V.type=="compositionend"&&G.range&&o.selection.setRange(G.range);var Z=!!C.isChrome&&C.isChrome>=53||!!C.isWebKit&&C.isWebKit>=603;Z&&I()}},P=a.delayedCall(R,50);$.addListener(u,"compositionstart",x),C.isGecko?$.addListener(u,"text",function(){P.schedule()}):($.addListener(u,"keyup",function(){P.schedule()}),$.addListener(u,"keydown",function(){P.schedule()})),$.addListener(u,"compositionend",T),this.getElement=function(){return u},this.setReadOnly=function(V){u.readOnly=V},this.onContextMenu=function(V){D=!0,p(o.selection.isEmpty()),o._emit("nativecontextmenu",{target:o,domEvent:V}),this.moveToMouse(V,!0)},this.moveToMouse=function(V,G){l||(l=u.style.cssText),u.style.cssText=(G?"z-index:100000;":"")+"height:"+u.style.height+";"+(C.isIE?"opacity:0.1;":"");var Y=o.container.getBoundingClientRect(),Z=d.computedStyle(o.container),J=Y.top+(parseInt(Z.borderTopWidth)||0),q=Y.left+(parseInt(Y.borderLeftWidth)||0),ne=Y.bottom-J-u.clientHeight-2,ee=function(te){u.style.left=te.clientX-q-2+"px",u.style.top=Math.min(te.clientY-J-2,ne)+"px"};ee(V),V.type=="mousedown"&&(o.renderer.$keepTextAreaAtCursor&&(o.renderer.$keepTextAreaAtCursor=null),clearTimeout(N),C.isWin&&$.capture(o.container,ee,_))},this.onContextMenuClose=_;var N;function _(){clearTimeout(N),N=setTimeout(function(){l&&(u.style.cssText=l,l=""),o.renderer.$keepTextAreaAtCursor==null&&(o.renderer.$keepTextAreaAtCursor=!0,o.renderer.$moveTextAreaToCursor())},0)}var U=function(V){o.textInput.onContextMenu(V),_()};if($.addListener(u,"mouseup",U),$.addListener(u,"mousedown",function(V){V.preventDefault(),_()}),$.addListener(o.renderer.scroller,"contextmenu",U),$.addListener(u,"contextmenu",U),C.isIOS){var j=null,Q=!1;r.addEventListener("keydown",function(V){j&&clearTimeout(j),Q=!0}),r.addEventListener("keyup",function(V){j=setTimeout(function(){Q=!1},100)});var X=function(V){if(document.activeElement===u&&!Q){if(w)return setTimeout(function(){w=!1},100);var G=u.selectionStart,Y=u.selectionEnd;if(u.setSelectionRange(4,5),G==Y)switch(G){case 0:o.onCommandKey(null,0,s.up);break;case 1:o.onCommandKey(null,0,s.home);break;case 2:o.onCommandKey(null,t.option,s.left);break;case 4:o.onCommandKey(null,0,s.left);break;case 5:o.onCommandKey(null,0,s.right);break;case 7:o.onCommandKey(null,t.option,s.right);break;case 8:o.onCommandKey(null,0,s.end);break;case 9:o.onCommandKey(null,0,s.down);break}else{switch(Y){case 6:o.onCommandKey(null,t.shift,s.right);break;case 7:o.onCommandKey(null,t.shift|t.option,s.right);break;case 8:o.onCommandKey(null,t.shift,s.end);break;case 9:o.onCommandKey(null,t.shift,s.down);break}switch(G){case 0:o.onCommandKey(null,t.shift,s.up);break;case 1:o.onCommandKey(null,t.shift,s.home);break;case 2:o.onCommandKey(null,t.shift|t.option,s.left);break;case 3:o.onCommandKey(null,t.shift,s.left);break}}}};document.addEventListener("selectionchange",X),o.on("destroy",function(){document.removeEventListener("selectionchange",X)})}};E.TextInput=i});ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/keyboard/textinput_ios"],function(B,E,K){var $=B("../lib/event"),C=B("../lib/useragent"),d=B("../lib/dom"),a=B("../lib/lang"),s=C.isChrome<18,t=C.isIE,e=B("./textinput_ios").TextInput,n=function(i,r){if(C.isIOS)return e.call(this,i,r);var o=d.createElement("textarea");o.className="ace_text-input",o.setAttribute("wrap","off"),o.setAttribute("autocorrect","off"),o.setAttribute("autocapitalize","off"),o.setAttribute("spellcheck",!1),o.style.opacity="0",i.insertBefore(o,i.firstChild);var u="\u2028\u2028",f=!1,v=!1,w=!1,c="",m=!0;try{var l=document.activeElement===o}catch{}$.addListener(o,"blur",function(_){r.onBlur(_),l=!1}),$.addListener(o,"focus",function(_){l=!0,r.onFocus(_),F()}),this.focus=function(){if(c)return o.focus();var _=o.style.top;o.style.position="fixed",o.style.top="0px",o.focus(),setTimeout(function(){o.style.position="",o.style.top=="0px"&&(o.style.top=_)},0)},this.blur=function(){o.blur()},this.isFocused=function(){return l};var g=a.delayedCall(function(){l&&F(m)}),A=a.delayedCall(function(){w||(o.value=u,l&&F())});function F(_){if(!w){if(w=!0,S)var U=0,j=_?0:o.value.length-1;else var U=_?2:1,j=2;try{o.setSelectionRange(U,j)}catch{}w=!1}}function h(){w||(o.value=u,C.isWebKit&&A.schedule())}C.isWebKit||r.addEventListener("changeSelection",function(){r.selection.isEmpty()!=m&&(m=!m,g.schedule())}),h(),l&&r.onFocus();var p=function(_){return _.selectionStart===0&&_.selectionEnd===_.value.length},b=function(_){f?f=!1:p(o)?(r.selectAll(),F()):S&&F(r.selection.isEmpty())},S=null;this.setInputHandler=function(_){S=_},this.getInputHandler=function(){return S};var k=!1,L=function(_){S&&(_=S(_),S=null),v?(F(),_&&r.onPaste(_),v=!1):_==u.charAt(0)?k?r.execCommand("del",{source:"ace"}):r.execCommand("backspace",{source:"ace"}):(_.substring(0,2)==u?_=_.substr(2):_.charAt(0)==u.charAt(0)?_=_.substr(1):_.charAt(_.length-1)==u.charAt(0)&&(_=_.slice(0,-1)),_.charAt(_.length-1)==u.charAt(0)&&(_=_.slice(0,-1)),_&&r.onTextInput(_)),k&&(k=!1)},D=function(_){if(!w){var U=o.value;L(U),h()}},O=function(_,U,j){var Q=_.clipboardData||window.clipboardData;if(!(!Q||s)){var X=t||j?"Text":"text/plain";try{return U?Q.setData(X,U)!==!1:Q.getData(X)}catch(V){if(!j)return O(V,U,!0)}}},I=function(_,U){var j=r.getCopyText();if(!j)return $.preventDefault(_);O(_,j)?(U?r.onCut():r.onCopy(),$.preventDefault(_)):(f=!0,o.value=j,o.select(),setTimeout(function(){f=!1,h(),F(),U?r.onCut():r.onCopy()}))},W=function(_){I(_,!0)},H=function(_){I(_,!1)},z=function(_){var U=O(_);typeof U=="string"?(U&&r.onPaste(U,_),C.isIE&&setTimeout(F),$.preventDefault(_)):(o.value="",v=!0)};$.addCommandKeyListener(o,r.onCommandKey.bind(r)),$.addListener(o,"select",b),$.addListener(o,"input",D),$.addListener(o,"cut",W),$.addListener(o,"copy",H),$.addListener(o,"paste",z),(!("oncut"in o)||!("oncopy"in o)||!("onpaste"in o))&&$.addListener(i,"keydown",function(_){if(!(C.isMac&&!_.metaKey||!_.ctrlKey))switch(_.keyCode){case 67:H(_);break;case 86:z(_);break;case 88:W(_);break}});var M=function(_){w||!r.onCompositionStart||r.$readOnly||(w={},w.canUndo=r.session.$undoManager,r.onCompositionStart(),setTimeout(y,0),r.on("mousedown",x),w.canUndo&&!r.selection.isEmpty()&&(r.insert(""),r.session.markUndoGroup(),r.selection.clearSelection()),r.session.markUndoGroup())},y=function(){if(!(!w||!r.onCompositionUpdate||r.$readOnly)){var _=o.value.replace(/\u2028/g,"");if(w.lastValue!==_&&(r.onCompositionUpdate(_),w.lastValue&&r.undo(),w.canUndo&&(w.lastValue=_),w.lastValue)){var U=r.selection.getRange();r.insert(w.lastValue),r.session.markUndoGroup(),w.range=r.selection.getRange(),r.selection.setRange(U),r.selection.clearSelection()}}},x=function(_){if(!(!r.onCompositionEnd||r.$readOnly)){var U=w;w=!1;var j=setTimeout(function(){j=null;var X=o.value.replace(/\u2028/g,"");w||(X==U.lastValue?h():!U.lastValue&&X&&(h(),L(X)))});S=function(V){return j&&clearTimeout(j),V=V.replace(/\u2028/g,""),V==U.lastValue?"":(U.lastValue&&j&&r.undo(),V)},r.onCompositionEnd(),r.removeListener("mousedown",x),_.type=="compositionend"&&U.range&&r.selection.setRange(U.range);var Q=!!C.isChrome&&C.isChrome>=53||!!C.isWebKit&&C.isWebKit>=603;Q&&D()}},R=a.delayedCall(y,50);$.addListener(o,"compositionstart",M),C.isGecko?$.addListener(o,"text",function(){R.schedule()}):($.addListener(o,"keyup",function(){R.schedule()}),$.addListener(o,"keydown",function(){R.schedule()})),$.addListener(o,"compositionend",x),this.getElement=function(){return o},this.setReadOnly=function(_){o.readOnly=_},this.onContextMenu=function(_){k=!0,F(r.selection.isEmpty()),r._emit("nativecontextmenu",{target:r,domEvent:_}),this.moveToMouse(_,!0)},this.moveToMouse=function(_,U){c||(c=o.style.cssText),o.style.cssText=(U?"z-index:100000;":"")+"height:"+o.style.height+";"+(C.isIE?"opacity:0.1;":"");var j=r.container.getBoundingClientRect(),Q=d.computedStyle(r.container),X=j.top+(parseInt(Q.borderTopWidth)||0),V=j.left+(parseInt(j.borderLeftWidth)||0),G=j.bottom-X-o.clientHeight-2,Y=function(Z){o.style.left=Z.clientX-V-2+"px",o.style.top=Math.min(Z.clientY-X-2,G)+"px"};Y(_),_.type=="mousedown"&&(r.renderer.$keepTextAreaAtCursor&&(r.renderer.$keepTextAreaAtCursor=null),clearTimeout(T),C.isWin&&$.capture(r.container,Y,P))},this.onContextMenuClose=P;var T;function P(){clearTimeout(T),T=setTimeout(function(){c&&(o.style.cssText=c,c=""),r.renderer.$keepTextAreaAtCursor==null&&(r.renderer.$keepTextAreaAtCursor=!0,r.renderer.$moveTextAreaToCursor())},0)}var N=function(_){r.textInput.onContextMenu(_),P()};$.addListener(o,"mouseup",N),$.addListener(o,"mousedown",function(_){_.preventDefault(),P()}),$.addListener(r.renderer.scroller,"contextmenu",N),$.addListener(o,"contextmenu",N)};E.TextInput=n});ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(B,E,K){B("../lib/dom"),B("../lib/event");var $=B("../lib/useragent"),C=0,d=250;function a(e){e.$clickSelection=null;var n=e.editor;n.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),n.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),n.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),n.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),n.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e)),n.setDefaultHandler("touchmove",this.onTouchMove.bind(e));var i=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];i.forEach(function(r){e[r]=this[r]},this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}(function(){this.onMouseDown=function(e){var n=e.inSelection(),i=e.getDocumentPosition();this.mousedownEvent=e;var r=this.editor,o=e.getButton();if(o!==0){var u=r.getSelectionRange(),f=u.isEmpty();r.$blockScrolling++,(f||o==1)&&r.selection.moveToPosition(i),r.$blockScrolling--,o==2&&(r.textInput.onContextMenu(e.domEvent),$.isMozilla||e.preventDefault());return}if(this.mousedownEvent.time=Date.now(),n&&!r.isFocused()&&(r.focus(),this.$focusTimout&&!this.$clickSelection&&!r.inMultiSelectMode)){this.setState("focusWait"),this.captureMouse(e);return}return this.captureMouse(e),this.startSelect(i,e.domEvent._clicks>1),e.preventDefault()},this.startSelect=function(e,n){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var i=this.editor;i.$blockScrolling++,this.mousedownEvent.getShiftKey()?i.selection.selectToPosition(e):n||i.selection.moveToPosition(e),n||this.select(),i.renderer.scroller.setCapture&&i.renderer.scroller.setCapture(),i.setStyle("ace_selecting"),this.setState("select"),i.$blockScrolling--},this.select=function(){var e,n=this.editor,i=n.renderer.screenToTextCoordinates(this.x,this.y);if(n.$blockScrolling++,this.$clickSelection){var r=this.$clickSelection.comparePoint(i);if(r==-1)e=this.$clickSelection.end;else if(r==1)e=this.$clickSelection.start;else{var o=t(this.$clickSelection,i);i=o.cursor,e=o.anchor}n.selection.setSelectionAnchor(e.row,e.column)}n.selection.selectToPosition(i),n.$blockScrolling--,n.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var n,i=this.editor,r=i.renderer.screenToTextCoordinates(this.x,this.y),o=i.selection[e](r.row,r.column);if(i.$blockScrolling++,this.$clickSelection){var u=this.$clickSelection.comparePoint(o.start),f=this.$clickSelection.comparePoint(o.end);if(u==-1&&f<=0)n=this.$clickSelection.end,(o.end.row!=r.row||o.end.column!=r.column)&&(r=o.start);else if(f==1&&u>=0)n=this.$clickSelection.start,(o.start.row!=r.row||o.start.column!=r.column)&&(r=o.end);else if(u==-1&&f==1)r=o.end,n=o.start;else{var v=t(this.$clickSelection,r);r=v.cursor,n=v.anchor}i.selection.setSelectionAnchor(n.row,n.column)}i.selection.selectToPosition(r),i.$blockScrolling--,i.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var e=s(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),n=Date.now();(e>C||n-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var n=e.getDocumentPosition(),i=this.editor,r=i.session,o=r.getBracketRange(n);o?(o.isEmpty()&&(o.start.column--,o.end.column++),this.setState("select")):(o=i.selection.getWordRange(n.row,n.column),this.setState("selectByWords")),this.$clickSelection=o,this.select()},this.onTripleClick=function(e){var n=e.getDocumentPosition(),i=this.editor;this.setState("selectByLines");var r=i.getSelectionRange();r.isMultiLine()&&r.contains(n.row,n.column)?(this.$clickSelection=i.selection.getLineRange(r.start.row),this.$clickSelection.end=i.selection.getLineRange(r.end.row).end):this.$clickSelection=i.selection.getLineRange(n.row),this.select()},this.onQuadClick=function(e){var n=this.editor;n.selectAll(),this.$clickSelection=n.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){if(!e.getAccelKey()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var n=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var i=this.$lastScroll,r=e.domEvent.timeStamp,o=r-i.t,u=e.wheelX/o,f=e.wheelY/o;o<d&&(u=(u+i.vx)/2,f=(f+i.vy)/2);var v=Math.abs(u/f),w=!1;if(v>=1&&n.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(w=!0),v<=1&&n.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(w=!0),w)i.allowed=r;else if(r-i.allowed<d){var c=Math.abs(u)<=1.1*Math.abs(i.vx)&&Math.abs(f)<=1.1*Math.abs(i.vy);c?(w=!0,i.allowed=r):i.allowed=0}if(i.t=r,i.vx=u,i.vy=f,w)return n.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()}},this.onTouchMove=function(e){this.editor._emit("mousewheel",e)}}).call(a.prototype),E.DefaultHandlers=a;function s(e,n,i,r){return Math.sqrt(Math.pow(i-e,2)+Math.pow(r-n,2))}function t(e,n){if(e.start.row==e.end.row)var i=2*n.column-e.start.column-e.end.column;else if(e.start.row==e.end.row-1&&!e.start.column&&!e.end.column)var i=n.column-4;else var i=2*n.row-e.start.row-e.end.row;return i<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}});ace.define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],function(B,E,K){B("./lib/oop");var $=B("./lib/dom");function C(d){this.isOpen=!1,this.$element=null,this.$parentNode=d}(function(){this.$init=function(){return this.$element=$.createElement("div"),this.$element.className="ace_tooltip",this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(d){$.setInnerText(this.getElement(),d)},this.setHtml=function(d){this.getElement().innerHTML=d},this.setPosition=function(d,a){this.getElement().style.left=d+"px",this.getElement().style.top=a+"px"},this.setClassName=function(d){$.addCssClass(this.getElement(),d)},this.show=function(d,a,s){d!=null&&this.setText(d),a!=null&&s!=null&&this.setPosition(a,s),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth},this.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)}}).call(C.prototype),E.Tooltip=C});ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],function(B,E,K){var $=B("../lib/dom"),C=B("../lib/oop"),d=B("../lib/event"),a=B("../tooltip").Tooltip;function s(e){var n=e.editor,i=n.renderer.$gutterLayer,r=new t(n.container);e.editor.setDefaultHandler("guttermousedown",function(m){if(!(!n.isFocused()||m.getButton()!=0)){var l=i.getRegion(m);if(l!="foldWidgets"){var g=m.getDocumentPosition().row,A=n.session.selection;if(m.getShiftKey())A.selectTo(g,0);else{if(m.domEvent.detail==2)return n.selectAll(),m.preventDefault();e.$clickSelection=n.selection.getLineRange(g)}return e.setState("selectByLines"),e.captureMouse(m),m.preventDefault()}}});var o,u,f;function v(){var m=u.getDocumentPosition().row,l=i.$annotations[m];if(!l)return w();var g=n.session.getLength();if(m==g){var A=n.renderer.pixelToScreenCoordinates(0,u.y).row,F=u.$pos;if(A>n.session.documentToScreenRow(F.row,F.column))return w()}if(f!=l)if(f=l.text.join("<br/>"),r.setHtml(f),r.show(),n._signal("showGutterTooltip",r),n.on("mousewheel",w),e.$tooltipFollowsMouse)c(u);else{var h=u.domEvent.target,p=h.getBoundingClientRect(),b=r.getElement().style;b.left=p.right+"px",b.top=p.bottom+"px"}}function w(){o&&(o=clearTimeout(o)),f&&(r.hide(),f=null,n._signal("hideGutterTooltip",r),n.removeEventListener("mousewheel",w))}function c(m){r.setPosition(m.x,m.y)}e.editor.setDefaultHandler("guttermousemove",function(m){var l=m.domEvent.target||m.domEvent.srcElement;if($.hasCssClass(l,"ace_fold-widget"))return w();f&&e.$tooltipFollowsMouse&&c(m),u=m,!o&&(o=setTimeout(function(){o=null,u&&!e.isMousePressed?v():w()},50))}),d.addListener(n.renderer.$gutter,"mouseout",function(m){u=null,!(!f||o)&&(o=setTimeout(function(){o=null,w()},50))}),n.on("changeSession",w)}function t(e){a.call(this,e)}C.inherits(t,a),function(){this.setPosition=function(e,n){var i=window.innerWidth||document.documentElement.clientWidth,r=window.innerHeight||document.documentElement.clientHeight,o=this.getWidth(),u=this.getHeight();e+=15,n+=15,e+o>i&&(e-=e+o-i),n+u>r&&(n-=20+u),a.prototype.setPosition.call(this,e,n)}}.call(t.prototype),E.GutterHandler=s});ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(B,E,K){var $=B("../lib/event"),C=B("../lib/useragent"),d=E.MouseEvent=function(a,s){this.domEvent=a,this.editor=s,this.x=this.clientX=a.clientX,this.y=this.clientY=a.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){$.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){$.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(this.$inSelection!==null)return this.$inSelection;var a=this.editor,s=a.getSelectionRange();if(s.isEmpty())this.$inSelection=!1;else{var t=this.getDocumentPosition();this.$inSelection=s.contains(t.row,t.column)}return this.$inSelection},this.getButton=function(){return $.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=C.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(d.prototype)});ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(B,E,K){var $=B("../lib/dom"),C=B("../lib/event"),d=B("../lib/useragent"),a=200,s=200,t=5;function e(i){var r=i.editor,o=$.createElement("img");o.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",d.isOpera&&(o.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;");var u=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];u.forEach(function(y){i[y]=this[y]},this),r.addEventListener("mousedown",this.onMouseDown.bind(i));var f=r.container,v,w,c,m,l,g,A=0,F,h,p,b,S;this.onDragStart=function(y){if(this.cancelDrag||!f.draggable){var x=this;return setTimeout(function(){x.startSelect(),x.captureMouse(y)},0),y.preventDefault()}l=r.getSelectionRange();var R=y.dataTransfer;R.effectAllowed=r.getReadOnly()?"copy":"copyMove",d.isOpera&&(r.container.appendChild(o),o.scrollTop=0),R.setDragImage&&R.setDragImage(o,0,0),d.isOpera&&r.container.removeChild(o),R.clearData(),R.setData("Text",r.session.getTextRange()),h=!0,this.setState("drag")},this.onDragEnd=function(y){if(f.draggable=!1,h=!1,this.setState(null),!r.getReadOnly()){var x=y.dataTransfer.dropEffect;!F&&x=="move"&&r.session.remove(r.getSelectionRange()),r.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(y){if(!(r.getReadOnly()||!z(y.dataTransfer)))return w=y.clientX,c=y.clientY,v||O(),A++,y.dataTransfer.dropEffect=F=M(y),C.preventDefault(y)},this.onDragOver=function(y){if(!(r.getReadOnly()||!z(y.dataTransfer)))return w=y.clientX,c=y.clientY,v||(O(),A++),W!==null&&(W=null),y.dataTransfer.dropEffect=F=M(y),C.preventDefault(y)},this.onDragLeave=function(y){if(A--,A<=0&&v)return I(),F=null,C.preventDefault(y)},this.onDrop=function(y){if(!!g){var x=y.dataTransfer;if(h)switch(F){case"move":l.contains(g.row,g.column)?l={start:g,end:g}:l=r.moveText(l,g);break;case"copy":l=r.moveText(l,g,!0);break}else{var R=x.getData("Text");l={start:g,end:r.session.insert(g,R)},r.focus(),F=null}return I(),C.preventDefault(y)}},C.addListener(f,"dragstart",this.onDragStart.bind(i)),C.addListener(f,"dragend",this.onDragEnd.bind(i)),C.addListener(f,"dragenter",this.onDragEnter.bind(i)),C.addListener(f,"dragover",this.onDragOver.bind(i)),C.addListener(f,"dragleave",this.onDragLeave.bind(i)),C.addListener(f,"drop",this.onDrop.bind(i));function k(y,x){var R=Date.now(),T=!x||y.row!=x.row,P=!x||y.column!=x.column;if(!b||T||P)r.$blockScrolling+=1,r.moveCursorToPosition(y),r.$blockScrolling-=1,b=R,S={x:w,y:c};else{var N=n(S.x,S.y,w,c);N>t?b=null:R-b>=s&&(r.renderer.scrollCursorIntoView(),b=null)}}function L(y,x){var R=Date.now(),T=r.renderer.layerConfig.lineHeight,P=r.renderer.layerConfig.characterWidth,N=r.renderer.scroller.getBoundingClientRect(),_={x:{left:w-N.left,right:N.right-w},y:{top:c-N.top,bottom:N.bottom-c}},U=Math.min(_.x.left,_.x.right),j=Math.min(_.y.top,_.y.bottom),Q={row:y.row,column:y.column};U/P<=2&&(Q.column+=_.x.left<_.x.right?-3:2),j/T<=1&&(Q.row+=_.y.top<_.y.bottom?-1:1);var X=y.row!=Q.row,V=y.column!=Q.column,G=!x||y.row!=x.row;X||V&&!G?p?R-p>=a&&r.renderer.scrollCursorIntoView(Q):p=R:p=null}function D(){var y=g;g=r.renderer.screenToTextCoordinates(w,c),k(g,y),L(g,y)}function O(){l=r.selection.toOrientedRange(),v=r.session.addMarker(l,"ace_selection",r.getSelectionStyle()),r.clearSelection(),r.isFocused()&&r.renderer.$cursorLayer.setBlinking(!1),clearInterval(m),D(),m=setInterval(D,20),A=0,C.addListener(document,"mousemove",H)}function I(){clearInterval(m),r.session.removeMarker(v),v=null,r.$blockScrolling+=1,r.selection.fromOrientedRange(l),r.$blockScrolling-=1,r.isFocused()&&!h&&r.renderer.$cursorLayer.setBlinking(!r.getReadOnly()),l=null,g=null,A=0,p=null,b=null,C.removeListener(document,"mousemove",H)}var W=null;function H(){W==null&&(W=setTimeout(function(){W!=null&&v&&I()},20))}function z(y){var x=y.types;return!x||Array.prototype.some.call(x,function(R){return R=="text/plain"||R=="Text"})}function M(y){var x=["copy","copymove","all","uninitialized"],R=["move","copymove","linkmove","all","uninitialized"],T=d.isMac?y.altKey:y.ctrlKey,P="uninitialized";try{P=y.dataTransfer.effectAllowed.toLowerCase()}catch{}var N="none";return T&&x.indexOf(P)>=0?N="copy":R.indexOf(P)>=0?N="move":x.indexOf(P)>=0&&(N="copy"),N}}(function(){this.dragWait=function(){var i=Date.now()-this.mousedownEvent.time;i>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var i=this.editor.container;i.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(i){this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly()),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var i=this.editor,r=i.container;r.draggable=!0,i.renderer.$cursorLayer.setBlinking(!1),i.setStyle("ace_dragging");var o=d.isWin?"default":"move";i.renderer.setCursorStyle(o),this.setState("dragReady")},this.onMouseDrag=function(i){var r=this.editor.container;if(d.isIE&&this.state=="dragReady"){var o=n(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);o>3&&r.dragDrop()}if(this.state==="dragWait"){var o=n(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);o>0&&(r.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(i){if(!!this.$dragEnabled){this.mousedownEvent=i;var r=this.editor,o=i.inSelection(),u=i.getButton(),f=i.domEvent.detail||1;if(f===1&&u===0&&o){if(i.editor.inMultiSelectMode&&(i.getAccelKey()||i.getShiftKey()))return;this.mousedownEvent.time=Date.now();var v=i.domEvent.target||i.domEvent.srcElement;if("unselectable"in v&&(v.unselectable="on"),r.getDragDelay()){if(d.isWebKit){this.cancelDrag=!0;var w=r.container;w.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(i,this.onMouseDrag.bind(this)),i.defaultPrevented=!0}}}}).call(e.prototype);function n(i,r,o,u){return Math.sqrt(Math.pow(o-i,2)+Math.pow(u-r,2))}E.DragdropHandler=e});ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(B,E,K){var $=B("./dom");E.get=function(C,d){var a=new XMLHttpRequest;a.open("GET",C,!0),a.onreadystatechange=function(){a.readyState===4&&d(a.responseText)},a.send(null)},E.loadScript=function(C,d){var a=$.getDocumentHead(),s=document.createElement("script");s.src=C,a.appendChild(s),s.onload=s.onreadystatechange=function(t,e){(e||!s.readyState||s.readyState=="loaded"||s.readyState=="complete")&&(s=s.onload=s.onreadystatechange=null,e||d())}},E.qualifyURL=function(C){var d=document.createElement("a");return d.href=C,d.href}});ace.define("ace/lib/event_emitter",["require","exports","module"],function(B,E,K){var $={},C=function(){this.propagationStopped=!0},d=function(){this.defaultPrevented=!0};$._emit=$._dispatchEvent=function(a,s){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var t=this._eventRegistry[a]||[],e=this._defaultHandlers[a];if(!(!t.length&&!e)){(typeof s!="object"||!s)&&(s={}),s.type||(s.type=a),s.stopPropagation||(s.stopPropagation=C),s.preventDefault||(s.preventDefault=d),t=t.slice();for(var n=0;n<t.length&&(t[n](s,this),!s.propagationStopped);n++);if(e&&!s.defaultPrevented)return e(s,this)}},$._signal=function(a,s){var t=(this._eventRegistry||{})[a];if(!!t){t=t.slice();for(var e=0;e<t.length;e++)t[e](s,this)}},$.once=function(a,s){var t=this;s&&this.addEventListener(a,function e(){t.removeEventListener(a,e),s.apply(null,arguments)})},$.setDefaultHandler=function(a,s){var t=this._defaultHandlers;if(t||(t=this._defaultHandlers={_disabled_:{}}),t[a]){var e=t[a],n=t._disabled_[a];n||(t._disabled_[a]=n=[]),n.push(e);var i=n.indexOf(s);i!=-1&&n.splice(i,1)}t[a]=s},$.removeDefaultHandler=function(a,s){var t=this._defaultHandlers;if(!!t){var e=t._disabled_[a];if(t[a]==s)t[a],e&&this.setDefaultHandler(a,e.pop());else if(e){var n=e.indexOf(s);n!=-1&&e.splice(n,1)}}},$.on=$.addEventListener=function(a,s,t){this._eventRegistry=this._eventRegistry||{};var e=this._eventRegistry[a];return e||(e=this._eventRegistry[a]=[]),e.indexOf(s)==-1&&e[t?"unshift":"push"](s),s},$.off=$.removeListener=$.removeEventListener=function(a,s){this._eventRegistry=this._eventRegistry||{};var t=this._eventRegistry[a];if(!!t){var e=t.indexOf(s);e!==-1&&t.splice(e,1)}},$.removeAllListeners=function(a){this._eventRegistry&&(this._eventRegistry[a]=[])},E.EventEmitter=$});ace.define("ace/lib/app_config",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(B,E,K){var $=B("./oop"),C=B("./event_emitter").EventEmitter,d={setOptions:function(e){Object.keys(e).forEach(function(n){this.setOption(n,e[n])},this)},getOptions:function(e){var n={};return e?Array.isArray(e)||(n=e,e=Object.keys(n)):e=Object.keys(this.$options),e.forEach(function(i){n[i]=this.getOption(i)},this),n},setOption:function(e,n){if(this["$"+e]!==n){var i=this.$options[e];if(!i)return a('misspelled option "'+e+'"');if(i.forwardTo)return this[i.forwardTo]&&this[i.forwardTo].setOption(e,n);i.handlesSet||(this["$"+e]=n),i&&i.set&&i.set.call(this,n)}},getOption:function(e){var n=this.$options[e];return n?n.forwardTo?this[n.forwardTo]&&this[n.forwardTo].getOption(e):n&&n.get?n.get.call(this):this["$"+e]:a('misspelled option "'+e+'"')}};function a(e){typeof console!="undefined"&&console.warn&&console.warn.apply(console,arguments)}function s(e,n){var i=new Error(e);i.data=n,typeof console=="object"&&console.error&&console.error(i),setTimeout(function(){throw i})}var t=function(){this.$defaultOptions={}};(function(){$.implement(this,C),this.defineOptions=function(e,n,i){return e.$options||(this.$defaultOptions[n]=e.$options={}),Object.keys(i).forEach(function(r){var o=i[r];typeof o=="string"&&(o={forwardTo:o}),o.name||(o.name=r),e.$options[o.name]=o,"initialValue"in o&&(e["$"+o.name]=o.initialValue)}),$.implement(e,d),this},this.resetOptions=function(e){Object.keys(e.$options).forEach(function(n){var i=e.$options[n];"value"in i&&e.setOption(n,i.value)})},this.setDefaultValue=function(e,n,i){var r=this.$defaultOptions[e]||(this.$defaultOptions[e]={});r[n]&&(r.forwardTo?this.setDefaultValue(r.forwardTo,n,i):r[n].value=i)},this.setDefaultValues=function(e,n){Object.keys(n).forEach(function(i){this.setDefaultValue(e,i,n[i])},this)},this.warn=a,this.reportError=s}).call(t.prototype),E.AppConfig=t});ace.define("ace/config",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/lib/net","ace/lib/app_config"],function(B,E,K){var $=B("./lib/lang");B("./lib/oop");var C=B("./lib/net"),d=B("./lib/app_config").AppConfig;K.exports=E=new d;var a=function(){return this||typeof window!="undefined"&&window}(),s={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:"",suffix:".js",$moduleUrls:{}};E.get=function(n){if(!s.hasOwnProperty(n))throw new Error("Unknown config key: "+n);return s[n]},E.set=function(n,i){if(!s.hasOwnProperty(n))throw new Error("Unknown config key: "+n);s[n]=i},E.all=function(){return $.copyObject(s)},E.moduleUrl=function(n,i){if(s.$moduleUrls[n])return s.$moduleUrls[n];var r=n.split("/");i=i||r[r.length-2]||"";var o=i=="snippets"?"/":"-",u=r[r.length-1];if(i=="worker"&&o=="-"){var f=new RegExp("^"+i+"[\\-_]|[\\-_]"+i+"$","g");u=u.replace(f,"")}(!u||u==i)&&r.length>1&&(u=r[r.length-2]);var v=s[i+"Path"];return v==null?v=s.basePath:o=="/"&&(i=o=""),v&&v.slice(-1)!="/"&&(v+="/"),v+i+o+u+this.get("suffix")},E.setModuleUrl=function(n,i){return s.$moduleUrls[n]=i},E.$loading={},E.loadModule=function(n,i){var r,o;Array.isArray(n)&&(o=n[0],n=n[1]);try{r=B(n)}catch{}if(r&&!E.$loading[n])return i&&i(r);if(E.$loading[n]||(E.$loading[n]=[]),E.$loading[n].push(i),!(E.$loading[n].length>1)){var u=function(){B([n],function(f){E._emit("load.module",{name:n,module:f});var v=E.$loading[n];E.$loading[n]=null,v.forEach(function(w){w&&w(f)})})};if(!E.get("packaged"))return u();C.loadScript(E.moduleUrl(n,o),u)}},t(!0);function t(n){if(!(!a||!a.document)){s.packaged=n||B.packaged||K.packaged||a.define&&(void 0).packaged;for(var i={},r="",o=document.currentScript||document._currentScript,u=o&&o.ownerDocument||document,f=u.getElementsByTagName("script"),v=0;v<f.length;v++){var w=f[v],c=w.src||w.getAttribute("src");if(!!c){for(var m=w.attributes,l=0,g=m.length;l<g;l++){var A=m[l];A.name.indexOf("data-ace-")===0&&(i[e(A.name.replace(/^data-ace-/,""))]=A.value)}var F=c.match(/^(.*)\/ace(\-\w+)?\.js(\?|$)/);F&&(r=F[1])}}r&&(i.base=i.base||r,i.packaged=!0),i.basePath=i.base,i.workerPath=i.workerPath||i.base,i.modePath=i.modePath||i.base,i.themePath=i.themePath||i.base,delete i.base;for(var h in i)typeof i[h]!="undefined"&&E.set(h,i[h])}}E.init=t;function e(n){return n.replace(/-(.)/g,function(i,r){return r.toUpperCase()})}});ace.define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event","ace/mouse/dragdrop_handler","ace/config"],function(B,E,K){var $=B("../lib/event"),C=B("../lib/useragent"),d=B("./default_handlers").DefaultHandlers,a=B("./default_gutter_handler").GutterHandler,s=B("./mouse_event").MouseEvent,t=B("./dragdrop_handler").DragdropHandler,e=B("../config"),n=function(i){var r=this;this.editor=i,new d(this),new a(this),new t(this);var o=function(v){var w=!document.hasFocus||!document.hasFocus()||!i.isFocused()&&document.activeElement==(i.textInput&&i.textInput.getElement());w&&window.focus(),i.focus()},u=i.renderer.getMouseEventTarget();$.addListener(u,"click",this.onMouseEvent.bind(this,"click")),$.addListener(u,"mousemove",this.onMouseMove.bind(this,"mousemove")),$.addMultiMouseDownListener([u,i.renderer.scrollBarV&&i.renderer.scrollBarV.inner,i.renderer.scrollBarH&&i.renderer.scrollBarH.inner,i.textInput&&i.textInput.getElement()].filter(Boolean),[400,300,250],this,"onMouseEvent"),$.addMouseWheelListener(i.container,this.onMouseWheel.bind(this,"mousewheel")),$.addTouchMoveListener(i.container,this.onTouchMove.bind(this,"touchmove"));var f=i.renderer.$gutter;$.addListener(f,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),$.addListener(f,"click",this.onMouseEvent.bind(this,"gutterclick")),$.addListener(f,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),$.addListener(f,"mousemove",this.onMouseEvent.bind(this,"guttermousemove")),$.addListener(u,"mousedown",o),$.addListener(f,"mousedown",o),C.isIE&&i.renderer.scrollBarV&&($.addListener(i.renderer.scrollBarV.element,"mousedown",o),$.addListener(i.renderer.scrollBarH.element,"mousedown",o)),i.on("mousemove",function(v){if(!(r.state||r.$dragDelay||!r.$dragEnabled)){var w=i.renderer.screenToTextCoordinates(v.x,v.y),c=i.session.selection.getRange(),m=i.renderer;!c.isEmpty()&&c.insideStart(w.row,w.column)?m.setCursorStyle("default"):m.setCursorStyle("")}})};(function(){this.onMouseEvent=function(i,r){this.editor._emit(i,new s(r,this.editor))},this.onMouseMove=function(i,r){var o=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;!o||!o.length||this.editor._emit(i,new s(r,this.editor))},this.onMouseWheel=function(i,r){var o=new s(r,this.editor);o.speed=this.$scrollSpeed*2,o.wheelX=r.wheelX,o.wheelY=r.wheelY,this.editor._emit(i,o)},this.onTouchMove=function(i,r){var o=new s(r,this.editor);o.speed=1,o.wheelX=r.wheelX,o.wheelY=r.wheelY,this.editor._emit(i,o)},this.setState=function(i){this.state=i},this.captureMouse=function(i,r){this.x=i.x,this.y=i.y,this.isMousePressed=!0;var o=this.editor.renderer;o.$keepTextAreaAtCursor&&(o.$keepTextAreaAtCursor=null);var u=this,f=function(m){if(!!m){if(C.isWebKit&&!m.which&&u.releaseMouse)return u.releaseMouse();u.x=m.clientX,u.y=m.clientY,r&&r(m),u.mouseEvent=new s(m,u.editor),u.$mouseMoved=!0}},v=function(m){clearInterval(c),w(),u[u.state+"End"]&&u[u.state+"End"](m),u.state="",o.$keepTextAreaAtCursor==null&&(o.$keepTextAreaAtCursor=!0,o.$moveTextAreaToCursor()),u.isMousePressed=!1,u.$onCaptureMouseMove=u.releaseMouse=null,m&&u.onMouseEvent("mouseup",m)},w=function(){u[u.state]&&u[u.state](),u.$mouseMoved=!1};if(C.isOldIE&&i.domEvent.type=="dblclick")return setTimeout(function(){v(i)});u.$onCaptureMouseMove=f,u.releaseMouse=$.capture(this.editor.container,f,v);var c=setInterval(w,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var i=function(r){r&&r.domEvent&&r.domEvent.type!="contextmenu"||(this.editor.off("nativecontextmenu",i),r&&r.domEvent&&$.stopEvent(r.domEvent))}.bind(this);setTimeout(i,10),this.editor.on("nativecontextmenu",i)}}).call(n.prototype),e.defineOptions(n.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:C.isMac?150:0},dragEnabled:{initialValue:!0},focusTimout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),E.MouseHandler=n});ace.define("ace/mouse/fold_handler",["require","exports","module"],function(B,E,K){function $(C){C.on("click",function(d){var a=d.getDocumentPosition(),s=C.session,t=s.getFoldAt(a.row,a.column,1);t&&(d.getAccelKey()?s.removeFold(t):s.expandFold(t),d.stop())}),C.on("gutterclick",function(d){var a=C.renderer.$gutterLayer.getRegion(d);if(a=="foldWidgets"){var s=d.getDocumentPosition().row,t=C.session;t.foldWidgets&&t.foldWidgets[s]&&C.session.onFoldWidgetClick(s,d),C.isFocused()||C.focus(),d.stop()}}),C.on("gutterdblclick",function(d){var a=C.renderer.$gutterLayer.getRegion(d);if(a=="foldWidgets"){var s=d.getDocumentPosition().row,t=C.session,e=t.getParentFoldRangeData(s,!0),n=e.range||e.firstRange;if(n){s=n.start.row;var i=t.getFoldAt(s,t.getLine(s).length,1);i?t.removeFold(i):(t.addFold("...",n),C.renderer.scrollCursorIntoView({row:n.start.row,column:0}))}d.stop()}})}E.FoldHandler=$});ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(B,E,K){var $=B("../lib/keys"),C=B("../lib/event"),d=function(a){this.$editor=a,this.$data={editor:a},this.$handlers=[],this.setDefaultHandler(a.commands)};(function(){this.setDefaultHandler=function(a){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=a,this.addKeyboardHandler(a,0)},this.setKeyboardHandler=function(a){var s=this.$handlers;if(s[s.length-1]!=a){for(;s[s.length-1]&&s[s.length-1]!=this.$defaultHandler;)this.removeKeyboardHandler(s[s.length-1]);this.addKeyboardHandler(a,1)}},this.addKeyboardHandler=function(a,s){if(!!a){typeof a=="function"&&!a.handleKeyboard&&(a.handleKeyboard=a);var t=this.$handlers.indexOf(a);t!=-1&&this.$handlers.splice(t,1),s==null?this.$handlers.push(a):this.$handlers.splice(s,0,a),t==-1&&a.attach&&a.attach(this.$editor)}},this.removeKeyboardHandler=function(a){var s=this.$handlers.indexOf(a);return s==-1?!1:(this.$handlers.splice(s,1),a.detach&&a.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.getStatusText=function(){var a=this.$data,s=a.editor;return this.$handlers.map(function(t){return t.getStatusText&&t.getStatusText(s,a)||""}).filter(Boolean).join(" ")},this.$callKeyboardHandlers=function(a,s,t,e){for(var n,i=!1,r=this.$editor.commands,o=this.$handlers.length;o--&&(n=this.$handlers[o].handleKeyboard(this.$data,a,s,t,e),!(!(!n||!n.command)&&(n.command=="null"?i=!0:i=r.exec(n.command,this.$editor,n.args,e),i&&e&&a!=-1&&n.passEvent!=!0&&n.command.passEvent!=!0&&C.stopEvent(e),i))););return!i&&a==-1&&(n={command:"insertstring"},i=r.exec("insertstring",this.$editor,s)),i&&this.$editor._signal&&this.$editor._signal("keyboardActivity",n),i},this.onCommandKey=function(a,s,t){var e=$.keyCodeToString(t);this.$callKeyboardHandlers(s,e,t,a)},this.onTextInput=function(a){this.$callKeyboardHandlers(-1,a)}}).call(d.prototype),E.KeyBinding=d});ace.define("ace/lib/bidiutil",["require","exports","module"],function(B,E,K){var $=0,C=0,d=!1,a=!1,s=!1,t=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],e=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],n=0,i=1,r=0,o=1,u=2,f=3,v=4,w=5,c=6,m=7,l=8,g=9,A=10,F=11,h=12,p=13,b=14,S=15,k=16,L=17,D=18,O=[D,D,D,D,D,D,D,D,D,c,w,c,l,w,D,D,D,D,D,D,D,D,D,D,D,D,D,D,w,w,w,c,l,v,v,F,F,F,v,v,v,v,v,A,g,A,g,g,u,u,u,u,u,u,u,u,u,u,g,v,v,v,v,v,v,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,v,v,v,v,v,v,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,v,v,v,v,D,D,D,D,D,D,w,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,g,v,F,F,F,F,v,v,v,v,r,v,v,D,v,v,F,F,u,u,v,r,v,v,v,u,r,v,v,v,v,v],I=[l,l,l,l,l,l,l,l,l,l,l,D,D,D,r,o,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,l,w,p,b,S,k,L,g,F,F,F,F,F,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,g,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,l];function W(y,x,R,T){var P=$?e:t,N=null,_=null,U=null,j=0,Q=null,X=null,V=-1,G=null,Y=null,Z=[];if(!T)for(G=0,T=[];G<R;G++)T[G]=M(y[G]);for(C=$,d=!1,a=!1,s=!1,Y=0;Y<R;Y++){if(N=j,Z[Y]=_=z(y,T,Z,Y),j=P[N][_],Q=j&240,j&=15,x[Y]=U=P[j][5],Q>0)if(Q==16){for(G=V;G<Y;G++)x[G]=1;V=-1}else V=-1;if(X=P[j][6],X)V==-1&&(V=Y);else if(V>-1){for(G=V;G<Y;G++)x[G]=U;V=-1}T[Y]==w&&(x[Y]=0),C|=U}if(s){for(G=0;G<R;G++)if(T[G]==c){x[G]=$;for(var J=G-1;J>=0&&T[J]==l;J--)x[J]=$}}}function H(y,x,R){if(!(C<y)){if(y==1&&$==i&&!a){R.reverse();return}for(var T=R.length,P=0,N,_,U,j;P<T;){if(x[P]>=y){for(N=P+1;N<T&&x[N]>=y;)N++;for(_=P,U=N-1;_<U;_++,U--)j=R[_],R[_]=R[U],R[U]=j;P=N}P++}}}function z(y,x,R,T){var P=x[T],N,_,U,j;switch(P){case r:case o:d=!1;case v:case f:return P;case u:return d?f:u;case m:return d=!0,o;case l:return v;case g:return T<1||T+1>=x.length||(N=R[T-1])!=u&&N!=f||(_=x[T+1])!=u&&_!=f?v:(d&&(_=f),_==N?_:v);case A:return N=T>0?R[T-1]:w,N==u&&T+1<x.length&&x[T+1]==u?u:v;case F:if(T>0&&R[T-1]==u)return u;if(d)return v;for(j=T+1,U=x.length;j<U&&x[j]==F;)j++;return j<U&&x[j]==u?u:v;case h:for(U=x.length,j=T+1;j<U&&x[j]==h;)j++;if(j<U){var Q=y[T],X=Q>=1425&&Q<=2303||Q==64286;if(N=x[j],X&&(N==o||N==m))return o}return T<1||(N=x[T-1])==w?v:R[T-1];case w:return d=!1,a=!0,$;case c:return s=!0,v;case p:case b:case k:case L:case S:d=!1;case D:return v}}function M(y){var x=y.charCodeAt(0),R=x>>8;return R==0?x>191?r:O[x]:R==5?/[\u0591-\u05f4]/.test(y)?o:r:R==6?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(y)?h:/[\u0660-\u0669\u066b-\u066c]/.test(y)?f:x==1642?F:/[\u06f0-\u06f9]/.test(y)?u:m:R==32&&x<=8287?I[x&255]:R==254&&x>=65136?m:v}E.L=r,E.R=o,E.EN=u,E.ON_R=3,E.AN=4,E.R_H=5,E.B=6,E.DOT="\xB7",E.doBidiReorder=function(y,x,R){if(y.length<2)return{};var T=y.split(""),P=new Array(T.length),N=new Array(T.length),_=[];$=R?i:n,W(T,_,T.length,x);for(var U=0;U<P.length;P[U]=U,U++);H(2,_,P),H(1,_,P);for(var U=0;U<P.length-1;U++)x[U]===f?_[U]=E.AN:_[U]===o&&(x[U]>m&&x[U]<p||x[U]===v||x[U]===D)?_[U]=E.ON_R:U>0&&T[U-1]==="\u0644"&&/\u0622|\u0623|\u0625|\u0627/.test(T[U])&&(_[U-1]=_[U]=E.R_H,U++);T[T.length-1]===E.DOT&&(_[T.length-1]=E.B);for(var U=0;U<P.length;U++)N[U]=_[P[U]];return{logicalFromVisual:P,bidiLevels:N}},E.hasBidiCharacters=function(y,x){for(var R=!1,T=0;T<y.length;T++)x[T]=M(y.charAt(T)),!R&&(x[T]==o||x[T]==m)&&(R=!0);return R},E.getVisualFromLogicalIdx=function(y,x){for(var R=0;R<x.logicalFromVisual.length;R++)if(x.logicalFromVisual[R]==y)return R;return 0}});ace.define("ace/bidihandler",["require","exports","module","ace/lib/bidiutil","ace/lib/lang","ace/lib/useragent"],function(B,E,K){var $=B("./lib/bidiutil"),C=B("./lib/lang"),d=B("./lib/useragent"),a=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,s=function(t){this.session=t,this.bidiMap={},this.currentRow=null,this.bidiUtil=$,this.charWidths=[],this.EOL="\xAC",this.showInvisibles=!0,this.isRtlDir=!1,this.line="",this.wrapIndent=0,this.isLastRow=!1,this.EOF="\xB6",this.seenBidi=!1};(function(){this.isBidiRow=function(t,e,n){return this.seenBidi?(t!==this.currentRow&&(this.currentRow=t,this.updateRowLine(e,n),this.updateBidiMap()),this.bidiMap.bidiLevels):!1},this.onChange=function(t){this.seenBidi?this.currentRow=null:t.action=="insert"&&a.test(t.lines.join(` +`))&&(this.seenBidi=!0,this.currentRow=null)},this.getDocumentRow=function(){var t=0,e=this.session.$screenRowCache;if(e.length){var n=this.session.$getRowCacheIndex(e,this.currentRow);n>=0&&(t=this.session.$docRowCache[n])}return t},this.getSplitIndex=function(){var t=0,e=this.session.$screenRowCache;if(e.length)for(var n,i=this.session.$getRowCacheIndex(e,this.currentRow);this.currentRow-t>0&&(n=this.session.$getRowCacheIndex(e,this.currentRow-t-1),n===i);)i=n,t++;return t},this.updateRowLine=function(t,e){if(t===void 0&&(t=this.getDocumentRow()),this.wrapIndent=0,this.isLastRow=t===this.session.getLength()-1,this.line=this.session.getLine(t),this.session.$useWrapMode){var n=this.session.$wrapData[t];n&&(e===void 0&&(e=this.getSplitIndex()),e>0&&n.length?(this.wrapIndent=n.indent,this.line=e<n.length?this.line.substring(n[e-1],n[n.length-1]):this.line.substring(n[n.length-1])):this.line=this.line.substring(0,n[e]))}var i=this.session,r=0,o;this.line=this.line.replace(/\t|[\u1100-\u2029, \u202F-\uFFE6]/g,function(u,f){return u===" "||i.isFullWidth(u.charCodeAt(0))?(o=u===" "?i.getScreenTabSize(f+r):2,r+=o-1,C.stringRepeat($.DOT,o)):u})},this.updateBidiMap=function(){var t=[],e=this.isLastRow?this.EOF:this.EOL,n=this.line+(this.showInvisibles?e:$.DOT);$.hasBidiCharacters(n,t)?this.bidiMap=$.doBidiReorder(n,t,this.isRtlDir):this.bidiMap={}},this.markAsDirty=function(){this.currentRow=null},this.updateCharacterWidths=function(t){if(!!this.seenBidi&&this.characterWidth!==t.$characterSize.width){var e=this.characterWidth=t.$characterSize.width,n=t.$measureCharWidth("\u05D4");this.charWidths[$.L]=this.charWidths[$.EN]=this.charWidths[$.ON_R]=e,this.charWidths[$.R]=this.charWidths[$.AN]=n,this.charWidths[$.R_H]=d.isChrome?n:n*.45,this.charWidths[$.B]=0,this.currentRow=null}},this.getShowInvisibles=function(){return this.showInvisibles},this.setShowInvisibles=function(t){this.showInvisibles=t,this.currentRow=null},this.setEolChar=function(t){this.EOL=t},this.setTextDir=function(t){this.isRtlDir=t},this.getPosLeft=function(t){t-=this.wrapIndent;var e=$.getVisualFromLogicalIdx(t>0?t-1:0,this.bidiMap),n=this.bidiMap.bidiLevels,i=0;t===0&&n[e]%2!==0&&e++;for(var r=0;r<e;r++)i+=this.charWidths[n[r]];return t!==0&&n[e]%2===0&&(i+=this.charWidths[n[e]]),this.wrapIndent&&(i+=this.wrapIndent*this.charWidths[$.L]),i},this.getSelections=function(t,e){for(var n=this.bidiMap,i=n.bidiLevels,r,o=this.wrapIndent*this.charWidths[$.L],u=[],f=Math.min(t,e)-this.wrapIndent,v=Math.max(t,e)-this.wrapIndent,w=!1,c=!1,m=0,l,g=0;g<i.length;g++)l=n.logicalFromVisual[g],r=i[g],w=l>=f&&l<v,w&&!c?m=o:!w&&c&&u.push({left:m,width:o-m}),o+=this.charWidths[r],c=w;return w&&g===i.length&&u.push({left:m,width:o-m}),u},this.offsetToCol=function(n){var e=0,n=Math.max(n,0),i=0,r=0,o=this.bidiMap.bidiLevels,u=this.charWidths[o[r]];for(this.wrapIndent&&(n-=this.wrapIndent*this.charWidths[$.L]);n>i+u/2;){if(i+=u,r===o.length-1){u=0;break}u=this.charWidths[o[++r]]}return r>0&&o[r-1]%2!==0&&o[r]%2===0?(n<i&&r--,e=this.bidiMap.logicalFromVisual[r]):r>0&&o[r-1]%2===0&&o[r]%2!==0?e=1+(n>i?this.bidiMap.logicalFromVisual[r]:this.bidiMap.logicalFromVisual[r-1]):this.isRtlDir&&r===o.length-1&&u===0&&o[r-1]%2===0||!this.isRtlDir&&r===0&&o[r]%2!==0?e=1+this.bidiMap.logicalFromVisual[r]:(r>0&&o[r-1]%2!==0&&u!==0&&r--,e=this.bidiMap.logicalFromVisual[r]),e+this.wrapIndent}}).call(s.prototype),E.BidiHandler=s});ace.define("ace/range",["require","exports","module"],function(B,E,K){var $=function(d,a){return d.row-a.row||d.column-a.column},C=function(d,a,s,t){this.start={row:d,column:a},this.end={row:s,column:t}};(function(){this.isEqual=function(d){return this.start.row===d.start.row&&this.end.row===d.end.row&&this.start.column===d.start.column&&this.end.column===d.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(d,a){return this.compare(d,a)==0},this.compareRange=function(d){var a,s=d.end,t=d.start;return a=this.compare(s.row,s.column),a==1?(a=this.compare(t.row,t.column),a==1?2:a==0?1:0):a==-1?-2:(a=this.compare(t.row,t.column),a==-1?-1:a==1?42:0)},this.comparePoint=function(d){return this.compare(d.row,d.column)},this.containsRange=function(d){return this.comparePoint(d.start)==0&&this.comparePoint(d.end)==0},this.intersects=function(d){var a=this.compareRange(d);return a==-1||a==0||a==1},this.isEnd=function(d,a){return this.end.row==d&&this.end.column==a},this.isStart=function(d,a){return this.start.row==d&&this.start.column==a},this.setStart=function(d,a){typeof d=="object"?(this.start.column=d.column,this.start.row=d.row):(this.start.row=d,this.start.column=a)},this.setEnd=function(d,a){typeof d=="object"?(this.end.column=d.column,this.end.row=d.row):(this.end.row=d,this.end.column=a)},this.inside=function(d,a){return this.compare(d,a)==0?!(this.isEnd(d,a)||this.isStart(d,a)):!1},this.insideStart=function(d,a){return this.compare(d,a)==0?!this.isEnd(d,a):!1},this.insideEnd=function(d,a){return this.compare(d,a)==0?!this.isStart(d,a):!1},this.compare=function(d,a){return!this.isMultiLine()&&d===this.start.row?a<this.start.column?-1:a>this.end.column?1:0:d<this.start.row?-1:d>this.end.row?1:this.start.row===d?a>=this.start.column?0:-1:this.end.row===d?a<=this.end.column?0:1:0},this.compareStart=function(d,a){return this.start.row==d&&this.start.column==a?-1:this.compare(d,a)},this.compareEnd=function(d,a){return this.end.row==d&&this.end.column==a?1:this.compare(d,a)},this.compareInside=function(d,a){return this.end.row==d&&this.end.column==a?1:this.start.row==d&&this.start.column==a?-1:this.compare(d,a)},this.clipRows=function(d,a){if(this.end.row>a)var s={row:a+1,column:0};else if(this.end.row<d)var s={row:d,column:0};if(this.start.row>a)var t={row:a+1,column:0};else if(this.start.row<d)var t={row:d,column:0};return C.fromPoints(t||this.start,s||this.end)},this.extend=function(d,a){var s=this.compare(d,a);if(s==0)return this;if(s==-1)var t={row:d,column:a};else var e={row:d,column:a};return C.fromPoints(t||this.start,e||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return C.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new C(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new C(this.start.row,0,this.end.row,0)},this.toScreenRange=function(d){var a=d.documentToScreenPosition(this.start),s=d.documentToScreenPosition(this.end);return new C(a.row,a.column,s.row,s.column)},this.moveBy=function(d,a){this.start.row+=d,this.start.column+=a,this.end.row+=d,this.end.column+=a}}).call(C.prototype),C.fromPoints=function(d,a){return new C(d.row,d.column,a.row,a.column)},C.comparePoints=$,C.comparePoints=function(d,a){return d.row-a.row||d.column-a.column},E.Range=C});ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(B,E,K){var $=B("./lib/oop"),C=B("./lib/lang"),d=B("./lib/event_emitter").EventEmitter,a=B("./range").Range,s=function(t){this.session=t,this.doc=t.getDocument(),this.clearSelection(),this.lead=this.selectionLead=this.doc.createAnchor(0,0),this.anchor=this.selectionAnchor=this.doc.createAnchor(0,0);var e=this;this.lead.on("change",function(n){e._emit("changeCursor"),e.$isEmpty||e._emit("changeSelection"),!e.$keepDesiredColumnOnChange&&n.old.column!=n.value.column&&(e.$desiredColumn=null)}),this.selectionAnchor.on("change",function(){e.$isEmpty||e._emit("changeSelection")})};(function(){$.implement(this,d),this.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},this.isMultiLine=function(){return this.isEmpty()?!1:this.getRange().isMultiLine()},this.getCursor=function(){return this.lead.getPosition()},this.setSelectionAnchor=function(t,e){this.anchor.setPosition(t,e),this.$isEmpty&&(this.$isEmpty=!1,this._emit("changeSelection"))},this.getSelectionAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},this.getSelectionLead=function(){return this.lead.getPosition()},this.shiftSelection=function(t){if(this.$isEmpty){this.moveCursorTo(this.lead.row,this.lead.column+t);return}var e=this.getSelectionAnchor(),n=this.getSelectionLead(),i=this.isBackwards();(!i||e.column!==0)&&this.setSelectionAnchor(e.row,e.column+t),(i||n.column!==0)&&this.$moveSelection(function(){this.moveCursorTo(n.row,n.column+t)})},this.isBackwards=function(){var t=this.anchor,e=this.lead;return t.row>e.row||t.row==e.row&&t.column>e.column},this.getRange=function(){var t=this.anchor,e=this.lead;return this.isEmpty()?a.fromPoints(e,e):this.isBackwards()?a.fromPoints(e,t):a.fromPoints(t,e)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var t=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(t,this.doc.getLine(t).length)},this.setRange=this.setSelectionRange=function(t,e){e?(this.setSelectionAnchor(t.end.row,t.end.column),this.selectTo(t.start.row,t.start.column)):(this.setSelectionAnchor(t.start.row,t.start.column),this.selectTo(t.end.row,t.end.column)),this.getRange().isEmpty()&&(this.$isEmpty=!0),this.$desiredColumn=null},this.$moveSelection=function(t){var e=this.lead;this.$isEmpty&&this.setSelectionAnchor(e.row,e.column),t.call(this)},this.selectTo=function(t,e){this.$moveSelection(function(){this.moveCursorTo(t,e)})},this.selectToPosition=function(t){this.$moveSelection(function(){this.moveCursorToPosition(t)})},this.moveTo=function(t,e){this.clearSelection(),this.moveCursorTo(t,e)},this.moveToPosition=function(t){this.clearSelection(),this.moveCursorToPosition(t)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(t,e){if(typeof e=="undefined"){var n=t||this.lead;t=n.row,e=n.column}return this.session.getWordRange(t,e)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var t=this.getCursor(),e=this.session.getAWordRange(t.row,t.column);this.setSelectionRange(e)},this.getLineRange=function(t,e){var n=typeof t=="number"?t:this.lead.row,i,r=this.session.getFoldLine(n);return r?(n=r.start.row,i=r.end.row):i=n,e===!0?new a(n,0,i,this.session.getLine(i).length):new a(n,0,i+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.wouldMoveIntoSoftTab=function(t,e,n){var i=t.column,r=t.column+e;return n<0&&(i=t.column-e,r=t.column),this.session.isTabStop(t)&&this.doc.getLine(t.row).slice(i,r).split(" ").length-1==e},this.moveCursorLeft=function(){var t=this.lead.getPosition(),e;if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(t.column===0)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var n=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,n,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var t=this.lead.getPosition(),e;if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row<this.doc.getLength()-1&&this.moveCursorTo(this.lead.row+1,0);else{var n=this.session.getTabSize(),t=this.lead;this.wouldMoveIntoSoftTab(t,n,1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,n):this.moveCursorBy(0,1)}},this.moveCursorLineStart=function(){var t=this.lead.row,e=this.lead.column,n=this.session.documentToScreenRow(t,e),i=this.session.screenToDocumentPosition(n,0),r=this.session.getDisplayLine(t,null,i.row,i.column),o=r.match(/^\s*/);o[0].length!=e&&!this.session.$useEmacsStyleLineStart&&(i.column+=o[0].length),this.moveCursorToPosition(i)},this.moveCursorLineEnd=function(){var t=this.lead,e=this.session.getDocumentLastRowColumnPosition(t.row,t.column);if(this.lead.column==e.column){var n=this.session.getLine(e.row);if(e.column==n.length){var i=n.search(/\s+$/);i>0&&(e.column=i)}}this.moveCursorTo(e.row,e.column)},this.moveCursorFileEnd=function(){var t=this.doc.getLength()-1,e=this.doc.getLine(t).length;this.moveCursorTo(t,e)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var t=this.lead.row,e=this.lead.column,n=this.doc.getLine(t),i=n.substring(e);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var r=this.session.getFoldAt(t,e,1);if(r){this.moveCursorTo(r.end.row,r.end.column);return}if(this.session.nonTokenRe.exec(i)&&(e+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,i=n.substring(e)),e>=n.length){this.moveCursorTo(t,n.length),this.moveCursorRight(),t<this.doc.getLength()-1&&this.moveCursorWordRight();return}this.session.tokenRe.exec(i)&&(e+=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,e)},this.moveCursorLongWordLeft=function(){var t=this.lead.row,e=this.lead.column,n;if(n=this.session.getFoldAt(t,e,-1)){this.moveCursorTo(n.start.row,n.start.column);return}var i=this.session.getFoldStringAt(t,e,-1);i==null&&(i=this.doc.getLine(t).substring(0,e));var r=C.stringReverse(i);if(this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0,this.session.nonTokenRe.exec(r)&&(e-=this.session.nonTokenRe.lastIndex,r=r.slice(this.session.nonTokenRe.lastIndex),this.session.nonTokenRe.lastIndex=0),e<=0){this.moveCursorTo(t,0),this.moveCursorLeft(),t>0&&this.moveCursorWordLeft();return}this.session.tokenRe.exec(r)&&(e-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,e)},this.$shortWordEndIndex=function(t){var e=0,n,i=/\s/,r=this.session.tokenRe;if(r.lastIndex=0,this.session.tokenRe.exec(t))e=this.session.tokenRe.lastIndex;else{for(;(n=t[e])&&i.test(n);)e++;if(e<1){for(r.lastIndex=0;(n=t[e])&&!r.test(n);)if(r.lastIndex=0,e++,i.test(n))if(e>2){e--;break}else{for(;(n=t[e])&&i.test(n);)e++;if(e>2)break}}}return r.lastIndex=0,e},this.moveCursorShortWordRight=function(){var t=this.lead.row,e=this.lead.column,n=this.doc.getLine(t),i=n.substring(e),r=this.session.getFoldAt(t,e,1);if(r)return this.moveCursorTo(r.end.row,r.end.column);if(e==n.length){var o=this.doc.getLength();do t++,i=this.doc.getLine(t);while(t<o&&/^\s*$/.test(i));/^\s+/.test(i)||(i=""),e=0}var u=this.$shortWordEndIndex(i);this.moveCursorTo(t,e+u)},this.moveCursorShortWordLeft=function(){var t=this.lead.row,e=this.lead.column,n;if(n=this.session.getFoldAt(t,e,-1))return this.moveCursorTo(n.start.row,n.start.column);var i=this.session.getLine(t).substring(0,e);if(e===0){do t--,i=this.doc.getLine(t);while(t>0&&/^\s*$/.test(i));e=i.length,/\s+$/.test(i)||(i="")}var r=C.stringReverse(i),o=this.$shortWordEndIndex(r);return this.moveCursorTo(t,e-o)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(t,e){var n=this.session.documentToScreenPosition(this.lead.row,this.lead.column),i;e===0&&(t!==0&&(this.session.$bidiHandler.isBidiRow(n.row,this.lead.row)?(i=this.session.$bidiHandler.getPosLeft(n.column),n.column=Math.round(i/this.session.$bidiHandler.charWidths[0])):i=n.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);var r=this.session.screenToDocumentPosition(n.row+t,n.column,i);t!==0&&e===0&&r.row===this.lead.row&&r.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[r.row]&&(r.row>0||t>0)&&r.row++,this.moveCursorTo(r.row,r.column+e,e===0)},this.moveCursorToPosition=function(t){this.moveCursorTo(t.row,t.column)},this.moveCursorTo=function(t,e,n){var i=this.session.getFoldAt(t,e,1);i&&(t=i.start.row,e=i.start.column),this.$keepDesiredColumnOnChange=!0;var r=this.session.getLine(t);/[\uDC00-\uDFFF]/.test(r.charAt(e))&&r.charAt(e-1)&&(this.lead.row==t&&this.lead.column==e+1?e=e-1:e=e+1),this.lead.setPosition(t,e),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},this.moveCursorToScreen=function(t,e,n){var i=this.session.screenToDocumentPosition(t,e);this.moveCursorTo(i.row,i.column,n)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(t){this.setSelectionRange(t,t.cursor==t.start),this.$desiredColumn=t.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(t){var e=this.getRange();return t?(t.start.column=e.start.column,t.start.row=e.start.row,t.end.column=e.end.column,t.end.row=e.end.row):t=e,t.cursor=this.isBackwards()?t.start:t.end,t.desiredColumn=this.$desiredColumn,t},this.getRangeOfMovements=function(t){var e=this.getCursor();try{t(this);var n=this.getCursor();return a.fromPoints(e,n)}catch{return a.fromPoints(e,e)}finally{this.moveCursorToPosition(e)}},this.toJSON=function(){if(this.rangeCount)var t=this.ranges.map(function(e){var n=e.clone();return n.isBackwards=e.cursor==e.start,n});else{var t=this.getRange();t.isBackwards=this.isBackwards()}return t},this.fromJSON=function(t){if(t.start==null)if(this.rangeList){this.toSingleRange(t[0]);for(var e=t.length;e--;){var n=a.fromPoints(t[e].start,t[e].end);t[e].isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}else t=t[0];this.rangeList&&this.toSingleRange(t),this.setSelectionRange(t,t.isBackwards)},this.isEqual=function(t){if((t.length||this.rangeCount)&&t.length!=this.rangeCount)return!1;if(!t.length||!this.ranges)return this.getRange().isEqual(t);for(var e=this.ranges.length;e--;)if(!this.ranges[e].isEqual(t[e]))return!1;return!0}}).call(s.prototype),E.Selection=s});ace.define("ace/tokenizer",["require","exports","module","ace/config"],function(B,E,K){var $=B("./config"),C=2e3,d=function(a){this.states=a,this.regExps={},this.matchMappings={};for(var s in this.states){for(var t=this.states[s],e=[],n=0,i=this.matchMappings[s]={defaultToken:"text"},r="g",o=[],u=0;u<t.length;u++){var f=t[u];if(f.defaultToken&&(i.defaultToken=f.defaultToken),f.caseInsensitive&&(r="gi"),f.regex!=null){f.regex instanceof RegExp&&(f.regex=f.regex.toString().slice(1,-1));var v=f.regex,w=new RegExp("(?:("+v+")|(.))").exec("a").length-2;Array.isArray(f.token)?f.token.length==1||w==1?f.token=f.token[0]:w-1!=f.token.length?(this.reportError("number of classes and regexp groups doesn't match",{rule:f,groupCount:w-1}),f.token=f.token[0]):(f.tokenArray=f.token,f.token=null,f.onMatch=this.$arrayTokens):typeof f.token=="function"&&!f.onMatch&&(w>1?f.onMatch=this.$applyToken:f.onMatch=f.token),w>1&&(/\\\d/.test(f.regex)?v=f.regex.replace(/\\([0-9]+)/g,function(c,m){return"\\"+(parseInt(m,10)+n+1)}):(w=1,v=this.removeCapturingGroups(f.regex)),!f.splitRegex&&typeof f.token!="string"&&o.push(f)),i[n]=u,n+=w,e.push(v),f.onMatch||(f.onMatch=null)}}e.length||(i[0]=0,e.push("$")),o.forEach(function(c){c.splitRegex=this.createSplitterRegexp(c.regex,r)},this),this.regExps[s]=new RegExp("("+e.join(")|(")+")|($)",r)}};(function(){this.$setMaxTokenCount=function(a){C=a|0},this.$applyToken=function(a){var s=this.splitRegex.exec(a).slice(1),t=this.token.apply(this,s);if(typeof t=="string")return[{type:t,value:a}];for(var e=[],n=0,i=t.length;n<i;n++)s[n]&&(e[e.length]={type:t[n],value:s[n]});return e},this.$arrayTokens=function(a){if(!a)return[];var s=this.splitRegex.exec(a);if(!s)return"text";for(var t=[],e=this.tokenArray,n=0,i=e.length;n<i;n++)s[n+1]&&(t[t.length]={type:e[n],value:s[n+1]});return t},this.removeCapturingGroups=function(a){var s=a.replace(/\[(?:\\.|[^\]])*?\]|\\.|\(\?[:=!]|(\()/g,function(t,e){return e?"(?:":t});return s},this.createSplitterRegexp=function(a,s){if(a.indexOf("(?=")!=-1){var t=0,e=!1,n={};a.replace(/(\\.)|(\((?:\?[=!])?)|(\))|([\[\]])/g,function(i,r,o,u,f,v){return e?e=f!="]":f?e=!0:u?(t==n.stack&&(n.end=v+1,n.stack=-1),t--):o&&(t++,o.length!=1&&(n.stack=t,n.start=v)),i}),n.end!=null&&/^\)*$/.test(a.substr(n.end))&&(a=a.substring(0,n.start)+a.substr(n.end))}return a.charAt(0)!="^"&&(a="^"+a),a.charAt(a.length-1)!="$"&&(a+="$"),new RegExp(a,(s||"").replace("g",""))},this.getLineTokens=function(a,s){if(s&&typeof s!="string"){var t=s.slice(0);s=t[0],s==="#tmp"&&(t.shift(),s=t.shift())}else var t=[];var e=s||"start",n=this.states[e];n||(e="start",n=this.states[e]);var i=this.matchMappings[e],r=this.regExps[e];r.lastIndex=0;for(var o,u=[],f=0,v=0,w={type:null,value:""};o=r.exec(a);){var c=i.defaultToken,m=null,l=o[0],g=r.lastIndex;if(g-l.length>f){var A=a.substring(f,g-l.length);w.type==c?w.value+=A:(w.type&&u.push(w),w={type:c,value:A})}for(var F=0;F<o.length-2;F++)if(o[F+1]!==void 0){m=n[i[F]],m.onMatch?c=m.onMatch(l,e,t,a):c=m.token,m.next&&(typeof m.next=="string"?e=m.next:e=m.next(e,t),n=this.states[e],n||(this.reportError("state doesn't exist",e),e="start",n=this.states[e]),i=this.matchMappings[e],f=g,r=this.regExps[e],r.lastIndex=g),m.consumeLineEnd&&(f=g);break}if(l){if(typeof c=="string")(!m||m.merge!==!1)&&w.type===c?w.value+=l:(w.type&&u.push(w),w={type:c,value:l});else if(c){w.type&&u.push(w),w={type:null,value:""};for(var F=0;F<c.length;F++)u.push(c[F])}}if(f==a.length)break;if(f=g,v++>C){for(v>2*a.length&&this.reportError("infinite loop with in ace tokenizer",{startState:s,line:a});f<a.length;)w.type&&u.push(w),w={value:a.substring(f,f+=2e3),type:"overflow"};e="start",t=[];break}}return w.type&&u.push(w),t.length>1&&t[0]!==e&&t.unshift("#tmp",e),{tokens:u,state:t.length?t:e}},this.reportError=$.reportError}).call(d.prototype),E.Tokenizer=d});ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(B,E,K){var $=B("../lib/lang"),C=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(s,t){if(!t){for(var e in s)this.$rules[e]=s[e];return}for(var e in s){for(var n=s[e],i=0;i<n.length;i++){var r=n[i];(r.next||r.onMatch)&&(typeof r.next=="string"&&r.next.indexOf(t)!==0&&(r.next=t+r.next),r.nextState&&r.nextState.indexOf(t)!==0&&(r.nextState=t+r.nextState))}this.$rules[t+e]=n}},this.getRules=function(){return this.$rules},this.embedRules=function(s,t,e,n,i){var r=typeof s=="function"?new s().getRules():s;if(n)for(var o=0;o<n.length;o++)n[o]=t+n[o];else{n=[];for(var u in r)n.push(t+u)}if(this.addRules(r,t),e)for(var f=Array.prototype[i?"push":"unshift"],o=0;o<n.length;o++)f.apply(this.$rules[n[o]],$.deepCopy(e));this.$embeds||(this.$embeds=[]),this.$embeds.push(t)},this.getEmbeds=function(){return this.$embeds};var d=function(s,t){return(s!="start"||t.length)&&t.unshift(this.nextState,s),this.nextState},a=function(s,t){return t.shift(),t.shift()||"start"};this.normalizeRules=function(){var s=0,t=this.$rules;function e(n){var i=t[n];i.processed=!0;for(var r=0;r<i.length;r++){var o=i[r],u=null;Array.isArray(o)&&(u=o,o={}),!o.regex&&o.start&&(o.regex=o.start,o.next||(o.next=[]),o.next.push({defaultToken:o.token},{token:o.token+".end",regex:o.end||o.start,next:"pop"}),o.token=o.token+".start",o.push=!0);var f=o.next||o.push;if(f&&Array.isArray(f)){var v=o.stateName;v||(v=o.token,typeof v!="string"&&(v=v[0]||""),t[v]&&(v+=s++)),t[v]=f,o.next=v,e(v)}else f=="pop"&&(o.next=a);if(o.push&&(o.nextState=o.next||o.push,o.next=d,delete o.push),o.rules)for(var w in o.rules)t[w]?t[w].push&&t[w].push.apply(t[w],o.rules[w]):t[w]=o.rules[w];var c=typeof o=="string"?o:o.include;if(c&&(Array.isArray(c)?u=c.map(function(l){return t[l]}):u=t[c]),u){var m=[r,1].concat(u);o.noEscape&&(m=m.filter(function(l){return!l.next})),i.splice.apply(i,m),r--}o.keywordMap&&(o.token=this.createKeywordMapper(o.keywordMap,o.defaultToken||"text",o.caseInsensitive),delete o.defaultToken)}}Object.keys(t).forEach(e,this)},this.createKeywordMapper=function(s,t,e,n){var i=Object.create(null);return Object.keys(s).forEach(function(r){var o=s[r];e&&(o=o.toLowerCase());for(var u=o.split(n||"|"),f=u.length;f--;)i[u[f]]=r}),Object.getPrototypeOf(i)&&(i.__proto__=null),this.$keywordList=Object.keys(i),s=null,e?function(r){return i[r.toLowerCase()]||t}:function(r){return i[r]||t}},this.getKeywords=function(){return this.$keywords}}).call(C.prototype),E.TextHighlightRules=C});ace.define("ace/mode/behaviour",["require","exports","module"],function(B,E,K){var $=function(){this.$behaviours={}};(function(){this.add=function(C,d,a){switch(void 0){case this.$behaviours:this.$behaviours={};case this.$behaviours[C]:this.$behaviours[C]={}}this.$behaviours[C][d]=a},this.addBehaviours=function(C){for(var d in C)for(var a in C[d])this.add(d,a,C[d][a])},this.remove=function(C){this.$behaviours&&this.$behaviours[C]&&delete this.$behaviours[C]},this.inherit=function(C,d){if(typeof C=="function")var a=new C().getBehaviours(d);else var a=C.getBehaviours(d);this.addBehaviours(a)},this.getBehaviours=function(C){if(C){for(var d={},a=0;a<C.length;a++)this.$behaviours[C[a]]&&(d[C[a]]=this.$behaviours[C[a]]);return d}else return this.$behaviours}}).call($.prototype),E.Behaviour=$});ace.define("ace/token_iterator",["require","exports","module","ace/range"],function(B,E,K){var $=B("./range").Range,C=function(d,a,s){this.$session=d,this.$row=a,this.$rowTokens=d.getTokens(a);var t=d.getTokenAt(a,s);this.$tokenIndex=t?t.index:-1};(function(){this.stepBackward=function(){for(this.$tokenIndex-=1;this.$tokenIndex<0;){if(this.$row-=1,this.$row<0)return this.$row=0,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=this.$rowTokens.length-1}return this.$rowTokens[this.$tokenIndex]},this.stepForward=function(){this.$tokenIndex+=1;for(var d;this.$tokenIndex>=this.$rowTokens.length;){if(this.$row+=1,d||(d=this.$session.getLength()),this.$row>=d)return this.$row=d-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var d=this.$rowTokens,a=this.$tokenIndex,s=d[a].start;if(s!==void 0)return s;for(s=0;a>0;)a-=1,s+=d[a].value.length;return s},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},this.getCurrentTokenRange=function(){var d=this.$rowTokens[this.$tokenIndex],a=this.getCurrentTokenColumn();return new $(this.$row,a,this.$row,a+d.value.length)}}).call(C.prototype),E.TokenIterator=C});ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(B,E,K){var $=B("../../lib/oop"),C=B("../behaviour").Behaviour,d=B("../../token_iterator").TokenIterator,a=B("../../lib/lang"),s=["text","paren.rparen","punctuation.operator"],t=["text","paren.rparen","punctuation.operator","comment"],e,n={},i={'"':'"',"'":"'"},r=function(f){var v=-1;if(f.multiSelect&&(v=f.selection.index,n.rangeCount!=f.multiSelect.rangeCount&&(n={rangeCount:f.multiSelect.rangeCount})),n[v])return e=n[v];e=n[v]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},o=function(f,v,w,c){var m=f.end.row-f.start.row;return{text:w+v+c,selection:[0,f.start.column+1,m,f.end.column+(m?0:1)]}},u=function(f){this.add("braces","insertion",function(v,w,c,m,l){var g=c.getCursorPosition(),A=m.doc.getLine(g.row);if(l=="{"){r(c);var F=c.getSelectionRange(),h=m.doc.getTextRange(F);if(h!==""&&h!=="{"&&c.getWrapBehavioursEnabled())return o(F,h,"{","}");if(u.isSaneInsertion(c,m))return/[\]\}\)]/.test(A[g.column])||c.inMultiSelectMode||f&&f.braces?(u.recordAutoInsert(c,m,"}"),{text:"{}",selection:[1,1]}):(u.recordMaybeInsert(c,m,"{"),{text:"{",selection:[1,1]})}else if(l=="}"){r(c);var p=A.substring(g.column,g.column+1);if(p=="}"){var b=m.$findOpeningBracket("}",{column:g.column+1,row:g.row});if(b!==null&&u.isAutoInsertedClosing(g,A,l))return u.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(l==` +`||l==`\r +`){r(c);var S="";u.isMaybeInsertedClosing(g,A)&&(S=a.stringRepeat("}",e.maybeInsertedBrackets),u.clearMaybeInsertedClosing());var p=A.substring(g.column,g.column+1);if(p==="}"){var k=m.findMatchingBracket({row:g.row,column:g.column+1},"}");if(!k)return null;var L=this.$getIndent(m.getLine(k.row))}else if(S)var L=this.$getIndent(A);else{u.clearMaybeInsertedClosing();return}var D=L+m.getTabString();return{text:` +`+D+` +`+L+S,selection:[1,D.length,1,D.length]}}else u.clearMaybeInsertedClosing()}),this.add("braces","deletion",function(v,w,c,m,l){var g=m.doc.getTextRange(l);if(!l.isMultiLine()&&g=="{"){r(c);var A=m.doc.getLine(l.start.row),F=A.substring(l.end.column,l.end.column+1);if(F=="}")return l.end.column++,l;e.maybeInsertedBrackets--}}),this.add("parens","insertion",function(v,w,c,m,l){if(l=="("){r(c);var g=c.getSelectionRange(),A=m.doc.getTextRange(g);if(A!==""&&c.getWrapBehavioursEnabled())return o(g,A,"(",")");if(u.isSaneInsertion(c,m))return u.recordAutoInsert(c,m,")"),{text:"()",selection:[1,1]}}else if(l==")"){r(c);var F=c.getCursorPosition(),h=m.doc.getLine(F.row),p=h.substring(F.column,F.column+1);if(p==")"){var b=m.$findOpeningBracket(")",{column:F.column+1,row:F.row});if(b!==null&&u.isAutoInsertedClosing(F,h,l))return u.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(v,w,c,m,l){var g=m.doc.getTextRange(l);if(!l.isMultiLine()&&g=="("){r(c);var A=m.doc.getLine(l.start.row),F=A.substring(l.start.column+1,l.start.column+2);if(F==")")return l.end.column++,l}}),this.add("brackets","insertion",function(v,w,c,m,l){if(l=="["){r(c);var g=c.getSelectionRange(),A=m.doc.getTextRange(g);if(A!==""&&c.getWrapBehavioursEnabled())return o(g,A,"[","]");if(u.isSaneInsertion(c,m))return u.recordAutoInsert(c,m,"]"),{text:"[]",selection:[1,1]}}else if(l=="]"){r(c);var F=c.getCursorPosition(),h=m.doc.getLine(F.row),p=h.substring(F.column,F.column+1);if(p=="]"){var b=m.$findOpeningBracket("]",{column:F.column+1,row:F.row});if(b!==null&&u.isAutoInsertedClosing(F,h,l))return u.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(v,w,c,m,l){var g=m.doc.getTextRange(l);if(!l.isMultiLine()&&g=="["){r(c);var A=m.doc.getLine(l.start.row),F=A.substring(l.start.column+1,l.start.column+2);if(F=="]")return l.end.column++,l}}),this.add("string_dquotes","insertion",function(v,w,c,m,l){var g=m.$mode.$quotes||i;if(l.length==1&&g[l]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(l)!=-1)return;r(c);var A=l,F=c.getSelectionRange(),h=m.doc.getTextRange(F);if(h!==""&&(h.length!=1||!g[h])&&c.getWrapBehavioursEnabled())return o(F,h,A,A);if(!h){var p=c.getCursorPosition(),b=m.doc.getLine(p.row),S=b.substring(p.column-1,p.column),k=b.substring(p.column,p.column+1),L=m.getTokenAt(p.row,p.column),D=m.getTokenAt(p.row,p.column+1);if(S=="\\"&&L&&/escape/.test(L.type))return null;var O=L&&/string|escape/.test(L.type),I=!D||/string|escape/.test(D.type),W;if(k==A)W=O!==I,W&&/string\.end/.test(D.type)&&(W=!1);else{if(O&&!I||O&&I)return null;var H=m.$mode.tokenRe;H.lastIndex=0;var z=H.test(S);H.lastIndex=0;var M=H.test(S);if(z||M||k&&!/[\s;,.})\]\\]/.test(k))return null;W=!0}return{text:W?A+A:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(v,w,c,m,l){var g=m.doc.getTextRange(l);if(!l.isMultiLine()&&(g=='"'||g=="'")){r(c);var A=m.doc.getLine(l.start.row),F=A.substring(l.start.column+1,l.start.column+2);if(F==g)return l.end.column++,l}})};u.isSaneInsertion=function(f,v){var w=f.getCursorPosition(),c=new d(v,w.row,w.column);if(!this.$matchTokenType(c.getCurrentToken()||"text",s)){var m=new d(v,w.row,w.column+1);if(!this.$matchTokenType(m.getCurrentToken()||"text",s))return!1}return c.stepForward(),c.getCurrentTokenRow()!==w.row||this.$matchTokenType(c.getCurrentToken()||"text",t)},u.$matchTokenType=function(f,v){return v.indexOf(f.type||f)>-1},u.recordAutoInsert=function(f,v,w){var c=f.getCursorPosition(),m=v.doc.getLine(c.row);this.isAutoInsertedClosing(c,m,e.autoInsertedLineEnd[0])||(e.autoInsertedBrackets=0),e.autoInsertedRow=c.row,e.autoInsertedLineEnd=w+m.substr(c.column),e.autoInsertedBrackets++},u.recordMaybeInsert=function(f,v,w){var c=f.getCursorPosition(),m=v.doc.getLine(c.row);this.isMaybeInsertedClosing(c,m)||(e.maybeInsertedBrackets=0),e.maybeInsertedRow=c.row,e.maybeInsertedLineStart=m.substr(0,c.column)+w,e.maybeInsertedLineEnd=m.substr(c.column),e.maybeInsertedBrackets++},u.isAutoInsertedClosing=function(f,v,w){return e.autoInsertedBrackets>0&&f.row===e.autoInsertedRow&&w===e.autoInsertedLineEnd[0]&&v.substr(f.column)===e.autoInsertedLineEnd},u.isMaybeInsertedClosing=function(f,v){return e.maybeInsertedBrackets>0&&f.row===e.maybeInsertedRow&&v.substr(f.column)===e.maybeInsertedLineEnd&&v.substr(0,f.column)==e.maybeInsertedLineStart},u.popAutoInsertedClosing=function(){e.autoInsertedLineEnd=e.autoInsertedLineEnd.substr(1),e.autoInsertedBrackets--},u.clearMaybeInsertedClosing=function(){e&&(e.maybeInsertedBrackets=0,e.maybeInsertedRow=-1)},$.inherits(u,C),E.CstyleBehaviour=u});ace.define("ace/unicode",["require","exports","module"],function(B,E,K){E.packages={},$({L:"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",Ll:"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",Lu:"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",Lt:"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",Lm:"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F",Lo:"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",M:"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26",Mn:"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",Mc:"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",Me:"0488048906DE20DD-20E020E2-20E4A670-A672",N:"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nd:"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nl:"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",No:"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",P:"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",Pd:"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",Ps:"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",Pe:"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",Pi:"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",Pf:"00BB2019201D203A2E032E052E0A2E0D2E1D2E21",Pc:"005F203F20402054FE33FE34FE4D-FE4FFF3F",Po:"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",S:"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",Sm:"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",Sc:"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",Sk:"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",So:"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",Z:"002000A01680180E2000-200A20282029202F205F3000",Zs:"002000A01680180E2000-200A202F205F3000",Zl:"2028",Zp:"2029",C:"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF",Cc:"0000-001F007F-009F",Cf:"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",Co:"E000-F8FF",Cs:"D800-DFFF",Cn:"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"});function $(C){var d=/\w{4}/g;for(var a in C)E.packages[a]=C[a].replace(d,"\\u$&")}});ace.define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function(B,E,K){var $=B("../tokenizer").Tokenizer,C=B("./text_highlight_rules").TextHighlightRules,d=B("./behaviour/cstyle").CstyleBehaviour,a=B("../unicode"),s=B("../lib/lang"),t=B("../token_iterator").TokenIterator,e=B("../range").Range,n=function(){this.HighlightRules=C};(function(){this.$defaultBehaviour=new d,this.tokenRe=new RegExp("^["+a.packages.L+a.packages.Mn+a.packages.Mc+a.packages.Nd+a.packages.Pc+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+a.packages.L+a.packages.Mn+a.packages.Mc+a.packages.Nd+a.packages.Pc+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new $(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(i,r,o,u){var f=r.doc,v=!0,w=!0,c=1/0,m=r.getTabSize(),l=!1;if(this.lineCommentStart){if(Array.isArray(this.lineCommentStart))var F=this.lineCommentStart.map(s.escapeRegExp).join("|"),g=this.lineCommentStart[0];else var F=s.escapeRegExp(this.lineCommentStart),g=this.lineCommentStart;F=new RegExp("^(\\s*)(?:"+F+") ?"),l=r.getUseSoftTabs();var b=function(z,M){var y=z.match(F);if(!!y){var x=y[1].length,R=y[0].length;!L(z,x,R)&&y[0][R-1]==" "&&R--,f.removeInLine(M,x,R)}},k=g+" ",p=function(z,M){(!v||/\S/.test(z))&&(L(z,c,c)?f.insertInLine({row:M,column:c},k):f.insertInLine({row:M,column:c},g))},S=function(z,M){return F.test(z)},L=function(z,M,y){for(var x=0;M--&&z.charAt(M)==" ";)x++;if(x%m!=0)return!1;for(var x=0;z.charAt(y++)==" ";)x++;return m>2?x%m!=m-1:x%m==0}}else{if(!this.blockComment)return!1;var g=this.blockComment.start,A=this.blockComment.end,F=new RegExp("^(\\s*)(?:"+s.escapeRegExp(g)+")"),h=new RegExp("(?:"+s.escapeRegExp(A)+")\\s*$"),p=function(I,W){S(I,W)||(!v||/\S/.test(I))&&(f.insertInLine({row:W,column:I.length},A),f.insertInLine({row:W,column:c},g))},b=function(I,W){var H;(H=I.match(h))&&f.removeInLine(W,I.length-H[0].length,I.length),(H=I.match(F))&&f.removeInLine(W,H[1].length,H[0].length)},S=function(I,W){if(F.test(I))return!0;for(var H=r.getTokens(W),z=0;z<H.length;z++)if(H[z].type==="comment")return!0}}function D(I){for(var W=o;W<=u;W++)I(f.getLine(W),W)}var O=1/0;D(function(I,W){var H=I.search(/\S/);H!==-1?(H<c&&(c=H),w&&!S(I,W)&&(w=!1)):O>I.length&&(O=I.length)}),c==1/0&&(c=O,v=!1,w=!1),l&&c%m!=0&&(c=Math.floor(c/m)*m),D(w?b:p)},this.toggleBlockComment=function(i,r,o,u){var f=this.blockComment;if(!!f){!f.start&&f[0]&&(f=f[0]);var v=new t(r,u.row,u.column),w=v.getCurrentToken();r.selection;var c=r.selection.toOrientedRange(),m,l;if(w&&/comment/.test(w.type)){for(var g,A;w&&/comment/.test(w.type);){var F=w.value.indexOf(f.start);if(F!=-1){var h=v.getCurrentTokenRow(),p=v.getCurrentTokenColumn()+F;g=new e(h,p,h,p+f.start.length);break}w=v.stepBackward()}for(var v=new t(r,u.row,u.column),w=v.getCurrentToken();w&&/comment/.test(w.type);){var F=w.value.indexOf(f.end);if(F!=-1){var h=v.getCurrentTokenRow(),p=v.getCurrentTokenColumn()+F;A=new e(h,p,h,p+f.end.length);break}w=v.stepForward()}A&&r.remove(A),g&&(r.remove(g),m=g.start.row,l=-f.start.length)}else l=f.start.length,m=o.start.row,r.insert(o.end,f.end),r.insert(o.start,f.start);c.start.row==m&&(c.start.column+=l),c.end.row==m&&(c.end.column+=l),r.selection.fromOrientedRange(c)}},this.getNextLineIndent=function(i,r,o){return this.$getIndent(r)},this.checkOutdent=function(i,r,o){return!1},this.autoOutdent=function(i,r,o){},this.$getIndent=function(i){return i.match(/^\s*/)[0]},this.createWorker=function(i){return null},this.createModeDelegates=function(i){this.$embeds=[],this.$modes={};for(var r in i)i[r]&&(this.$embeds.push(r),this.$modes[r]=new i[r]);for(var o=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],r=0;r<o.length;r++)(function(f){var v=o[r],w=f[v];f[o[r]]=function(){return this.$delegator(v,arguments,w)}})(this)},this.$delegator=function(i,r,o){var u=r[0];typeof u!="string"&&(u=u[0]);for(var f=0;f<this.$embeds.length;f++)if(!!this.$modes[this.$embeds[f]]){var v=u.split(this.$embeds[f]);if(!v[0]&&v[1]){r[0]=v[1];var w=this.$modes[this.$embeds[f]];return w[i].apply(w,r)}}var c=o.apply(this,r);return o?c:void 0},this.transformAction=function(i,r,o,u,f){if(this.$behaviour){var v=this.$behaviour.getBehaviours();for(var w in v)if(v[w][r]){var c=v[w][r].apply(this,arguments);if(c)return c}}},this.getKeywords=function(i){if(!this.completionKeywords){var r=this.$tokenizer.rules,o=[];for(var u in r)for(var f=r[u],v=0,w=f.length;v<w;v++)if(typeof f[v].token=="string")/keyword|support|storage/.test(f[v].token)&&o.push(f[v].regex);else if(typeof f[v].token=="object"){for(var c=0,m=f[v].token.length;c<m;c++)if(/keyword|support|storage/.test(f[v].token[c])){var u=f[v].regex.match(/\(.+?\)/g)[c];o.push(u.substr(1,u.length-2))}}this.completionKeywords=o}return i?o.concat(this.$keywordList||[]):this.$keywordList},this.$createKeywordList=function(){return this.$highlightRules||this.getTokenizer(),this.$keywordList=this.$highlightRules.$keywordList||[]},this.getCompletions=function(i,r,o,u){var f=this.$keywordList||this.$createKeywordList();return f.map(function(v){return{name:v,value:v,score:0,meta:"keyword"}})},this.$id="ace/mode/text"}).call(n.prototype),E.Mode=n});ace.define("ace/apply_delta",["require","exports","module"],function(B,E,K){E.applyDelta=function($,C,d){var a=C.start.row,s=C.start.column,t=$[a]||"";switch(C.action){case"insert":var e=C.lines;if(e.length===1)$[a]=t.substring(0,s)+C.lines[0]+t.substring(s);else{var n=[a,1].concat(C.lines);$.splice.apply($,n),$[a]=t.substring(0,s)+$[a],$[a+C.lines.length-1]+=t.substring(s)}break;case"remove":var i=C.end.column,r=C.end.row;a===r?$[a]=t.substring(0,s)+t.substring(i):$.splice(a,r-a+1,t.substring(0,s)+$[r].substring(i));break}}});ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(B,E,K){var $=B("./lib/oop"),C=B("./lib/event_emitter").EventEmitter,d=E.Anchor=function(a,s,t){this.$onChange=this.onChange.bind(this),this.attach(a),typeof t=="undefined"?this.setPosition(s.row,s.column):this.setPosition(s,t)};(function(){$.implement(this,C),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(t){if(!(t.start.row==t.end.row&&t.start.row!=this.row)&&!(t.start.row>this.row)){var e=s(t,{row:this.row,column:this.column},this.$insertRight);this.setPosition(e.row,e.column,!0)}};function a(t,e,n){var i=n?t.column<=e.column:t.column<e.column;return t.row<e.row||t.row==e.row&&i}function s(t,e,n){var i=t.action=="insert",r=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,f=i?u:t.end;return a(e,u,n)?{row:e.row,column:e.column}:a(f,e,!n)?{row:e.row+r,column:e.column+(e.row==f.row?o:0)}:{row:u.row,column:u.column}}this.setPosition=function(t,e,n){var i;if(n?i={row:t,column:e}:i=this.$clipPositionToDocument(t,e),!(this.row==i.row&&this.column==i.column)){var r={row:this.row,column:this.column};this.row=i.row,this.column=i.column,this._signal("change",{old:r,value:i})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(t){this.document=t||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(t,e){var n={};return t>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):t<0?(n.row=0,n.column=0):(n.row=t,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,e))),e<0&&(n.column=0),n}}).call(d.prototype)});ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(B,E,K){var $=B("./lib/oop"),C=B("./apply_delta").applyDelta,d=B("./lib/event_emitter").EventEmitter,a=B("./range").Range,s=B("./anchor").Anchor,t=function(e){this.$lines=[""],e.length===0?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){$.implement(this,d),this.setValue=function(e){var n=this.getLength()-1;this.remove(new a(0,0,n,this.getLine(n).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,n){return new s(this,e,n)},"aaa".split(/a/).length===0?this.$split=function(e){return e.replace(/\r\n|\r/g,` +`).split(` +`)}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var n=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=n?n[1]:` +`,this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return`\r +`;case"unix":return` +`;default:return this.$autoNewLine||` +`}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){this.$newLineMode!==e&&(this.$newLineMode=e,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e==`\r +`||e=="\r"||e==` +`},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,n){return this.$lines.slice(e,n+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var n;if(e.start.row===e.end.row)n=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{n=this.getLines(e.start.row,e.end.row),n[0]=(n[0]||"").substring(e.start.column);var i=n.length-1;e.end.row-e.start.row==i&&(n[i]=n[i].substring(0,e.end.column))}return n},this.insertLines=function(e,n){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,n)},this.removeLines=function(e,n){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,n)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,n){return this.getLength()<=1&&this.$detectNewLine(n),this.insertMergedLines(e,this.$split(n))},this.insertInLine=function(e,n){var i=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+n.length);return this.applyDelta({start:i,end:r,action:"insert",lines:[n]},!0),this.clonePos(r)},this.clippedPos=function(e,n){var i=this.getLength();e===void 0?e=i:e<0?e=0:e>=i&&(e=i-1,n=void 0);var r=this.getLine(e);return n==null&&(n=r.length),n=Math.min(Math.max(n,0),r.length),{row:e,column:n}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,n){return{row:e,column:n}},this.$clipPosition=function(e){var n=this.getLength();return e.row>=n?(e.row=Math.max(0,n-1),e.column=this.getLine(n-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,n){e=Math.min(Math.max(e,0),this.getLength());var i=0;e<this.getLength()?(n=n.concat([""]),i=0):(n=[""].concat(n),e--,i=this.$lines[e].length),this.insertMergedLines({row:e,column:i},n)},this.insertMergedLines=function(e,n){var i=this.clippedPos(e.row,e.column),r={row:i.row+n.length-1,column:(n.length==1?i.column:0)+n[n.length-1].length};return this.applyDelta({start:i,end:r,action:"insert",lines:n}),this.clonePos(r)},this.remove=function(e){var n=this.clippedPos(e.start.row,e.start.column),i=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:n,end:i,action:"remove",lines:this.getLinesForRange({start:n,end:i})}),this.clonePos(n)},this.removeInLine=function(e,n,i){var r=this.clippedPos(e,n),o=this.clippedPos(e,i);return this.applyDelta({start:r,end:o,action:"remove",lines:this.getLinesForRange({start:r,end:o})},!0),this.clonePos(r)},this.removeFullLines=function(e,n){e=Math.min(Math.max(0,e),this.getLength()-1),n=Math.min(Math.max(0,n),this.getLength()-1);var i=n==this.getLength()-1&&e>0,r=n<this.getLength()-1,o=i?e-1:e,u=i?this.getLine(o).length:0,f=r?n+1:n,v=r?0:this.getLine(f).length,w=new a(o,u,f,v),c=this.$lines.slice(e,n+1);return this.applyDelta({start:w.start,end:w.end,action:"remove",lines:this.getLinesForRange(w)}),c},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,n){if(e instanceof a||(e=a.fromPoints(e.start,e.end)),n.length===0&&e.isEmpty())return e.start;if(n==this.getTextRange(e))return e.end;this.remove(e);var i;return n?i=this.insert(e.start,n):i=e.start,i},this.applyDeltas=function(e){for(var n=0;n<e.length;n++)this.applyDelta(e[n])},this.revertDeltas=function(e){for(var n=e.length-1;n>=0;n--)this.revertDelta(e[n])},this.applyDelta=function(e,n){var i=e.action=="insert";(i?e.lines.length<=1&&!e.lines[0]:!a.comparePoints(e.start,e.end))||(i&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),C(this.$lines,e,n),this._signal("change",e))},this.$splitAndapplyLargeDelta=function(e,n){var i=e.lines,r=i.length,o=e.start.row,u=e.start.column,f=0,v=0;do{f=v,v+=n-1;var w=i.slice(f,v);if(v>r){e.lines=w,e.start.row=o+f,e.start.column=u;break}w.push(""),this.applyDelta({start:this.pos(o+f,u),end:this.pos(o+v,u=0),action:e.action,lines:w},!0)}while(!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action=="insert"?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,n){for(var i=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,o=n||0,u=i.length;o<u;o++)if(e-=i[o].length+r,e<0)return{row:o,column:e+i[o].length+r};return{row:u-1,column:i[u-1].length}},this.positionToIndex=function(e,n){for(var i=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,o=0,u=Math.min(e.row,i.length),f=n||0;f<u;++f)o+=i[f].length+r;return o+e.column}}).call(t.prototype),E.Document=t});ace.define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(B,E,K){var $=B("./lib/oop"),C=B("./lib/event_emitter").EventEmitter,d=function(a,s){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.tokenizer=a;var t=this;this.$worker=function(){if(!!t.running){for(var e=new Date,n=t.currentLine,i=-1,r=t.doc,o=n;t.lines[n];)n++;var u=r.getLength(),f=0;for(t.running=!1;n<u;){t.$tokenizeRow(n),i=n;do n++;while(t.lines[n]);if(f++,f%5===0&&new Date-e>20){t.running=setTimeout(t.$worker,20);break}}t.currentLine=n,i==-1&&(i=n),o<=i&&t.fireUpdateEvent(o,i)}}};(function(){$.implement(this,C),this.setTokenizer=function(a){this.tokenizer=a,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(a){this.doc=a,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(a,s){var t={first:a,last:s};this._signal("update",{data:t})},this.start=function(a){this.currentLine=Math.min(a||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(a){var s=a.start.row,t=a.end.row-s;if(t===0)this.lines[s]=null;else if(a.action=="remove")this.lines.splice(s,t+1,null),this.states.splice(s,t+1,null);else{var e=Array(t+1);e.unshift(s,1),this.lines.splice.apply(this.lines,e),this.states.splice.apply(this.states,e)}this.currentLine=Math.min(s,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(a){return this.lines[a]||this.$tokenizeRow(a)},this.getState=function(a){return this.currentLine==a&&this.$tokenizeRow(a),this.states[a]||"start"},this.$tokenizeRow=function(a){var s=this.doc.getLine(a),t=this.states[a-1],e=this.tokenizer.getLineTokens(s,t,a);return this.states[a]+""!=e.state+""?(this.states[a]=e.state,this.lines[a+1]=null,this.currentLine>a+1&&(this.currentLine=a+1)):this.currentLine==a&&(this.currentLine=a+1),this.lines[a]=e.tokens}}).call(d.prototype),E.BackgroundTokenizer=d});ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(B,E,K){var $=B("./lib/lang");B("./lib/oop");var C=B("./range").Range,d=function(a,s,t){this.setRegexp(a),this.clazz=s,this.type=t||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(a){this.regExp+""!=a+""&&(this.regExp=a,this.cache=[])},this.update=function(a,s,t,e){if(!!this.regExp)for(var n=e.firstRow,i=e.lastRow,r=n;r<=i;r++){var o=this.cache[r];o==null&&(o=$.getMatchOffsets(t.getLine(r),this.regExp),o.length>this.MAX_RANGES&&(o=o.slice(0,this.MAX_RANGES)),o=o.map(function(f){return new C(r,f.offset,r,f.offset+f.length)}),this.cache[r]=o.length?o:"");for(var u=o.length;u--;)s.drawSingleLineMarker(a,o[u].toScreenRange(t),this.clazz,e)}}}).call(d.prototype),E.SearchHighlight=d});ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(B,E,K){var $=B("../range").Range;function C(d,a){this.foldData=d,Array.isArray(a)?this.folds=a:a=this.folds=[a];var s=a[a.length-1];this.range=new $(a[0].start.row,a[0].start.column,s.end.row,s.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(t){t.setFoldLine(this)},this)}(function(){this.shiftRow=function(d){this.start.row+=d,this.end.row+=d,this.folds.forEach(function(a){a.start.row+=d,a.end.row+=d})},this.addFold=function(d){if(d.sameRow){if(d.start.row<this.startRow||d.endRow>this.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(d),this.folds.sort(function(a,s){return-a.range.compareEnd(s.start.row,s.start.column)}),this.range.compareEnd(d.start.row,d.start.column)>0?(this.end.row=d.end.row,this.end.column=d.end.column):this.range.compareStart(d.end.row,d.end.column)<0&&(this.start.row=d.start.row,this.start.column=d.start.column)}else if(d.start.row==this.end.row)this.folds.push(d),this.end.row=d.end.row,this.end.column=d.end.column;else if(d.end.row==this.start.row)this.folds.unshift(d),this.start.row=d.start.row,this.start.column=d.start.column;else throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");d.foldLine=this},this.containsRow=function(d){return d>=this.start.row&&d<=this.end.row},this.walk=function(d,a,s){var t=0,e=this.folds,n,i,r,o=!0;a==null&&(a=this.end.row,s=this.end.column);for(var u=0;u<e.length;u++){if(n=e[u],i=n.range.compareStart(a,s),i==-1){d(null,a,s,t,o);return}if(r=d(null,n.start.row,n.start.column,t,o),r=!r&&d(n.placeholder,n.start.row,n.start.column,t),r||i===0)return;o=!n.sameRow,t=n.end.column}d(null,a,s,t,o)},this.getNextFoldTo=function(d,a){for(var s,t,e=0;e<this.folds.length;e++){if(s=this.folds[e],t=s.range.compareEnd(d,a),t==-1)return{fold:s,kind:"after"};if(t===0)return{fold:s,kind:"inside"}}return null},this.addRemoveChars=function(d,a,s){var t=this.getNextFoldTo(d,a),e,n;if(t){if(e=t.fold,t.kind=="inside"&&e.start.column!=a&&e.start.row!=d)window.console&&window.console.log(d,a,e);else if(e.start.row==d){n=this.folds;var i=n.indexOf(e);for(i===0&&(this.start.column+=s),i;i<n.length;i++){if(e=n[i],e.start.column+=s,!e.sameRow)return;e.end.column+=s}this.end.column+=s}}},this.split=function(d,a){var s=this.getNextFoldTo(d,a);if(!s||s.kind=="inside")return null;var t=s.fold,e=this.folds,n=this.foldData,i=e.indexOf(t),r=e[i-1];this.end.row=r.end.row,this.end.column=r.end.column,e=e.splice(i,e.length-i);var o=new C(n,e);return n.splice(n.indexOf(this)+1,0,o),o},this.merge=function(d){for(var a=d.folds,s=0;s<a.length;s++)this.addFold(a[s]);var t=this.foldData;t.splice(t.indexOf(d),1)},this.toString=function(){var d=[this.range.toString()+": ["];return this.folds.forEach(function(a){d.push(" "+a.toString())}),d.push("]"),d.join(` +`)},this.idxToPosition=function(d){for(var a=0,s=0;s<this.folds.length;s++){var t=this.folds[s];if(d-=t.start.column-a,d<0)return{row:t.start.row,column:t.start.column+d};if(d-=t.placeholder.length,d<0)return t.start;a=t.end.column}return{row:this.end.row,column:this.end.column+d}}}).call(C.prototype),E.FoldLine=C});ace.define("ace/range_list",["require","exports","module","ace/range"],function(B,E,K){var $=B("./range").Range,C=$.comparePoints,d=function(){this.ranges=[]};(function(){this.comparePoints=C,this.pointIndex=function(a,s,t){for(var e=this.ranges,n=t||0;n<e.length;n++){var i=e[n],r=C(a,i.end);if(!(r>0)){var o=C(a,i.start);return r===0?s&&o!==0?-n-2:n:o>0||o===0&&!s?n:-n-1}}return-n-1},this.add=function(a){var s=!a.isEmpty(),t=this.pointIndex(a.start,s);t<0&&(t=-t-1);var e=this.pointIndex(a.end,s,t);return e<0?e=-e-1:e++,this.ranges.splice(t,e-t,a)},this.addList=function(a){for(var s=[],t=a.length;t--;)s.push.apply(s,this.add(a[t]));return s},this.substractPoint=function(a){var s=this.pointIndex(a);if(s>=0)return this.ranges.splice(s,1)},this.merge=function(){var a=[],s=this.ranges;s=s.sort(function(r,o){return C(r.start,o.start)});for(var t=s[0],e,n=1;n<s.length;n++){e=t,t=s[n];var i=C(e.end,t.start);i<0||i==0&&!e.isEmpty()&&!t.isEmpty()||(C(e.end,t.end)<0&&(e.end.row=t.end.row,e.end.column=t.end.column),s.splice(n,1),a.push(t),t=e,n--)}return this.ranges=s,a},this.contains=function(a,s){return this.pointIndex({row:a,column:s})>=0},this.containsPoint=function(a){return this.pointIndex(a)>=0},this.rangeAtPoint=function(a){var s=this.pointIndex(a);if(s>=0)return this.ranges[s]},this.clipRows=function(a,s){var t=this.ranges;if(t[0].start.row>s||t[t.length-1].start.row<a)return[];var e=this.pointIndex({row:a,column:0});e<0&&(e=-e-1);var n=this.pointIndex({row:s,column:0},e);n<0&&(n=-n-1);for(var i=[],r=e;r<n;r++)i.push(t[r]);return i},this.removeAll=function(){return this.ranges.splice(0,this.ranges.length)},this.attach=function(a){this.session&&this.detach(),this.session=a,this.onChange=this.$onChange.bind(this),this.session.on("change",this.onChange)},this.detach=function(){!this.session||(this.session.removeListener("change",this.onChange),this.session=null)},this.$onChange=function(a){if(a.action=="insert")var s=a.start,t=a.end;else var t=a.start,s=a.end;for(var e=s.row,n=t.row,i=n-e,r=-s.column+t.column,o=this.ranges,u=0,f=o.length;u<f;u++){var v=o[u];if(!(v.end.row<e)){if(v.start.row>e)break;if(v.start.row==e&&v.start.column>=s.column&&(v.start.column==s.column&&this.$insertRight||(v.start.column+=r,v.start.row+=i)),v.end.row==e&&v.end.column>=s.column){if(v.end.column==s.column&&this.$insertRight)continue;v.end.column==s.column&&r>0&&u<f-1&&v.end.column>v.start.column&&v.end.column==o[u+1].start.column&&(v.end.column-=r),v.end.column+=r,v.end.row+=i}}}if(i!=0&&u<f)for(;u<f;u++){var v=o[u];v.start.row+=i,v.end.row+=i}}}).call(d.prototype),E.RangeList=d});ace.define("ace/edit_session/fold",["require","exports","module","ace/range","ace/range_list","ace/lib/oop"],function(B,E,K){B("../range").Range;var $=B("../range_list").RangeList,C=B("../lib/oop"),d=E.Fold=function(n,i){this.foldLine=null,this.placeholder=i,this.range=n,this.start=n.start,this.end=n.end,this.sameRow=n.start.row==n.end.row,this.subFolds=this.ranges=[]};C.inherits(d,$),function(){this.toString=function(){return'"'+this.placeholder+'" '+this.range.toString()},this.setFoldLine=function(n){this.foldLine=n,this.subFolds.forEach(function(i){i.setFoldLine(n)})},this.clone=function(){var n=this.range.clone(),i=new d(n,this.placeholder);return this.subFolds.forEach(function(r){i.subFolds.push(r.clone())}),i.collapseChildren=this.collapseChildren,i},this.addSubFold=function(n){if(!this.range.isEqual(n)){if(!this.range.containsRange(n))throw new Error("A fold can't intersect already existing fold"+n.range+this.range);s(n,this.start);for(var u=n.start.row,f=n.start.column,i=0,r=-1;i<this.subFolds.length&&(r=this.subFolds[i].range.compare(u,f),r==1);i++);var o=this.subFolds[i];if(r==0)return o.addSubFold(n);for(var u=n.range.end.row,f=n.range.end.column,v=i,r=-1;v<this.subFolds.length&&(r=this.subFolds[v].range.compare(u,f),r==1);v++);if(this.subFolds[v],r==0)throw new Error("A fold can't intersect already existing fold"+n.range+this.range);return this.subFolds.splice(i,v-i,n),n.setFoldLine(this.foldLine),n}},this.restoreRange=function(n){return e(n,this.start)}}.call(d.prototype);function a(n,i){n.row-=i.row,n.row==0&&(n.column-=i.column)}function s(n,i){a(n.start,i),a(n.end,i)}function t(n,i){n.row==0&&(n.column+=i.column),n.row+=i.row}function e(n,i){t(n.start,i),t(n.end,i)}});ace.define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold","ace/token_iterator"],function(B,E,K){var $=B("../range").Range,C=B("./fold_line").FoldLine,d=B("./fold").Fold,a=B("../token_iterator").TokenIterator;function s(){this.getFoldAt=function(t,e,n){var i=this.getFoldLine(t);if(!i)return null;for(var r=i.folds,o=0;o<r.length;o++){var u=r[o];if(u.range.contains(t,e)){if(n==1&&u.range.isEnd(t,e))continue;if(n==-1&&u.range.isStart(t,e))continue;return u}}},this.getFoldsInRange=function(t){var e=t.start,n=t.end,i=this.$foldData,r=[];e.column+=1,n.column-=1;for(var o=0;o<i.length;o++){var u=i[o].range.compareRange(t);if(u!=2){if(u==-2)break;for(var f=i[o].folds,v=0;v<f.length;v++){var w=f[v];if(u=w.range.compareRange(t),u==-2)break;if(u==2)continue;if(u==42)break;r.push(w)}}}return e.column-=1,n.column+=1,r},this.getFoldsInRangeList=function(t){if(Array.isArray(t)){var e=[];t.forEach(function(n){e=e.concat(this.getFoldsInRange(n))},this)}else var e=this.getFoldsInRange(t);return e},this.getAllFolds=function(){for(var t=[],e=this.$foldData,n=0;n<e.length;n++)for(var i=0;i<e[n].folds.length;i++)t.push(e[n].folds[i]);return t},this.getFoldStringAt=function(t,e,n,i){if(i=i||this.getFoldLine(t),!i)return null;for(var r={end:{column:0}},o,u,f=0;f<i.folds.length;f++){u=i.folds[f];var v=u.range.compareEnd(t,e);if(v==-1){o=this.getLine(u.start.row).substring(r.end.column,u.start.column);break}else if(v===0)return null;r=u}return o||(o=this.getLine(u.start.row).substring(r.end.column)),n==-1?o.substring(0,e-r.end.column):n==1?o.substring(e-r.end.column):o},this.getFoldLine=function(t,e){var n=this.$foldData,i=0;for(e&&(i=n.indexOf(e)),i==-1&&(i=0),i;i<n.length;i++){var r=n[i];if(r.start.row<=t&&r.end.row>=t)return r;if(r.end.row>t)return null}return null},this.getNextFoldLine=function(t,e){var n=this.$foldData,i=0;for(e&&(i=n.indexOf(e)),i==-1&&(i=0),i;i<n.length;i++){var r=n[i];if(r.end.row>=t)return r}return null},this.getFoldedRowCount=function(t,e){for(var n=this.$foldData,i=e-t+1,r=0;r<n.length;r++){var o=n[r],u=o.end.row,f=o.start.row;if(u>=e){f<e&&(f>=t?i-=e-f:i=0);break}else u>=t&&(f>=t?i-=u-f:i-=u-t+1)}return i},this.$addFoldLine=function(t){return this.$foldData.push(t),this.$foldData.sort(function(e,n){return e.start.row-n.start.row}),t},this.addFold=function(t,e){var n=this.$foldData,i=!1,r;t instanceof d?r=t:(r=new d(e,t),r.collapseChildren=e.collapseChildren),this.$clipRangeToDocument(r.range);var o=r.start.row,u=r.start.column,f=r.end.row,v=r.end.column;if(!(o<f||o==f&&u<=v-2))throw new Error("The range has to be at least 2 characters width");var w=this.getFoldAt(o,u,1),c=this.getFoldAt(f,v,-1);if(w&&c==w)return w.addSubFold(r);w&&!w.range.isStart(o,u)&&this.removeFold(w),c&&!c.range.isEnd(f,v)&&this.removeFold(c);var m=this.getFoldsInRange(r.range);m.length>0&&(this.removeFolds(m),m.forEach(function(F){r.addSubFold(F)}));for(var l=0;l<n.length;l++){var g=n[l];if(f==g.start.row){g.addFold(r),i=!0;break}else if(o==g.end.row){if(g.addFold(r),i=!0,!r.sameRow){var A=n[l+1];if(A&&A.start.row==f){g.merge(A);break}}break}else if(f<=g.start.row)break}return i||(g=this.$addFoldLine(new C(this.$foldData,r))),this.$useWrapMode?this.$updateWrapData(g.start.row,g.start.row):this.$updateRowLengthCache(g.start.row,g.start.row),this.$modified=!0,this._signal("changeFold",{data:r,action:"add"}),r},this.addFolds=function(t){t.forEach(function(e){this.addFold(e)},this)},this.removeFold=function(t){var e=t.foldLine,n=e.start.row,i=e.end.row,r=this.$foldData,o=e.folds;if(o.length==1)r.splice(r.indexOf(e),1);else if(e.range.isEnd(t.end.row,t.end.column))o.pop(),e.end.row=o[o.length-1].end.row,e.end.column=o[o.length-1].end.column;else if(e.range.isStart(t.start.row,t.start.column))o.shift(),e.start.row=o[0].start.row,e.start.column=o[0].start.column;else if(t.sameRow)o.splice(o.indexOf(t),1);else{var u=e.split(t.start.row,t.start.column);o=u.folds,o.shift(),u.start.row=o[0].start.row,u.start.column=o[0].start.column}this.$updating||(this.$useWrapMode?this.$updateWrapData(n,i):this.$updateRowLengthCache(n,i)),this.$modified=!0,this._signal("changeFold",{data:t,action:"remove"})},this.removeFolds=function(t){for(var e=[],n=0;n<t.length;n++)e.push(t[n]);e.forEach(function(i){this.removeFold(i)},this),this.$modified=!0},this.expandFold=function(t){this.removeFold(t),t.subFolds.forEach(function(e){t.restoreRange(e),this.addFold(e)},this),t.collapseChildren>0&&this.foldAll(t.start.row+1,t.end.row,t.collapseChildren-1),t.subFolds=[]},this.expandFolds=function(t){t.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(t,e){var n,i;if(t==null?(n=new $(0,0,this.getLength(),0),e=!0):typeof t=="number"?n=new $(t,0,t,this.getLine(t).length):"row"in t?n=$.fromPoints(t,t):n=t,i=this.getFoldsInRangeList(n),e)this.removeFolds(i);else for(var r=i;r.length;)this.expandFolds(r),r=this.getFoldsInRangeList(n);if(i.length)return i},this.isRowFolded=function(t,e){return!!this.getFoldLine(t,e)},this.getRowFoldEnd=function(t,e){var n=this.getFoldLine(t,e);return n?n.end.row:t},this.getRowFoldStart=function(t,e){var n=this.getFoldLine(t,e);return n?n.start.row:t},this.getFoldDisplayLine=function(t,e,n,i,r){i==null&&(i=t.start.row),r==null&&(r=0),e==null&&(e=t.end.row),n==null&&(n=this.getLine(e).length);var o=this.doc,u="";return t.walk(function(f,v,w,c){if(!(v<i)){if(v==i){if(w<r)return;c=Math.max(r,c)}f!=null?u+=f:u+=o.getLine(v).substring(c,w)}},e,n),u},this.getDisplayLine=function(t,e,n,i){var r=this.getFoldLine(t);if(r)return this.getFoldDisplayLine(r,t,e,n,i);var o;return o=this.doc.getLine(t),o.substring(i||0,e||o.length)},this.$cloneFoldData=function(){var t=[];return t=this.$foldData.map(function(e){var n=e.folds.map(function(i){return i.clone()});return new C(t,n)}),t},this.toggleFold=function(t){var e=this.selection,n=e.getRange(),i,r;if(n.isEmpty()){var o=n.start;if(i=this.getFoldAt(o.row,o.column),i){this.expandFold(i);return}else(r=this.findMatchingBracket(o))?n.comparePoint(r)==1?n.end=r:(n.start=r,n.start.column++,n.end.column--):(r=this.findMatchingBracket({row:o.row,column:o.column+1}))?(n.comparePoint(r)==1?n.end=r:n.start=r,n.start.column++):n=this.getCommentFoldRange(o.row,o.column)||n}else{var u=this.getFoldsInRange(n);if(t&&u.length){this.expandFolds(u);return}else u.length==1&&(i=u[0])}if(i||(i=this.getFoldAt(n.start.row,n.start.column)),i&&i.range.toString()==n.toString()){this.expandFold(i);return}var f="...";if(!n.isMultiLine()){if(f=this.getTextRange(n),f.length<4)return;f=f.trim().substring(0,2)+".."}this.addFold(f,n)},this.getCommentFoldRange=function(t,e,n){var i=new a(this,t,e),r=i.getCurrentToken(),o=r.type;if(r&&/^comment|string/.test(o)){o=o.match(/comment|string/)[0],o=="comment"&&(o+="|doc-start");var u=new RegExp(o),f=new $;if(n!=1){do r=i.stepBackward();while(r&&u.test(r.type));i.stepForward()}if(f.start.row=i.getCurrentTokenRow(),f.start.column=i.getCurrentTokenColumn()+2,i=new a(this,t,e),n!=-1){var v=-1;do if(r=i.stepForward(),v==-1){var w=this.getState(i.$row);u.test(w)||(v=i.$row)}else if(i.$row>v)break;while(r&&u.test(r.type));r=i.stepBackward()}else r=i.getCurrentToken();return f.end.row=i.getCurrentTokenRow(),f.end.column=i.getCurrentTokenColumn()+r.value.length-2,f}},this.foldAll=function(t,e,n){n==null&&(n=1e5);var i=this.foldWidgets;if(!!i){e=e||this.getLength(),t=t||0;for(var r=t;r<e;r++)if(i[r]==null&&(i[r]=this.getFoldWidget(r)),i[r]=="start"){var o=this.getFoldWidgetRange(r);if(o&&o.isMultiLine()&&o.end.row<=e&&o.start.row>=t){r=o.end.row;try{var u=this.addFold("...",o);u&&(u.collapseChildren=n)}catch{}}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(t){if(!this.$foldStyles[t])throw new Error("invalid fold style: "+t+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle!=t){this.$foldStyle=t,t=="manual"&&this.unfold();var e=this.$foldMode;this.$setFolding(null),this.$setFolding(e)}},this.$setFolding=function(t){if(this.$foldMode!=t){if(this.$foldMode=t,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation"),!t||this.$foldStyle=="manual"){this.foldWidgets=null;return}this.foldWidgets=[],this.getFoldWidget=t.getFoldWidget.bind(t,this,this.$foldStyle),this.getFoldWidgetRange=t.getFoldWidgetRange.bind(t,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)}},this.getParentFoldRangeData=function(t,e){var n=this.foldWidgets;if(!n||e&&n[t])return{};for(var i=t-1,r;i>=0;){var o=n[i];if(o==null&&(o=n[i]=this.getFoldWidget(i)),o=="start"){var u=this.getFoldWidgetRange(i);if(r||(r=u),u&&u.end.row>=t)break}i--}return{range:i!==-1&&u,firstRange:r}},this.onFoldWidgetClick=function(t,e){e=e.domEvent;var n={children:e.shiftKey,all:e.ctrlKey||e.metaKey,siblings:e.altKey},i=this.$toggleFoldWidget(t,n);if(!i){var r=e.target||e.srcElement;r&&/ace_fold-widget/.test(r.className)&&(r.className+=" ace_invalid")}},this.$toggleFoldWidget=function(t,e){if(!!this.getFoldWidget){var n=this.getFoldWidget(t),i=this.getLine(t),r=n==="end"?-1:1,o=this.getFoldAt(t,r===-1?0:i.length,r);if(o)return e.children||e.all?this.removeFold(o):this.expandFold(o),o;var u=this.getFoldWidgetRange(t,!0);if(u&&!u.isMultiLine()&&(o=this.getFoldAt(u.start.row,u.start.column,1),o&&u.isEqual(o.range)))return this.removeFold(o),o;if(e.siblings){var f=this.getParentFoldRangeData(t);if(f.range)var v=f.range.start.row+1,w=f.range.end.row;this.foldAll(v,w,e.all?1e4:0)}else e.children?(w=u?u.end.row:this.getLength(),this.foldAll(t+1,w,e.all?1e4:0)):u&&(e.all&&(u.collapseChildren=1e4),this.addFold("...",u));return u}},this.toggleFoldWidget=function(t){var e=this.selection.getCursor().row;e=this.getRowFoldStart(e);var n=this.$toggleFoldWidget(e,{});if(!n){var i=this.getParentFoldRangeData(e,!0);if(n=i.range||i.firstRange,n){e=n.start.row;var r=this.getFoldAt(e,this.getLine(e).length,1);r?this.removeFold(r):this.addFold("...",n)}}},this.updateFoldWidgets=function(t){var e=t.start.row,n=t.end.row-e;if(n===0)this.foldWidgets[e]=null;else if(t.action=="remove")this.foldWidgets.splice(e,n+1,null);else{var i=Array(n+1);i.unshift(e,1),this.foldWidgets.splice.apply(this.foldWidgets,i)}},this.tokenizerUpdateFoldWidgets=function(t){var e=t.data;e.first!=e.last&&this.foldWidgets.length>e.first&&this.foldWidgets.splice(e.first,this.foldWidgets.length)}}E.Folding=s});ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(B,E,K){var $=B("../token_iterator").TokenIterator,C=B("../range").Range;function d(){this.findMatchingBracket=function(a,s){if(a.column==0)return null;var t=s||this.getLine(a.row).charAt(a.column-1);if(t=="")return null;var e=t.match(/([\(\[\{])|([\)\]\}])/);return e?e[1]?this.$findClosingBracket(e[1],a):this.$findOpeningBracket(e[2],a):null},this.getBracketRange=function(a){var s=this.getLine(a.row),t=!0,e,n=s.charAt(a.column-1),i=n&&n.match(/([\(\[\{])|([\)\]\}])/);if(i||(n=s.charAt(a.column),a={row:a.row,column:a.column+1},i=n&&n.match(/([\(\[\{])|([\)\]\}])/),t=!1),!i)return null;if(i[1]){var r=this.$findClosingBracket(i[1],a);if(!r)return null;e=C.fromPoints(a,r),t||(e.end.column++,e.start.column--),e.cursor=e.end}else{var r=this.$findOpeningBracket(i[2],a);if(!r)return null;e=C.fromPoints(r,a),t||(e.start.column++,e.end.column--),e.cursor=e.start}return e},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(a,s,t){var e=this.$brackets[a],n=1,i=new $(this,s.row,s.column),r=i.getCurrentToken();if(r||(r=i.stepForward()),!!r){t||(t=new RegExp("(\\.?"+r.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));for(var o=s.column-i.getCurrentTokenColumn()-2,u=r.value;;){for(;o>=0;){var f=u.charAt(o);if(f==e){if(n-=1,n==0)return{row:i.getCurrentTokenRow(),column:o+i.getCurrentTokenColumn()}}else f==a&&(n+=1);o-=1}do r=i.stepBackward();while(r&&!t.test(r.type));if(r==null)break;u=r.value,o=u.length-1}return null}},this.$findClosingBracket=function(a,s,t){var e=this.$brackets[a],n=1,i=new $(this,s.row,s.column),r=i.getCurrentToken();if(r||(r=i.stepForward()),!!r){t||(t=new RegExp("(\\.?"+r.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));for(var o=s.column-i.getCurrentTokenColumn();;){for(var u=r.value,f=u.length;o<f;){var v=u.charAt(o);if(v==e){if(n-=1,n==0)return{row:i.getCurrentTokenRow(),column:o+i.getCurrentTokenColumn()}}else v==a&&(n+=1);o+=1}do r=i.stepForward();while(r&&!t.test(r.type));if(r==null)break;o=0}return null}}}E.BracketMatch=d});ace.define("ace/edit_session",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/bidihandler","ace/config","ace/lib/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/search_highlight","ace/edit_session/folding","ace/edit_session/bracket_match"],function(B,E,K){var $=B("./lib/oop"),C=B("./lib/lang"),d=B("./bidihandler").BidiHandler,a=B("./config"),s=B("./lib/event_emitter").EventEmitter,t=B("./selection").Selection,e=B("./mode/text").Mode,n=B("./range").Range,i=B("./document").Document,r=B("./background_tokenizer").BackgroundTokenizer,o=B("./search_highlight").SearchHighlight,u=function(f,v){this.$breakpoints=[],this.$decorations=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$undoSelect=!0,this.$foldData=[],this.id="session"+ ++u.$uid,this.$foldData.toString=function(){return this.join(` +`)},this.on("changeFold",this.onChangeFold.bind(this)),this.$onChange=this.onChange.bind(this),(typeof f!="object"||!f.getLine)&&(f=new i(f)),this.$bidiHandler=new d(this),this.setDocument(f),this.selection=new t(this),a.resetOptions(this),this.setMode(v),a._signal("session",this)};u.$uid=0,function(){$.implement(this,s),this.setDocument=function(h){this.doc&&this.doc.removeListener("change",this.$onChange),this.doc=h,h.on("change",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(h){if(!h){this.$docRowCache=[],this.$screenRowCache=[];return}var p=this.$docRowCache.length,b=this.$getRowCacheIndex(this.$docRowCache,h)+1;p>b&&(this.$docRowCache.splice(b,p),this.$screenRowCache.splice(b,p))},this.$getRowCacheIndex=function(h,p){for(var b=0,S=h.length-1;b<=S;){var k=b+S>>1,L=h[k];if(p>L)b=k+1;else if(p<L)S=k-1;else return k}return b-1},this.resetCaches=function(){this.$modified=!0,this.$wrapData=[],this.$rowLengthCache=[],this.$resetRowCache(0),this.bgTokenizer&&this.bgTokenizer.start(0)},this.onChangeFold=function(h){var p=h.data;this.$resetRowCache(p.start.row)},this.onChange=function(h){this.$modified=!0,this.$bidiHandler.onChange(h),this.$resetRowCache(h.start.row);var p=this.$updateInternalDataOnChange(h);!this.$fromUndo&&this.$undoManager&&!h.ignore&&(this.$deltasDoc.push(h),p&&p.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:p}),this.$informUndoManager.schedule()),this.bgTokenizer&&this.bgTokenizer.$updateOnChange(h),this._signal("change",h)},this.setValue=function(h){this.doc.setValue(h),this.selection.moveTo(0,0),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.setUndoManager(this.$undoManager),this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(h){return this.bgTokenizer.getState(h)},this.getTokens=function(h){return this.bgTokenizer.getTokens(h)},this.getTokenAt=function(h,p){var b=this.bgTokenizer.getTokens(h),S,k=0;if(p==null){var L=b.length-1;k=this.getLine(h).length}else for(var L=0;L<b.length&&(k+=b[L].value.length,!(k>=p));L++);return S=b[L],S?(S.index=L,S.start=k-S.value.length,S):null},this.setUndoManager=function(h){if(this.$undoManager=h,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel(),h){var p=this;this.$syncInformUndoManager=function(){p.$informUndoManager.cancel(),p.$deltasFold.length&&(p.$deltas.push({group:"fold",deltas:p.$deltasFold}),p.$deltasFold=[]),p.$deltasDoc.length&&(p.$deltas.push({group:"doc",deltas:p.$deltasDoc}),p.$deltasDoc=[]),p.$deltas.length>0&&h.execute({action:"aceupdate",args:[p.$deltas,p],merge:p.mergeUndoDeltas}),p.mergeUndoDeltas=!1,p.$deltas=[]},this.$informUndoManager=C.delayedCall(this.$syncInformUndoManager)}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?C.stringRepeat(" ",this.getTabSize()):" "},this.setUseSoftTabs=function(h){this.setOption("useSoftTabs",h)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(h){this.setOption("tabSize",h)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(h){return this.$useSoftTabs&&h.column%this.$tabSize===0},this.setNavigateWithinSoftTabs=function(h){this.setOption("navigateWithinSoftTabs",h)},this.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},this.$overwrite=!1,this.setOverwrite=function(h){this.setOption("overwrite",h)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(h,p){this.$decorations[h]||(this.$decorations[h]=""),this.$decorations[h]+=" "+p,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(h,p){this.$decorations[h]=(this.$decorations[h]||"").replace(" "+p,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(h){this.$breakpoints=[];for(var p=0;p<h.length;p++)this.$breakpoints[h[p]]="ace_breakpoint";this._signal("changeBreakpoint",{})},this.clearBreakpoints=function(){this.$breakpoints=[],this._signal("changeBreakpoint",{})},this.setBreakpoint=function(h,p){p===void 0&&(p="ace_breakpoint"),p?this.$breakpoints[h]=p:delete this.$breakpoints[h],this._signal("changeBreakpoint",{})},this.clearBreakpoint=function(h){delete this.$breakpoints[h],this._signal("changeBreakpoint",{})},this.addMarker=function(h,p,b,S){var k=this.$markerId++,L={range:h,type:b||"line",renderer:typeof b=="function"?b:null,clazz:p,inFront:!!S,id:k};return S?(this.$frontMarkers[k]=L,this._signal("changeFrontMarker")):(this.$backMarkers[k]=L,this._signal("changeBackMarker")),k},this.addDynamicMarker=function(h,p){if(!!h.update){var b=this.$markerId++;return h.id=b,h.inFront=!!p,p?(this.$frontMarkers[b]=h,this._signal("changeFrontMarker")):(this.$backMarkers[b]=h,this._signal("changeBackMarker")),h}},this.removeMarker=function(h){var p=this.$frontMarkers[h]||this.$backMarkers[h];if(!!p){var b=p.inFront?this.$frontMarkers:this.$backMarkers;p&&(delete b[h],this._signal(p.inFront?"changeFrontMarker":"changeBackMarker"))}},this.getMarkers=function(h){return h?this.$frontMarkers:this.$backMarkers},this.highlight=function(h){if(!this.$searchHighlight){var p=new o(null,"ace_selected-word","text");this.$searchHighlight=this.addDynamicMarker(p)}this.$searchHighlight.setRegexp(h)},this.highlightLines=function(h,p,b,S){typeof p!="number"&&(b=p,p=h),b||(b="ace_step");var k=new n(h,0,p,1/0);return k.id=this.addMarker(k,b,"fullLine",S),k},this.setAnnotations=function(h){this.$annotations=h,this._signal("changeAnnotation",{})},this.getAnnotations=function(){return this.$annotations||[]},this.clearAnnotations=function(){this.setAnnotations([])},this.$detectNewLine=function(h){var p=h.match(/^.*?(\r?\n)/m);p?this.$autoNewLine=p[1]:this.$autoNewLine=` +`},this.getWordRange=function(h,p){var b=this.getLine(h),S=!1;if(p>0&&(S=!!b.charAt(p-1).match(this.tokenRe)),S||(S=!!b.charAt(p).match(this.tokenRe)),S)var k=this.tokenRe;else if(/^\s+$/.test(b.slice(p-1,p+1)))var k=/\s/;else var k=this.nonTokenRe;var L=p;if(L>0){do L--;while(L>=0&&b.charAt(L).match(k));L++}for(var D=p;D<b.length&&b.charAt(D).match(k);)D++;return new n(h,L,h,D)},this.getAWordRange=function(h,p){for(var b=this.getWordRange(h,p),S=this.getLine(b.end.row);S.charAt(b.end.column).match(/[ \t]/);)b.end.column+=1;return b},this.setNewLineMode=function(h){this.doc.setNewLineMode(h)},this.getNewLineMode=function(){return this.doc.getNewLineMode()},this.setUseWorker=function(h){this.setOption("useWorker",h)},this.getUseWorker=function(){return this.$useWorker},this.onReloadTokenizer=function(h){var p=h.data;this.bgTokenizer.start(p.first),this._signal("tokenizerUpdate",h)},this.$modes={},this.$mode=null,this.$modeId=null,this.setMode=function(h,p){if(h&&typeof h=="object"){if(h.getTokenizer)return this.$onChangeMode(h);var b=h,S=b.path}else S=h||"ace/mode/text";if(this.$modes["ace/mode/text"]||(this.$modes["ace/mode/text"]=new e),this.$modes[S]&&!b){this.$onChangeMode(this.$modes[S]),p&&p();return}this.$modeId=S,a.loadModule(["mode",S],function(k){if(this.$modeId!==S)return p&&p();this.$modes[S]&&!b?this.$onChangeMode(this.$modes[S]):k&&k.Mode&&(k=new k.Mode(b),b||(this.$modes[S]=k,k.$id=S),this.$onChangeMode(k)),p&&p()}.bind(this)),this.$mode||this.$onChangeMode(this.$modes["ace/mode/text"],!0)},this.$onChangeMode=function(h,p){if(p||(this.$modeId=h.$id),this.$mode!==h){this.$mode=h,this.$stopWorker(),this.$useWorker&&this.$startWorker();var b=h.getTokenizer();if(b.addEventListener!==void 0){var S=this.onReloadTokenizer.bind(this);b.addEventListener("update",S)}if(this.bgTokenizer)this.bgTokenizer.setTokenizer(b);else{this.bgTokenizer=new r(b);var k=this;this.bgTokenizer.addEventListener("update",function(L){k._signal("tokenizerUpdate",L)})}this.bgTokenizer.setDocument(this.getDocument()),this.tokenRe=h.tokenRe,this.nonTokenRe=h.nonTokenRe,p||(h.attachToSession&&h.attachToSession(this),this.$options.wrapMethod.set.call(this,this.$wrapMethod),this.$setFolding(h.foldingRules),this.bgTokenizer.start(0),this._emit("changeMode"))}},this.$stopWorker=function(){this.$worker&&(this.$worker.terminate(),this.$worker=null)},this.$startWorker=function(){try{this.$worker=this.$mode.createWorker(this)}catch(h){a.warn("Could not load worker",h),this.$worker=null}},this.getMode=function(){return this.$mode},this.$scrollTop=0,this.setScrollTop=function(h){this.$scrollTop===h||isNaN(h)||(this.$scrollTop=h,this._signal("changeScrollTop",h))},this.getScrollTop=function(){return this.$scrollTop},this.$scrollLeft=0,this.setScrollLeft=function(h){this.$scrollLeft===h||isNaN(h)||(this.$scrollLeft=h,this._signal("changeScrollLeft",h))},this.getScrollLeft=function(){return this.$scrollLeft},this.getScreenWidth=function(){return this.$computeWidth(),this.lineWidgets?Math.max(this.getLineWidgetMaxWidth(),this.screenWidth):this.screenWidth},this.getLineWidgetMaxWidth=function(){if(this.lineWidgetsWidth!=null)return this.lineWidgetsWidth;var h=0;return this.lineWidgets.forEach(function(p){p&&p.screenWidth>h&&(h=p.screenWidth)}),this.lineWidgetWidth=h},this.$computeWidth=function(h){if(this.$modified||h){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var p=this.doc.getAllLines(),b=this.$rowLengthCache,S=0,k=0,L=this.$foldData[k],D=L?L.start.row:1/0,O=p.length,I=0;I<O;I++){if(I>D){if(I=L.end.row+1,I>=O)break;L=this.$foldData[k++],D=L?L.start.row:1/0}b[I]==null&&(b[I]=this.$getStringScreenWidth(p[I])[0]),b[I]>S&&(S=b[I])}this.screenWidth=S}},this.getLine=function(h){return this.doc.getLine(h)},this.getLines=function(h,p){return this.doc.getLines(h,p)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(h){return this.doc.getTextRange(h||this.selection.getRange())},this.insert=function(h,p){return this.doc.insert(h,p)},this.remove=function(h){return this.doc.remove(h)},this.removeFullLines=function(h,p){return this.doc.removeFullLines(h,p)},this.undoChanges=function(h,p){if(!!h.length){this.$fromUndo=!0;for(var b=null,S=h.length-1;S!=-1;S--){var k=h[S];k.group=="doc"?(this.doc.revertDeltas(k.deltas),b=this.$getUndoSelection(k.deltas,!0,b)):k.deltas.forEach(function(L){this.addFolds(L.folds)},this)}return this.$fromUndo=!1,b&&this.$undoSelect&&!p&&this.selection.setSelectionRange(b),b}},this.redoChanges=function(h,p){if(!!h.length){this.$fromUndo=!0;for(var b=null,S=0;S<h.length;S++){var k=h[S];k.group=="doc"&&(this.doc.applyDeltas(k.deltas),b=this.$getUndoSelection(k.deltas,!1,b))}return this.$fromUndo=!1,b&&this.$undoSelect&&!p&&this.selection.setSelectionRange(b),b}},this.setUndoSelect=function(h){this.$undoSelect=h},this.$getUndoSelection=function(h,p,b){function S(W){return p?W.action!=="insert":W.action==="insert"}var k=h[0],L,D;S(k)?L=n.fromPoints(k.start,k.end):L=n.fromPoints(k.start,k.start);for(var O=1;O<h.length;O++)k=h[O],S(k)?(D=k.start,L.compare(D.row,D.column)==-1&&L.setStart(D),D=k.end,L.compare(D.row,D.column)==1&&L.setEnd(D)):(D=k.start,L.compare(D.row,D.column)==-1&&(L=n.fromPoints(k.start,k.start)));if(b!=null){n.comparePoints(b.start,L.start)===0&&(b.start.column+=L.end.column-L.start.column,b.end.column+=L.end.column-L.start.column);var I=b.compareRange(L);I==1?L.setStart(b.start):I==-1&&L.setEnd(b.end)}return L},this.replace=function(h,p){return this.doc.replace(h,p)},this.moveText=function(h,p,b){var S=this.getTextRange(h),k=this.getFoldsInRange(h),L=n.fromPoints(p,p);if(!b){this.remove(h);var D=h.start.row-h.end.row,O=D?-h.end.column:h.start.column-h.end.column;O&&(L.start.row==h.end.row&&L.start.column>h.end.column&&(L.start.column+=O),L.end.row==h.end.row&&L.end.column>h.end.column&&(L.end.column+=O)),D&&L.start.row>=h.end.row&&(L.start.row+=D,L.end.row+=D)}if(L.end=this.insert(L.start,S),k.length){var I=h.start,W=L.start,D=W.row-I.row,O=W.column-I.column;this.addFolds(k.map(function(M){return M=M.clone(),M.start.row==I.row&&(M.start.column+=O),M.end.row==I.row&&(M.end.column+=O),M.start.row+=D,M.end.row+=D,M}))}return L},this.indentRows=function(h,p,b){b=b.replace(/\t/g,this.getTabString());for(var S=h;S<=p;S++)this.doc.insertInLine({row:S,column:0},b)},this.outdentRows=function(h){for(var p=h.collapseRows(),b=new n(0,0,0,0),S=this.getTabSize(),k=p.start.row;k<=p.end.row;++k){var L=this.getLine(k);b.start.row=k,b.end.row=k;for(var D=0;D<S&&L.charAt(D)==" ";++D);D<S&&L.charAt(D)==" "?(b.start.column=D,b.end.column=D+1):(b.start.column=0,b.end.column=D),this.remove(b)}},this.$moveLines=function(h,p,b){if(h=this.getRowFoldStart(h),p=this.getRowFoldEnd(p),b<0){var S=this.getRowFoldStart(h+b);if(S<0)return 0;var k=S-h}else if(b>0){var S=this.getRowFoldEnd(p+b);if(S>this.doc.getLength()-1)return 0;var k=S-p}else{h=this.$clipRowToDocument(h),p=this.$clipRowToDocument(p);var k=p-h+1}var L=new n(h,0,p,Number.MAX_VALUE),D=this.getFoldsInRange(L).map(function(I){return I=I.clone(),I.start.row+=k,I.end.row+=k,I}),O=b==0?this.doc.getLines(h,p):this.doc.removeFullLines(h,p);return this.doc.insertFullLines(h+k,O),D.length&&this.addFolds(D),k},this.moveLinesUp=function(h,p){return this.$moveLines(h,p,-1)},this.moveLinesDown=function(h,p){return this.$moveLines(h,p,1)},this.duplicateLines=function(h,p){return this.$moveLines(h,p,0)},this.$clipRowToDocument=function(h){return Math.max(0,Math.min(h,this.doc.getLength()-1))},this.$clipColumnToRow=function(h,p){return p<0?0:Math.min(this.doc.getLine(h).length,p)},this.$clipPositionToDocument=function(h,p){if(p=Math.max(0,p),h<0)h=0,p=0;else{var b=this.doc.getLength();h>=b?(h=b-1,p=this.doc.getLine(b-1).length):p=Math.min(this.doc.getLine(h).length,p)}return{row:h,column:p}},this.$clipRangeToDocument=function(h){h.start.row<0?(h.start.row=0,h.start.column=0):h.start.column=this.$clipColumnToRow(h.start.row,h.start.column);var p=this.doc.getLength()-1;return h.end.row>p?(h.end.row=p,h.end.column=this.doc.getLine(p).length):h.end.column=this.$clipColumnToRow(h.end.row,h.end.column),h},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(h){if(h!=this.$useWrapMode){if(this.$useWrapMode=h,this.$modified=!0,this.$resetRowCache(0),h){var p=this.getLength();this.$wrapData=Array(p),this.$updateWrapData(0,p-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(h,p){(this.$wrapLimitRange.min!==h||this.$wrapLimitRange.max!==p)&&(this.$wrapLimitRange={min:h,max:p},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},this.adjustWrapLimit=function(h,p){var b=this.$wrapLimitRange;b.max<0&&(b={min:p,max:p});var S=this.$constrainWrapLimit(h,b.min,b.max);return S!=this.$wrapLimit&&S>1?(this.$wrapLimit=S,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},this.$constrainWrapLimit=function(h,p,b){return p&&(h=Math.max(p,h)),b&&(h=Math.min(b,h)),h},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(h){this.setWrapLimitRange(h,h)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(h){var p=this.$useWrapMode,b=h.action,S=h.start,k=h.end,L=S.row,D=k.row,O=D-L,I=null;if(this.$updating=!0,O!=0)if(b==="remove"){this[p?"$wrapData":"$rowLengthCache"].splice(L,O);var W=this.$foldData;I=this.getFoldsInRange(h),this.removeFolds(I);var H=this.getFoldLine(k.row),z=0;if(H){H.addRemoveChars(k.row,k.column,S.column-k.column),H.shiftRow(-O);var M=this.getFoldLine(L);M&&M!==H&&(M.merge(H),H=M),z=W.indexOf(H)+1}for(z;z<W.length;z++){var H=W[z];H.start.row>=k.row&&H.shiftRow(-O)}D=L}else{var y=Array(O);y.unshift(L,0);var x=p?this.$wrapData:this.$rowLengthCache;x.splice.apply(x,y);var W=this.$foldData,H=this.getFoldLine(L),z=0;if(H){var R=H.range.compareInside(S.row,S.column);R==0?(H=H.split(S.row,S.column),H&&(H.shiftRow(O),H.addRemoveChars(D,0,k.column-S.column))):R==-1&&(H.addRemoveChars(L,0,k.column-S.column),H.shiftRow(O)),z=W.indexOf(H)+1}for(z;z<W.length;z++){var H=W[z];H.start.row>=L&&H.shiftRow(O)}}else{O=Math.abs(h.start.column-h.end.column),b==="remove"&&(I=this.getFoldsInRange(h),this.removeFolds(I),O=-O);var H=this.getFoldLine(L);H&&H.addRemoveChars(L,S.column,O)}return p&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,p?this.$updateWrapData(L,D):this.$updateRowLengthCache(L,D),I},this.$updateRowLengthCache=function(h,p,b){this.$rowLengthCache[h]=null,this.$rowLengthCache[p]=null},this.$updateWrapData=function(h,p){var b=this.doc.getAllLines(),S=this.getTabSize(),k=this.$wrapData,L=this.$wrapLimit,D,O,I=h;for(p=Math.min(p,b.length-1);I<=p;)O=this.getFoldLine(I,O),O?(D=[],O.walk(function(W,H,z,M){var y;if(W!=null){y=this.$getDisplayTokens(W,D.length),y[0]=w;for(var x=1;x<y.length;x++)y[x]=c}else y=this.$getDisplayTokens(b[H].substring(M,z),D.length);D=D.concat(y)}.bind(this),O.end.row,b[O.end.row].length+1),k[O.start.row]=this.$computeWrapSplits(D,L,S),I=O.end.row+1):(D=this.$getDisplayTokens(b[I]),k[I]=this.$computeWrapSplits(D,L,S),I++)};var f=1,v=2,w=3,c=4,m=9,l=10,g=11,A=12;this.$computeWrapSplits=function(h,p,b){if(h.length==0)return[];var S=[],k=h.length,L=0,D=0,O=this.$wrapAsCode,I=this.$indentedSoftWrap,W=p<=Math.max(2*b,8)||I===!1?0:Math.floor(p/2);function H(){var R=0;if(W===0)return R;if(I)for(var T=0;T<h.length;T++){var P=h[T];if(P==l)R+=1;else if(P==g)R+=b;else{if(P==A)continue;break}}return O&&I!==!1&&(R+=b),Math.min(R,W)}function z(R){var T=h.slice(L,R),P=T.length;T.join("").replace(/12/g,function(){P-=1}).replace(/2/g,function(){P-=1}),S.length||(M=H(),S.indent=M),D+=P,S.push(D),L=R}for(var M=0;k-L>p-M;){var y=L+p-M;if(h[y-1]>=l&&h[y]>=l){z(y);continue}if(h[y]==w||h[y]==c){for(y;y!=L-1&&h[y]!=w;y--);if(y>L){z(y);continue}for(y=L+p,y;y<h.length&&h[y]==c;y++);if(y==h.length)break;z(y);continue}for(var x=Math.max(y-(p-(p>>2)),L-1);y>x&&h[y]<w;)y--;if(O){for(;y>x&&h[y]<w;)y--;for(;y>x&&h[y]==m;)y--}else for(;y>x&&h[y]<l;)y--;if(y>x){z(++y);continue}y=L+p,h[y]==v&&y--,z(y-M)}return S},this.$getDisplayTokens=function(h,p){var b=[],S;p=p||0;for(var k=0;k<h.length;k++){var L=h.charCodeAt(k);if(L==9){S=this.getScreenTabSize(b.length+p),b.push(g);for(var D=1;D<S;D++)b.push(A)}else L==32?b.push(l):L>39&&L<48||L>57&&L<64?b.push(m):L>=4352&&F(L)?b.push(f,v):b.push(f)}return b},this.$getStringScreenWidth=function(h,p,b){if(p==0)return[0,0];p==null&&(p=1/0),b=b||0;var S,k;for(k=0;k<h.length&&(S=h.charCodeAt(k),S==9?b+=this.getScreenTabSize(b):S>=4352&&F(S)?b+=2:b+=1,!(b>p));k++);return[b,k]},this.lineWidgets=null,this.getRowLength=function(h){if(this.lineWidgets)var p=this.lineWidgets[h]&&this.lineWidgets[h].rowCount||0;else p=0;return!this.$useWrapMode||!this.$wrapData[h]?1+p:this.$wrapData[h].length+1+p},this.getRowLineCount=function(h){return!this.$useWrapMode||!this.$wrapData[h]?1:this.$wrapData[h].length+1},this.getRowWrapIndent=function(h){if(this.$useWrapMode){var p=this.screenToDocumentPosition(h,Number.MAX_VALUE),b=this.$wrapData[p.row];return b.length&&b[0]<p.column?b.indent:0}else return 0},this.getScreenLastRowColumn=function(h){var p=this.screenToDocumentPosition(h,Number.MAX_VALUE);return this.documentToScreenColumn(p.row,p.column)},this.getDocumentLastRowColumn=function(h,p){var b=this.documentToScreenRow(h,p);return this.getScreenLastRowColumn(b)},this.getDocumentLastRowColumnPosition=function(h,p){var b=this.documentToScreenRow(h,p);return this.screenToDocumentPosition(b,Number.MAX_VALUE/10)},this.getRowSplitData=function(h){if(this.$useWrapMode)return this.$wrapData[h]},this.getScreenTabSize=function(h){return this.$tabSize-h%this.$tabSize},this.screenToDocumentRow=function(h,p){return this.screenToDocumentPosition(h,p).row},this.screenToDocumentColumn=function(h,p){return this.screenToDocumentPosition(h,p).column},this.screenToDocumentPosition=function(h,p,b){if(h<0)return{row:0,column:0};var S,k=0,L=0,D,O=0,I=0,W=this.$screenRowCache,H=this.$getRowCacheIndex(W,h),z=W.length;if(z&&H>=0)var O=W[H],k=this.$docRowCache[H],M=h>W[z-1];else var M=!z;for(var y=this.getLength()-1,x=this.getNextFoldLine(k),R=x?x.start.row:1/0;O<=h&&(I=this.getRowLength(k),!(O+I>h||k>=y));)O+=I,k++,k>R&&(k=x.end.row+1,x=this.getNextFoldLine(k,x),R=x?x.start.row:1/0),M&&(this.$docRowCache.push(k),this.$screenRowCache.push(O));if(x&&x.start.row<=k)S=this.getFoldDisplayLine(x),k=x.start.row;else{if(O+I<=h||k>y)return{row:y,column:this.getLine(y).length};S=this.getLine(k),x=null}var T=0,P=Math.floor(h-O);if(this.$useWrapMode){var N=this.$wrapData[k];N&&(D=N[P],P>0&&N.length&&(T=N.indent,L=N[P-1]||N[N.length-1],S=S.substring(L)))}return b!==void 0&&this.$bidiHandler.isBidiRow(O+P,k,P)&&(p=this.$bidiHandler.offsetToCol(b)),L+=this.$getStringScreenWidth(S,p-T)[1],this.$useWrapMode&&L>=D&&(L=D-1),x?x.idxToPosition(L):{row:k,column:L}},this.documentToScreenPosition=function(h,p){if(typeof p=="undefined")var b=this.$clipPositionToDocument(h.row,h.column);else b=this.$clipPositionToDocument(h,p);h=b.row,p=b.column;var S=0,k=null,L=null;L=this.getFoldAt(h,p,1),L&&(h=L.start.row,p=L.start.column);var D,O=0,I=this.$docRowCache,W=this.$getRowCacheIndex(I,h),H=I.length;if(H&&W>=0)var O=I[W],S=this.$screenRowCache[W],z=h>I[H-1];else var z=!H;for(var M=this.getNextFoldLine(O),y=M?M.start.row:1/0;O<h;){if(O>=y){if(D=M.end.row+1,D>h)break;M=this.getNextFoldLine(D,M),y=M?M.start.row:1/0}else D=O+1;S+=this.getRowLength(O),O=D,z&&(this.$docRowCache.push(O),this.$screenRowCache.push(S))}var x="";M&&O>=y?(x=this.getFoldDisplayLine(M,h,p),k=M.start.row):(x=this.getLine(h).substring(0,p),k=h);var R=0;if(this.$useWrapMode){var T=this.$wrapData[k];if(T){for(var P=0;x.length>=T[P];)S++,P++;x=x.substring(T[P-1]||0,x.length),R=P>0?T.indent:0}}return{row:S,column:R+this.$getStringScreenWidth(x)[0]}},this.documentToScreenColumn=function(h,p){return this.documentToScreenPosition(h,p).column},this.documentToScreenRow=function(h,p){return this.documentToScreenPosition(h,p).row},this.getScreenLength=function(){var h=0,p=null;if(this.$useWrapMode)for(var k=this.$wrapData.length,L=0,S=0,p=this.$foldData[S++],D=p?p.start.row:1/0;L<k;){var O=this.$wrapData[L];h+=O?O.length+1:1,L++,L>D&&(L=p.end.row+1,p=this.$foldData[S++],D=p?p.start.row:1/0)}else{h=this.getLength();for(var b=this.$foldData,S=0;S<b.length;S++)p=b[S],h-=p.end.row-p.start.row}return this.lineWidgets&&(h+=this.$getWidgetScreenLength()),h},this.$setFontMetrics=function(h){!this.$enableVarChar||(this.$getStringScreenWidth=function(p,b,S){if(b===0)return[0,0];b||(b=1/0),S=S||0;var k,L;for(L=0;L<p.length&&(k=p.charAt(L),k===" "?S+=this.getScreenTabSize(S):S+=h.getCharacterWidth(k),!(S>b));L++);return[S,L]})},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()},this.isFullWidth=F;function F(h){return h<4352?!1:h>=4352&&h<=4447||h>=4515&&h<=4519||h>=4602&&h<=4607||h>=9001&&h<=9002||h>=11904&&h<=11929||h>=11931&&h<=12019||h>=12032&&h<=12245||h>=12272&&h<=12283||h>=12288&&h<=12350||h>=12353&&h<=12438||h>=12441&&h<=12543||h>=12549&&h<=12589||h>=12593&&h<=12686||h>=12688&&h<=12730||h>=12736&&h<=12771||h>=12784&&h<=12830||h>=12832&&h<=12871||h>=12880&&h<=13054||h>=13056&&h<=19903||h>=19968&&h<=42124||h>=42128&&h<=42182||h>=43360&&h<=43388||h>=44032&&h<=55203||h>=55216&&h<=55238||h>=55243&&h<=55291||h>=63744&&h<=64255||h>=65040&&h<=65049||h>=65072&&h<=65106||h>=65108&&h<=65126||h>=65128&&h<=65131||h>=65281&&h<=65376||h>=65504&&h<=65510}}.call(u.prototype),B("./edit_session/folding").Folding.call(u.prototype),B("./edit_session/bracket_match").BracketMatch.call(u.prototype),a.defineOptions(u.prototype,"session",{wrap:{set:function(f){if(!f||f=="off"?f=!1:f=="free"?f=!0:f=="printMargin"?f=-1:typeof f=="string"&&(f=parseInt(f,10)||!1),this.$wrap!=f)if(this.$wrap=f,!f)this.setUseWrapMode(!1);else{var v=typeof f=="number"?f:null;this.setWrapLimitRange(v,v),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(f){f=f=="auto"?this.$mode.type!="text":f!="text",f!=this.$wrapAsCode&&(this.$wrapAsCode=f,this.$useWrapMode&&(this.$modified=!0,this.$resetRowCache(0),this.$updateWrapData(0,this.getLength()-1)))},initialValue:"auto"},indentedSoftWrap:{initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(f){this.$useWorker=f,this.$stopWorker(),f&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(f){isNaN(f)||this.$tabSize===f||(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=f,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},overwrite:{set:function(f){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(f){this.doc.setNewLineMode(f)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(f){this.setMode(f)},get:function(){return this.$modeId}}}),E.EditSession=u});ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(B,E,K){var $=B("./lib/lang"),C=B("./lib/oop"),d=B("./range").Range,a=function(){this.$options={}};(function(){this.set=function(t){return C.mixin(this.$options,t),this},this.getOptions=function(){return $.copyObject(this.$options)},this.setOptions=function(t){this.$options=t},this.find=function(t){var e=this.$options,n=this.$matchIterator(t,e);if(!n)return!1;var i=null;return n.forEach(function(r,o,u,f){return i=new d(r,o,u,f),o==f&&e.start&&e.start.start&&e.skipCurrent!=!1&&i.isEqual(e.start)?(i=null,!1):!0}),i},this.findAll=function(t){var e=this.$options;if(!e.needle)return[];this.$assembleRegExp(e);var n=e.range,i=n?t.getLines(n.start.row,n.end.row):t.doc.getAllLines(),r=[],o=e.re;if(e.$isMultiLine){var u=o.length,f=i.length-u,v;e:for(var w=o.offset||0;w<=f;w++){for(var c=0;c<u;c++)if(i[w+c].search(o[c])==-1)continue e;var m=i[w],l=i[w+u-1],g=m.length-m.match(o[0])[0].length,A=l.match(o[u-1])[0].length;v&&v.end.row===w&&v.end.column>g||(r.push(v=new d(w,g,w+u-1,A)),u>2&&(w=w+u-2))}}else for(var F=0;F<i.length;F++)for(var h=$.getMatchOffsets(i[F],o),c=0;c<h.length;c++){var p=h[c];r.push(new d(F,p.offset,F,p.offset+p.length))}if(n){for(var b=n.start.column,S=n.start.column,F=0,c=r.length-1;F<c&&r[F].start.column<b&&r[F].start.row==n.start.row;)F++;for(;F<c&&r[c].end.column>S&&r[c].end.row==n.end.row;)c--;for(r=r.slice(F,c+1),F=0,c=r.length;F<c;F++)r[F].start.row+=n.start.row,r[F].end.row+=n.start.row}return r},this.replace=function(t,e){var n=this.$options,i=this.$assembleRegExp(n);if(n.$isMultiLine)return e;if(!!i){var r=i.exec(t);if(!r||r[0].length!=t.length)return null;if(e=t.replace(i,e),n.preserveCase){e=e.split("");for(var o=Math.min(t.length,t.length);o--;){var u=t[o];u&&u.toLowerCase()!=u?e[o]=e[o].toUpperCase():e[o]=e[o].toLowerCase()}e=e.join("")}return e}},this.$assembleRegExp=function(t,e){if(t.needle instanceof RegExp)return t.re=t.needle;var n=t.needle;if(!t.needle)return t.re=!1;t.regExp||(n=$.escapeRegExp(n)),t.wholeWord&&(n=s(n,t));var i=t.caseSensitive?"gm":"gmi";if(t.$isMultiLine=!e&&/[\n\r]/.test(n),t.$isMultiLine)return t.re=this.$assembleMultilineRegExp(n,i);try{var r=new RegExp(n,i)}catch{r=!1}return t.re=r},this.$assembleMultilineRegExp=function(t,e){for(var n=t.replace(/\r\n|\r|\n/g,`$ +^`).split(` +`),i=[],r=0;r<n.length;r++)try{i.push(new RegExp(n[r],e))}catch{return!1}return i},this.$matchIterator=function(t,e){var n=this.$assembleRegExp(e);if(!n)return!1;var i=e.backwards==!0,r=e.skipCurrent!=!1,o=e.range,u=e.start;u||(u=o?o[i?"end":"start"]:t.selection.getRange()),u.start&&(u=u[r!=i?"end":"start"]);var f=o?o.start.row:0,v=o?o.end.row:t.getLength()-1;if(i)var w=function(l){var g=u.row;if(!m(g,u.column,l)){for(g--;g>=f;g--)if(m(g,Number.MAX_VALUE,l))return;if(e.wrap!=!1){for(g=v,f=u.row;g>=f;g--)if(m(g,Number.MAX_VALUE,l))return}}};else var w=function(g){var A=u.row;if(!m(A,u.column,g)){for(A=A+1;A<=v;A++)if(m(A,0,g))return;if(e.wrap!=!1){for(A=f,v=u.row;A<=v;A++)if(m(A,0,g))return}}};if(e.$isMultiLine)var c=n.length,m=function(l,g,A){var F=i?l-c+1:l;if(!(F<0)){var h=t.getLine(F),p=h.search(n[0]);if(!(!i&&p<g||p===-1)){for(var b=1;b<c;b++)if(h=t.getLine(F+b),h.search(n[b])==-1)return;var S=h.match(n[c-1])[0].length;if(!(i&&S>g)&&A(F,p,F+c-1,S))return!0}}};else if(i)var m=function(g,A,F){var h=t.getLine(g),p=[],b,S=0;for(n.lastIndex=0;b=n.exec(h);){var k=b[0].length;if(S=b.index,!k){if(S>=h.length)break;n.lastIndex=S+=1}if(b.index+k>A)break;p.push(b.index,k)}for(var L=p.length-1;L>=0;L-=2){var D=p[L-1],k=p[L];if(F(g,D,g,D+k))return!0}};else var m=function(g,A,F){var h=t.getLine(g),p,b=A;for(n.lastIndex=A;p=n.exec(h);){var S=p[0].length;if(b=p.index,F(g,b,g,b+S))return!0;if(!S&&(n.lastIndex=b+=1,b>=h.length))return!1}};return{forEach:w}}}).call(a.prototype);function s(t,e){function n(i){return/\w/.test(i)||e.regExp?"\\b":""}return n(t[0])+t+n(t[t.length-1])}E.Search=a});ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(B,E,K){var $=B("../lib/keys"),C=B("../lib/useragent"),d=$.KEY_MODS;function a(t,e){this.platform=e||(C.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(t),this.$singleCommand=!0}function s(t,e){a.call(this,t,e),this.$singleCommand=!1}s.prototype=a.prototype,function(){this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,n){var i=e&&(typeof e=="string"?e:e.name);e=this.commands[i],n||delete this.commands[i];var r=this.commandKeyBinding;for(var o in r){var u=r[o];if(u==e)delete r[o];else if(Array.isArray(u)){var f=u.indexOf(e);f!=-1&&(u.splice(f,1),u.length==1&&(r[o]=u[0]))}}},this.bindKey=function(e,n,i){if(typeof e=="object"&&e&&(i==null&&(i=e.position),e=e[this.platform]),!!e){if(typeof n=="function")return this.addCommand({exec:n,bindKey:e,name:n.name||e});e.split("|").forEach(function(r){var o="";if(r.indexOf(" ")!=-1){var u=r.split(/\s+/);r=u.pop(),u.forEach(function(w){var c=this.parseKeys(w),m=d[c.hashId]+c.key;o+=(o?" ":"")+m,this._addCommandToBinding(o,"chainKeys")},this),o+=" "}var f=this.parseKeys(r),v=d[f.hashId]+f.key;this._addCommandToBinding(o+v,n,i)},this)}};function t(e){return typeof e=="object"&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}this._addCommandToBinding=function(e,n,i){var r=this.commandKeyBinding,o;if(!n)delete r[e];else if(!r[e]||this.$singleCommand)r[e]=n;else{Array.isArray(r[e])?(o=r[e].indexOf(n))!=-1&&r[e].splice(o,1):r[e]=[r[e]],typeof i!="number"&&(i=t(n));var u=r[e];for(o=0;o<u.length;o++){var f=u[o],v=t(f);if(v>i)break}u.splice(o,0,n)}},this.addCommands=function(e){e&&Object.keys(e).forEach(function(n){var i=e[n];if(!!i){if(typeof i=="string")return this.bindKey(i,n);typeof i=="function"&&(i={exec:i}),typeof i=="object"&&(i.name||(i.name=n),this.addCommand(i))}},this)},this.removeCommands=function(e){Object.keys(e).forEach(function(n){this.removeCommand(e[n])},this)},this.bindKeys=function(e){Object.keys(e).forEach(function(n){this.bindKey(n,e[n])},this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var n=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(v){return v}),i=n.pop(),r=$[i];if($.FUNCTION_KEYS[r])i=$.FUNCTION_KEYS[r].toLowerCase();else if(n.length){if(n.length==1&&n[0]=="shift")return{key:i.toUpperCase(),hashId:-1}}else return{key:i,hashId:-1};for(var o=0,u=n.length;u--;){var f=$.KEY_MODS[n[u]];if(f==null)return typeof console!="undefined"&&console.error("invalid modifier "+n[u]+" in "+e),!1;o|=f}return{key:i,hashId:o}},this.findKeyCommand=function(n,i){var r=d[n]+i;return this.commandKeyBinding[r]},this.handleKeyboard=function(e,n,i,r){if(!(r<0)){var o=d[n]+i,u=this.commandKeyBinding[o];return e.$keyChain&&(e.$keyChain+=" "+o,u=this.commandKeyBinding[e.$keyChain]||u),u&&(u=="chainKeys"||u[u.length-1]=="chainKeys")?(e.$keyChain=e.$keyChain||o,{command:"null"}):(e.$keyChain&&((!n||n==4)&&i.length==1?e.$keyChain=e.$keyChain.slice(0,-o.length-1):(n==-1||r>0)&&(e.$keyChain="")),{command:u})}},this.getStatusText=function(e,n){return n.$keyChain||""}}.call(a.prototype),E.HashHandler=a,E.MultiHashHandler=s});ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(B,E,K){var $=B("../lib/oop"),C=B("../keyboard/hash_handler").MultiHashHandler,d=B("../lib/event_emitter").EventEmitter,a=function(s,t){C.call(this,t,s),this.byName=this.commands,this.setDefaultHandler("exec",function(e){return e.command.exec(e.editor,e.args||{})})};$.inherits(a,C),function(){$.implement(this,d),this.exec=function(s,t,e){if(Array.isArray(s)){for(var n=s.length;n--;)if(this.exec(s[n],t,e))return!0;return!1}if(typeof s=="string"&&(s=this.commands[s]),!s||t&&t.$readOnly&&!s.readOnly||s.isAvailable&&!s.isAvailable(t))return!1;var i={editor:t,command:s,args:e};return i.returnValue=this._emit("exec",i),this._signal("afterExec",i),i.returnValue!==!1},this.toggleRecording=function(s){if(!this.$inReplay)return s&&s._emit("changeStatus"),this.recording?(this.macro.pop(),this.removeEventListener("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(t){this.macro.push([t.command,t.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(s){if(!(this.$inReplay||!this.macro)){if(this.recording)return this.toggleRecording(s);try{this.$inReplay=!0,this.macro.forEach(function(t){typeof t=="string"?this.exec(t,s):this.exec(t[0],s,t[1])},this)}finally{this.$inReplay=!1}}},this.trimMacro=function(s){return s.map(function(t){return typeof t[0]!="string"&&(t[0]=t[0].name),t[1]||(t=t[0]),t})}}.call(a.prototype),E.CommandManager=a});ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(B,E,K){var $=B("../lib/lang"),C=B("../config"),d=B("../range").Range;function a(s,t){return{win:s,mac:t}}E.commands=[{name:"showSettingsMenu",bindKey:a("Ctrl-,","Command-,"),exec:function(s){C.loadModule("ace/ext/settings_menu",function(t){t.init(s),s.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",bindKey:a("Alt-E","F4"),exec:function(s){C.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(s,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",bindKey:a("Alt-Shift-E","Shift-F4"),exec:function(s){C.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(s,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",bindKey:a("Ctrl-A","Command-A"),exec:function(s){s.selectAll()},readOnly:!0},{name:"centerselection",bindKey:a(null,"Ctrl-L"),exec:function(s){s.centerSelection()},readOnly:!0},{name:"gotoline",bindKey:a("Ctrl-L","Command-L"),exec:function(s){var t=parseInt(prompt("Enter line number:"),10);isNaN(t)||s.gotoLine(t)},readOnly:!0},{name:"fold",bindKey:a("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(s){s.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:a("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(s){s.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",bindKey:a("F2","F2"),exec:function(s){s.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",bindKey:a("Alt-F2","Alt-F2"),exec:function(s){s.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",bindKey:a(null,"Ctrl-Command-Option-0"),exec:function(s){s.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",bindKey:a("Alt-0","Command-Option-0"),exec:function(s){s.session.foldAll(),s.session.unfold(s.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",bindKey:a("Alt-Shift-0","Command-Option-Shift-0"),exec:function(s){s.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",bindKey:a("Ctrl-K","Command-G"),exec:function(s){s.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",bindKey:a("Ctrl-Shift-K","Command-Shift-G"),exec:function(s){s.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",bindKey:a("Alt-K","Ctrl-G"),exec:function(s){s.selection.isEmpty()?s.selection.selectWord():s.findNext()},readOnly:!0},{name:"selectOrFindPrevious",bindKey:a("Alt-Shift-K","Ctrl-Shift-G"),exec:function(s){s.selection.isEmpty()?s.selection.selectWord():s.findPrevious()},readOnly:!0},{name:"find",bindKey:a("Ctrl-F","Command-F"),exec:function(s){C.loadModule("ace/ext/searchbox",function(t){t.Search(s)})},readOnly:!0},{name:"overwrite",bindKey:"Insert",exec:function(s){s.toggleOverwrite()},readOnly:!0},{name:"selecttostart",bindKey:a("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(s){s.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",bindKey:a("Ctrl-Home","Command-Home|Command-Up"),exec:function(s){s.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",bindKey:a("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(s){s.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",bindKey:a("Up","Up|Ctrl-P"),exec:function(s,t){s.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",bindKey:a("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(s){s.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",bindKey:a("Ctrl-End","Command-End|Command-Down"),exec:function(s){s.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",bindKey:a("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(s){s.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",bindKey:a("Down","Down|Ctrl-N"),exec:function(s,t){s.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",bindKey:a("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(s){s.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",bindKey:a("Ctrl-Left","Option-Left"),exec:function(s){s.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",bindKey:a("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(s){s.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",bindKey:a("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(s){s.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",bindKey:a("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(s){s.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",bindKey:a("Left","Left|Ctrl-B"),exec:function(s,t){s.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",bindKey:a("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(s){s.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",bindKey:a("Ctrl-Right","Option-Right"),exec:function(s){s.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",bindKey:a("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(s){s.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",bindKey:a("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(s){s.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",bindKey:a("Shift-Right","Shift-Right"),exec:function(s){s.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",bindKey:a("Right","Right|Ctrl-F"),exec:function(s,t){s.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",bindKey:"Shift-PageDown",exec:function(s){s.selectPageDown()},readOnly:!0},{name:"pagedown",bindKey:a(null,"Option-PageDown"),exec:function(s){s.scrollPageDown()},readOnly:!0},{name:"gotopagedown",bindKey:a("PageDown","PageDown|Ctrl-V"),exec:function(s){s.gotoPageDown()},readOnly:!0},{name:"selectpageup",bindKey:"Shift-PageUp",exec:function(s){s.selectPageUp()},readOnly:!0},{name:"pageup",bindKey:a(null,"Option-PageUp"),exec:function(s){s.scrollPageUp()},readOnly:!0},{name:"gotopageup",bindKey:"PageUp",exec:function(s){s.gotoPageUp()},readOnly:!0},{name:"scrollup",bindKey:a("Ctrl-Up",null),exec:function(s){s.renderer.scrollBy(0,-2*s.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",bindKey:a("Ctrl-Down",null),exec:function(s){s.renderer.scrollBy(0,2*s.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",bindKey:"Shift-Home",exec:function(s){s.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",bindKey:"Shift-End",exec:function(s){s.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",bindKey:a("Ctrl-Alt-E","Command-Option-E"),exec:function(s){s.commands.toggleRecording(s)},readOnly:!0},{name:"replaymacro",bindKey:a("Ctrl-Shift-E","Command-Shift-E"),exec:function(s){s.commands.replay(s)},readOnly:!0},{name:"jumptomatching",bindKey:a("Ctrl-P","Ctrl-P"),exec:function(s){s.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",bindKey:a("Ctrl-Shift-P","Ctrl-Shift-P"),exec:function(s){s.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",bindKey:a("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(s){s.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",bindKey:a(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",exec:function(s){},readOnly:!0},{name:"cut",exec:function(s){var t=s.getSelectionRange();s._emit("cut",t),s.selection.isEmpty()||(s.session.remove(t),s.clearSelection())},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",exec:function(s,t){s.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",bindKey:a("Ctrl-D","Command-D"),exec:function(s){s.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",bindKey:a("Ctrl-Shift-D","Command-Shift-D"),exec:function(s){s.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",bindKey:a("Ctrl-Alt-S","Command-Alt-S"),exec:function(s){s.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",bindKey:a("Ctrl-/","Command-/"),exec:function(s){s.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",bindKey:a("Ctrl-Shift-/","Command-Shift-/"),exec:function(s){s.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",bindKey:a("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(s){s.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",bindKey:a("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(s){s.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",bindKey:a("Ctrl-H","Command-Option-F"),exec:function(s){C.loadModule("ace/ext/searchbox",function(t){t.Search(s,!0)})}},{name:"undo",bindKey:a("Ctrl-Z","Command-Z"),exec:function(s){s.undo()}},{name:"redo",bindKey:a("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(s){s.redo()}},{name:"copylinesup",bindKey:a("Alt-Shift-Up","Command-Option-Up"),exec:function(s){s.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",bindKey:a("Alt-Up","Option-Up"),exec:function(s){s.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",bindKey:a("Alt-Shift-Down","Command-Option-Down"),exec:function(s){s.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",bindKey:a("Alt-Down","Option-Down"),exec:function(s){s.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",bindKey:a("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(s){s.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",bindKey:a("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(s){s.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",bindKey:a("Shift-Delete",null),exec:function(s){if(s.selection.isEmpty())s.remove("left");else return!1},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",bindKey:a("Alt-Backspace","Command-Backspace"),exec:function(s){s.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",bindKey:a("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(s){s.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",bindKey:a("Ctrl-Shift-Backspace",null),exec:function(s){var t=s.selection.getRange();t.start.column=0,s.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",bindKey:a("Ctrl-Shift-Delete",null),exec:function(s){var t=s.selection.getRange();t.end.column=Number.MAX_VALUE,s.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",bindKey:a("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(s){s.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",bindKey:a("Ctrl-Delete","Alt-Delete"),exec:function(s){s.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",bindKey:a("Shift-Tab","Shift-Tab"),exec:function(s){s.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",bindKey:a("Tab","Tab"),exec:function(s){s.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",bindKey:a("Ctrl-[","Ctrl-["),exec:function(s){s.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",bindKey:a("Ctrl-]","Ctrl-]"),exec:function(s){s.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",exec:function(s,t){s.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",exec:function(s,t){s.insert($.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",bindKey:a(null,"Ctrl-O"),exec:function(s){s.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",bindKey:a("Alt-Shift-X","Ctrl-T"),exec:function(s){s.transposeLetters()},multiSelectAction:function(s){s.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",bindKey:a("Ctrl-U","Ctrl-U"),exec:function(s){s.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",bindKey:a("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(s){s.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"expandtoline",bindKey:a("Ctrl-Shift-L","Command-Shift-L"),exec:function(s){var t=s.selection.getRange();t.start.column=t.end.column=0,t.end.row++,s.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"joinlines",bindKey:a(null,null),exec:function(s){for(var t=s.selection.isBackwards(),e=t?s.selection.getSelectionLead():s.selection.getSelectionAnchor(),n=t?s.selection.getSelectionAnchor():s.selection.getSelectionLead(),i=s.session.doc.getLine(e.row).length,r=s.session.doc.getTextRange(s.selection.getRange()),o=r.replace(/\n\s*/," ").length,u=s.session.doc.getLine(e.row),f=e.row+1;f<=n.row+1;f++){var v=$.stringTrimLeft($.stringTrimRight(s.session.doc.getLine(f)));v.length!==0&&(v=" "+v),u+=v}n.row+1<s.session.doc.getLength()-1&&(u+=s.session.doc.getNewLineCharacter()),s.clearSelection(),s.session.doc.replace(new d(e.row,0,n.row+2,0),u),o>0?(s.selection.moveCursorTo(e.row,e.column),s.selection.selectTo(e.row,e.column+o)):(i=s.session.doc.getLine(e.row).length>i?i+1:i,s.selection.moveCursorTo(e.row,i))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",bindKey:a(null,null),exec:function(s){var t=s.session.doc.getLength()-1,e=s.session.doc.getLine(t).length,n=s.selection.rangeList.ranges,i=[];n.length<1&&(n=[s.selection.getRange()]);for(var r=0;r<n.length;r++)r==n.length-1&&(n[r].end.row===t&&n[r].end.column===e||i.push(new d(n[r].end.row,n[r].end.column,t,e))),r===0?n[r].start.row===0&&n[r].start.column===0||i.push(new d(0,0,n[r].start.row,n[r].start.column)):i.push(new d(n[r-1].end.row,n[r-1].end.column,n[r].start.row,n[r].start.column));s.exitMultiSelectMode(),s.clearSelection();for(var r=0;r<i.length;r++)s.selection.addRange(i[r],!1)},readOnly:!0,scrollIntoView:"none"}]});ace.define("ace/editor",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/keyboard/textinput","ace/mouse/mouse_handler","ace/mouse/fold_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","ace/lib/event_emitter","ace/commands/command_manager","ace/commands/default_commands","ace/config","ace/token_iterator"],function(B,E,K){B("./lib/fixoldbrowsers");var $=B("./lib/oop"),C=B("./lib/dom"),d=B("./lib/lang"),a=B("./lib/useragent"),s=B("./keyboard/textinput").TextInput,t=B("./mouse/mouse_handler").MouseHandler,e=B("./mouse/fold_handler").FoldHandler,n=B("./keyboard/keybinding").KeyBinding,i=B("./edit_session").EditSession,r=B("./search").Search,o=B("./range").Range,u=B("./lib/event_emitter").EventEmitter,f=B("./commands/command_manager").CommandManager,v=B("./commands/default_commands").commands,w=B("./config"),c=B("./token_iterator").TokenIterator,m=function(l,g){var A=l.getContainerElement();this.container=A,this.renderer=l,this.id="editor"+ ++m.$uid,this.commands=new f(a.isMac?"mac":"win",v),typeof document=="object"&&(this.textInput=new s(l.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new t(this),new e(this)),this.keyBinding=new n(this),this.$blockScrolling=0,this.$search=new r().set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=d.delayedCall(function(){this._signal("input",{}),this.session&&this.session.bgTokenizer&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",function(F,h){h._$emitInputEvent.schedule(31)}),this.setSession(g||new i("")),w.resetOptions(this),w._signal("editor",this)};m.$uid=0,function(){$.implement(this,u),this.$initOperationListeners=function(){this.selections=[],this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=d.delayedCall(this.endOperation.bind(this)),this.on("change",function(){this.curOp||this.startOperation(),this.curOp.docChanged=!0}.bind(this),!0),this.on("changeSelection",function(){this.curOp||this.startOperation(),this.curOp.selectionChanged=!0}.bind(this),!0)},this.curOp=null,this.prevOp={},this.startOperation=function(l){if(this.curOp){if(!l||this.curOp.command)return;this.prevOp=this.curOp}l||(this.previousCommand=null,l={}),this.$opResetTimer.schedule(),this.curOp={command:l.command||{},args:l.args,scrollTop:this.renderer.scrollTop},this.curOp.command.name&&this.curOp.command.scrollIntoView!==void 0&&this.$blockScrolling++},this.endOperation=function(l){if(this.curOp){if(l&&l.returnValue===!1)return this.curOp=null;this._signal("beforeEndOperation");var g=this.curOp.command;g.name&&this.$blockScrolling>0&&this.$blockScrolling--;var A=g&&g.scrollIntoView;if(A){switch(A){case"center-animate":A="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var F=this.selection.getRange(),h=this.renderer.layerConfig;(F.start.row>=h.lastRow||F.end.row<=h.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break}A=="animate"&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(l){if(!!this.$mergeUndoDeltas){var g=this.prevOp,A=this.$mergeableCommands,F=g.command&&l.command.name==g.command.name;if(l.command.name=="insertstring"){var h=l.args;this.mergeNextCommand===void 0&&(this.mergeNextCommand=!0),F=F&&this.mergeNextCommand&&(!/\s/.test(h)||/\s/.test(g.args)),this.mergeNextCommand=!0}else F=F&&A.indexOf(l.command.name)!==-1;this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2e3&&(F=!1),F?this.session.mergeUndoDeltas=!0:A.indexOf(l.command.name)!==-1&&(this.sequenceStartTime=Date.now())}},this.setKeyboardHandler=function(l,g){if(l&&typeof l=="string"){this.$keybindingId=l;var A=this;w.loadModule(["keybinding",l],function(F){A.$keybindingId==l&&A.keyBinding.setKeyboardHandler(F&&F.handler),g&&g()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(l),g&&g()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(l){if(this.session!=l){this.curOp&&this.endOperation(),this.curOp={};var g=this.session;if(g){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var A=this.session.getSelection();A.off("changeCursor",this.$onCursorChange),A.off("changeSelection",this.$onSelectionChange)}this.session=l,l?(this.$onDocumentChange=this.onDocumentChange.bind(this),l.on("change",this.$onDocumentChange),this.renderer.setSession(l),this.$onChangeMode=this.onChangeMode.bind(this),l.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),l.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),l.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),l.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),l.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),l.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=l.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(l)),this._signal("changeSession",{session:l,oldSession:g}),this.curOp=null,g&&g._signal("changeEditor",{oldEditor:this}),l&&l._signal("changeEditor",{editor:this}),l&&l.bgTokenizer&&l.bgTokenizer.scheduleStart()}},this.getSession=function(){return this.session},this.setValue=function(l,g){return this.session.doc.setValue(l),g?g==1?this.navigateFileEnd():g==-1&&this.navigateFileStart():this.selectAll(),l},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(l){this.renderer.onResize(l)},this.setTheme=function(l,g){this.renderer.setTheme(l,g)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(l){this.renderer.setStyle(l)},this.unsetStyle=function(l){this.renderer.unsetStyle(l)},this.getFontSize=function(){return this.getOption("fontSize")||C.computedStyle(this.container,"fontSize")},this.setFontSize=function(l){this.setOption("fontSize",l)},this.$highlightBrackets=function(){if(this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null),!this.$highlightPending){var l=this;this.$highlightPending=!0,setTimeout(function(){l.$highlightPending=!1;var g=l.session;if(!(!g||!g.bgTokenizer)){var A=g.findMatchingBracket(l.getCursorPosition());if(A)var F=new o(A.row,A.column,A.row,A.column+1);else if(g.$mode.getMatching)var F=g.$mode.getMatching(l.session);F&&(g.$bracketHighlight=g.addMarker(F,"ace_bracket","text"))}},50)}},this.$highlightTags=function(){if(!this.$highlightTagPending){var l=this;this.$highlightTagPending=!0,setTimeout(function(){l.$highlightTagPending=!1;var g=l.session;if(!(!g||!g.bgTokenizer)){var A=l.getCursorPosition(),F=new c(l.session,A.row,A.column),h=F.getCurrentToken();if(!h||!/\b(?:tag-open|tag-name)/.test(h.type)){g.removeMarker(g.$tagHighlight),g.$tagHighlight=null;return}if(!(h.type.indexOf("tag-open")!=-1&&(h=F.stepForward(),!h))){var p=h.value,b=0,S=F.stepBackward();if(S.value=="<")do S=h,h=F.stepForward(),h&&h.value===p&&h.type.indexOf("tag-name")!==-1&&(S.value==="<"?b++:S.value==="</"&&b--);while(h&&b>=0);else{do h=S,S=F.stepBackward(),h&&h.value===p&&h.type.indexOf("tag-name")!==-1&&(S.value==="<"?b++:S.value==="</"&&b--);while(S&&b<=0);F.stepForward()}if(!h){g.removeMarker(g.$tagHighlight),g.$tagHighlight=null;return}var k=F.getCurrentTokenRow(),L=F.getCurrentTokenColumn(),D=new o(k,L,k,L+h.value.length),O=g.$backMarkers[g.$tagHighlight];g.$tagHighlight&&O!=null&&D.compareRange(O.range)!==0&&(g.removeMarker(g.$tagHighlight),g.$tagHighlight=null),D&&!g.$tagHighlight&&(g.$tagHighlight=g.addMarker(D,"ace_bracket","text"))}}},50)}},this.focus=function(){var l=this;setTimeout(function(){l.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(l){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",l))},this.onBlur=function(l){!this.$isFocused||(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",l))},this.$cursorChange=function(){this.renderer.updateCursor()},this.onDocumentChange=function(l){var g=this.session.$useWrapMode,A=l.start.row==l.end.row?l.end.row:1/0;this.renderer.updateLines(l.start.row,A,g),this._signal("change",l),this.$cursorChange(),this.$updateHighlightActiveLine()},this.onTokenizerUpdate=function(l){var g=l.data;this.renderer.updateLines(g.first,g.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.$cursorChange(),this.$blockScrolling||(w.warn("Automatically scrolling cursor into view after selection change","this will be disabled in the next version","set editor.$blockScrolling = Infinity to disable this message"),this.renderer.scrollCursorIntoView()),this.$highlightBrackets(),this.$highlightTags(),this.$updateHighlightActiveLine(),this._signal("changeSelection")},this.$updateHighlightActiveLine=function(){var l=this.getSession(),g;if(this.$highlightActiveLine&&((this.$selectionStyle!="line"||!this.selection.isMultiLine())&&(g=this.getCursorPosition()),this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(g=!1)),l.$highlightLineMarker&&!g)l.removeMarker(l.$highlightLineMarker.id),l.$highlightLineMarker=null;else if(!l.$highlightLineMarker&&g){var A=new o(g.row,g.column,g.row,1/0);A.id=l.addMarker(A,"ace_active-line","screenLine"),l.$highlightLineMarker=A}else g&&(l.$highlightLineMarker.start.row=g.row,l.$highlightLineMarker.end.row=g.row,l.$highlightLineMarker.start.column=g.column,l._signal("changeBackMarker"))},this.onSelectionChange=function(l){var g=this.session;if(g.$selectionMarker&&g.removeMarker(g.$selectionMarker),g.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var A=this.selection.getRange(),F=this.getSelectionStyle();g.$selectionMarker=g.addMarker(A,"ace_selection",F)}var h=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(h),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var l=this.session,g=this.getSelectionRange();if(!(g.isEmpty()||g.isMultiLine())){var A=g.start.column-1,F=g.end.column+1,h=l.getLine(g.start.row),p=h.length,b=h.substring(Math.max(A,0),Math.min(F,p));if(!(A>=0&&/^[\w\d]/.test(b)||F<=p&&/[\w\d]$/.test(b))&&(b=h.substring(g.start.column,g.end.column),!!/^[\w\d]+$/.test(b))){var S=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:b});return S}}},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(l){this.renderer.updateText(),this._emit("changeMode",l)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var l=this.getSelectedText();return this._signal("copy",l),l},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(l,g){var A={text:l,event:g};this.commands.exec("paste",this,A)},this.$handlePaste=function(l){typeof l=="string"&&(l={text:l}),this._signal("paste",l);var g=l.text;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)this.insert(g);else{var A=g.split(/\r\n|\r|\n/),F=this.selection.rangeList.ranges;if(A.length>F.length||A.length<2||!A[1])return this.commands.exec("insertstring",this,g);for(var h=F.length;h--;){var p=F[h];p.isEmpty()||this.session.remove(p),this.session.insert(p.start,A[h])}}},this.execCommand=function(l,g){return this.commands.exec(l,this,g)},this.insert=function(l,g){var A=this.session,F=A.getMode(),h=this.getCursorPosition();if(this.getBehavioursEnabled()&&!g){var p=F.transformAction(A.getState(h.row),"insertion",this,A,l);p&&(l!==p.text&&(this.session.mergeUndoDeltas=!1,this.$mergeNextCommand=!1),l=p.text)}if(l==" "&&(l=this.session.getTabString()),this.selection.isEmpty()){if(this.session.getOverwrite()&&l.indexOf(` +`)==-1){var b=new o.fromPoints(h,h);b.end.column+=l.length,this.session.remove(b)}}else{var b=this.getSelectionRange();h=this.session.remove(b),this.clearSelection()}if(l==` +`||l==`\r +`){var D=A.getLine(h.row);if(h.column>D.search(/\S|$/)){var S=D.substr(h.column).search(/\S|$/);A.doc.removeInLine(h.row,h.column,h.column+S)}}this.clearSelection();var k=h.column,L=A.getState(h.row),D=A.getLine(h.row),O=F.checkOutdent(L,D,l);if(A.insert(h,l),p&&p.selection&&(p.selection.length==2?this.selection.setSelectionRange(new o(h.row,k+p.selection[0],h.row,k+p.selection[1])):this.selection.setSelectionRange(new o(h.row+p.selection[0],p.selection[1],h.row+p.selection[2],p.selection[3]))),A.getDocument().isNewLine(l)){var I=F.getNextLineIndent(L,D.slice(0,h.column),A.getTabString());A.insert({row:h.row+1,column:0},I)}O&&F.autoOutdent(L,A,h.row)},this.onTextInput=function(l){this.keyBinding.onTextInput(l)},this.onCommandKey=function(l,g,A){this.keyBinding.onCommandKey(l,g,A)},this.setOverwrite=function(l){this.session.setOverwrite(l)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(l){this.setOption("scrollSpeed",l)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(l){this.setOption("dragDelay",l)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(l){this.setOption("selectionStyle",l)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(l){this.setOption("highlightActiveLine",l)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(l){this.setOption("highlightGutterLine",l)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(l){this.setOption("highlightSelectedWord",l)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(l){this.renderer.setAnimatedScroll(l)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(l){this.renderer.setShowInvisibles(l)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(l){this.renderer.setDisplayIndentGuides(l)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(l){this.renderer.setShowPrintMargin(l)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(l){this.renderer.setPrintMarginColumn(l)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(l){this.setOption("readOnly",l)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(l){this.setOption("behavioursEnabled",l)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(l){this.setOption("wrapBehavioursEnabled",l)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(l){this.setOption("showFoldWidgets",l)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(l){this.setOption("fadeFoldWidgets",l)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(l){this.selection.isEmpty()&&(l=="left"?this.selection.selectLeft():this.selection.selectRight());var g=this.getSelectionRange();if(this.getBehavioursEnabled()){var A=this.session,F=A.getState(g.start.row),h=A.getMode().transformAction(F,"deletion",this,A,g);if(g.end.column===0){var p=A.getTextRange(g);if(p[p.length-1]==` +`){var b=A.getLine(g.end.row);/^\s+$/.test(b)&&(g.end.column=b.length)}}h&&(g=h)}this.session.remove(g),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var l=this.getSelectionRange();l.start.column==l.end.column&&l.start.row==l.end.row&&(l.end.column=0,l.end.row++),this.session.remove(l),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var l=this.getCursorPosition();this.insert(` +`),this.moveCursorToPosition(l)},this.transposeLetters=function(){if(!!this.selection.isEmpty()){var l=this.getCursorPosition(),g=l.column;if(g!==0){var A=this.session.getLine(l.row),F,h;g<A.length?(F=A.charAt(g)+A.charAt(g-1),h=new o(l.row,g-1,l.row,g+1)):(F=A.charAt(g-1)+A.charAt(g-2),h=new o(l.row,g-2,l.row,g)),this.session.replace(h,F),this.session.selection.moveToPosition(h.end)}}},this.toLowerCase=function(){var l=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var g=this.getSelectionRange(),A=this.session.getTextRange(g);this.session.replace(g,A.toLowerCase()),this.selection.setSelectionRange(l)},this.toUpperCase=function(){var l=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var g=this.getSelectionRange(),A=this.session.getTextRange(g);this.session.replace(g,A.toUpperCase()),this.selection.setSelectionRange(l)},this.indent=function(){var l=this.session,g=this.getSelectionRange();if(g.start.row<g.end.row){var A=this.$getSelectedRows();l.indentRows(A.first,A.last," ");return}else if(g.start.column<g.end.column){var F=l.getTextRange(g);if(!/^\s+$/.test(F)){var A=this.$getSelectedRows();l.indentRows(A.first,A.last," ");return}}var h=l.getLine(g.start.row),p=g.start,b=l.getTabSize(),S=l.documentToScreenColumn(p.row,p.column);if(this.session.getUseSoftTabs())var k=b-S%b,L=d.stringRepeat(" ",k);else{for(var k=S%b;h[g.start.column-1]==" "&&k;)g.start.column--,k--;this.selection.setSelectionRange(g),L=" "}return this.insert(L)},this.blockIndent=function(){var l=this.$getSelectedRows();this.session.indentRows(l.first,l.last," ")},this.blockOutdent=function(){var l=this.session.getSelection();this.session.outdentRows(l.getRange())},this.sortLines=function(){for(var l=this.$getSelectedRows(),g=this.session,A=[],F=l.first;F<=l.last;F++)A.push(g.getLine(F));A.sort(function(b,S){return b.toLowerCase()<S.toLowerCase()?-1:b.toLowerCase()>S.toLowerCase()?1:0});for(var h=new o(0,0,0,0),F=l.first;F<=l.last;F++){var p=g.getLine(F);h.start.row=F,h.end.row=F,h.end.column=p.length,g.replace(h,A[F-l.first])}},this.toggleCommentLines=function(){var l=this.session.getState(this.getCursorPosition().row),g=this.$getSelectedRows();this.session.getMode().toggleCommentLines(l,this.session,g.first,g.last)},this.toggleBlockComment=function(){var l=this.getCursorPosition(),g=this.session.getState(l.row),A=this.getSelectionRange();this.session.getMode().toggleBlockComment(g,this.session,A,l)},this.getNumberAt=function(l,g){var A=/[\-]?[0-9]+(?:\.[0-9]+)?/g;A.lastIndex=0;for(var F=this.session.getLine(l);A.lastIndex<g;){var h=A.exec(F);if(h.index<=g&&h.index+h[0].length>=g){var p={value:h[0],start:h.index,end:h.index+h[0].length};return p}}return null},this.modifyNumber=function(l){var g=this.selection.getCursor().row,A=this.selection.getCursor().column,F=new o(g,A-1,g,A),h=this.session.getTextRange(F);if(!isNaN(parseFloat(h))&&isFinite(h)){var p=this.getNumberAt(g,A);if(p){var b=p.value.indexOf(".")>=0?p.start+p.value.indexOf(".")+1:p.end,S=p.start+p.value.length-b,k=parseFloat(p.value);k*=Math.pow(10,S),b!==p.end&&A<b?l*=Math.pow(10,p.end-A-1):l*=Math.pow(10,p.end-A),k+=l,k/=Math.pow(10,S);var L=k.toFixed(S),D=new o(g,p.start,g,p.end);this.session.replace(D,L),this.moveCursorTo(g,Math.max(p.start+1,A+L.length-p.value.length))}}},this.removeLines=function(){var l=this.$getSelectedRows();this.session.removeFullLines(l.first,l.last),this.clearSelection()},this.duplicateSelection=function(){var l=this.selection,g=this.session,A=l.getRange(),F=l.isBackwards();if(A.isEmpty()){var h=A.start.row;g.duplicateLines(h,h)}else{var p=F?A.start:A.end,b=g.insert(p,g.getTextRange(A),!1);A.start=p,A.end=b,l.setSelectionRange(A,F)}},this.moveLinesDown=function(){this.$moveLines(1,!1)},this.moveLinesUp=function(){this.$moveLines(-1,!1)},this.moveText=function(l,g,A){return this.session.moveText(l,g,A)},this.copyLinesUp=function(){this.$moveLines(-1,!0)},this.copyLinesDown=function(){this.$moveLines(1,!0)},this.$moveLines=function(l,g){var A,F,h=this.selection;if(!h.inMultiSelectMode||this.inVirtualSelectionMode){var p=h.toOrientedRange();A=this.$getSelectedRows(p),F=this.session.$moveLines(A.first,A.last,g?0:l),g&&l==-1&&(F=0),p.moveBy(F,0),h.fromOrientedRange(p)}else{var b=h.rangeList.ranges;h.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var S=0,k=0,L=b.length,D=0;D<L;D++){var O=D;b[D].moveBy(S,0),A=this.$getSelectedRows(b[D]);for(var I=A.first,W=A.last;++D<L;){k&&b[D].moveBy(k,0);var H=this.$getSelectedRows(b[D]);if(g&&H.first!=W)break;if(!g&&H.first>W+1)break;W=H.last}for(D--,S=this.session.$moveLines(I,W,g?0:l),g&&l==-1&&(O=D+1);O<=D;)b[O].moveBy(S,0),O++;g||(S=0),k+=S}h.fromOrientedRange(h.ranges[0]),h.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(l){return l=(l||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(l.start.row),last:this.session.getRowFoldEnd(l.end.row)}},this.onCompositionStart=function(l){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(l){this.renderer.setCompositionText(l)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(l){return l>=this.getFirstVisibleRow()&&l<=this.getLastVisibleRow()},this.isRowFullyVisible=function(l){return l>=this.renderer.getFirstFullyVisibleRow()&&l<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(l,g){var A=this.renderer,F=this.renderer.layerConfig,h=l*Math.floor(F.height/F.lineHeight);this.$blockScrolling++,g===!0?this.selection.$moveSelection(function(){this.moveCursorBy(h,0)}):g===!1&&(this.selection.moveCursorBy(h,0),this.selection.clearSelection()),this.$blockScrolling--;var p=A.scrollTop;A.scrollBy(0,h*F.lineHeight),g!=null&&A.scrollCursorIntoView(null,.5),A.animateScrolling(p)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(l){this.renderer.scrollToRow(l)},this.scrollToLine=function(l,g,A,F){this.renderer.scrollToLine(l,g,A,F)},this.centerSelection=function(){var l=this.getSelectionRange(),g={row:Math.floor(l.start.row+(l.end.row-l.start.row)/2),column:Math.floor(l.start.column+(l.end.column-l.start.column)/2)};this.renderer.alignCursor(g,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(l,g){this.selection.moveCursorTo(l,g)},this.moveCursorToPosition=function(l){this.selection.moveCursorToPosition(l)},this.jumpToMatching=function(l,g){var A=this.getCursorPosition(),F=new c(this.session,A.row,A.column),h=F.getCurrentToken(),p=h||F.stepForward();if(!!p){var b,S=!1,k={},L=A.column-p.start,D,O={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(p.value.match(/[{}()\[\]]/g)){for(;L<p.value.length&&!S;L++)if(!!O[p.value[L]])switch(D=O[p.value[L]]+"."+p.type.replace("rparen","lparen"),isNaN(k[D])&&(k[D]=0),p.value[L]){case"(":case"[":case"{":k[D]++;break;case")":case"]":case"}":k[D]--,k[D]===-1&&(b="bracket",S=!0);break}}else p&&p.type.indexOf("tag-name")!==-1&&(isNaN(k[p.value])&&(k[p.value]=0),h.value==="<"?k[p.value]++:h.value==="</"&&k[p.value]--,k[p.value]===-1&&(b="tag",S=!0));S||(h=p,p=F.stepForward(),L=0)}while(p&&!S);if(!!b){var I,W;if(b==="bracket")I=this.session.getBracketRange(A),I||(I=new o(F.getCurrentTokenRow(),F.getCurrentTokenColumn()+L-1,F.getCurrentTokenRow(),F.getCurrentTokenColumn()+L-1),W=I.start,(g||W.row===A.row&&Math.abs(W.column-A.column)<2)&&(I=this.session.getBracketRange(W)));else if(b==="tag"){if(p&&p.type.indexOf("tag-name")!==-1)var H=p.value;else return;if(I=new o(F.getCurrentTokenRow(),F.getCurrentTokenColumn()-2,F.getCurrentTokenRow(),F.getCurrentTokenColumn()-2),I.compare(A.row,A.column)===0){S=!1;do p=h,h=F.stepBackward(),h&&(h.type.indexOf("tag-close")!==-1&&I.setEnd(F.getCurrentTokenRow(),F.getCurrentTokenColumn()+1),p.value===H&&p.type.indexOf("tag-name")!==-1&&(h.value==="<"?k[H]++:h.value==="</"&&k[H]--,k[H]===0&&(S=!0)));while(h&&!S)}p&&p.type.indexOf("tag-name")&&(W=I.start,W.row==A.row&&Math.abs(W.column-A.column)<2&&(W=I.end))}W=I&&I.cursor||W,W&&(l?I&&g?this.selection.setRange(I):I&&I.isEqual(this.getSelectionRange())?this.clearSelection():this.selection.selectTo(W.row,W.column):this.selection.moveTo(W.row,W.column))}}},this.gotoLine=function(l,g,A){this.selection.clearSelection(),this.session.unfold({row:l-1,column:g||0}),this.$blockScrolling+=1,this.exitMultiSelectMode&&this.exitMultiSelectMode(),this.moveCursorTo(l-1,g||0),this.$blockScrolling-=1,this.isRowFullyVisible(l-1)||this.scrollToLine(l-1,!0,A)},this.navigateTo=function(l,g){this.selection.moveTo(l,g)},this.navigateUp=function(l){if(this.selection.isMultiLine()&&!this.selection.isBackwards()){var g=this.selection.anchor.getPosition();return this.moveCursorToPosition(g)}this.selection.clearSelection(),this.selection.moveCursorBy(-l||-1,0)},this.navigateDown=function(l){if(this.selection.isMultiLine()&&this.selection.isBackwards()){var g=this.selection.anchor.getPosition();return this.moveCursorToPosition(g)}this.selection.clearSelection(),this.selection.moveCursorBy(l||1,0)},this.navigateLeft=function(l){if(this.selection.isEmpty())for(l=l||1;l--;)this.selection.moveCursorLeft();else{var g=this.getSelectionRange().start;this.moveCursorToPosition(g)}this.clearSelection()},this.navigateRight=function(l){if(this.selection.isEmpty())for(l=l||1;l--;)this.selection.moveCursorRight();else{var g=this.getSelectionRange().end;this.moveCursorToPosition(g)}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(l,g){g&&this.$search.set(g);var A=this.$search.find(this.session),F=0;return A&&(this.$tryReplace(A,l)&&(F=1),A!==null&&(this.selection.setSelectionRange(A),this.renderer.scrollSelectionIntoView(A.start,A.end))),F},this.replaceAll=function(l,g){g&&this.$search.set(g);var A=this.$search.findAll(this.session),F=0;if(!A.length)return F;this.$blockScrolling+=1;var h=this.getSelectionRange();this.selection.moveTo(0,0);for(var p=A.length-1;p>=0;--p)this.$tryReplace(A[p],l)&&F++;return this.selection.setSelectionRange(h),this.$blockScrolling-=1,F},this.$tryReplace=function(l,g){var A=this.session.getTextRange(l);return g=this.$search.replace(A,g),g!==null?(l.end=this.session.replace(l,g),l):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(l,g,A){g||(g={}),typeof l=="string"||l instanceof RegExp?g.needle=l:typeof l=="object"&&$.mixin(g,l);var F=this.selection.getRange();g.needle==null&&(l=this.session.getTextRange(F)||this.$search.$options.needle,l||(F=this.session.getWordRange(F.start.row,F.start.column),l=this.session.getTextRange(F)),this.$search.set({needle:l})),this.$search.set(g),g.start||this.$search.set({start:F});var h=this.$search.find(this.session);if(g.preventScroll)return h;if(h)return this.revealRange(h,A),h;g.backwards?F.start=F.end:F.end=F.start,this.selection.setRange(F)},this.findNext=function(l,g){this.find({skipCurrent:!0,backwards:!1},l,g)},this.findPrevious=function(l,g){this.find(l,{skipCurrent:!0,backwards:!0},g)},this.revealRange=function(l,g){this.$blockScrolling+=1,this.session.unfold(l),this.selection.setSelectionRange(l),this.$blockScrolling-=1;var A=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(l.start,l.end,.5),g!==!1&&this.renderer.animateScrolling(A)},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy()},this.setAutoScrollEditorIntoView=function(l){if(!!l){var g,A=this,F=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var h=this.$scrollAnchor;h.style.cssText="position:absolute",this.container.insertBefore(h,this.container.firstChild);var p=this.on("changeSelection",function(){F=!0}),b=this.renderer.on("beforeRender",function(){F&&(g=A.renderer.container.getBoundingClientRect())}),S=this.renderer.on("afterRender",function(){if(F&&g&&(A.isFocused()||A.searchBox&&A.searchBox.isFocused())){var k=A.renderer,L=k.$cursorLayer.$pixelPos,D=k.layerConfig,O=L.top-D.offset;L.top>=0&&O+g.top<0?F=!0:L.top<D.height&&L.top+g.top+D.lineHeight>window.innerHeight?F=!1:F=null,F!=null&&(h.style.top=O+"px",h.style.left=L.left+"px",h.style.height=D.lineHeight+"px",h.scrollIntoView(F)),F=g=null}});this.setAutoScrollEditorIntoView=function(k){k||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",p),this.renderer.off("afterRender",S),this.renderer.off("beforeRender",b))}}},this.$resetCursorStyle=function(){var l=this.$cursorStyle||"ace",g=this.renderer.$cursorLayer;!g||(g.setSmoothBlinking(/smooth/.test(l)),g.isBlinking=!this.$readOnly&&l!="wide",C.setCssClass(g.element,"ace_slim-cursors",/slim/.test(l)))}}.call(m.prototype),w.defineOptions(m.prototype,"editor",{selectionStyle:{set:function(l){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:l})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(l){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(l){this.$resetCursorStyle()},initialValue:!1},cursorStyle:{set:function(l){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},autoScrollEditorIntoView:{set:function(l){this.setAutoScrollEditorIntoView(l)}},keyboardHandler:{set:function(l){this.setKeyboardHandler(l)},get:function(){return this.keybindingId},handlesSet:!0},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",showLineNumbers:"renderer",showGutter:"renderer",displayIndentGuides:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"}),E.Editor=m});ace.define("ace/undomanager",["require","exports","module"],function(B,E,K){var $=function(){this.reset()};(function(){this.execute=function(s){var t=s.args[0];this.$doc=s.args[1],s.merge&&this.hasUndo()&&(this.dirtyCounter--,t=this.$undoStack.pop().concat(t)),this.$undoStack.push(t),this.$redoStack=[],this.dirtyCounter<0&&(this.dirtyCounter=NaN),this.dirtyCounter++},this.undo=function(s){var t=this.$undoStack.pop(),e=null;return t&&(e=this.$doc.undoChanges(t,s),this.$redoStack.push(t),this.dirtyCounter--),e},this.redo=function(s){var t=this.$redoStack.pop(),e=null;return t&&(e=this.$doc.redoChanges(this.$deserializeDeltas(t),s),this.$undoStack.push(t),this.dirtyCounter++),e},this.reset=function(){this.$undoStack=[],this.$redoStack=[],this.dirtyCounter=0},this.hasUndo=function(){return this.$undoStack.length>0},this.hasRedo=function(){return this.$redoStack.length>0},this.markClean=function(){this.dirtyCounter=0},this.isClean=function(){return this.dirtyCounter===0},this.$serializeDeltas=function(s){return a(s,C)},this.$deserializeDeltas=function(s){return a(s,d)};function C(s){return{action:s.action,start:s.start,end:s.end,lines:s.lines.length==1?null:s.lines,text:s.lines.length==1?s.lines[0]:null}}function d(s){return{action:s.action,start:s.start,end:s.end,lines:s.lines||[s.text]}}function a(s,t){for(var e=new Array(s.length),n=0;n<s.length;n++){for(var i=s[n],r={group:i.group,deltas:new Array(i.length)},o=0;o<i.deltas.length;o++){var u=i.deltas[o];r.deltas[o]=t(u)}e[n]=r}return e}}).call($.prototype),E.UndoManager=$});ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter"],function(B,E,K){var $=B("../lib/dom"),C=B("../lib/oop"),d=B("../lib/lang"),a=B("../lib/event_emitter").EventEmitter,s=function(t){this.element=$.createElement("div"),this.element.className="ace_layer ace_gutter-layer",t.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$cells=[]};(function(){C.implement(this,a),this.setSession=function(t){this.session&&this.session.removeEventListener("change",this.$updateAnnotations),this.session=t,t&&t.on("change",this.$updateAnnotations)},this.addGutterDecoration=function(t,e){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(t,e)},this.removeGutterDecoration=function(t,e){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(t,e)},this.setAnnotations=function(t){this.$annotations=[];for(var e=0;e<t.length;e++){var n=t[e],i=n.row,r=this.$annotations[i];r||(r=this.$annotations[i]={text:[]});var o=n.text;o=o?d.escapeHTML(o):n.html||"",r.text.indexOf(o)===-1&&r.text.push(o);var u=n.type;u=="error"?r.className=" ace_error":u=="warning"&&r.className!=" ace_error"?r.className=" ace_warning":u=="info"&&!r.className&&(r.className=" ace_info")}},this.$updateAnnotations=function(t){if(!!this.$annotations.length){var e=t.start.row,n=t.end.row-e;if(n!==0)if(t.action=="remove")this.$annotations.splice(e,n+1,null);else{var i=new Array(n+1);i.unshift(e,1),this.$annotations.splice.apply(this.$annotations,i)}}},this.update=function(t){for(var e=this.session,n=t.firstRow,i=Math.min(t.lastRow+t.gutterOffset,e.getLength()-1),r=e.getNextFoldLine(n),o=r?r.start.row:1/0,u=this.$showFoldWidgets&&e.foldWidgets,f=e.$breakpoints,v=e.$decorations,w=e.$firstLineNumber,c=0,m=e.gutterRenderer||this.$renderer,l=null,g=-1,A=n;;){if(A>o&&(A=r.end.row+1,r=e.getNextFoldLine(A,r),o=r?r.start.row:1/0),A>i){for(;this.$cells.length>g+1;)l=this.$cells.pop(),this.element.removeChild(l.element);break}l=this.$cells[++g],l||(l={element:null,textNode:null,foldWidget:null},l.element=$.createElement("div"),l.textNode=document.createTextNode(""),l.element.appendChild(l.textNode),this.element.appendChild(l.element),this.$cells[g]=l);var F="ace_gutter-cell ";f[A]&&(F+=f[A]),v[A]&&(F+=v[A]),this.$annotations[A]&&(F+=this.$annotations[A].className),l.element.className!=F&&(l.element.className=F);var h=e.getRowLength(A)*t.lineHeight+"px";if(h!=l.element.style.height&&(l.element.style.height=h),u){var p=u[A];p==null&&(p=u[A]=e.getFoldWidget(A))}if(p){l.foldWidget||(l.foldWidget=$.createElement("span"),l.element.appendChild(l.foldWidget));var F="ace_fold-widget ace_"+p;p=="start"&&A==o&&A<r.end.row?F+=" ace_closed":F+=" ace_open",l.foldWidget.className!=F&&(l.foldWidget.className=F);var h=t.lineHeight+"px";l.foldWidget.style.height!=h&&(l.foldWidget.style.height=h)}else l.foldWidget&&(l.element.removeChild(l.foldWidget),l.foldWidget=null);var b=c=m?m.getText(e,A):A+w;b!==l.textNode.data&&(l.textNode.data=b),A++}this.element.style.height=t.minHeight+"px",(this.$fixedWidth||e.$useWrapMode)&&(c=e.getLength()+w);var S=m?m.getWidth(e,c,t):c.toString().length*t.characterWidth,k=this.$padding||this.$computePadding();S+=k.left+k.right,S!==this.gutterWidth&&!isNaN(S)&&(this.gutterWidth=S,this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._emit("changeGutterWidth",S))},this.$fixedWidth=!1,this.$showLineNumbers=!0,this.$renderer="",this.setShowLineNumbers=function(t){this.$renderer=!t&&{getWidth:function(){return""},getText:function(){return""}}},this.getShowLineNumbers=function(){return this.$showLineNumbers},this.$showFoldWidgets=!0,this.setShowFoldWidgets=function(t){t?$.addCssClass(this.element,"ace_folding-enabled"):$.removeCssClass(this.element,"ace_folding-enabled"),this.$showFoldWidgets=t,this.$padding=null},this.getShowFoldWidgets=function(){return this.$showFoldWidgets},this.$computePadding=function(){if(!this.element.firstChild)return{left:0,right:0};var t=$.computedStyle(this.element.firstChild);return this.$padding={},this.$padding.left=parseInt(t.paddingLeft)+1||0,this.$padding.right=parseInt(t.paddingRight)||0,this.$padding},this.getRegion=function(t){var e=this.$padding||this.$computePadding(),n=this.element.getBoundingClientRect();if(t.x<e.left+n.left)return"markers";if(this.$showFoldWidgets&&t.x>n.right-e.right)return"foldWidgets"}}).call(s.prototype),E.Gutter=s});ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(B,E,K){var $=B("../range").Range,C=B("../lib/dom"),d=function(a){this.element=C.createElement("div"),this.element.className="ace_layer ace_marker-layer",a.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(s){this.$padding=s},this.setSession=function(s){this.session=s},this.setMarkers=function(s){this.markers=s},this.update=function(s){if(!!s){this.config=s;var t=[];for(var e in this.markers){var n=this.markers[e];if(!n.range){n.update(t,this,this.session,s);continue}var i=n.range.clipRows(s.firstRow,s.lastRow);if(!i.isEmpty())if(i=i.toScreenRange(this.session),n.renderer){var r=this.$getTop(i.start.row,s),o=this.$padding+(this.session.$bidiHandler.isBidiRow(i.start.row)?this.session.$bidiHandler.getPosLeft(i.start.column):i.start.column*s.characterWidth);n.renderer(t,i,o,r,s)}else n.type=="fullLine"?this.drawFullLineMarker(t,i,n.clazz,s):n.type=="screenLine"?this.drawScreenLineMarker(t,i,n.clazz,s):i.isMultiLine()?n.type=="text"?this.drawTextMarker(t,i,n.clazz,s):this.drawMultiLineMarker(t,i,n.clazz,s):this.session.$bidiHandler.isBidiRow(i.start.row)?this.drawBidiSingleLineMarker(t,i,n.clazz+" ace_start ace_br15",s):this.drawSingleLineMarker(t,i,n.clazz+" ace_start ace_br15",s)}this.element.innerHTML=t.join("")}},this.$getTop=function(s,t){return(s-t.firstRowScreen)*t.lineHeight};function a(s,t,e,n){return(s?1:0)|(t?2:0)|(e?4:0)|(n?8:0)}this.drawTextMarker=function(s,t,e,n,i){for(var r=this.session,o=t.start.row,u=t.end.row,f=o,v=0,w=0,c=r.getScreenLastRowColumn(f),m=null,l=new $(f,t.start.column,f,w);f<=u;f++)l.start.row=l.end.row=f,l.start.column=f==o?t.start.column:r.getRowWrapIndent(f),l.end.column=c,v=w,w=c,c=f+1<u?r.getScreenLastRowColumn(f+1):f==u?0:t.end.column,m=e+(f==o?" ace_start":"")+" ace_br"+a(f==o||f==o+1&&t.start.column,v<w,w>c,f==u),this.session.$bidiHandler.isBidiRow(f)?this.drawBidiSingleLineMarker(s,l,m,n,f==u?0:1,i):this.drawSingleLineMarker(s,l,m,n,f==u?0:1,i)},this.drawMultiLineMarker=function(s,t,e,n,i){var r=this.$padding,o,u,f;if(i=i||"",this.session.$bidiHandler.isBidiRow(t.start.row)){var v=t.clone();v.end.row=v.start.row,v.end.column=this.session.getLine(v.start.row).length,this.drawBidiSingleLineMarker(s,v,e+" ace_br1 ace_start",n,null,i)}else o=n.lineHeight,u=this.$getTop(t.start.row,n),f=r+t.start.column*n.characterWidth,s.push("<div class='",e," ace_br1 ace_start' style='","height:",o,"px;","right:0;","top:",u,"px;","left:",f,"px;",i,"'></div>");if(this.session.$bidiHandler.isBidiRow(t.end.row)){var v=t.clone();v.start.row=v.end.row,v.start.column=0,this.drawBidiSingleLineMarker(s,v,e+" ace_br12",n,null,i)}else{var w=t.end.column*n.characterWidth;o=n.lineHeight,u=this.$getTop(t.end.row,n),s.push("<div class='",e," ace_br12' style='","height:",o,"px;","width:",w,"px;","top:",u,"px;","left:",r,"px;",i,"'></div>")}if(o=(t.end.row-t.start.row-1)*n.lineHeight,!(o<=0)){u=this.$getTop(t.start.row+1,n);var c=(t.start.column?1:0)|(t.end.column?0:8);s.push("<div class='",e,c?" ace_br"+c:"","' style='","height:",o,"px;","right:0;","top:",u,"px;","left:",r,"px;",i,"'></div>")}},this.drawSingleLineMarker=function(s,t,e,n,i,r){var o=n.lineHeight,u=(t.end.column+(i||0)-t.start.column)*n.characterWidth,f=this.$getTop(t.start.row,n),v=this.$padding+t.start.column*n.characterWidth;s.push("<div class='",e,"' style='","height:",o,"px;","width:",u,"px;","top:",f,"px;","left:",v,"px;",r||"","'></div>")},this.drawBidiSingleLineMarker=function(s,t,e,n,i,r){var o=n.lineHeight,u=this.$getTop(t.start.row,n),f=this.$padding,v=this.session.$bidiHandler.getSelections(t.start.column,t.end.column);v.forEach(function(w){s.push("<div class='",e,"' style='","height:",o,"px;","width:",w.width+(i||0),"px;","top:",u,"px;","left:",f+w.left,"px;",r||"","'></div>")})},this.drawFullLineMarker=function(s,t,e,n,i){var r=this.$getTop(t.start.row,n),o=n.lineHeight;t.start.row!=t.end.row&&(o+=this.$getTop(t.end.row,n)-r),s.push("<div class='",e,"' style='","height:",o,"px;","top:",r,"px;","left:0;right:0;",i||"","'></div>")},this.drawScreenLineMarker=function(s,t,e,n,i){var r=this.$getTop(t.start.row,n),o=n.lineHeight;s.push("<div class='",e,"' style='","height:",o,"px;","top:",r,"px;","left:0;right:0;",i||"","'></div>")}}).call(d.prototype),E.Marker=d});ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(B,E,K){var $=B("../lib/oop"),C=B("../lib/dom"),d=B("../lib/lang");B("../lib/useragent");var a=B("../lib/event_emitter").EventEmitter,s=function(t){this.element=C.createElement("div"),this.element.className="ace_layer ace_text-layer",t.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this)};(function(){$.implement(this,a),this.EOF_CHAR="\xB6",this.EOL_CHAR_LF="\xAC",this.EOL_CHAR_CRLF="\xA4",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="\u2014",this.SPACE_CHAR="\xB7",this.$padding=0,this.$updateEolChar=function(){var t=this.session.doc.getNewLineCharacter()==` +`?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=t)return this.EOL_CHAR=t,!0},this.setPadding=function(t){this.$padding=t,this.element.style.padding="0 "+t+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(t){this.$fontMetrics=t,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(t){this.session=t,t&&this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(t){return this.showInvisibles==t?!1:(this.showInvisibles=t,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(t){return this.displayIndentGuides==t?!1:(this.displayIndentGuides=t,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var t=this.session.getTabSize();this.tabSize=t;for(var e=this.$tabStrings=[0],n=1;n<t+1;n++)this.showInvisibles?e.push("<span class='ace_invisible ace_invisible_tab'>"+d.stringRepeat(this.TAB_CHAR,n)+"</span>"):e.push(d.stringRepeat(" ",n));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var i="ace_indent-guide",r="",o="";if(this.showInvisibles){i+=" ace_invisible",r=" ace_invisible_space",o=" ace_invisible_tab";var u=d.stringRepeat(this.SPACE_CHAR,this.tabSize),f=d.stringRepeat(this.TAB_CHAR,this.tabSize)}else var u=d.stringRepeat(" ",this.tabSize),f=u;this.$tabStrings[" "]="<span class='"+i+r+"'>"+u+"</span>",this.$tabStrings[" "]="<span class='"+i+o+"'>"+f+"</span>"}},this.updateLines=function(t,e,n){(this.config.lastRow!=t.lastRow||this.config.firstRow!=t.firstRow)&&this.scrollLines(t),this.config=t;for(var i=Math.max(e,t.firstRow),r=Math.min(n,t.lastRow),o=this.element.childNodes,u=0,f=t.firstRow;f<i;f++){var v=this.session.getFoldLine(f);if(v)if(v.containsRow(i)){i=v.start.row;break}else f=v.end.row;u++}for(var f=i,v=this.session.getNextFoldLine(f),w=v?v.start.row:1/0;f>w&&(f=v.end.row+1,v=this.session.getNextFoldLine(f,v),w=v?v.start.row:1/0),!(f>r);){var c=o[u++];if(c){var m=[];this.$renderLine(m,f,!this.$useLineGroups(),f==w?v:!1),c.style.height=t.lineHeight*this.session.getRowLength(f)+"px",c.innerHTML=m.join("")}f++}},this.scrollLines=function(t){var e=this.config;if(this.config=t,!e||e.lastRow<t.firstRow)return this.update(t);if(t.lastRow<e.firstRow)return this.update(t);var n=this.element;if(e.firstRow<t.firstRow)for(var i=this.session.getFoldedRowCount(e.firstRow,t.firstRow-1);i>0;i--)n.removeChild(n.firstChild);if(e.lastRow>t.lastRow)for(var i=this.session.getFoldedRowCount(t.lastRow+1,e.lastRow);i>0;i--)n.removeChild(n.lastChild);if(t.firstRow<e.firstRow){var r=this.$renderLinesFragment(t,t.firstRow,e.firstRow-1);n.firstChild?n.insertBefore(r,n.firstChild):n.appendChild(r)}if(t.lastRow>e.lastRow){var r=this.$renderLinesFragment(t,e.lastRow+1,t.lastRow);n.appendChild(r)}},this.$renderLinesFragment=function(t,e,n){for(var i=this.element.ownerDocument.createDocumentFragment(),r=e,o=this.session.getNextFoldLine(r),u=o?o.start.row:1/0;r>u&&(r=o.end.row+1,o=this.session.getNextFoldLine(r,o),u=o?o.start.row:1/0),!(r>n);){var f=C.createElement("div"),v=[];if(this.$renderLine(v,r,!1,r==u?o:!1),f.innerHTML=v.join(""),this.$useLineGroups())f.className="ace_line_group",i.appendChild(f),f.style.height=t.lineHeight*this.session.getRowLength(r)+"px";else for(;f.firstChild;)i.appendChild(f.firstChild);r++}return i},this.update=function(t){this.config=t;for(var e=[],n=t.firstRow,i=t.lastRow,r=n,o=this.session.getNextFoldLine(r),u=o?o.start.row:1/0;r>u&&(r=o.end.row+1,o=this.session.getNextFoldLine(r,o),u=o?o.start.row:1/0),!(r>i);)this.$useLineGroups()&&e.push("<div class='ace_line_group' style='height:",t.lineHeight*this.session.getRowLength(r),"px'>"),this.$renderLine(e,r,!1,r==u?o:!1),this.$useLineGroups()&&e.push("</div>"),r++;this.element.innerHTML=e.join("")},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(t,e,n,i){var r=this,o=/\t|&|<|>|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF\uFFF9-\uFFFC])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,u=function(c,m,l,g,A){if(m)return r.showInvisibles?"<span class='ace_invisible ace_invisible_space'>"+d.stringRepeat(r.SPACE_CHAR,c.length)+"</span>":c;if(c=="&")return"&";if(c=="<")return"<";if(c==">")return">";if(c==" "){var F=r.session.getScreenTabSize(e+g);return e+=F-1,r.$tabStrings[F]}else if(c=="\u3000"){var h=r.showInvisibles?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",p=r.showInvisibles?r.SPACE_CHAR:"";return e+=1,"<span class='"+h+"' style='width:"+r.config.characterWidth*2+"px'>"+p+"</span>"}else return l?"<span class='ace_invisible ace_invisible_space ace_invalid'>"+r.SPACE_CHAR+"</span>":(e+=1,"<span class='ace_cjk' style='width:"+r.config.characterWidth*2+"px'>"+c+"</span>")},f=i.replace(o,u);if(this.$textToken[n.type])t.push(f);else{var v="ace_"+n.type.replace(/\./g," ace_"),w="";n.type=="fold"&&(w=" style='width:"+n.value.length*this.config.characterWidth+"px;' "),t.push("<span class='",v,"'",w,">",f,"</span>")}return e+i.length},this.renderIndentGuide=function(t,e,n){var i=e.search(this.$indentGuideRe);return i<=0||i>=n?e:e[0]==" "?(i-=i%this.tabSize,t.push(d.stringRepeat(this.$tabStrings[" "],i/this.tabSize)),e.substr(i)):e[0]==" "?(t.push(d.stringRepeat(this.$tabStrings[" "],i)),e.substr(i)):e},this.$renderWrappedLine=function(t,e,n,i){for(var r=0,o=0,u=n[0],f=0,v=0;v<e.length;v++){var w=e[v],c=w.value;if(v==0&&this.displayIndentGuides){if(r=c.length,c=this.renderIndentGuide(t,c,u),!c)continue;r-=c.length}if(r+c.length<u)f=this.$renderToken(t,f,w,c),r+=c.length;else{for(;r+c.length>=u;)f=this.$renderToken(t,f,w,c.substring(0,u-r)),c=c.substring(u-r),r=u,i||t.push("</div>","<div class='ace_line' style='height:",this.config.lineHeight,"px'>"),t.push(d.stringRepeat("\xA0",n.indent)),o++,f=0,u=n[o]||Number.MAX_VALUE;c.length!=0&&(r+=c.length,f=this.$renderToken(t,f,w,c))}}},this.$renderSimpleLine=function(t,e){var n=0,i=e[0],r=i.value;this.displayIndentGuides&&(r=this.renderIndentGuide(t,r)),r&&(n=this.$renderToken(t,n,i,r));for(var o=1;o<e.length;o++)i=e[o],r=i.value,n=this.$renderToken(t,n,i,r)},this.$renderLine=function(t,e,n,i){if(!i&&i!=!1&&(i=this.session.getFoldLine(e)),i)var r=this.$getFoldLineTokens(e,i);else var r=this.session.getTokens(e);if(n||t.push("<div class='ace_line' style='height:",this.config.lineHeight*(this.$useLineGroups()?1:this.session.getRowLength(e)),"px'>"),r.length){var o=this.session.getRowSplitData(e);o&&o.length?this.$renderWrappedLine(t,r,o,n):this.$renderSimpleLine(t,r)}this.showInvisibles&&(i&&(e=i.end.row),t.push("<span class='ace_invisible ace_invisible_eol'>",e==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"</span>")),n||t.push("</div>")},this.$getFoldLineTokens=function(t,e){var n=this.session,i=[];function r(u,f,v){for(var w=0,c=0;c+u[w].value.length<f;)if(c+=u[w].value.length,w++,w==u.length)return;if(c!=f){var m=u[w].value.substring(f-c);m.length>v-f&&(m=m.substring(0,v-f)),i.push({type:u[w].type,value:m}),c=f+m.length,w+=1}for(;c<v&&w<u.length;){var m=u[w].value;m.length+c>v?i.push({type:u[w].type,value:m.substring(0,v-c)}):i.push(u[w]),c+=m.length,w+=1}}var o=n.getTokens(t);return e.walk(function(u,f,v,w,c){u!=null?i.push({type:"fold",value:u}):(c&&(o=n.getTokens(f)),o.length&&r(o,w,v))},e.end.row,this.session.getLine(e.end.row).length),i},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(s.prototype),E.Text=s});ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(B,E,K){var $=B("../lib/dom"),C,d=function(a){this.element=$.createElement("div"),this.element.className="ace_layer ace_cursor-layer",a.appendChild(this.element),C===void 0&&(C=!("opacity"in this.element.style)),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),$.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=(C?this.$updateVisibility:this.$updateOpacity).bind(this)};(function(){this.$updateVisibility=function(a){for(var s=this.cursors,t=s.length;t--;)s[t].style.visibility=a?"":"hidden"},this.$updateOpacity=function(a){for(var s=this.cursors,t=s.length;t--;)s[t].style.opacity=a?"":"0"},this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.setBlinking=function(a){a!=this.isBlinking&&(this.isBlinking=a,this.restartTimer())},this.setBlinkInterval=function(a){a!=this.blinkInterval&&(this.blinkInterval=a,this.restartTimer())},this.setSmoothBlinking=function(a){a!=this.smoothBlinking&&!C&&(this.smoothBlinking=a,$.setCssClass(this.element,"ace_smooth-blinking",a),this.$updateCursors(!0),this.$updateCursors=this.$updateOpacity.bind(this),this.restartTimer())},this.addCursor=function(){var a=$.createElement("div");return a.className="ace_cursor",this.element.appendChild(a),this.cursors.push(a),a},this.removeCursor=function(){if(this.cursors.length>1){var a=this.cursors.pop();return a.parentNode.removeChild(a),a}},this.hideCursor=function(){this.isVisible=!1,$.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,$.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var a=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&$.removeCssClass(this.element,"ace_smooth-blinking"),a(!0),!(!this.isBlinking||!this.blinkInterval||!this.isVisible)){this.smoothBlinking&&setTimeout(function(){$.addCssClass(this.element,"ace_smooth-blinking")}.bind(this));var s=function(){this.timeoutId=setTimeout(function(){a(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){a(!0),s()},this.blinkInterval),s()}},this.getPixelPosition=function(a,s){if(!this.config||!this.session)return{left:0,top:0};a||(a=this.session.selection.getCursor());var t=this.session.documentToScreenPosition(a),e=this.$padding+(this.session.$bidiHandler.isBidiRow(t.row,a.row)?this.session.$bidiHandler.getPosLeft(t.column):t.column*this.config.characterWidth),n=(t.row-(s?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:e,top:n}},this.update=function(a){this.config=a;var s=this.session.$selectionMarkers,t=0,e=0;(s===void 0||s.length===0)&&(s=[{cursor:null}]);for(var t=0,n=s.length;t<n;t++){var i=this.getPixelPosition(s[t].cursor,!0);if(!((i.top>a.height+a.offset||i.top<0)&&t>1)){var r=(this.cursors[e++]||this.addCursor()).style;this.drawCursor?this.drawCursor(r,i,a,s[t],this.session):(r.left=i.left+"px",r.top=i.top+"px",r.width=a.characterWidth+"px",r.height=a.lineHeight+"px")}}for(;this.cursors.length>e;)this.removeCursor();var o=this.session.getOverwrite();this.$setOverwrite(o),this.$pixelPos=i,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(a){a!=this.overwrite&&(this.overwrite=a,a?$.addCssClass(this.element,"ace_overwrite-cursors"):$.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(d.prototype),E.Cursor=d});ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(B,E,K){var $=B("./lib/oop"),C=B("./lib/dom"),d=B("./lib/event"),a=B("./lib/event_emitter").EventEmitter,s=32768,t=function(i){this.element=C.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=C.createElement("div"),this.inner.className="ace_scrollbar-inner",this.element.appendChild(this.inner),i.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,d.addListener(this.element,"scroll",this.onScroll.bind(this)),d.addListener(this.element,"mousedown",d.preventDefault)};(function(){$.implement(this,a),this.setVisible=function(i){this.element.style.display=i?"":"none",this.isVisible=i,this.coeff=1}}).call(t.prototype);var e=function(i,r){t.call(this,i),this.scrollTop=0,this.scrollHeight=0,r.$scrollbarWidth=this.width=C.scrollbarWidth(i.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px",this.$minWidth=0};$.inherits(e,t),function(){this.classSuffix="-v",this.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,this.coeff!=1){var i=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-i)/(this.coeff-i)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},this.setHeight=function(i){this.element.style.height=i+"px"},this.setInnerHeight=this.setScrollHeight=function(i){this.scrollHeight=i,i>s?(this.coeff=s/i,i=s):this.coeff!=1&&(this.coeff=1),this.inner.style.height=i+"px"},this.setScrollTop=function(i){this.scrollTop!=i&&(this.skipEvent=!0,this.scrollTop=i,this.element.scrollTop=i*this.coeff)}}.call(e.prototype);var n=function(i,r){t.call(this,i),this.scrollLeft=0,this.height=r.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};$.inherits(n,t),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(i){this.element.style.width=i+"px"},this.setInnerWidth=function(i){this.inner.style.width=i+"px"},this.setScrollWidth=function(i){this.inner.style.width=i+"px"},this.setScrollLeft=function(i){this.scrollLeft!=i&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=i)}}.call(n.prototype),E.ScrollBar=e,E.ScrollBarV=e,E.ScrollBarH=n,E.VScrollBar=e,E.HScrollBar=n});ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(B,E,K){var $=B("./lib/event"),C=function(d,a){this.onRender=d,this.pending=!1,this.changes=0,this.window=a||window};(function(){this.schedule=function(d){if(this.changes=this.changes|d,!this.pending&&this.changes){this.pending=!0;var a=this;$.nextFrame(function(){a.pending=!1;for(var s;s=a.changes;)a.changes=0,a.onRender(s)},this.window)}}}).call(C.prototype),E.RenderLoop=C});ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(B,E,K){var $=B("../lib/oop"),C=B("../lib/dom"),d=B("../lib/lang"),a=B("../lib/useragent"),s=B("../lib/event_emitter").EventEmitter,t=0,e=E.FontMetrics=function(n){this.el=C.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=C.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=C.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),n.appendChild(this.el),t||this.$testFractionalRect(),this.$measureNode.innerHTML=d.stringRepeat("X",t),this.$characterSize={width:0,height:0},this.checkForSizeChanges()};(function(){$.implement(this,s),this.$characterSize={width:0,height:0},this.$testFractionalRect=function(){var n=C.createElement("div");this.$setMeasureNodeStyles(n.style),n.style.width="0.2px",document.documentElement.appendChild(n);var i=n.getBoundingClientRect().width;i>0&&i<1?t=50:t=100,n.parentNode.removeChild(n)},this.$setMeasureNodeStyles=function(n,i){n.width=n.height="auto",n.left=n.top="0px",n.visibility="hidden",n.position="absolute",n.whiteSpace="pre",a.isIE<8?n["font-family"]="inherit":n.font="inherit",n.overflow=i?"hidden":"visible"},this.checkForSizeChanges=function(){var n=this.$measureSizes();if(n&&(this.$characterSize.width!==n.width||this.$characterSize.height!==n.height)){this.$measureNode.style.fontWeight="bold";var i=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=n,this.charSizes=Object.create(null),this.allowBoldFonts=i&&i.width===n.width&&i.height===n.height,this._emit("changeCharacterSize",{data:n})}},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer)return this.$pollSizeChangesTimer;var n=this;return this.$pollSizeChangesTimer=setInterval(function(){n.checkForSizeChanges()},500)},this.setPolling=function(n){n?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(){if(t===50){var n=null;try{n=this.$measureNode.getBoundingClientRect()}catch{n={width:0,height:0}}var i={height:n.height,width:n.width/t}}else var i={height:this.$measureNode.clientHeight,width:this.$measureNode.clientWidth/t};return i.width===0||i.height===0?null:i},this.$measureCharWidth=function(n){this.$main.innerHTML=d.stringRepeat(n,t);var i=this.$main.getBoundingClientRect();return i.width/t},this.getCharacterWidth=function(n){var i=this.charSizes[n];return i===void 0&&(i=this.charSizes[n]=this.$measureCharWidth(n)/this.$characterSize.width),i},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)}}).call(e.prototype)});ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/lib/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter"],function(B,E,K){var $=B("./lib/oop"),C=B("./lib/dom"),d=B("./config"),a=B("./lib/useragent"),s=B("./layer/gutter").Gutter,t=B("./layer/marker").Marker,e=B("./layer/text").Text,n=B("./layer/cursor").Cursor,i=B("./scrollbar").HScrollBar,r=B("./scrollbar").VScrollBar,o=B("./renderloop").RenderLoop,u=B("./layer/font_metrics").FontMetrics,f=B("./lib/event_emitter").EventEmitter,v=`.ace_editor {position: relative;overflow: hidden;font: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;direction: ltr;text-align: left;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);}.ace_scroller {position: absolute;overflow: hidden;top: 0;bottom: 0;background-color: inherit;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;cursor: text;}.ace_content {position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;min-width: 100%;}.ace_dragging .ace_scroller:before{position: absolute;top: 0;left: 0;right: 0;bottom: 0;content: '';background: rgba(250, 250, 250, 0.01);z-index: 1000;}.ace_dragging.ace_dark .ace_scroller:before{background: rgba(0, 0, 0, 0.01);}.ace_selecting, .ace_selecting * {cursor: text !important;}.ace_gutter {position: absolute;overflow : hidden;width: auto;top: 0;bottom: 0;left: 0;cursor: default;z-index: 4;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;}.ace_gutter-active-line {position: absolute;left: 0;right: 0;}.ace_scroller.ace_scroll-left {box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;}.ace_gutter-cell {padding-left: 19px;padding-right: 6px;background-repeat: no-repeat;}.ace_gutter-cell.ace_error {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: 2px center;}.ace_gutter-cell.ace_warning {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");background-position: 2px center;}.ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");background-position: 2px center;}.ace_dark .ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");}.ace_scrollbar {position: absolute;right: 0;bottom: 0;z-index: 6;}.ace_scrollbar-inner {position: absolute;cursor: text;left: 0;top: 0;}.ace_scrollbar-v{overflow-x: hidden;overflow-y: scroll;top: 0;}.ace_scrollbar-h {overflow-x: scroll;overflow-y: hidden;left: 0;}.ace_print-margin {position: absolute;height: 100%;}.ace_text-input {position: absolute;z-index: 0;width: 0.5em;height: 1em;opacity: 0;background: transparent;-moz-appearance: none;appearance: none;border: none;resize: none;outline: none;overflow: hidden;font: inherit;padding: 0 1px;margin: 0 -1px;text-indent: -1em;-ms-user-select: text;-moz-user-select: text;-webkit-user-select: text;user-select: text;white-space: pre!important;}.ace_text-input.ace_composition {background: inherit;color: inherit;z-index: 1000;opacity: 1;text-indent: 0;}.ace_layer {z-index: 1;position: absolute;overflow: hidden;word-wrap: normal;white-space: pre;height: 100%;width: 100%;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;pointer-events: none;}.ace_gutter-layer {position: relative;width: auto;text-align: right;pointer-events: auto;}.ace_text-layer {font: inherit !important;}.ace_cjk {display: inline-block;text-align: center;}.ace_cursor-layer {z-index: 4;}.ace_cursor {z-index: 4;position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;border-left: 2px solid;transform: translatez(0);}.ace_multiselect .ace_cursor {border-left-width: 1px;}.ace_slim-cursors .ace_cursor {border-left-width: 1px;}.ace_overwrite-cursors .ace_cursor {border-left-width: 0;border-bottom: 1px solid;}.ace_hidden-cursors .ace_cursor {opacity: 0.2;}.ace_smooth-blinking .ace_cursor {-webkit-transition: opacity 0.18s;transition: opacity 0.18s;}.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {position: absolute;z-index: 3;}.ace_marker-layer .ace_selection {position: absolute;z-index: 5;}.ace_marker-layer .ace_bracket {position: absolute;z-index: 6;}.ace_marker-layer .ace_active-line {position: absolute;z-index: 2;}.ace_marker-layer .ace_selected-word {position: absolute;z-index: 4;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;}.ace_line .ace_fold {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;display: inline-block;height: 11px;margin-top: -2px;vertical-align: middle;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");background-repeat: no-repeat, repeat-x;background-position: center center, top left;color: transparent;border: 1px solid black;border-radius: 2px;cursor: pointer;pointer-events: auto;}.ace_dark .ace_fold {}.ace_fold:hover{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");}.ace_tooltip {background-color: #FFF;background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));border: 1px solid gray;border-radius: 1px;box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);color: black;max-width: 100%;padding: 3px 4px;position: fixed;z-index: 999999;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;cursor: default;white-space: pre;word-wrap: break-word;line-height: normal;font-style: normal;font-weight: normal;letter-spacing: normal;pointer-events: none;}.ace_folding-enabled > .ace_gutter-cell {padding-right: 13px;}.ace_fold-widget {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0 -12px 0 1px;display: none;width: 11px;vertical-align: top;background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: center;border-radius: 3px;border: 1px solid transparent;cursor: pointer;}.ace_folding-enabled .ace_fold-widget {display: inline-block; }.ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");}.ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");}.ace_fold-widget:hover {border: 1px solid rgba(0, 0, 0, 0.3);background-color: rgba(255, 255, 255, 0.2);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);}.ace_fold-widget:active {border: 1px solid rgba(0, 0, 0, 0.4);background-color: rgba(0, 0, 0, 0.05);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);}.ace_dark .ace_fold-widget {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");}.ace_dark .ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget:hover {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);background-color: rgba(255, 255, 255, 0.1);}.ace_dark .ace_fold-widget:active {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);}.ace_fold-widget.ace_invalid {background-color: #FFB4B4;border-color: #DE5555;}.ace_fade-fold-widgets .ace_fold-widget {-webkit-transition: opacity 0.4s ease 0.05s;transition: opacity 0.4s ease 0.05s;opacity: 0;}.ace_fade-fold-widgets:hover .ace_fold-widget {-webkit-transition: opacity 0.05s ease 0.05s;transition: opacity 0.05s ease 0.05s;opacity:1;}.ace_underline {text-decoration: underline;}.ace_bold {font-weight: bold;}.ace_nobold .ace_bold {font-weight: normal;}.ace_italic {font-style: italic;}.ace_error-marker {background-color: rgba(255, 0, 0,0.2);position: absolute;z-index: 9;}.ace_highlight-marker {background-color: rgba(255, 255, 0,0.2);position: absolute;z-index: 8;}.ace_br1 {border-top-left-radius : 3px;}.ace_br2 {border-top-right-radius : 3px;}.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}.ace_br4 {border-bottom-right-radius: 3px;}.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}.ace_br8 {border-bottom-left-radius : 3px;}.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_text-input-ios {position: absolute !important;top: -100000px !important;left: -100000px !important;}`;C.importCssString(v,"ace_editor.css");var w=function(c,m){var l=this;this.container=c||C.createElement("div"),this.$keepTextAreaAtCursor=!a.isOldIE,C.addCssClass(this.container,"ace_editor"),this.setTheme(m),this.$gutter=C.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=C.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=C.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new s(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new t(this.content);var g=this.$textLayer=new e(this.content);this.canvas=g.element,this.$markerFront=new t(this.content),this.$cursorLayer=new n(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new r(this.container,this),this.scrollBarH=new i(this.container,this),this.scrollBarV.addEventListener("scroll",function(A){l.$scrollAnimation||l.session.setScrollTop(A.data-l.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(A){l.$scrollAnimation||l.session.setScrollLeft(A.data-l.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new u(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.addEventListener("changeCharacterSize",function(A){l.updateCharacterSize(),l.onResize(!0,l.gutterWidth,l.$size.width,l.$size.height),l._signal("changeCharacterSize",A)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$loop=new o(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),d.resetOptions(this),d._emit("renderer",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,$.implement(this,f),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin()},this.setSession=function(c){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=c,c&&this.scrollMargin.top&&c.getScrollTop()<=0&&c.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(c),this.$markerBack.setSession(c),this.$markerFront.setSession(c),this.$gutterLayer.setSession(c),this.$textLayer.setSession(c),c&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},this.updateLines=function(c,m,l){if(m===void 0&&(m=1/0),this.$changedLines?(this.$changedLines.firstRow>c&&(this.$changedLines.firstRow=c),this.$changedLines.lastRow<m&&(this.$changedLines.lastRow=m)):this.$changedLines={firstRow:c,lastRow:m},this.$changedLines.lastRow<this.layerConfig.firstRow)if(l)this.$changedLines.lastRow=this.layerConfig.lastRow;else return;this.$changedLines.firstRow>this.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(c){c?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(c,m,l,g){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=c?1:0;var A=this.container;g||(g=A.clientHeight||A.scrollHeight),l||(l=A.clientWidth||A.scrollWidth);var F=this.$updateCachedSize(c,m,l,g);if(!this.$size.scrollerHeight||!l&&!g)return this.resizing=0;c&&(this.$gutterLayer.$padding=null),c?this.$renderChanges(F|this.$changes,!0):this.$loop.schedule(F|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null}},this.$updateCachedSize=function(c,m,l,g){g-=this.$extraHeight||0;var A=0,F=this.$size,h={width:F.width,height:F.height,scrollerHeight:F.scrollerHeight,scrollerWidth:F.scrollerWidth};return g&&(c||F.height!=g)&&(F.height=g,A|=this.CHANGE_SIZE,F.scrollerHeight=F.height,this.$horizScroll&&(F.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",A=A|this.CHANGE_SCROLL),l&&(c||F.width!=l)&&(A|=this.CHANGE_SIZE,F.width=l,m==null&&(m=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=m,this.scrollBarH.element.style.left=this.scroller.style.left=m+"px",F.scrollerWidth=Math.max(0,l-m-this.scrollBarV.getWidth()),this.scrollBarH.element.style.right=this.scroller.style.right=this.scrollBarV.getWidth()+"px",this.scroller.style.bottom=this.scrollBarH.getHeight()+"px",(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||c)&&(A|=this.CHANGE_FULL)),F.$dirty=!l||!g,A&&this._signal("resize",h),A},this.onGutterResize=function(){var c=this.$showGutter?this.$gutter.offsetWidth:0;c!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,c,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):(this.$computeLayerConfig(),this.$loop.schedule(this.CHANGE_MARKER))},this.adjustWrapLimit=function(){var c=this.$size.scrollerWidth-this.$padding*2,m=Math.floor(c/this.characterWidth);return this.session.adjustWrapLimit(m,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(c){this.setOption("animatedScroll",c)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(c){this.setOption("showInvisibles",c),this.session.$bidiHandler.setShowInvisibles(c)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(c){this.setOption("displayIndentGuides",c)},this.setShowPrintMargin=function(c){this.setOption("showPrintMargin",c)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(c){this.setOption("printMarginColumn",c)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(c){return this.setOption("showGutter",c)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(c){this.setOption("fadeFoldWidgets",c)},this.setHighlightGutterLine=function(c){this.setOption("highlightGutterLine",c)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updateGutterLineHighlight=function(){var c=this.$cursorLayer.$pixelPos,m=this.layerConfig.lineHeight;if(this.session.getUseWrapMode()){var l=this.session.selection.getCursor();l.column=0,c=this.$cursorLayer.getPixelPosition(l,!0),m*=this.session.getRowLength(l.row)}this.$gutterLineHighlight.style.top=c.top-this.layerConfig.offset+"px",this.$gutterLineHighlight.style.height=m+"px"},this.$updatePrintMargin=function(){if(!(!this.$showPrintMargin&&!this.$printMarginEl)){if(!this.$printMarginEl){var c=C.createElement("div");c.className="ace_layer ace_print-margin-layer",this.$printMarginEl=C.createElement("div"),this.$printMarginEl.className="ace_print-margin",c.appendChild(this.$printMarginEl),this.content.insertBefore(c,this.content.firstChild)}var m=this.$printMarginEl.style;m.left=this.characterWidth*this.$printMarginColumn+this.$padding+"px",m.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()}},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(!!this.$keepTextAreaAtCursor){var c=this.layerConfig,m=this.$cursorLayer.$pixelPos.top,l=this.$cursorLayer.$pixelPos.left;m-=c.offset;var g=this.textarea.style,A=this.lineHeight;if(m<0||m>c.height-A){g.top=g.left="0";return}var F=this.characterWidth;if(this.$composition){var h=this.textarea.value.replace(/^\x01+/,"");F*=this.session.$getStringScreenWidth(h)[0]+2,A+=2}l-=this.scrollLeft,l>this.$size.scrollerWidth-F&&(l=this.$size.scrollerWidth-F),l+=this.gutterWidth,g.height=A+"px",g.width=F+"px",g.left=Math.min(l,this.$size.scrollerWidth-F)+"px",g.top=Math.min(m,this.$size.height-A)+"px"}},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},this.getLastFullyVisibleRow=function(){var c=this.layerConfig,m=c.lastRow,l=this.session.documentToScreenRow(m,0)*c.lineHeight;return l-this.session.getScrollTop()>c.height-c.lineHeight?m-1:m},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(c){this.$padding=c,this.$textLayer.setPadding(c),this.$cursorLayer.setPadding(c),this.$markerFront.setPadding(c),this.$markerBack.setPadding(c),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(c,m,l,g){var A=this.scrollMargin;A.top=c|0,A.bottom=m|0,A.right=g|0,A.left=l|0,A.v=A.top+A.bottom,A.h=A.left+A.right,A.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-A.top),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(c){this.setOption("hScrollBarAlwaysVisible",c)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(c){this.setOption("vScrollBarAlwaysVisible",c)},this.$updateScrollBarV=function(){var c=this.layerConfig.maxHeight,m=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(c-=(m-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>c-m&&(c=this.scrollTop+m,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(c+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(c,m){if(this.$changes&&(c|=this.$changes,this.$changes=0),!this.session||!this.container.offsetWidth||this.$frozen||!c&&!m){this.$changes|=c;return}if(this.$size.$dirty)return this.$changes|=c,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender"),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var l=this.layerConfig;if(c&this.CHANGE_FULL||c&this.CHANGE_SIZE||c&this.CHANGE_TEXT||c&this.CHANGE_LINES||c&this.CHANGE_SCROLL||c&this.CHANGE_H_SCROLL){if(c|=this.$computeLayerConfig(),l.firstRow!=this.layerConfig.firstRow&&l.firstRowScreen==this.layerConfig.firstRowScreen){var g=this.scrollTop+(l.firstRow-this.layerConfig.firstRow)*this.lineHeight;g>0&&(this.scrollTop=g,c=c|this.CHANGE_SCROLL,c|=this.$computeLayerConfig())}l=this.layerConfig,this.$updateScrollBarV(),c&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),this.$gutterLayer.element.style.marginTop=-l.offset+"px",this.content.style.marginTop=-l.offset+"px",this.content.style.width=l.width+2*this.$padding+"px",this.content.style.height=l.minHeight+"px"}if(c&this.CHANGE_H_SCROLL&&(this.content.style.marginLeft=-this.scrollLeft+"px",this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left"),c&this.CHANGE_FULL){this.$textLayer.update(l),this.$showGutter&&this.$gutterLayer.update(l),this.$markerBack.update(l),this.$markerFront.update(l),this.$cursorLayer.update(l),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this._signal("afterRender");return}if(c&this.CHANGE_SCROLL){c&this.CHANGE_TEXT||c&this.CHANGE_LINES?this.$textLayer.update(l):this.$textLayer.scrollLines(l),this.$showGutter&&this.$gutterLayer.update(l),this.$markerBack.update(l),this.$markerFront.update(l),this.$cursorLayer.update(l),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this.$moveTextAreaToCursor(),this._signal("afterRender");return}c&this.CHANGE_TEXT?(this.$textLayer.update(l),this.$showGutter&&this.$gutterLayer.update(l)):c&this.CHANGE_LINES?(this.$updateLines()||c&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(l):(c&this.CHANGE_TEXT||c&this.CHANGE_GUTTER)&&this.$showGutter&&this.$gutterLayer.update(l),c&this.CHANGE_CURSOR&&(this.$cursorLayer.update(l),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),c&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(l),c&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(l),this._signal("afterRender")},this.$autosize=function(){var c=this.session.getScreenLength()*this.lineHeight,m=this.$maxLines*this.lineHeight,l=Math.min(m,Math.max((this.$minLines||1)*this.lineHeight,c))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(l+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&l>this.$maxPixelHeight&&(l=this.$maxPixelHeight);var g=c>m;if(l!=this.desiredHeight||this.$size.height!=this.desiredHeight||g!=this.$vScroll){g!=this.$vScroll&&(this.$vScroll=g,this.scrollBarV.setVisible(g));var A=this.container.clientWidth;this.container.style.height=l+"px",this.$updateCachedSize(!0,this.$gutterWidth,A,l),this.desiredHeight=l,this._signal("autosize")}},this.$computeLayerConfig=function(){var c=this.session,m=this.$size,l=m.height<=2*this.lineHeight,g=this.session.getScreenLength(),A=g*this.lineHeight,F=this.$getLongestLine(),h=!l&&(this.$hScrollBarAlwaysVisible||m.scrollerWidth-F-2*this.$padding<0),p=this.$horizScroll!==h;p&&(this.$horizScroll=h,this.scrollBarH.setVisible(h));var b=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var S=this.scrollTop%this.lineHeight,k=m.scrollerHeight+this.lineHeight,L=!this.$maxLines&&this.$scrollPastEnd?(m.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;A+=L;var D=this.scrollMargin;this.session.setScrollTop(Math.max(-D.top,Math.min(this.scrollTop,A-m.scrollerHeight+D.bottom))),this.session.setScrollLeft(Math.max(-D.left,Math.min(this.scrollLeft,F+2*this.$padding-m.scrollerWidth+D.right)));var O=!l&&(this.$vScrollBarAlwaysVisible||m.scrollerHeight-A+L<0||this.scrollTop>D.top),I=b!==O;I&&(this.$vScroll=O,this.scrollBarV.setVisible(O));var W=Math.ceil(k/this.lineHeight)-1,H=Math.max(0,Math.round((this.scrollTop-S)/this.lineHeight)),z=H+W,M,y,x=this.lineHeight;H=c.screenToDocumentRow(H,0);var R=c.getFoldLine(H);R&&(H=R.start.row),M=c.documentToScreenRow(H,0),y=c.getRowLength(H)*x,z=Math.min(c.screenToDocumentRow(z,0),c.getLength()-1),k=m.scrollerHeight+c.getRowLength(z)*x+y,S=this.scrollTop-M*x;var T=0;return this.layerConfig.width!=F&&(T=this.CHANGE_H_SCROLL),(p||I)&&(T=this.$updateCachedSize(!0,this.gutterWidth,m.width,m.height),this._signal("scrollbarVisibilityChanged"),I&&(F=this.$getLongestLine())),this.layerConfig={width:F,padding:this.$padding,firstRow:H,firstRowScreen:M,lastRow:z,lineHeight:x,characterWidth:this.characterWidth,minHeight:k,maxHeight:A,offset:S,gutterOffset:x?Math.max(0,Math.ceil((S+m.height-m.scrollerHeight)/x)):0,height:this.$size.scrollerHeight},T},this.$updateLines=function(){if(!!this.$changedLines){var c=this.$changedLines.firstRow,m=this.$changedLines.lastRow;this.$changedLines=null;var l=this.layerConfig;if(!(c>l.lastRow+1)&&!(m<l.firstRow)){if(m===1/0){this.$showGutter&&this.$gutterLayer.update(l),this.$textLayer.update(l);return}return this.$textLayer.updateLines(l,c,m),!0}}},this.$getLongestLine=function(){var c=this.session.getScreenWidth();return this.showInvisibles&&!this.session.$useWrapMode&&(c+=1),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(c*this.characterWidth))},this.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},this.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},this.addGutterDecoration=function(c,m){this.$gutterLayer.addGutterDecoration(c,m)},this.removeGutterDecoration=function(c,m){this.$gutterLayer.removeGutterDecoration(c,m)},this.updateBreakpoints=function(c){this.$loop.schedule(this.CHANGE_GUTTER)},this.setAnnotations=function(c){this.$gutterLayer.setAnnotations(c),this.$loop.schedule(this.CHANGE_GUTTER)},this.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},this.hideCursor=function(){this.$cursorLayer.hideCursor()},this.showCursor=function(){this.$cursorLayer.showCursor()},this.scrollSelectionIntoView=function(c,m,l){this.scrollCursorIntoView(c,l),this.scrollCursorIntoView(m,l)},this.scrollCursorIntoView=function(c,m,l){if(this.$size.scrollerHeight!==0){var g=this.$cursorLayer.getPixelPosition(c),A=g.left,F=g.top,h=l&&l.top||0,p=l&&l.bottom||0,b=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;b+h>F?(m&&b+h>F+this.lineHeight&&(F-=m*this.$size.scrollerHeight),F===0&&(F=-this.scrollMargin.top),this.session.setScrollTop(F)):b+this.$size.scrollerHeight-p<F+this.lineHeight&&(m&&b+this.$size.scrollerHeight-p<F-this.lineHeight&&(F+=m*this.$size.scrollerHeight),this.session.setScrollTop(F+this.lineHeight-this.$size.scrollerHeight));var S=this.scrollLeft;S>A?(A<this.$padding+2*this.layerConfig.characterWidth&&(A=-this.scrollMargin.left),this.session.setScrollLeft(A)):S+this.$size.scrollerWidth<A+this.characterWidth?this.session.setScrollLeft(Math.round(A+this.characterWidth-this.$size.scrollerWidth)):S<=this.$padding&&A-S<this.characterWidth&&this.session.setScrollLeft(0)}},this.getScrollTop=function(){return this.session.getScrollTop()},this.getScrollLeft=function(){return this.session.getScrollLeft()},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},this.scrollToRow=function(c){this.session.setScrollTop(c*this.lineHeight)},this.alignCursor=function(c,m){typeof c=="number"&&(c={row:c,column:0});var l=this.$cursorLayer.getPixelPosition(c),g=this.$size.scrollerHeight-this.lineHeight,A=l.top-g*(m||0);return this.session.setScrollTop(A),A},this.STEPS=8,this.$calcSteps=function(c,m){var l=0,g=this.STEPS,A=[],F=function(h,p,b){return b*(Math.pow(h-1,3)+1)+p};for(l=0;l<g;++l)A.push(F(l/this.STEPS,c,m-c));return A},this.scrollToLine=function(c,m,l,g){var A=this.$cursorLayer.getPixelPosition({row:c,column:0}),F=A.top;m&&(F-=this.$size.scrollerHeight/2);var h=this.scrollTop;this.session.setScrollTop(F),l!==!1&&this.animateScrolling(h,g)},this.animateScrolling=function(c,m){var l=this.scrollTop;if(!!this.$animatedScroll){var g=this;if(c!=l){if(this.$scrollAnimation){var A=this.$scrollAnimation.steps;if(A.length&&(c=A[0],c==l))return}var F=g.$calcSteps(c,l);this.$scrollAnimation={from:c,to:l,steps:F},clearInterval(this.$timer),g.session.setScrollTop(F.shift()),g.session.$scrollTop=l,this.$timer=setInterval(function(){F.length?(g.session.setScrollTop(F.shift()),g.session.$scrollTop=l):l!=null?(g.session.$scrollTop=-1,g.session.setScrollTop(l),l=null):(g.$timer=clearInterval(g.$timer),g.$scrollAnimation=null,m&&m())},10)}}},this.scrollToY=function(c){this.scrollTop!==c&&(this.$loop.schedule(this.CHANGE_SCROLL),this.scrollTop=c)},this.scrollToX=function(c){this.scrollLeft!==c&&(this.scrollLeft=c),this.$loop.schedule(this.CHANGE_H_SCROLL)},this.scrollTo=function(c,m){this.session.setScrollTop(m),this.session.setScrollLeft(m)},this.scrollBy=function(c,m){m&&this.session.setScrollTop(this.session.getScrollTop()+m),c&&this.session.setScrollLeft(this.session.getScrollLeft()+c)},this.isScrollableBy=function(c,m){if(m<0&&this.session.getScrollTop()>=1-this.scrollMargin.top||m>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||c<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||c>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},this.pixelToScreenCoordinates=function(c,m){var l=this.scroller.getBoundingClientRect(),g=c+this.scrollLeft-l.left-this.$padding,A=g/this.characterWidth,F=Math.floor((m+this.scrollTop-l.top)/this.lineHeight),h=Math.round(A);return{row:F,column:h,side:A-h>0?1:-1,offsetX:g}},this.screenToTextCoordinates=function(c,m){var l=this.scroller.getBoundingClientRect(),g=c+this.scrollLeft-l.left-this.$padding,A=Math.round(g/this.characterWidth),F=(m+this.scrollTop-l.top)/this.lineHeight;return this.session.screenToDocumentPosition(F,Math.max(A,0),g)},this.textToScreenCoordinates=function(c,m){var l=this.scroller.getBoundingClientRect(),g=this.session.documentToScreenPosition(c,m),A=this.$padding+(this.session.$bidiHandler.isBidiRow(g.row,c)?this.session.$bidiHandler.getPosLeft(g.column):Math.round(g.column*this.characterWidth)),F=g.row*this.lineHeight;return{pageX:l.left+A-this.scrollLeft,pageY:l.top+F-this.scrollTop}},this.visualizeFocus=function(){C.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){C.removeCssClass(this.container,"ace_focus")},this.showComposition=function(c){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,C.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor()},this.setCompositionText=function(c){this.$moveTextAreaToCursor()},this.hideComposition=function(){!this.$composition||(C.removeCssClass(this.textarea,"ace_composition"),this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor,this.textarea.style.cssText=this.$composition.cssText,this.$composition=null)},this.setTheme=function(c,m){var l=this;if(this.$themeId=c,l._dispatchEvent("themeChange",{theme:c}),!c||typeof c=="string"){var g=c||this.$options.theme.initialValue;d.loadModule(["theme",g],A)}else A(c);function A(F){if(l.$themeId!=c)return m&&m();if(!F||!F.cssClass)throw new Error("couldn't load module "+c+" or it didn't call define");C.importCssString(F.cssText,F.cssClass,l.container.ownerDocument),l.theme&&C.removeCssClass(l.container,l.theme.cssClass);var h="padding"in F?F.padding:"padding"in(l.theme||{})?4:l.$padding;l.$padding&&h!=l.$padding&&l.setPadding(h),l.$theme=F.cssClass,l.theme=F,C.addCssClass(l.container,F.cssClass),C.setCssClass(l.container,"ace_dark",F.isDark),l.$size&&(l.$size.width=0,l.$updateSizeAsync()),l._dispatchEvent("themeLoaded",{theme:F}),m&&m()}},this.getTheme=function(){return this.$themeId},this.setStyle=function(c,m){C.setCssClass(this.container,c,m!==!1)},this.unsetStyle=function(c){C.removeCssClass(this.container,c)},this.setCursorStyle=function(c){this.scroller.style.cursor!=c&&(this.scroller.style.cursor=c)},this.setMouseCursor=function(c){this.scroller.style.cursor=c},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(w.prototype),d.defineOptions(w.prototype,"renderer",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(c){this.$textLayer.setShowInvisibles(c)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(c){typeof c=="number"&&(this.$printMarginColumn=c),this.$showPrintMargin=!!c,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(c){this.$gutter.style.display=c?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(c){C.setCssClass(this.$gutter,"ace_fade-fold-widgets",c)},initialValue:!1},showFoldWidgets:{set:function(c){this.$gutterLayer.setShowFoldWidgets(c)},initialValue:!0},showLineNumbers:{set:function(c){this.$gutterLayer.setShowLineNumbers(c),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(c){this.$textLayer.setDisplayIndentGuides(c)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(c){if(!this.$gutterLineHighlight){this.$gutterLineHighlight=C.createElement("div"),this.$gutterLineHighlight.className="ace_gutter-active-line",this.$gutter.appendChild(this.$gutterLineHighlight);return}this.$gutterLineHighlight.style.display=c?"":"none",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight()},initialValue:!1,value:!0},hScrollBarAlwaysVisible:{set:function(c){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(c){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(c){typeof c=="number"&&(c=c+"px"),this.container.style.fontSize=c,this.updateFontSize()},initialValue:12},fontFamily:{set:function(c){this.container.style.fontFamily=c,this.updateFontSize()}},maxLines:{set:function(c){this.updateFull()}},minLines:{set:function(c){this.updateFull()}},maxPixelHeight:{set:function(c){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(c){c=+c||0,this.$scrollPastEnd!=c&&(this.$scrollPastEnd=c,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(c){this.$gutterLayer.$fixedWidth=!!c,this.$loop.schedule(this.CHANGE_GUTTER)}},theme:{set:function(c){this.setTheme(c)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0}}),E.VirtualRenderer=w});ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(B,E,K){var $=B("../lib/oop"),C=B("../lib/net"),d=B("../lib/event_emitter").EventEmitter,a=B("../config");function s(i,r){var o=r.src;""+C.qualifyURL(i);try{return new Blob([o],{type:"application/javascript"})}catch{var u=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,f=new u;return f.append(o),f.getBlob("application/javascript")}}function t(i,r){var o=s(i,r),u=window.URL||window.webkitURL,f=u.createObjectURL(o);return new Worker(f)}var e=function(i,r,o,u,f){if(this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),B.nameToUrl&&!B.toUrl&&(B.toUrl=B.nameToUrl),a.get("packaged")||!B.toUrl)u=u||a.moduleUrl(r.id,"worker");else{var v=this.$normalizePath;u=u||v(B.toUrl("ace/worker/worker.js",null,"_"));var w={};i.forEach(function(c){w[c]=v(B.toUrl(c,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}this.$worker=t(u,r),f&&this.send("importScripts",f),this.$worker.postMessage({init:!0,tlns:w,module:r.id,classname:o}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){$.implement(this,d),this.onMessage=function(i){var r=i.data;switch(r.type){case"event":this._signal(r.name,{data:r.data});break;case"call":var o=this.callbacks[r.id];o&&(o(r.data),delete this.callbacks[r.id]);break;case"error":this.reportError(r.data);break;case"log":window.console&&console.log&&console.log.apply(console,r.data);break}},this.reportError=function(i){window.console&&console.error&&console.error(i)},this.$normalizePath=function(i){return C.qualifyURL(i)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(i,r){this.$worker.postMessage({command:i,args:r})},this.call=function(i,r,o){if(o){var u=this.callbackId++;this.callbacks[u]=o,r.push(u)}this.send(i,r)},this.emit=function(i,r){try{this.$worker.postMessage({event:i,data:{data:r.data}})}catch(o){console.error(o.stack)}},this.attachToDocument=function(i){this.$doc&&this.terminate(),this.$doc=i,this.call("setValue",[i.getValue()]),i.on("change",this.changeListener)},this.changeListener=function(i){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),i.action=="insert"?this.deltaQueue.push(i.start,i.lines):this.deltaQueue.push(i.start,i.end)},this.$sendDeltaQueue=function(){var i=this.deltaQueue;!i||(this.deltaQueue=null,i.length>50&&i.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:i}))}}).call(e.prototype);var n=function(i,r,o){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var u=null,f=!1,v=Object.create(d),w=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(m){w.messageBuffer.push(m),u&&(f?setTimeout(c):c())},this.setEmitSync=function(m){f=m};var c=function(){var m=w.messageBuffer.shift();m.command?u[m.command].apply(u,m.args):m.event&&v._signal(m.event,m.data)};v.postMessage=function(m){w.onMessage({data:m})},v.callback=function(m,l){this.postMessage({type:"call",id:l,data:m})},v.emit=function(m,l){this.postMessage({type:"event",name:m,data:l})},a.loadModule(["worker",r],function(m){for(u=new m[o](v);w.messageBuffer.length;)c()})};n.prototype=e.prototype,E.UIWorkerClient=n,E.WorkerClient=e,E.createWorker=t});ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(B,E,K){var $=B("./range").Range,C=B("./lib/event_emitter").EventEmitter,d=B("./lib/oop"),a=function(s,t,e,n,i,r){var o=this;this.length=t,this.session=s,this.doc=s.getDocument(),this.mainClass=i,this.othersClass=r,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=n,this.$onCursorChange=function(){setTimeout(function(){o.onCursorChange()})},this.$pos=e;var u=s.getUndoManager().$undoStack||s.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=u.length,this.setup(),s.selection.on("changeCursor",this.$onCursorChange)};(function(){d.implement(this,C),this.setup=function(){var s=this,t=this.doc,e=this.session;this.selectionBefore=e.selection.toJSON(),e.selection.inMultiSelectMode&&e.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var n=this.pos;n.$insertRight=!0,n.detach(),n.markerId=e.addMarker(new $(n.row,n.column,n.row,n.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(i){var r=t.createAnchor(i.row,i.column);r.$insertRight=!0,r.detach(),s.others.push(r)}),e.setUndoSelect(!1)},this.showOtherMarkers=function(){if(!this.othersActive){var s=this.session,t=this;this.othersActive=!0,this.others.forEach(function(e){e.markerId=s.addMarker(new $(e.row,e.column,e.row,e.column+t.length),t.othersClass,null,!1)})}},this.hideOtherMarkers=function(){if(!!this.othersActive){this.othersActive=!1;for(var s=0;s<this.others.length;s++)this.session.removeMarker(this.others[s].markerId)}},this.onUpdate=function(s){if(this.$updating)return this.updateAnchors(s);var t=s;if(t.start.row===t.end.row&&t.start.row===this.pos.row){this.$updating=!0;var e=s.action==="insert"?t.end.column-t.start.column:t.start.column-t.end.column,n=t.start.column>=this.pos.column&&t.start.column<=this.pos.column+this.length+1,i=t.start.column-this.pos.column;if(this.updateAnchors(s),n&&(this.length+=e),n&&!this.session.$fromUndo){if(s.action==="insert")for(var r=this.others.length-1;r>=0;r--){var o=this.others[r],u={row:o.row,column:o.column+i};this.doc.insertMergedLines(u,s.lines)}else if(s.action==="remove")for(var r=this.others.length-1;r>=0;r--){var o=this.others[r],u={row:o.row,column:o.column+i};this.doc.remove(new $(u.row,u.column,u.row,u.column-e))}}this.$updating=!1,this.updateMarkers()}},this.updateAnchors=function(s){this.pos.onChange(s);for(var t=this.others.length;t--;)this.others[t].onChange(s);this.updateMarkers()},this.updateMarkers=function(){if(!this.$updating){var s=this,t=this.session,e=function(i,r){t.removeMarker(i.markerId),i.markerId=t.addMarker(new $(i.row,i.column,i.row,i.column+s.length),r,null,!1)};e(this.pos,this.mainClass);for(var n=this.others.length;n--;)e(this.others[n],this.othersClass)}},this.onCursorChange=function(s){if(!(this.$updating||!this.session)){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",s)):(this.hideOtherMarkers(),this._emit("cursorLeave",s))}},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(this.$undoStackDepth!==-1){for(var s=this.session.getUndoManager(),t=(s.$undoStack||s.$undostack).length-this.$undoStackDepth,e=0;e<t;e++)s.undo(!0);this.selectionBefore&&this.session.selection.fromJSON(this.selectionBefore)}}}).call(a.prototype),E.PlaceHolder=a});ace.define("ace/mouse/multi_select_handler",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(B,E,K){var $=B("../lib/event"),C=B("../lib/useragent");function d(s,t){return s.row==t.row&&s.column==t.column}function a(s){var t=s.domEvent,e=t.altKey,n=t.shiftKey,i=t.ctrlKey,r=s.getAccelKey(),o=s.getButton();if(i&&C.isMac&&(o=t.button),s.editor.inMultiSelectMode&&o==2){s.editor.textInput.onContextMenu(s.domEvent);return}if(!i&&!e&&!r){o===0&&s.editor.inMultiSelectMode&&s.editor.exitMultiSelectMode();return}if(o===0){var u=s.editor,f=u.selection,v=u.inMultiSelectMode,w=s.getDocumentPosition(),c=f.getCursor(),m=s.inSelection()||f.isEmpty()&&d(w,c),l=s.x,g=s.y,A=function(z){l=z.clientX,g=z.clientY},F=u.session,h=u.renderer.pixelToScreenCoordinates(l,g),p=h,b;if(u.$mouseHandler.$enableJumpToDef)i&&e||r&&e?b=n?"block":"add":e&&u.$blockSelectEnabled&&(b="block");else if(r&&!e){if(b="add",!v&&n)return}else e&&u.$blockSelectEnabled&&(b="block");if(b&&C.isMac&&t.ctrlKey&&u.$mouseHandler.cancelContextMenu(),b=="add"){if(!v&&m)return;if(!v){var S=f.toOrientedRange();u.addSelectionMarker(S)}var k=f.rangeList.rangeAtPoint(w);u.$blockScrolling++,u.inVirtualSelectionMode=!0,n&&(k=null,S=f.ranges[0]||S,u.removeSelectionMarker(S)),u.once("mouseup",function(){var z=f.toOrientedRange();k&&z.isEmpty()&&d(k.cursor,z.cursor)?f.substractPoint(z.cursor):(n?f.substractPoint(S.cursor):S&&(u.removeSelectionMarker(S),f.addRange(S)),f.addRange(z)),u.$blockScrolling--,u.inVirtualSelectionMode=!1})}else if(b=="block"){s.stop(),u.inVirtualSelectionMode=!0;var L,D=[],O=function(){var z=u.renderer.pixelToScreenCoordinates(l,g),M=F.screenToDocumentPosition(z.row,z.column,z.offsetX);d(p,z)&&d(M,f.lead)||(p=z,u.$blockScrolling++,u.selection.moveToPosition(M),u.renderer.scrollCursorIntoView(),u.removeSelectionMarkers(D),D=f.rectangularRangeBlock(p,h),u.$mouseHandler.$clickSelection&&D.length==1&&D[0].isEmpty()&&(D[0]=u.$mouseHandler.$clickSelection.clone()),D.forEach(u.addSelectionMarker,u),u.updateSelectionMarkers(),u.$blockScrolling--)};u.$blockScrolling++,v&&!r?f.toSingleRange():!v&&r&&(L=f.toOrientedRange(),u.addSelectionMarker(L)),n?h=F.documentToScreenPosition(f.lead):f.moveToPosition(w),u.$blockScrolling--,p={row:-1,column:-1};var I=function(z){clearInterval(H),u.removeSelectionMarkers(D),D.length||(D=[f.toOrientedRange()]),u.$blockScrolling++,L&&(u.removeSelectionMarker(L),f.toSingleRange(L));for(var M=0;M<D.length;M++)f.addRange(D[M]);u.inVirtualSelectionMode=!1,u.$mouseHandler.$clickSelection=null,u.$blockScrolling--},W=O;$.capture(u.container,A,I);var H=setInterval(function(){W()},20);return s.preventDefault()}}}E.onMouseDown=a});ace.define("ace/commands/multi_select_commands",["require","exports","module","ace/keyboard/hash_handler"],function(B,E,K){E.defaultCommands=[{name:"addCursorAbove",exec:function(C){C.selectMoreLines(-1)},bindKey:{win:"Ctrl-Alt-Up",mac:"Ctrl-Alt-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelow",exec:function(C){C.selectMoreLines(1)},bindKey:{win:"Ctrl-Alt-Down",mac:"Ctrl-Alt-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorAboveSkipCurrent",exec:function(C){C.selectMoreLines(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Up",mac:"Ctrl-Alt-Shift-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelowSkipCurrent",exec:function(C){C.selectMoreLines(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Down",mac:"Ctrl-Alt-Shift-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreBefore",exec:function(C){C.selectMore(-1)},bindKey:{win:"Ctrl-Alt-Left",mac:"Ctrl-Alt-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreAfter",exec:function(C){C.selectMore(1)},bindKey:{win:"Ctrl-Alt-Right",mac:"Ctrl-Alt-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextBefore",exec:function(C){C.selectMore(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Left",mac:"Ctrl-Alt-Shift-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextAfter",exec:function(C){C.selectMore(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Right",mac:"Ctrl-Alt-Shift-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"splitIntoLines",exec:function(C){C.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"alignCursors",exec:function(C){C.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",exec:function(C){C.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],E.multiSelectCommands=[{name:"singleSelection",bindKey:"esc",exec:function(C){C.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(C){return C&&C.inMultiSelectMode}}];var $=B("../keyboard/hash_handler").HashHandler;E.keyboardHandler=new $(E.multiSelectCommands)});ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],function(B,E,K){var $=B("./range_list").RangeList,C=B("./range").Range,d=B("./selection").Selection,a=B("./mouse/multi_select_handler").onMouseDown,s=B("./lib/event"),t=B("./lib/lang"),e=B("./commands/multi_select_commands");E.commands=e.defaultCommands.concat(e.multiSelectCommands);var n=B("./search").Search,i=new n;function r(c,m,l){return i.$options.wrap=!0,i.$options.needle=m,i.$options.backwards=l==-1,i.find(c)}var o=B("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(o.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(c,m){if(!!c){if(!this.inMultiSelectMode&&this.rangeCount===0){var l=this.toOrientedRange();if(this.rangeList.add(l),this.rangeList.add(c),this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),m||this.fromOrientedRange(c);this.rangeList.removeAll(),this.rangeList.add(l),this.$onAddRange(l)}c.cursor||(c.cursor=c.end);var g=this.rangeList.add(c);return this.$onAddRange(c),g.length&&this.$onRemoveRange(g),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),m||this.fromOrientedRange(c)}},this.toSingleRange=function(c){c=c||this.ranges[0];var m=this.rangeList.removeAll();m.length&&this.$onRemoveRange(m),c&&this.fromOrientedRange(c)},this.substractPoint=function(c){var m=this.rangeList.substractPoint(c);if(m)return this.$onRemoveRange(m),m[0]},this.mergeOverlappingRanges=function(){var c=this.rangeList.merge();c.length?this.$onRemoveRange(c):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(c){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(c),this._signal("addRange",{range:c})},this.$onRemoveRange=function(c){if(this.rangeCount=this.rangeList.ranges.length,this.rangeCount==1&&this.inMultiSelectMode){var m=this.rangeList.ranges.pop();c.push(m),this.rangeCount=0}for(var l=c.length;l--;){var g=this.ranges.indexOf(c[l]);this.ranges.splice(g,1)}this._signal("removeRange",{ranges:c}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),m=m||this.ranges[0],m&&!m.isEqual(this.getRange())&&this.fromOrientedRange(m)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new $,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){if(this.rangeCount>1){var c=this.rangeList.ranges,m=c[c.length-1],l=C.fromPoints(c[0].start,m.end);this.toSingleRange(),this.setSelectionRange(l,m.cursor==m.start)}else{var l=this.getRange(),g=this.isBackwards(),A=l.start.row,F=l.end.row;if(A==F){if(g)var h=l.end,p=l.start;else var h=l.start,p=l.end;this.addRange(C.fromPoints(p,p)),this.addRange(C.fromPoints(h,h));return}var b=[],S=this.getLineRange(A,!0);S.start.column=l.start.column,b.push(S);for(var k=A+1;k<F;k++)b.push(this.getLineRange(k,!0));S=this.getLineRange(F,!0),S.end.column=l.end.column,b.push(S),b.forEach(this.addRange,this)}},this.toggleBlockSelection=function(){if(this.rangeCount>1){var c=this.rangeList.ranges,m=c[c.length-1],l=C.fromPoints(c[0].start,m.end);this.toSingleRange(),this.setSelectionRange(l,m.cursor==m.start)}else{var g=this.session.documentToScreenPosition(this.selectionLead),A=this.session.documentToScreenPosition(this.selectionAnchor),F=this.rectangularRangeBlock(g,A);F.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(c,m,l){var g=[],A=c.column<m.column;if(A)var F=c.column,h=m.column,p=c.offsetX,b=m.offsetX;else var F=m.column,h=c.column,p=m.offsetX,b=c.offsetX;var S=c.row<m.row;if(S)var k=c.row,L=m.row;else var k=m.row,L=c.row;F<0&&(F=0),k<0&&(k=0),k==L&&(l=!0);for(var D=k;D<=L;D++){var O=C.fromPoints(this.session.screenToDocumentPosition(D,F,p),this.session.screenToDocumentPosition(D,h,b));if(O.isEmpty()){if(I&&f(O.end,I))break;var I=O.end}O.cursor=A?O.start:O.end,g.push(O)}if(S&&g.reverse(),!l){for(var W=g.length-1;g[W].isEmpty()&&W>0;)W--;if(W>0)for(var H=0;g[H].isEmpty();)H++;for(var z=W;z>=H;z--)g[z].isEmpty()&&g.splice(z,1)}return g}}.call(d.prototype);var u=B("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(c){c.cursor||(c.cursor=c.end);var m=this.getSelectionStyle();return c.marker=this.session.addMarker(c,"ace_selection",m),this.session.$selectionMarkers.push(c),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,c},this.removeSelectionMarker=function(c){if(!!c.marker){this.session.removeMarker(c.marker);var m=this.session.$selectionMarkers.indexOf(c);m!=-1&&this.session.$selectionMarkers.splice(m,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(c){for(var m=this.session.$selectionMarkers,l=c.length;l--;){var g=c[l];if(!!g.marker){this.session.removeMarker(g.marker);var A=m.indexOf(g);A!=-1&&m.splice(A,1)}}this.session.selectionMarkerCount=m.length},this.$onAddRange=function(c){this.addSelectionMarker(c.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(c){this.removeSelectionMarkers(c.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(c){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(e.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(c){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(e.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(c){var m=c.command,l=c.editor;if(!!l.multiSelect){if(m.multiSelectAction)m.multiSelectAction=="forEach"?g=l.forEachSelection(m,c.args):m.multiSelectAction=="forEachLine"?g=l.forEachSelection(m,c.args,!0):m.multiSelectAction=="single"?(l.exitMultiSelectMode(),g=m.exec(l,c.args||{})):g=m.multiSelectAction(l,c.args||{});else{var g=m.exec(l,c.args||{});l.multiSelect.addRange(l.multiSelect.toOrientedRange()),l.multiSelect.mergeOverlappingRanges()}return g}},this.forEachSelection=function(c,m,l){if(!this.inVirtualSelectionMode){var g=l&&l.keepOrder,A=l==!0||l&&l.$byLines,F=this.session,h=this.selection,p=h.rangeList,b=(g?h:p).ranges,S;if(!b.length)return c.exec?c.exec(this,m||{}):c(this,m||{});var k=h._eventRegistry;h._eventRegistry={};var L=new d(F);this.inVirtualSelectionMode=!0;for(var D=b.length;D--;){if(A)for(;D>0&&b[D].start.row==b[D-1].end.row;)D--;L.fromOrientedRange(b[D]),L.index=D,this.selection=F.selection=L;var O=c.exec?c.exec(this,m||{}):c(this,m||{});!S&&O!==void 0&&(S=O),L.toOrientedRange(b[D])}L.detach(),this.selection=F.selection=h,this.inVirtualSelectionMode=!1,h._eventRegistry=k,h.mergeOverlappingRanges();var I=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),I&&I.from==I.to&&this.renderer.animateScrolling(I.from),S}},this.exitMultiSelectMode=function(){!this.inMultiSelectMode||this.inVirtualSelectionMode||this.multiSelect.toSingleRange()},this.getSelectedText=function(){var c="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var m=this.multiSelect.rangeList.ranges,l=[],g=0;g<m.length;g++)l.push(this.session.getTextRange(m[g]));var A=this.session.getDocument().getNewLineCharacter();c=l.join(A),c.length==(l.length-1)*A.length&&(c="")}else this.selection.isEmpty()||(c=this.session.getTextRange(this.getSelectionRange()));return c},this.$checkMultiselectChange=function(c,m){if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var l=this.multiSelect.ranges[0];if(this.multiSelect.isEmpty()&&m==this.multiSelect.anchor)return;var g=m==this.multiSelect.anchor?l.cursor==l.start?l.end:l.start:l.cursor;(g.row!=m.row||this.session.$clipPositionToDocument(g.row,g.column).column!=m.column)&&this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange())}},this.findAll=function(c,m,l){if(m=m||{},m.needle=c||m.needle,m.needle==null){var g=this.selection.isEmpty()?this.selection.getWordRange():this.selection.getRange();m.needle=this.session.getTextRange(g)}this.$search.set(m);var A=this.$search.findAll(this.session);if(!A.length)return 0;this.$blockScrolling+=1;var F=this.multiSelect;l||F.toSingleRange(A[0]);for(var h=A.length;h--;)F.addRange(A[h],!0);return g&&F.rangeList.rangeAtPoint(g.start)&&F.addRange(g,!0),this.$blockScrolling-=1,A.length},this.selectMoreLines=function(c,m){var l=this.selection.toOrientedRange(),g=l.cursor==l.end,A=this.session.documentToScreenPosition(l.cursor);this.selection.$desiredColumn&&(A.column=this.selection.$desiredColumn);var F=this.session.screenToDocumentPosition(A.row+c,A.column);if(l.isEmpty())var p=F;else var h=this.session.documentToScreenPosition(g?l.end:l.start),p=this.session.screenToDocumentPosition(h.row+c,h.column);if(g){var b=C.fromPoints(F,p);b.cursor=b.start}else{var b=C.fromPoints(p,F);b.cursor=b.end}if(b.desiredColumn=A.column,!this.selection.inMultiSelectMode)this.selection.addRange(l);else if(m)var S=l.cursor;this.selection.addRange(b),S&&this.selection.substractPoint(S)},this.transposeSelections=function(c){for(var m=this.session,l=m.multiSelect,g=l.ranges,A=g.length;A--;){var F=g[A];if(F.isEmpty()){var h=m.getWordRange(F.start.row,F.start.column);F.start.row=h.start.row,F.start.column=h.start.column,F.end.row=h.end.row,F.end.column=h.end.column}}l.mergeOverlappingRanges();for(var p=[],A=g.length;A--;){var F=g[A];p.unshift(m.getTextRange(F))}c<0?p.unshift(p.pop()):p.push(p.shift());for(var A=g.length;A--;){var F=g[A],h=F.clone();m.replace(F,p[A]),F.start.row=h.start.row,F.start.column=h.start.column}},this.selectMore=function(c,m,l){var g=this.session,A=g.multiSelect,F=A.toOrientedRange();if(!(F.isEmpty()&&(F=g.getWordRange(F.start.row,F.start.column),F.cursor=c==-1?F.start:F.end,this.multiSelect.addRange(F),l))){var h=g.getTextRange(F),p=r(g,h,c);p&&(p.cursor=c==-1?p.start:p.end,this.$blockScrolling+=1,this.session.unfold(p),this.multiSelect.addRange(p),this.$blockScrolling-=1,this.renderer.scrollCursorIntoView(null,.5)),m&&this.multiSelect.substractPoint(F.cursor)}},this.alignCursors=function(){var c=this.session,m=c.multiSelect,l=m.ranges,g=-1,A=l.filter(function(W){if(W.cursor.row==g)return!0;g=W.cursor.row});if(!l.length||A.length==l.length-1){var F=this.selection.getRange(),h=F.start.row,p=F.end.row,b=h==p;if(b){var S=this.session.getLength(),k;do k=this.session.getLine(p);while(/[=:]/.test(k)&&++p<S);do k=this.session.getLine(h);while(/[=:]/.test(k)&&--h>0);h<0&&(h=0),p>=S&&(p=S-1)}var L=this.session.removeFullLines(h,p);L=this.$reAlignText(L,b),this.session.insert({row:h,column:0},L.join(` +`)+` +`),b||(F.start.column=0,F.end.column=L[L.length-1].length),this.selection.setRange(F)}else{A.forEach(function(W){m.substractPoint(W.cursor)});var D=0,O=1/0,I=l.map(function(W){var H=W.cursor,z=c.getLine(H.row),M=z.substr(H.column).search(/\S/g);return M==-1&&(M=0),H.column>D&&(D=H.column),M<O&&(O=M),M});l.forEach(function(W,H){var z=W.cursor,M=D-z.column,y=I[H]-O;M>y?c.insert(z,t.stringRepeat(" ",M-y)):c.remove(new C(z.row,z.column,z.row,z.column-M+y)),W.start.column=W.end.column=D,W.start.row=W.end.row=z.row,W.cursor=W.end}),m.fromOrientedRange(l[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(c,m){var l=!0,g=!0,A,F,h;return c.map(function(L){var D=L.match(/(\s*)(.*?)(\s*)([=:].*)/);return D?A==null?(A=D[1].length,F=D[2].length,h=D[3].length,D):(A+F+h!=D[1].length+D[2].length+D[3].length&&(g=!1),A!=D[1].length&&(l=!1),A>D[1].length&&(A=D[1].length),F<D[2].length&&(F=D[2].length),h>D[3].length&&(h=D[3].length),D):[L]}).map(m?b:l?g?S:b:k);function p(L){return t.stringRepeat(" ",L)}function b(L){return L[2]?p(A)+L[2]+p(F-L[2].length+h)+L[4].replace(/^([=:])\s+/,"$1 "):L[0]}function S(L){return L[2]?p(A+F-L[2].length)+L[2]+p(h)+L[4].replace(/^([=:])\s+/,"$1 "):L[0]}function k(L){return L[2]?p(A)+L[2]+p(h)+L[4].replace(/^([=:])\s+/,"$1 "):L[0]}}}).call(u.prototype);function f(c,m){return c.row==m.row&&c.column==m.column}E.onSessionChange=function(c){var m=c.session;m&&!m.multiSelect&&(m.$selectionMarkers=[],m.selection.$initRangeList(),m.multiSelect=m.selection),this.multiSelect=m&&m.multiSelect;var l=c.oldSession;l&&(l.multiSelect.off("addRange",this.$onAddRange),l.multiSelect.off("removeRange",this.$onRemoveRange),l.multiSelect.off("multiSelect",this.$onMultiSelect),l.multiSelect.off("singleSelect",this.$onSingleSelect),l.multiSelect.lead.off("change",this.$checkMultiselectChange),l.multiSelect.anchor.off("change",this.$checkMultiselectChange)),m&&(m.multiSelect.on("addRange",this.$onAddRange),m.multiSelect.on("removeRange",this.$onRemoveRange),m.multiSelect.on("multiSelect",this.$onMultiSelect),m.multiSelect.on("singleSelect",this.$onSingleSelect),m.multiSelect.lead.on("change",this.$checkMultiselectChange),m.multiSelect.anchor.on("change",this.$checkMultiselectChange)),m&&this.inMultiSelectMode!=m.selection.inMultiSelectMode&&(m.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())};function v(c){c.$multiselectOnSessionChange||(c.$onAddRange=c.$onAddRange.bind(c),c.$onRemoveRange=c.$onRemoveRange.bind(c),c.$onMultiSelect=c.$onMultiSelect.bind(c),c.$onSingleSelect=c.$onSingleSelect.bind(c),c.$multiselectOnSessionChange=E.onSessionChange.bind(c),c.$checkMultiselectChange=c.$checkMultiselectChange.bind(c),c.$multiselectOnSessionChange(c),c.on("changeSession",c.$multiselectOnSessionChange),c.on("mousedown",a),c.commands.addCommands(e.defaultCommands),w(c))}function w(c){var m=c.textInput.getElement(),l=!1;s.addListener(m,"keydown",function(A){var F=A.keyCode==18&&!(A.ctrlKey||A.shiftKey||A.metaKey);c.$blockSelectEnabled&&F?l||(c.renderer.setMouseCursor("crosshair"),l=!0):l&&g()}),s.addListener(m,"keyup",g),s.addListener(m,"blur",g);function g(A){l&&(c.renderer.setMouseCursor(""),l=!1)}}E.MultiSelect=v,B("./config").defineOptions(u.prototype,"editor",{enableMultiselect:{set:function(c){v(this),c?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",a)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",a))},value:!0},enableBlockSelect:{set:function(c){this.$blockSelectEnabled=c},value:!0}})});ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(B,E,K){var $=B("../../range").Range,C=E.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(d,a,s){var t=d.getLine(s);return this.foldingStartMarker.test(t)?"start":a=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(t)?"end":""},this.getFoldWidgetRange=function(d,a,s){return null},this.indentationBlock=function(d,a,s){var t=/\S/,e=d.getLine(a),n=e.search(t);if(n!=-1){for(var i=s||e.length,r=d.getLength(),o=a,u=a;++a<r;){var f=d.getLine(a).search(t);if(f!=-1){if(f<=n)break;u=a}}if(u>o){var v=d.getLine(u).length;return new $(o,i,u,v)}}},this.openingBracketBlock=function(d,a,s,t,e){var n={row:s,column:t+1},i=d.$findClosingBracket(a,n,e);if(!!i){var r=d.foldWidgets[i.row];return r==null&&(r=d.getFoldWidget(i.row)),r=="start"&&i.row>n.row&&(i.row--,i.column=d.getLine(i.row).length),$.fromPoints(n,i)}},this.closingBracketBlock=function(d,a,s,t,e){var n={row:s,column:t},i=d.$findOpeningBracket(a,n);if(!!i)return i.column++,n.column--,$.fromPoints(i,n)}}).call(C.prototype)});ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(B,E,K){E.isDark=!1,E.cssClass="ace-tm",E.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}';var $=B("../lib/dom");$.importCssString(E.cssText,E.cssClass)});ace.define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"],function(B,E,K){B("./lib/oop");var $=B("./lib/dom");B("./range").Range;function C(d){this.session=d,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeFold",this.updateOnFold),this.session.on("changeEditor",this.$onChangeEditor)}(function(){this.getRowLength=function(d){var a;return this.lineWidgets?a=this.lineWidgets[d]&&this.lineWidgets[d].rowCount||0:a=0,!this.$useWrapMode||!this.$wrapData[d]?1+a:this.$wrapData[d].length+1+a},this.$getWidgetScreenLength=function(){var d=0;return this.lineWidgets.forEach(function(a){a&&a.rowCount&&!a.hidden&&(d+=a.rowCount)}),d},this.$onChangeEditor=function(d){this.attach(d.editor)},this.attach=function(d){d&&d.widgetManager&&d.widgetManager!=this&&d.widgetManager.detach(),this.editor!=d&&(this.detach(),this.editor=d,d&&(d.widgetManager=this,d.renderer.on("beforeRender",this.measureWidgets),d.renderer.on("afterRender",this.renderWidgets)))},this.detach=function(d){var a=this.editor;if(!!a){this.editor=null,a.widgetManager=null,a.renderer.off("beforeRender",this.measureWidgets),a.renderer.off("afterRender",this.renderWidgets);var s=this.session.lineWidgets;s&&s.forEach(function(t){t&&t.el&&t.el.parentNode&&(t._inDocument=!1,t.el.parentNode.removeChild(t.el))})}},this.updateOnFold=function(d,a){var s=a.lineWidgets;if(!(!s||!d.action)){for(var t=d.data,e=t.start.row,n=t.end.row,i=d.action=="add",r=e+1;r<n;r++)s[r]&&(s[r].hidden=i);s[n]&&(i?s[e]?s[n].hidden=i:s[e]=s[n]:(s[e]==s[n]&&(s[e]=void 0),s[n].hidden=i))}},this.updateOnChange=function(d){var a=this.session.lineWidgets;if(!!a){var s=d.start.row,t=d.end.row-s;if(t!==0)if(d.action=="remove"){var e=a.splice(s+1,t);e.forEach(function(i){i&&this.removeLineWidget(i)},this),this.$updateRows()}else{var n=new Array(t);n.unshift(s,0),a.splice.apply(a,n),this.$updateRows()}}},this.$updateRows=function(){var d=this.session.lineWidgets;if(!!d){var a=!0;d.forEach(function(s,t){if(s)for(a=!1,s.row=t;s.$oldWidget;)s.$oldWidget.row=t,s=s.$oldWidget}),a&&(this.session.lineWidgets=null)}},this.addLineWidget=function(d){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var a=this.session.lineWidgets[d.row];a&&(d.$oldWidget=a,a.el&&a.el.parentNode&&(a.el.parentNode.removeChild(a.el),a._inDocument=!1)),this.session.lineWidgets[d.row]=d,d.session=this.session;var s=this.editor.renderer;d.html&&!d.el&&(d.el=$.createElement("div"),d.el.innerHTML=d.html),d.el&&($.addCssClass(d.el,"ace_lineWidgetContainer"),d.el.style.position="absolute",d.el.style.zIndex=5,s.container.appendChild(d.el),d._inDocument=!0),d.coverGutter||(d.el.style.zIndex=3),d.pixelHeight==null&&(d.pixelHeight=d.el.offsetHeight),d.rowCount==null&&(d.rowCount=d.pixelHeight/s.layerConfig.lineHeight);var t=this.session.getFoldAt(d.row,0);if(d.$fold=t,t){var e=this.session.lineWidgets;d.row==t.end.row&&!e[t.start.row]?e[t.start.row]=d:d.hidden=!0}return this.session._emit("changeFold",{data:{start:{row:d.row}}}),this.$updateRows(),this.renderWidgets(null,s),this.onWidgetChanged(d),d},this.removeLineWidget=function(d){if(d._inDocument=!1,d.session=null,d.el&&d.el.parentNode&&d.el.parentNode.removeChild(d.el),d.editor&&d.editor.destroy)try{d.editor.destroy()}catch{}if(this.session.lineWidgets){var a=this.session.lineWidgets[d.row];if(a==d)this.session.lineWidgets[d.row]=d.$oldWidget,d.$oldWidget&&this.onWidgetChanged(d.$oldWidget);else for(;a;){if(a.$oldWidget==d){a.$oldWidget=d.$oldWidget;break}a=a.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:d.row}}}),this.$updateRows()},this.getWidgetsAtRow=function(d){for(var a=this.session.lineWidgets,s=a&&a[d],t=[];s;)t.push(s),s=s.$oldWidget;return t},this.onWidgetChanged=function(d){this.session._changedWidgets.push(d),this.editor&&this.editor.renderer.updateFull()},this.measureWidgets=function(d,a){var s=this.session._changedWidgets,t=a.layerConfig;if(!(!s||!s.length)){for(var e=1/0,n=0;n<s.length;n++){var i=s[n];if(!(!i||!i.el)&&i.session==this.session){if(!i._inDocument){if(this.session.lineWidgets[i.row]!=i)continue;i._inDocument=!0,a.container.appendChild(i.el)}i.h=i.el.offsetHeight,i.fixedWidth||(i.w=i.el.offsetWidth,i.screenWidth=Math.ceil(i.w/t.characterWidth));var r=i.h/t.lineHeight;i.coverLine&&(r-=this.session.getRowLineCount(i.row),r<0&&(r=0)),i.rowCount!=r&&(i.rowCount=r,i.row<e&&(e=i.row))}}e!=1/0&&(this.session._emit("changeFold",{data:{start:{row:e}}}),this.session.lineWidgetWidth=null),this.session._changedWidgets=[]}},this.renderWidgets=function(d,a){var s=a.layerConfig,t=this.session.lineWidgets;if(!!t){for(var e=Math.min(this.firstRow,s.firstRow),n=Math.max(this.lastRow,s.lastRow,t.length);e>0&&!t[e];)e--;this.firstRow=s.firstRow,this.lastRow=s.lastRow,a.$cursorLayer.config=s;for(var i=e;i<=n;i++){var r=t[i];if(!(!r||!r.el)){if(r.hidden){r.el.style.top=-100-(r.pixelHeight||0)+"px";continue}r._inDocument||(r._inDocument=!0,a.container.appendChild(r.el));var o=a.$cursorLayer.getPixelPosition({row:i,column:0},!0).top;r.coverLine||(o+=s.lineHeight*this.session.getRowLineCount(r.row)),r.el.style.top=o-s.offset+"px";var u=r.coverGutter?0:a.gutterWidth;r.fixedWidth||(u-=a.scrollLeft),r.el.style.left=u+"px",r.fullWidth&&r.screenWidth&&(r.el.style.minWidth=s.width+2*s.padding+"px"),r.fixedWidth?r.el.style.right=a.scrollBar.getWidth()+"px":r.el.style.right=""}}}}}).call(C.prototype),E.LineWidgets=C});ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],function(B,E,K){var $=B("../line_widgets").LineWidgets,C=B("../lib/dom"),d=B("../range").Range;function a(t,e,n){for(var i=0,r=t.length-1;i<=r;){var o=i+r>>1,u=n(e,t[o]);if(u>0)i=o+1;else if(u<0)r=o-1;else return o}return-(i+1)}function s(t,e,n){var i=t.getAnnotations().sort(d.comparePoints);if(!!i.length){var r=a(i,{row:e,column:-1},d.comparePoints);r<0&&(r=-r-1),r>=i.length?r=n>0?0:i.length-1:r===0&&n<0&&(r=i.length-1);var o=i[r];if(!(!o||!n)){if(o.row===e){do o=i[r+=n];while(o&&o.row===e);if(!o)return i.slice()}var u=[];e=o.row;do u[n<0?"unshift":"push"](o),o=i[r+=n];while(o&&o.row==e);return u.length&&u}}}E.showErrorMarker=function(t,e){var n=t.session;n.widgetManager||(n.widgetManager=new $(n),n.widgetManager.attach(t));var i=t.getCursorPosition(),r=i.row,o=n.widgetManager.getWidgetsAtRow(r).filter(function(A){return A.type=="errorMarker"})[0];o?o.destroy():r-=e;var u=s(n,r,e),f;if(u){var v=u[0];i.column=(v.pos&&typeof v.column!="number"?v.pos.sc:v.column)||0,i.row=v.row,f=t.renderer.$gutterLayer.$annotations[i.row]}else{if(o)return;f={text:["Looks good!"],className:"ace_ok"}}t.session.unfold(i.row),t.selection.moveToPosition(i);var w={row:i.row,fixedWidth:!0,coverGutter:!0,el:C.createElement("div"),type:"errorMarker"},c=w.el.appendChild(C.createElement("div")),m=w.el.appendChild(C.createElement("div"));m.className="error_widget_arrow "+f.className;var l=t.renderer.$cursorLayer.getPixelPosition(i).left;m.style.left=l+t.renderer.gutterWidth-5+"px",w.el.className="error_widget_wrapper",c.className="error_widget "+f.className,c.innerHTML=f.text.join("<br>"),c.appendChild(C.createElement("div"));var g=function(A,F,h){if(F===0&&(h==="esc"||h==="return"))return w.destroy(),{command:"null"}};w.destroy=function(){t.$mouseHandler.isMousePressed||(t.keyBinding.removeKeyboardHandler(g),n.widgetManager.removeLineWidget(w),t.off("changeSelection",w.destroy),t.off("changeSession",w.destroy),t.off("mouseup",w.destroy),t.off("change",w.destroy))},t.keyBinding.addKeyboardHandler(g),t.on("changeSelection",w.destroy),t.on("changeSession",w.destroy),t.on("mouseup",w.destroy),t.on("change",w.destroy),t.session.widgetManager.addLineWidget(w),w.el.onmousedown=t.focus.bind(t),t.renderer.scrollCursorIntoView(null,.5,{bottom:w.el.offsetHeight})},C.importCssString(" .error_widget_wrapper { background: inherit; color: inherit; border:none } .error_widget { border-top: solid 2px; border-bottom: solid 2px; margin: 5px 0; padding: 10px 40px; white-space: pre-wrap; } .error_widget.ace_error, .error_widget_arrow.ace_error{ border-color: #ff5a5a } .error_widget.ace_warning, .error_widget_arrow.ace_warning{ border-color: #F1D817 } .error_widget.ace_info, .error_widget_arrow.ace_info{ border-color: #5a5a5a } .error_widget.ace_ok, .error_widget_arrow.ace_ok{ border-color: #5aaa5a } .error_widget_arrow { position: absolute; border: solid 5px; border-top-color: transparent!important; border-right-color: transparent!important; border-left-color: transparent!important; top: -5px; }","")});ace.define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config"],function(B,E,K){B("./lib/fixoldbrowsers");var $=B("./lib/dom"),C=B("./lib/event"),d=B("./editor").Editor,a=B("./edit_session").EditSession,s=B("./undomanager").UndoManager,t=B("./virtual_renderer").VirtualRenderer;B("./worker/worker_client"),B("./keyboard/hash_handler"),B("./placeholder"),B("./multi_select"),B("./mode/folding/fold_mode"),B("./theme/textmate"),B("./ext/error_marker"),E.config=B("./config"),E.acequire=B,E.edit=function(e){if(typeof e=="string"){var n=e;if(e=document.getElementById(n),!e)throw new Error("ace.edit can't find div #"+n)}if(e&&e.env&&e.env.editor instanceof d)return e.env.editor;var i="";if(e&&/input|textarea/i.test(e.tagName)){var r=e;i=r.value,e=$.createElement("pre"),r.parentNode.replaceChild(e,r)}else e&&(i=$.getInnerText(e),e.innerHTML="");var o=E.createEditSession(i),u=new d(new t(e));u.setSession(o);var f={document:o,editor:u,onResize:u.resize.bind(u,null)};return r&&(f.textarea=r),C.addListener(window,"resize",f.onResize),u.on("destroy",function(){C.removeListener(window,"resize",f.onResize),f.editor.container.env=null}),u.container.env=u.env=f,u},E.createEditSession=function(e,n){var i=new a(e,n);return i.setUndoManager(new s),i},E.EditSession=a,E.UndoManager=s,E.version="1.2.9"});(function(){ace.acequire(["ace/ace"],function(B){B&&(B.config.init(!0),B.define=ace.define),window.ace||(window.ace=B);for(var E in B)B.hasOwnProperty(E)&&(window.ace[E]=B[E])})})();var ie=window.ace.acequire("ace/ace"),se=re({__proto__:null,default:ie},[ie]);export{se as i}; +//# sourceMappingURL=index.8ac52a74.js.map diff --git a/assets/index.8ac52a74.js.map b/assets/index.8ac52a74.js.map new file mode 100644 index 00000000..337696ab --- /dev/null +++ b/assets/index.8ac52a74.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.8ac52a74.js","sources":["../../node_modules/brace/index.js"],"sourcesContent":["/* ***** BEGIN LICENSE BLOCK *****\n * Distributed under the BSD license:\n *\n * Copyright (c) 2010, Ajax.org B.V.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n * * Neither the name of Ajax.org B.V. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * ***** END LICENSE BLOCK ***** */\n\n/**\n * Define a module along with a payload\n * @param module a name for the payload\n * @param payload a function to call with (acequire, exports, module) params\n */\n\n(function() {\n\nvar ACE_NAMESPACE = \"ace\";\n\nvar global = (function() { return this; })();\nif (!global && typeof window != \"undefined\") global = window; // strict mode\n\n\nif (!ACE_NAMESPACE && typeof acequirejs !== \"undefined\")\n return;\n\n\nvar define = function(module, deps, payload) {\n if (typeof module !== \"string\") {\n if (define.original)\n define.original.apply(this, arguments);\n else {\n console.error(\"dropping module because define wasn\\'t a string.\");\n console.trace();\n }\n return;\n }\n if (arguments.length == 2)\n payload = deps;\n if (!define.modules[module]) {\n define.payloads[module] = payload;\n define.modules[module] = null;\n }\n};\n\ndefine.modules = {};\ndefine.payloads = {};\n\n/**\n * Get at functionality define()ed using the function above\n */\nvar _acequire = function(parentId, module, callback) {\n if (typeof module === \"string\") {\n var payload = lookup(parentId, module);\n if (payload != undefined) {\n callback && callback();\n return payload;\n }\n } else if (Object.prototype.toString.call(module) === \"[object Array]\") {\n var params = [];\n for (var i = 0, l = module.length; i < l; ++i) {\n var dep = lookup(parentId, module[i]);\n if (dep == undefined && acequire.original)\n return;\n params.push(dep);\n }\n return callback && callback.apply(null, params) || true;\n }\n};\n\nvar acequire = function(module, callback) {\n var packagedModule = _acequire(\"\", module, callback);\n if (packagedModule == undefined && acequire.original)\n return acequire.original.apply(this, arguments);\n return packagedModule;\n};\n\nvar normalizeModule = function(parentId, moduleName) {\n // normalize plugin acequires\n if (moduleName.indexOf(\"!\") !== -1) {\n var chunks = moduleName.split(\"!\");\n return normalizeModule(parentId, chunks[0]) + \"!\" + normalizeModule(parentId, chunks[1]);\n }\n // normalize relative acequires\n if (moduleName.charAt(0) == \".\") {\n var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n moduleName = base + \"/\" + moduleName;\n\n while(moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n var previous = moduleName;\n moduleName = moduleName.replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n }\n }\n return moduleName;\n};\n\n/**\n * Internal function to lookup moduleNames and resolve them by calling the\n * definition function if needed.\n */\nvar lookup = function(parentId, moduleName) {\n moduleName = normalizeModule(parentId, moduleName);\n\n var module = define.modules[moduleName];\n if (!module) {\n module = define.payloads[moduleName];\n if (typeof module === 'function') {\n var exports = {};\n var mod = {\n id: moduleName,\n uri: '',\n exports: exports,\n packaged: true\n };\n\n var req = function(module, callback) {\n return _acequire(moduleName, module, callback);\n };\n\n var returnValue = module(req, exports, mod);\n exports = returnValue || mod.exports;\n define.modules[moduleName] = exports;\n delete define.payloads[moduleName];\n }\n module = define.modules[moduleName] = exports || module;\n }\n return module;\n};\n\nfunction exportAce(ns) {\n var root = global;\n if (ns) {\n if (!global[ns])\n global[ns] = {};\n root = global[ns];\n }\n\n if (!root.define || !root.define.packaged) {\n define.original = root.define;\n root.define = define;\n root.define.packaged = true;\n }\n\n if (!root.acequire || !root.acequire.packaged) {\n acequire.original = root.acequire;\n root.acequire = acequire;\n root.acequire.packaged = true;\n }\n}\n\nexportAce(ACE_NAMESPACE);\n\n})();\n\nace.define(\"ace/lib/regexp\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\n var real = {\n exec: RegExp.prototype.exec,\n test: RegExp.prototype.test,\n match: String.prototype.match,\n replace: String.prototype.replace,\n split: String.prototype.split\n },\n compliantExecNpcg = real.exec.call(/()??/, \"\")[1] === undefined, // check `exec` handling of nonparticipating capturing groups\n compliantLastIndexIncrement = function () {\n var x = /^/g;\n real.test.call(x, \"\");\n return !x.lastIndex;\n }();\n\n if (compliantLastIndexIncrement && compliantExecNpcg)\n return;\n RegExp.prototype.exec = function (str) {\n var match = real.exec.apply(this, arguments),\n name, r2;\n if ( typeof(str) == 'string' && match) {\n if (!compliantExecNpcg && match.length > 1 && indexOf(match, \"\") > -1) {\n r2 = RegExp(this.source, real.replace.call(getNativeFlags(this), \"g\", \"\"));\n real.replace.call(str.slice(match.index), r2, function () {\n for (var i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined)\n match[i] = undefined;\n }\n });\n }\n if (this._xregexp && this._xregexp.captureNames) {\n for (var i = 1; i < match.length; i++) {\n name = this._xregexp.captureNames[i - 1];\n if (name)\n match[name] = match[i];\n }\n }\n if (!compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index))\n this.lastIndex--;\n }\n return match;\n };\n if (!compliantLastIndexIncrement) {\n RegExp.prototype.test = function (str) {\n var match = real.exec.call(this, str);\n if (match && this.global && !match[0].length && (this.lastIndex > match.index))\n this.lastIndex--;\n return !!match;\n };\n }\n\n function getNativeFlags (regex) {\n return (regex.global ? \"g\" : \"\") +\n (regex.ignoreCase ? \"i\" : \"\") +\n (regex.multiline ? \"m\" : \"\") +\n (regex.extended ? \"x\" : \"\") + // Proposed for ES4; included in AS3\n (regex.sticky ? \"y\" : \"\");\n }\n\n function indexOf (array, item, from) {\n if (Array.prototype.indexOf) // Use the native array method if available\n return array.indexOf(item, from);\n for (var i = from || 0; i < array.length; i++) {\n if (array[i] === item)\n return i;\n }\n return -1;\n }\n\n});\n\nace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\nfunction Empty() {}\n\nif (!Function.prototype.bind) {\n Function.prototype.bind = function bind(that) { // .length is 1\n var target = this;\n if (typeof target != \"function\") {\n throw new TypeError(\"Function.prototype.bind called on incompatible \" + target);\n }\n var args = slice.call(arguments, 1); // for normal call\n var bound = function () {\n\n if (this instanceof bound) {\n\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n\n }\n\n };\n if(target.prototype) {\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n return bound;\n };\n}\nvar call = Function.prototype.call;\nvar prototypeOfArray = Array.prototype;\nvar prototypeOfObject = Object.prototype;\nvar slice = prototypeOfArray.slice;\nvar _toString = call.bind(prototypeOfObject.toString);\nvar owns = call.bind(prototypeOfObject.hasOwnProperty);\nvar defineGetter;\nvar defineSetter;\nvar lookupGetter;\nvar lookupSetter;\nvar supportsAccessors;\nif ((supportsAccessors = owns(prototypeOfObject, \"__defineGetter__\"))) {\n defineGetter = call.bind(prototypeOfObject.__defineGetter__);\n defineSetter = call.bind(prototypeOfObject.__defineSetter__);\n lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);\n lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);\n}\nif ([1,2].splice(0).length != 2) {\n if(function() { // test IE < 9 to splice bug - see issue #138\n function makeArray(l) {\n var a = new Array(l+2);\n a[0] = a[1] = 0;\n return a;\n }\n var array = [], lengthBefore;\n \n array.splice.apply(array, makeArray(20));\n array.splice.apply(array, makeArray(26));\n\n lengthBefore = array.length; //46\n array.splice(5, 0, \"XXX\"); // add one element\n\n lengthBefore + 1 == array.length\n\n if (lengthBefore + 1 == array.length) {\n return true;// has right splice implementation without bugs\n }\n }()) {//IE 6/7\n var array_splice = Array.prototype.splice;\n Array.prototype.splice = function(start, deleteCount) {\n if (!arguments.length) {\n return [];\n } else {\n return array_splice.apply(this, [\n start === void 0 ? 0 : start,\n deleteCount === void 0 ? (this.length - start) : deleteCount\n ].concat(slice.call(arguments, 2)))\n }\n };\n } else {//IE8\n Array.prototype.splice = function(pos, removeCount){\n var length = this.length;\n if (pos > 0) {\n if (pos > length)\n pos = length;\n } else if (pos == void 0) {\n pos = 0;\n } else if (pos < 0) {\n pos = Math.max(length + pos, 0);\n }\n\n if (!(pos+removeCount < length))\n removeCount = length - pos;\n\n var removed = this.slice(pos, pos+removeCount);\n var insert = slice.call(arguments, 2);\n var add = insert.length; \n if (pos === length) {\n if (add) {\n this.push.apply(this, insert);\n }\n } else {\n var remove = Math.min(removeCount, length - pos);\n var tailOldPos = pos + remove;\n var tailNewPos = tailOldPos + add - remove;\n var tailCount = length - tailOldPos;\n var lengthAfterRemove = length - remove;\n\n if (tailNewPos < tailOldPos) { // case A\n for (var i = 0; i < tailCount; ++i) {\n this[tailNewPos+i] = this[tailOldPos+i];\n }\n } else if (tailNewPos > tailOldPos) { // case B\n for (i = tailCount; i--; ) {\n this[tailNewPos+i] = this[tailOldPos+i];\n }\n } // else, add == remove (nothing to do)\n\n if (add && pos === lengthAfterRemove) {\n this.length = lengthAfterRemove; // truncate array\n this.push.apply(this, insert);\n } else {\n this.length = lengthAfterRemove + add; // reserves space\n for (i = 0; i < add; ++i) {\n this[pos+i] = insert[i];\n }\n }\n }\n return removed;\n };\n }\n}\nif (!Array.isArray) {\n Array.isArray = function isArray(obj) {\n return _toString(obj) == \"[object Array]\";\n };\n}\nvar boxedString = Object(\"a\"),\n splitString = boxedString[0] != \"a\" || !(0 in boxedString);\n\nif (!Array.prototype.forEach) {\n Array.prototype.forEach = function forEach(fun /*, thisp*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n thisp = arguments[1],\n i = -1,\n length = self.length >>> 0;\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(); // TODO message\n }\n\n while (++i < length) {\n if (i in self) {\n fun.call(thisp, self[i], i, object);\n }\n }\n };\n}\nif (!Array.prototype.map) {\n Array.prototype.map = function map(fun /*, thisp*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n result = Array(length),\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self)\n result[i] = fun.call(thisp, self[i], i, object);\n }\n return result;\n };\n}\nif (!Array.prototype.filter) {\n Array.prototype.filter = function filter(fun /*, thisp */) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n result = [],\n value,\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self) {\n value = self[i];\n if (fun.call(thisp, value, i, object)) {\n result.push(value);\n }\n }\n }\n return result;\n };\n}\nif (!Array.prototype.every) {\n Array.prototype.every = function every(fun /*, thisp */) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self && !fun.call(thisp, self[i], i, object)) {\n return false;\n }\n }\n return true;\n };\n}\nif (!Array.prototype.some) {\n Array.prototype.some = function some(fun /*, thisp */) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self && fun.call(thisp, self[i], i, object)) {\n return true;\n }\n }\n return false;\n };\n}\nif (!Array.prototype.reduce) {\n Array.prototype.reduce = function reduce(fun /*, initial*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0;\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n if (!length && arguments.length == 1) {\n throw new TypeError(\"reduce of empty array with no initial value\");\n }\n\n var i = 0;\n var result;\n if (arguments.length >= 2) {\n result = arguments[1];\n } else {\n do {\n if (i in self) {\n result = self[i++];\n break;\n }\n if (++i >= length) {\n throw new TypeError(\"reduce of empty array with no initial value\");\n }\n } while (true);\n }\n\n for (; i < length; i++) {\n if (i in self) {\n result = fun.call(void 0, result, self[i], i, object);\n }\n }\n\n return result;\n };\n}\nif (!Array.prototype.reduceRight) {\n Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0;\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n if (!length && arguments.length == 1) {\n throw new TypeError(\"reduceRight of empty array with no initial value\");\n }\n\n var result, i = length - 1;\n if (arguments.length >= 2) {\n result = arguments[1];\n } else {\n do {\n if (i in self) {\n result = self[i--];\n break;\n }\n if (--i < 0) {\n throw new TypeError(\"reduceRight of empty array with no initial value\");\n }\n } while (true);\n }\n\n do {\n if (i in this) {\n result = fun.call(void 0, result, self[i], i, object);\n }\n } while (i--);\n\n return result;\n };\n}\nif (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) {\n Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) {\n var self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n toObject(this),\n length = self.length >>> 0;\n\n if (!length) {\n return -1;\n }\n\n var i = 0;\n if (arguments.length > 1) {\n i = toInteger(arguments[1]);\n }\n i = i >= 0 ? i : Math.max(0, length + i);\n for (; i < length; i++) {\n if (i in self && self[i] === sought) {\n return i;\n }\n }\n return -1;\n };\n}\nif (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) {\n Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) {\n var self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n toObject(this),\n length = self.length >>> 0;\n\n if (!length) {\n return -1;\n }\n var i = length - 1;\n if (arguments.length > 1) {\n i = Math.min(i, toInteger(arguments[1]));\n }\n i = i >= 0 ? i : length - Math.abs(i);\n for (; i >= 0; i--) {\n if (i in self && sought === self[i]) {\n return i;\n }\n }\n return -1;\n };\n}\nif (!Object.getPrototypeOf) {\n Object.getPrototypeOf = function getPrototypeOf(object) {\n return object.__proto__ || (\n object.constructor ?\n object.constructor.prototype :\n prototypeOfObject\n );\n };\n}\nif (!Object.getOwnPropertyDescriptor) {\n var ERR_NON_OBJECT = \"Object.getOwnPropertyDescriptor called on a \" +\n \"non-object: \";\n Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {\n if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n throw new TypeError(ERR_NON_OBJECT + object);\n if (!owns(object, property))\n return;\n\n var descriptor, getter, setter;\n descriptor = { enumerable: true, configurable: true };\n if (supportsAccessors) {\n var prototype = object.__proto__;\n object.__proto__ = prototypeOfObject;\n\n var getter = lookupGetter(object, property);\n var setter = lookupSetter(object, property);\n object.__proto__ = prototype;\n\n if (getter || setter) {\n if (getter) descriptor.get = getter;\n if (setter) descriptor.set = setter;\n return descriptor;\n }\n }\n descriptor.value = object[property];\n return descriptor;\n };\n}\nif (!Object.getOwnPropertyNames) {\n Object.getOwnPropertyNames = function getOwnPropertyNames(object) {\n return Object.keys(object);\n };\n}\nif (!Object.create) {\n var createEmpty;\n if (Object.prototype.__proto__ === null) {\n createEmpty = function () {\n return { \"__proto__\": null };\n };\n } else {\n createEmpty = function () {\n var empty = {};\n for (var i in empty)\n empty[i] = null;\n empty.constructor =\n empty.hasOwnProperty =\n empty.propertyIsEnumerable =\n empty.isPrototypeOf =\n empty.toLocaleString =\n empty.toString =\n empty.valueOf =\n empty.__proto__ = null;\n return empty;\n }\n }\n\n Object.create = function create(prototype, properties) {\n var object;\n if (prototype === null) {\n object = createEmpty();\n } else {\n if (typeof prototype != \"object\")\n throw new TypeError(\"typeof prototype[\"+(typeof prototype)+\"] != 'object'\");\n var Type = function () {};\n Type.prototype = prototype;\n object = new Type();\n object.__proto__ = prototype;\n }\n if (properties !== void 0)\n Object.defineProperties(object, properties);\n return object;\n };\n}\n\nfunction doesDefinePropertyWork(object) {\n try {\n Object.defineProperty(object, \"sentinel\", {});\n return \"sentinel\" in object;\n } catch (exception) {\n }\n}\nif (Object.defineProperty) {\n var definePropertyWorksOnObject = doesDefinePropertyWork({});\n var definePropertyWorksOnDom = typeof document == \"undefined\" ||\n doesDefinePropertyWork(document.createElement(\"div\"));\n if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {\n var definePropertyFallback = Object.defineProperty;\n }\n}\n\nif (!Object.defineProperty || definePropertyFallback) {\n var ERR_NON_OBJECT_DESCRIPTOR = \"Property description must be an object: \";\n var ERR_NON_OBJECT_TARGET = \"Object.defineProperty called on non-object: \"\n var ERR_ACCESSORS_NOT_SUPPORTED = \"getters & setters can not be defined \" +\n \"on this javascript engine\";\n\n Object.defineProperty = function defineProperty(object, property, descriptor) {\n if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n throw new TypeError(ERR_NON_OBJECT_TARGET + object);\n if ((typeof descriptor != \"object\" && typeof descriptor != \"function\") || descriptor === null)\n throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);\n if (definePropertyFallback) {\n try {\n return definePropertyFallback.call(Object, object, property, descriptor);\n } catch (exception) {\n }\n }\n if (owns(descriptor, \"value\")) {\n\n if (supportsAccessors && (lookupGetter(object, property) ||\n lookupSetter(object, property)))\n {\n var prototype = object.__proto__;\n object.__proto__ = prototypeOfObject;\n delete object[property];\n object[property] = descriptor.value;\n object.__proto__ = prototype;\n } else {\n object[property] = descriptor.value;\n }\n } else {\n if (!supportsAccessors)\n throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);\n if (owns(descriptor, \"get\"))\n defineGetter(object, property, descriptor.get);\n if (owns(descriptor, \"set\"))\n defineSetter(object, property, descriptor.set);\n }\n\n return object;\n };\n}\nif (!Object.defineProperties) {\n Object.defineProperties = function defineProperties(object, properties) {\n for (var property in properties) {\n if (owns(properties, property))\n Object.defineProperty(object, property, properties[property]);\n }\n return object;\n };\n}\nif (!Object.seal) {\n Object.seal = function seal(object) {\n return object;\n };\n}\nif (!Object.freeze) {\n Object.freeze = function freeze(object) {\n return object;\n };\n}\ntry {\n Object.freeze(function () {});\n} catch (exception) {\n Object.freeze = (function freeze(freezeObject) {\n return function freeze(object) {\n if (typeof object == \"function\") {\n return object;\n } else {\n return freezeObject(object);\n }\n };\n })(Object.freeze);\n}\nif (!Object.preventExtensions) {\n Object.preventExtensions = function preventExtensions(object) {\n return object;\n };\n}\nif (!Object.isSealed) {\n Object.isSealed = function isSealed(object) {\n return false;\n };\n}\nif (!Object.isFrozen) {\n Object.isFrozen = function isFrozen(object) {\n return false;\n };\n}\nif (!Object.isExtensible) {\n Object.isExtensible = function isExtensible(object) {\n if (Object(object) === object) {\n throw new TypeError(); // TODO message\n }\n var name = '';\n while (owns(object, name)) {\n name += '?';\n }\n object[name] = true;\n var returnValue = owns(object, name);\n delete object[name];\n return returnValue;\n };\n}\nif (!Object.keys) {\n var hasDontEnumBug = true,\n dontEnums = [\n \"toString\",\n \"toLocaleString\",\n \"valueOf\",\n \"hasOwnProperty\",\n \"isPrototypeOf\",\n \"propertyIsEnumerable\",\n \"constructor\"\n ],\n dontEnumsLength = dontEnums.length;\n\n for (var key in {\"toString\": null}) {\n hasDontEnumBug = false;\n }\n\n Object.keys = function keys(object) {\n\n if (\n (typeof object != \"object\" && typeof object != \"function\") ||\n object === null\n ) {\n throw new TypeError(\"Object.keys called on a non-object\");\n }\n\n var keys = [];\n for (var name in object) {\n if (owns(object, name)) {\n keys.push(name);\n }\n }\n\n if (hasDontEnumBug) {\n for (var i = 0, ii = dontEnumsLength; i < ii; i++) {\n var dontEnum = dontEnums[i];\n if (owns(object, dontEnum)) {\n keys.push(dontEnum);\n }\n }\n }\n return keys;\n };\n\n}\nif (!Date.now) {\n Date.now = function now() {\n return new Date().getTime();\n };\n}\nvar ws = \"\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\" +\n \"\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\" +\n \"\\u2029\\uFEFF\";\nif (!String.prototype.trim || ws.trim()) {\n ws = \"[\" + ws + \"]\";\n var trimBeginRegexp = new RegExp(\"^\" + ws + ws + \"*\"),\n trimEndRegexp = new RegExp(ws + ws + \"*$\");\n String.prototype.trim = function trim() {\n return String(this).replace(trimBeginRegexp, \"\").replace(trimEndRegexp, \"\");\n };\n}\n\nfunction toInteger(n) {\n n = +n;\n if (n !== n) { // isNaN\n n = 0;\n } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) {\n n = (n > 0 || -1) * Math.floor(Math.abs(n));\n }\n return n;\n}\n\nfunction isPrimitive(input) {\n var type = typeof input;\n return (\n input === null ||\n type === \"undefined\" ||\n type === \"boolean\" ||\n type === \"number\" ||\n type === \"string\"\n );\n}\n\nfunction toPrimitive(input) {\n var val, valueOf, toString;\n if (isPrimitive(input)) {\n return input;\n }\n valueOf = input.valueOf;\n if (typeof valueOf === \"function\") {\n val = valueOf.call(input);\n if (isPrimitive(val)) {\n return val;\n }\n }\n toString = input.toString;\n if (typeof toString === \"function\") {\n val = toString.call(input);\n if (isPrimitive(val)) {\n return val;\n }\n }\n throw new TypeError();\n}\nvar toObject = function (o) {\n if (o == null) { // this matches both null and undefined\n throw new TypeError(\"can't convert \"+o+\" to object\");\n }\n return Object(o);\n};\n\n});\n\nace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/regexp\",\"ace/lib/es5-shim\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./regexp\");\nacequire(\"./es5-shim\");\n\n});\n\nace.define(\"ace/lib/dom\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar XHTML_NS = \"http://www.w3.org/1999/xhtml\";\n\nexports.getDocumentHead = function(doc) {\n if (!doc)\n doc = document;\n return doc.head || doc.getElementsByTagName(\"head\")[0] || doc.documentElement;\n};\n\nexports.createElement = function(tag, ns) {\n return document.createElementNS ?\n document.createElementNS(ns || XHTML_NS, tag) :\n document.createElement(tag);\n};\n\nexports.hasCssClass = function(el, name) {\n var classes = (el.className + \"\").split(/\\s+/g);\n return classes.indexOf(name) !== -1;\n};\nexports.addCssClass = function(el, name) {\n if (!exports.hasCssClass(el, name)) {\n el.className += \" \" + name;\n }\n};\nexports.removeCssClass = function(el, name) {\n var classes = el.className.split(/\\s+/g);\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n classes.splice(index, 1);\n }\n el.className = classes.join(\" \");\n};\n\nexports.toggleCssClass = function(el, name) {\n var classes = el.className.split(/\\s+/g), add = true;\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n add = false;\n classes.splice(index, 1);\n }\n if (add)\n classes.push(name);\n\n el.className = classes.join(\" \");\n return add;\n};\nexports.setCssClass = function(node, className, include) {\n if (include) {\n exports.addCssClass(node, className);\n } else {\n exports.removeCssClass(node, className);\n }\n};\n\nexports.hasCssString = function(id, doc) {\n var index = 0, sheets;\n doc = doc || document;\n\n if (doc.createStyleSheet && (sheets = doc.styleSheets)) {\n while (index < sheets.length)\n if (sheets[index++].owningElement.id === id) return true;\n } else if ((sheets = doc.getElementsByTagName(\"style\"))) {\n while (index < sheets.length)\n if (sheets[index++].id === id) return true;\n }\n\n return false;\n};\n\nexports.importCssString = function importCssString(cssText, id, doc) {\n doc = doc || document;\n if (id && exports.hasCssString(id, doc))\n return null;\n \n var style;\n \n if (id)\n cssText += \"\\n/*# sourceURL=ace/css/\" + id + \" */\";\n \n if (doc.createStyleSheet) {\n style = doc.createStyleSheet();\n style.cssText = cssText;\n if (id)\n style.owningElement.id = id;\n } else {\n style = exports.createElement(\"style\");\n style.appendChild(doc.createTextNode(cssText));\n if (id)\n style.id = id;\n\n exports.getDocumentHead(doc).appendChild(style);\n }\n};\n\nexports.importCssStylsheet = function(uri, doc) {\n if (doc.createStyleSheet) {\n doc.createStyleSheet(uri);\n } else {\n var link = exports.createElement('link');\n link.rel = 'stylesheet';\n link.href = uri;\n\n exports.getDocumentHead(doc).appendChild(link);\n }\n};\n\nexports.getInnerWidth = function(element) {\n return (\n parseInt(exports.computedStyle(element, \"paddingLeft\"), 10) +\n parseInt(exports.computedStyle(element, \"paddingRight\"), 10) + \n element.clientWidth\n );\n};\n\nexports.getInnerHeight = function(element) {\n return (\n parseInt(exports.computedStyle(element, \"paddingTop\"), 10) +\n parseInt(exports.computedStyle(element, \"paddingBottom\"), 10) +\n element.clientHeight\n );\n};\n\nexports.scrollbarWidth = function(document) {\n var inner = exports.createElement(\"ace_inner\");\n inner.style.width = \"100%\";\n inner.style.minWidth = \"0px\";\n inner.style.height = \"200px\";\n inner.style.display = \"block\";\n\n var outer = exports.createElement(\"ace_outer\");\n var style = outer.style;\n\n style.position = \"absolute\";\n style.left = \"-10000px\";\n style.overflow = \"hidden\";\n style.width = \"200px\";\n style.minWidth = \"0px\";\n style.height = \"150px\";\n style.display = \"block\";\n\n outer.appendChild(inner);\n\n var body = document.documentElement;\n body.appendChild(outer);\n\n var noScrollbar = inner.offsetWidth;\n\n style.overflow = \"scroll\";\n var withScrollbar = inner.offsetWidth;\n\n if (noScrollbar == withScrollbar) {\n withScrollbar = outer.clientWidth;\n }\n\n body.removeChild(outer);\n\n return noScrollbar-withScrollbar;\n};\n\nif (typeof document == \"undefined\") {\n exports.importCssString = function() {};\n return;\n}\n\nif (window.pageYOffset !== undefined) {\n exports.getPageScrollTop = function() {\n return window.pageYOffset;\n };\n\n exports.getPageScrollLeft = function() {\n return window.pageXOffset;\n };\n}\nelse {\n exports.getPageScrollTop = function() {\n return document.body.scrollTop;\n };\n\n exports.getPageScrollLeft = function() {\n return document.body.scrollLeft;\n };\n}\n\nif (window.getComputedStyle)\n exports.computedStyle = function(element, style) {\n if (style)\n return (window.getComputedStyle(element, \"\") || {})[style] || \"\";\n return window.getComputedStyle(element, \"\") || {};\n };\nelse\n exports.computedStyle = function(element, style) {\n if (style)\n return element.currentStyle[style];\n return element.currentStyle;\n };\nexports.setInnerHtml = function(el, innerHtml) {\n var element = el.cloneNode(false);//document.createElement(\"div\");\n element.innerHTML = innerHtml;\n el.parentNode.replaceChild(element, el);\n return element;\n};\n\nif (\"textContent\" in document.documentElement) {\n exports.setInnerText = function(el, innerText) {\n el.textContent = innerText;\n };\n\n exports.getInnerText = function(el) {\n return el.textContent;\n };\n}\nelse {\n exports.setInnerText = function(el, innerText) {\n el.innerText = innerText;\n };\n\n exports.getInnerText = function(el) {\n return el.innerText;\n };\n}\n\nexports.getParentWindow = function(document) {\n return document.defaultView || document.parentWindow;\n};\n\n});\n\nace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nexports.inherits = function(ctor, superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n};\n\nexports.mixin = function(obj, mixin) {\n for (var key in mixin) {\n obj[key] = mixin[key];\n }\n return obj;\n};\n\nexports.implement = function(proto, mixin) {\n exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/lib/keys\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/oop\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./fixoldbrowsers\");\n\nvar oop = acequire(\"./oop\");\nvar Keys = (function() {\n var ret = {\n MODIFIER_KEYS: {\n 16: 'Shift', 17: 'Ctrl', 18: 'Alt', 224: 'Meta'\n },\n\n KEY_MODS: {\n \"ctrl\": 1, \"alt\": 2, \"option\" : 2, \"shift\": 4,\n \"super\": 8, \"meta\": 8, \"command\": 8, \"cmd\": 8\n },\n\n FUNCTION_KEYS : {\n 8 : \"Backspace\",\n 9 : \"Tab\",\n 13 : \"Return\",\n 19 : \"Pause\",\n 27 : \"Esc\",\n 32 : \"Space\",\n 33 : \"PageUp\",\n 34 : \"PageDown\",\n 35 : \"End\",\n 36 : \"Home\",\n 37 : \"Left\",\n 38 : \"Up\",\n 39 : \"Right\",\n 40 : \"Down\",\n 44 : \"Print\",\n 45 : \"Insert\",\n 46 : \"Delete\",\n 96 : \"Numpad0\",\n 97 : \"Numpad1\",\n 98 : \"Numpad2\",\n 99 : \"Numpad3\",\n 100: \"Numpad4\",\n 101: \"Numpad5\",\n 102: \"Numpad6\",\n 103: \"Numpad7\",\n 104: \"Numpad8\",\n 105: \"Numpad9\",\n '-13': \"NumpadEnter\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"Numlock\",\n 145: \"Scrolllock\"\n },\n\n PRINTABLE_KEYS: {\n 32: ' ', 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5',\n 54: '6', 55: '7', 56: '8', 57: '9', 59: ';', 61: '=', 65: 'a',\n 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h',\n 73: 'i', 74: 'j', 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o',\n 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't', 85: 'u', 86: 'v',\n 87: 'w', 88: 'x', 89: 'y', 90: 'z', 107: '+', 109: '-', 110: '.',\n 186: ';', 187: '=', 188: ',', 189: '-', 190: '.', 191: '/', 192: '`',\n 219: '[', 220: '\\\\',221: ']', 222: \"'\", 111: '/', 106: '*'\n }\n };\n var name, i;\n for (i in ret.FUNCTION_KEYS) {\n name = ret.FUNCTION_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n for (i in ret.PRINTABLE_KEYS) {\n name = ret.PRINTABLE_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n oop.mixin(ret, ret.MODIFIER_KEYS);\n oop.mixin(ret, ret.PRINTABLE_KEYS);\n oop.mixin(ret, ret.FUNCTION_KEYS);\n ret.enter = ret[\"return\"];\n ret.escape = ret.esc;\n ret.del = ret[\"delete\"];\n ret[173] = '-';\n \n (function() {\n var mods = [\"cmd\", \"ctrl\", \"alt\", \"shift\"];\n for (var i = Math.pow(2, mods.length); i--;) { \n ret.KEY_MODS[i] = mods.filter(function(x) {\n return i & ret.KEY_MODS[x];\n }).join(\"-\") + \"-\";\n }\n })();\n\n ret.KEY_MODS[0] = \"\";\n ret.KEY_MODS[-1] = \"input-\";\n\n return ret;\n})();\noop.mixin(exports, Keys);\n\nexports.keyCodeToString = function(keyCode) {\n var keyString = Keys[keyCode];\n if (typeof keyString != \"string\")\n keyString = String.fromCharCode(keyCode);\n return keyString.toLowerCase();\n};\n\n});\n\nace.define(\"ace/lib/useragent\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nexports.OS = {\n LINUX: \"LINUX\",\n MAC: \"MAC\",\n WINDOWS: \"WINDOWS\"\n};\nexports.getOS = function() {\n if (exports.isMac) {\n return exports.OS.MAC;\n } else if (exports.isLinux) {\n return exports.OS.LINUX;\n } else {\n return exports.OS.WINDOWS;\n }\n};\nif (typeof navigator != \"object\")\n return;\n\nvar os = (navigator.platform.match(/mac|win|linux/i) || [\"other\"])[0].toLowerCase();\nvar ua = navigator.userAgent;\nexports.isWin = (os == \"win\");\nexports.isMac = (os == \"mac\");\nexports.isLinux = (os == \"linux\");\nexports.isIE = \n (navigator.appName == \"Microsoft Internet Explorer\" || navigator.appName.indexOf(\"MSAppHost\") >= 0)\n ? parseFloat((ua.match(/(?:MSIE |Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/)||[])[1])\n : parseFloat((ua.match(/(?:Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/)||[])[1]); // for ie\n \nexports.isOldIE = exports.isIE && exports.isIE < 9;\nexports.isGecko = exports.isMozilla = (window.Controllers || window.controllers) && window.navigator.product === \"Gecko\";\nexports.isOldGecko = exports.isGecko && parseInt((ua.match(/rv:(\\d+)/)||[])[1], 10) < 4;\nexports.isOpera = window.opera && Object.prototype.toString.call(window.opera) == \"[object Opera]\";\nexports.isWebKit = parseFloat(ua.split(\"WebKit/\")[1]) || undefined;\n\nexports.isChrome = parseFloat(ua.split(\" Chrome/\")[1]) || undefined;\n\nexports.isAIR = ua.indexOf(\"AdobeAIR\") >= 0;\n\nexports.isIPad = ua.indexOf(\"iPad\") >= 0;\n\nexports.isChromeOS = ua.indexOf(\" CrOS \") >= 0;\n\nexports.isIOS = /iPad|iPhone|iPod/.test(ua) && !window.MSStream;\n\nif (exports.isIOS) exports.isMac = true;\n\n});\n\nace.define(\"ace/lib/event\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar keys = acequire(\"./keys\");\nvar useragent = acequire(\"./useragent\");\n\nvar pressedKeys = null;\nvar ts = 0;\n\nexports.addListener = function(elem, type, callback) {\n if (elem.addEventListener) {\n return elem.addEventListener(type, callback, false);\n }\n if (elem.attachEvent) {\n var wrapper = function() {\n callback.call(elem, window.event);\n };\n callback._wrapper = wrapper;\n elem.attachEvent(\"on\" + type, wrapper);\n }\n};\n\nexports.removeListener = function(elem, type, callback) {\n if (elem.removeEventListener) {\n return elem.removeEventListener(type, callback, false);\n }\n if (elem.detachEvent) {\n elem.detachEvent(\"on\" + type, callback._wrapper || callback);\n }\n};\nexports.stopEvent = function(e) {\n exports.stopPropagation(e);\n exports.preventDefault(e);\n return false;\n};\n\nexports.stopPropagation = function(e) {\n if (e.stopPropagation)\n e.stopPropagation();\n else\n e.cancelBubble = true;\n};\n\nexports.preventDefault = function(e) {\n if (e.preventDefault)\n e.preventDefault();\n else\n e.returnValue = false;\n};\nexports.getButton = function(e) {\n if (e.type == \"dblclick\")\n return 0;\n if (e.type == \"contextmenu\" || (useragent.isMac && (e.ctrlKey && !e.altKey && !e.shiftKey)))\n return 2;\n if (e.preventDefault) {\n return e.button;\n }\n else {\n return {1:0, 2:2, 4:1}[e.button];\n }\n};\n\nexports.capture = function(el, eventHandler, releaseCaptureHandler) {\n function onMouseUp(e) {\n eventHandler && eventHandler(e);\n releaseCaptureHandler && releaseCaptureHandler(e);\n\n exports.removeListener(document, \"mousemove\", eventHandler, true);\n exports.removeListener(document, \"mouseup\", onMouseUp, true);\n exports.removeListener(document, \"dragstart\", onMouseUp, true);\n }\n\n exports.addListener(document, \"mousemove\", eventHandler, true);\n exports.addListener(document, \"mouseup\", onMouseUp, true);\n exports.addListener(document, \"dragstart\", onMouseUp, true);\n \n return onMouseUp;\n};\n\nexports.addTouchMoveListener = function (el, callback) {\n var startx, starty;\n exports.addListener(el, \"touchstart\", function (e) {\n var touches = e.touches;\n var touchObj = touches[0];\n startx = touchObj.clientX;\n starty = touchObj.clientY;\n });\n exports.addListener(el, \"touchmove\", function (e) {\n var touches = e.touches;\n if (touches.length > 1) return;\n\n var touchObj = touches[0];\n\n e.wheelX = startx - touchObj.clientX;\n e.wheelY = starty - touchObj.clientY;\n\n startx = touchObj.clientX;\n starty = touchObj.clientY;\n\n callback(e);\n });\n};\n\nexports.addMouseWheelListener = function(el, callback) {\n if (\"onmousewheel\" in el) {\n exports.addListener(el, \"mousewheel\", function(e) {\n var factor = 8;\n if (e.wheelDeltaX !== undefined) {\n e.wheelX = -e.wheelDeltaX / factor;\n e.wheelY = -e.wheelDeltaY / factor;\n } else {\n e.wheelX = 0;\n e.wheelY = -e.wheelDelta / factor;\n }\n callback(e);\n });\n } else if (\"onwheel\" in el) {\n exports.addListener(el, \"wheel\", function(e) {\n var factor = 0.35;\n switch (e.deltaMode) {\n case e.DOM_DELTA_PIXEL:\n e.wheelX = e.deltaX * factor || 0;\n e.wheelY = e.deltaY * factor || 0;\n break;\n case e.DOM_DELTA_LINE:\n case e.DOM_DELTA_PAGE:\n e.wheelX = (e.deltaX || 0) * 5;\n e.wheelY = (e.deltaY || 0) * 5;\n break;\n }\n \n callback(e);\n });\n } else {\n exports.addListener(el, \"DOMMouseScroll\", function(e) {\n if (e.axis && e.axis == e.HORIZONTAL_AXIS) {\n e.wheelX = (e.detail || 0) * 5;\n e.wheelY = 0;\n } else {\n e.wheelX = 0;\n e.wheelY = (e.detail || 0) * 5;\n }\n callback(e);\n });\n }\n};\n\nexports.addMultiMouseDownListener = function(elements, timeouts, eventHandler, callbackName) {\n var clicks = 0;\n var startX, startY, timer; \n var eventNames = {\n 2: \"dblclick\",\n 3: \"tripleclick\",\n 4: \"quadclick\"\n };\n\n function onMousedown(e) {\n if (exports.getButton(e) !== 0) {\n clicks = 0;\n } else if (e.detail > 1) {\n clicks++;\n if (clicks > 4)\n clicks = 1;\n } else {\n clicks = 1;\n }\n if (useragent.isIE) {\n var isNewClick = Math.abs(e.clientX - startX) > 5 || Math.abs(e.clientY - startY) > 5;\n if (!timer || isNewClick)\n clicks = 1;\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(function() {timer = null;}, timeouts[clicks - 1] || 600);\n\n if (clicks == 1) {\n startX = e.clientX;\n startY = e.clientY;\n }\n }\n \n e._clicks = clicks;\n\n eventHandler[callbackName](\"mousedown\", e);\n\n if (clicks > 4)\n clicks = 0;\n else if (clicks > 1)\n return eventHandler[callbackName](eventNames[clicks], e);\n }\n function onDblclick(e) {\n clicks = 2;\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(function() {timer = null;}, timeouts[clicks - 1] || 600);\n eventHandler[callbackName](\"mousedown\", e);\n eventHandler[callbackName](eventNames[clicks], e);\n }\n if (!Array.isArray(elements))\n elements = [elements];\n elements.forEach(function(el) {\n exports.addListener(el, \"mousedown\", onMousedown);\n if (useragent.isOldIE)\n exports.addListener(el, \"dblclick\", onDblclick);\n });\n};\n\nvar getModifierHash = useragent.isMac && useragent.isOpera && !(\"KeyboardEvent\" in window)\n ? function(e) {\n return 0 | (e.metaKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.ctrlKey ? 8 : 0);\n }\n : function(e) {\n return 0 | (e.ctrlKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.metaKey ? 8 : 0);\n };\n\nexports.getModifierString = function(e) {\n return keys.KEY_MODS[getModifierHash(e)];\n};\n\nfunction normalizeCommandKeys(callback, e, keyCode) {\n var hashId = getModifierHash(e);\n\n if (!useragent.isMac && pressedKeys) {\n if (e.getModifierState && (e.getModifierState(\"OS\") || e.getModifierState(\"Win\")))\n hashId |= 8;\n if (pressedKeys.altGr) {\n if ((3 & hashId) != 3)\n pressedKeys.altGr = 0;\n else\n return;\n }\n if (keyCode === 18 || keyCode === 17) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (keyCode === 17 && location === 1) {\n if (pressedKeys[keyCode] == 1)\n ts = e.timeStamp;\n } else if (keyCode === 18 && hashId === 3 && location === 2) {\n var dt = e.timeStamp - ts;\n if (dt < 50)\n pressedKeys.altGr = true;\n }\n }\n }\n \n if (keyCode in keys.MODIFIER_KEYS) {\n keyCode = -1;\n }\n if (hashId & 8 && (keyCode >= 91 && keyCode <= 93)) {\n keyCode = -1;\n }\n \n if (!hashId && keyCode === 13) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (location === 3) {\n callback(e, hashId, -keyCode);\n if (e.defaultPrevented)\n return;\n }\n }\n \n if (useragent.isChromeOS && hashId & 8) {\n callback(e, hashId, keyCode);\n if (e.defaultPrevented)\n return;\n else\n hashId &= ~8;\n }\n if (!hashId && !(keyCode in keys.FUNCTION_KEYS) && !(keyCode in keys.PRINTABLE_KEYS)) {\n return false;\n }\n \n return callback(e, hashId, keyCode);\n}\n\n\nexports.addCommandKeyListener = function(el, callback) {\n var addListener = exports.addListener;\n if (useragent.isOldGecko || (useragent.isOpera && !(\"KeyboardEvent\" in window))) {\n var lastKeyDownKeyCode = null;\n addListener(el, \"keydown\", function(e) {\n lastKeyDownKeyCode = e.keyCode;\n });\n addListener(el, \"keypress\", function(e) {\n return normalizeCommandKeys(callback, e, lastKeyDownKeyCode);\n });\n } else {\n var lastDefaultPrevented = null;\n\n addListener(el, \"keydown\", function(e) {\n pressedKeys[e.keyCode] = (pressedKeys[e.keyCode] || 0) + 1;\n var result = normalizeCommandKeys(callback, e, e.keyCode);\n lastDefaultPrevented = e.defaultPrevented;\n return result;\n });\n\n addListener(el, \"keypress\", function(e) {\n if (lastDefaultPrevented && (e.ctrlKey || e.altKey || e.shiftKey || e.metaKey)) {\n exports.stopEvent(e);\n lastDefaultPrevented = null;\n }\n });\n\n addListener(el, \"keyup\", function(e) {\n pressedKeys[e.keyCode] = null;\n });\n\n if (!pressedKeys) {\n resetPressedKeys();\n addListener(window, \"focus\", resetPressedKeys);\n }\n }\n};\nfunction resetPressedKeys() {\n pressedKeys = Object.create(null);\n}\n\nif (typeof window == \"object\" && window.postMessage && !useragent.isOldIE) {\n var postMessageId = 1;\n exports.nextTick = function(callback, win) {\n win = win || window;\n var messageName = \"zero-timeout-message-\" + postMessageId;\n exports.addListener(win, \"message\", function listener(e) {\n if (e.data == messageName) {\n exports.stopPropagation(e);\n exports.removeListener(win, \"message\", listener);\n callback();\n }\n });\n win.postMessage(messageName, \"*\");\n };\n}\n\n\nexports.nextFrame = typeof window == \"object\" && (window.requestAnimationFrame\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame\n || window.msRequestAnimationFrame\n || window.oRequestAnimationFrame);\n\nif (exports.nextFrame)\n exports.nextFrame = exports.nextFrame.bind(window);\nelse\n exports.nextFrame = function(callback) {\n setTimeout(callback, 17);\n };\n});\n\nace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nexports.last = function(a) {\n return a[a.length - 1];\n};\n\nexports.stringReverse = function(string) {\n return string.split(\"\").reverse().join(\"\");\n};\n\nexports.stringRepeat = function (string, count) {\n var result = '';\n while (count > 0) {\n if (count & 1)\n result += string;\n\n if (count >>= 1)\n string += string;\n }\n return result;\n};\n\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\n\nexports.stringTrimLeft = function (string) {\n return string.replace(trimBeginRegexp, '');\n};\n\nexports.stringTrimRight = function (string) {\n return string.replace(trimEndRegexp, '');\n};\n\nexports.copyObject = function(obj) {\n var copy = {};\n for (var key in obj) {\n copy[key] = obj[key];\n }\n return copy;\n};\n\nexports.copyArray = function(array){\n var copy = [];\n for (var i=0, l=array.length; i<l; i++) {\n if (array[i] && typeof array[i] == \"object\")\n copy[i] = this.copyObject(array[i]);\n else \n copy[i] = array[i];\n }\n return copy;\n};\n\nexports.deepCopy = function deepCopy(obj) {\n if (typeof obj !== \"object\" || !obj)\n return obj;\n var copy;\n if (Array.isArray(obj)) {\n copy = [];\n for (var key = 0; key < obj.length; key++) {\n copy[key] = deepCopy(obj[key]);\n }\n return copy;\n }\n if (Object.prototype.toString.call(obj) !== \"[object Object]\")\n return obj;\n \n copy = {};\n for (var key in obj)\n copy[key] = deepCopy(obj[key]);\n return copy;\n};\n\nexports.arrayToMap = function(arr) {\n var map = {};\n for (var i=0; i<arr.length; i++) {\n map[arr[i]] = 1;\n }\n return map;\n\n};\n\nexports.createMap = function(props) {\n var map = Object.create(null);\n for (var i in props) {\n map[i] = props[i];\n }\n return map;\n};\nexports.arrayRemove = function(array, value) {\n for (var i = 0; i <= array.length; i++) {\n if (value === array[i]) {\n array.splice(i, 1);\n }\n }\n};\n\nexports.escapeRegExp = function(str) {\n return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g, '\\\\$1');\n};\n\nexports.escapeHTML = function(str) {\n return str.replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(/</g, \"<\");\n};\n\nexports.getMatchOffsets = function(string, regExp) {\n var matches = [];\n\n string.replace(regExp, function(str) {\n matches.push({\n offset: arguments[arguments.length-2],\n length: str.length\n });\n });\n\n return matches;\n};\nexports.deferredCall = function(fcn) {\n var timer = null;\n var callback = function() {\n timer = null;\n fcn();\n };\n\n var deferred = function(timeout) {\n deferred.cancel();\n timer = setTimeout(callback, timeout || 0);\n return deferred;\n };\n\n deferred.schedule = deferred;\n\n deferred.call = function() {\n this.cancel();\n fcn();\n return deferred;\n };\n\n deferred.cancel = function() {\n clearTimeout(timer);\n timer = null;\n return deferred;\n };\n \n deferred.isPending = function() {\n return timer;\n };\n\n return deferred;\n};\n\n\nexports.delayedCall = function(fcn, defaultTimeout) {\n var timer = null;\n var callback = function() {\n timer = null;\n fcn();\n };\n\n var _self = function(timeout) {\n if (timer == null)\n timer = setTimeout(callback, timeout || defaultTimeout);\n };\n\n _self.delay = function(timeout) {\n timer && clearTimeout(timer);\n timer = setTimeout(callback, timeout || defaultTimeout);\n };\n _self.schedule = _self;\n\n _self.call = function() {\n this.cancel();\n fcn();\n };\n\n _self.cancel = function() {\n timer && clearTimeout(timer);\n timer = null;\n };\n\n _self.isPending = function() {\n return timer;\n };\n\n return _self;\n};\n});\n\nace.define(\"ace/keyboard/textinput_ios\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/keys\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\nvar dom = acequire(\"../lib/dom\");\nvar lang = acequire(\"../lib/lang\");\nvar KEYS = acequire(\"../lib/keys\");\nvar MODS = KEYS.KEY_MODS;\nvar BROKEN_SETDATA = useragent.isChrome < 18;\nvar USE_IE_MIME_TYPE = useragent.isIE;\n\nvar TextInput = function(parentNode, host) {\n var self = this;\n var text = dom.createElement(\"textarea\");\n text.className = useragent.isIOS ? \"ace_text-input ace_text-input-ios\" : \"ace_text-input\";\n\n if (useragent.isTouchPad)\n text.setAttribute(\"x-palm-disable-auto-cap\", true);\n\n text.setAttribute(\"wrap\", \"off\");\n text.setAttribute(\"autocorrect\", \"off\");\n text.setAttribute(\"autocapitalize\", \"off\");\n text.setAttribute(\"spellcheck\", false);\n\n text.style.opacity = \"0\";\n parentNode.insertBefore(text, parentNode.firstChild);\n\n var PLACEHOLDER = \"\\n aaaa a\\n\";\n\n var copied = false;\n var cut = false;\n var pasted = false;\n var inComposition = false;\n var tempStyle = '';\n var isSelectionEmpty = true;\n try { var isFocused = document.activeElement === text; } catch(e) {}\n\n event.addListener(text, \"blur\", function(e) {\n host.onBlur(e);\n isFocused = false;\n });\n event.addListener(text, \"focus\", function(e) {\n isFocused = true;\n host.onFocus(e);\n resetSelection();\n });\n this.focus = function() {\n if (tempStyle) return text.focus();\n text.style.position = \"fixed\";\n text.focus();\n };\n this.blur = function() {\n text.blur();\n };\n this.isFocused = function() {\n return isFocused;\n };\n var syncSelection = lang.delayedCall(function() {\n isFocused && resetSelection(isSelectionEmpty);\n });\n var syncValue = lang.delayedCall(function() {\n if (!inComposition) {\n text.value = PLACEHOLDER;\n isFocused && resetSelection();\n }\n });\n\n function resetSelection(isEmpty) {\n if (inComposition)\n return;\n inComposition = true;\n\n if (inputHandler) {\n selectionStart = 0;\n selectionEnd = isEmpty ? 0 : text.value.length - 1;\n } else {\n var selectionStart = 4;\n var selectionEnd = 5;\n }\n try {\n text.setSelectionRange(selectionStart, selectionEnd);\n } catch(e) {}\n\n inComposition = false;\n }\n\n function resetValue() {\n if (inComposition)\n return;\n text.value = PLACEHOLDER;\n if (useragent.isWebKit)\n syncValue.schedule();\n }\n\n useragent.isWebKit || host.addEventListener('changeSelection', function() {\n if (host.selection.isEmpty() != isSelectionEmpty) {\n isSelectionEmpty = !isSelectionEmpty;\n syncSelection.schedule();\n }\n });\n\n resetValue();\n if (isFocused)\n host.onFocus();\n\n\n var isAllSelected = function(text) {\n return text.selectionStart === 0 && text.selectionEnd === text.value.length;\n };\n\n var onSelect = function(e) {\n if (isAllSelected(text)) {\n host.selectAll();\n resetSelection();\n } else if (inputHandler) {\n resetSelection(host.selection.isEmpty());\n }\n };\n\n var inputHandler = null;\n this.setInputHandler = function(cb) {inputHandler = cb;};\n this.getInputHandler = function() {return inputHandler;};\n var afterContextMenu = false;\n\n var sendText = function(data) {\n if (text.selectionStart === 4 && text.selectionEnd === 5) {\n return;\n }\n if (inputHandler) {\n data = inputHandler(data);\n inputHandler = null;\n }\n if (pasted) {\n resetSelection();\n if (data)\n host.onPaste(data);\n pasted = false;\n } else if (data == PLACEHOLDER.substr(0) && text.selectionStart === 4) {\n if (afterContextMenu)\n host.execCommand(\"del\", {source: \"ace\"});\n else // some versions of android do not fire keydown when pressing backspace\n host.execCommand(\"backspace\", {source: \"ace\"});\n } else if (!copied) {\n if (data.substring(0, 9) == PLACEHOLDER && data.length > PLACEHOLDER.length)\n data = data.substr(9);\n else if (data.substr(0, 4) == PLACEHOLDER.substr(0, 4))\n data = data.substr(4, data.length - PLACEHOLDER.length + 1);\n else if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))\n data = data.slice(0, -1);\n if (data == PLACEHOLDER.charAt(0)) {\n } else if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))\n data = data.slice(0, -1);\n\n if (data)\n host.onTextInput(data);\n }\n if (copied) {\n copied = false;\n }\n if (afterContextMenu)\n afterContextMenu = false;\n };\n var onInput = function(e) {\n if (inComposition)\n return;\n var data = text.value;\n sendText(data);\n resetValue();\n };\n\n var handleClipboardData = function(e, data, forceIEMime) {\n var clipboardData = e.clipboardData || window.clipboardData;\n if (!clipboardData || BROKEN_SETDATA)\n return;\n var mime = USE_IE_MIME_TYPE || forceIEMime ? \"Text\" : \"text/plain\";\n try {\n if (data) {\n return clipboardData.setData(mime, data) !== false;\n } else {\n return clipboardData.getData(mime);\n }\n } catch(e) {\n if (!forceIEMime)\n return handleClipboardData(e, data, true);\n }\n };\n\n var doCopy = function(e, isCut) {\n var data = host.getCopyText();\n if (!data)\n return event.preventDefault(e);\n\n if (handleClipboardData(e, data)) {\n if (useragent.isIOS) {\n cut = isCut;\n text.value = \"\\n aa\" + data + \"a a\\n\";\n text.setSelectionRange(4, 4 + data.length);\n copied = {\n value: data\n };\n }\n isCut ? host.onCut() : host.onCopy();\n if (!useragent.isIOS) event.preventDefault(e);\n } else {\n copied = true;\n text.value = data;\n text.select();\n setTimeout(function(){\n copied = false;\n resetValue();\n resetSelection();\n isCut ? host.onCut() : host.onCopy();\n });\n }\n };\n\n var onCut = function(e) {\n doCopy(e, true);\n };\n\n var onCopy = function(e) {\n doCopy(e, false);\n };\n\n var onPaste = function(e) {\n var data = handleClipboardData(e);\n if (typeof data == \"string\") {\n if (data)\n host.onPaste(data, e);\n if (useragent.isIE)\n setTimeout(resetSelection);\n event.preventDefault(e);\n }\n else {\n text.value = \"\";\n pasted = true;\n }\n };\n\n event.addCommandKeyListener(text, host.onCommandKey.bind(host));\n\n event.addListener(text, \"select\", onSelect);\n\n event.addListener(text, \"input\", onInput);\n\n event.addListener(text, \"cut\", onCut);\n event.addListener(text, \"copy\", onCopy);\n event.addListener(text, \"paste\", onPaste);\n var onCompositionStart = function(e) {\n if (inComposition || !host.onCompositionStart || host.$readOnly)\n return;\n inComposition = {};\n inComposition.canUndo = host.session.$undoManager;\n host.onCompositionStart();\n setTimeout(onCompositionUpdate, 0);\n host.on(\"mousedown\", onCompositionEnd);\n if (inComposition.canUndo && !host.selection.isEmpty()) {\n host.insert(\"\");\n host.session.markUndoGroup();\n host.selection.clearSelection();\n }\n host.session.markUndoGroup();\n };\n\n var onCompositionUpdate = function() {\n if (!inComposition || !host.onCompositionUpdate || host.$readOnly)\n return;\n var val = text.value.replace(/\\x01/g, \"\");\n if (inComposition.lastValue === val) return;\n\n host.onCompositionUpdate(val);\n if (inComposition.lastValue)\n host.undo();\n if (inComposition.canUndo)\n inComposition.lastValue = val;\n if (inComposition.lastValue) {\n var r = host.selection.getRange();\n host.insert(inComposition.lastValue);\n host.session.markUndoGroup();\n inComposition.range = host.selection.getRange();\n host.selection.setRange(r);\n host.selection.clearSelection();\n }\n };\n\n var onCompositionEnd = function(e) {\n if (!host.onCompositionEnd || host.$readOnly) return;\n var c = inComposition;\n inComposition = false;\n var timer = setTimeout(function() {\n timer = null;\n var str = text.value.replace(/\\x01/g, \"\");\n if (inComposition)\n return;\n else if (str == c.lastValue)\n resetValue();\n else if (!c.lastValue && str) {\n resetValue();\n sendText(str);\n }\n });\n inputHandler = function compositionInputHandler(str) {\n if (timer)\n clearTimeout(timer);\n str = str.replace(/\\x01/g, \"\");\n if (str == c.lastValue)\n return \"\";\n if (c.lastValue && timer)\n host.undo();\n return str;\n };\n host.onCompositionEnd();\n host.removeListener(\"mousedown\", onCompositionEnd);\n if (e.type == \"compositionend\" && c.range) {\n host.selection.setRange(c.range);\n }\n var needsOnInput =\n (!!useragent.isChrome && useragent.isChrome >= 53) ||\n (!!useragent.isWebKit && useragent.isWebKit >= 603);\n\n if (needsOnInput) {\n onInput();\n }\n };\n\n\n\n var syncComposition = lang.delayedCall(onCompositionUpdate, 50);\n\n event.addListener(text, \"compositionstart\", onCompositionStart);\n if (useragent.isGecko) {\n event.addListener(text, \"text\", function(){syncComposition.schedule();});\n } else {\n event.addListener(text, \"keyup\", function(){syncComposition.schedule();});\n event.addListener(text, \"keydown\", function(){syncComposition.schedule();});\n }\n event.addListener(text, \"compositionend\", onCompositionEnd);\n\n this.getElement = function() {\n return text;\n };\n\n this.setReadOnly = function(readOnly) {\n text.readOnly = readOnly;\n };\n\n this.onContextMenu = function(e) {\n afterContextMenu = true;\n resetSelection(host.selection.isEmpty());\n host._emit(\"nativecontextmenu\", {target: host, domEvent: e});\n this.moveToMouse(e, true);\n };\n\n this.moveToMouse = function(e, bringToFront) {\n if (!tempStyle)\n tempStyle = text.style.cssText;\n text.style.cssText = (bringToFront ? \"z-index:100000;\" : \"\")\n + \"height:\" + text.style.height + \";\"\n + (useragent.isIE ? \"opacity:0.1;\" : \"\");\n\n var rect = host.container.getBoundingClientRect();\n var style = dom.computedStyle(host.container);\n var top = rect.top + (parseInt(style.borderTopWidth) || 0);\n var left = rect.left + (parseInt(rect.borderLeftWidth) || 0);\n var maxTop = rect.bottom - top - text.clientHeight -2;\n var move = function(e) {\n text.style.left = e.clientX - left - 2 + \"px\";\n text.style.top = Math.min(e.clientY - top - 2, maxTop) + \"px\";\n };\n move(e);\n\n if (e.type != \"mousedown\")\n return;\n\n if (host.renderer.$keepTextAreaAtCursor)\n host.renderer.$keepTextAreaAtCursor = null;\n\n clearTimeout(closeTimeout);\n if (useragent.isWin)\n event.capture(host.container, move, onContextMenuClose);\n };\n\n this.onContextMenuClose = onContextMenuClose;\n var closeTimeout;\n function onContextMenuClose() {\n clearTimeout(closeTimeout);\n closeTimeout = setTimeout(function () {\n if (tempStyle) {\n text.style.cssText = tempStyle;\n tempStyle = '';\n }\n if (host.renderer.$keepTextAreaAtCursor == null) {\n host.renderer.$keepTextAreaAtCursor = true;\n host.renderer.$moveTextAreaToCursor();\n }\n }, 0);\n }\n\n var onContextMenu = function(e) {\n host.textInput.onContextMenu(e);\n onContextMenuClose();\n };\n event.addListener(text, \"mouseup\", onContextMenu);\n event.addListener(text, \"mousedown\", function(e) {\n e.preventDefault();\n onContextMenuClose();\n });\n event.addListener(host.renderer.scroller, \"contextmenu\", onContextMenu);\n event.addListener(text, \"contextmenu\", onContextMenu);\n\n if (useragent.isIOS) {\n var typingResetTimeout = null;\n var typing = false;\n\n parentNode.addEventListener(\"keydown\", function (e) {\n if (typingResetTimeout) clearTimeout(typingResetTimeout);\n typing = true;\n });\n\n parentNode.addEventListener(\"keyup\", function (e) {\n typingResetTimeout = setTimeout(function () {\n typing = false;\n }, 100);\n });\n var detectArrowKeys = function(e) {\n if (document.activeElement !== text) return;\n if (typing) return;\n\n if (cut) {\n return setTimeout(function () {\n cut = false;\n }, 100);\n }\n var selectionStart = text.selectionStart;\n var selectionEnd = text.selectionEnd;\n text.setSelectionRange(4, 5);\n if (selectionStart == selectionEnd) {\n switch (selectionStart) {\n case 0: host.onCommandKey(null, 0, KEYS.up); break;\n case 1: host.onCommandKey(null, 0, KEYS.home); break;\n case 2: host.onCommandKey(null, MODS.option, KEYS.left); break;\n case 4: host.onCommandKey(null, 0, KEYS.left); break;\n case 5: host.onCommandKey(null, 0, KEYS.right); break;\n case 7: host.onCommandKey(null, MODS.option, KEYS.right); break;\n case 8: host.onCommandKey(null, 0, KEYS.end); break;\n case 9: host.onCommandKey(null, 0, KEYS.down); break;\n }\n } else {\n switch (selectionEnd) {\n case 6: host.onCommandKey(null, MODS.shift, KEYS.right); break;\n case 7: host.onCommandKey(null, MODS.shift | MODS.option, KEYS.right); break;\n case 8: host.onCommandKey(null, MODS.shift, KEYS.end); break;\n case 9: host.onCommandKey(null, MODS.shift, KEYS.down); break;\n }\n switch (selectionStart) {\n case 0: host.onCommandKey(null, MODS.shift, KEYS.up); break;\n case 1: host.onCommandKey(null, MODS.shift, KEYS.home); break;\n case 2: host.onCommandKey(null, MODS.shift | MODS.option, KEYS.left); break;\n case 3: host.onCommandKey(null, MODS.shift, KEYS.left); break;\n }\n }\n };\n document.addEventListener(\"selectionchange\", detectArrowKeys);\n host.on(\"destroy\", function() {\n document.removeEventListener(\"selectionchange\", detectArrowKeys);\n });\n }\n};\n\nexports.TextInput = TextInput;\n});\n\nace.define(\"ace/keyboard/textinput\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/keyboard/textinput_ios\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\nvar dom = acequire(\"../lib/dom\");\nvar lang = acequire(\"../lib/lang\");\nvar BROKEN_SETDATA = useragent.isChrome < 18;\nvar USE_IE_MIME_TYPE = useragent.isIE;\n\nvar TextInputIOS = acequire(\"./textinput_ios\").TextInput;\nvar TextInput = function(parentNode, host) {\n if (useragent.isIOS)\n return TextInputIOS.call(this, parentNode, host);\n\n var text = dom.createElement(\"textarea\");\n text.className = \"ace_text-input\";\n\n text.setAttribute(\"wrap\", \"off\");\n text.setAttribute(\"autocorrect\", \"off\");\n text.setAttribute(\"autocapitalize\", \"off\");\n text.setAttribute(\"spellcheck\", false);\n\n text.style.opacity = \"0\";\n parentNode.insertBefore(text, parentNode.firstChild);\n\n var PLACEHOLDER = \"\\u2028\\u2028\";\n\n var copied = false;\n var pasted = false;\n var inComposition = false;\n var tempStyle = '';\n var isSelectionEmpty = true;\n try { var isFocused = document.activeElement === text; } catch(e) {}\n \n event.addListener(text, \"blur\", function(e) {\n host.onBlur(e);\n isFocused = false;\n });\n event.addListener(text, \"focus\", function(e) {\n isFocused = true;\n host.onFocus(e);\n resetSelection();\n });\n this.focus = function() {\n if (tempStyle) return text.focus();\n var top = text.style.top;\n text.style.position = \"fixed\";\n text.style.top = \"0px\";\n text.focus();\n setTimeout(function() {\n text.style.position = \"\";\n if (text.style.top == \"0px\")\n text.style.top = top;\n }, 0);\n };\n this.blur = function() {\n text.blur();\n };\n this.isFocused = function() {\n return isFocused;\n };\n var syncSelection = lang.delayedCall(function() {\n isFocused && resetSelection(isSelectionEmpty);\n });\n var syncValue = lang.delayedCall(function() {\n if (!inComposition) {\n text.value = PLACEHOLDER;\n isFocused && resetSelection();\n }\n });\n\n function resetSelection(isEmpty) {\n if (inComposition)\n return;\n inComposition = true;\n \n if (inputHandler) {\n var selectionStart = 0;\n var selectionEnd = isEmpty ? 0 : text.value.length - 1;\n } else {\n var selectionStart = isEmpty ? 2 : 1;\n var selectionEnd = 2;\n }\n try {\n text.setSelectionRange(selectionStart, selectionEnd);\n } catch(e){}\n \n inComposition = false;\n }\n\n function resetValue() {\n if (inComposition)\n return;\n text.value = PLACEHOLDER;\n if (useragent.isWebKit)\n syncValue.schedule();\n }\n\n useragent.isWebKit || host.addEventListener('changeSelection', function() {\n if (host.selection.isEmpty() != isSelectionEmpty) {\n isSelectionEmpty = !isSelectionEmpty;\n syncSelection.schedule();\n }\n });\n\n resetValue();\n if (isFocused)\n host.onFocus();\n\n\n var isAllSelected = function(text) {\n return text.selectionStart === 0 && text.selectionEnd === text.value.length;\n };\n\n var onSelect = function(e) {\n if (copied) {\n copied = false;\n } else if (isAllSelected(text)) {\n host.selectAll();\n resetSelection();\n } else if (inputHandler) {\n resetSelection(host.selection.isEmpty());\n }\n };\n\n var inputHandler = null;\n this.setInputHandler = function(cb) {inputHandler = cb;};\n this.getInputHandler = function() {return inputHandler;};\n var afterContextMenu = false;\n \n var sendText = function(data) {\n if (inputHandler) {\n data = inputHandler(data);\n inputHandler = null;\n }\n if (pasted) {\n resetSelection();\n if (data)\n host.onPaste(data);\n pasted = false;\n } else if (data == PLACEHOLDER.charAt(0)) {\n if (afterContextMenu)\n host.execCommand(\"del\", {source: \"ace\"});\n else // some versions of android do not fire keydown when pressing backspace\n host.execCommand(\"backspace\", {source: \"ace\"});\n } else {\n if (data.substring(0, 2) == PLACEHOLDER)\n data = data.substr(2);\n else if (data.charAt(0) == PLACEHOLDER.charAt(0))\n data = data.substr(1);\n else if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))\n data = data.slice(0, -1);\n if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))\n data = data.slice(0, -1);\n \n if (data)\n host.onTextInput(data);\n }\n if (afterContextMenu)\n afterContextMenu = false;\n };\n var onInput = function(e) {\n if (inComposition)\n return;\n var data = text.value;\n sendText(data);\n resetValue();\n };\n \n var handleClipboardData = function(e, data, forceIEMime) {\n var clipboardData = e.clipboardData || window.clipboardData;\n if (!clipboardData || BROKEN_SETDATA)\n return;\n var mime = USE_IE_MIME_TYPE || forceIEMime ? \"Text\" : \"text/plain\";\n try {\n if (data) {\n return clipboardData.setData(mime, data) !== false;\n } else {\n return clipboardData.getData(mime);\n }\n } catch(e) {\n if (!forceIEMime)\n return handleClipboardData(e, data, true);\n }\n };\n\n var doCopy = function(e, isCut) {\n var data = host.getCopyText();\n if (!data)\n return event.preventDefault(e);\n\n if (handleClipboardData(e, data)) {\n isCut ? host.onCut() : host.onCopy();\n event.preventDefault(e);\n } else {\n copied = true;\n text.value = data;\n text.select();\n setTimeout(function(){\n copied = false;\n resetValue();\n resetSelection();\n isCut ? host.onCut() : host.onCopy();\n });\n }\n };\n \n var onCut = function(e) {\n doCopy(e, true);\n };\n \n var onCopy = function(e) {\n doCopy(e, false);\n };\n \n var onPaste = function(e) {\n var data = handleClipboardData(e);\n if (typeof data == \"string\") {\n if (data)\n host.onPaste(data, e);\n if (useragent.isIE)\n setTimeout(resetSelection);\n event.preventDefault(e);\n }\n else {\n text.value = \"\";\n pasted = true;\n }\n };\n\n event.addCommandKeyListener(text, host.onCommandKey.bind(host));\n\n event.addListener(text, \"select\", onSelect);\n\n event.addListener(text, \"input\", onInput);\n\n event.addListener(text, \"cut\", onCut);\n event.addListener(text, \"copy\", onCopy);\n event.addListener(text, \"paste\", onPaste);\n if (!('oncut' in text) || !('oncopy' in text) || !('onpaste' in text)) {\n event.addListener(parentNode, \"keydown\", function(e) {\n if ((useragent.isMac && !e.metaKey) || !e.ctrlKey)\n return;\n\n switch (e.keyCode) {\n case 67:\n onCopy(e);\n break;\n case 86:\n onPaste(e);\n break;\n case 88:\n onCut(e);\n break;\n }\n });\n }\n var onCompositionStart = function(e) {\n if (inComposition || !host.onCompositionStart || host.$readOnly) \n return;\n inComposition = {};\n inComposition.canUndo = host.session.$undoManager;\n host.onCompositionStart();\n setTimeout(onCompositionUpdate, 0);\n host.on(\"mousedown\", onCompositionEnd);\n if (inComposition.canUndo && !host.selection.isEmpty()) {\n host.insert(\"\");\n host.session.markUndoGroup();\n host.selection.clearSelection();\n }\n host.session.markUndoGroup();\n };\n\n var onCompositionUpdate = function() {\n if (!inComposition || !host.onCompositionUpdate || host.$readOnly)\n return;\n var val = text.value.replace(/\\u2028/g, \"\");\n if (inComposition.lastValue === val) return;\n \n host.onCompositionUpdate(val);\n if (inComposition.lastValue)\n host.undo();\n if (inComposition.canUndo)\n inComposition.lastValue = val;\n if (inComposition.lastValue) {\n var r = host.selection.getRange();\n host.insert(inComposition.lastValue);\n host.session.markUndoGroup();\n inComposition.range = host.selection.getRange();\n host.selection.setRange(r);\n host.selection.clearSelection();\n }\n };\n\n var onCompositionEnd = function(e) {\n if (!host.onCompositionEnd || host.$readOnly) return;\n var c = inComposition;\n inComposition = false;\n var timer = setTimeout(function() {\n timer = null;\n var str = text.value.replace(/\\u2028/g, \"\");\n if (inComposition)\n return;\n else if (str == c.lastValue)\n resetValue();\n else if (!c.lastValue && str) {\n resetValue();\n sendText(str);\n }\n });\n inputHandler = function compositionInputHandler(str) {\n if (timer)\n clearTimeout(timer);\n str = str.replace(/\\u2028/g, \"\");\n if (str == c.lastValue)\n return \"\";\n if (c.lastValue && timer)\n host.undo();\n return str;\n };\n host.onCompositionEnd();\n host.removeListener(\"mousedown\", onCompositionEnd);\n if (e.type == \"compositionend\" && c.range) {\n host.selection.setRange(c.range);\n }\n var needsOnInput =\n (!!useragent.isChrome && useragent.isChrome >= 53) ||\n (!!useragent.isWebKit && useragent.isWebKit >= 603);\n\n if (needsOnInput) {\n onInput();\n }\n };\n \n \n\n var syncComposition = lang.delayedCall(onCompositionUpdate, 50);\n\n event.addListener(text, \"compositionstart\", onCompositionStart);\n if (useragent.isGecko) {\n event.addListener(text, \"text\", function(){syncComposition.schedule();});\n } else {\n event.addListener(text, \"keyup\", function(){syncComposition.schedule();});\n event.addListener(text, \"keydown\", function(){syncComposition.schedule();});\n }\n event.addListener(text, \"compositionend\", onCompositionEnd);\n\n this.getElement = function() {\n return text;\n };\n\n this.setReadOnly = function(readOnly) {\n text.readOnly = readOnly;\n };\n\n this.onContextMenu = function(e) {\n afterContextMenu = true;\n resetSelection(host.selection.isEmpty());\n host._emit(\"nativecontextmenu\", {target: host, domEvent: e});\n this.moveToMouse(e, true);\n };\n \n this.moveToMouse = function(e, bringToFront) {\n if (!tempStyle)\n tempStyle = text.style.cssText;\n text.style.cssText = (bringToFront ? \"z-index:100000;\" : \"\")\n + \"height:\" + text.style.height + \";\"\n + (useragent.isIE ? \"opacity:0.1;\" : \"\");\n\n var rect = host.container.getBoundingClientRect();\n var style = dom.computedStyle(host.container);\n var top = rect.top + (parseInt(style.borderTopWidth) || 0);\n var left = rect.left + (parseInt(rect.borderLeftWidth) || 0);\n var maxTop = rect.bottom - top - text.clientHeight -2;\n var move = function(e) {\n text.style.left = e.clientX - left - 2 + \"px\";\n text.style.top = Math.min(e.clientY - top - 2, maxTop) + \"px\";\n }; \n move(e);\n\n if (e.type != \"mousedown\")\n return;\n\n if (host.renderer.$keepTextAreaAtCursor)\n host.renderer.$keepTextAreaAtCursor = null;\n\n clearTimeout(closeTimeout);\n if (useragent.isWin)\n event.capture(host.container, move, onContextMenuClose);\n };\n\n this.onContextMenuClose = onContextMenuClose;\n var closeTimeout;\n function onContextMenuClose() {\n clearTimeout(closeTimeout);\n closeTimeout = setTimeout(function () {\n if (tempStyle) {\n text.style.cssText = tempStyle;\n tempStyle = '';\n }\n if (host.renderer.$keepTextAreaAtCursor == null) {\n host.renderer.$keepTextAreaAtCursor = true;\n host.renderer.$moveTextAreaToCursor();\n }\n }, 0);\n }\n\n var onContextMenu = function(e) {\n host.textInput.onContextMenu(e);\n onContextMenuClose();\n };\n event.addListener(text, \"mouseup\", onContextMenu);\n event.addListener(text, \"mousedown\", function(e) {\n e.preventDefault();\n onContextMenuClose();\n });\n event.addListener(host.renderer.scroller, \"contextmenu\", onContextMenu);\n event.addListener(text, \"contextmenu\", onContextMenu);\n};\n\nexports.TextInput = TextInput;\n});\n\nace.define(\"ace/mouse/default_handlers\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\n\nvar DRAG_OFFSET = 0; // pixels\nvar SCROLL_COOLDOWN_T = 250; // milliseconds\n\nfunction DefaultHandlers(mouseHandler) {\n mouseHandler.$clickSelection = null;\n\n var editor = mouseHandler.editor;\n editor.setDefaultHandler(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n editor.setDefaultHandler(\"dblclick\", this.onDoubleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"tripleclick\", this.onTripleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"quadclick\", this.onQuadClick.bind(mouseHandler));\n editor.setDefaultHandler(\"mousewheel\", this.onMouseWheel.bind(mouseHandler));\n editor.setDefaultHandler(\"touchmove\", this.onTouchMove.bind(mouseHandler));\n\n var exports = [\"select\", \"startSelect\", \"selectEnd\", \"selectAllEnd\", \"selectByWordsEnd\",\n \"selectByLinesEnd\", \"dragWait\", \"dragWaitEnd\", \"focusWait\"];\n\n exports.forEach(function(x) {\n mouseHandler[x] = this[x];\n }, this);\n\n mouseHandler.selectByLines = this.extendSelectionBy.bind(mouseHandler, \"getLineRange\");\n mouseHandler.selectByWords = this.extendSelectionBy.bind(mouseHandler, \"getWordRange\");\n}\n\n(function() {\n\n this.onMouseDown = function(ev) {\n var inSelection = ev.inSelection();\n var pos = ev.getDocumentPosition();\n this.mousedownEvent = ev;\n var editor = this.editor;\n\n var button = ev.getButton();\n if (button !== 0) {\n var selectionRange = editor.getSelectionRange();\n var selectionEmpty = selectionRange.isEmpty();\n editor.$blockScrolling++;\n if (selectionEmpty || button == 1)\n editor.selection.moveToPosition(pos);\n editor.$blockScrolling--;\n if (button == 2) {\n editor.textInput.onContextMenu(ev.domEvent);\n if (!useragent.isMozilla)\n ev.preventDefault();\n }\n return;\n }\n\n this.mousedownEvent.time = Date.now();\n if (inSelection && !editor.isFocused()) {\n editor.focus();\n if (this.$focusTimout && !this.$clickSelection && !editor.inMultiSelectMode) {\n this.setState(\"focusWait\");\n this.captureMouse(ev);\n return;\n }\n }\n\n this.captureMouse(ev);\n this.startSelect(pos, ev.domEvent._clicks > 1);\n return ev.preventDefault();\n };\n\n this.startSelect = function(pos, waitForClickSelection) {\n pos = pos || this.editor.renderer.screenToTextCoordinates(this.x, this.y);\n var editor = this.editor;\n editor.$blockScrolling++;\n if (this.mousedownEvent.getShiftKey())\n editor.selection.selectToPosition(pos);\n else if (!waitForClickSelection)\n editor.selection.moveToPosition(pos);\n if (!waitForClickSelection)\n this.select();\n if (editor.renderer.scroller.setCapture) {\n editor.renderer.scroller.setCapture();\n }\n editor.setStyle(\"ace_selecting\");\n this.setState(\"select\");\n editor.$blockScrolling--;\n };\n\n this.select = function() {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n editor.$blockScrolling++;\n if (this.$clickSelection) {\n var cmp = this.$clickSelection.comparePoint(cursor);\n\n if (cmp == -1) {\n anchor = this.$clickSelection.end;\n } else if (cmp == 1) {\n anchor = this.$clickSelection.start;\n } else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.$blockScrolling--;\n editor.renderer.scrollCursorIntoView();\n };\n\n this.extendSelectionBy = function(unitName) {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n var range = editor.selection[unitName](cursor.row, cursor.column);\n editor.$blockScrolling++;\n if (this.$clickSelection) {\n var cmpStart = this.$clickSelection.comparePoint(range.start);\n var cmpEnd = this.$clickSelection.comparePoint(range.end);\n\n if (cmpStart == -1 && cmpEnd <= 0) {\n anchor = this.$clickSelection.end;\n if (range.end.row != cursor.row || range.end.column != cursor.column)\n cursor = range.start;\n } else if (cmpEnd == 1 && cmpStart >= 0) {\n anchor = this.$clickSelection.start;\n if (range.start.row != cursor.row || range.start.column != cursor.column)\n cursor = range.end;\n } else if (cmpStart == -1 && cmpEnd == 1) {\n cursor = range.end;\n anchor = range.start;\n } else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.$blockScrolling--;\n editor.renderer.scrollCursorIntoView();\n };\n\n this.selectEnd =\n this.selectAllEnd =\n this.selectByWordsEnd =\n this.selectByLinesEnd = function() {\n this.$clickSelection = null;\n this.editor.unsetStyle(\"ace_selecting\");\n if (this.editor.renderer.scroller.releaseCapture) {\n this.editor.renderer.scroller.releaseCapture();\n }\n };\n\n this.focusWait = function() {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n var time = Date.now();\n\n if (distance > DRAG_OFFSET || time - this.mousedownEvent.time > this.$focusTimout)\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n };\n\n this.onDoubleClick = function(ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n var session = editor.session;\n\n var range = session.getBracketRange(pos);\n if (range) {\n if (range.isEmpty()) {\n range.start.column--;\n range.end.column++;\n }\n this.setState(\"select\");\n } else {\n range = editor.selection.getWordRange(pos.row, pos.column);\n this.setState(\"selectByWords\");\n }\n this.$clickSelection = range;\n this.select();\n };\n\n this.onTripleClick = function(ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n\n this.setState(\"selectByLines\");\n var range = editor.getSelectionRange();\n if (range.isMultiLine() && range.contains(pos.row, pos.column)) {\n this.$clickSelection = editor.selection.getLineRange(range.start.row);\n this.$clickSelection.end = editor.selection.getLineRange(range.end.row).end;\n } else {\n this.$clickSelection = editor.selection.getLineRange(pos.row);\n }\n this.select();\n };\n\n this.onQuadClick = function(ev) {\n var editor = this.editor;\n\n editor.selectAll();\n this.$clickSelection = editor.getSelectionRange();\n this.setState(\"selectAll\");\n };\n\n this.onMouseWheel = function(ev) {\n if (ev.getAccelKey())\n return;\n if (ev.getShiftKey() && ev.wheelY && !ev.wheelX) {\n ev.wheelX = ev.wheelY;\n ev.wheelY = 0;\n }\n \n var editor = this.editor;\n\n if (!this.$lastScroll)\n this.$lastScroll = { t: 0, vx: 0, vy: 0, allowed: 0 };\n\n var prevScroll = this.$lastScroll;\n var t = ev.domEvent.timeStamp;\n var dt = t - prevScroll.t;\n var vx = ev.wheelX / dt;\n var vy = ev.wheelY / dt;\n if (dt < SCROLL_COOLDOWN_T) {\n vx = (vx + prevScroll.vx) / 2;\n vy = (vy + prevScroll.vy) / 2;\n }\n\n var direction = Math.abs(vx / vy);\n\n var canScroll = false;\n if (direction >= 1 && editor.renderer.isScrollableBy(ev.wheelX * ev.speed, 0))\n canScroll = true;\n if (direction <= 1 && editor.renderer.isScrollableBy(0, ev.wheelY * ev.speed))\n canScroll = true;\n\n if (canScroll) {\n prevScroll.allowed = t;\n } else if (t - prevScroll.allowed < SCROLL_COOLDOWN_T) {\n var isSlower = Math.abs(vx) <= 1.1 * Math.abs(prevScroll.vx)\n && Math.abs(vy) <= 1.1 * Math.abs(prevScroll.vy);\n if (isSlower) {\n canScroll = true;\n prevScroll.allowed = t;\n }\n else {\n prevScroll.allowed = 0;\n }\n }\n\n prevScroll.t = t;\n prevScroll.vx = vx;\n prevScroll.vy = vy;\n\n if (canScroll) {\n editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n return ev.stop();\n }\n };\n\n this.onTouchMove = function(ev) {\n this.editor._emit(\"mousewheel\", ev);\n };\n\n}).call(DefaultHandlers.prototype);\n\nexports.DefaultHandlers = DefaultHandlers;\n\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\n\nfunction calcRangeOrientation(range, cursor) {\n if (range.start.row == range.end.row)\n var cmp = 2 * cursor.column - range.start.column - range.end.column;\n else if (range.start.row == range.end.row - 1 && !range.start.column && !range.end.column)\n var cmp = cursor.column - 4;\n else\n var cmp = 2 * cursor.row - range.start.row - range.end.row;\n\n if (cmp < 0)\n return {cursor: range.start, anchor: range.end};\n else\n return {cursor: range.end, anchor: range.start};\n}\n\n});\n\nace.define(\"ace/tooltip\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nfunction Tooltip (parentNode) {\n this.isOpen = false;\n this.$element = null;\n this.$parentNode = parentNode;\n}\n\n(function() {\n this.$init = function() {\n this.$element = dom.createElement(\"div\");\n this.$element.className = \"ace_tooltip\";\n this.$element.style.display = \"none\";\n this.$parentNode.appendChild(this.$element);\n return this.$element;\n };\n this.getElement = function() {\n return this.$element || this.$init();\n };\n this.setText = function(text) {\n dom.setInnerText(this.getElement(), text);\n };\n this.setHtml = function(html) {\n this.getElement().innerHTML = html;\n };\n this.setPosition = function(x, y) {\n this.getElement().style.left = x + \"px\";\n this.getElement().style.top = y + \"px\";\n };\n this.setClassName = function(className) {\n dom.addCssClass(this.getElement(), className);\n };\n this.show = function(text, x, y) {\n if (text != null)\n this.setText(text);\n if (x != null && y != null)\n this.setPosition(x, y);\n if (!this.isOpen) {\n this.getElement().style.display = \"block\";\n this.isOpen = true;\n }\n };\n\n this.hide = function() {\n if (this.isOpen) {\n this.getElement().style.display = \"none\";\n this.isOpen = false;\n }\n };\n this.getHeight = function() {\n return this.getElement().offsetHeight;\n };\n this.getWidth = function() {\n return this.getElement().offsetWidth;\n };\n\n this.destroy = function() {\n this.isOpen = false;\n if (this.$element && this.$element.parentNode) {\n this.$element.parentNode.removeChild(this.$element);\n }\n };\n\n}).call(Tooltip.prototype);\n\nexports.Tooltip = Tooltip;\n});\n\nace.define(\"ace/mouse/default_gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/event\",\"ace/tooltip\"], function(acequire, exports, module) {\n\"use strict\";\nvar dom = acequire(\"../lib/dom\");\nvar oop = acequire(\"../lib/oop\");\nvar event = acequire(\"../lib/event\");\nvar Tooltip = acequire(\"../tooltip\").Tooltip;\n\nfunction GutterHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var gutter = editor.renderer.$gutterLayer;\n var tooltip = new GutterTooltip(editor.container);\n\n mouseHandler.editor.setDefaultHandler(\"guttermousedown\", function(e) {\n if (!editor.isFocused() || e.getButton() != 0)\n return;\n var gutterRegion = gutter.getRegion(e);\n\n if (gutterRegion == \"foldWidgets\")\n return;\n\n var row = e.getDocumentPosition().row;\n var selection = editor.session.selection;\n\n if (e.getShiftKey())\n selection.selectTo(row, 0);\n else {\n if (e.domEvent.detail == 2) {\n editor.selectAll();\n return e.preventDefault();\n }\n mouseHandler.$clickSelection = editor.selection.getLineRange(row);\n }\n mouseHandler.setState(\"selectByLines\");\n mouseHandler.captureMouse(e);\n return e.preventDefault();\n });\n\n\n var tooltipTimeout, mouseEvent, tooltipAnnotation;\n\n function showTooltip() {\n var row = mouseEvent.getDocumentPosition().row;\n var annotation = gutter.$annotations[row];\n if (!annotation)\n return hideTooltip();\n\n var maxRow = editor.session.getLength();\n if (row == maxRow) {\n var screenRow = editor.renderer.pixelToScreenCoordinates(0, mouseEvent.y).row;\n var pos = mouseEvent.$pos;\n if (screenRow > editor.session.documentToScreenRow(pos.row, pos.column))\n return hideTooltip();\n }\n\n if (tooltipAnnotation == annotation)\n return;\n tooltipAnnotation = annotation.text.join(\"<br/>\");\n\n tooltip.setHtml(tooltipAnnotation);\n tooltip.show();\n editor._signal(\"showGutterTooltip\", tooltip);\n editor.on(\"mousewheel\", hideTooltip);\n\n if (mouseHandler.$tooltipFollowsMouse) {\n moveTooltip(mouseEvent);\n } else {\n var gutterElement = mouseEvent.domEvent.target;\n var rect = gutterElement.getBoundingClientRect();\n var style = tooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n }\n }\n\n function hideTooltip() {\n if (tooltipTimeout)\n tooltipTimeout = clearTimeout(tooltipTimeout);\n if (tooltipAnnotation) {\n tooltip.hide();\n tooltipAnnotation = null;\n editor._signal(\"hideGutterTooltip\", tooltip);\n editor.removeEventListener(\"mousewheel\", hideTooltip);\n }\n }\n\n function moveTooltip(e) {\n tooltip.setPosition(e.x, e.y);\n }\n\n mouseHandler.editor.setDefaultHandler(\"guttermousemove\", function(e) {\n var target = e.domEvent.target || e.domEvent.srcElement;\n if (dom.hasCssClass(target, \"ace_fold-widget\"))\n return hideTooltip();\n\n if (tooltipAnnotation && mouseHandler.$tooltipFollowsMouse)\n moveTooltip(e);\n\n mouseEvent = e;\n if (tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function() {\n tooltipTimeout = null;\n if (mouseEvent && !mouseHandler.isMousePressed)\n showTooltip();\n else\n hideTooltip();\n }, 50);\n });\n\n event.addListener(editor.renderer.$gutter, \"mouseout\", function(e) {\n mouseEvent = null;\n if (!tooltipAnnotation || tooltipTimeout)\n return;\n\n tooltipTimeout = setTimeout(function() {\n tooltipTimeout = null;\n hideTooltip();\n }, 50);\n });\n \n editor.on(\"changeSession\", hideTooltip);\n}\n\nfunction GutterTooltip(parentNode) {\n Tooltip.call(this, parentNode);\n}\n\noop.inherits(GutterTooltip, Tooltip);\n\n(function(){\n this.setPosition = function(x, y) {\n var windowWidth = window.innerWidth || document.documentElement.clientWidth;\n var windowHeight = window.innerHeight || document.documentElement.clientHeight;\n var width = this.getWidth();\n var height = this.getHeight();\n x += 15;\n y += 15;\n if (x + width > windowWidth) {\n x -= (x + width) - windowWidth;\n }\n if (y + height > windowHeight) {\n y -= 20 + height;\n }\n Tooltip.prototype.setPosition.call(this, x, y);\n };\n\n}).call(GutterTooltip.prototype);\n\n\n\nexports.GutterHandler = GutterHandler;\n\n});\n\nace.define(\"ace/mouse/mouse_event\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\nvar MouseEvent = exports.MouseEvent = function(domEvent, editor) {\n this.domEvent = domEvent;\n this.editor = editor;\n \n this.x = this.clientX = domEvent.clientX;\n this.y = this.clientY = domEvent.clientY;\n\n this.$pos = null;\n this.$inSelection = null;\n \n this.propagationStopped = false;\n this.defaultPrevented = false;\n};\n\n(function() { \n \n this.stopPropagation = function() {\n event.stopPropagation(this.domEvent);\n this.propagationStopped = true;\n };\n \n this.preventDefault = function() {\n event.preventDefault(this.domEvent);\n this.defaultPrevented = true;\n };\n \n this.stop = function() {\n this.stopPropagation();\n this.preventDefault();\n };\n this.getDocumentPosition = function() {\n if (this.$pos)\n return this.$pos;\n \n this.$pos = this.editor.renderer.screenToTextCoordinates(this.clientX, this.clientY);\n return this.$pos;\n };\n this.inSelection = function() {\n if (this.$inSelection !== null)\n return this.$inSelection;\n \n var editor = this.editor;\n \n\n var selectionRange = editor.getSelectionRange();\n if (selectionRange.isEmpty())\n this.$inSelection = false;\n else {\n var pos = this.getDocumentPosition();\n this.$inSelection = selectionRange.contains(pos.row, pos.column);\n }\n\n return this.$inSelection;\n };\n this.getButton = function() {\n return event.getButton(this.domEvent);\n };\n this.getShiftKey = function() {\n return this.domEvent.shiftKey;\n };\n \n this.getAccelKey = useragent.isMac\n ? function() { return this.domEvent.metaKey; }\n : function() { return this.domEvent.ctrlKey; };\n \n}).call(MouseEvent.prototype);\n\n});\n\nace.define(\"ace/mouse/dragdrop_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\n\nvar AUTOSCROLL_DELAY = 200;\nvar SCROLL_CURSOR_DELAY = 200;\nvar SCROLL_CURSOR_HYSTERESIS = 5;\n\nfunction DragdropHandler(mouseHandler) {\n\n var editor = mouseHandler.editor;\n\n var blankImage = dom.createElement(\"img\");\n blankImage.src = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n if (useragent.isOpera)\n blankImage.style.cssText = \"width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;\";\n\n var exports = [\"dragWait\", \"dragWaitEnd\", \"startDrag\", \"dragReadyEnd\", \"onMouseDrag\"];\n\n exports.forEach(function(x) {\n mouseHandler[x] = this[x];\n }, this);\n editor.addEventListener(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n\n\n var mouseTarget = editor.container;\n var dragSelectionMarker, x, y;\n var timerId, range;\n var dragCursor, counter = 0;\n var dragOperation;\n var isInternal;\n var autoScrollStartTime;\n var cursorMovedTime;\n var cursorPointOnCaretMoved;\n\n this.onDragStart = function(e) {\n if (this.cancelDrag || !mouseTarget.draggable) {\n var self = this;\n setTimeout(function(){\n self.startSelect();\n self.captureMouse(e);\n }, 0);\n return e.preventDefault();\n }\n range = editor.getSelectionRange();\n\n var dataTransfer = e.dataTransfer;\n dataTransfer.effectAllowed = editor.getReadOnly() ? \"copy\" : \"copyMove\";\n if (useragent.isOpera) {\n editor.container.appendChild(blankImage);\n blankImage.scrollTop = 0;\n }\n dataTransfer.setDragImage && dataTransfer.setDragImage(blankImage, 0, 0);\n if (useragent.isOpera) {\n editor.container.removeChild(blankImage);\n }\n dataTransfer.clearData();\n dataTransfer.setData(\"Text\", editor.session.getTextRange());\n\n isInternal = true;\n this.setState(\"drag\");\n };\n\n this.onDragEnd = function(e) {\n mouseTarget.draggable = false;\n isInternal = false;\n this.setState(null);\n if (!editor.getReadOnly()) {\n var dropEffect = e.dataTransfer.dropEffect;\n if (!dragOperation && dropEffect == \"move\")\n editor.session.remove(editor.getSelectionRange());\n editor.renderer.$cursorLayer.setBlinking(true);\n }\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n };\n\n this.onDragEnter = function(e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker)\n addDragMarker();\n counter++;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n\n this.onDragOver = function(e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker) {\n addDragMarker();\n counter++;\n }\n if (onMouseMoveTimer !== null)\n onMouseMoveTimer = null;\n\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n\n this.onDragLeave = function(e) {\n counter--;\n if (counter <= 0 && dragSelectionMarker) {\n clearDragMarker();\n dragOperation = null;\n return event.preventDefault(e);\n }\n };\n\n this.onDrop = function(e) {\n if (!dragCursor)\n return;\n var dataTransfer = e.dataTransfer;\n if (isInternal) {\n switch (dragOperation) {\n case \"move\":\n if (range.contains(dragCursor.row, dragCursor.column)) {\n range = {\n start: dragCursor,\n end: dragCursor\n };\n } else {\n range = editor.moveText(range, dragCursor);\n }\n break;\n case \"copy\":\n range = editor.moveText(range, dragCursor, true);\n break;\n }\n } else {\n var dropData = dataTransfer.getData('Text');\n range = {\n start: dragCursor,\n end: editor.session.insert(dragCursor, dropData)\n };\n editor.focus();\n dragOperation = null;\n }\n clearDragMarker();\n return event.preventDefault(e);\n };\n\n event.addListener(mouseTarget, \"dragstart\", this.onDragStart.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragend\", this.onDragEnd.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragenter\", this.onDragEnter.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragover\", this.onDragOver.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragleave\", this.onDragLeave.bind(mouseHandler));\n event.addListener(mouseTarget, \"drop\", this.onDrop.bind(mouseHandler));\n\n function scrollCursorIntoView(cursor, prevCursor) {\n var now = Date.now();\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n var hMovement = !prevCursor || cursor.column != prevCursor.column;\n if (!cursorMovedTime || vMovement || hMovement) {\n editor.$blockScrolling += 1;\n editor.moveCursorToPosition(cursor);\n editor.$blockScrolling -= 1;\n cursorMovedTime = now;\n cursorPointOnCaretMoved = {x: x, y: y};\n } else {\n var distance = calcDistance(cursorPointOnCaretMoved.x, cursorPointOnCaretMoved.y, x, y);\n if (distance > SCROLL_CURSOR_HYSTERESIS) {\n cursorMovedTime = null;\n } else if (now - cursorMovedTime >= SCROLL_CURSOR_DELAY) {\n editor.renderer.scrollCursorIntoView();\n cursorMovedTime = null;\n }\n }\n }\n\n function autoScroll(cursor, prevCursor) {\n var now = Date.now();\n var lineHeight = editor.renderer.layerConfig.lineHeight;\n var characterWidth = editor.renderer.layerConfig.characterWidth;\n var editorRect = editor.renderer.scroller.getBoundingClientRect();\n var offsets = {\n x: {\n left: x - editorRect.left,\n right: editorRect.right - x\n },\n y: {\n top: y - editorRect.top,\n bottom: editorRect.bottom - y\n }\n };\n var nearestXOffset = Math.min(offsets.x.left, offsets.x.right);\n var nearestYOffset = Math.min(offsets.y.top, offsets.y.bottom);\n var scrollCursor = {row: cursor.row, column: cursor.column};\n if (nearestXOffset / characterWidth <= 2) {\n scrollCursor.column += (offsets.x.left < offsets.x.right ? -3 : +2);\n }\n if (nearestYOffset / lineHeight <= 1) {\n scrollCursor.row += (offsets.y.top < offsets.y.bottom ? -1 : +1);\n }\n var vScroll = cursor.row != scrollCursor.row;\n var hScroll = cursor.column != scrollCursor.column;\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n if (vScroll || (hScroll && !vMovement)) {\n if (!autoScrollStartTime)\n autoScrollStartTime = now;\n else if (now - autoScrollStartTime >= AUTOSCROLL_DELAY)\n editor.renderer.scrollCursorIntoView(scrollCursor);\n } else {\n autoScrollStartTime = null;\n }\n }\n\n function onDragInterval() {\n var prevCursor = dragCursor;\n dragCursor = editor.renderer.screenToTextCoordinates(x, y);\n scrollCursorIntoView(dragCursor, prevCursor);\n autoScroll(dragCursor, prevCursor);\n }\n\n function addDragMarker() {\n range = editor.selection.toOrientedRange();\n dragSelectionMarker = editor.session.addMarker(range, \"ace_selection\", editor.getSelectionStyle());\n editor.clearSelection();\n if (editor.isFocused())\n editor.renderer.$cursorLayer.setBlinking(false);\n clearInterval(timerId);\n onDragInterval();\n timerId = setInterval(onDragInterval, 20);\n counter = 0;\n event.addListener(document, \"mousemove\", onMouseMove);\n }\n\n function clearDragMarker() {\n clearInterval(timerId);\n editor.session.removeMarker(dragSelectionMarker);\n dragSelectionMarker = null;\n editor.$blockScrolling += 1;\n editor.selection.fromOrientedRange(range);\n editor.$blockScrolling -= 1;\n if (editor.isFocused() && !isInternal)\n editor.renderer.$cursorLayer.setBlinking(!editor.getReadOnly());\n range = null;\n dragCursor = null;\n counter = 0;\n autoScrollStartTime = null;\n cursorMovedTime = null;\n event.removeListener(document, \"mousemove\", onMouseMove);\n }\n var onMouseMoveTimer = null;\n function onMouseMove() {\n if (onMouseMoveTimer == null) {\n onMouseMoveTimer = setTimeout(function() {\n if (onMouseMoveTimer != null && dragSelectionMarker)\n clearDragMarker();\n }, 20);\n }\n }\n\n function canAccept(dataTransfer) {\n var types = dataTransfer.types;\n return !types || Array.prototype.some.call(types, function(type) {\n return type == 'text/plain' || type == 'Text';\n });\n }\n\n function getDropEffect(e) {\n var copyAllowed = ['copy', 'copymove', 'all', 'uninitialized'];\n var moveAllowed = ['move', 'copymove', 'linkmove', 'all', 'uninitialized'];\n\n var copyModifierState = useragent.isMac ? e.altKey : e.ctrlKey;\n var effectAllowed = \"uninitialized\";\n try {\n effectAllowed = e.dataTransfer.effectAllowed.toLowerCase();\n } catch (e) {}\n var dropEffect = \"none\";\n\n if (copyModifierState && copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n else if (moveAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"move\";\n else if (copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n\n return dropEffect;\n }\n}\n\n(function() {\n\n this.dragWait = function() {\n var interval = Date.now() - this.mousedownEvent.time;\n if (interval > this.editor.getDragDelay())\n this.startDrag();\n };\n\n this.dragWaitEnd = function() {\n var target = this.editor.container;\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n this.selectEnd();\n };\n\n this.dragReadyEnd = function(e) {\n this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly());\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n this.dragWaitEnd();\n };\n\n this.startDrag = function(){\n this.cancelDrag = false;\n var editor = this.editor;\n var target = editor.container;\n target.draggable = true;\n editor.renderer.$cursorLayer.setBlinking(false);\n editor.setStyle(\"ace_dragging\");\n var cursorStyle = useragent.isWin ? \"default\" : \"move\";\n editor.renderer.setCursorStyle(cursorStyle);\n this.setState(\"dragReady\");\n };\n\n this.onMouseDrag = function(e) {\n var target = this.editor.container;\n if (useragent.isIE && this.state == \"dragReady\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 3)\n target.dragDrop();\n }\n if (this.state === \"dragWait\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 0) {\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n }\n }\n };\n\n this.onMouseDown = function(e) {\n if (!this.$dragEnabled)\n return;\n this.mousedownEvent = e;\n var editor = this.editor;\n\n var inSelection = e.inSelection();\n var button = e.getButton();\n var clickCount = e.domEvent.detail || 1;\n if (clickCount === 1 && button === 0 && inSelection) {\n if (e.editor.inMultiSelectMode && (e.getAccelKey() || e.getShiftKey()))\n return;\n this.mousedownEvent.time = Date.now();\n var eventTarget = e.domEvent.target || e.domEvent.srcElement;\n if (\"unselectable\" in eventTarget)\n eventTarget.unselectable = \"on\";\n if (editor.getDragDelay()) {\n if (useragent.isWebKit) {\n this.cancelDrag = true;\n var mouseTarget = editor.container;\n mouseTarget.draggable = true;\n }\n this.setState(\"dragWait\");\n } else {\n this.startDrag();\n }\n this.captureMouse(e, this.onMouseDrag.bind(this));\n e.defaultPrevented = true;\n }\n };\n\n}).call(DragdropHandler.prototype);\n\n\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\n\nexports.DragdropHandler = DragdropHandler;\n\n});\n\nace.define(\"ace/lib/net\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\nvar dom = acequire(\"./dom\");\n\nexports.get = function (url, callback) {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n callback(xhr.responseText);\n }\n };\n xhr.send(null);\n};\n\nexports.loadScript = function(path, callback) {\n var head = dom.getDocumentHead();\n var s = document.createElement('script');\n\n s.src = path;\n head.appendChild(s);\n\n s.onload = s.onreadystatechange = function(_, isAbort) {\n if (isAbort || !s.readyState || s.readyState == \"loaded\" || s.readyState == \"complete\") {\n s = s.onload = s.onreadystatechange = null;\n if (!isAbort)\n callback();\n }\n };\n};\nexports.qualifyURL = function(url) {\n var a = document.createElement('a');\n a.href = url;\n return a.href;\n};\n\n});\n\nace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar EventEmitter = {};\nvar stopPropagation = function() { this.propagationStopped = true; };\nvar preventDefault = function() { this.defaultPrevented = true; };\n\nEventEmitter._emit =\nEventEmitter._dispatchEvent = function(eventName, e) {\n this._eventRegistry || (this._eventRegistry = {});\n this._defaultHandlers || (this._defaultHandlers = {});\n\n var listeners = this._eventRegistry[eventName] || [];\n var defaultHandler = this._defaultHandlers[eventName];\n if (!listeners.length && !defaultHandler)\n return;\n\n if (typeof e != \"object\" || !e)\n e = {};\n\n if (!e.type)\n e.type = eventName;\n if (!e.stopPropagation)\n e.stopPropagation = stopPropagation;\n if (!e.preventDefault)\n e.preventDefault = preventDefault;\n\n listeners = listeners.slice();\n for (var i=0; i<listeners.length; i++) {\n listeners[i](e, this);\n if (e.propagationStopped)\n break;\n }\n \n if (defaultHandler && !e.defaultPrevented)\n return defaultHandler(e, this);\n};\n\n\nEventEmitter._signal = function(eventName, e) {\n var listeners = (this._eventRegistry || {})[eventName];\n if (!listeners)\n return;\n listeners = listeners.slice();\n for (var i=0; i<listeners.length; i++)\n listeners[i](e, this);\n};\n\nEventEmitter.once = function(eventName, callback) {\n var _self = this;\n callback && this.addEventListener(eventName, function newCallback() {\n _self.removeEventListener(eventName, newCallback);\n callback.apply(null, arguments);\n });\n};\n\n\nEventEmitter.setDefaultHandler = function(eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n handlers = this._defaultHandlers = {_disabled_: {}};\n \n if (handlers[eventName]) {\n var old = handlers[eventName];\n var disabled = handlers._disabled_[eventName];\n if (!disabled)\n handlers._disabled_[eventName] = disabled = [];\n disabled.push(old);\n var i = disabled.indexOf(callback);\n if (i != -1) \n disabled.splice(i, 1);\n }\n handlers[eventName] = callback;\n};\nEventEmitter.removeDefaultHandler = function(eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n return;\n var disabled = handlers._disabled_[eventName];\n \n if (handlers[eventName] == callback) {\n var old = handlers[eventName];\n if (disabled)\n this.setDefaultHandler(eventName, disabled.pop());\n } else if (disabled) {\n var i = disabled.indexOf(callback);\n if (i != -1)\n disabled.splice(i, 1);\n }\n};\n\nEventEmitter.on =\nEventEmitter.addEventListener = function(eventName, callback, capturing) {\n this._eventRegistry = this._eventRegistry || {};\n\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n listeners = this._eventRegistry[eventName] = [];\n\n if (listeners.indexOf(callback) == -1)\n listeners[capturing ? \"unshift\" : \"push\"](callback);\n return callback;\n};\n\nEventEmitter.off =\nEventEmitter.removeListener =\nEventEmitter.removeEventListener = function(eventName, callback) {\n this._eventRegistry = this._eventRegistry || {};\n\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n return;\n\n var index = listeners.indexOf(callback);\n if (index !== -1)\n listeners.splice(index, 1);\n};\n\nEventEmitter.removeAllListeners = function(eventName) {\n if (this._eventRegistry) this._eventRegistry[eventName] = [];\n};\n\nexports.EventEmitter = EventEmitter;\n\n});\n\nace.define(\"ace/lib/app_config\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"no use strict\";\n\nvar oop = acequire(\"./oop\");\nvar EventEmitter = acequire(\"./event_emitter\").EventEmitter;\n\nvar optionsProvider = {\n setOptions: function(optList) {\n Object.keys(optList).forEach(function(key) {\n this.setOption(key, optList[key]);\n }, this);\n },\n getOptions: function(optionNames) {\n var result = {};\n if (!optionNames) {\n optionNames = Object.keys(this.$options);\n } else if (!Array.isArray(optionNames)) {\n result = optionNames;\n optionNames = Object.keys(result);\n }\n optionNames.forEach(function(key) {\n result[key] = this.getOption(key);\n }, this);\n return result;\n },\n setOption: function(name, value) {\n if (this[\"$\" + name] === value)\n return;\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].setOption(name, value);\n\n if (!opt.handlesSet)\n this[\"$\" + name] = value;\n if (opt && opt.set)\n opt.set.call(this, value);\n },\n getOption: function(name) {\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].getOption(name);\n return opt && opt.get ? opt.get.call(this) : this[\"$\" + name];\n }\n};\n\nfunction warn(message) {\n if (typeof console != \"undefined\" && console.warn)\n console.warn.apply(console, arguments);\n}\n\nfunction reportError(msg, data) {\n var e = new Error(msg);\n e.data = data;\n if (typeof console == \"object\" && console.error)\n console.error(e);\n setTimeout(function() { throw e; });\n}\n\nvar AppConfig = function() {\n this.$defaultOptions = {};\n};\n\n(function() {\n oop.implement(this, EventEmitter);\n this.defineOptions = function(obj, path, options) {\n if (!obj.$options)\n this.$defaultOptions[path] = obj.$options = {};\n\n Object.keys(options).forEach(function(key) {\n var opt = options[key];\n if (typeof opt == \"string\")\n opt = {forwardTo: opt};\n\n opt.name || (opt.name = key);\n obj.$options[opt.name] = opt;\n if (\"initialValue\" in opt)\n obj[\"$\" + opt.name] = opt.initialValue;\n });\n oop.implement(obj, optionsProvider);\n\n return this;\n };\n\n this.resetOptions = function(obj) {\n Object.keys(obj.$options).forEach(function(key) {\n var opt = obj.$options[key];\n if (\"value\" in opt)\n obj.setOption(key, opt.value);\n });\n };\n\n this.setDefaultValue = function(path, name, value) {\n var opts = this.$defaultOptions[path] || (this.$defaultOptions[path] = {});\n if (opts[name]) {\n if (opts.forwardTo)\n this.setDefaultValue(opts.forwardTo, name, value);\n else\n opts[name].value = value;\n }\n };\n\n this.setDefaultValues = function(path, optionHash) {\n Object.keys(optionHash).forEach(function(key) {\n this.setDefaultValue(path, key, optionHash[key]);\n }, this);\n };\n \n this.warn = warn;\n this.reportError = reportError;\n \n}).call(AppConfig.prototype);\n\nexports.AppConfig = AppConfig;\n\n});\n\nace.define(\"ace/config\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/app_config\"], function(acequire, exports, module) {\n\"no use strict\";\n\nvar lang = acequire(\"./lib/lang\");\nvar oop = acequire(\"./lib/oop\");\nvar net = acequire(\"./lib/net\");\nvar AppConfig = acequire(\"./lib/app_config\").AppConfig;\n\nmodule.exports = exports = new AppConfig();\n\nvar global = (function() {\n return this || typeof window != \"undefined\" && window;\n})();\n\nvar options = {\n packaged: false,\n workerPath: null,\n modePath: null,\n themePath: null,\n basePath: \"\",\n suffix: \".js\",\n $moduleUrls: {}\n};\n\nexports.get = function(key) {\n if (!options.hasOwnProperty(key))\n throw new Error(\"Unknown config key: \" + key);\n\n return options[key];\n};\n\nexports.set = function(key, value) {\n if (!options.hasOwnProperty(key))\n throw new Error(\"Unknown config key: \" + key);\n\n options[key] = value;\n};\n\nexports.all = function() {\n return lang.copyObject(options);\n};\nexports.moduleUrl = function(name, component) {\n if (options.$moduleUrls[name])\n return options.$moduleUrls[name];\n\n var parts = name.split(\"/\");\n component = component || parts[parts.length - 2] || \"\";\n var sep = component == \"snippets\" ? \"/\" : \"-\";\n var base = parts[parts.length - 1];\n if (component == \"worker\" && sep == \"-\") {\n var re = new RegExp(\"^\" + component + \"[\\\\-_]|[\\\\-_]\" + component + \"$\", \"g\");\n base = base.replace(re, \"\");\n }\n\n if ((!base || base == component) && parts.length > 1)\n base = parts[parts.length - 2];\n var path = options[component + \"Path\"];\n if (path == null) {\n path = options.basePath;\n } else if (sep == \"/\") {\n component = sep = \"\";\n }\n if (path && path.slice(-1) != \"/\")\n path += \"/\";\n return path + component + sep + base + this.get(\"suffix\");\n};\n\nexports.setModuleUrl = function(name, subst) {\n return options.$moduleUrls[name] = subst;\n};\n\nexports.$loading = {};\nexports.loadModule = function(moduleName, onLoad) {\n var module, moduleType;\n if (Array.isArray(moduleName)) {\n moduleType = moduleName[0];\n moduleName = moduleName[1];\n }\n\n try {\n module = acequire(moduleName);\n } catch (e) {}\n if (module && !exports.$loading[moduleName])\n return onLoad && onLoad(module);\n\n if (!exports.$loading[moduleName])\n exports.$loading[moduleName] = [];\n\n exports.$loading[moduleName].push(onLoad);\n\n if (exports.$loading[moduleName].length > 1)\n return;\n\n var afterLoad = function() {\n acequire([moduleName], function(module) {\n exports._emit(\"load.module\", {name: moduleName, module: module});\n var listeners = exports.$loading[moduleName];\n exports.$loading[moduleName] = null;\n listeners.forEach(function(onLoad) {\n onLoad && onLoad(module);\n });\n });\n };\n\n if (!exports.get(\"packaged\"))\n return afterLoad();\n net.loadScript(exports.moduleUrl(moduleName, moduleType), afterLoad);\n};\ninit(true);function init(packaged) {\n\n if (!global || !global.document)\n return;\n \n options.packaged = packaged || acequire.packaged || module.packaged || (global.define && define.packaged);\n\n var scriptOptions = {};\n var scriptUrl = \"\";\n var currentScript = (document.currentScript || document._currentScript ); // native or polyfill\n var currentDocument = currentScript && currentScript.ownerDocument || document;\n \n var scripts = currentDocument.getElementsByTagName(\"script\");\n for (var i=0; i<scripts.length; i++) {\n var script = scripts[i];\n\n var src = script.src || script.getAttribute(\"src\");\n if (!src)\n continue;\n\n var attributes = script.attributes;\n for (var j=0, l=attributes.length; j < l; j++) {\n var attr = attributes[j];\n if (attr.name.indexOf(\"data-ace-\") === 0) {\n scriptOptions[deHyphenate(attr.name.replace(/^data-ace-/, \"\"))] = attr.value;\n }\n }\n\n var m = src.match(/^(.*)\\/ace(\\-\\w+)?\\.js(\\?|$)/);\n if (m)\n scriptUrl = m[1];\n }\n\n if (scriptUrl) {\n scriptOptions.base = scriptOptions.base || scriptUrl;\n scriptOptions.packaged = true;\n }\n\n scriptOptions.basePath = scriptOptions.base;\n scriptOptions.workerPath = scriptOptions.workerPath || scriptOptions.base;\n scriptOptions.modePath = scriptOptions.modePath || scriptOptions.base;\n scriptOptions.themePath = scriptOptions.themePath || scriptOptions.base;\n delete scriptOptions.base;\n\n for (var key in scriptOptions)\n if (typeof scriptOptions[key] !== \"undefined\")\n exports.set(key, scriptOptions[key]);\n}\n\nexports.init = init;\n\nfunction deHyphenate(str) {\n return str.replace(/-(.)/g, function(m, m1) { return m1.toUpperCase(); });\n}\n\n});\n\nace.define(\"ace/mouse/mouse_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/mouse/default_handlers\",\"ace/mouse/default_gutter_handler\",\"ace/mouse/mouse_event\",\"ace/mouse/dragdrop_handler\",\"ace/config\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\nvar DefaultHandlers = acequire(\"./default_handlers\").DefaultHandlers;\nvar DefaultGutterHandler = acequire(\"./default_gutter_handler\").GutterHandler;\nvar MouseEvent = acequire(\"./mouse_event\").MouseEvent;\nvar DragdropHandler = acequire(\"./dragdrop_handler\").DragdropHandler;\nvar config = acequire(\"../config\");\n\nvar MouseHandler = function(editor) {\n var _self = this;\n this.editor = editor;\n\n new DefaultHandlers(this);\n new DefaultGutterHandler(this);\n new DragdropHandler(this);\n\n var focusEditor = function(e) {\n var windowBlurred = !document.hasFocus || !document.hasFocus()\n || !editor.isFocused() && document.activeElement == (editor.textInput && editor.textInput.getElement());\n if (windowBlurred)\n window.focus();\n editor.focus();\n };\n\n var mouseTarget = editor.renderer.getMouseEventTarget();\n event.addListener(mouseTarget, \"click\", this.onMouseEvent.bind(this, \"click\"));\n event.addListener(mouseTarget, \"mousemove\", this.onMouseMove.bind(this, \"mousemove\"));\n event.addMultiMouseDownListener([\n mouseTarget,\n editor.renderer.scrollBarV && editor.renderer.scrollBarV.inner,\n editor.renderer.scrollBarH && editor.renderer.scrollBarH.inner,\n editor.textInput && editor.textInput.getElement()\n ].filter(Boolean), [400, 300, 250], this, \"onMouseEvent\");\n event.addMouseWheelListener(editor.container, this.onMouseWheel.bind(this, \"mousewheel\"));\n event.addTouchMoveListener(editor.container, this.onTouchMove.bind(this, \"touchmove\"));\n\n var gutterEl = editor.renderer.$gutter;\n event.addListener(gutterEl, \"mousedown\", this.onMouseEvent.bind(this, \"guttermousedown\"));\n event.addListener(gutterEl, \"click\", this.onMouseEvent.bind(this, \"gutterclick\"));\n event.addListener(gutterEl, \"dblclick\", this.onMouseEvent.bind(this, \"gutterdblclick\"));\n event.addListener(gutterEl, \"mousemove\", this.onMouseEvent.bind(this, \"guttermousemove\"));\n\n event.addListener(mouseTarget, \"mousedown\", focusEditor);\n event.addListener(gutterEl, \"mousedown\", focusEditor);\n if (useragent.isIE && editor.renderer.scrollBarV) {\n event.addListener(editor.renderer.scrollBarV.element, \"mousedown\", focusEditor);\n event.addListener(editor.renderer.scrollBarH.element, \"mousedown\", focusEditor);\n }\n\n editor.on(\"mousemove\", function(e){\n if (_self.state || _self.$dragDelay || !_self.$dragEnabled)\n return;\n\n var character = editor.renderer.screenToTextCoordinates(e.x, e.y);\n var range = editor.session.selection.getRange();\n var renderer = editor.renderer;\n\n if (!range.isEmpty() && range.insideStart(character.row, character.column)) {\n renderer.setCursorStyle(\"default\");\n } else {\n renderer.setCursorStyle(\"\");\n }\n });\n};\n\n(function() {\n this.onMouseEvent = function(name, e) {\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n\n this.onMouseMove = function(name, e) {\n var listeners = this.editor._eventRegistry && this.editor._eventRegistry.mousemove;\n if (!listeners || !listeners.length)\n return;\n\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n\n this.onMouseWheel = function(name, e) {\n var mouseEvent = new MouseEvent(e, this.editor);\n mouseEvent.speed = this.$scrollSpeed * 2;\n mouseEvent.wheelX = e.wheelX;\n mouseEvent.wheelY = e.wheelY;\n\n this.editor._emit(name, mouseEvent);\n };\n \n this.onTouchMove = function (name, e) {\n var mouseEvent = new MouseEvent(e, this.editor);\n mouseEvent.speed = 1;//this.$scrollSpeed * 2;\n mouseEvent.wheelX = e.wheelX;\n mouseEvent.wheelY = e.wheelY;\n this.editor._emit(name, mouseEvent);\n };\n\n this.setState = function(state) {\n this.state = state;\n };\n\n this.captureMouse = function(ev, mouseMoveHandler) {\n this.x = ev.x;\n this.y = ev.y;\n\n this.isMousePressed = true;\n var renderer = this.editor.renderer;\n if (renderer.$keepTextAreaAtCursor)\n renderer.$keepTextAreaAtCursor = null;\n\n var self = this;\n var onMouseMove = function(e) {\n if (!e) return;\n if (useragent.isWebKit && !e.which && self.releaseMouse)\n return self.releaseMouse();\n\n self.x = e.clientX;\n self.y = e.clientY;\n mouseMoveHandler && mouseMoveHandler(e);\n self.mouseEvent = new MouseEvent(e, self.editor);\n self.$mouseMoved = true;\n };\n\n var onCaptureEnd = function(e) {\n clearInterval(timerId);\n onCaptureInterval();\n self[self.state + \"End\"] && self[self.state + \"End\"](e);\n self.state = \"\";\n if (renderer.$keepTextAreaAtCursor == null) {\n renderer.$keepTextAreaAtCursor = true;\n renderer.$moveTextAreaToCursor();\n }\n self.isMousePressed = false;\n self.$onCaptureMouseMove = self.releaseMouse = null;\n e && self.onMouseEvent(\"mouseup\", e);\n };\n\n var onCaptureInterval = function() {\n self[self.state] && self[self.state]();\n self.$mouseMoved = false;\n };\n\n if (useragent.isOldIE && ev.domEvent.type == \"dblclick\") {\n return setTimeout(function() {onCaptureEnd(ev);});\n }\n\n self.$onCaptureMouseMove = onMouseMove;\n self.releaseMouse = event.capture(this.editor.container, onMouseMove, onCaptureEnd);\n var timerId = setInterval(onCaptureInterval, 20);\n };\n this.releaseMouse = null;\n this.cancelContextMenu = function() {\n var stop = function(e) {\n if (e && e.domEvent && e.domEvent.type != \"contextmenu\")\n return;\n this.editor.off(\"nativecontextmenu\", stop);\n if (e && e.domEvent)\n event.stopEvent(e.domEvent);\n }.bind(this);\n setTimeout(stop, 10);\n this.editor.on(\"nativecontextmenu\", stop);\n };\n}).call(MouseHandler.prototype);\n\nconfig.defineOptions(MouseHandler.prototype, \"mouseHandler\", {\n scrollSpeed: {initialValue: 2},\n dragDelay: {initialValue: (useragent.isMac ? 150 : 0)},\n dragEnabled: {initialValue: true},\n focusTimout: {initialValue: 0},\n tooltipFollowsMouse: {initialValue: true}\n});\n\n\nexports.MouseHandler = MouseHandler;\n});\n\nace.define(\"ace/mouse/fold_handler\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nfunction FoldHandler(editor) {\n\n editor.on(\"click\", function(e) {\n var position = e.getDocumentPosition();\n var session = editor.session;\n var fold = session.getFoldAt(position.row, position.column, 1);\n if (fold) {\n if (e.getAccelKey())\n session.removeFold(fold);\n else\n session.expandFold(fold);\n\n e.stop();\n }\n });\n\n editor.on(\"gutterclick\", function(e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n if (session.foldWidgets && session.foldWidgets[row])\n editor.session.onFoldWidgetClick(row, e);\n if (!editor.isFocused())\n editor.focus();\n e.stop();\n }\n });\n\n editor.on(\"gutterdblclick\", function(e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n var data = session.getParentFoldRangeData(row, true);\n var range = data.range || data.firstRange;\n\n if (range) {\n row = range.start.row;\n var fold = session.getFoldAt(row, session.getLine(row).length, 1);\n\n if (fold) {\n session.removeFold(fold);\n } else {\n session.addFold(\"...\", range);\n editor.renderer.scrollCursorIntoView({row: range.start.row, column: 0});\n }\n }\n e.stop();\n }\n });\n}\n\nexports.FoldHandler = FoldHandler;\n\n});\n\nace.define(\"ace/keyboard/keybinding\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/event\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar keyUtil = acequire(\"../lib/keys\");\nvar event = acequire(\"../lib/event\");\n\nvar KeyBinding = function(editor) {\n this.$editor = editor;\n this.$data = {editor: editor};\n this.$handlers = [];\n this.setDefaultHandler(editor.commands);\n};\n\n(function() {\n this.setDefaultHandler = function(kb) {\n this.removeKeyboardHandler(this.$defaultHandler);\n this.$defaultHandler = kb;\n this.addKeyboardHandler(kb, 0);\n };\n\n this.setKeyboardHandler = function(kb) {\n var h = this.$handlers;\n if (h[h.length - 1] == kb)\n return;\n\n while (h[h.length - 1] && h[h.length - 1] != this.$defaultHandler)\n this.removeKeyboardHandler(h[h.length - 1]);\n\n this.addKeyboardHandler(kb, 1);\n };\n\n this.addKeyboardHandler = function(kb, pos) {\n if (!kb)\n return;\n if (typeof kb == \"function\" && !kb.handleKeyboard)\n kb.handleKeyboard = kb;\n var i = this.$handlers.indexOf(kb);\n if (i != -1)\n this.$handlers.splice(i, 1);\n\n if (pos == undefined)\n this.$handlers.push(kb);\n else\n this.$handlers.splice(pos, 0, kb);\n\n if (i == -1 && kb.attach)\n kb.attach(this.$editor);\n };\n\n this.removeKeyboardHandler = function(kb) {\n var i = this.$handlers.indexOf(kb);\n if (i == -1)\n return false;\n this.$handlers.splice(i, 1);\n kb.detach && kb.detach(this.$editor);\n return true;\n };\n\n this.getKeyboardHandler = function() {\n return this.$handlers[this.$handlers.length - 1];\n };\n \n this.getStatusText = function() {\n var data = this.$data;\n var editor = data.editor;\n return this.$handlers.map(function(h) {\n return h.getStatusText && h.getStatusText(editor, data) || \"\";\n }).filter(Boolean).join(\" \");\n };\n\n this.$callKeyboardHandlers = function(hashId, keyString, keyCode, e) {\n var toExecute;\n var success = false;\n var commands = this.$editor.commands;\n\n for (var i = this.$handlers.length; i--;) {\n toExecute = this.$handlers[i].handleKeyboard(\n this.$data, hashId, keyString, keyCode, e\n );\n if (!toExecute || !toExecute.command)\n continue;\n if (toExecute.command == \"null\") {\n success = true;\n } else {\n success = commands.exec(toExecute.command, this.$editor, toExecute.args, e);\n }\n if (success && e && hashId != -1 && \n toExecute.passEvent != true && toExecute.command.passEvent != true\n ) {\n event.stopEvent(e);\n }\n if (success)\n break;\n }\n \n if (!success && hashId == -1) {\n toExecute = {command: \"insertstring\"};\n success = commands.exec(\"insertstring\", this.$editor, keyString);\n }\n \n if (success && this.$editor._signal)\n this.$editor._signal(\"keyboardActivity\", toExecute);\n \n return success;\n };\n\n this.onCommandKey = function(e, hashId, keyCode) {\n var keyString = keyUtil.keyCodeToString(keyCode);\n this.$callKeyboardHandlers(hashId, keyString, keyCode, e);\n };\n\n this.onTextInput = function(text) {\n this.$callKeyboardHandlers(-1, text);\n };\n\n}).call(KeyBinding.prototype);\n\nexports.KeyBinding = KeyBinding;\n});\n\nace.define(\"ace/lib/bidiutil\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar ArabicAlefBetIntervalsBegine = ['\\u0621', '\\u0641'];\nvar ArabicAlefBetIntervalsEnd = ['\\u063A', '\\u064a'];\nvar dir = 0, hiLevel = 0;\nvar lastArabic = false, hasUBAT_AL = false, hasUBAT_B = false, hasUBAT_S = false, hasBlockSep = false, hasSegSep = false;\n\nvar impTab_LTR = [\t[\t0,\t\t3,\t\t0,\t\t1,\t\t0,\t\t0,\t\t0\t],\t[\t0,\t\t3,\t\t0,\t\t1,\t\t2,\t\t2,\t\t0\t],\t[\t0,\t\t3,\t\t0,\t\t0x11,\t\t2,\t\t0,\t\t1\t],\t[\t0,\t\t3,\t\t5,\t\t5,\t\t4,\t\t1,\t\t0\t],\t[\t0,\t\t3,\t\t0x15,\t\t0x15,\t\t4,\t\t0,\t\t1\t],\t[\t0,\t\t3,\t\t5,\t\t5,\t\t4,\t\t2,\t\t0\t]\n];\n\nvar impTab_RTL = [\t[\t2,\t\t0,\t\t1,\t\t1,\t\t0,\t\t1,\t\t0\t],\t[\t2,\t\t0,\t\t1,\t\t1,\t\t0,\t\t2,\t\t0\t],\t[\t2,\t\t0,\t\t2,\t\t1,\t\t3,\t\t2,\t\t0\t],\t[\t2,\t\t0,\t\t2,\t\t0x21,\t\t3,\t\t1,\t\t1\t]\n];\n\nvar LTR = 0, RTL = 1;\n\nvar L = 0;\nvar R = 1;\nvar EN = 2;\nvar AN = 3;\nvar ON = 4;\nvar B = 5;\nvar S = 6;\nvar AL = 7;\nvar WS = 8;\nvar CS = 9;\nvar ES = 10;\nvar ET = 11;\nvar NSM = 12;\nvar LRE = 13;\nvar RLE = 14;\nvar PDF = 15;\nvar LRO = 16;\nvar RLO = 17;\nvar BN = 18;\n\nvar UnicodeTBL00 = [\nBN,BN,BN,BN,BN,BN,BN,BN,BN,S,B,S,WS,B,BN,BN,\nBN,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,B,B,B,S,\nWS,ON,ON,ET,ET,ET,ON,ON,ON,ON,ON,ES,CS,ES,CS,CS,\nEN,EN,EN,EN,EN,EN,EN,EN,EN,EN,CS,ON,ON,ON,ON,ON,\nON,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,\nL,L,L,L,L,L,L,L,L,L,L,ON,ON,ON,ON,ON,\nON,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,\nL,L,L,L,L,L,L,L,L,L,L,ON,ON,ON,ON,BN,\nBN,BN,BN,BN,BN,B,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,\nBN,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,\nCS,ON,ET,ET,ET,ET,ON,ON,ON,ON,L,ON,ON,BN,ON,ON,\nET,ET,EN,EN,ON,L,ON,ON,ON,EN,L,ON,ON,ON,ON,ON\n];\n\nvar UnicodeTBL20 = [\nWS,WS,WS,WS,WS,WS,WS,WS,WS,WS,WS,BN,BN,BN,L,R\t,\nON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,\nON,ON,ON,ON,ON,ON,ON,ON,WS,B,LRE,RLE,PDF,LRO,RLO,CS,\nET,ET,ET,ET,ET,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,\nON,ON,ON,ON,CS,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,\nON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,WS\n];\n\nfunction _computeLevels(chars, levels, len, charTypes) {\n\tvar impTab = dir ? impTab_RTL : impTab_LTR\n\t\t, prevState = null, newClass = null, newLevel = null, newState = 0\n\t\t, action = null, cond = null, condPos = -1, i = null, ix = null, classes = [];\n\n\tif (!charTypes) {\n\t\tfor (i = 0, charTypes = []; i < len; i++) {\n\t\t\tcharTypes[i] = _getCharacterType(chars[i]);\n\t\t}\n\t}\n\thiLevel = dir;\n\tlastArabic = false;\n\thasUBAT_AL = false;\n\thasUBAT_B = false;\n\thasUBAT_S = false;\n\tfor (ix = 0; ix < len; ix++){\n\t\tprevState = newState;\n\t\tclasses[ix] = newClass = _getCharClass(chars, charTypes, classes, ix);\n\t\tnewState = impTab[prevState][newClass];\n\t\taction = newState & 0xF0;\n\t\tnewState &= 0x0F;\n\t\tlevels[ix] = newLevel = impTab[newState][5];\n\t\tif (action > 0){\n\t\t\tif (action == 0x10){\n\t\t\t\tfor(i = condPos; i < ix; i++){\n\t\t\t\t\tlevels[i] = 1;\n\t\t\t\t}\n\t\t\t\tcondPos = -1;\n\t\t\t} else {\n\t\t\t\tcondPos = -1;\n\t\t\t}\n\t\t}\n\t\tcond = impTab[newState][6];\n\t\tif (cond){\n\t\t\tif(condPos == -1){\n\t\t\t\tcondPos = ix;\n\t\t\t}\n\t\t}else{\n\t\t\tif (condPos > -1){\n\t\t\t\tfor(i = condPos; i < ix; i++){\n\t\t\t\t\tlevels[i] = newLevel;\n\t\t\t\t}\n\t\t\t\tcondPos = -1;\n\t\t\t}\n\t\t}\n\t\tif (charTypes[ix] == B){\n\t\t\tlevels[ix] = 0;\n\t\t}\n\t\thiLevel |= newLevel;\n\t}\n\tif (hasUBAT_S){\n\t\tfor(i = 0; i < len; i++){\n\t\t\tif(charTypes[i] == S){\n\t\t\t\tlevels[i] = dir;\n\t\t\t\tfor(var j = i - 1; j >= 0; j--){\n\t\t\t\t\tif(charTypes[j] == WS){\n\t\t\t\t\t\tlevels[j] = dir;\n\t\t\t\t\t}else{\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction _invertLevel(lev, levels, _array) {\n\tif (hiLevel < lev){\n\t\treturn;\n\t}\n\tif (lev == 1 && dir == RTL && !hasUBAT_B){\n\t\t_array.reverse();\n\t\treturn;\n\t}\n\tvar len = _array.length, start = 0, end, lo, hi, tmp;\n\twhile(start < len){\n\t\tif (levels[start] >= lev){\n\t\t\tend = start + 1;\n\t\twhile(end < len && levels[end] >= lev){\n\t\t\tend++;\n\t\t}\n\t\tfor(lo = start, hi = end - 1 ; lo < hi; lo++, hi--){\n\t\t\ttmp = _array[lo];\n\t\t\t_array[lo] = _array[hi];\n\t\t\t_array[hi] = tmp;\n\t\t}\n\t\tstart = end;\n\t}\n\tstart++;\n\t}\n}\n\nfunction _getCharClass(chars, types, classes, ix) {\n\tvar cType = types[ix], wType, nType, len, i;\n\tswitch(cType){\n\t\tcase L:\n\t\tcase R:\n\t\t\tlastArabic = false;\n\t\tcase ON:\n\t\tcase AN:\n\t\t\treturn cType;\n\t\tcase EN:\n\t\t\treturn lastArabic ? AN : EN;\n\t\tcase AL:\n\t\t\tlastArabic = true;\n\t\t\thasUBAT_AL = true;\n\t\t\treturn R;\n\t\tcase WS:\n\t\t\treturn ON;\n\t\tcase CS:\n\t\t\tif (ix < 1 || (ix + 1) >= types.length ||\n\t\t\t\t((wType = classes[ix - 1]) != EN && wType != AN) ||\n\t\t\t\t((nType = types[ix + 1]) != EN && nType != AN)){\n\t\t\t\treturn ON;\n\t\t\t}\n\t\t\tif (lastArabic){nType = AN;}\n\t\t\treturn nType == wType ? nType : ON;\n\t\tcase ES:\n\t\t\twType = ix > 0 ? classes[ix - 1] : B;\n\t\t\tif (wType == EN && (ix + 1) < types.length && types[ix + 1] == EN){\n\t\t\t\treturn EN;\n\t\t\t}\n\t\t\treturn ON;\n\t\tcase ET:\n\t\t\tif (ix > 0 && classes[ix - 1] == EN){\n\t\t\t\treturn EN;\n\t\t\t}\n\t\t\tif (lastArabic){\n\t\t\t\treturn ON;\n\t\t\t}\n\t\t\ti = ix + 1;\n\t\t\tlen = types.length;\n\t\t\twhile (i < len && types[i] == ET){\n\t\t\t\ti++;\n\t\t\t}\n\t\t\tif (i < len && types[i] == EN){\n\t\t\t\treturn EN;\n\t\t\t}\n\t\t\treturn ON;\n\t\tcase NSM:\n\t\t\tlen = types.length;\n\t\t\ti = ix + 1;\n\t\t\twhile (i < len && types[i] == NSM){\n\t\t\t\ti++;\n\t\t\t}\n\t\t\tif (i < len){\n\t\t\t\tvar c = chars[ix], rtlCandidate = (c >= 0x0591 && c <= 0x08FF) || c == 0xFB1E;\n\n\t\t\t\twType = types[i];\n\t\t\t\tif (rtlCandidate && (wType == R || wType == AL)){\n\t\t\t\t\treturn R;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (ix < 1 || (wType = types[ix - 1]) == B){\n\t\t\t\treturn ON;\n\t\t\t}\n\t\t\treturn classes[ix - 1];\n\t\tcase B:\n\t\t\tlastArabic = false;\n\t\t\thasUBAT_B = true;\n\t\t\treturn dir;\n\t\tcase S:\n\t\t\thasUBAT_S = true;\n\t\t\treturn ON;\n\t\tcase LRE:\n\t\tcase RLE:\n\t\tcase LRO:\n\t\tcase RLO:\n\t\tcase PDF:\n\t\t\tlastArabic = false;\n\t\tcase BN:\n\t\t\treturn ON;\n\t}\n}\n\nfunction _getCharacterType( ch ) {\n\tvar uc = ch.charCodeAt(0), hi = uc >> 8;\n\n\tif (hi == 0) {\n\t\treturn ((uc > 0x00BF) ? L : UnicodeTBL00[uc]);\n\t} else if (hi == 5) {\n\t\treturn (/[\\u0591-\\u05f4]/.test(ch) ? R : L);\n\t} else if (hi == 6) {\n\t\tif (/[\\u0610-\\u061a\\u064b-\\u065f\\u06d6-\\u06e4\\u06e7-\\u06ed]/.test(ch))\n\t\t\treturn NSM;\n\t\telse if (/[\\u0660-\\u0669\\u066b-\\u066c]/.test(ch))\n\t\t\treturn AN;\n\t\telse if (uc == 0x066A)\n\t\t\treturn ET;\n\t\telse if (/[\\u06f0-\\u06f9]/.test(ch))\n\t\t\treturn EN;\n\t\telse\n\t\t\treturn AL;\n\t} else if (hi == 0x20 && uc <= 0x205F) {\n\t\treturn UnicodeTBL20[uc & 0xFF];\n\t} else if (hi == 0xFE) {\n\t\treturn (uc >= 0xFE70 ? AL : ON);\n\t}\n\treturn ON;\n}\n\nfunction _isArabicDiacritics( ch ) {\n\treturn (ch >= '\\u064b' && ch <= '\\u0655');\n}\nexports.L = L;\nexports.R = R;\nexports.EN = EN;\nexports.ON_R = 3;\nexports.AN = 4;\nexports.R_H = 5;\nexports.B = 6;\n\nexports.DOT = \"\\xB7\";\nexports.doBidiReorder = function(text, textCharTypes, isRtl) {\n\tif (text.length < 2)\n\t\treturn {};\n\n\tvar chars = text.split(\"\"), logicalFromVisual = new Array(chars.length),\n\t\tbidiLevels = new Array(chars.length), levels = [];\n\n\tdir = isRtl ? RTL : LTR;\n\n\t_computeLevels(chars, levels, chars.length, textCharTypes);\n\n\tfor (var i = 0; i < logicalFromVisual.length; logicalFromVisual[i] = i, i++);\n\n\t_invertLevel(2, levels, logicalFromVisual);\n\t_invertLevel(1, levels, logicalFromVisual);\n\n\tfor (var i = 0; i < logicalFromVisual.length - 1; i++) { //fix levels to reflect character width\n\t\tif (textCharTypes[i] === AN) {\n\t\t\tlevels[i] = exports.AN;\n\t\t} else if (levels[i] === R && ((textCharTypes[i] > AL && textCharTypes[i] < LRE)\n\t\t\t|| textCharTypes[i] === ON || textCharTypes[i] === BN)) {\n\t\t\tlevels[i] = exports.ON_R;\n\t\t} else if ((i > 0 && chars[i - 1] === '\\u0644') && /\\u0622|\\u0623|\\u0625|\\u0627/.test(chars[i])) {\n\t\t\tlevels[i - 1] = levels[i] = exports.R_H;\n\t\t\ti++;\n\t\t}\n\t}\n\tif (chars[chars.length - 1] === exports.DOT)\n\t\tlevels[chars.length - 1] = exports.B;\n\n\tfor (var i = 0; i < logicalFromVisual.length; i++) {\n\t\tbidiLevels[i] = levels[logicalFromVisual[i]];\n\t}\n\n\treturn {'logicalFromVisual': logicalFromVisual, 'bidiLevels': bidiLevels};\n};\nexports.hasBidiCharacters = function(text, textCharTypes){\n\tvar ret = false;\n\tfor (var i = 0; i < text.length; i++){\n\t\ttextCharTypes[i] = _getCharacterType(text.charAt(i));\n\t\tif (!ret && (textCharTypes[i] == R || textCharTypes[i] == AL))\n\t\t\tret = true;\n\t}\n\treturn ret;\n};\nexports.getVisualFromLogicalIdx = function(logIdx, rowMap) {\n\tfor (var i = 0; i < rowMap.logicalFromVisual.length; i++) {\n\t\tif (rowMap.logicalFromVisual[i] == logIdx)\n\t\t\treturn i;\n\t}\n\treturn 0;\n};\n\n});\n\nace.define(\"ace/bidihandler\",[\"require\",\"exports\",\"module\",\"ace/lib/bidiutil\",\"ace/lib/lang\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar bidiUtil = acequire(\"./lib/bidiutil\");\nvar lang = acequire(\"./lib/lang\");\nvar useragent = acequire(\"./lib/useragent\");\nvar bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/;\nvar BidiHandler = function(session) {\n this.session = session;\n this.bidiMap = {};\n this.currentRow = null;\n this.bidiUtil = bidiUtil;\n this.charWidths = [];\n this.EOL = \"\\xAC\";\n this.showInvisibles = true;\n this.isRtlDir = false;\n this.line = \"\";\n this.wrapIndent = 0;\n this.isLastRow = false;\n this.EOF = \"\\xB6\";\n this.seenBidi = false;\n};\n\n(function() {\n this.isBidiRow = function(screenRow, docRow, splitIndex) {\n if (!this.seenBidi)\n return false;\n if (screenRow !== this.currentRow) {\n this.currentRow = screenRow;\n this.updateRowLine(docRow, splitIndex);\n this.updateBidiMap();\n }\n return this.bidiMap.bidiLevels;\n };\n\n this.onChange = function(delta) {\n if (!this.seenBidi) {\n if (delta.action == \"insert\" && bidiRE.test(delta.lines.join(\"\\n\"))) {\n this.seenBidi = true;\n this.currentRow = null;\n }\n }\n else {\n this.currentRow = null;\n }\n };\n\n this.getDocumentRow = function() {\n var docRow = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var index = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n if (index >= 0)\n docRow = this.session.$docRowCache[index];\n }\n\n return docRow;\n };\n\n this.getSplitIndex = function() {\n var splitIndex = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var currentIndex, prevIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n while (this.currentRow - splitIndex > 0) {\n currentIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow - splitIndex - 1);\n if (currentIndex !== prevIndex)\n break;\n\n prevIndex = currentIndex;\n splitIndex++;\n }\n }\n\n return splitIndex;\n };\n\n this.updateRowLine = function(docRow, splitIndex) {\n if (docRow === undefined)\n docRow = this.getDocumentRow();\n\n this.wrapIndent = 0;\n this.isLastRow = (docRow === this.session.getLength() - 1);\n this.line = this.session.getLine(docRow);\n if (this.session.$useWrapMode) {\n var splits = this.session.$wrapData[docRow];\n if (splits) {\n if (splitIndex === undefined)\n splitIndex = this.getSplitIndex();\n\n if(splitIndex > 0 && splits.length) {\n this.wrapIndent = splits.indent;\n this.line = (splitIndex < splits.length) ?\n this.line.substring(splits[splitIndex - 1], splits[splits.length - 1]) :\n this.line.substring(splits[splits.length - 1]);\n } else {\n this.line = this.line.substring(0, splits[splitIndex]);\n }\n }\n }\n var session = this.session, shift = 0, size;\n this.line = this.line.replace(/\\t|[\\u1100-\\u2029, \\u202F-\\uFFE6]/g, function(ch, i){\n if (ch === '\\t' || session.isFullWidth(ch.charCodeAt(0))) {\n size = (ch === '\\t') ? session.getScreenTabSize(i + shift) : 2;\n shift += size - 1;\n return lang.stringRepeat(bidiUtil.DOT, size);\n }\n return ch;\n });\n };\n\n this.updateBidiMap = function() {\n var textCharTypes = [], endOfLine = this.isLastRow ? this.EOF : this.EOL;\n var line = this.line + (this.showInvisibles ? endOfLine : bidiUtil.DOT);\n if (bidiUtil.hasBidiCharacters(line, textCharTypes)) {\n this.bidiMap = bidiUtil.doBidiReorder(line, textCharTypes, this.isRtlDir);\n } else {\n this.bidiMap = {};\n }\n };\n this.markAsDirty = function() {\n this.currentRow = null;\n };\n this.updateCharacterWidths = function(fontMetrics) {\n if (!this.seenBidi)\n return;\n if (this.characterWidth === fontMetrics.$characterSize.width)\n return;\n\n var characterWidth = this.characterWidth = fontMetrics.$characterSize.width;\n var bidiCharWidth = fontMetrics.$measureCharWidth(\"\\u05d4\");\n\n this.charWidths[bidiUtil.L] = this.charWidths[bidiUtil.EN] = this.charWidths[bidiUtil.ON_R] = characterWidth;\n this.charWidths[bidiUtil.R] = this.charWidths[bidiUtil.AN] = bidiCharWidth;\n this.charWidths[bidiUtil.R_H] = useragent.isChrome ? bidiCharWidth : bidiCharWidth * 0.45;\n this.charWidths[bidiUtil.B] = 0;\n\n this.currentRow = null;\n };\n\n this.getShowInvisibles = function() {\n return this.showInvisibles;\n };\n\n this.setShowInvisibles = function(showInvisibles) {\n this.showInvisibles = showInvisibles;\n this.currentRow = null;\n };\n\n this.setEolChar = function(eolChar) {\n this.EOL = eolChar;\n };\n\n this.setTextDir = function(isRtlDir) {\n this.isRtlDir = isRtlDir;\n };\n this.getPosLeft = function(col) {\n col -= this.wrapIndent;\n var visualIdx = bidiUtil.getVisualFromLogicalIdx(col > 0 ? col - 1 : 0, this.bidiMap),\n levels = this.bidiMap.bidiLevels, left = 0;\n\n if (col === 0 && levels[visualIdx] % 2 !== 0)\n visualIdx++;\n\n for (var i = 0; i < visualIdx; i++) {\n left += this.charWidths[levels[i]];\n }\n\n if (col !== 0 && levels[visualIdx] % 2 === 0)\n left += this.charWidths[levels[visualIdx]];\n\n if (this.wrapIndent)\n left += this.wrapIndent * this.charWidths[bidiUtil.L];\n\n return left;\n };\n this.getSelections = function(startCol, endCol) {\n var map = this.bidiMap, levels = map.bidiLevels, level, offset = this.wrapIndent * this.charWidths[bidiUtil.L], selections = [],\n selColMin = Math.min(startCol, endCol) - this.wrapIndent, selColMax = Math.max(startCol, endCol) - this.wrapIndent,\n isSelected = false, isSelectedPrev = false, selectionStart = 0;\n\n for (var logIdx, visIdx = 0; visIdx < levels.length; visIdx++) {\n logIdx = map.logicalFromVisual[visIdx];\n level = levels[visIdx];\n isSelected = (logIdx >= selColMin) && (logIdx < selColMax);\n if (isSelected && !isSelectedPrev) {\n selectionStart = offset;\n } else if (!isSelected && isSelectedPrev) {\n selections.push({left: selectionStart, width: offset - selectionStart});\n }\n offset += this.charWidths[level];\n isSelectedPrev = isSelected;\n }\n\n if (isSelected && (visIdx === levels.length)) {\n selections.push({left: selectionStart, width: offset - selectionStart});\n }\n\n return selections;\n };\n this.offsetToCol = function(posX) {\n var logicalIdx = 0, posX = Math.max(posX, 0),\n offset = 0, visualIdx = 0, levels = this.bidiMap.bidiLevels,\n charWidth = this.charWidths[levels[visualIdx]];\n\n if (this.wrapIndent) {\n posX -= this.wrapIndent * this.charWidths[bidiUtil.L];\n }\n\n while(posX > offset + charWidth/2) {\n offset += charWidth;\n if(visualIdx === levels.length - 1) {\n charWidth = 0;\n break;\n }\n charWidth = this.charWidths[levels[++visualIdx]];\n }\n\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && (levels[visualIdx] % 2 === 0)){\n if(posX < offset)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n\n } else if (visualIdx > 0 && (levels[visualIdx - 1] % 2 === 0) && (levels[visualIdx] % 2 !== 0)){\n logicalIdx = 1 + ((posX > offset) ? this.bidiMap.logicalFromVisual[visualIdx]\n : this.bidiMap.logicalFromVisual[visualIdx - 1]);\n\n } else if ((this.isRtlDir && visualIdx === levels.length - 1 && charWidth === 0 && (levels[visualIdx - 1] % 2 === 0))\n || (!this.isRtlDir && visualIdx === 0 && (levels[visualIdx] % 2 !== 0))){\n logicalIdx = 1 + this.bidiMap.logicalFromVisual[visualIdx];\n } else {\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && charWidth !== 0)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n }\n\n return (logicalIdx + this.wrapIndent);\n };\n\n}).call(BidiHandler.prototype);\n\nexports.BidiHandler = BidiHandler;\n});\n\nace.define(\"ace/range\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nvar comparePoints = function(p1, p2) {\n return p1.row - p2.row || p1.column - p2.column;\n};\nvar Range = function(startRow, startColumn, endRow, endColumn) {\n this.start = {\n row: startRow,\n column: startColumn\n };\n\n this.end = {\n row: endRow,\n column: endColumn\n };\n};\n\n(function() {\n this.isEqual = function(range) {\n return this.start.row === range.start.row &&\n this.end.row === range.end.row &&\n this.start.column === range.start.column &&\n this.end.column === range.end.column;\n };\n this.toString = function() {\n return (\"Range: [\" + this.start.row + \"/\" + this.start.column +\n \"] -> [\" + this.end.row + \"/\" + this.end.column + \"]\");\n };\n\n this.contains = function(row, column) {\n return this.compare(row, column) == 0;\n };\n this.compareRange = function(range) {\n var cmp,\n end = range.end,\n start = range.start;\n\n cmp = this.compare(end.row, end.column);\n if (cmp == 1) {\n cmp = this.compare(start.row, start.column);\n if (cmp == 1) {\n return 2;\n } else if (cmp == 0) {\n return 1;\n } else {\n return 0;\n }\n } else if (cmp == -1) {\n return -2;\n } else {\n cmp = this.compare(start.row, start.column);\n if (cmp == -1) {\n return -1;\n } else if (cmp == 1) {\n return 42;\n } else {\n return 0;\n }\n }\n };\n this.comparePoint = function(p) {\n return this.compare(p.row, p.column);\n };\n this.containsRange = function(range) {\n return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n };\n this.intersects = function(range) {\n var cmp = this.compareRange(range);\n return (cmp == -1 || cmp == 0 || cmp == 1);\n };\n this.isEnd = function(row, column) {\n return this.end.row == row && this.end.column == column;\n };\n this.isStart = function(row, column) {\n return this.start.row == row && this.start.column == column;\n };\n this.setStart = function(row, column) {\n if (typeof row == \"object\") {\n this.start.column = row.column;\n this.start.row = row.row;\n } else {\n this.start.row = row;\n this.start.column = column;\n }\n };\n this.setEnd = function(row, column) {\n if (typeof row == \"object\") {\n this.end.column = row.column;\n this.end.row = row.row;\n } else {\n this.end.row = row;\n this.end.column = column;\n }\n };\n this.inside = function(row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column) || this.isStart(row, column)) {\n return false;\n } else {\n return true;\n }\n }\n return false;\n };\n this.insideStart = function(row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column)) {\n return false;\n } else {\n return true;\n }\n }\n return false;\n };\n this.insideEnd = function(row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isStart(row, column)) {\n return false;\n } else {\n return true;\n }\n }\n return false;\n };\n this.compare = function(row, column) {\n if (!this.isMultiLine()) {\n if (row === this.start.row) {\n return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n }\n }\n\n if (row < this.start.row)\n return -1;\n\n if (row > this.end.row)\n return 1;\n\n if (this.start.row === row)\n return column >= this.start.column ? 0 : -1;\n\n if (this.end.row === row)\n return column <= this.end.column ? 0 : 1;\n\n return 0;\n };\n this.compareStart = function(row, column) {\n if (this.start.row == row && this.start.column == column) {\n return -1;\n } else {\n return this.compare(row, column);\n }\n };\n this.compareEnd = function(row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n } else {\n return this.compare(row, column);\n }\n };\n this.compareInside = function(row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n } else if (this.start.row == row && this.start.column == column) {\n return -1;\n } else {\n return this.compare(row, column);\n }\n };\n this.clipRows = function(firstRow, lastRow) {\n if (this.end.row > lastRow)\n var end = {row: lastRow + 1, column: 0};\n else if (this.end.row < firstRow)\n var end = {row: firstRow, column: 0};\n\n if (this.start.row > lastRow)\n var start = {row: lastRow + 1, column: 0};\n else if (this.start.row < firstRow)\n var start = {row: firstRow, column: 0};\n\n return Range.fromPoints(start || this.start, end || this.end);\n };\n this.extend = function(row, column) {\n var cmp = this.compare(row, column);\n\n if (cmp == 0)\n return this;\n else if (cmp == -1)\n var start = {row: row, column: column};\n else\n var end = {row: row, column: column};\n\n return Range.fromPoints(start || this.start, end || this.end);\n };\n\n this.isEmpty = function() {\n return (this.start.row === this.end.row && this.start.column === this.end.column);\n };\n this.isMultiLine = function() {\n return (this.start.row !== this.end.row);\n };\n this.clone = function() {\n return Range.fromPoints(this.start, this.end);\n };\n this.collapseRows = function() {\n if (this.end.column == 0)\n return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0);\n else\n return new Range(this.start.row, 0, this.end.row, 0);\n };\n this.toScreenRange = function(session) {\n var screenPosStart = session.documentToScreenPosition(this.start);\n var screenPosEnd = session.documentToScreenPosition(this.end);\n\n return new Range(\n screenPosStart.row, screenPosStart.column,\n screenPosEnd.row, screenPosEnd.column\n );\n };\n this.moveBy = function(row, column) {\n this.start.row += row;\n this.start.column += column;\n this.end.row += row;\n this.end.column += column;\n };\n\n}).call(Range.prototype);\nRange.fromPoints = function(start, end) {\n return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = comparePoints;\n\nRange.comparePoints = function(p1, p2) {\n return p1.row - p2.row || p1.column - p2.column;\n};\n\n\nexports.Range = Range;\n});\n\nace.define(\"ace/selection\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar lang = acequire(\"./lib/lang\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar Range = acequire(\"./range\").Range;\nvar Selection = function(session) {\n this.session = session;\n this.doc = session.getDocument();\n\n this.clearSelection();\n this.lead = this.selectionLead = this.doc.createAnchor(0, 0);\n this.anchor = this.selectionAnchor = this.doc.createAnchor(0, 0);\n\n var self = this;\n this.lead.on(\"change\", function(e) {\n self._emit(\"changeCursor\");\n if (!self.$isEmpty)\n self._emit(\"changeSelection\");\n if (!self.$keepDesiredColumnOnChange && e.old.column != e.value.column)\n self.$desiredColumn = null;\n });\n\n this.selectionAnchor.on(\"change\", function() {\n if (!self.$isEmpty)\n self._emit(\"changeSelection\");\n });\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.isEmpty = function() {\n return (this.$isEmpty || (\n this.anchor.row == this.lead.row &&\n this.anchor.column == this.lead.column\n ));\n };\n this.isMultiLine = function() {\n if (this.isEmpty()) {\n return false;\n }\n\n return this.getRange().isMultiLine();\n };\n this.getCursor = function() {\n return this.lead.getPosition();\n };\n this.setSelectionAnchor = function(row, column) {\n this.anchor.setPosition(row, column);\n\n if (this.$isEmpty) {\n this.$isEmpty = false;\n this._emit(\"changeSelection\");\n }\n };\n this.getSelectionAnchor = function() {\n if (this.$isEmpty)\n return this.getSelectionLead();\n else\n return this.anchor.getPosition();\n };\n this.getSelectionLead = function() {\n return this.lead.getPosition();\n };\n this.shiftSelection = function(columns) {\n if (this.$isEmpty) {\n this.moveCursorTo(this.lead.row, this.lead.column + columns);\n return;\n }\n\n var anchor = this.getSelectionAnchor();\n var lead = this.getSelectionLead();\n\n var isBackwards = this.isBackwards();\n\n if (!isBackwards || anchor.column !== 0)\n this.setSelectionAnchor(anchor.row, anchor.column + columns);\n\n if (isBackwards || lead.column !== 0) {\n this.$moveSelection(function() {\n this.moveCursorTo(lead.row, lead.column + columns);\n });\n }\n };\n this.isBackwards = function() {\n var anchor = this.anchor;\n var lead = this.lead;\n return (anchor.row > lead.row || (anchor.row == lead.row && anchor.column > lead.column));\n };\n this.getRange = function() {\n var anchor = this.anchor;\n var lead = this.lead;\n\n if (this.isEmpty())\n return Range.fromPoints(lead, lead);\n\n if (this.isBackwards()) {\n return Range.fromPoints(lead, anchor);\n }\n else {\n return Range.fromPoints(anchor, lead);\n }\n };\n this.clearSelection = function() {\n if (!this.$isEmpty) {\n this.$isEmpty = true;\n this._emit(\"changeSelection\");\n }\n };\n this.selectAll = function() {\n var lastRow = this.doc.getLength() - 1;\n this.setSelectionAnchor(0, 0);\n this.moveCursorTo(lastRow, this.doc.getLine(lastRow).length);\n };\n this.setRange =\n this.setSelectionRange = function(range, reverse) {\n if (reverse) {\n this.setSelectionAnchor(range.end.row, range.end.column);\n this.selectTo(range.start.row, range.start.column);\n } else {\n this.setSelectionAnchor(range.start.row, range.start.column);\n this.selectTo(range.end.row, range.end.column);\n }\n if (this.getRange().isEmpty())\n this.$isEmpty = true;\n this.$desiredColumn = null;\n };\n\n this.$moveSelection = function(mover) {\n var lead = this.lead;\n if (this.$isEmpty)\n this.setSelectionAnchor(lead.row, lead.column);\n\n mover.call(this);\n };\n this.selectTo = function(row, column) {\n this.$moveSelection(function() {\n this.moveCursorTo(row, column);\n });\n };\n this.selectToPosition = function(pos) {\n this.$moveSelection(function() {\n this.moveCursorToPosition(pos);\n });\n };\n this.moveTo = function(row, column) {\n this.clearSelection();\n this.moveCursorTo(row, column);\n };\n this.moveToPosition = function(pos) {\n this.clearSelection();\n this.moveCursorToPosition(pos);\n };\n this.selectUp = function() {\n this.$moveSelection(this.moveCursorUp);\n };\n this.selectDown = function() {\n this.$moveSelection(this.moveCursorDown);\n };\n this.selectRight = function() {\n this.$moveSelection(this.moveCursorRight);\n };\n this.selectLeft = function() {\n this.$moveSelection(this.moveCursorLeft);\n };\n this.selectLineStart = function() {\n this.$moveSelection(this.moveCursorLineStart);\n };\n this.selectLineEnd = function() {\n this.$moveSelection(this.moveCursorLineEnd);\n };\n this.selectFileEnd = function() {\n this.$moveSelection(this.moveCursorFileEnd);\n };\n this.selectFileStart = function() {\n this.$moveSelection(this.moveCursorFileStart);\n };\n this.selectWordRight = function() {\n this.$moveSelection(this.moveCursorWordRight);\n };\n this.selectWordLeft = function() {\n this.$moveSelection(this.moveCursorWordLeft);\n };\n this.getWordRange = function(row, column) {\n if (typeof column == \"undefined\") {\n var cursor = row || this.lead;\n row = cursor.row;\n column = cursor.column;\n }\n return this.session.getWordRange(row, column);\n };\n this.selectWord = function() {\n this.setSelectionRange(this.getWordRange());\n };\n this.selectAWord = function() {\n var cursor = this.getCursor();\n var range = this.session.getAWordRange(cursor.row, cursor.column);\n this.setSelectionRange(range);\n };\n\n this.getLineRange = function(row, excludeLastChar) {\n var rowStart = typeof row == \"number\" ? row : this.lead.row;\n var rowEnd;\n\n var foldLine = this.session.getFoldLine(rowStart);\n if (foldLine) {\n rowStart = foldLine.start.row;\n rowEnd = foldLine.end.row;\n } else {\n rowEnd = rowStart;\n }\n if (excludeLastChar === true)\n return new Range(rowStart, 0, rowEnd, this.session.getLine(rowEnd).length);\n else\n return new Range(rowStart, 0, rowEnd + 1, 0);\n };\n this.selectLine = function() {\n this.setSelectionRange(this.getLineRange());\n };\n this.moveCursorUp = function() {\n this.moveCursorBy(-1, 0);\n };\n this.moveCursorDown = function() {\n this.moveCursorBy(1, 0);\n };\n this.wouldMoveIntoSoftTab = function(cursor, tabSize, direction) {\n var start = cursor.column;\n var end = cursor.column + tabSize;\n\n if (direction < 0) {\n start = cursor.column - tabSize;\n end = cursor.column;\n }\n return this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(start, end).split(\" \").length-1 == tabSize;\n };\n this.moveCursorLeft = function() {\n var cursor = this.lead.getPosition(),\n fold;\n\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n } else if (cursor.column === 0) {\n if (cursor.row > 0) {\n this.moveCursorTo(cursor.row - 1, this.doc.getLine(cursor.row - 1).length);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, -1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, -tabSize);\n } else {\n this.moveCursorBy(0, -1);\n }\n }\n };\n this.moveCursorRight = function() {\n var cursor = this.lead.getPosition(),\n fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, 1)) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n }\n else if (this.lead.column == this.doc.getLine(this.lead.row).length) {\n if (this.lead.row < this.doc.getLength() - 1) {\n this.moveCursorTo(this.lead.row + 1, 0);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n var cursor = this.lead;\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, 1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, tabSize);\n } else {\n this.moveCursorBy(0, 1);\n }\n }\n };\n this.moveCursorLineStart = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var screenRow = this.session.documentToScreenRow(row, column);\n var firstColumnPosition = this.session.screenToDocumentPosition(screenRow, 0);\n var beforeCursor = this.session.getDisplayLine(\n row, null, firstColumnPosition.row,\n firstColumnPosition.column\n );\n\n var leadingSpace = beforeCursor.match(/^\\s*/);\n if (leadingSpace[0].length != column && !this.session.$useEmacsStyleLineStart)\n firstColumnPosition.column += leadingSpace[0].length;\n this.moveCursorToPosition(firstColumnPosition);\n };\n this.moveCursorLineEnd = function() {\n var lead = this.lead;\n var lineEnd = this.session.getDocumentLastRowColumnPosition(lead.row, lead.column);\n if (this.lead.column == lineEnd.column) {\n var line = this.session.getLine(lineEnd.row);\n if (lineEnd.column == line.length) {\n var textEnd = line.search(/\\s+$/);\n if (textEnd > 0)\n lineEnd.column = textEnd;\n }\n }\n\n this.moveCursorTo(lineEnd.row, lineEnd.column);\n };\n this.moveCursorFileEnd = function() {\n var row = this.doc.getLength() - 1;\n var column = this.doc.getLine(row).length;\n this.moveCursorTo(row, column);\n };\n this.moveCursorFileStart = function() {\n this.moveCursorTo(0, 0);\n };\n this.moveCursorLongWordRight = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n\n var match;\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n return;\n }\n if (match = this.session.nonTokenRe.exec(rightOfCursor)) {\n column += this.session.nonTokenRe.lastIndex;\n this.session.nonTokenRe.lastIndex = 0;\n rightOfCursor = line.substring(column);\n }\n if (column >= line.length) {\n this.moveCursorTo(row, line.length);\n this.moveCursorRight();\n if (row < this.doc.getLength() - 1)\n this.moveCursorWordRight();\n return;\n }\n if (match = this.session.tokenRe.exec(rightOfCursor)) {\n column += this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n\n this.moveCursorTo(row, column);\n };\n this.moveCursorLongWordLeft = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n return;\n }\n\n var str = this.session.getFoldStringAt(row, column, -1);\n if (str == null) {\n str = this.doc.getLine(row).substring(0, column);\n }\n\n var leftOfCursor = lang.stringReverse(str);\n var match;\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n if (match = this.session.nonTokenRe.exec(leftOfCursor)) {\n column -= this.session.nonTokenRe.lastIndex;\n leftOfCursor = leftOfCursor.slice(this.session.nonTokenRe.lastIndex);\n this.session.nonTokenRe.lastIndex = 0;\n }\n if (column <= 0) {\n this.moveCursorTo(row, 0);\n this.moveCursorLeft();\n if (row > 0)\n this.moveCursorWordLeft();\n return;\n }\n if (match = this.session.tokenRe.exec(leftOfCursor)) {\n column -= this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n\n this.moveCursorTo(row, column);\n };\n\n this.$shortWordEndIndex = function(rightOfCursor) {\n var match, index = 0, ch;\n var whitespaceRe = /\\s/;\n var tokenRe = this.session.tokenRe;\n\n tokenRe.lastIndex = 0;\n if (match = this.session.tokenRe.exec(rightOfCursor)) {\n index = this.session.tokenRe.lastIndex;\n } else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index ++;\n\n if (index < 1) {\n tokenRe.lastIndex = 0;\n while ((ch = rightOfCursor[index]) && !tokenRe.test(ch)) {\n tokenRe.lastIndex = 0;\n index ++;\n if (whitespaceRe.test(ch)) {\n if (index > 2) {\n index--;\n break;\n } else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index ++;\n if (index > 2)\n break;\n }\n }\n }\n }\n }\n tokenRe.lastIndex = 0;\n\n return index;\n };\n\n this.moveCursorShortWordRight = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold)\n return this.moveCursorTo(fold.end.row, fold.end.column);\n\n if (column == line.length) {\n var l = this.doc.getLength();\n do {\n row++;\n rightOfCursor = this.doc.getLine(row);\n } while (row < l && /^\\s*$/.test(rightOfCursor));\n\n if (!/^\\s+/.test(rightOfCursor))\n rightOfCursor = \"\";\n column = 0;\n }\n\n var index = this.$shortWordEndIndex(rightOfCursor);\n\n this.moveCursorTo(row, column + index);\n };\n\n this.moveCursorShortWordLeft = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1))\n return this.moveCursorTo(fold.start.row, fold.start.column);\n\n var line = this.session.getLine(row).substring(0, column);\n if (column === 0) {\n do {\n row--;\n line = this.doc.getLine(row);\n } while (row > 0 && /^\\s*$/.test(line));\n\n column = line.length;\n if (!/\\s+$/.test(line))\n line = \"\";\n }\n\n var leftOfCursor = lang.stringReverse(line);\n var index = this.$shortWordEndIndex(leftOfCursor);\n\n return this.moveCursorTo(row, column - index);\n };\n\n this.moveCursorWordRight = function() {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordRight();\n else\n this.moveCursorShortWordRight();\n };\n\n this.moveCursorWordLeft = function() {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordLeft();\n else\n this.moveCursorShortWordLeft();\n };\n this.moveCursorBy = function(rows, chars) {\n var screenPos = this.session.documentToScreenPosition(\n this.lead.row,\n this.lead.column\n );\n\n var offsetX;\n\n if (chars === 0) {\n if (rows !== 0) {\n if (this.session.$bidiHandler.isBidiRow(screenPos.row, this.lead.row)) {\n offsetX = this.session.$bidiHandler.getPosLeft(screenPos.column);\n screenPos.column = Math.round(offsetX / this.session.$bidiHandler.charWidths[0]);\n } else {\n offsetX = screenPos.column * this.session.$bidiHandler.charWidths[0];\n }\n }\n\n if (this.$desiredColumn)\n screenPos.column = this.$desiredColumn;\n else\n this.$desiredColumn = screenPos.column;\n }\n\n var docPos = this.session.screenToDocumentPosition(screenPos.row + rows, screenPos.column, offsetX);\n \n if (rows !== 0 && chars === 0 && docPos.row === this.lead.row && docPos.column === this.lead.column) {\n if (this.session.lineWidgets && this.session.lineWidgets[docPos.row]) {\n if (docPos.row > 0 || rows > 0)\n docPos.row++;\n }\n }\n this.moveCursorTo(docPos.row, docPos.column + chars, chars === 0);\n };\n this.moveCursorToPosition = function(position) {\n this.moveCursorTo(position.row, position.column);\n };\n this.moveCursorTo = function(row, column, keepDesiredColumn) {\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n row = fold.start.row;\n column = fold.start.column;\n }\n\n this.$keepDesiredColumnOnChange = true;\n var line = this.session.getLine(row);\n if (/[\\uDC00-\\uDFFF]/.test(line.charAt(column)) && line.charAt(column - 1)) {\n if (this.lead.row == row && this.lead.column == column + 1)\n column = column - 1;\n else\n column = column + 1;\n }\n this.lead.setPosition(row, column);\n this.$keepDesiredColumnOnChange = false;\n\n if (!keepDesiredColumn)\n this.$desiredColumn = null;\n };\n this.moveCursorToScreen = function(row, column, keepDesiredColumn) {\n var pos = this.session.screenToDocumentPosition(row, column);\n this.moveCursorTo(pos.row, pos.column, keepDesiredColumn);\n };\n this.detach = function() {\n this.lead.detach();\n this.anchor.detach();\n this.session = this.doc = null;\n };\n\n this.fromOrientedRange = function(range) {\n this.setSelectionRange(range, range.cursor == range.start);\n this.$desiredColumn = range.desiredColumn || this.$desiredColumn;\n };\n\n this.toOrientedRange = function(range) {\n var r = this.getRange();\n if (range) {\n range.start.column = r.start.column;\n range.start.row = r.start.row;\n range.end.column = r.end.column;\n range.end.row = r.end.row;\n } else {\n range = r;\n }\n\n range.cursor = this.isBackwards() ? range.start : range.end;\n range.desiredColumn = this.$desiredColumn;\n return range;\n };\n this.getRangeOfMovements = function(func) {\n var start = this.getCursor();\n try {\n func(this);\n var end = this.getCursor();\n return Range.fromPoints(start,end);\n } catch(e) {\n return Range.fromPoints(start,start);\n } finally {\n this.moveCursorToPosition(start);\n }\n };\n\n this.toJSON = function() {\n if (this.rangeCount) {\n var data = this.ranges.map(function(r) {\n var r1 = r.clone();\n r1.isBackwards = r.cursor == r.start;\n return r1;\n });\n } else {\n var data = this.getRange();\n data.isBackwards = this.isBackwards();\n }\n return data;\n };\n\n this.fromJSON = function(data) {\n if (data.start == undefined) {\n if (this.rangeList) {\n this.toSingleRange(data[0]);\n for (var i = data.length; i--; ) {\n var r = Range.fromPoints(data[i].start, data[i].end);\n if (data[i].isBackwards)\n r.cursor = r.start;\n this.addRange(r, true);\n }\n return;\n } else\n data = data[0];\n }\n if (this.rangeList)\n this.toSingleRange(data);\n this.setSelectionRange(data, data.isBackwards);\n };\n\n this.isEqual = function(data) {\n if ((data.length || this.rangeCount) && data.length != this.rangeCount)\n return false;\n if (!data.length || !this.ranges)\n return this.getRange().isEqual(data);\n\n for (var i = this.ranges.length; i--; ) {\n if (!this.ranges[i].isEqual(data[i]))\n return false;\n }\n return true;\n };\n\n}).call(Selection.prototype);\n\nexports.Selection = Selection;\n});\n\nace.define(\"ace/tokenizer\",[\"require\",\"exports\",\"module\",\"ace/config\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar config = acequire(\"./config\");\nvar MAX_TOKEN_COUNT = 2000;\nvar Tokenizer = function(rules) {\n this.states = rules;\n\n this.regExps = {};\n this.matchMappings = {};\n for (var key in this.states) {\n var state = this.states[key];\n var ruleRegExps = [];\n var matchTotal = 0;\n var mapping = this.matchMappings[key] = {defaultToken: \"text\"};\n var flag = \"g\";\n\n var splitterRurles = [];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.defaultToken)\n mapping.defaultToken = rule.defaultToken;\n if (rule.caseInsensitive)\n flag = \"gi\";\n if (rule.regex == null)\n continue;\n\n if (rule.regex instanceof RegExp)\n rule.regex = rule.regex.toString().slice(1, -1);\n var adjustedregex = rule.regex;\n var matchcount = new RegExp(\"(?:(\" + adjustedregex + \")|(.))\").exec(\"a\").length - 2;\n if (Array.isArray(rule.token)) {\n if (rule.token.length == 1 || matchcount == 1) {\n rule.token = rule.token[0];\n } else if (matchcount - 1 != rule.token.length) {\n this.reportError(\"number of classes and regexp groups doesn't match\", { \n rule: rule,\n groupCount: matchcount - 1\n });\n rule.token = rule.token[0];\n } else {\n rule.tokenArray = rule.token;\n rule.token = null;\n rule.onMatch = this.$arrayTokens;\n }\n } else if (typeof rule.token == \"function\" && !rule.onMatch) {\n if (matchcount > 1)\n rule.onMatch = this.$applyToken;\n else\n rule.onMatch = rule.token;\n }\n\n if (matchcount > 1) {\n if (/\\\\\\d/.test(rule.regex)) {\n adjustedregex = rule.regex.replace(/\\\\([0-9]+)/g, function(match, digit) {\n return \"\\\\\" + (parseInt(digit, 10) + matchTotal + 1);\n });\n } else {\n matchcount = 1;\n adjustedregex = this.removeCapturingGroups(rule.regex);\n }\n if (!rule.splitRegex && typeof rule.token != \"string\")\n splitterRurles.push(rule); // flag will be known only at the very end\n }\n\n mapping[matchTotal] = i;\n matchTotal += matchcount;\n\n ruleRegExps.push(adjustedregex);\n if (!rule.onMatch)\n rule.onMatch = null;\n }\n \n if (!ruleRegExps.length) {\n mapping[0] = 0;\n ruleRegExps.push(\"$\");\n }\n \n splitterRurles.forEach(function(rule) {\n rule.splitRegex = this.createSplitterRegexp(rule.regex, flag);\n }, this);\n\n this.regExps[key] = new RegExp(\"(\" + ruleRegExps.join(\")|(\") + \")|($)\", flag);\n }\n};\n\n(function() {\n this.$setMaxTokenCount = function(m) {\n MAX_TOKEN_COUNT = m | 0;\n };\n \n this.$applyToken = function(str) {\n var values = this.splitRegex.exec(str).slice(1);\n var types = this.token.apply(this, values);\n if (typeof types === \"string\")\n return [{type: types, value: str}];\n\n var tokens = [];\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i]\n };\n }\n return tokens;\n };\n\n this.$arrayTokens = function(str) {\n if (!str)\n return [];\n var values = this.splitRegex.exec(str);\n if (!values)\n return \"text\";\n var tokens = [];\n var types = this.tokenArray;\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i + 1])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i + 1]\n };\n }\n return tokens;\n };\n\n this.removeCapturingGroups = function(src) {\n var r = src.replace(\n /\\[(?:\\\\.|[^\\]])*?\\]|\\\\.|\\(\\?[:=!]|(\\()/g,\n function(x, y) {return y ? \"(?:\" : x;}\n );\n return r;\n };\n\n this.createSplitterRegexp = function(src, flag) {\n if (src.indexOf(\"(?=\") != -1) {\n var stack = 0;\n var inChClass = false;\n var lastCapture = {};\n src.replace(/(\\\\.)|(\\((?:\\?[=!])?)|(\\))|([\\[\\]])/g, function(\n m, esc, parenOpen, parenClose, square, index\n ) {\n if (inChClass) {\n inChClass = square != \"]\";\n } else if (square) {\n inChClass = true;\n } else if (parenClose) {\n if (stack == lastCapture.stack) {\n lastCapture.end = index+1;\n lastCapture.stack = -1;\n }\n stack--;\n } else if (parenOpen) {\n stack++;\n if (parenOpen.length != 1) {\n lastCapture.stack = stack;\n lastCapture.start = index;\n }\n }\n return m;\n });\n\n if (lastCapture.end != null && /^\\)*$/.test(src.substr(lastCapture.end)))\n src = src.substring(0, lastCapture.start) + src.substr(lastCapture.end);\n }\n if (src.charAt(0) != \"^\") src = \"^\" + src;\n if (src.charAt(src.length - 1) != \"$\") src += \"$\";\n \n return new RegExp(src, (flag||\"\").replace(\"g\", \"\"));\n };\n this.getLineTokens = function(line, startState) {\n if (startState && typeof startState != \"string\") {\n var stack = startState.slice(0);\n startState = stack[0];\n if (startState === \"#tmp\") {\n stack.shift();\n startState = stack.shift();\n }\n } else\n var stack = [];\n\n var currentState = startState || \"start\";\n var state = this.states[currentState];\n if (!state) {\n currentState = \"start\";\n state = this.states[currentState];\n }\n var mapping = this.matchMappings[currentState];\n var re = this.regExps[currentState];\n re.lastIndex = 0;\n\n var match, tokens = [];\n var lastIndex = 0;\n var matchAttempts = 0;\n\n var token = {type: null, value: \"\"};\n\n while (match = re.exec(line)) {\n var type = mapping.defaultToken;\n var rule = null;\n var value = match[0];\n var index = re.lastIndex;\n\n if (index - value.length > lastIndex) {\n var skipped = line.substring(lastIndex, index - value.length);\n if (token.type == type) {\n token.value += skipped;\n } else {\n if (token.type)\n tokens.push(token);\n token = {type: type, value: skipped};\n }\n }\n\n for (var i = 0; i < match.length-2; i++) {\n if (match[i + 1] === undefined)\n continue;\n\n rule = state[mapping[i]];\n\n if (rule.onMatch)\n type = rule.onMatch(value, currentState, stack, line);\n else\n type = rule.token;\n\n if (rule.next) {\n if (typeof rule.next == \"string\") {\n currentState = rule.next;\n } else {\n currentState = rule.next(currentState, stack);\n }\n \n state = this.states[currentState];\n if (!state) {\n this.reportError(\"state doesn't exist\", currentState);\n currentState = \"start\";\n state = this.states[currentState];\n }\n mapping = this.matchMappings[currentState];\n lastIndex = index;\n re = this.regExps[currentState];\n re.lastIndex = index;\n }\n if (rule.consumeLineEnd)\n lastIndex = index;\n break;\n }\n\n if (value) {\n if (typeof type === \"string\") {\n if ((!rule || rule.merge !== false) && token.type === type) {\n token.value += value;\n } else {\n if (token.type)\n tokens.push(token);\n token = {type: type, value: value};\n }\n } else if (type) {\n if (token.type)\n tokens.push(token);\n token = {type: null, value: \"\"};\n for (var i = 0; i < type.length; i++)\n tokens.push(type[i]);\n }\n }\n\n if (lastIndex == line.length)\n break;\n\n lastIndex = index;\n\n if (matchAttempts++ > MAX_TOKEN_COUNT) {\n if (matchAttempts > 2 * line.length) {\n this.reportError(\"infinite loop with in ace tokenizer\", {\n startState: startState,\n line: line\n });\n }\n while (lastIndex < line.length) {\n if (token.type)\n tokens.push(token);\n token = {\n value: line.substring(lastIndex, lastIndex += 2000),\n type: \"overflow\"\n };\n }\n currentState = \"start\";\n stack = [];\n break;\n }\n }\n\n if (token.type)\n tokens.push(token);\n \n if (stack.length > 1) {\n if (stack[0] !== currentState)\n stack.unshift(\"#tmp\", currentState);\n }\n return {\n tokens : tokens,\n state : stack.length ? stack : currentState\n };\n };\n \n this.reportError = config.reportError;\n \n}).call(Tokenizer.prototype);\n\nexports.Tokenizer = Tokenizer;\n});\n\nace.define(\"ace/mode/text_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"../lib/lang\");\n\nvar TextHighlightRules = function() {\n\n this.$rules = {\n \"start\" : [{\n token : \"empty_line\",\n regex : '^$'\n }, {\n defaultToken : \"text\"\n }]\n };\n};\n\n(function() {\n\n this.addRules = function(rules, prefix) {\n if (!prefix) {\n for (var key in rules)\n this.$rules[key] = rules[key];\n return;\n }\n for (var key in rules) {\n var state = rules[key];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.next || rule.onMatch) {\n if (typeof rule.next == \"string\") {\n if (rule.next.indexOf(prefix) !== 0)\n rule.next = prefix + rule.next;\n }\n if (rule.nextState && rule.nextState.indexOf(prefix) !== 0)\n rule.nextState = prefix + rule.nextState;\n }\n }\n this.$rules[prefix + key] = state;\n }\n };\n\n this.getRules = function() {\n return this.$rules;\n };\n\n this.embedRules = function (HighlightRules, prefix, escapeRules, states, append) {\n var embedRules = typeof HighlightRules == \"function\"\n ? new HighlightRules().getRules()\n : HighlightRules;\n if (states) {\n for (var i = 0; i < states.length; i++)\n states[i] = prefix + states[i];\n } else {\n states = [];\n for (var key in embedRules)\n states.push(prefix + key);\n }\n\n this.addRules(embedRules, prefix);\n\n if (escapeRules) {\n var addRules = Array.prototype[append ? \"push\" : \"unshift\"];\n for (var i = 0; i < states.length; i++)\n addRules.apply(this.$rules[states[i]], lang.deepCopy(escapeRules));\n }\n\n if (!this.$embeds)\n this.$embeds = [];\n this.$embeds.push(prefix);\n };\n\n this.getEmbeds = function() {\n return this.$embeds;\n };\n\n var pushState = function(currentState, stack) {\n if (currentState != \"start\" || stack.length)\n stack.unshift(this.nextState, currentState);\n return this.nextState;\n };\n var popState = function(currentState, stack) {\n stack.shift();\n return stack.shift() || \"start\";\n };\n\n this.normalizeRules = function() {\n var id = 0;\n var rules = this.$rules;\n function processState(key) {\n var state = rules[key];\n state.processed = true;\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n var toInsert = null;\n if (Array.isArray(rule)) {\n toInsert = rule;\n rule = {};\n }\n if (!rule.regex && rule.start) {\n rule.regex = rule.start;\n if (!rule.next)\n rule.next = [];\n rule.next.push({\n defaultToken: rule.token\n }, {\n token: rule.token + \".end\",\n regex: rule.end || rule.start,\n next: \"pop\"\n });\n rule.token = rule.token + \".start\";\n rule.push = true;\n }\n var next = rule.next || rule.push;\n if (next && Array.isArray(next)) {\n var stateName = rule.stateName;\n if (!stateName) {\n stateName = rule.token;\n if (typeof stateName != \"string\")\n stateName = stateName[0] || \"\";\n if (rules[stateName])\n stateName += id++;\n }\n rules[stateName] = next;\n rule.next = stateName;\n processState(stateName);\n } else if (next == \"pop\") {\n rule.next = popState;\n }\n\n if (rule.push) {\n rule.nextState = rule.next || rule.push;\n rule.next = pushState;\n delete rule.push;\n }\n\n if (rule.rules) {\n for (var r in rule.rules) {\n if (rules[r]) {\n if (rules[r].push)\n rules[r].push.apply(rules[r], rule.rules[r]);\n } else {\n rules[r] = rule.rules[r];\n }\n }\n }\n var includeName = typeof rule == \"string\" ? rule : rule.include;\n if (includeName) {\n if (Array.isArray(includeName))\n toInsert = includeName.map(function(x) { return rules[x]; });\n else\n toInsert = rules[includeName];\n }\n\n if (toInsert) {\n var args = [i, 1].concat(toInsert);\n if (rule.noEscape)\n args = args.filter(function(x) {return !x.next;});\n state.splice.apply(state, args);\n i--;\n }\n \n if (rule.keywordMap) {\n rule.token = this.createKeywordMapper(\n rule.keywordMap, rule.defaultToken || \"text\", rule.caseInsensitive\n );\n delete rule.defaultToken;\n }\n }\n }\n Object.keys(rules).forEach(processState, this);\n };\n\n this.createKeywordMapper = function(map, defaultToken, ignoreCase, splitChar) {\n var keywords = Object.create(null);\n Object.keys(map).forEach(function(className) {\n var a = map[className];\n if (ignoreCase)\n a = a.toLowerCase();\n var list = a.split(splitChar || \"|\");\n for (var i = list.length; i--; )\n keywords[list[i]] = className;\n });\n if (Object.getPrototypeOf(keywords)) {\n keywords.__proto__ = null;\n }\n this.$keywordList = Object.keys(keywords);\n map = null;\n return ignoreCase\n ? function(value) {return keywords[value.toLowerCase()] || defaultToken; }\n : function(value) {return keywords[value] || defaultToken; };\n };\n\n this.getKeywords = function() {\n return this.$keywords;\n };\n\n}).call(TextHighlightRules.prototype);\n\nexports.TextHighlightRules = TextHighlightRules;\n});\n\nace.define(\"ace/mode/behaviour\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Behaviour = function() {\n this.$behaviours = {};\n};\n\n(function () {\n\n this.add = function (name, action, callback) {\n switch (undefined) {\n case this.$behaviours:\n this.$behaviours = {};\n case this.$behaviours[name]:\n this.$behaviours[name] = {};\n }\n this.$behaviours[name][action] = callback;\n };\n \n this.addBehaviours = function (behaviours) {\n for (var key in behaviours) {\n for (var action in behaviours[key]) {\n this.add(key, action, behaviours[key][action]);\n }\n }\n };\n \n this.remove = function (name) {\n if (this.$behaviours && this.$behaviours[name]) {\n delete this.$behaviours[name];\n }\n };\n \n this.inherit = function (mode, filter) {\n if (typeof mode === \"function\") {\n var behaviours = new mode().getBehaviours(filter);\n } else {\n var behaviours = mode.getBehaviours(filter);\n }\n this.addBehaviours(behaviours);\n };\n \n this.getBehaviours = function (filter) {\n if (!filter) {\n return this.$behaviours;\n } else {\n var ret = {};\n for (var i = 0; i < filter.length; i++) {\n if (this.$behaviours[filter[i]]) {\n ret[filter[i]] = this.$behaviours[filter[i]];\n }\n }\n return ret;\n }\n };\n\n}).call(Behaviour.prototype);\n\nexports.Behaviour = Behaviour;\n});\n\nace.define(\"ace/token_iterator\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"./range\").Range;\nvar TokenIterator = function(session, initialRow, initialColumn) {\n this.$session = session;\n this.$row = initialRow;\n this.$rowTokens = session.getTokens(initialRow);\n\n var token = session.getTokenAt(initialRow, initialColumn);\n this.$tokenIndex = token ? token.index : -1;\n};\n\n(function() { \n this.stepBackward = function() {\n this.$tokenIndex -= 1;\n \n while (this.$tokenIndex < 0) {\n this.$row -= 1;\n if (this.$row < 0) {\n this.$row = 0;\n return null;\n }\n \n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = this.$rowTokens.length - 1;\n }\n \n return this.$rowTokens[this.$tokenIndex];\n }; \n this.stepForward = function() {\n this.$tokenIndex += 1;\n var rowCount;\n while (this.$tokenIndex >= this.$rowTokens.length) {\n this.$row += 1;\n if (!rowCount)\n rowCount = this.$session.getLength();\n if (this.$row >= rowCount) {\n this.$row = rowCount - 1;\n return null;\n }\n\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = 0;\n }\n \n return this.$rowTokens[this.$tokenIndex];\n }; \n this.getCurrentToken = function () {\n return this.$rowTokens[this.$tokenIndex];\n }; \n this.getCurrentTokenRow = function () {\n return this.$row;\n }; \n this.getCurrentTokenColumn = function() {\n var rowTokens = this.$rowTokens;\n var tokenIndex = this.$tokenIndex;\n var column = rowTokens[tokenIndex].start;\n if (column !== undefined)\n return column;\n \n column = 0;\n while (tokenIndex > 0) {\n tokenIndex -= 1;\n column += rowTokens[tokenIndex].value.length;\n }\n \n return column; \n };\n this.getCurrentTokenPosition = function() {\n return {row: this.$row, column: this.getCurrentTokenColumn()};\n };\n this.getCurrentTokenRange = function() {\n var token = this.$rowTokens[this.$tokenIndex];\n var column = this.getCurrentTokenColumn();\n return new Range(this.$row, column, this.$row, column + token.value.length);\n };\n\n}).call(TokenIterator.prototype);\n\nexports.TokenIterator = TokenIterator;\n});\n\nace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Behaviour = acequire(\"../behaviour\").Behaviour;\nvar TokenIterator = acequire(\"../../token_iterator\").TokenIterator;\nvar lang = acequire(\"../../lib/lang\");\n\nvar SAFE_INSERT_IN_TOKENS =\n [\"text\", \"paren.rparen\", \"punctuation.operator\"];\nvar SAFE_INSERT_BEFORE_TOKENS =\n [\"text\", \"paren.rparen\", \"punctuation.operator\", \"comment\"];\n\nvar context;\nvar contextCache = {};\nvar defaultQuotes = {'\"' : '\"', \"'\" : \"'\"};\n\nvar initContext = function(editor) {\n var id = -1;\n if (editor.multiSelect) {\n id = editor.selection.index;\n if (contextCache.rangeCount != editor.multiSelect.rangeCount)\n contextCache = {rangeCount: editor.multiSelect.rangeCount};\n }\n if (contextCache[id])\n return context = contextCache[id];\n context = contextCache[id] = {\n autoInsertedBrackets: 0,\n autoInsertedRow: -1,\n autoInsertedLineEnd: \"\",\n maybeInsertedBrackets: 0,\n maybeInsertedRow: -1,\n maybeInsertedLineStart: \"\",\n maybeInsertedLineEnd: \"\"\n };\n};\n\nvar getWrapped = function(selection, selected, opening, closing) {\n var rowDiff = selection.end.row - selection.start.row;\n return {\n text: opening + selected + closing,\n selection: [\n 0,\n selection.start.column + 1,\n rowDiff,\n selection.end.column + (rowDiff ? 0 : 1)\n ]\n };\n};\n\nvar CstyleBehaviour = function(options) {\n this.add(\"braces\", \"insertion\", function(state, action, editor, session, text) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (text == '{') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"{\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '{', '}');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n if (/[\\]\\}\\)]/.test(line[cursor.column]) || editor.inMultiSelectMode || options && options.braces) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"}\");\n return {\n text: '{}',\n selection: [1, 1]\n };\n } else {\n CstyleBehaviour.recordMaybeInsert(editor, session, \"{\");\n return {\n text: '{',\n selection: [1, 1]\n };\n }\n }\n } else if (text == '}') {\n initContext(editor);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == '}') {\n var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n } else if (text == \"\\n\" || text == \"\\r\\n\") {\n initContext(editor);\n var closing = \"\";\n if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {\n closing = lang.stringRepeat(\"}\", context.maybeInsertedBrackets);\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === '}') {\n var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column+1}, '}');\n if (!openBracePos)\n return null;\n var next_indent = this.$getIndent(session.getLine(openBracePos.row));\n } else if (closing) {\n var next_indent = this.$getIndent(line);\n } else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n return;\n }\n var indent = next_indent + session.getTabString();\n\n return {\n text: '\\n' + indent + '\\n' + next_indent + closing,\n selection: [1, indent.length, 1, indent.length]\n };\n } else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n });\n\n this.add(\"braces\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '{') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar == '}') {\n range.end.column++;\n return range;\n } else {\n context.maybeInsertedBrackets--;\n }\n }\n });\n\n this.add(\"parens\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '(') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '(', ')');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \")\");\n return {\n text: '()',\n selection: [1, 1]\n };\n }\n } else if (text == ')') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ')') {\n var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n\n this.add(\"parens\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '(') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ')') {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"brackets\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '[') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '[', ']');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"]\");\n return {\n text: '[]',\n selection: [1, 1]\n };\n }\n } else if (text == ']') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ']') {\n var matching = session.$findOpeningBracket(']', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n\n this.add(\"brackets\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '[') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ']') {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"string_dquotes\", \"insertion\", function(state, action, editor, session, text) {\n var quotes = session.$mode.$quotes || defaultQuotes;\n if (text.length == 1 && quotes[text]) {\n if (this.lineCommentStart && this.lineCommentStart.indexOf(text) != -1)\n return;\n initContext(editor);\n var quote = text;\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && (selected.length != 1 || !quotes[selected]) && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, quote, quote);\n } else if (!selected) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var leftChar = line.substring(cursor.column-1, cursor.column);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n\n var token = session.getTokenAt(cursor.row, cursor.column);\n var rightToken = session.getTokenAt(cursor.row, cursor.column + 1);\n if (leftChar == \"\\\\\" && token && /escape/.test(token.type))\n return null;\n\n var stringBefore = token && /string|escape/.test(token.type);\n var stringAfter = !rightToken || /string|escape/.test(rightToken.type);\n\n var pair;\n if (rightChar == quote) {\n pair = stringBefore !== stringAfter;\n if (pair && /string\\.end/.test(rightToken.type))\n pair = false;\n } else {\n if (stringBefore && !stringAfter)\n return null; // wrap string with different quote\n if (stringBefore && stringAfter)\n return null; // do not pair quotes inside strings\n var wordRe = session.$mode.tokenRe;\n wordRe.lastIndex = 0;\n var isWordBefore = wordRe.test(leftChar);\n wordRe.lastIndex = 0;\n var isWordAfter = wordRe.test(leftChar);\n if (isWordBefore || isWordAfter)\n return null; // before or after alphanumeric\n if (rightChar && !/[\\s;,.})\\]\\\\]/.test(rightChar))\n return null; // there is rightChar and it isn't closing\n pair = true;\n }\n return {\n text: pair ? quote + quote : \"\",\n selection: [1,1]\n };\n }\n }\n });\n\n this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n\n};\n\n\nCstyleBehaviour.isSaneInsertion = function(editor, session) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n if (!this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS)) {\n var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);\n if (!this.$matchTokenType(iterator2.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS))\n return false;\n }\n iterator.stepForward();\n return iterator.getCurrentTokenRow() !== cursor.row ||\n this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_BEFORE_TOKENS);\n};\n\nCstyleBehaviour.$matchTokenType = function(token, types) {\n return types.indexOf(token.type || token) > -1;\n};\n\nCstyleBehaviour.recordAutoInsert = function(editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))\n context.autoInsertedBrackets = 0;\n context.autoInsertedRow = cursor.row;\n context.autoInsertedLineEnd = bracket + line.substr(cursor.column);\n context.autoInsertedBrackets++;\n};\n\nCstyleBehaviour.recordMaybeInsert = function(editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isMaybeInsertedClosing(cursor, line))\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = cursor.row;\n context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;\n context.maybeInsertedLineEnd = line.substr(cursor.column);\n context.maybeInsertedBrackets++;\n};\n\nCstyleBehaviour.isAutoInsertedClosing = function(cursor, line, bracket) {\n return context.autoInsertedBrackets > 0 &&\n cursor.row === context.autoInsertedRow &&\n bracket === context.autoInsertedLineEnd[0] &&\n line.substr(cursor.column) === context.autoInsertedLineEnd;\n};\n\nCstyleBehaviour.isMaybeInsertedClosing = function(cursor, line) {\n return context.maybeInsertedBrackets > 0 &&\n cursor.row === context.maybeInsertedRow &&\n line.substr(cursor.column) === context.maybeInsertedLineEnd &&\n line.substr(0, cursor.column) == context.maybeInsertedLineStart;\n};\n\nCstyleBehaviour.popAutoInsertedClosing = function() {\n context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);\n context.autoInsertedBrackets--;\n};\n\nCstyleBehaviour.clearMaybeInsertedClosing = function() {\n if (context) {\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = -1;\n }\n};\n\n\n\noop.inherits(CstyleBehaviour, Behaviour);\n\nexports.CstyleBehaviour = CstyleBehaviour;\n});\n\nace.define(\"ace/unicode\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nexports.packages = {};\n\naddUnicodePackage({\n L: \"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",\n Ll: \"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A\",\n Lu: \"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A\",\n Lt: \"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC\",\n Lm: \"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F\",\n Lo: \"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",\n M: \"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26\",\n Mn: \"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26\",\n Mc: \"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC\",\n Me: \"0488048906DE20DD-20E020E2-20E4A670-A672\",\n N: \"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",\n Nd: \"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",\n Nl: \"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF\",\n No: \"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835\",\n P: \"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65\",\n Pd: \"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D\",\n Ps: \"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62\",\n Pe: \"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63\",\n Pi: \"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20\",\n Pf: \"00BB2019201D203A2E032E052E0A2E0D2E1D2E21\",\n Pc: \"005F203F20402054FE33FE34FE4D-FE4FFF3F\",\n Po: \"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65\",\n S: \"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD\",\n Sm: \"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC\",\n Sc: \"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6\",\n Sk: \"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3\",\n So: \"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD\",\n Z: \"002000A01680180E2000-200A20282029202F205F3000\",\n Zs: \"002000A01680180E2000-200A202F205F3000\",\n Zl: \"2028\",\n Zp: \"2029\",\n C: \"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF\",\n Cc: \"0000-001F007F-009F\",\n Cf: \"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB\",\n Co: \"E000-F8FF\",\n Cs: \"D800-DFFF\",\n Cn: \"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF\"\n});\n\nfunction addUnicodePackage (pack) {\n var codePoint = /\\w{4}/g;\n for (var name in pack)\n exports.packages[name] = pack[name].replace(codePoint, \"\\\\u$&\");\n}\n\n});\n\nace.define(\"ace/mode/text\",[\"require\",\"exports\",\"module\",\"ace/tokenizer\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/unicode\",\"ace/lib/lang\",\"ace/token_iterator\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Tokenizer = acequire(\"../tokenizer\").Tokenizer;\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\nvar CstyleBehaviour = acequire(\"./behaviour/cstyle\").CstyleBehaviour;\nvar unicode = acequire(\"../unicode\");\nvar lang = acequire(\"../lib/lang\");\nvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\nvar Range = acequire(\"../range\").Range;\n\nvar Mode = function() {\n this.HighlightRules = TextHighlightRules;\n};\n\n(function() {\n this.$defaultBehaviour = new CstyleBehaviour();\n\n this.tokenRe = new RegExp(\"^[\"\n + unicode.packages.L\n + unicode.packages.Mn + unicode.packages.Mc\n + unicode.packages.Nd\n + unicode.packages.Pc + \"\\\\$_]+\", \"g\"\n );\n\n this.nonTokenRe = new RegExp(\"^(?:[^\"\n + unicode.packages.L\n + unicode.packages.Mn + unicode.packages.Mc\n + unicode.packages.Nd\n + unicode.packages.Pc + \"\\\\$_]|\\\\s])+\", \"g\"\n );\n\n this.getTokenizer = function() {\n if (!this.$tokenizer) {\n this.$highlightRules = this.$highlightRules || new this.HighlightRules(this.$highlightRuleConfig);\n this.$tokenizer = new Tokenizer(this.$highlightRules.getRules());\n }\n return this.$tokenizer;\n };\n\n this.lineCommentStart = \"\";\n this.blockComment = \"\";\n\n this.toggleCommentLines = function(state, session, startRow, endRow) {\n var doc = session.doc;\n\n var ignoreBlankLines = true;\n var shouldRemove = true;\n var minIndent = Infinity;\n var tabSize = session.getTabSize();\n var insertAtTabStop = false;\n\n if (!this.lineCommentStart) {\n if (!this.blockComment)\n return false;\n var lineCommentStart = this.blockComment.start;\n var lineCommentEnd = this.blockComment.end;\n var regexpStart = new RegExp(\"^(\\\\s*)(?:\" + lang.escapeRegExp(lineCommentStart) + \")\");\n var regexpEnd = new RegExp(\"(?:\" + lang.escapeRegExp(lineCommentEnd) + \")\\\\s*$\");\n\n var comment = function(line, i) {\n if (testRemove(line, i))\n return;\n if (!ignoreBlankLines || /\\S/.test(line)) {\n doc.insertInLine({row: i, column: line.length}, lineCommentEnd);\n doc.insertInLine({row: i, column: minIndent}, lineCommentStart);\n }\n };\n\n var uncomment = function(line, i) {\n var m;\n if (m = line.match(regexpEnd))\n doc.removeInLine(i, line.length - m[0].length, line.length);\n if (m = line.match(regexpStart))\n doc.removeInLine(i, m[1].length, m[0].length);\n };\n\n var testRemove = function(line, row) {\n if (regexpStart.test(line))\n return true;\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n if (tokens[i].type === \"comment\")\n return true;\n }\n };\n } else {\n if (Array.isArray(this.lineCommentStart)) {\n var regexpStart = this.lineCommentStart.map(lang.escapeRegExp).join(\"|\");\n var lineCommentStart = this.lineCommentStart[0];\n } else {\n var regexpStart = lang.escapeRegExp(this.lineCommentStart);\n var lineCommentStart = this.lineCommentStart;\n }\n regexpStart = new RegExp(\"^(\\\\s*)(?:\" + regexpStart + \") ?\");\n \n insertAtTabStop = session.getUseSoftTabs();\n\n var uncomment = function(line, i) {\n var m = line.match(regexpStart);\n if (!m) return;\n var start = m[1].length, end = m[0].length;\n if (!shouldInsertSpace(line, start, end) && m[0][end - 1] == \" \")\n end--;\n doc.removeInLine(i, start, end);\n };\n var commentWithSpace = lineCommentStart + \" \";\n var comment = function(line, i) {\n if (!ignoreBlankLines || /\\S/.test(line)) {\n if (shouldInsertSpace(line, minIndent, minIndent))\n doc.insertInLine({row: i, column: minIndent}, commentWithSpace);\n else\n doc.insertInLine({row: i, column: minIndent}, lineCommentStart);\n }\n };\n var testRemove = function(line, i) {\n return regexpStart.test(line);\n };\n \n var shouldInsertSpace = function(line, before, after) {\n var spaces = 0;\n while (before-- && line.charAt(before) == \" \")\n spaces++;\n if (spaces % tabSize != 0)\n return false;\n var spaces = 0;\n while (line.charAt(after++) == \" \")\n spaces++;\n if (tabSize > 2)\n return spaces % tabSize != tabSize - 1;\n else\n return spaces % tabSize == 0;\n return true;\n };\n }\n\n function iter(fun) {\n for (var i = startRow; i <= endRow; i++)\n fun(doc.getLine(i), i);\n }\n\n\n var minEmptyLength = Infinity;\n iter(function(line, i) {\n var indent = line.search(/\\S/);\n if (indent !== -1) {\n if (indent < minIndent)\n minIndent = indent;\n if (shouldRemove && !testRemove(line, i))\n shouldRemove = false;\n } else if (minEmptyLength > line.length) {\n minEmptyLength = line.length;\n }\n });\n\n if (minIndent == Infinity) {\n minIndent = minEmptyLength;\n ignoreBlankLines = false;\n shouldRemove = false;\n }\n\n if (insertAtTabStop && minIndent % tabSize != 0)\n minIndent = Math.floor(minIndent / tabSize) * tabSize;\n\n iter(shouldRemove ? uncomment : comment);\n };\n\n this.toggleBlockComment = function(state, session, range, cursor) {\n var comment = this.blockComment;\n if (!comment)\n return;\n if (!comment.start && comment[0])\n comment = comment[0];\n\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n\n var sel = session.selection;\n var initialRange = session.selection.toOrientedRange();\n var startRow, colDiff;\n\n if (token && /comment/.test(token.type)) {\n var startRange, endRange;\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.start);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n startRange = new Range(row, column, row, column + comment.start.length);\n break;\n }\n token = iterator.stepBackward();\n }\n\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.end);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n endRange = new Range(row, column, row, column + comment.end.length);\n break;\n }\n token = iterator.stepForward();\n }\n if (endRange)\n session.remove(endRange);\n if (startRange) {\n session.remove(startRange);\n startRow = startRange.start.row;\n colDiff = -comment.start.length;\n }\n } else {\n colDiff = comment.start.length;\n startRow = range.start.row;\n session.insert(range.end, comment.end);\n session.insert(range.start, comment.start);\n }\n if (initialRange.start.row == startRow)\n initialRange.start.column += colDiff;\n if (initialRange.end.row == startRow)\n initialRange.end.column += colDiff;\n session.selection.fromOrientedRange(initialRange);\n };\n\n this.getNextLineIndent = function(state, line, tab) {\n return this.$getIndent(line);\n };\n\n this.checkOutdent = function(state, line, input) {\n return false;\n };\n\n this.autoOutdent = function(state, doc, row) {\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n this.createWorker = function(session) {\n return null;\n };\n\n this.createModeDelegates = function (mapping) {\n this.$embeds = [];\n this.$modes = {};\n for (var i in mapping) {\n if (mapping[i]) {\n this.$embeds.push(i);\n this.$modes[i] = new mapping[i]();\n }\n }\n\n var delegations = [\"toggleBlockComment\", \"toggleCommentLines\", \"getNextLineIndent\", \n \"checkOutdent\", \"autoOutdent\", \"transformAction\", \"getCompletions\"];\n\n for (var i = 0; i < delegations.length; i++) {\n (function(scope) {\n var functionName = delegations[i];\n var defaultHandler = scope[functionName];\n scope[delegations[i]] = function() {\n return this.$delegator(functionName, arguments, defaultHandler);\n };\n }(this));\n }\n };\n\n this.$delegator = function(method, args, defaultHandler) {\n var state = args[0];\n if (typeof state != \"string\")\n state = state[0];\n for (var i = 0; i < this.$embeds.length; i++) {\n if (!this.$modes[this.$embeds[i]]) continue;\n\n var split = state.split(this.$embeds[i]);\n if (!split[0] && split[1]) {\n args[0] = split[1];\n var mode = this.$modes[this.$embeds[i]];\n return mode[method].apply(mode, args);\n }\n }\n var ret = defaultHandler.apply(this, args);\n return defaultHandler ? ret : undefined;\n };\n\n this.transformAction = function(state, action, editor, session, param) {\n if (this.$behaviour) {\n var behaviours = this.$behaviour.getBehaviours();\n for (var key in behaviours) {\n if (behaviours[key][action]) {\n var ret = behaviours[key][action].apply(this, arguments);\n if (ret) {\n return ret;\n }\n }\n }\n }\n };\n \n this.getKeywords = function(append) {\n if (!this.completionKeywords) {\n var rules = this.$tokenizer.rules;\n var completionKeywords = [];\n for (var rule in rules) {\n var ruleItr = rules[rule];\n for (var r = 0, l = ruleItr.length; r < l; r++) {\n if (typeof ruleItr[r].token === \"string\") {\n if (/keyword|support|storage/.test(ruleItr[r].token))\n completionKeywords.push(ruleItr[r].regex);\n }\n else if (typeof ruleItr[r].token === \"object\") {\n for (var a = 0, aLength = ruleItr[r].token.length; a < aLength; a++) { \n if (/keyword|support|storage/.test(ruleItr[r].token[a])) {\n var rule = ruleItr[r].regex.match(/\\(.+?\\)/g)[a];\n completionKeywords.push(rule.substr(1, rule.length - 2));\n }\n }\n }\n }\n }\n this.completionKeywords = completionKeywords;\n }\n if (!append)\n return this.$keywordList;\n return completionKeywords.concat(this.$keywordList || []);\n };\n \n this.$createKeywordList = function() {\n if (!this.$highlightRules)\n this.getTokenizer();\n return this.$keywordList = this.$highlightRules.$keywordList || [];\n };\n\n this.getCompletions = function(state, session, pos, prefix) {\n var keywords = this.$keywordList || this.$createKeywordList();\n return keywords.map(function(word) {\n return {\n name: word,\n value: word,\n score: 0,\n meta: \"keyword\"\n };\n });\n };\n\n this.$id = \"ace/mode/text\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nfunction throwDeltaError(delta, errorText){\n console.log(\"Invalid Delta:\", delta);\n throw \"Invalid Delta: \" + errorText;\n}\n\nfunction positionInDocument(docLines, position) {\n return position.row >= 0 && position.row < docLines.length &&\n position.column >= 0 && position.column <= docLines[position.row].length;\n}\n\nfunction validateDelta(docLines, delta) {\n if (delta.action != \"insert\" && delta.action != \"remove\")\n throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n if (!(delta.lines instanceof Array))\n throwDeltaError(delta, \"delta.lines must be an Array\");\n if (!delta.start || !delta.end)\n throwDeltaError(delta, \"delta.start/end must be an present\");\n var start = delta.start;\n if (!positionInDocument(docLines, delta.start))\n throwDeltaError(delta, \"delta.start must be contained in document\");\n var end = delta.end;\n if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n var numRangeRows = end.row - start.row;\n var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n throwDeltaError(delta, \"delta.range must match delta lines\");\n}\n\nexports.applyDelta = function(docLines, delta, doNotValidate) {\n \n var row = delta.start.row;\n var startColumn = delta.start.column;\n var line = docLines[row] || \"\";\n switch (delta.action) {\n case \"insert\":\n var lines = delta.lines;\n if (lines.length === 1) {\n docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n } else {\n var args = [row, 1].concat(delta.lines);\n docLines.splice.apply(docLines, args);\n docLines[row] = line.substring(0, startColumn) + docLines[row];\n docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n }\n break;\n case \"remove\":\n var endColumn = delta.end.column;\n var endRow = delta.end.row;\n if (row === endRow) {\n docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n } else {\n docLines.splice(\n row, endRow - row + 1,\n line.substring(0, startColumn) + docLines[endRow].substring(endColumn)\n );\n }\n break;\n }\n};\n});\n\nace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\n\nvar Anchor = exports.Anchor = function(doc, row, column) {\n this.$onChange = this.onChange.bind(this);\n this.attach(doc);\n \n if (typeof column == \"undefined\")\n this.setPosition(row.row, row.column);\n else\n this.setPosition(row, column);\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.getPosition = function() {\n return this.$clipPositionToDocument(this.row, this.column);\n };\n this.getDocument = function() {\n return this.document;\n };\n this.$insertRight = false;\n this.onChange = function(delta) {\n if (delta.start.row == delta.end.row && delta.start.row != this.row)\n return;\n\n if (delta.start.row > this.row)\n return;\n \n var point = $getTransformedPoint(delta, {row: this.row, column: this.column}, this.$insertRight);\n this.setPosition(point.row, point.column, true);\n };\n \n function $pointsInOrder(point1, point2, equalPointsInOrder) {\n var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n }\n \n function $getTransformedPoint(delta, point, moveIfEqual) {\n var deltaIsInsert = delta.action == \"insert\";\n var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row);\n var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n var deltaStart = delta.start;\n var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n return {\n row: point.row,\n column: point.column\n };\n }\n if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n return {\n row: point.row + deltaRowShift,\n column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n };\n }\n \n return {\n row: deltaStart.row,\n column: deltaStart.column\n };\n }\n this.setPosition = function(row, column, noClip) {\n var pos;\n if (noClip) {\n pos = {\n row: row,\n column: column\n };\n } else {\n pos = this.$clipPositionToDocument(row, column);\n }\n\n if (this.row == pos.row && this.column == pos.column)\n return;\n\n var old = {\n row: this.row,\n column: this.column\n };\n\n this.row = pos.row;\n this.column = pos.column;\n this._signal(\"change\", {\n old: old,\n value: pos\n });\n };\n this.detach = function() {\n this.document.removeEventListener(\"change\", this.$onChange);\n };\n this.attach = function(doc) {\n this.document = doc || this.document;\n this.document.on(\"change\", this.$onChange);\n };\n this.$clipPositionToDocument = function(row, column) {\n var pos = {};\n\n if (row >= this.document.getLength()) {\n pos.row = Math.max(0, this.document.getLength() - 1);\n pos.column = this.document.getLine(pos.row).length;\n }\n else if (row < 0) {\n pos.row = 0;\n pos.column = 0;\n }\n else {\n pos.row = row;\n pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n }\n\n if (column < 0)\n pos.column = 0;\n\n return pos;\n };\n\n}).call(Anchor.prototype);\n\n});\n\nace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar applyDelta = acequire(\"./apply_delta\").applyDelta;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar Range = acequire(\"./range\").Range;\nvar Anchor = acequire(\"./anchor\").Anchor;\n\nvar Document = function(textOrLines) {\n this.$lines = [\"\"];\n if (textOrLines.length === 0) {\n this.$lines = [\"\"];\n } else if (Array.isArray(textOrLines)) {\n this.insertMergedLines({row: 0, column: 0}, textOrLines);\n } else {\n this.insert({row: 0, column:0}, textOrLines);\n }\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.setValue = function(text) {\n var len = this.getLength() - 1;\n this.remove(new Range(0, 0, len, this.getLine(len).length));\n this.insert({row: 0, column: 0}, text);\n };\n this.getValue = function() {\n return this.getAllLines().join(this.getNewLineCharacter());\n };\n this.createAnchor = function(row, column) {\n return new Anchor(this, row, column);\n };\n if (\"aaa\".split(/a/).length === 0) {\n this.$split = function(text) {\n return text.replace(/\\r\\n|\\r/g, \"\\n\").split(\"\\n\");\n };\n } else {\n this.$split = function(text) {\n return text.split(/\\r\\n|\\r|\\n/);\n };\n }\n\n\n this.$detectNewLine = function(text) {\n var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n this.$autoNewLine = match ? match[1] : \"\\n\";\n this._signal(\"changeNewLineMode\");\n };\n this.getNewLineCharacter = function() {\n switch (this.$newLineMode) {\n case \"windows\":\n return \"\\r\\n\";\n case \"unix\":\n return \"\\n\";\n default:\n return this.$autoNewLine || \"\\n\";\n }\n };\n\n this.$autoNewLine = \"\";\n this.$newLineMode = \"auto\";\n this.setNewLineMode = function(newLineMode) {\n if (this.$newLineMode === newLineMode)\n return;\n\n this.$newLineMode = newLineMode;\n this._signal(\"changeNewLineMode\");\n };\n this.getNewLineMode = function() {\n return this.$newLineMode;\n };\n this.isNewLine = function(text) {\n return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n };\n this.getLine = function(row) {\n return this.$lines[row] || \"\";\n };\n this.getLines = function(firstRow, lastRow) {\n return this.$lines.slice(firstRow, lastRow + 1);\n };\n this.getAllLines = function() {\n return this.getLines(0, this.getLength());\n };\n this.getLength = function() {\n return this.$lines.length;\n };\n this.getTextRange = function(range) {\n return this.getLinesForRange(range).join(this.getNewLineCharacter());\n };\n this.getLinesForRange = function(range) {\n var lines;\n if (range.start.row === range.end.row) {\n lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n } else {\n lines = this.getLines(range.start.row, range.end.row);\n lines[0] = (lines[0] || \"\").substring(range.start.column);\n var l = lines.length - 1;\n if (range.end.row - range.start.row == l)\n lines[l] = lines[l].substring(0, range.end.column);\n }\n return lines;\n };\n this.insertLines = function(row, lines) {\n console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n return this.insertFullLines(row, lines);\n };\n this.removeLines = function(firstRow, lastRow) {\n console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n return this.removeFullLines(firstRow, lastRow);\n };\n this.insertNewLine = function(position) {\n console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\");\n return this.insertMergedLines(position, [\"\", \"\"]);\n };\n this.insert = function(position, text) {\n if (this.getLength() <= 1)\n this.$detectNewLine(text);\n \n return this.insertMergedLines(position, this.$split(text));\n };\n this.insertInLine = function(position, text) {\n var start = this.clippedPos(position.row, position.column);\n var end = this.pos(position.row, position.column + text.length);\n \n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: [text]\n }, true);\n \n return this.clonePos(end);\n };\n \n this.clippedPos = function(row, column) {\n var length = this.getLength();\n if (row === undefined) {\n row = length;\n } else if (row < 0) {\n row = 0;\n } else if (row >= length) {\n row = length - 1;\n column = undefined;\n }\n var line = this.getLine(row);\n if (column == undefined)\n column = line.length;\n column = Math.min(Math.max(column, 0), line.length);\n return {row: row, column: column};\n };\n \n this.clonePos = function(pos) {\n return {row: pos.row, column: pos.column};\n };\n \n this.pos = function(row, column) {\n return {row: row, column: column};\n };\n \n this.$clipPosition = function(position) {\n var length = this.getLength();\n if (position.row >= length) {\n position.row = Math.max(0, length - 1);\n position.column = this.getLine(length - 1).length;\n } else {\n position.row = Math.max(0, position.row);\n position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n }\n return position;\n };\n this.insertFullLines = function(row, lines) {\n row = Math.min(Math.max(row, 0), this.getLength());\n var column = 0;\n if (row < this.getLength()) {\n lines = lines.concat([\"\"]);\n column = 0;\n } else {\n lines = [\"\"].concat(lines);\n row--;\n column = this.$lines[row].length;\n }\n this.insertMergedLines({row: row, column: column}, lines);\n }; \n this.insertMergedLines = function(position, lines) {\n var start = this.clippedPos(position.row, position.column);\n var end = {\n row: start.row + lines.length - 1,\n column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n };\n \n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: lines\n });\n \n return this.clonePos(end);\n };\n this.remove = function(range) {\n var start = this.clippedPos(range.start.row, range.start.column);\n var end = this.clippedPos(range.end.row, range.end.column);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({start: start, end: end})\n });\n return this.clonePos(start);\n };\n this.removeInLine = function(row, startColumn, endColumn) {\n var start = this.clippedPos(row, startColumn);\n var end = this.clippedPos(row, endColumn);\n \n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({start: start, end: end})\n }, true);\n \n return this.clonePos(start);\n };\n this.removeFullLines = function(firstRow, lastRow) {\n firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n lastRow = Math.min(Math.max(0, lastRow ), this.getLength() - 1);\n var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n var deleteLastNewLine = lastRow < this.getLength() - 1;\n var startRow = ( deleteFirstNewLine ? firstRow - 1 : firstRow );\n var startCol = ( deleteFirstNewLine ? this.getLine(startRow).length : 0 );\n var endRow = ( deleteLastNewLine ? lastRow + 1 : lastRow );\n var endCol = ( deleteLastNewLine ? 0 : this.getLine(endRow).length ); \n var range = new Range(startRow, startCol, endRow, endCol);\n var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n \n this.applyDelta({\n start: range.start,\n end: range.end,\n action: \"remove\",\n lines: this.getLinesForRange(range)\n });\n return deletedLines;\n };\n this.removeNewLine = function(row) {\n if (row < this.getLength() - 1 && row >= 0) {\n this.applyDelta({\n start: this.pos(row, this.getLine(row).length),\n end: this.pos(row + 1, 0),\n action: \"remove\",\n lines: [\"\", \"\"]\n });\n }\n };\n this.replace = function(range, text) {\n if (!(range instanceof Range))\n range = Range.fromPoints(range.start, range.end);\n if (text.length === 0 && range.isEmpty())\n return range.start;\n if (text == this.getTextRange(range))\n return range.end;\n\n this.remove(range);\n var end;\n if (text) {\n end = this.insert(range.start, text);\n }\n else {\n end = range.start;\n }\n \n return end;\n };\n this.applyDeltas = function(deltas) {\n for (var i=0; i<deltas.length; i++) {\n this.applyDelta(deltas[i]);\n }\n };\n this.revertDeltas = function(deltas) {\n for (var i=deltas.length-1; i>=0; i--) {\n this.revertDelta(deltas[i]);\n }\n };\n this.applyDelta = function(delta, doNotValidate) {\n var isInsert = delta.action == \"insert\";\n if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n : !Range.comparePoints(delta.start, delta.end)) {\n return;\n }\n \n if (isInsert && delta.lines.length > 20000)\n this.$splitAndapplyLargeDelta(delta, 20000);\n applyDelta(this.$lines, delta, doNotValidate);\n this._signal(\"change\", delta);\n };\n \n this.$splitAndapplyLargeDelta = function(delta, MAX) {\n var lines = delta.lines;\n var l = lines.length;\n var row = delta.start.row; \n var column = delta.start.column;\n var from = 0, to = 0;\n do {\n from = to;\n to += MAX - 1;\n var chunk = lines.slice(from, to);\n if (to > l) {\n delta.lines = chunk;\n delta.start.row = row + from;\n delta.start.column = column;\n break;\n }\n chunk.push(\"\");\n this.applyDelta({\n start: this.pos(row + from, column),\n end: this.pos(row + to, column = 0),\n action: delta.action,\n lines: chunk\n }, true);\n } while(true);\n };\n this.revertDelta = function(delta) {\n this.applyDelta({\n start: this.clonePos(delta.start),\n end: this.clonePos(delta.end),\n action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n lines: delta.lines.slice()\n });\n };\n this.indexToPosition = function(index, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n for (var i = startRow || 0, l = lines.length; i < l; i++) {\n index -= lines[i].length + newlineLength;\n if (index < 0)\n return {row: i, column: index + lines[i].length + newlineLength};\n }\n return {row: l-1, column: lines[l-1].length};\n };\n this.positionToIndex = function(pos, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n var index = 0;\n var row = Math.min(pos.row, lines.length);\n for (var i = startRow || 0; i < row; ++i)\n index += lines[i].length + newlineLength;\n\n return index + pos.column;\n };\n\n}).call(Document.prototype);\n\nexports.Document = Document;\n});\n\nace.define(\"ace/background_tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\n\nvar BackgroundTokenizer = function(tokenizer, editor) {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.tokenizer = tokenizer;\n\n var self = this;\n\n this.$worker = function() {\n if (!self.running) { return; }\n\n var workerStart = new Date();\n var currentLine = self.currentLine;\n var endLine = -1;\n var doc = self.doc;\n\n var startLine = currentLine;\n while (self.lines[currentLine])\n currentLine++;\n \n var len = doc.getLength();\n var processedLines = 0;\n self.running = false;\n while (currentLine < len) {\n self.$tokenizeRow(currentLine);\n endLine = currentLine;\n do {\n currentLine++;\n } while (self.lines[currentLine]);\n processedLines ++;\n if ((processedLines % 5 === 0) && (new Date() - workerStart) > 20) { \n self.running = setTimeout(self.$worker, 20);\n break;\n }\n }\n self.currentLine = currentLine;\n \n if (endLine == -1)\n endLine = currentLine;\n\n if (startLine <= endLine)\n self.fireUpdateEvent(startLine, endLine);\n };\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n this.setTokenizer = function(tokenizer) {\n this.tokenizer = tokenizer;\n this.lines = [];\n this.states = [];\n\n this.start(0);\n };\n this.setDocument = function(doc) {\n this.doc = doc;\n this.lines = [];\n this.states = [];\n\n this.stop();\n };\n this.fireUpdateEvent = function(firstRow, lastRow) {\n var data = {\n first: firstRow,\n last: lastRow\n };\n this._signal(\"update\", {data: data});\n };\n this.start = function(startRow) {\n this.currentLine = Math.min(startRow || 0, this.currentLine, this.doc.getLength());\n this.lines.splice(this.currentLine, this.lines.length);\n this.states.splice(this.currentLine, this.states.length);\n\n this.stop();\n this.running = setTimeout(this.$worker, 700);\n };\n \n this.scheduleStart = function() {\n if (!this.running)\n this.running = setTimeout(this.$worker, 700);\n };\n\n this.$updateOnChange = function(delta) {\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n\n if (len === 0) {\n this.lines[startRow] = null;\n } else if (delta.action == \"remove\") {\n this.lines.splice(startRow, len + 1, null);\n this.states.splice(startRow, len + 1, null);\n } else {\n var args = Array(len + 1);\n args.unshift(startRow, 1);\n this.lines.splice.apply(this.lines, args);\n this.states.splice.apply(this.states, args);\n }\n\n this.currentLine = Math.min(startRow, this.currentLine, this.doc.getLength());\n\n this.stop();\n };\n this.stop = function() {\n if (this.running)\n clearTimeout(this.running);\n this.running = false;\n };\n this.getTokens = function(row) {\n return this.lines[row] || this.$tokenizeRow(row);\n };\n this.getState = function(row) {\n if (this.currentLine == row)\n this.$tokenizeRow(row);\n return this.states[row] || \"start\";\n };\n\n this.$tokenizeRow = function(row) {\n var line = this.doc.getLine(row);\n var state = this.states[row - 1];\n\n var data = this.tokenizer.getLineTokens(line, state, row);\n\n if (this.states[row] + \"\" !== data.state + \"\") {\n this.states[row] = data.state;\n this.lines[row + 1] = null;\n if (this.currentLine > row + 1)\n this.currentLine = row + 1;\n } else if (this.currentLine == row) {\n this.currentLine = row + 1;\n }\n\n return this.lines[row] = data.tokens;\n };\n\n}).call(BackgroundTokenizer.prototype);\n\nexports.BackgroundTokenizer = BackgroundTokenizer;\n});\n\nace.define(\"ace/search_highlight\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"./lib/lang\");\nvar oop = acequire(\"./lib/oop\");\nvar Range = acequire(\"./range\").Range;\n\nvar SearchHighlight = function(regExp, clazz, type) {\n this.setRegexp(regExp);\n this.clazz = clazz;\n this.type = type || \"text\";\n};\n\n(function() {\n this.MAX_RANGES = 500;\n \n this.setRegexp = function(regExp) {\n if (this.regExp+\"\" == regExp+\"\")\n return;\n this.regExp = regExp;\n this.cache = [];\n };\n\n this.update = function(html, markerLayer, session, config) {\n if (!this.regExp)\n return;\n var start = config.firstRow, end = config.lastRow;\n\n for (var i = start; i <= end; i++) {\n var ranges = this.cache[i];\n if (ranges == null) {\n ranges = lang.getMatchOffsets(session.getLine(i), this.regExp);\n if (ranges.length > this.MAX_RANGES)\n ranges = ranges.slice(0, this.MAX_RANGES);\n ranges = ranges.map(function(match) {\n return new Range(i, match.offset, i, match.offset + match.length);\n });\n this.cache[i] = ranges.length ? ranges : \"\";\n }\n\n for (var j = ranges.length; j --; ) {\n markerLayer.drawSingleLineMarker(\n html, ranges[j].toScreenRange(session), this.clazz, config);\n }\n }\n };\n\n}).call(SearchHighlight.prototype);\n\nexports.SearchHighlight = SearchHighlight;\n});\n\nace.define(\"ace/edit_session/fold_line\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nfunction FoldLine(foldData, folds) {\n this.foldData = foldData;\n if (Array.isArray(folds)) {\n this.folds = folds;\n } else {\n folds = this.folds = [ folds ];\n }\n\n var last = folds[folds.length - 1];\n this.range = new Range(folds[0].start.row, folds[0].start.column,\n last.end.row, last.end.column);\n this.start = this.range.start;\n this.end = this.range.end;\n\n this.folds.forEach(function(fold) {\n fold.setFoldLine(this);\n }, this);\n}\n\n(function() {\n this.shiftRow = function(shift) {\n this.start.row += shift;\n this.end.row += shift;\n this.folds.forEach(function(fold) {\n fold.start.row += shift;\n fold.end.row += shift;\n });\n };\n\n this.addFold = function(fold) {\n if (fold.sameRow) {\n if (fold.start.row < this.startRow || fold.endRow > this.endRow) {\n throw new Error(\"Can't add a fold to this FoldLine as it has no connection\");\n }\n this.folds.push(fold);\n this.folds.sort(function(a, b) {\n return -a.range.compareEnd(b.start.row, b.start.column);\n });\n if (this.range.compareEnd(fold.start.row, fold.start.column) > 0) {\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n } else if (this.range.compareStart(fold.end.row, fold.end.column) < 0) {\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n } else if (fold.start.row == this.end.row) {\n this.folds.push(fold);\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n } else if (fold.end.row == this.start.row) {\n this.folds.unshift(fold);\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n } else {\n throw new Error(\"Trying to add fold to FoldRow that doesn't have a matching row\");\n }\n fold.foldLine = this;\n };\n\n this.containsRow = function(row) {\n return row >= this.start.row && row <= this.end.row;\n };\n\n this.walk = function(callback, endRow, endColumn) {\n var lastEnd = 0,\n folds = this.folds,\n fold,\n cmp, stop, isNewRow = true;\n\n if (endRow == null) {\n endRow = this.end.row;\n endColumn = this.end.column;\n }\n\n for (var i = 0; i < folds.length; i++) {\n fold = folds[i];\n\n cmp = fold.range.compareStart(endRow, endColumn);\n if (cmp == -1) {\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n return;\n }\n\n stop = callback(null, fold.start.row, fold.start.column, lastEnd, isNewRow);\n stop = !stop && callback(fold.placeholder, fold.start.row, fold.start.column, lastEnd);\n if (stop || cmp === 0) {\n return;\n }\n isNewRow = !fold.sameRow;\n lastEnd = fold.end.column;\n }\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n };\n\n this.getNextFoldTo = function(row, column) {\n var fold, cmp;\n for (var i = 0; i < this.folds.length; i++) {\n fold = this.folds[i];\n cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n return {\n fold: fold,\n kind: \"after\"\n };\n } else if (cmp === 0) {\n return {\n fold: fold,\n kind: \"inside\"\n };\n }\n }\n return null;\n };\n\n this.addRemoveChars = function(row, column, len) {\n var ret = this.getNextFoldTo(row, column),\n fold, folds;\n if (ret) {\n fold = ret.fold;\n if (ret.kind == \"inside\"\n && fold.start.column != column\n && fold.start.row != row)\n {\n window.console && window.console.log(row, column, fold);\n } else if (fold.start.row == row) {\n folds = this.folds;\n var i = folds.indexOf(fold);\n if (i === 0) {\n this.start.column += len;\n }\n for (i; i < folds.length; i++) {\n fold = folds[i];\n fold.start.column += len;\n if (!fold.sameRow) {\n return;\n }\n fold.end.column += len;\n }\n this.end.column += len;\n }\n }\n };\n\n this.split = function(row, column) {\n var pos = this.getNextFoldTo(row, column);\n \n if (!pos || pos.kind == \"inside\")\n return null;\n \n var fold = pos.fold;\n var folds = this.folds;\n var foldData = this.foldData;\n \n var i = folds.indexOf(fold);\n var foldBefore = folds[i - 1];\n this.end.row = foldBefore.end.row;\n this.end.column = foldBefore.end.column;\n folds = folds.splice(i, folds.length - i);\n\n var newFoldLine = new FoldLine(foldData, folds);\n foldData.splice(foldData.indexOf(this) + 1, 0, newFoldLine);\n return newFoldLine;\n };\n\n this.merge = function(foldLineNext) {\n var folds = foldLineNext.folds;\n for (var i = 0; i < folds.length; i++) {\n this.addFold(folds[i]);\n }\n var foldData = this.foldData;\n foldData.splice(foldData.indexOf(foldLineNext), 1);\n };\n\n this.toString = function() {\n var ret = [this.range.toString() + \": [\" ];\n\n this.folds.forEach(function(fold) {\n ret.push(\" \" + fold.toString());\n });\n ret.push(\"]\");\n return ret.join(\"\\n\");\n };\n\n this.idxToPosition = function(idx) {\n var lastFoldEndColumn = 0;\n\n for (var i = 0; i < this.folds.length; i++) {\n var fold = this.folds[i];\n\n idx -= fold.start.column - lastFoldEndColumn;\n if (idx < 0) {\n return {\n row: fold.start.row,\n column: fold.start.column + idx\n };\n }\n\n idx -= fold.placeholder.length;\n if (idx < 0) {\n return fold.start;\n }\n\n lastFoldEndColumn = fold.end.column;\n }\n\n return {\n row: this.end.row,\n column: this.end.column + idx\n };\n };\n}).call(FoldLine.prototype);\n\nexports.FoldLine = FoldLine;\n});\n\nace.define(\"ace/range_list\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\nvar Range = acequire(\"./range\").Range;\nvar comparePoints = Range.comparePoints;\n\nvar RangeList = function() {\n this.ranges = [];\n};\n\n(function() {\n this.comparePoints = comparePoints;\n\n this.pointIndex = function(pos, excludeEdges, startIndex) {\n var list = this.ranges;\n\n for (var i = startIndex || 0; i < list.length; i++) {\n var range = list[i];\n var cmpEnd = comparePoints(pos, range.end);\n if (cmpEnd > 0)\n continue;\n var cmpStart = comparePoints(pos, range.start);\n if (cmpEnd === 0)\n return excludeEdges && cmpStart !== 0 ? -i-2 : i;\n if (cmpStart > 0 || (cmpStart === 0 && !excludeEdges))\n return i;\n\n return -i-1;\n }\n return -i - 1;\n };\n\n this.add = function(range) {\n var excludeEdges = !range.isEmpty();\n var startIndex = this.pointIndex(range.start, excludeEdges);\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n\n var endIndex = this.pointIndex(range.end, excludeEdges, startIndex);\n\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n else\n endIndex++;\n return this.ranges.splice(startIndex, endIndex - startIndex, range);\n };\n\n this.addList = function(list) {\n var removed = [];\n for (var i = list.length; i--; ) {\n removed.push.apply(removed, this.add(list[i]));\n }\n return removed;\n };\n\n this.substractPoint = function(pos) {\n var i = this.pointIndex(pos);\n\n if (i >= 0)\n return this.ranges.splice(i, 1);\n };\n this.merge = function() {\n var removed = [];\n var list = this.ranges;\n \n list = list.sort(function(a, b) {\n return comparePoints(a.start, b.start);\n });\n \n var next = list[0], range;\n for (var i = 1; i < list.length; i++) {\n range = next;\n next = list[i];\n var cmp = comparePoints(range.end, next.start);\n if (cmp < 0)\n continue;\n\n if (cmp == 0 && !range.isEmpty() && !next.isEmpty())\n continue;\n\n if (comparePoints(range.end, next.end) < 0) {\n range.end.row = next.end.row;\n range.end.column = next.end.column;\n }\n\n list.splice(i, 1);\n removed.push(next);\n next = range;\n i--;\n }\n \n this.ranges = list;\n\n return removed;\n };\n\n this.contains = function(row, column) {\n return this.pointIndex({row: row, column: column}) >= 0;\n };\n\n this.containsPoint = function(pos) {\n return this.pointIndex(pos) >= 0;\n };\n\n this.rangeAtPoint = function(pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges[i];\n };\n\n\n this.clipRows = function(startRow, endRow) {\n var list = this.ranges;\n if (list[0].start.row > endRow || list[list.length - 1].start.row < startRow)\n return [];\n\n var startIndex = this.pointIndex({row: startRow, column: 0});\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex({row: endRow, column: 0}, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n\n var clipped = [];\n for (var i = startIndex; i < endIndex; i++) {\n clipped.push(list[i]);\n }\n return clipped;\n };\n\n this.removeAll = function() {\n return this.ranges.splice(0, this.ranges.length);\n };\n\n this.attach = function(session) {\n if (this.session)\n this.detach();\n\n this.session = session;\n this.onChange = this.$onChange.bind(this);\n\n this.session.on('change', this.onChange);\n };\n\n this.detach = function() {\n if (!this.session)\n return;\n this.session.removeListener('change', this.onChange);\n this.session = null;\n };\n\n this.$onChange = function(delta) {\n if (delta.action == \"insert\"){\n var start = delta.start;\n var end = delta.end;\n } else {\n var end = delta.start;\n var start = delta.end;\n }\n var startRow = start.row;\n var endRow = end.row;\n var lineDif = endRow - startRow;\n\n var colDiff = -start.column + end.column;\n var ranges = this.ranges;\n\n for (var i = 0, n = ranges.length; i < n; i++) {\n var r = ranges[i];\n if (r.end.row < startRow)\n continue;\n if (r.start.row > startRow)\n break;\n\n if (r.start.row == startRow && r.start.column >= start.column ) {\n if (r.start.column == start.column && this.$insertRight) {\n } else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n if (r.end.row == startRow && r.end.column >= start.column) {\n if (r.end.column == start.column && this.$insertRight) {\n continue;\n }\n if (r.end.column == start.column && colDiff > 0 && i < n - 1) { \n if (r.end.column > r.start.column && r.end.column == ranges[i+1].start.column)\n r.end.column -= colDiff;\n }\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n\n if (lineDif != 0 && i < n) {\n for (; i < n; i++) {\n var r = ranges[i];\n r.start.row += lineDif;\n r.end.row += lineDif;\n }\n }\n };\n\n}).call(RangeList.prototype);\n\nexports.RangeList = RangeList;\n});\n\nace.define(\"ace/edit_session/fold\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/range_list\",\"ace/lib/oop\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nvar RangeList = acequire(\"../range_list\").RangeList;\nvar oop = acequire(\"../lib/oop\");\nvar Fold = exports.Fold = function(range, placeholder) {\n this.foldLine = null;\n this.placeholder = placeholder;\n this.range = range;\n this.start = range.start;\n this.end = range.end;\n\n this.sameRow = range.start.row == range.end.row;\n this.subFolds = this.ranges = [];\n};\n\noop.inherits(Fold, RangeList);\n\n(function() {\n\n this.toString = function() {\n return '\"' + this.placeholder + '\" ' + this.range.toString();\n };\n\n this.setFoldLine = function(foldLine) {\n this.foldLine = foldLine;\n this.subFolds.forEach(function(fold) {\n fold.setFoldLine(foldLine);\n });\n };\n\n this.clone = function() {\n var range = this.range.clone();\n var fold = new Fold(range, this.placeholder);\n this.subFolds.forEach(function(subFold) {\n fold.subFolds.push(subFold.clone());\n });\n fold.collapseChildren = this.collapseChildren;\n return fold;\n };\n\n this.addSubFold = function(fold) {\n if (this.range.isEqual(fold))\n return;\n\n if (!this.range.containsRange(fold))\n throw new Error(\"A fold can't intersect already existing fold\" + fold.range + this.range);\n consumeRange(fold, this.start);\n\n var row = fold.start.row, column = fold.start.column;\n for (var i = 0, cmp = -1; i < this.subFolds.length; i++) {\n cmp = this.subFolds[i].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n var afterStart = this.subFolds[i];\n\n if (cmp == 0)\n return afterStart.addSubFold(fold);\n var row = fold.range.end.row, column = fold.range.end.column;\n for (var j = i, cmp = -1; j < this.subFolds.length; j++) {\n cmp = this.subFolds[j].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n var afterEnd = this.subFolds[j];\n\n if (cmp == 0)\n throw new Error(\"A fold can't intersect already existing fold\" + fold.range + this.range);\n\n var consumedFolds = this.subFolds.splice(i, j - i, fold);\n fold.setFoldLine(this.foldLine);\n\n return fold;\n };\n \n this.restoreRange = function(range) {\n return restoreRange(range, this.start);\n };\n\n}).call(Fold.prototype);\n\nfunction consumePoint(point, anchor) {\n point.row -= anchor.row;\n if (point.row == 0)\n point.column -= anchor.column;\n}\nfunction consumeRange(range, anchor) {\n consumePoint(range.start, anchor);\n consumePoint(range.end, anchor);\n}\nfunction restorePoint(point, anchor) {\n if (point.row == 0)\n point.column += anchor.column;\n point.row += anchor.row;\n}\nfunction restoreRange(range, anchor) {\n restorePoint(range.start, anchor);\n restorePoint(range.end, anchor);\n}\n\n});\n\nace.define(\"ace/edit_session/folding\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/edit_session/fold_line\",\"ace/edit_session/fold\",\"ace/token_iterator\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nvar FoldLine = acequire(\"./fold_line\").FoldLine;\nvar Fold = acequire(\"./fold\").Fold;\nvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\n\nfunction Folding() {\n this.getFoldAt = function(row, column, side) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine)\n return null;\n\n var folds = foldLine.folds;\n for (var i = 0; i < folds.length; i++) {\n var fold = folds[i];\n if (fold.range.contains(row, column)) {\n if (side == 1 && fold.range.isEnd(row, column)) {\n continue;\n } else if (side == -1 && fold.range.isStart(row, column)) {\n continue;\n }\n return fold;\n }\n }\n };\n this.getFoldsInRange = function(range) {\n var start = range.start;\n var end = range.end;\n var foldLines = this.$foldData;\n var foundFolds = [];\n\n start.column += 1;\n end.column -= 1;\n\n for (var i = 0; i < foldLines.length; i++) {\n var cmp = foldLines[i].range.compareRange(range);\n if (cmp == 2) {\n continue;\n }\n else if (cmp == -2) {\n break;\n }\n\n var folds = foldLines[i].folds;\n for (var j = 0; j < folds.length; j++) {\n var fold = folds[j];\n cmp = fold.range.compareRange(range);\n if (cmp == -2) {\n break;\n } else if (cmp == 2) {\n continue;\n } else\n if (cmp == 42) {\n break;\n }\n foundFolds.push(fold);\n }\n }\n start.column -= 1;\n end.column += 1;\n\n return foundFolds;\n };\n\n this.getFoldsInRangeList = function(ranges) {\n if (Array.isArray(ranges)) {\n var folds = [];\n ranges.forEach(function(range) {\n folds = folds.concat(this.getFoldsInRange(range));\n }, this);\n } else {\n var folds = this.getFoldsInRange(ranges);\n }\n return folds;\n };\n this.getAllFolds = function() {\n var folds = [];\n var foldLines = this.$foldData;\n \n for (var i = 0; i < foldLines.length; i++)\n for (var j = 0; j < foldLines[i].folds.length; j++)\n folds.push(foldLines[i].folds[j]);\n\n return folds;\n };\n this.getFoldStringAt = function(row, column, trim, foldLine) {\n foldLine = foldLine || this.getFoldLine(row);\n if (!foldLine)\n return null;\n\n var lastFold = {\n end: { column: 0 }\n };\n var str, fold;\n for (var i = 0; i < foldLine.folds.length; i++) {\n fold = foldLine.folds[i];\n var cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n str = this\n .getLine(fold.start.row)\n .substring(lastFold.end.column, fold.start.column);\n break;\n }\n else if (cmp === 0) {\n return null;\n }\n lastFold = fold;\n }\n if (!str)\n str = this.getLine(fold.start.row).substring(lastFold.end.column);\n\n if (trim == -1)\n return str.substring(0, column - lastFold.end.column);\n else if (trim == 1)\n return str.substring(column - lastFold.end.column);\n else\n return str;\n };\n\n this.getFoldLine = function(docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.start.row <= docRow && foldLine.end.row >= docRow) {\n return foldLine;\n } else if (foldLine.end.row > docRow) {\n return null;\n }\n }\n return null;\n };\n this.getNextFoldLine = function(docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.end.row >= docRow) {\n return foldLine;\n }\n }\n return null;\n };\n\n this.getFoldedRowCount = function(first, last) {\n var foldData = this.$foldData, rowCount = last-first+1;\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i],\n end = foldLine.end.row,\n start = foldLine.start.row;\n if (end >= last) {\n if (start < last) {\n if (start >= first)\n rowCount -= last-start;\n else\n rowCount = 0; // in one fold\n }\n break;\n } else if (end >= first){\n if (start >= first) // fold inside range\n rowCount -= end-start;\n else\n rowCount -= end-first+1;\n }\n }\n return rowCount;\n };\n\n this.$addFoldLine = function(foldLine) {\n this.$foldData.push(foldLine);\n this.$foldData.sort(function(a, b) {\n return a.start.row - b.start.row;\n });\n return foldLine;\n };\n this.addFold = function(placeholder, range) {\n var foldData = this.$foldData;\n var added = false;\n var fold;\n \n if (placeholder instanceof Fold)\n fold = placeholder;\n else {\n fold = new Fold(range, placeholder);\n fold.collapseChildren = range.collapseChildren;\n }\n this.$clipRangeToDocument(fold.range);\n\n var startRow = fold.start.row;\n var startColumn = fold.start.column;\n var endRow = fold.end.row;\n var endColumn = fold.end.column;\n if (!(startRow < endRow || \n startRow == endRow && startColumn <= endColumn - 2))\n throw new Error(\"The range has to be at least 2 characters width\");\n\n var startFold = this.getFoldAt(startRow, startColumn, 1);\n var endFold = this.getFoldAt(endRow, endColumn, -1);\n if (startFold && endFold == startFold)\n return startFold.addSubFold(fold);\n\n if (startFold && !startFold.range.isStart(startRow, startColumn))\n this.removeFold(startFold);\n \n if (endFold && !endFold.range.isEnd(endRow, endColumn))\n this.removeFold(endFold);\n var folds = this.getFoldsInRange(fold.range);\n if (folds.length > 0) {\n this.removeFolds(folds);\n folds.forEach(function(subFold) {\n fold.addSubFold(subFold);\n });\n }\n\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (endRow == foldLine.start.row) {\n foldLine.addFold(fold);\n added = true;\n break;\n } else if (startRow == foldLine.end.row) {\n foldLine.addFold(fold);\n added = true;\n if (!fold.sameRow) {\n var foldLineNext = foldData[i + 1];\n if (foldLineNext && foldLineNext.start.row == endRow) {\n foldLine.merge(foldLineNext);\n break;\n }\n }\n break;\n } else if (endRow <= foldLine.start.row) {\n break;\n }\n }\n\n if (!added)\n foldLine = this.$addFoldLine(new FoldLine(this.$foldData, fold));\n\n if (this.$useWrapMode)\n this.$updateWrapData(foldLine.start.row, foldLine.start.row);\n else\n this.$updateRowLengthCache(foldLine.start.row, foldLine.start.row);\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"add\" });\n\n return fold;\n };\n\n this.addFolds = function(folds) {\n folds.forEach(function(fold) {\n this.addFold(fold);\n }, this);\n };\n\n this.removeFold = function(fold) {\n var foldLine = fold.foldLine;\n var startRow = foldLine.start.row;\n var endRow = foldLine.end.row;\n\n var foldLines = this.$foldData;\n var folds = foldLine.folds;\n if (folds.length == 1) {\n foldLines.splice(foldLines.indexOf(foldLine), 1);\n } else\n if (foldLine.range.isEnd(fold.end.row, fold.end.column)) {\n folds.pop();\n foldLine.end.row = folds[folds.length - 1].end.row;\n foldLine.end.column = folds[folds.length - 1].end.column;\n } else\n if (foldLine.range.isStart(fold.start.row, fold.start.column)) {\n folds.shift();\n foldLine.start.row = folds[0].start.row;\n foldLine.start.column = folds[0].start.column;\n } else\n if (fold.sameRow) {\n folds.splice(folds.indexOf(fold), 1);\n } else\n {\n var newFoldLine = foldLine.split(fold.start.row, fold.start.column);\n folds = newFoldLine.folds;\n folds.shift();\n newFoldLine.start.row = folds[0].start.row;\n newFoldLine.start.column = folds[0].start.column;\n }\n\n if (!this.$updating) {\n if (this.$useWrapMode)\n this.$updateWrapData(startRow, endRow);\n else\n this.$updateRowLengthCache(startRow, endRow);\n }\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"remove\" });\n };\n\n this.removeFolds = function(folds) {\n var cloneFolds = [];\n for (var i = 0; i < folds.length; i++) {\n cloneFolds.push(folds[i]);\n }\n\n cloneFolds.forEach(function(fold) {\n this.removeFold(fold);\n }, this);\n this.$modified = true;\n };\n\n this.expandFold = function(fold) {\n this.removeFold(fold);\n fold.subFolds.forEach(function(subFold) {\n fold.restoreRange(subFold);\n this.addFold(subFold);\n }, this);\n if (fold.collapseChildren > 0) {\n this.foldAll(fold.start.row+1, fold.end.row, fold.collapseChildren-1);\n }\n fold.subFolds = [];\n };\n\n this.expandFolds = function(folds) {\n folds.forEach(function(fold) {\n this.expandFold(fold);\n }, this);\n };\n\n this.unfold = function(location, expandInner) {\n var range, folds;\n if (location == null) {\n range = new Range(0, 0, this.getLength(), 0);\n expandInner = true;\n } else if (typeof location == \"number\")\n range = new Range(location, 0, location, this.getLine(location).length);\n else if (\"row\" in location)\n range = Range.fromPoints(location, location);\n else\n range = location;\n \n folds = this.getFoldsInRangeList(range);\n if (expandInner) {\n this.removeFolds(folds);\n } else {\n var subFolds = folds;\n while (subFolds.length) {\n this.expandFolds(subFolds);\n subFolds = this.getFoldsInRangeList(range);\n }\n }\n if (folds.length)\n return folds;\n };\n this.isRowFolded = function(docRow, startFoldRow) {\n return !!this.getFoldLine(docRow, startFoldRow);\n };\n\n this.getRowFoldEnd = function(docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.end.row : docRow;\n };\n\n this.getRowFoldStart = function(docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.start.row : docRow;\n };\n\n this.getFoldDisplayLine = function(foldLine, endRow, endColumn, startRow, startColumn) {\n if (startRow == null)\n startRow = foldLine.start.row;\n if (startColumn == null)\n startColumn = 0;\n if (endRow == null)\n endRow = foldLine.end.row;\n if (endColumn == null)\n endColumn = this.getLine(endRow).length;\n var doc = this.doc;\n var textLine = \"\";\n\n foldLine.walk(function(placeholder, row, column, lastColumn) {\n if (row < startRow)\n return;\n if (row == startRow) {\n if (column < startColumn)\n return;\n lastColumn = Math.max(startColumn, lastColumn);\n }\n\n if (placeholder != null) {\n textLine += placeholder;\n } else {\n textLine += doc.getLine(row).substring(lastColumn, column);\n }\n }, endRow, endColumn);\n return textLine;\n };\n\n this.getDisplayLine = function(row, endColumn, startRow, startColumn) {\n var foldLine = this.getFoldLine(row);\n\n if (!foldLine) {\n var line;\n line = this.doc.getLine(row);\n return line.substring(startColumn || 0, endColumn || line.length);\n } else {\n return this.getFoldDisplayLine(\n foldLine, row, endColumn, startRow, startColumn);\n }\n };\n\n this.$cloneFoldData = function() {\n var fd = [];\n fd = this.$foldData.map(function(foldLine) {\n var folds = foldLine.folds.map(function(fold) {\n return fold.clone();\n });\n return new FoldLine(fd, folds);\n });\n\n return fd;\n };\n\n this.toggleFold = function(tryToUnfold) {\n var selection = this.selection;\n var range = selection.getRange();\n var fold;\n var bracketPos;\n\n if (range.isEmpty()) {\n var cursor = range.start;\n fold = this.getFoldAt(cursor.row, cursor.column);\n\n if (fold) {\n this.expandFold(fold);\n return;\n } else if (bracketPos = this.findMatchingBracket(cursor)) {\n if (range.comparePoint(bracketPos) == 1) {\n range.end = bracketPos;\n } else {\n range.start = bracketPos;\n range.start.column++;\n range.end.column--;\n }\n } else if (bracketPos = this.findMatchingBracket({row: cursor.row, column: cursor.column + 1})) {\n if (range.comparePoint(bracketPos) == 1)\n range.end = bracketPos;\n else\n range.start = bracketPos;\n\n range.start.column++;\n } else {\n range = this.getCommentFoldRange(cursor.row, cursor.column) || range;\n }\n } else {\n var folds = this.getFoldsInRange(range);\n if (tryToUnfold && folds.length) {\n this.expandFolds(folds);\n return;\n } else if (folds.length == 1 ) {\n fold = folds[0];\n }\n }\n\n if (!fold)\n fold = this.getFoldAt(range.start.row, range.start.column);\n\n if (fold && fold.range.toString() == range.toString()) {\n this.expandFold(fold);\n return;\n }\n\n var placeholder = \"...\";\n if (!range.isMultiLine()) {\n placeholder = this.getTextRange(range);\n if (placeholder.length < 4)\n return;\n placeholder = placeholder.trim().substring(0, 2) + \"..\";\n }\n\n this.addFold(placeholder, range);\n };\n\n this.getCommentFoldRange = function(row, column, dir) {\n var iterator = new TokenIterator(this, row, column);\n var token = iterator.getCurrentToken();\n var type = token.type;\n if (token && /^comment|string/.test(type)) {\n type = type.match(/comment|string/)[0];\n if (type == \"comment\")\n type += \"|doc-start\";\n var re = new RegExp(type);\n var range = new Range();\n if (dir != 1) {\n do {\n token = iterator.stepBackward();\n } while (token && re.test(token.type));\n iterator.stepForward();\n }\n \n range.start.row = iterator.getCurrentTokenRow();\n range.start.column = iterator.getCurrentTokenColumn() + 2;\n\n iterator = new TokenIterator(this, row, column);\n \n if (dir != -1) {\n var lastRow = -1;\n do {\n token = iterator.stepForward();\n if (lastRow == -1) {\n var state = this.getState(iterator.$row);\n if (!re.test(state))\n lastRow = iterator.$row;\n } else if (iterator.$row > lastRow) {\n break;\n }\n } while (token && re.test(token.type));\n token = iterator.stepBackward();\n } else\n token = iterator.getCurrentToken();\n\n range.end.row = iterator.getCurrentTokenRow();\n range.end.column = iterator.getCurrentTokenColumn() + token.value.length - 2;\n return range;\n }\n };\n\n this.foldAll = function(startRow, endRow, depth) {\n if (depth == undefined)\n depth = 100000; // JSON.stringify doesn't hanle Infinity\n var foldWidgets = this.foldWidgets;\n if (!foldWidgets)\n return; // mode doesn't support folding\n endRow = endRow || this.getLength();\n startRow = startRow || 0;\n for (var row = startRow; row < endRow; row++) {\n if (foldWidgets[row] == null)\n foldWidgets[row] = this.getFoldWidget(row);\n if (foldWidgets[row] != \"start\")\n continue;\n\n var range = this.getFoldWidgetRange(row);\n if (range && range.isMultiLine()\n && range.end.row <= endRow\n && range.start.row >= startRow\n ) {\n row = range.end.row;\n try {\n var fold = this.addFold(\"...\", range);\n if (fold)\n fold.collapseChildren = depth;\n } catch(e) {}\n }\n }\n };\n this.$foldStyles = {\n \"manual\": 1,\n \"markbegin\": 1,\n \"markbeginend\": 1\n };\n this.$foldStyle = \"markbegin\";\n this.setFoldStyle = function(style) {\n if (!this.$foldStyles[style])\n throw new Error(\"invalid fold style: \" + style + \"[\" + Object.keys(this.$foldStyles).join(\", \") + \"]\");\n \n if (this.$foldStyle == style)\n return;\n\n this.$foldStyle = style;\n \n if (style == \"manual\")\n this.unfold();\n var mode = this.$foldMode;\n this.$setFolding(null);\n this.$setFolding(mode);\n };\n\n this.$setFolding = function(foldMode) {\n if (this.$foldMode == foldMode)\n return;\n \n this.$foldMode = foldMode;\n \n this.off('change', this.$updateFoldWidgets);\n this.off('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n this._signal(\"changeAnnotation\");\n \n if (!foldMode || this.$foldStyle == \"manual\") {\n this.foldWidgets = null;\n return;\n }\n \n this.foldWidgets = [];\n this.getFoldWidget = foldMode.getFoldWidget.bind(foldMode, this, this.$foldStyle);\n this.getFoldWidgetRange = foldMode.getFoldWidgetRange.bind(foldMode, this, this.$foldStyle);\n \n this.$updateFoldWidgets = this.updateFoldWidgets.bind(this);\n this.$tokenizerUpdateFoldWidgets = this.tokenizerUpdateFoldWidgets.bind(this);\n this.on('change', this.$updateFoldWidgets);\n this.on('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n };\n\n this.getParentFoldRangeData = function (row, ignoreCurrent) {\n var fw = this.foldWidgets;\n if (!fw || (ignoreCurrent && fw[row]))\n return {};\n\n var i = row - 1, firstRange;\n while (i >= 0) {\n var c = fw[i];\n if (c == null)\n c = fw[i] = this.getFoldWidget(i);\n\n if (c == \"start\") {\n var range = this.getFoldWidgetRange(i);\n if (!firstRange)\n firstRange = range;\n if (range && range.end.row >= row)\n break;\n }\n i--;\n }\n\n return {\n range: i !== -1 && range,\n firstRange: firstRange\n };\n };\n\n this.onFoldWidgetClick = function(row, e) {\n e = e.domEvent;\n var options = {\n children: e.shiftKey,\n all: e.ctrlKey || e.metaKey,\n siblings: e.altKey\n };\n \n var range = this.$toggleFoldWidget(row, options);\n if (!range) {\n var el = (e.target || e.srcElement);\n if (el && /ace_fold-widget/.test(el.className))\n el.className += \" ace_invalid\";\n }\n };\n \n this.$toggleFoldWidget = function(row, options) {\n if (!this.getFoldWidget)\n return;\n var type = this.getFoldWidget(row);\n var line = this.getLine(row);\n\n var dir = type === \"end\" ? -1 : 1;\n var fold = this.getFoldAt(row, dir === -1 ? 0 : line.length, dir);\n\n if (fold) {\n if (options.children || options.all)\n this.removeFold(fold);\n else\n this.expandFold(fold);\n return fold;\n }\n\n var range = this.getFoldWidgetRange(row, true);\n if (range && !range.isMultiLine()) {\n fold = this.getFoldAt(range.start.row, range.start.column, 1);\n if (fold && range.isEqual(fold.range)) {\n this.removeFold(fold);\n return fold;\n }\n }\n \n if (options.siblings) {\n var data = this.getParentFoldRangeData(row);\n if (data.range) {\n var startRow = data.range.start.row + 1;\n var endRow = data.range.end.row;\n }\n this.foldAll(startRow, endRow, options.all ? 10000 : 0);\n } else if (options.children) {\n endRow = range ? range.end.row : this.getLength();\n this.foldAll(row + 1, endRow, options.all ? 10000 : 0);\n } else if (range) {\n if (options.all) \n range.collapseChildren = 10000;\n this.addFold(\"...\", range);\n }\n \n return range;\n };\n \n \n \n this.toggleFoldWidget = function(toggleParent) {\n var row = this.selection.getCursor().row;\n row = this.getRowFoldStart(row);\n var range = this.$toggleFoldWidget(row, {});\n \n if (range)\n return;\n var data = this.getParentFoldRangeData(row, true);\n range = data.range || data.firstRange;\n \n if (range) {\n row = range.start.row;\n var fold = this.getFoldAt(row, this.getLine(row).length, 1);\n\n if (fold) {\n this.removeFold(fold);\n } else {\n this.addFold(\"...\", range);\n }\n }\n };\n\n this.updateFoldWidgets = function(delta) {\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n\n if (len === 0) {\n this.foldWidgets[firstRow] = null;\n } else if (delta.action == 'remove') {\n this.foldWidgets.splice(firstRow, len + 1, null);\n } else {\n var args = Array(len + 1);\n args.unshift(firstRow, 1);\n this.foldWidgets.splice.apply(this.foldWidgets, args);\n }\n };\n this.tokenizerUpdateFoldWidgets = function(e) {\n var rows = e.data;\n if (rows.first != rows.last) {\n if (this.foldWidgets.length > rows.first)\n this.foldWidgets.splice(rows.first, this.foldWidgets.length);\n }\n };\n}\n\nexports.Folding = Folding;\n\n});\n\nace.define(\"ace/edit_session/bracket_match\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\nvar Range = acequire(\"../range\").Range;\n\n\nfunction BracketMatch() {\n\n this.findMatchingBracket = function(position, chr) {\n if (position.column == 0) return null;\n\n var charBeforeCursor = chr || this.getLine(position.row).charAt(position.column-1);\n if (charBeforeCursor == \"\") return null;\n\n var match = charBeforeCursor.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match)\n return null;\n\n if (match[1])\n return this.$findClosingBracket(match[1], position);\n else\n return this.$findOpeningBracket(match[2], position);\n };\n \n this.getBracketRange = function(pos) {\n var line = this.getLine(pos.row);\n var before = true, range;\n\n var chr = line.charAt(pos.column-1);\n var match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match) {\n chr = line.charAt(pos.column);\n pos = {row: pos.row, column: pos.column + 1};\n match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n before = false;\n }\n if (!match)\n return null;\n\n if (match[1]) {\n var bracketPos = this.$findClosingBracket(match[1], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(pos, bracketPos);\n if (!before) {\n range.end.column++;\n range.start.column--;\n }\n range.cursor = range.end;\n } else {\n var bracketPos = this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(bracketPos, pos);\n if (!before) {\n range.start.column++;\n range.end.column--;\n }\n range.cursor = range.start;\n }\n \n return range;\n };\n\n this.$brackets = {\n \")\": \"(\",\n \"(\": \")\",\n \"]\": \"[\",\n \"[\": \"]\",\n \"{\": \"}\",\n \"}\": \"{\"\n };\n\n this.$findOpeningBracket = function(bracket, position, typeRe) {\n var openBracket = this.$brackets[bracket];\n var depth = 1;\n\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n \n if (!typeRe){\n typeRe = new RegExp(\n \"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"rparen\", \".paren\")\n .replace(/\\b(?:end)\\b/, \"(?:start|begin|end)\")\n + \")+\"\n );\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn() - 2;\n var value = token.value;\n \n while (true) {\n \n while (valueIndex >= 0) {\n var chr = value.charAt(valueIndex);\n if (chr == openBracket) {\n depth -= 1;\n if (depth == 0) {\n return {row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn()};\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex -= 1;\n }\n do {\n token = iterator.stepBackward();\n } while (token && !typeRe.test(token.type));\n\n if (token == null)\n break;\n \n value = token.value;\n valueIndex = value.length - 1;\n }\n \n return null;\n };\n\n this.$findClosingBracket = function(bracket, position, typeRe) {\n var closingBracket = this.$brackets[bracket];\n var depth = 1;\n\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n\n if (!typeRe){\n typeRe = new RegExp(\n \"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"lparen\", \".paren\")\n .replace(/\\b(?:start|begin)\\b/, \"(?:start|begin|end)\")\n + \")+\"\n );\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn();\n\n while (true) {\n\n var value = token.value;\n var valueLength = value.length;\n while (valueIndex < valueLength) {\n var chr = value.charAt(valueIndex);\n if (chr == closingBracket) {\n depth -= 1;\n if (depth == 0) {\n return {row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn()};\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex += 1;\n }\n do {\n token = iterator.stepForward();\n } while (token && !typeRe.test(token.type));\n\n if (token == null)\n break;\n\n valueIndex = 0;\n }\n \n return null;\n };\n}\nexports.BracketMatch = BracketMatch;\n\n});\n\nace.define(\"ace/edit_session\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/bidihandler\",\"ace/config\",\"ace/lib/event_emitter\",\"ace/selection\",\"ace/mode/text\",\"ace/range\",\"ace/document\",\"ace/background_tokenizer\",\"ace/search_highlight\",\"ace/edit_session/folding\",\"ace/edit_session/bracket_match\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar lang = acequire(\"./lib/lang\");\nvar BidiHandler = acequire(\"./bidihandler\").BidiHandler;\nvar config = acequire(\"./config\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar Selection = acequire(\"./selection\").Selection;\nvar TextMode = acequire(\"./mode/text\").Mode;\nvar Range = acequire(\"./range\").Range;\nvar Document = acequire(\"./document\").Document;\nvar BackgroundTokenizer = acequire(\"./background_tokenizer\").BackgroundTokenizer;\nvar SearchHighlight = acequire(\"./search_highlight\").SearchHighlight;\n\nvar EditSession = function(text, mode) {\n this.$breakpoints = [];\n this.$decorations = [];\n this.$frontMarkers = {};\n this.$backMarkers = {};\n this.$markerId = 1;\n this.$undoSelect = true;\n\n this.$foldData = [];\n this.id = \"session\" + (++EditSession.$uid);\n this.$foldData.toString = function() {\n return this.join(\"\\n\");\n };\n this.on(\"changeFold\", this.onChangeFold.bind(this));\n this.$onChange = this.onChange.bind(this);\n\n if (typeof text != \"object\" || !text.getLine)\n text = new Document(text);\n\n this.$bidiHandler = new BidiHandler(this);\n this.setDocument(text);\n this.selection = new Selection(this);\n\n config.resetOptions(this);\n this.setMode(mode);\n config._signal(\"session\", this);\n};\n\n\nEditSession.$uid = 0;\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.setDocument = function(doc) {\n if (this.doc)\n this.doc.removeListener(\"change\", this.$onChange);\n\n this.doc = doc;\n doc.on(\"change\", this.$onChange);\n\n if (this.bgTokenizer)\n this.bgTokenizer.setDocument(this.getDocument());\n\n this.resetCaches();\n };\n this.getDocument = function() {\n return this.doc;\n };\n this.$resetRowCache = function(docRow) {\n if (!docRow) {\n this.$docRowCache = [];\n this.$screenRowCache = [];\n return;\n }\n var l = this.$docRowCache.length;\n var i = this.$getRowCacheIndex(this.$docRowCache, docRow) + 1;\n if (l > i) {\n this.$docRowCache.splice(i, l);\n this.$screenRowCache.splice(i, l);\n }\n };\n\n this.$getRowCacheIndex = function(cacheArray, val) {\n var low = 0;\n var hi = cacheArray.length - 1;\n\n while (low <= hi) {\n var mid = (low + hi) >> 1;\n var c = cacheArray[mid];\n\n if (val > c)\n low = mid + 1;\n else if (val < c)\n hi = mid - 1;\n else\n return mid;\n }\n\n return low -1;\n };\n\n this.resetCaches = function() {\n this.$modified = true;\n this.$wrapData = [];\n this.$rowLengthCache = [];\n this.$resetRowCache(0);\n if (this.bgTokenizer)\n this.bgTokenizer.start(0);\n };\n\n this.onChangeFold = function(e) {\n var fold = e.data;\n this.$resetRowCache(fold.start.row);\n };\n\n this.onChange = function(delta) {\n this.$modified = true;\n this.$bidiHandler.onChange(delta);\n this.$resetRowCache(delta.start.row);\n\n var removedFolds = this.$updateInternalDataOnChange(delta);\n if (!this.$fromUndo && this.$undoManager && !delta.ignore) {\n this.$deltasDoc.push(delta);\n if (removedFolds && removedFolds.length != 0) {\n this.$deltasFold.push({\n action: \"removeFolds\",\n folds: removedFolds\n });\n }\n\n this.$informUndoManager.schedule();\n }\n\n this.bgTokenizer && this.bgTokenizer.$updateOnChange(delta);\n this._signal(\"change\", delta);\n };\n this.setValue = function(text) {\n this.doc.setValue(text);\n this.selection.moveTo(0, 0);\n\n this.$resetRowCache(0);\n this.$deltas = [];\n this.$deltasDoc = [];\n this.$deltasFold = [];\n this.setUndoManager(this.$undoManager);\n this.getUndoManager().reset();\n };\n this.getValue =\n this.toString = function() {\n return this.doc.getValue();\n };\n this.getSelection = function() {\n return this.selection;\n };\n this.getState = function(row) {\n return this.bgTokenizer.getState(row);\n };\n this.getTokens = function(row) {\n return this.bgTokenizer.getTokens(row);\n };\n this.getTokenAt = function(row, column) {\n var tokens = this.bgTokenizer.getTokens(row);\n var token, c = 0;\n if (column == null) {\n var i = tokens.length - 1;\n c = this.getLine(row).length;\n } else {\n for (var i = 0; i < tokens.length; i++) {\n c += tokens[i].value.length;\n if (c >= column)\n break;\n }\n }\n token = tokens[i];\n if (!token)\n return null;\n token.index = i;\n token.start = c - token.value.length;\n return token;\n };\n this.setUndoManager = function(undoManager) {\n this.$undoManager = undoManager;\n this.$deltas = [];\n this.$deltasDoc = [];\n this.$deltasFold = [];\n\n if (this.$informUndoManager)\n this.$informUndoManager.cancel();\n\n if (undoManager) {\n var self = this;\n\n this.$syncInformUndoManager = function() {\n self.$informUndoManager.cancel();\n\n if (self.$deltasFold.length) {\n self.$deltas.push({\n group: \"fold\",\n deltas: self.$deltasFold\n });\n self.$deltasFold = [];\n }\n\n if (self.$deltasDoc.length) {\n self.$deltas.push({\n group: \"doc\",\n deltas: self.$deltasDoc\n });\n self.$deltasDoc = [];\n }\n\n if (self.$deltas.length > 0) {\n undoManager.execute({\n action: \"aceupdate\",\n args: [self.$deltas, self],\n merge: self.mergeUndoDeltas\n });\n }\n self.mergeUndoDeltas = false;\n self.$deltas = [];\n };\n this.$informUndoManager = lang.delayedCall(this.$syncInformUndoManager);\n }\n };\n this.markUndoGroup = function() {\n if (this.$syncInformUndoManager)\n this.$syncInformUndoManager();\n };\n \n this.$defaultUndoManager = {\n undo: function() {},\n redo: function() {},\n reset: function() {}\n };\n this.getUndoManager = function() {\n return this.$undoManager || this.$defaultUndoManager;\n };\n this.getTabString = function() {\n if (this.getUseSoftTabs()) {\n return lang.stringRepeat(\" \", this.getTabSize());\n } else {\n return \"\\t\";\n }\n };\n this.setUseSoftTabs = function(val) {\n this.setOption(\"useSoftTabs\", val);\n };\n this.getUseSoftTabs = function() {\n return this.$useSoftTabs && !this.$mode.$indentWithTabs;\n };\n this.setTabSize = function(tabSize) {\n this.setOption(\"tabSize\", tabSize);\n };\n this.getTabSize = function() {\n return this.$tabSize;\n };\n this.isTabStop = function(position) {\n return this.$useSoftTabs && (position.column % this.$tabSize === 0);\n };\n this.setNavigateWithinSoftTabs = function (navigateWithinSoftTabs) {\n this.setOption(\"navigateWithinSoftTabs\", navigateWithinSoftTabs);\n };\n this.getNavigateWithinSoftTabs = function() {\n return this.$navigateWithinSoftTabs;\n };\n\n this.$overwrite = false;\n this.setOverwrite = function(overwrite) {\n this.setOption(\"overwrite\", overwrite);\n };\n this.getOverwrite = function() {\n return this.$overwrite;\n };\n this.toggleOverwrite = function() {\n this.setOverwrite(!this.$overwrite);\n };\n this.addGutterDecoration = function(row, className) {\n if (!this.$decorations[row])\n this.$decorations[row] = \"\";\n this.$decorations[row] += \" \" + className;\n this._signal(\"changeBreakpoint\", {});\n };\n this.removeGutterDecoration = function(row, className) {\n this.$decorations[row] = (this.$decorations[row] || \"\").replace(\" \" + className, \"\");\n this._signal(\"changeBreakpoint\", {});\n };\n this.getBreakpoints = function() {\n return this.$breakpoints;\n };\n this.setBreakpoints = function(rows) {\n this.$breakpoints = [];\n for (var i=0; i<rows.length; i++) {\n this.$breakpoints[rows[i]] = \"ace_breakpoint\";\n }\n this._signal(\"changeBreakpoint\", {});\n };\n this.clearBreakpoints = function() {\n this.$breakpoints = [];\n this._signal(\"changeBreakpoint\", {});\n };\n this.setBreakpoint = function(row, className) {\n if (className === undefined)\n className = \"ace_breakpoint\";\n if (className)\n this.$breakpoints[row] = className;\n else\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n this.clearBreakpoint = function(row) {\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n this.addMarker = function(range, clazz, type, inFront) {\n var id = this.$markerId++;\n\n var marker = {\n range : range,\n type : type || \"line\",\n renderer: typeof type == \"function\" ? type : null,\n clazz : clazz,\n inFront: !!inFront,\n id: id\n };\n\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n } else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n\n return id;\n };\n this.addDynamicMarker = function(marker, inFront) {\n if (!marker.update)\n return;\n var id = this.$markerId++;\n marker.id = id;\n marker.inFront = !!inFront;\n\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n } else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n\n return marker;\n };\n this.removeMarker = function(markerId) {\n var marker = this.$frontMarkers[markerId] || this.$backMarkers[markerId];\n if (!marker)\n return;\n\n var markers = marker.inFront ? this.$frontMarkers : this.$backMarkers;\n if (marker) {\n delete (markers[markerId]);\n this._signal(marker.inFront ? \"changeFrontMarker\" : \"changeBackMarker\");\n }\n };\n this.getMarkers = function(inFront) {\n return inFront ? this.$frontMarkers : this.$backMarkers;\n };\n\n this.highlight = function(re) {\n if (!this.$searchHighlight) {\n var highlight = new SearchHighlight(null, \"ace_selected-word\", \"text\");\n this.$searchHighlight = this.addDynamicMarker(highlight);\n }\n this.$searchHighlight.setRegexp(re);\n };\n this.highlightLines = function(startRow, endRow, clazz, inFront) {\n if (typeof endRow != \"number\") {\n clazz = endRow;\n endRow = startRow;\n }\n if (!clazz)\n clazz = \"ace_step\";\n\n var range = new Range(startRow, 0, endRow, Infinity);\n range.id = this.addMarker(range, clazz, \"fullLine\", inFront);\n return range;\n };\n this.setAnnotations = function(annotations) {\n this.$annotations = annotations;\n this._signal(\"changeAnnotation\", {});\n };\n this.getAnnotations = function() {\n return this.$annotations || [];\n };\n this.clearAnnotations = function() {\n this.setAnnotations([]);\n };\n this.$detectNewLine = function(text) {\n var match = text.match(/^.*?(\\r?\\n)/m);\n if (match) {\n this.$autoNewLine = match[1];\n } else {\n this.$autoNewLine = \"\\n\";\n }\n };\n this.getWordRange = function(row, column) {\n var line = this.getLine(row);\n\n var inToken = false;\n if (column > 0)\n inToken = !!line.charAt(column - 1).match(this.tokenRe);\n\n if (!inToken)\n inToken = !!line.charAt(column).match(this.tokenRe);\n\n if (inToken)\n var re = this.tokenRe;\n else if (/^\\s+$/.test(line.slice(column-1, column+1)))\n var re = /\\s/;\n else\n var re = this.nonTokenRe;\n\n var start = column;\n if (start > 0) {\n do {\n start--;\n }\n while (start >= 0 && line.charAt(start).match(re));\n start++;\n }\n\n var end = column;\n while (end < line.length && line.charAt(end).match(re)) {\n end++;\n }\n\n return new Range(row, start, row, end);\n };\n this.getAWordRange = function(row, column) {\n var wordRange = this.getWordRange(row, column);\n var line = this.getLine(wordRange.end.row);\n\n while (line.charAt(wordRange.end.column).match(/[ \\t]/)) {\n wordRange.end.column += 1;\n }\n return wordRange;\n };\n this.setNewLineMode = function(newLineMode) {\n this.doc.setNewLineMode(newLineMode);\n };\n this.getNewLineMode = function() {\n return this.doc.getNewLineMode();\n };\n this.setUseWorker = function(useWorker) { this.setOption(\"useWorker\", useWorker); };\n this.getUseWorker = function() { return this.$useWorker; };\n this.onReloadTokenizer = function(e) {\n var rows = e.data;\n this.bgTokenizer.start(rows.first);\n this._signal(\"tokenizerUpdate\", e);\n };\n\n this.$modes = {};\n this.$mode = null;\n this.$modeId = null;\n this.setMode = function(mode, cb) {\n if (mode && typeof mode === \"object\") {\n if (mode.getTokenizer)\n return this.$onChangeMode(mode);\n var options = mode;\n var path = options.path;\n } else {\n path = mode || \"ace/mode/text\";\n }\n if (!this.$modes[\"ace/mode/text\"])\n this.$modes[\"ace/mode/text\"] = new TextMode();\n\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n cb && cb();\n return;\n }\n this.$modeId = path;\n config.loadModule([\"mode\", path], function(m) {\n if (this.$modeId !== path)\n return cb && cb();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n } else if (m && m.Mode) {\n m = new m.Mode(options);\n if (!options) {\n this.$modes[path] = m;\n m.$id = path;\n }\n this.$onChangeMode(m);\n }\n cb && cb();\n }.bind(this));\n if (!this.$mode)\n this.$onChangeMode(this.$modes[\"ace/mode/text\"], true);\n };\n\n this.$onChangeMode = function(mode, $isPlaceholder) {\n if (!$isPlaceholder)\n this.$modeId = mode.$id;\n if (this.$mode === mode) \n return;\n\n this.$mode = mode;\n\n this.$stopWorker();\n\n if (this.$useWorker)\n this.$startWorker();\n\n var tokenizer = mode.getTokenizer();\n\n if(tokenizer.addEventListener !== undefined) {\n var onReloadTokenizer = this.onReloadTokenizer.bind(this);\n tokenizer.addEventListener(\"update\", onReloadTokenizer);\n }\n\n if (!this.bgTokenizer) {\n this.bgTokenizer = new BackgroundTokenizer(tokenizer);\n var _self = this;\n this.bgTokenizer.addEventListener(\"update\", function(e) {\n _self._signal(\"tokenizerUpdate\", e);\n });\n } else {\n this.bgTokenizer.setTokenizer(tokenizer);\n }\n\n this.bgTokenizer.setDocument(this.getDocument());\n\n this.tokenRe = mode.tokenRe;\n this.nonTokenRe = mode.nonTokenRe;\n\n \n if (!$isPlaceholder) {\n if (mode.attachToSession)\n mode.attachToSession(this);\n this.$options.wrapMethod.set.call(this, this.$wrapMethod);\n this.$setFolding(mode.foldingRules);\n this.bgTokenizer.start(0);\n this._emit(\"changeMode\");\n }\n };\n\n this.$stopWorker = function() {\n if (this.$worker) {\n this.$worker.terminate();\n this.$worker = null;\n }\n };\n\n this.$startWorker = function() {\n try {\n this.$worker = this.$mode.createWorker(this);\n } catch (e) {\n config.warn(\"Could not load worker\", e);\n this.$worker = null;\n }\n };\n this.getMode = function() {\n return this.$mode;\n };\n\n this.$scrollTop = 0;\n this.setScrollTop = function(scrollTop) {\n if (this.$scrollTop === scrollTop || isNaN(scrollTop))\n return;\n\n this.$scrollTop = scrollTop;\n this._signal(\"changeScrollTop\", scrollTop);\n };\n this.getScrollTop = function() {\n return this.$scrollTop;\n };\n\n this.$scrollLeft = 0;\n this.setScrollLeft = function(scrollLeft) {\n if (this.$scrollLeft === scrollLeft || isNaN(scrollLeft))\n return;\n\n this.$scrollLeft = scrollLeft;\n this._signal(\"changeScrollLeft\", scrollLeft);\n };\n this.getScrollLeft = function() {\n return this.$scrollLeft;\n };\n this.getScreenWidth = function() {\n this.$computeWidth();\n if (this.lineWidgets) \n return Math.max(this.getLineWidgetMaxWidth(), this.screenWidth);\n return this.screenWidth;\n };\n \n this.getLineWidgetMaxWidth = function() {\n if (this.lineWidgetsWidth != null) return this.lineWidgetsWidth;\n var width = 0;\n this.lineWidgets.forEach(function(w) {\n if (w && w.screenWidth > width)\n width = w.screenWidth;\n });\n return this.lineWidgetWidth = width;\n };\n\n this.$computeWidth = function(force) {\n if (this.$modified || force) {\n this.$modified = false;\n\n if (this.$useWrapMode)\n return this.screenWidth = this.$wrapLimit;\n\n var lines = this.doc.getAllLines();\n var cache = this.$rowLengthCache;\n var longestScreenLine = 0;\n var foldIndex = 0;\n var foldLine = this.$foldData[foldIndex];\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n var len = lines.length;\n\n for (var i = 0; i < len; i++) {\n if (i > foldStart) {\n i = foldLine.end.row + 1;\n if (i >= len)\n break;\n foldLine = this.$foldData[foldIndex++];\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n\n if (cache[i] == null)\n cache[i] = this.$getStringScreenWidth(lines[i])[0];\n\n if (cache[i] > longestScreenLine)\n longestScreenLine = cache[i];\n }\n this.screenWidth = longestScreenLine;\n }\n };\n this.getLine = function(row) {\n return this.doc.getLine(row);\n };\n this.getLines = function(firstRow, lastRow) {\n return this.doc.getLines(firstRow, lastRow);\n };\n this.getLength = function() {\n return this.doc.getLength();\n };\n this.getTextRange = function(range) {\n return this.doc.getTextRange(range || this.selection.getRange());\n };\n this.insert = function(position, text) {\n return this.doc.insert(position, text);\n };\n this.remove = function(range) {\n return this.doc.remove(range);\n };\n this.removeFullLines = function(firstRow, lastRow){\n return this.doc.removeFullLines(firstRow, lastRow);\n };\n this.undoChanges = function(deltas, dontSelect) {\n if (!deltas.length)\n return;\n\n this.$fromUndo = true;\n var lastUndoRange = null;\n for (var i = deltas.length - 1; i != -1; i--) {\n var delta = deltas[i];\n if (delta.group == \"doc\") {\n this.doc.revertDeltas(delta.deltas);\n lastUndoRange =\n this.$getUndoSelection(delta.deltas, true, lastUndoRange);\n } else {\n delta.deltas.forEach(function(foldDelta) {\n this.addFolds(foldDelta.folds);\n }, this);\n }\n }\n this.$fromUndo = false;\n lastUndoRange &&\n this.$undoSelect &&\n !dontSelect &&\n this.selection.setSelectionRange(lastUndoRange);\n return lastUndoRange;\n };\n this.redoChanges = function(deltas, dontSelect) {\n if (!deltas.length)\n return;\n\n this.$fromUndo = true;\n var lastUndoRange = null;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (delta.group == \"doc\") {\n this.doc.applyDeltas(delta.deltas);\n lastUndoRange =\n this.$getUndoSelection(delta.deltas, false, lastUndoRange);\n }\n }\n this.$fromUndo = false;\n lastUndoRange &&\n this.$undoSelect &&\n !dontSelect &&\n this.selection.setSelectionRange(lastUndoRange);\n return lastUndoRange;\n };\n this.setUndoSelect = function(enable) {\n this.$undoSelect = enable;\n };\n\n this.$getUndoSelection = function(deltas, isUndo, lastUndoRange) {\n function isInsert(delta) {\n return isUndo ? delta.action !== \"insert\" : delta.action === \"insert\";\n }\n\n var delta = deltas[0];\n var range, point;\n var lastDeltaIsInsert = false;\n if (isInsert(delta)) {\n range = Range.fromPoints(delta.start, delta.end);\n lastDeltaIsInsert = true;\n } else {\n range = Range.fromPoints(delta.start, delta.start);\n lastDeltaIsInsert = false;\n }\n\n for (var i = 1; i < deltas.length; i++) {\n delta = deltas[i];\n if (isInsert(delta)) {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range.setStart(point);\n }\n point = delta.end;\n if (range.compare(point.row, point.column) == 1) {\n range.setEnd(point);\n }\n lastDeltaIsInsert = true;\n } else {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range = Range.fromPoints(delta.start, delta.start);\n }\n lastDeltaIsInsert = false;\n }\n }\n if (lastUndoRange != null) {\n if (Range.comparePoints(lastUndoRange.start, range.start) === 0) {\n lastUndoRange.start.column += range.end.column - range.start.column;\n lastUndoRange.end.column += range.end.column - range.start.column;\n }\n\n var cmp = lastUndoRange.compareRange(range);\n if (cmp == 1) {\n range.setStart(lastUndoRange.start);\n } else if (cmp == -1) {\n range.setEnd(lastUndoRange.end);\n }\n }\n\n return range;\n };\n this.replace = function(range, text) {\n return this.doc.replace(range, text);\n };\n this.moveText = function(fromRange, toPosition, copy) {\n var text = this.getTextRange(fromRange);\n var folds = this.getFoldsInRange(fromRange);\n\n var toRange = Range.fromPoints(toPosition, toPosition);\n if (!copy) {\n this.remove(fromRange);\n var rowDiff = fromRange.start.row - fromRange.end.row;\n var collDiff = rowDiff ? -fromRange.end.column : fromRange.start.column - fromRange.end.column;\n if (collDiff) {\n if (toRange.start.row == fromRange.end.row && toRange.start.column > fromRange.end.column)\n toRange.start.column += collDiff;\n if (toRange.end.row == fromRange.end.row && toRange.end.column > fromRange.end.column)\n toRange.end.column += collDiff;\n }\n if (rowDiff && toRange.start.row >= fromRange.end.row) {\n toRange.start.row += rowDiff;\n toRange.end.row += rowDiff;\n }\n }\n\n toRange.end = this.insert(toRange.start, text);\n if (folds.length) {\n var oldStart = fromRange.start;\n var newStart = toRange.start;\n var rowDiff = newStart.row - oldStart.row;\n var collDiff = newStart.column - oldStart.column;\n this.addFolds(folds.map(function(x) {\n x = x.clone();\n if (x.start.row == oldStart.row)\n x.start.column += collDiff;\n if (x.end.row == oldStart.row)\n x.end.column += collDiff;\n x.start.row += rowDiff;\n x.end.row += rowDiff;\n return x;\n }));\n }\n\n return toRange;\n };\n this.indentRows = function(startRow, endRow, indentString) {\n indentString = indentString.replace(/\\t/g, this.getTabString());\n for (var row=startRow; row<=endRow; row++)\n this.doc.insertInLine({row: row, column: 0}, indentString);\n };\n this.outdentRows = function (range) {\n var rowRange = range.collapseRows();\n var deleteRange = new Range(0, 0, 0, 0);\n var size = this.getTabSize();\n\n for (var i = rowRange.start.row; i <= rowRange.end.row; ++i) {\n var line = this.getLine(i);\n\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n for (var j = 0; j < size; ++j)\n if (line.charAt(j) != ' ')\n break;\n if (j < size && line.charAt(j) == '\\t') {\n deleteRange.start.column = j;\n deleteRange.end.column = j + 1;\n } else {\n deleteRange.start.column = 0;\n deleteRange.end.column = j;\n }\n this.remove(deleteRange);\n }\n };\n\n this.$moveLines = function(firstRow, lastRow, dir) {\n firstRow = this.getRowFoldStart(firstRow);\n lastRow = this.getRowFoldEnd(lastRow);\n if (dir < 0) {\n var row = this.getRowFoldStart(firstRow + dir);\n if (row < 0) return 0;\n var diff = row-firstRow;\n } else if (dir > 0) {\n var row = this.getRowFoldEnd(lastRow + dir);\n if (row > this.doc.getLength()-1) return 0;\n var diff = row-lastRow;\n } else {\n firstRow = this.$clipRowToDocument(firstRow);\n lastRow = this.$clipRowToDocument(lastRow);\n var diff = lastRow - firstRow + 1;\n }\n\n var range = new Range(firstRow, 0, lastRow, Number.MAX_VALUE);\n var folds = this.getFoldsInRange(range).map(function(x){\n x = x.clone();\n x.start.row += diff;\n x.end.row += diff;\n return x;\n });\n \n var lines = dir == 0\n ? this.doc.getLines(firstRow, lastRow)\n : this.doc.removeFullLines(firstRow, lastRow);\n this.doc.insertFullLines(firstRow+diff, lines);\n folds.length && this.addFolds(folds);\n return diff;\n };\n this.moveLinesUp = function(firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, -1);\n };\n this.moveLinesDown = function(firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 1);\n };\n this.duplicateLines = function(firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 0);\n };\n\n\n this.$clipRowToDocument = function(row) {\n return Math.max(0, Math.min(row, this.doc.getLength()-1));\n };\n\n this.$clipColumnToRow = function(row, column) {\n if (column < 0)\n return 0;\n return Math.min(this.doc.getLine(row).length, column);\n };\n\n\n this.$clipPositionToDocument = function(row, column) {\n column = Math.max(0, column);\n\n if (row < 0) {\n row = 0;\n column = 0;\n } else {\n var len = this.doc.getLength();\n if (row >= len) {\n row = len - 1;\n column = this.doc.getLine(len-1).length;\n } else {\n column = Math.min(this.doc.getLine(row).length, column);\n }\n }\n\n return {\n row: row,\n column: column\n };\n };\n\n this.$clipRangeToDocument = function(range) {\n if (range.start.row < 0) {\n range.start.row = 0;\n range.start.column = 0;\n } else {\n range.start.column = this.$clipColumnToRow(\n range.start.row,\n range.start.column\n );\n }\n\n var len = this.doc.getLength() - 1;\n if (range.end.row > len) {\n range.end.row = len;\n range.end.column = this.doc.getLine(len).length;\n } else {\n range.end.column = this.$clipColumnToRow(\n range.end.row,\n range.end.column\n );\n }\n return range;\n };\n this.$wrapLimit = 80;\n this.$useWrapMode = false;\n this.$wrapLimitRange = {\n min : null,\n max : null\n };\n this.setUseWrapMode = function(useWrapMode) {\n if (useWrapMode != this.$useWrapMode) {\n this.$useWrapMode = useWrapMode;\n this.$modified = true;\n this.$resetRowCache(0);\n if (useWrapMode) {\n var len = this.getLength();\n this.$wrapData = Array(len);\n this.$updateWrapData(0, len - 1);\n }\n\n this._signal(\"changeWrapMode\");\n }\n };\n this.getUseWrapMode = function() {\n return this.$useWrapMode;\n };\n this.setWrapLimitRange = function(min, max) {\n if (this.$wrapLimitRange.min !== min || this.$wrapLimitRange.max !== max) {\n this.$wrapLimitRange = { min: min, max: max };\n this.$modified = true;\n this.$bidiHandler.markAsDirty();\n if (this.$useWrapMode)\n this._signal(\"changeWrapMode\");\n }\n };\n this.adjustWrapLimit = function(desiredLimit, $printMargin) {\n var limits = this.$wrapLimitRange;\n if (limits.max < 0)\n limits = {min: $printMargin, max: $printMargin};\n var wrapLimit = this.$constrainWrapLimit(desiredLimit, limits.min, limits.max);\n if (wrapLimit != this.$wrapLimit && wrapLimit > 1) {\n this.$wrapLimit = wrapLimit;\n this.$modified = true;\n if (this.$useWrapMode) {\n this.$updateWrapData(0, this.getLength() - 1);\n this.$resetRowCache(0);\n this._signal(\"changeWrapLimit\");\n }\n return true;\n }\n return false;\n };\n\n this.$constrainWrapLimit = function(wrapLimit, min, max) {\n if (min)\n wrapLimit = Math.max(min, wrapLimit);\n\n if (max)\n wrapLimit = Math.min(max, wrapLimit);\n\n return wrapLimit;\n };\n this.getWrapLimit = function() {\n return this.$wrapLimit;\n };\n this.setWrapLimit = function (limit) {\n this.setWrapLimitRange(limit, limit);\n };\n this.getWrapLimitRange = function() {\n return {\n min : this.$wrapLimitRange.min,\n max : this.$wrapLimitRange.max\n };\n };\n\n this.$updateInternalDataOnChange = function(delta) {\n var useWrapMode = this.$useWrapMode;\n var action = delta.action;\n var start = delta.start;\n var end = delta.end;\n var firstRow = start.row;\n var lastRow = end.row;\n var len = lastRow - firstRow;\n var removedFolds = null;\n \n this.$updating = true;\n if (len != 0) {\n if (action === \"remove\") {\n this[useWrapMode ? \"$wrapData\" : \"$rowLengthCache\"].splice(firstRow, len);\n\n var foldLines = this.$foldData;\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n\n var foldLine = this.getFoldLine(end.row);\n var idx = 0;\n if (foldLine) {\n foldLine.addRemoveChars(end.row, end.column, start.column - end.column);\n foldLine.shiftRow(-len);\n\n var foldLineBefore = this.getFoldLine(firstRow);\n if (foldLineBefore && foldLineBefore !== foldLine) {\n foldLineBefore.merge(foldLine);\n foldLine = foldLineBefore;\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= end.row) {\n foldLine.shiftRow(-len);\n }\n }\n\n lastRow = firstRow;\n } else {\n var args = Array(len);\n args.unshift(firstRow, 0);\n var arr = useWrapMode ? this.$wrapData : this.$rowLengthCache;\n arr.splice.apply(arr, args);\n var foldLines = this.$foldData;\n var foldLine = this.getFoldLine(firstRow);\n var idx = 0;\n if (foldLine) {\n var cmp = foldLine.range.compareInside(start.row, start.column);\n if (cmp == 0) {\n foldLine = foldLine.split(start.row, start.column);\n if (foldLine) {\n foldLine.shiftRow(len);\n foldLine.addRemoveChars(lastRow, 0, end.column - start.column);\n }\n } else\n if (cmp == -1) {\n foldLine.addRemoveChars(firstRow, 0, end.column - start.column);\n foldLine.shiftRow(len);\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= firstRow) {\n foldLine.shiftRow(len);\n }\n }\n }\n } else {\n len = Math.abs(delta.start.column - delta.end.column);\n if (action === \"remove\") {\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n\n len = -len;\n }\n var foldLine = this.getFoldLine(firstRow);\n if (foldLine) {\n foldLine.addRemoveChars(firstRow, start.column, len);\n }\n }\n\n if (useWrapMode && this.$wrapData.length != this.doc.getLength()) {\n console.error(\"doc.getLength() and $wrapData.length have to be the same!\");\n }\n this.$updating = false;\n\n if (useWrapMode)\n this.$updateWrapData(firstRow, lastRow);\n else\n this.$updateRowLengthCache(firstRow, lastRow);\n\n return removedFolds;\n };\n\n this.$updateRowLengthCache = function(firstRow, lastRow, b) {\n this.$rowLengthCache[firstRow] = null;\n this.$rowLengthCache[lastRow] = null;\n };\n\n this.$updateWrapData = function(firstRow, lastRow) {\n var lines = this.doc.getAllLines();\n var tabSize = this.getTabSize();\n var wrapData = this.$wrapData;\n var wrapLimit = this.$wrapLimit;\n var tokens;\n var foldLine;\n\n var row = firstRow;\n lastRow = Math.min(lastRow, lines.length - 1);\n while (row <= lastRow) {\n foldLine = this.getFoldLine(row, foldLine);\n if (!foldLine) {\n tokens = this.$getDisplayTokens(lines[row]);\n wrapData[row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row ++;\n } else {\n tokens = [];\n foldLine.walk(function(placeholder, row, column, lastColumn) {\n var walkTokens;\n if (placeholder != null) {\n walkTokens = this.$getDisplayTokens(\n placeholder, tokens.length);\n walkTokens[0] = PLACEHOLDER_START;\n for (var i = 1; i < walkTokens.length; i++) {\n walkTokens[i] = PLACEHOLDER_BODY;\n }\n } else {\n walkTokens = this.$getDisplayTokens(\n lines[row].substring(lastColumn, column),\n tokens.length);\n }\n tokens = tokens.concat(walkTokens);\n }.bind(this),\n foldLine.end.row,\n lines[foldLine.end.row].length + 1\n );\n\n wrapData[foldLine.start.row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row = foldLine.end.row + 1;\n }\n }\n };\n var CHAR = 1,\n CHAR_EXT = 2,\n PLACEHOLDER_START = 3,\n PLACEHOLDER_BODY = 4,\n PUNCTUATION = 9,\n SPACE = 10,\n TAB = 11,\n TAB_SPACE = 12;\n\n\n this.$computeWrapSplits = function(tokens, wrapLimit, tabSize) {\n if (tokens.length == 0) {\n return [];\n }\n\n var splits = [];\n var displayLength = tokens.length;\n var lastSplit = 0, lastDocSplit = 0;\n\n var isCode = this.$wrapAsCode;\n\n var indentedSoftWrap = this.$indentedSoftWrap;\n var maxIndent = wrapLimit <= Math.max(2 * tabSize, 8)\n || indentedSoftWrap === false ? 0 : Math.floor(wrapLimit / 2);\n\n function getWrapIndent() {\n var indentation = 0;\n if (maxIndent === 0)\n return indentation;\n if (indentedSoftWrap) {\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token == SPACE)\n indentation += 1;\n else if (token == TAB)\n indentation += tabSize;\n else if (token == TAB_SPACE)\n continue;\n else\n break;\n }\n }\n if (isCode && indentedSoftWrap !== false)\n indentation += tabSize;\n return Math.min(indentation, maxIndent);\n }\n function addSplit(screenPos) {\n var displayed = tokens.slice(lastSplit, screenPos);\n var len = displayed.length;\n displayed.join(\"\")\n .replace(/12/g, function() {\n len -= 1;\n })\n .replace(/2/g, function() {\n len -= 1;\n });\n\n if (!splits.length) {\n indent = getWrapIndent();\n splits.indent = indent;\n }\n lastDocSplit += len;\n splits.push(lastDocSplit);\n lastSplit = screenPos;\n }\n var indent = 0;\n while (displayLength - lastSplit > wrapLimit - indent) {\n var split = lastSplit + wrapLimit - indent;\n if (tokens[split - 1] >= SPACE && tokens[split] >= SPACE) {\n addSplit(split);\n continue;\n }\n if (tokens[split] == PLACEHOLDER_START || tokens[split] == PLACEHOLDER_BODY) {\n for (split; split != lastSplit - 1; split--) {\n if (tokens[split] == PLACEHOLDER_START) {\n break;\n }\n }\n if (split > lastSplit) {\n addSplit(split);\n continue;\n }\n split = lastSplit + wrapLimit;\n for (split; split < tokens.length; split++) {\n if (tokens[split] != PLACEHOLDER_BODY) {\n break;\n }\n }\n if (split == tokens.length) {\n break; // Breaks the while-loop.\n }\n addSplit(split);\n continue;\n }\n var minSplit = Math.max(split - (wrapLimit -(wrapLimit>>2)), lastSplit - 1);\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split --;\n }\n if (isCode) {\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split --;\n }\n while (split > minSplit && tokens[split] == PUNCTUATION) {\n split --;\n }\n } else {\n while (split > minSplit && tokens[split] < SPACE) {\n split --;\n }\n }\n if (split > minSplit) {\n addSplit(++split);\n continue;\n }\n split = lastSplit + wrapLimit;\n if (tokens[split] == CHAR_EXT)\n split--;\n addSplit(split - indent);\n }\n return splits;\n };\n this.$getDisplayTokens = function(str, offset) {\n var arr = [];\n var tabSize;\n offset = offset || 0;\n\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i);\n if (c == 9) {\n tabSize = this.getScreenTabSize(arr.length + offset);\n arr.push(TAB);\n for (var n = 1; n < tabSize; n++) {\n arr.push(TAB_SPACE);\n }\n }\n else if (c == 32) {\n arr.push(SPACE);\n } else if((c > 39 && c < 48) || (c > 57 && c < 64)) {\n arr.push(PUNCTUATION);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n arr.push(CHAR, CHAR_EXT);\n } else {\n arr.push(CHAR);\n }\n }\n return arr;\n };\n this.$getStringScreenWidth = function(str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn == 0)\n return [0, 0];\n if (maxScreenColumn == null)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charCodeAt(column);\n if (c == 9) {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n screenColumn += 2;\n } else {\n screenColumn += 1;\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n\n return [screenColumn, column];\n };\n\n this.lineWidgets = null;\n this.getRowLength = function(row) {\n if (this.lineWidgets)\n var h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n else \n h = 0;\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1 + h;\n } else {\n return this.$wrapData[row].length + 1 + h;\n }\n };\n this.getRowLineCount = function(row) {\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1;\n } else {\n return this.$wrapData[row].length + 1;\n }\n };\n\n this.getRowWrapIndent = function(screenRow) {\n if (this.$useWrapMode) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n var splits = this.$wrapData[pos.row];\n return splits.length && splits[0] < pos.column ? splits.indent : 0;\n } else {\n return 0;\n }\n };\n this.getScreenLastRowColumn = function(screenRow) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n return this.documentToScreenColumn(pos.row, pos.column);\n };\n this.getDocumentLastRowColumn = function(docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.getScreenLastRowColumn(screenRow);\n };\n this.getDocumentLastRowColumnPosition = function(docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.screenToDocumentPosition(screenRow, Number.MAX_VALUE / 10);\n };\n this.getRowSplitData = function(row) {\n if (!this.$useWrapMode) {\n return undefined;\n } else {\n return this.$wrapData[row];\n }\n };\n this.getScreenTabSize = function(screenColumn) {\n return this.$tabSize - screenColumn % this.$tabSize;\n };\n\n\n this.screenToDocumentRow = function(screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).row;\n };\n\n\n this.screenToDocumentColumn = function(screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).column;\n };\n this.screenToDocumentPosition = function(screenRow, screenColumn, offsetX) {\n if (screenRow < 0)\n return {row: 0, column: 0};\n\n var line;\n var docRow = 0;\n var docColumn = 0;\n var column;\n var row = 0;\n var rowLength = 0;\n\n var rowCache = this.$screenRowCache;\n var i = this.$getRowCacheIndex(rowCache, screenRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var docRow = this.$docRowCache[i];\n var doCache = screenRow > rowCache[l - 1];\n } else {\n var doCache = !l;\n }\n\n var maxRow = this.getLength() - 1;\n var foldLine = this.getNextFoldLine(docRow);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (row <= screenRow) {\n rowLength = this.getRowLength(docRow);\n if (row + rowLength > screenRow || docRow >= maxRow) {\n break;\n } else {\n row += rowLength;\n docRow++;\n if (docRow > foldStart) {\n docRow = foldLine.end.row+1;\n foldLine = this.getNextFoldLine(docRow, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n }\n\n if (doCache) {\n this.$docRowCache.push(docRow);\n this.$screenRowCache.push(row);\n }\n }\n\n if (foldLine && foldLine.start.row <= docRow) {\n line = this.getFoldDisplayLine(foldLine);\n docRow = foldLine.start.row;\n } else if (row + rowLength <= screenRow || docRow > maxRow) {\n return {\n row: maxRow,\n column: this.getLine(maxRow).length\n };\n } else {\n line = this.getLine(docRow);\n foldLine = null;\n }\n var wrapIndent = 0, splitIndex = Math.floor(screenRow - row);\n if (this.$useWrapMode) {\n var splits = this.$wrapData[docRow];\n if (splits) {\n column = splits[splitIndex];\n if(splitIndex > 0 && splits.length) {\n wrapIndent = splits.indent;\n docColumn = splits[splitIndex - 1] || splits[splits.length - 1];\n line = line.substring(docColumn);\n }\n }\n }\n\n if (offsetX !== undefined && this.$bidiHandler.isBidiRow(row + splitIndex, docRow, splitIndex))\n screenColumn = this.$bidiHandler.offsetToCol(offsetX);\n\n docColumn += this.$getStringScreenWidth(line, screenColumn - wrapIndent)[1];\n if (this.$useWrapMode && docColumn >= column)\n docColumn = column - 1;\n\n if (foldLine)\n return foldLine.idxToPosition(docColumn);\n\n return {row: docRow, column: docColumn};\n };\n this.documentToScreenPosition = function(docRow, docColumn) {\n if (typeof docColumn === \"undefined\")\n var pos = this.$clipPositionToDocument(docRow.row, docRow.column);\n else\n pos = this.$clipPositionToDocument(docRow, docColumn);\n\n docRow = pos.row;\n docColumn = pos.column;\n\n var screenRow = 0;\n var foldStartRow = null;\n var fold = null;\n fold = this.getFoldAt(docRow, docColumn, 1);\n if (fold) {\n docRow = fold.start.row;\n docColumn = fold.start.column;\n }\n\n var rowEnd, row = 0;\n\n\n var rowCache = this.$docRowCache;\n var i = this.$getRowCacheIndex(rowCache, docRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var screenRow = this.$screenRowCache[i];\n var doCache = docRow > rowCache[l - 1];\n } else {\n var doCache = !l;\n }\n\n var foldLine = this.getNextFoldLine(row);\n var foldStart = foldLine ?foldLine.start.row :Infinity;\n\n while (row < docRow) {\n if (row >= foldStart) {\n rowEnd = foldLine.end.row + 1;\n if (rowEnd > docRow)\n break;\n foldLine = this.getNextFoldLine(rowEnd, foldLine);\n foldStart = foldLine ?foldLine.start.row :Infinity;\n }\n else {\n rowEnd = row + 1;\n }\n\n screenRow += this.getRowLength(row);\n row = rowEnd;\n\n if (doCache) {\n this.$docRowCache.push(row);\n this.$screenRowCache.push(screenRow);\n }\n }\n var textLine = \"\";\n if (foldLine && row >= foldStart) {\n textLine = this.getFoldDisplayLine(foldLine, docRow, docColumn);\n foldStartRow = foldLine.start.row;\n } else {\n textLine = this.getLine(docRow).substring(0, docColumn);\n foldStartRow = docRow;\n }\n var wrapIndent = 0;\n if (this.$useWrapMode) {\n var wrapRow = this.$wrapData[foldStartRow];\n if (wrapRow) {\n var screenRowOffset = 0;\n while (textLine.length >= wrapRow[screenRowOffset]) {\n screenRow ++;\n screenRowOffset++;\n }\n textLine = textLine.substring(\n wrapRow[screenRowOffset - 1] || 0, textLine.length\n );\n wrapIndent = screenRowOffset > 0 ? wrapRow.indent : 0;\n }\n }\n\n return {\n row: screenRow,\n column: wrapIndent + this.$getStringScreenWidth(textLine)[0]\n };\n };\n this.documentToScreenColumn = function(row, docColumn) {\n return this.documentToScreenPosition(row, docColumn).column;\n };\n this.documentToScreenRow = function(docRow, docColumn) {\n return this.documentToScreenPosition(docRow, docColumn).row;\n };\n this.getScreenLength = function() {\n var screenRows = 0;\n var fold = null;\n if (!this.$useWrapMode) {\n screenRows = this.getLength();\n var foldData = this.$foldData;\n for (var i = 0; i < foldData.length; i++) {\n fold = foldData[i];\n screenRows -= fold.end.row - fold.start.row;\n }\n } else {\n var lastRow = this.$wrapData.length;\n var row = 0, i = 0;\n var fold = this.$foldData[i++];\n var foldStart = fold ? fold.start.row :Infinity;\n\n while (row < lastRow) {\n var splits = this.$wrapData[row];\n screenRows += splits ? splits.length + 1 : 1;\n row ++;\n if (row > foldStart) {\n row = fold.end.row+1;\n fold = this.$foldData[i++];\n foldStart = fold ?fold.start.row :Infinity;\n }\n }\n }\n if (this.lineWidgets)\n screenRows += this.$getWidgetScreenLength();\n\n return screenRows;\n };\n this.$setFontMetrics = function(fm) {\n if (!this.$enableVarChar) return;\n this.$getStringScreenWidth = function(str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn === 0)\n return [0, 0];\n if (!maxScreenColumn)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n \n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charAt(column);\n if (c === \"\\t\") {\n screenColumn += this.getScreenTabSize(screenColumn);\n } else {\n screenColumn += fm.getCharacterWidth(c);\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n \n return [screenColumn, column];\n };\n };\n \n this.destroy = function() {\n if (this.bgTokenizer) {\n this.bgTokenizer.setDocument(null);\n this.bgTokenizer = null;\n }\n this.$stopWorker();\n };\n\n this.isFullWidth = isFullWidth;\n function isFullWidth(c) {\n if (c < 0x1100)\n return false;\n return c >= 0x1100 && c <= 0x115F ||\n c >= 0x11A3 && c <= 0x11A7 ||\n c >= 0x11FA && c <= 0x11FF ||\n c >= 0x2329 && c <= 0x232A ||\n c >= 0x2E80 && c <= 0x2E99 ||\n c >= 0x2E9B && c <= 0x2EF3 ||\n c >= 0x2F00 && c <= 0x2FD5 ||\n c >= 0x2FF0 && c <= 0x2FFB ||\n c >= 0x3000 && c <= 0x303E ||\n c >= 0x3041 && c <= 0x3096 ||\n c >= 0x3099 && c <= 0x30FF ||\n c >= 0x3105 && c <= 0x312D ||\n c >= 0x3131 && c <= 0x318E ||\n c >= 0x3190 && c <= 0x31BA ||\n c >= 0x31C0 && c <= 0x31E3 ||\n c >= 0x31F0 && c <= 0x321E ||\n c >= 0x3220 && c <= 0x3247 ||\n c >= 0x3250 && c <= 0x32FE ||\n c >= 0x3300 && c <= 0x4DBF ||\n c >= 0x4E00 && c <= 0xA48C ||\n c >= 0xA490 && c <= 0xA4C6 ||\n c >= 0xA960 && c <= 0xA97C ||\n c >= 0xAC00 && c <= 0xD7A3 ||\n c >= 0xD7B0 && c <= 0xD7C6 ||\n c >= 0xD7CB && c <= 0xD7FB ||\n c >= 0xF900 && c <= 0xFAFF ||\n c >= 0xFE10 && c <= 0xFE19 ||\n c >= 0xFE30 && c <= 0xFE52 ||\n c >= 0xFE54 && c <= 0xFE66 ||\n c >= 0xFE68 && c <= 0xFE6B ||\n c >= 0xFF01 && c <= 0xFF60 ||\n c >= 0xFFE0 && c <= 0xFFE6;\n }\n\n}).call(EditSession.prototype);\n\nacequire(\"./edit_session/folding\").Folding.call(EditSession.prototype);\nacequire(\"./edit_session/bracket_match\").BracketMatch.call(EditSession.prototype);\n\n\nconfig.defineOptions(EditSession.prototype, \"session\", {\n wrap: {\n set: function(value) {\n if (!value || value == \"off\")\n value = false;\n else if (value == \"free\")\n value = true;\n else if (value == \"printMargin\")\n value = -1;\n else if (typeof value == \"string\")\n value = parseInt(value, 10) || false;\n\n if (this.$wrap == value)\n return;\n this.$wrap = value;\n if (!value) {\n this.setUseWrapMode(false);\n } else {\n var col = typeof value == \"number\" ? value : null;\n this.setWrapLimitRange(col, col);\n this.setUseWrapMode(true);\n }\n },\n get: function() {\n if (this.getUseWrapMode()) {\n if (this.$wrap == -1)\n return \"printMargin\";\n if (!this.getWrapLimitRange().min)\n return \"free\";\n return this.$wrap;\n }\n return \"off\";\n },\n handlesSet: true\n }, \n wrapMethod: {\n set: function(val) {\n val = val == \"auto\"\n ? this.$mode.type != \"text\"\n : val != \"text\";\n if (val != this.$wrapAsCode) {\n this.$wrapAsCode = val;\n if (this.$useWrapMode) {\n this.$modified = true;\n this.$resetRowCache(0);\n this.$updateWrapData(0, this.getLength() - 1);\n }\n }\n },\n initialValue: \"auto\"\n },\n indentedSoftWrap: { initialValue: true },\n firstLineNumber: {\n set: function() {this._signal(\"changeBreakpoint\");},\n initialValue: 1\n },\n useWorker: {\n set: function(useWorker) {\n this.$useWorker = useWorker;\n\n this.$stopWorker();\n if (useWorker)\n this.$startWorker();\n },\n initialValue: true\n },\n useSoftTabs: {initialValue: true},\n tabSize: {\n set: function(tabSize) {\n if (isNaN(tabSize) || this.$tabSize === tabSize) return;\n\n this.$modified = true;\n this.$rowLengthCache = [];\n this.$tabSize = tabSize;\n this._signal(\"changeTabSize\");\n },\n initialValue: 4,\n handlesSet: true\n },\n navigateWithinSoftTabs: {initialValue: false},\n overwrite: {\n set: function(val) {this._signal(\"changeOverwrite\");},\n initialValue: false\n },\n newLineMode: {\n set: function(val) {this.doc.setNewLineMode(val);},\n get: function() {return this.doc.getNewLineMode();},\n handlesSet: true\n },\n mode: {\n set: function(val) { this.setMode(val); },\n get: function() { return this.$modeId; }\n }\n});\n\nexports.EditSession = EditSession;\n});\n\nace.define(\"ace/search\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"./lib/lang\");\nvar oop = acequire(\"./lib/oop\");\nvar Range = acequire(\"./range\").Range;\n\nvar Search = function() {\n this.$options = {};\n};\n\n(function() {\n this.set = function(options) {\n oop.mixin(this.$options, options);\n return this;\n };\n this.getOptions = function() {\n return lang.copyObject(this.$options);\n };\n this.setOptions = function(options) {\n this.$options = options;\n };\n this.find = function(session) {\n var options = this.$options;\n var iterator = this.$matchIterator(session, options);\n if (!iterator)\n return false;\n\n var firstRange = null;\n iterator.forEach(function(sr, sc, er, ec) {\n firstRange = new Range(sr, sc, er, ec);\n if (sc == ec && options.start && options.start.start\n && options.skipCurrent != false && firstRange.isEqual(options.start)\n ) {\n firstRange = null;\n return false;\n }\n\n return true;\n });\n\n return firstRange;\n };\n this.findAll = function(session) {\n var options = this.$options;\n if (!options.needle)\n return [];\n this.$assembleRegExp(options);\n\n var range = options.range;\n var lines = range\n ? session.getLines(range.start.row, range.end.row)\n : session.doc.getAllLines();\n\n var ranges = [];\n var re = options.re;\n if (options.$isMultiLine) {\n var len = re.length;\n var maxRow = lines.length - len;\n var prevRange;\n outer: for (var row = re.offset || 0; row <= maxRow; row++) {\n for (var j = 0; j < len; j++)\n if (lines[row + j].search(re[j]) == -1)\n continue outer;\n \n var startLine = lines[row];\n var line = lines[row + len - 1];\n var startIndex = startLine.length - startLine.match(re[0])[0].length;\n var endIndex = line.match(re[len - 1])[0].length;\n \n if (prevRange && prevRange.end.row === row &&\n prevRange.end.column > startIndex\n ) {\n continue;\n }\n ranges.push(prevRange = new Range(\n row, startIndex, row + len - 1, endIndex\n ));\n if (len > 2)\n row = row + len - 2;\n }\n } else {\n for (var i = 0; i < lines.length; i++) {\n var matches = lang.getMatchOffsets(lines[i], re);\n for (var j = 0; j < matches.length; j++) {\n var match = matches[j];\n ranges.push(new Range(i, match.offset, i, match.offset + match.length));\n }\n }\n }\n\n if (range) {\n var startColumn = range.start.column;\n var endColumn = range.start.column;\n var i = 0, j = ranges.length - 1;\n while (i < j && ranges[i].start.column < startColumn && ranges[i].start.row == range.start.row)\n i++;\n\n while (i < j && ranges[j].end.column > endColumn && ranges[j].end.row == range.end.row)\n j--;\n \n ranges = ranges.slice(i, j + 1);\n for (i = 0, j = ranges.length; i < j; i++) {\n ranges[i].start.row += range.start.row;\n ranges[i].end.row += range.start.row;\n }\n }\n\n return ranges;\n };\n this.replace = function(input, replacement) {\n var options = this.$options;\n\n var re = this.$assembleRegExp(options);\n if (options.$isMultiLine)\n return replacement;\n\n if (!re)\n return;\n\n var match = re.exec(input);\n if (!match || match[0].length != input.length)\n return null;\n \n replacement = input.replace(re, replacement);\n if (options.preserveCase) {\n replacement = replacement.split(\"\");\n for (var i = Math.min(input.length, input.length); i--; ) {\n var ch = input[i];\n if (ch && ch.toLowerCase() != ch)\n replacement[i] = replacement[i].toUpperCase();\n else\n replacement[i] = replacement[i].toLowerCase();\n }\n replacement = replacement.join(\"\");\n }\n \n return replacement;\n };\n\n this.$assembleRegExp = function(options, $disableFakeMultiline) {\n if (options.needle instanceof RegExp)\n return options.re = options.needle;\n\n var needle = options.needle;\n\n if (!options.needle)\n return options.re = false;\n\n if (!options.regExp)\n needle = lang.escapeRegExp(needle);\n\n if (options.wholeWord)\n needle = addWordBoundary(needle, options);\n\n var modifier = options.caseSensitive ? \"gm\" : \"gmi\";\n\n options.$isMultiLine = !$disableFakeMultiline && /[\\n\\r]/.test(needle);\n if (options.$isMultiLine)\n return options.re = this.$assembleMultilineRegExp(needle, modifier);\n\n try {\n var re = new RegExp(needle, modifier);\n } catch(e) {\n re = false;\n }\n return options.re = re;\n };\n\n this.$assembleMultilineRegExp = function(needle, modifier) {\n var parts = needle.replace(/\\r\\n|\\r|\\n/g, \"$\\n^\").split(\"\\n\");\n var re = [];\n for (var i = 0; i < parts.length; i++) try {\n re.push(new RegExp(parts[i], modifier));\n } catch(e) {\n return false;\n }\n return re;\n };\n\n this.$matchIterator = function(session, options) {\n var re = this.$assembleRegExp(options);\n if (!re)\n return false;\n var backwards = options.backwards == true;\n var skipCurrent = options.skipCurrent != false;\n\n var range = options.range;\n var start = options.start;\n if (!start)\n start = range ? range[backwards ? \"end\" : \"start\"] : session.selection.getRange();\n \n if (start.start)\n start = start[skipCurrent != backwards ? \"end\" : \"start\"];\n\n var firstRow = range ? range.start.row : 0;\n var lastRow = range ? range.end.row : session.getLength() - 1;\n\n if (backwards) {\n var forEach = function(callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row--; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = lastRow, firstRow = start.row; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n };\n }\n else {\n var forEach = function(callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row = row + 1; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = firstRow, lastRow = start.row; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n };\n }\n \n if (options.$isMultiLine) {\n var len = re.length;\n var forEachInLine = function(row, offset, callback) {\n var startRow = backwards ? row - len + 1 : row;\n if (startRow < 0) return;\n var line = session.getLine(startRow);\n var startIndex = line.search(re[0]);\n if (!backwards && startIndex < offset || startIndex === -1) return;\n for (var i = 1; i < len; i++) {\n line = session.getLine(startRow + i);\n if (line.search(re[i]) == -1)\n return;\n }\n var endIndex = line.match(re[len - 1])[0].length;\n if (backwards && endIndex > offset) return;\n if (callback(startRow, startIndex, startRow + len - 1, endIndex))\n return true;\n };\n }\n else if (backwards) {\n var forEachInLine = function(row, endIndex, callback) {\n var line = session.getLine(row);\n var matches = [];\n var m, last = 0;\n re.lastIndex = 0;\n while((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (!length) {\n if (last >= line.length) break;\n re.lastIndex = last += 1;\n }\n if (m.index + length > endIndex)\n break;\n matches.push(m.index, length);\n }\n for (var i = matches.length - 1; i >= 0; i -= 2) {\n var column = matches[i - 1];\n var length = matches[i];\n if (callback(row, column, row, column + length))\n return true;\n }\n };\n }\n else {\n var forEachInLine = function(row, startIndex, callback) {\n var line = session.getLine(row);\n var m;\n var last = startIndex;\n re.lastIndex = startIndex;\n while((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (callback(row, last, row,last + length))\n return true;\n if (!length) {\n re.lastIndex = last += 1;\n if (last >= line.length) return false;\n }\n }\n };\n }\n return {forEach: forEach};\n };\n\n}).call(Search.prototype);\n\nfunction addWordBoundary(needle, options) {\n function wordBoundary(c) {\n if (/\\w/.test(c) || options.regExp) return \"\\\\b\";\n return \"\";\n }\n return wordBoundary(needle[0]) + needle\n + wordBoundary(needle[needle.length - 1]);\n}\n\nexports.Search = Search;\n});\n\nace.define(\"ace/keyboard/hash_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar keyUtil = acequire(\"../lib/keys\");\nvar useragent = acequire(\"../lib/useragent\");\nvar KEY_MODS = keyUtil.KEY_MODS;\n\nfunction HashHandler(config, platform) {\n this.platform = platform || (useragent.isMac ? \"mac\" : \"win\");\n this.commands = {};\n this.commandKeyBinding = {};\n this.addCommands(config);\n this.$singleCommand = true;\n}\n\nfunction MultiHashHandler(config, platform) {\n HashHandler.call(this, config, platform);\n this.$singleCommand = false;\n}\n\nMultiHashHandler.prototype = HashHandler.prototype;\n\n(function() {\n \n\n this.addCommand = function(command) {\n if (this.commands[command.name])\n this.removeCommand(command);\n\n this.commands[command.name] = command;\n\n if (command.bindKey)\n this._buildKeyHash(command);\n };\n\n this.removeCommand = function(command, keepCommand) {\n var name = command && (typeof command === 'string' ? command : command.name);\n command = this.commands[name];\n if (!keepCommand)\n delete this.commands[name];\n var ckb = this.commandKeyBinding;\n for (var keyId in ckb) {\n var cmdGroup = ckb[keyId];\n if (cmdGroup == command) {\n delete ckb[keyId];\n } else if (Array.isArray(cmdGroup)) {\n var i = cmdGroup.indexOf(command);\n if (i != -1) {\n cmdGroup.splice(i, 1);\n if (cmdGroup.length == 1)\n ckb[keyId] = cmdGroup[0];\n }\n }\n }\n };\n\n this.bindKey = function(key, command, position) {\n if (typeof key == \"object\" && key) {\n if (position == undefined)\n position = key.position;\n key = key[this.platform];\n }\n if (!key)\n return;\n if (typeof command == \"function\")\n return this.addCommand({exec: command, bindKey: key, name: command.name || key});\n \n key.split(\"|\").forEach(function(keyPart) {\n var chain = \"\";\n if (keyPart.indexOf(\" \") != -1) {\n var parts = keyPart.split(/\\s+/);\n keyPart = parts.pop();\n parts.forEach(function(keyPart) {\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n chain += (chain ? \" \" : \"\") + id;\n this._addCommandToBinding(chain, \"chainKeys\");\n }, this);\n chain += \" \";\n }\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n this._addCommandToBinding(chain + id, command, position);\n }, this);\n };\n \n function getPosition(command) {\n return typeof command == \"object\" && command.bindKey\n && command.bindKey.position\n || (command.isDefault ? -100 : 0);\n }\n this._addCommandToBinding = function(keyId, command, position) {\n var ckb = this.commandKeyBinding, i;\n if (!command) {\n delete ckb[keyId];\n } else if (!ckb[keyId] || this.$singleCommand) {\n ckb[keyId] = command;\n } else {\n if (!Array.isArray(ckb[keyId])) {\n ckb[keyId] = [ckb[keyId]];\n } else if ((i = ckb[keyId].indexOf(command)) != -1) {\n ckb[keyId].splice(i, 1);\n }\n\n if (typeof position != \"number\") {\n position = getPosition(command);\n }\n\n var commands = ckb[keyId];\n for (i = 0; i < commands.length; i++) {\n var other = commands[i];\n var otherPos = getPosition(other);\n if (otherPos > position)\n break;\n }\n commands.splice(i, 0, command);\n }\n };\n\n this.addCommands = function(commands) {\n commands && Object.keys(commands).forEach(function(name) {\n var command = commands[name];\n if (!command)\n return;\n \n if (typeof command === \"string\")\n return this.bindKey(command, name);\n\n if (typeof command === \"function\")\n command = { exec: command };\n\n if (typeof command !== \"object\")\n return;\n\n if (!command.name)\n command.name = name;\n\n this.addCommand(command);\n }, this);\n };\n\n this.removeCommands = function(commands) {\n Object.keys(commands).forEach(function(name) {\n this.removeCommand(commands[name]);\n }, this);\n };\n\n this.bindKeys = function(keyList) {\n Object.keys(keyList).forEach(function(key) {\n this.bindKey(key, keyList[key]);\n }, this);\n };\n\n this._buildKeyHash = function(command) {\n this.bindKey(command.bindKey, command);\n };\n this.parseKeys = function(keys) {\n var parts = keys.toLowerCase().split(/[\\-\\+]([\\-\\+])?/).filter(function(x){return x;});\n var key = parts.pop();\n\n var keyCode = keyUtil[key];\n if (keyUtil.FUNCTION_KEYS[keyCode])\n key = keyUtil.FUNCTION_KEYS[keyCode].toLowerCase();\n else if (!parts.length)\n return {key: key, hashId: -1};\n else if (parts.length == 1 && parts[0] == \"shift\")\n return {key: key.toUpperCase(), hashId: -1};\n\n var hashId = 0;\n for (var i = parts.length; i--;) {\n var modifier = keyUtil.KEY_MODS[parts[i]];\n if (modifier == null) {\n if (typeof console != \"undefined\")\n console.error(\"invalid modifier \" + parts[i] + \" in \" + keys);\n return false;\n }\n hashId |= modifier;\n }\n return {key: key, hashId: hashId};\n };\n\n this.findKeyCommand = function findKeyCommand(hashId, keyString) {\n var key = KEY_MODS[hashId] + keyString;\n return this.commandKeyBinding[key];\n };\n\n this.handleKeyboard = function(data, hashId, keyString, keyCode) {\n if (keyCode < 0) return;\n var key = KEY_MODS[hashId] + keyString;\n var command = this.commandKeyBinding[key];\n if (data.$keyChain) {\n data.$keyChain += \" \" + key;\n command = this.commandKeyBinding[data.$keyChain] || command;\n }\n \n if (command) {\n if (command == \"chainKeys\" || command[command.length - 1] == \"chainKeys\") {\n data.$keyChain = data.$keyChain || key;\n return {command: \"null\"};\n }\n }\n \n if (data.$keyChain) {\n if ((!hashId || hashId == 4) && keyString.length == 1)\n data.$keyChain = data.$keyChain.slice(0, -key.length - 1); // wait for input\n else if (hashId == -1 || keyCode > 0)\n data.$keyChain = \"\"; // reset keyChain\n }\n return {command: command};\n };\n \n this.getStatusText = function(editor, data) {\n return data.$keyChain || \"\";\n };\n\n}).call(HashHandler.prototype);\n\nexports.HashHandler = HashHandler;\nexports.MultiHashHandler = MultiHashHandler;\n});\n\nace.define(\"ace/commands/command_manager\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar MultiHashHandler = acequire(\"../keyboard/hash_handler\").MultiHashHandler;\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar CommandManager = function(platform, commands) {\n MultiHashHandler.call(this, commands, platform);\n this.byName = this.commands;\n this.setDefaultHandler(\"exec\", function(e) {\n return e.command.exec(e.editor, e.args || {});\n });\n};\n\noop.inherits(CommandManager, MultiHashHandler);\n\n(function() {\n\n oop.implement(this, EventEmitter);\n\n this.exec = function(command, editor, args) {\n if (Array.isArray(command)) {\n for (var i = command.length; i--; ) {\n if (this.exec(command[i], editor, args)) return true;\n }\n return false;\n }\n\n if (typeof command === \"string\")\n command = this.commands[command];\n\n if (!command)\n return false;\n\n if (editor && editor.$readOnly && !command.readOnly)\n return false;\n\n if (command.isAvailable && !command.isAvailable(editor))\n return false;\n\n var e = {editor: editor, command: command, args: args};\n e.returnValue = this._emit(\"exec\", e);\n this._signal(\"afterExec\", e);\n\n return e.returnValue === false ? false : true;\n };\n\n this.toggleRecording = function(editor) {\n if (this.$inReplay)\n return;\n\n editor && editor._emit(\"changeStatus\");\n if (this.recording) {\n this.macro.pop();\n this.removeEventListener(\"exec\", this.$addCommandToMacro);\n\n if (!this.macro.length)\n this.macro = this.oldMacro;\n\n return this.recording = false;\n }\n if (!this.$addCommandToMacro) {\n this.$addCommandToMacro = function(e) {\n this.macro.push([e.command, e.args]);\n }.bind(this);\n }\n\n this.oldMacro = this.macro;\n this.macro = [];\n this.on(\"exec\", this.$addCommandToMacro);\n return this.recording = true;\n };\n\n this.replay = function(editor) {\n if (this.$inReplay || !this.macro)\n return;\n\n if (this.recording)\n return this.toggleRecording(editor);\n\n try {\n this.$inReplay = true;\n this.macro.forEach(function(x) {\n if (typeof x == \"string\")\n this.exec(x, editor);\n else\n this.exec(x[0], editor, x[1]);\n }, this);\n } finally {\n this.$inReplay = false;\n }\n };\n\n this.trimMacro = function(m) {\n return m.map(function(x){\n if (typeof x[0] != \"string\")\n x[0] = x[0].name;\n if (!x[1])\n x = x[0];\n return x;\n });\n };\n\n}).call(CommandManager.prototype);\n\nexports.CommandManager = CommandManager;\n\n});\n\nace.define(\"ace/commands/default_commands\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/config\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"../lib/lang\");\nvar config = acequire(\"../config\");\nvar Range = acequire(\"../range\").Range;\n\nfunction bindKey(win, mac) {\n return {win: win, mac: mac};\n}\nexports.commands = [{\n name: \"showSettingsMenu\",\n bindKey: bindKey(\"Ctrl-,\", \"Command-,\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/settings_menu\", function(module) {\n module.init(editor);\n editor.showSettingsMenu();\n });\n },\n readOnly: true\n}, {\n name: \"goToNextError\",\n bindKey: bindKey(\"Alt-E\", \"F4\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/error_marker\", function(module) {\n module.showErrorMarker(editor, 1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"goToPreviousError\",\n bindKey: bindKey(\"Alt-Shift-E\", \"Shift-F4\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/error_marker\", function(module) {\n module.showErrorMarker(editor, -1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"selectall\",\n bindKey: bindKey(\"Ctrl-A\", \"Command-A\"),\n exec: function(editor) { editor.selectAll(); },\n readOnly: true\n}, {\n name: \"centerselection\",\n bindKey: bindKey(null, \"Ctrl-L\"),\n exec: function(editor) { editor.centerSelection(); },\n readOnly: true\n}, {\n name: \"gotoline\",\n bindKey: bindKey(\"Ctrl-L\", \"Command-L\"),\n exec: function(editor) {\n var line = parseInt(prompt(\"Enter line number:\"), 10);\n if (!isNaN(line)) {\n editor.gotoLine(line);\n }\n },\n readOnly: true\n}, {\n name: \"fold\",\n bindKey: bindKey(\"Alt-L|Ctrl-F1\", \"Command-Alt-L|Command-F1\"),\n exec: function(editor) { editor.session.toggleFold(false); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"unfold\",\n bindKey: bindKey(\"Alt-Shift-L|Ctrl-Shift-F1\", \"Command-Alt-Shift-L|Command-Shift-F1\"),\n exec: function(editor) { editor.session.toggleFold(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"toggleFoldWidget\",\n bindKey: bindKey(\"F2\", \"F2\"),\n exec: function(editor) { editor.session.toggleFoldWidget(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"toggleParentFoldWidget\",\n bindKey: bindKey(\"Alt-F2\", \"Alt-F2\"),\n exec: function(editor) { editor.session.toggleFoldWidget(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"foldall\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function(editor) { editor.session.foldAll(); },\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"foldOther\",\n bindKey: bindKey(\"Alt-0\", \"Command-Option-0\"),\n exec: function(editor) { \n editor.session.foldAll();\n editor.session.unfold(editor.selection.getAllRanges());\n },\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"unfoldall\",\n bindKey: bindKey(\"Alt-Shift-0\", \"Command-Option-Shift-0\"),\n exec: function(editor) { editor.session.unfold(); },\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"findnext\",\n bindKey: bindKey(\"Ctrl-K\", \"Command-G\"),\n exec: function(editor) { editor.findNext(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"findprevious\",\n bindKey: bindKey(\"Ctrl-Shift-K\", \"Command-Shift-G\"),\n exec: function(editor) { editor.findPrevious(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"selectOrFindNext\",\n bindKey: bindKey(\"Alt-K\", \"Ctrl-G\"),\n exec: function(editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findNext(); \n },\n readOnly: true\n}, {\n name: \"selectOrFindPrevious\",\n bindKey: bindKey(\"Alt-Shift-K\", \"Ctrl-Shift-G\"),\n exec: function(editor) { \n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findPrevious();\n },\n readOnly: true\n}, {\n name: \"find\",\n bindKey: bindKey(\"Ctrl-F\", \"Command-F\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/searchbox\", function(e) {e.Search(editor);});\n },\n readOnly: true\n}, {\n name: \"overwrite\",\n bindKey: \"Insert\",\n exec: function(editor) { editor.toggleOverwrite(); },\n readOnly: true\n}, {\n name: \"selecttostart\",\n bindKey: bindKey(\"Ctrl-Shift-Home\", \"Command-Shift-Home|Command-Shift-Up\"),\n exec: function(editor) { editor.getSelection().selectFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"gotostart\",\n bindKey: bindKey(\"Ctrl-Home\", \"Command-Home|Command-Up\"),\n exec: function(editor) { editor.navigateFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"selectup\",\n bindKey: bindKey(\"Shift-Up\", \"Shift-Up|Ctrl-Shift-P\"),\n exec: function(editor) { editor.getSelection().selectUp(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"golineup\",\n bindKey: bindKey(\"Up\", \"Up|Ctrl-P\"),\n exec: function(editor, args) { editor.navigateUp(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selecttoend\",\n bindKey: bindKey(\"Ctrl-Shift-End\", \"Command-Shift-End|Command-Shift-Down\"),\n exec: function(editor) { editor.getSelection().selectFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"gotoend\",\n bindKey: bindKey(\"Ctrl-End\", \"Command-End|Command-Down\"),\n exec: function(editor) { editor.navigateFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"selectdown\",\n bindKey: bindKey(\"Shift-Down\", \"Shift-Down|Ctrl-Shift-N\"),\n exec: function(editor) { editor.getSelection().selectDown(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"golinedown\",\n bindKey: bindKey(\"Down\", \"Down|Ctrl-N\"),\n exec: function(editor, args) { editor.navigateDown(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectwordleft\",\n bindKey: bindKey(\"Ctrl-Shift-Left\", \"Option-Shift-Left\"),\n exec: function(editor) { editor.getSelection().selectWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotowordleft\",\n bindKey: bindKey(\"Ctrl-Left\", \"Option-Left\"),\n exec: function(editor) { editor.navigateWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selecttolinestart\",\n bindKey: bindKey(\"Alt-Shift-Left\", \"Command-Shift-Left|Ctrl-Shift-A\"),\n exec: function(editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotolinestart\",\n bindKey: bindKey(\"Alt-Left|Home\", \"Command-Left|Home|Ctrl-A\"),\n exec: function(editor) { editor.navigateLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectleft\",\n bindKey: bindKey(\"Shift-Left\", \"Shift-Left|Ctrl-Shift-B\"),\n exec: function(editor) { editor.getSelection().selectLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotoleft\",\n bindKey: bindKey(\"Left\", \"Left|Ctrl-B\"),\n exec: function(editor, args) { editor.navigateLeft(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectwordright\",\n bindKey: bindKey(\"Ctrl-Shift-Right\", \"Option-Shift-Right\"),\n exec: function(editor) { editor.getSelection().selectWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotowordright\",\n bindKey: bindKey(\"Ctrl-Right\", \"Option-Right\"),\n exec: function(editor) { editor.navigateWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selecttolineend\",\n bindKey: bindKey(\"Alt-Shift-Right\", \"Command-Shift-Right|Shift-End|Ctrl-Shift-E\"),\n exec: function(editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotolineend\",\n bindKey: bindKey(\"Alt-Right|End\", \"Command-Right|End|Ctrl-E\"),\n exec: function(editor) { editor.navigateLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectright\",\n bindKey: bindKey(\"Shift-Right\", \"Shift-Right\"),\n exec: function(editor) { editor.getSelection().selectRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotoright\",\n bindKey: bindKey(\"Right\", \"Right|Ctrl-F\"),\n exec: function(editor, args) { editor.navigateRight(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectpagedown\",\n bindKey: \"Shift-PageDown\",\n exec: function(editor) { editor.selectPageDown(); },\n readOnly: true\n}, {\n name: \"pagedown\",\n bindKey: bindKey(null, \"Option-PageDown\"),\n exec: function(editor) { editor.scrollPageDown(); },\n readOnly: true\n}, {\n name: \"gotopagedown\",\n bindKey: bindKey(\"PageDown\", \"PageDown|Ctrl-V\"),\n exec: function(editor) { editor.gotoPageDown(); },\n readOnly: true\n}, {\n name: \"selectpageup\",\n bindKey: \"Shift-PageUp\",\n exec: function(editor) { editor.selectPageUp(); },\n readOnly: true\n}, {\n name: \"pageup\",\n bindKey: bindKey(null, \"Option-PageUp\"),\n exec: function(editor) { editor.scrollPageUp(); },\n readOnly: true\n}, {\n name: \"gotopageup\",\n bindKey: \"PageUp\",\n exec: function(editor) { editor.gotoPageUp(); },\n readOnly: true\n}, {\n name: \"scrollup\",\n bindKey: bindKey(\"Ctrl-Up\", null),\n exec: function(e) { e.renderer.scrollBy(0, -2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n}, {\n name: \"scrolldown\",\n bindKey: bindKey(\"Ctrl-Down\", null),\n exec: function(e) { e.renderer.scrollBy(0, 2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n}, {\n name: \"selectlinestart\",\n bindKey: \"Shift-Home\",\n exec: function(editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectlineend\",\n bindKey: \"Shift-End\",\n exec: function(editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"togglerecording\",\n bindKey: bindKey(\"Ctrl-Alt-E\", \"Command-Option-E\"),\n exec: function(editor) { editor.commands.toggleRecording(editor); },\n readOnly: true\n}, {\n name: \"replaymacro\",\n bindKey: bindKey(\"Ctrl-Shift-E\", \"Command-Shift-E\"),\n exec: function(editor) { editor.commands.replay(editor); },\n readOnly: true\n}, {\n name: \"jumptomatching\",\n bindKey: bindKey(\"Ctrl-P\", \"Ctrl-P\"),\n exec: function(editor) { editor.jumpToMatching(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"selecttomatching\",\n bindKey: bindKey(\"Ctrl-Shift-P\", \"Ctrl-Shift-P\"),\n exec: function(editor) { editor.jumpToMatching(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"expandToMatching\",\n bindKey: bindKey(\"Ctrl-Shift-M\", \"Ctrl-Shift-M\"),\n exec: function(editor) { editor.jumpToMatching(true, true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"passKeysToBrowser\",\n bindKey: bindKey(null, null),\n exec: function() {},\n passEvent: true,\n readOnly: true\n}, {\n name: \"copy\",\n exec: function(editor) {\n },\n readOnly: true\n},\n{\n name: \"cut\",\n exec: function(editor) {\n var range = editor.getSelectionRange();\n editor._emit(\"cut\", range);\n\n if (!editor.selection.isEmpty()) {\n editor.session.remove(range);\n editor.clearSelection();\n }\n },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"paste\",\n exec: function(editor, args) {\n editor.$handlePaste(args);\n },\n scrollIntoView: \"cursor\"\n}, {\n name: \"removeline\",\n bindKey: bindKey(\"Ctrl-D\", \"Command-D\"),\n exec: function(editor) { editor.removeLines(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEachLine\"\n}, {\n name: \"duplicateSelection\",\n bindKey: bindKey(\"Ctrl-Shift-D\", \"Command-Shift-D\"),\n exec: function(editor) { editor.duplicateSelection(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"sortlines\",\n bindKey: bindKey(\"Ctrl-Alt-S\", \"Command-Alt-S\"),\n exec: function(editor) { editor.sortLines(); },\n scrollIntoView: \"selection\",\n multiSelectAction: \"forEachLine\"\n}, {\n name: \"togglecomment\",\n bindKey: bindKey(\"Ctrl-/\", \"Command-/\"),\n exec: function(editor) { editor.toggleCommentLines(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"toggleBlockComment\",\n bindKey: bindKey(\"Ctrl-Shift-/\", \"Command-Shift-/\"),\n exec: function(editor) { editor.toggleBlockComment(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"modifyNumberUp\",\n bindKey: bindKey(\"Ctrl-Shift-Up\", \"Alt-Shift-Up\"),\n exec: function(editor) { editor.modifyNumber(1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"modifyNumberDown\",\n bindKey: bindKey(\"Ctrl-Shift-Down\", \"Alt-Shift-Down\"),\n exec: function(editor) { editor.modifyNumber(-1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"replace\",\n bindKey: bindKey(\"Ctrl-H\", \"Command-Option-F\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/searchbox\", function(e) {e.Search(editor, true);});\n }\n}, {\n name: \"undo\",\n bindKey: bindKey(\"Ctrl-Z\", \"Command-Z\"),\n exec: function(editor) { editor.undo(); }\n}, {\n name: \"redo\",\n bindKey: bindKey(\"Ctrl-Shift-Z|Ctrl-Y\", \"Command-Shift-Z|Command-Y\"),\n exec: function(editor) { editor.redo(); }\n}, {\n name: \"copylinesup\",\n bindKey: bindKey(\"Alt-Shift-Up\", \"Command-Option-Up\"),\n exec: function(editor) { editor.copyLinesUp(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"movelinesup\",\n bindKey: bindKey(\"Alt-Up\", \"Option-Up\"),\n exec: function(editor) { editor.moveLinesUp(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"copylinesdown\",\n bindKey: bindKey(\"Alt-Shift-Down\", \"Command-Option-Down\"),\n exec: function(editor) { editor.copyLinesDown(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"movelinesdown\",\n bindKey: bindKey(\"Alt-Down\", \"Option-Down\"),\n exec: function(editor) { editor.moveLinesDown(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"del\",\n bindKey: bindKey(\"Delete\", \"Delete|Ctrl-D|Shift-Delete\"),\n exec: function(editor) { editor.remove(\"right\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"backspace\",\n bindKey: bindKey(\n \"Shift-Backspace|Backspace\",\n \"Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H\"\n ),\n exec: function(editor) { editor.remove(\"left\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"cut_or_delete\",\n bindKey: bindKey(\"Shift-Delete\", null),\n exec: function(editor) { \n if (editor.selection.isEmpty()) {\n editor.remove(\"left\");\n } else {\n return false;\n }\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolinestart\",\n bindKey: bindKey(\"Alt-Backspace\", \"Command-Backspace\"),\n exec: function(editor) { editor.removeToLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolineend\",\n bindKey: bindKey(\"Alt-Delete\", \"Ctrl-K|Command-Delete\"),\n exec: function(editor) { editor.removeToLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolinestarthard\",\n bindKey: bindKey(\"Ctrl-Shift-Backspace\", null),\n exec: function(editor) {\n var range = editor.selection.getRange();\n range.start.column = 0;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolineendhard\",\n bindKey: bindKey(\"Ctrl-Shift-Delete\", null),\n exec: function(editor) {\n var range = editor.selection.getRange();\n range.end.column = Number.MAX_VALUE;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removewordleft\",\n bindKey: bindKey(\"Ctrl-Backspace\", \"Alt-Backspace|Ctrl-Alt-Backspace\"),\n exec: function(editor) { editor.removeWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removewordright\",\n bindKey: bindKey(\"Ctrl-Delete\", \"Alt-Delete\"),\n exec: function(editor) { editor.removeWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"outdent\",\n bindKey: bindKey(\"Shift-Tab\", \"Shift-Tab\"),\n exec: function(editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"indent\",\n bindKey: bindKey(\"Tab\", \"Tab\"),\n exec: function(editor) { editor.indent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"blockoutdent\",\n bindKey: bindKey(\"Ctrl-[\", \"Ctrl-[\"),\n exec: function(editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"blockindent\",\n bindKey: bindKey(\"Ctrl-]\", \"Ctrl-]\"),\n exec: function(editor) { editor.blockIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"insertstring\",\n exec: function(editor, str) { editor.insert(str); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"inserttext\",\n exec: function(editor, args) {\n editor.insert(lang.stringRepeat(args.text || \"\", args.times || 1));\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"splitline\",\n bindKey: bindKey(null, \"Ctrl-O\"),\n exec: function(editor) { editor.splitLine(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"transposeletters\",\n bindKey: bindKey(\"Alt-Shift-X\", \"Ctrl-T\"),\n exec: function(editor) { editor.transposeLetters(); },\n multiSelectAction: function(editor) {editor.transposeSelections(1); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"touppercase\",\n bindKey: bindKey(\"Ctrl-U\", \"Ctrl-U\"),\n exec: function(editor) { editor.toUpperCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"tolowercase\",\n bindKey: bindKey(\"Ctrl-Shift-U\", \"Ctrl-Shift-U\"),\n exec: function(editor) { editor.toLowerCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"expandtoline\",\n bindKey: bindKey(\"Ctrl-Shift-L\", \"Command-Shift-L\"),\n exec: function(editor) {\n var range = editor.selection.getRange();\n\n range.start.column = range.end.column = 0;\n range.end.row++;\n editor.selection.setRange(range, false);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"joinlines\",\n bindKey: bindKey(null, null),\n exec: function(editor) {\n var isBackwards = editor.selection.isBackwards();\n var selectionStart = isBackwards ? editor.selection.getSelectionLead() : editor.selection.getSelectionAnchor();\n var selectionEnd = isBackwards ? editor.selection.getSelectionAnchor() : editor.selection.getSelectionLead();\n var firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length;\n var selectedText = editor.session.doc.getTextRange(editor.selection.getRange());\n var selectedCount = selectedText.replace(/\\n\\s*/, \" \").length;\n var insertLine = editor.session.doc.getLine(selectionStart.row);\n\n for (var i = selectionStart.row + 1; i <= selectionEnd.row + 1; i++) {\n var curLine = lang.stringTrimLeft(lang.stringTrimRight(editor.session.doc.getLine(i)));\n if (curLine.length !== 0) {\n curLine = \" \" + curLine;\n }\n insertLine += curLine;\n }\n\n if (selectionEnd.row + 1 < (editor.session.doc.getLength() - 1)) {\n insertLine += editor.session.doc.getNewLineCharacter();\n }\n\n editor.clearSelection();\n editor.session.doc.replace(new Range(selectionStart.row, 0, selectionEnd.row + 2, 0), insertLine);\n\n if (selectedCount > 0) {\n editor.selection.moveCursorTo(selectionStart.row, selectionStart.column);\n editor.selection.selectTo(selectionStart.row, selectionStart.column + selectedCount);\n } else {\n firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length > firstLineEndCol ? (firstLineEndCol + 1) : firstLineEndCol;\n editor.selection.moveCursorTo(selectionStart.row, firstLineEndCol);\n }\n },\n multiSelectAction: \"forEach\",\n readOnly: true\n}, {\n name: \"invertSelection\",\n bindKey: bindKey(null, null),\n exec: function(editor) {\n var endRow = editor.session.doc.getLength() - 1;\n var endCol = editor.session.doc.getLine(endRow).length;\n var ranges = editor.selection.rangeList.ranges;\n var newRanges = [];\n if (ranges.length < 1) {\n ranges = [editor.selection.getRange()];\n }\n\n for (var i = 0; i < ranges.length; i++) {\n if (i == (ranges.length - 1)) {\n if (!(ranges[i].end.row === endRow && ranges[i].end.column === endCol)) {\n newRanges.push(new Range(ranges[i].end.row, ranges[i].end.column, endRow, endCol));\n }\n }\n\n if (i === 0) {\n if (!(ranges[i].start.row === 0 && ranges[i].start.column === 0)) {\n newRanges.push(new Range(0, 0, ranges[i].start.row, ranges[i].start.column));\n }\n } else {\n newRanges.push(new Range(ranges[i-1].end.row, ranges[i-1].end.column, ranges[i].start.row, ranges[i].start.column));\n }\n }\n\n editor.exitMultiSelectMode();\n editor.clearSelection();\n\n for(var i = 0; i < newRanges.length; i++) {\n editor.selection.addRange(newRanges[i], false);\n }\n },\n readOnly: true,\n scrollIntoView: \"none\"\n}];\n\n});\n\nace.define(\"ace/editor\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/keyboard/textinput\",\"ace/mouse/mouse_handler\",\"ace/mouse/fold_handler\",\"ace/keyboard/keybinding\",\"ace/edit_session\",\"ace/search\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/commands/command_manager\",\"ace/commands/default_commands\",\"ace/config\",\"ace/token_iterator\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./lib/fixoldbrowsers\");\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar lang = acequire(\"./lib/lang\");\nvar useragent = acequire(\"./lib/useragent\");\nvar TextInput = acequire(\"./keyboard/textinput\").TextInput;\nvar MouseHandler = acequire(\"./mouse/mouse_handler\").MouseHandler;\nvar FoldHandler = acequire(\"./mouse/fold_handler\").FoldHandler;\nvar KeyBinding = acequire(\"./keyboard/keybinding\").KeyBinding;\nvar EditSession = acequire(\"./edit_session\").EditSession;\nvar Search = acequire(\"./search\").Search;\nvar Range = acequire(\"./range\").Range;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar CommandManager = acequire(\"./commands/command_manager\").CommandManager;\nvar defaultCommands = acequire(\"./commands/default_commands\").commands;\nvar config = acequire(\"./config\");\nvar TokenIterator = acequire(\"./token_iterator\").TokenIterator;\nvar Editor = function(renderer, session) {\n var container = renderer.getContainerElement();\n this.container = container;\n this.renderer = renderer;\n this.id = \"editor\" + (++Editor.$uid);\n\n this.commands = new CommandManager(useragent.isMac ? \"mac\" : \"win\", defaultCommands);\n if (typeof document == \"object\") {\n this.textInput = new TextInput(renderer.getTextAreaContainer(), this);\n this.renderer.textarea = this.textInput.getElement();\n this.$mouseHandler = new MouseHandler(this);\n new FoldHandler(this);\n }\n\n this.keyBinding = new KeyBinding(this);\n\n this.$blockScrolling = 0;\n this.$search = new Search().set({\n wrap: true\n });\n\n this.$historyTracker = this.$historyTracker.bind(this);\n this.commands.on(\"exec\", this.$historyTracker);\n\n this.$initOperationListeners();\n \n this._$emitInputEvent = lang.delayedCall(function() {\n this._signal(\"input\", {});\n if (this.session && this.session.bgTokenizer)\n this.session.bgTokenizer.scheduleStart();\n }.bind(this));\n \n this.on(\"change\", function(_, _self) {\n _self._$emitInputEvent.schedule(31);\n });\n\n this.setSession(session || new EditSession(\"\"));\n config.resetOptions(this);\n config._signal(\"editor\", this);\n};\n\nEditor.$uid = 0;\n\n(function(){\n\n oop.implement(this, EventEmitter);\n\n this.$initOperationListeners = function() {\n function last(a) {return a[a.length - 1];}\n\n this.selections = [];\n this.commands.on(\"exec\", this.startOperation.bind(this), true);\n this.commands.on(\"afterExec\", this.endOperation.bind(this), true);\n\n this.$opResetTimer = lang.delayedCall(this.endOperation.bind(this));\n\n this.on(\"change\", function() {\n this.curOp || this.startOperation();\n this.curOp.docChanged = true;\n }.bind(this), true);\n\n this.on(\"changeSelection\", function() {\n this.curOp || this.startOperation();\n this.curOp.selectionChanged = true;\n }.bind(this), true);\n };\n\n this.curOp = null;\n this.prevOp = {};\n this.startOperation = function(commadEvent) {\n if (this.curOp) {\n if (!commadEvent || this.curOp.command)\n return;\n this.prevOp = this.curOp;\n }\n if (!commadEvent) {\n this.previousCommand = null;\n commadEvent = {};\n }\n\n this.$opResetTimer.schedule();\n this.curOp = {\n command: commadEvent.command || {},\n args: commadEvent.args,\n scrollTop: this.renderer.scrollTop\n };\n if (this.curOp.command.name && this.curOp.command.scrollIntoView !== undefined)\n this.$blockScrolling++;\n };\n\n this.endOperation = function(e) {\n if (this.curOp) {\n if (e && e.returnValue === false)\n return this.curOp = null;\n this._signal(\"beforeEndOperation\");\n var command = this.curOp.command;\n if (command.name && this.$blockScrolling > 0)\n this.$blockScrolling--;\n var scrollIntoView = command && command.scrollIntoView;\n if (scrollIntoView) {\n switch (scrollIntoView) {\n case \"center-animate\":\n scrollIntoView = \"animate\";\n case \"center\":\n this.renderer.scrollCursorIntoView(null, 0.5);\n break;\n case \"animate\":\n case \"cursor\":\n this.renderer.scrollCursorIntoView();\n break;\n case \"selectionPart\":\n var range = this.selection.getRange();\n var config = this.renderer.layerConfig;\n if (range.start.row >= config.lastRow || range.end.row <= config.firstRow) {\n this.renderer.scrollSelectionIntoView(this.selection.anchor, this.selection.lead);\n }\n break;\n default:\n break;\n }\n if (scrollIntoView == \"animate\")\n this.renderer.animateScrolling(this.curOp.scrollTop);\n }\n \n this.prevOp = this.curOp;\n this.curOp = null;\n }\n };\n this.$mergeableCommands = [\"backspace\", \"del\", \"insertstring\"];\n this.$historyTracker = function(e) {\n if (!this.$mergeUndoDeltas)\n return;\n\n var prev = this.prevOp;\n var mergeableCommands = this.$mergeableCommands;\n var shouldMerge = prev.command && (e.command.name == prev.command.name);\n if (e.command.name == \"insertstring\") {\n var text = e.args;\n if (this.mergeNextCommand === undefined)\n this.mergeNextCommand = true;\n\n shouldMerge = shouldMerge\n && this.mergeNextCommand // previous command allows to coalesce with\n && (!/\\s/.test(text) || /\\s/.test(prev.args)); // previous insertion was of same type\n\n this.mergeNextCommand = true;\n } else {\n shouldMerge = shouldMerge\n && mergeableCommands.indexOf(e.command.name) !== -1; // the command is mergeable\n }\n\n if (\n this.$mergeUndoDeltas != \"always\"\n && Date.now() - this.sequenceStartTime > 2000\n ) {\n shouldMerge = false; // the sequence is too long\n }\n\n if (shouldMerge)\n this.session.mergeUndoDeltas = true;\n else if (mergeableCommands.indexOf(e.command.name) !== -1)\n this.sequenceStartTime = Date.now();\n };\n this.setKeyboardHandler = function(keyboardHandler, cb) {\n if (keyboardHandler && typeof keyboardHandler === \"string\") {\n this.$keybindingId = keyboardHandler;\n var _self = this;\n config.loadModule([\"keybinding\", keyboardHandler], function(module) {\n if (_self.$keybindingId == keyboardHandler)\n _self.keyBinding.setKeyboardHandler(module && module.handler);\n cb && cb();\n });\n } else {\n this.$keybindingId = null;\n this.keyBinding.setKeyboardHandler(keyboardHandler);\n cb && cb();\n }\n };\n this.getKeyboardHandler = function() {\n return this.keyBinding.getKeyboardHandler();\n };\n this.setSession = function(session) {\n if (this.session == session)\n return;\n if (this.curOp) this.endOperation();\n this.curOp = {};\n\n var oldSession = this.session;\n if (oldSession) {\n this.session.off(\"change\", this.$onDocumentChange);\n this.session.off(\"changeMode\", this.$onChangeMode);\n this.session.off(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.session.off(\"changeTabSize\", this.$onChangeTabSize);\n this.session.off(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.session.off(\"changeWrapMode\", this.$onChangeWrapMode);\n this.session.off(\"changeFold\", this.$onChangeFold);\n this.session.off(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.session.off(\"changeBackMarker\", this.$onChangeBackMarker);\n this.session.off(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.session.off(\"changeAnnotation\", this.$onChangeAnnotation);\n this.session.off(\"changeOverwrite\", this.$onCursorChange);\n this.session.off(\"changeScrollTop\", this.$onScrollTopChange);\n this.session.off(\"changeScrollLeft\", this.$onScrollLeftChange);\n\n var selection = this.session.getSelection();\n selection.off(\"changeCursor\", this.$onCursorChange);\n selection.off(\"changeSelection\", this.$onSelectionChange);\n }\n\n this.session = session;\n if (session) {\n this.$onDocumentChange = this.onDocumentChange.bind(this);\n session.on(\"change\", this.$onDocumentChange);\n this.renderer.setSession(session);\n \n this.$onChangeMode = this.onChangeMode.bind(this);\n session.on(\"changeMode\", this.$onChangeMode);\n \n this.$onTokenizerUpdate = this.onTokenizerUpdate.bind(this);\n session.on(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n \n this.$onChangeTabSize = this.renderer.onChangeTabSize.bind(this.renderer);\n session.on(\"changeTabSize\", this.$onChangeTabSize);\n \n this.$onChangeWrapLimit = this.onChangeWrapLimit.bind(this);\n session.on(\"changeWrapLimit\", this.$onChangeWrapLimit);\n \n this.$onChangeWrapMode = this.onChangeWrapMode.bind(this);\n session.on(\"changeWrapMode\", this.$onChangeWrapMode);\n \n this.$onChangeFold = this.onChangeFold.bind(this);\n session.on(\"changeFold\", this.$onChangeFold);\n \n this.$onChangeFrontMarker = this.onChangeFrontMarker.bind(this);\n this.session.on(\"changeFrontMarker\", this.$onChangeFrontMarker);\n \n this.$onChangeBackMarker = this.onChangeBackMarker.bind(this);\n this.session.on(\"changeBackMarker\", this.$onChangeBackMarker);\n \n this.$onChangeBreakpoint = this.onChangeBreakpoint.bind(this);\n this.session.on(\"changeBreakpoint\", this.$onChangeBreakpoint);\n \n this.$onChangeAnnotation = this.onChangeAnnotation.bind(this);\n this.session.on(\"changeAnnotation\", this.$onChangeAnnotation);\n \n this.$onCursorChange = this.onCursorChange.bind(this);\n this.session.on(\"changeOverwrite\", this.$onCursorChange);\n \n this.$onScrollTopChange = this.onScrollTopChange.bind(this);\n this.session.on(\"changeScrollTop\", this.$onScrollTopChange);\n \n this.$onScrollLeftChange = this.onScrollLeftChange.bind(this);\n this.session.on(\"changeScrollLeft\", this.$onScrollLeftChange);\n \n this.selection = session.getSelection();\n this.selection.on(\"changeCursor\", this.$onCursorChange);\n \n this.$onSelectionChange = this.onSelectionChange.bind(this);\n this.selection.on(\"changeSelection\", this.$onSelectionChange);\n \n this.onChangeMode();\n \n this.$blockScrolling += 1;\n this.onCursorChange();\n this.$blockScrolling -= 1;\n \n this.onScrollTopChange();\n this.onScrollLeftChange();\n this.onSelectionChange();\n this.onChangeFrontMarker();\n this.onChangeBackMarker();\n this.onChangeBreakpoint();\n this.onChangeAnnotation();\n this.session.getUseWrapMode() && this.renderer.adjustWrapLimit();\n this.renderer.updateFull();\n } else {\n this.selection = null;\n this.renderer.setSession(session);\n }\n\n this._signal(\"changeSession\", {\n session: session,\n oldSession: oldSession\n });\n \n this.curOp = null;\n \n oldSession && oldSession._signal(\"changeEditor\", {oldEditor: this});\n session && session._signal(\"changeEditor\", {editor: this});\n\n if (session && session.bgTokenizer)\n session.bgTokenizer.scheduleStart();\n };\n this.getSession = function() {\n return this.session;\n };\n this.setValue = function(val, cursorPos) {\n this.session.doc.setValue(val);\n\n if (!cursorPos)\n this.selectAll();\n else if (cursorPos == 1)\n this.navigateFileEnd();\n else if (cursorPos == -1)\n this.navigateFileStart();\n\n return val;\n };\n this.getValue = function() {\n return this.session.getValue();\n };\n this.getSelection = function() {\n return this.selection;\n };\n this.resize = function(force) {\n this.renderer.onResize(force);\n };\n this.setTheme = function(theme, cb) {\n this.renderer.setTheme(theme, cb);\n };\n this.getTheme = function() {\n return this.renderer.getTheme();\n };\n this.setStyle = function(style) {\n this.renderer.setStyle(style);\n };\n this.unsetStyle = function(style) {\n this.renderer.unsetStyle(style);\n };\n this.getFontSize = function () {\n return this.getOption(\"fontSize\") ||\n dom.computedStyle(this.container, \"fontSize\");\n };\n this.setFontSize = function(size) {\n this.setOption(\"fontSize\", size);\n };\n\n this.$highlightBrackets = function() {\n if (this.session.$bracketHighlight) {\n this.session.removeMarker(this.session.$bracketHighlight);\n this.session.$bracketHighlight = null;\n }\n\n if (this.$highlightPending) {\n return;\n }\n var self = this;\n this.$highlightPending = true;\n setTimeout(function() {\n self.$highlightPending = false;\n var session = self.session;\n if (!session || !session.bgTokenizer) return;\n var pos = session.findMatchingBracket(self.getCursorPosition());\n if (pos) {\n var range = new Range(pos.row, pos.column, pos.row, pos.column + 1);\n } else if (session.$mode.getMatching) {\n var range = session.$mode.getMatching(self.session);\n }\n if (range)\n session.$bracketHighlight = session.addMarker(range, \"ace_bracket\", \"text\");\n }, 50);\n };\n this.$highlightTags = function() {\n if (this.$highlightTagPending)\n return;\n var self = this;\n this.$highlightTagPending = true;\n setTimeout(function() {\n self.$highlightTagPending = false;\n \n var session = self.session;\n if (!session || !session.bgTokenizer) return;\n \n var pos = self.getCursorPosition();\n var iterator = new TokenIterator(self.session, pos.row, pos.column);\n var token = iterator.getCurrentToken();\n \n if (!token || !/\\b(?:tag-open|tag-name)/.test(token.type)) {\n session.removeMarker(session.$tagHighlight);\n session.$tagHighlight = null;\n return;\n }\n \n if (token.type.indexOf(\"tag-open\") != -1) {\n token = iterator.stepForward();\n if (!token)\n return;\n }\n \n var tag = token.value;\n var depth = 0;\n var prevToken = iterator.stepBackward();\n \n if (prevToken.value == '<'){\n do {\n prevToken = token;\n token = iterator.stepForward();\n \n if (token && token.value === tag && token.type.indexOf('tag-name') !== -1) {\n if (prevToken.value === '<'){\n depth++;\n } else if (prevToken.value === '</'){\n depth--;\n }\n }\n \n } while (token && depth >= 0);\n } else {\n do {\n token = prevToken;\n prevToken = iterator.stepBackward();\n \n if (token && token.value === tag && token.type.indexOf('tag-name') !== -1) {\n if (prevToken.value === '<') {\n depth++;\n } else if (prevToken.value === '</') {\n depth--;\n }\n }\n } while (prevToken && depth <= 0);\n iterator.stepForward();\n }\n \n if (!token) {\n session.removeMarker(session.$tagHighlight);\n session.$tagHighlight = null;\n return;\n }\n \n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn();\n var range = new Range(row, column, row, column+token.value.length);\n var sbm = session.$backMarkers[session.$tagHighlight];\n if (session.$tagHighlight && sbm != undefined && range.compareRange(sbm.range) !== 0) {\n session.removeMarker(session.$tagHighlight);\n session.$tagHighlight = null;\n }\n \n if (range && !session.$tagHighlight)\n session.$tagHighlight = session.addMarker(range, \"ace_bracket\", \"text\");\n }, 50);\n };\n this.focus = function() {\n var _self = this;\n setTimeout(function() {\n _self.textInput.focus();\n });\n this.textInput.focus();\n };\n this.isFocused = function() {\n return this.textInput.isFocused();\n };\n this.blur = function() {\n this.textInput.blur();\n };\n this.onFocus = function(e) {\n if (this.$isFocused)\n return;\n this.$isFocused = true;\n this.renderer.showCursor();\n this.renderer.visualizeFocus();\n this._emit(\"focus\", e);\n };\n this.onBlur = function(e) {\n if (!this.$isFocused)\n return;\n this.$isFocused = false;\n this.renderer.hideCursor();\n this.renderer.visualizeBlur();\n this._emit(\"blur\", e);\n };\n\n this.$cursorChange = function() {\n this.renderer.updateCursor();\n };\n this.onDocumentChange = function(delta) {\n var wrap = this.session.$useWrapMode;\n var lastRow = (delta.start.row == delta.end.row ? delta.end.row : Infinity);\n this.renderer.updateLines(delta.start.row, lastRow, wrap);\n\n this._signal(\"change\", delta);\n this.$cursorChange();\n this.$updateHighlightActiveLine();\n };\n\n this.onTokenizerUpdate = function(e) {\n var rows = e.data;\n this.renderer.updateLines(rows.first, rows.last);\n };\n\n\n this.onScrollTopChange = function() {\n this.renderer.scrollToY(this.session.getScrollTop());\n };\n\n this.onScrollLeftChange = function() {\n this.renderer.scrollToX(this.session.getScrollLeft());\n };\n this.onCursorChange = function() {\n this.$cursorChange();\n\n if (!this.$blockScrolling) {\n config.warn(\"Automatically scrolling cursor into view after selection change\",\n \"this will be disabled in the next version\",\n \"set editor.$blockScrolling = Infinity to disable this message\"\n );\n this.renderer.scrollCursorIntoView();\n }\n\n this.$highlightBrackets();\n this.$highlightTags();\n this.$updateHighlightActiveLine();\n this._signal(\"changeSelection\");\n };\n\n this.$updateHighlightActiveLine = function() {\n var session = this.getSession();\n\n var highlight;\n if (this.$highlightActiveLine) {\n if ((this.$selectionStyle != \"line\" || !this.selection.isMultiLine()))\n highlight = this.getCursorPosition();\n if (this.renderer.$maxLines && this.session.getLength() === 1 && !(this.renderer.$minLines > 1))\n highlight = false;\n }\n\n if (session.$highlightLineMarker && !highlight) {\n session.removeMarker(session.$highlightLineMarker.id);\n session.$highlightLineMarker = null;\n } else if (!session.$highlightLineMarker && highlight) {\n var range = new Range(highlight.row, highlight.column, highlight.row, Infinity);\n range.id = session.addMarker(range, \"ace_active-line\", \"screenLine\");\n session.$highlightLineMarker = range;\n } else if (highlight) {\n session.$highlightLineMarker.start.row = highlight.row;\n session.$highlightLineMarker.end.row = highlight.row;\n session.$highlightLineMarker.start.column = highlight.column;\n session._signal(\"changeBackMarker\");\n }\n };\n\n this.onSelectionChange = function(e) {\n var session = this.session;\n\n if (session.$selectionMarker) {\n session.removeMarker(session.$selectionMarker);\n }\n session.$selectionMarker = null;\n\n if (!this.selection.isEmpty()) {\n var range = this.selection.getRange();\n var style = this.getSelectionStyle();\n session.$selectionMarker = session.addMarker(range, \"ace_selection\", style);\n } else {\n this.$updateHighlightActiveLine();\n }\n\n var re = this.$highlightSelectedWord && this.$getSelectionHighLightRegexp();\n this.session.highlight(re);\n\n this._signal(\"changeSelection\");\n };\n\n this.$getSelectionHighLightRegexp = function() {\n var session = this.session;\n\n var selection = this.getSelectionRange();\n if (selection.isEmpty() || selection.isMultiLine())\n return;\n\n var startOuter = selection.start.column - 1;\n var endOuter = selection.end.column + 1;\n var line = session.getLine(selection.start.row);\n var lineCols = line.length;\n var needle = line.substring(Math.max(startOuter, 0),\n Math.min(endOuter, lineCols));\n if ((startOuter >= 0 && /^[\\w\\d]/.test(needle)) ||\n (endOuter <= lineCols && /[\\w\\d]$/.test(needle)))\n return;\n\n needle = line.substring(selection.start.column, selection.end.column);\n if (!/^[\\w\\d]+$/.test(needle))\n return;\n\n var re = this.$search.$assembleRegExp({\n wholeWord: true,\n caseSensitive: true,\n needle: needle\n });\n\n return re;\n };\n\n\n this.onChangeFrontMarker = function() {\n this.renderer.updateFrontMarkers();\n };\n\n this.onChangeBackMarker = function() {\n this.renderer.updateBackMarkers();\n };\n\n\n this.onChangeBreakpoint = function() {\n this.renderer.updateBreakpoints();\n };\n\n this.onChangeAnnotation = function() {\n this.renderer.setAnnotations(this.session.getAnnotations());\n };\n\n\n this.onChangeMode = function(e) {\n this.renderer.updateText();\n this._emit(\"changeMode\", e);\n };\n\n\n this.onChangeWrapLimit = function() {\n this.renderer.updateFull();\n };\n\n this.onChangeWrapMode = function() {\n this.renderer.onResize(true);\n };\n\n\n this.onChangeFold = function() {\n this.$updateHighlightActiveLine();\n this.renderer.updateFull();\n };\n this.getSelectedText = function() {\n return this.session.getTextRange(this.getSelectionRange());\n };\n this.getCopyText = function() {\n var text = this.getSelectedText();\n this._signal(\"copy\", text);\n return text;\n };\n this.onCopy = function() {\n this.commands.exec(\"copy\", this);\n };\n this.onCut = function() {\n this.commands.exec(\"cut\", this);\n };\n this.onPaste = function(text, event) {\n var e = {text: text, event: event};\n this.commands.exec(\"paste\", this, e);\n };\n \n this.$handlePaste = function(e) {\n if (typeof e == \"string\") \n e = {text: e};\n this._signal(\"paste\", e);\n var text = e.text;\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode) {\n this.insert(text);\n } else {\n var lines = text.split(/\\r\\n|\\r|\\n/);\n var ranges = this.selection.rangeList.ranges;\n \n if (lines.length > ranges.length || lines.length < 2 || !lines[1])\n return this.commands.exec(\"insertstring\", this, text);\n \n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.isEmpty())\n this.session.remove(range);\n \n this.session.insert(range.start, lines[i]);\n }\n }\n };\n\n this.execCommand = function(command, args) {\n return this.commands.exec(command, this, args);\n };\n this.insert = function(text, pasted) {\n var session = this.session;\n var mode = session.getMode();\n var cursor = this.getCursorPosition();\n\n if (this.getBehavioursEnabled() && !pasted) {\n var transform = mode.transformAction(session.getState(cursor.row), 'insertion', this, session, text);\n if (transform) {\n if (text !== transform.text) {\n this.session.mergeUndoDeltas = false;\n this.$mergeNextCommand = false;\n }\n text = transform.text;\n\n }\n }\n \n if (text == \"\\t\")\n text = this.session.getTabString();\n if (!this.selection.isEmpty()) {\n var range = this.getSelectionRange();\n cursor = this.session.remove(range);\n this.clearSelection();\n }\n else if (this.session.getOverwrite() && text.indexOf(\"\\n\") == -1) {\n var range = new Range.fromPoints(cursor, cursor);\n range.end.column += text.length;\n this.session.remove(range);\n }\n\n if (text == \"\\n\" || text == \"\\r\\n\") {\n var line = session.getLine(cursor.row);\n if (cursor.column > line.search(/\\S|$/)) {\n var d = line.substr(cursor.column).search(/\\S|$/);\n session.doc.removeInLine(cursor.row, cursor.column, cursor.column + d);\n }\n }\n this.clearSelection();\n\n var start = cursor.column;\n var lineState = session.getState(cursor.row);\n var line = session.getLine(cursor.row);\n var shouldOutdent = mode.checkOutdent(lineState, line, text);\n var end = session.insert(cursor, text);\n\n if (transform && transform.selection) {\n if (transform.selection.length == 2) { // Transform relative to the current column\n this.selection.setSelectionRange(\n new Range(cursor.row, start + transform.selection[0],\n cursor.row, start + transform.selection[1]));\n } else { // Transform relative to the current row.\n this.selection.setSelectionRange(\n new Range(cursor.row + transform.selection[0],\n transform.selection[1],\n cursor.row + transform.selection[2],\n transform.selection[3]));\n }\n }\n\n if (session.getDocument().isNewLine(text)) {\n var lineIndent = mode.getNextLineIndent(lineState, line.slice(0, cursor.column), session.getTabString());\n\n session.insert({row: cursor.row+1, column: 0}, lineIndent);\n }\n if (shouldOutdent)\n mode.autoOutdent(lineState, session, cursor.row);\n };\n\n this.onTextInput = function(text) {\n this.keyBinding.onTextInput(text);\n };\n\n this.onCommandKey = function(e, hashId, keyCode) {\n this.keyBinding.onCommandKey(e, hashId, keyCode);\n };\n this.setOverwrite = function(overwrite) {\n this.session.setOverwrite(overwrite);\n };\n this.getOverwrite = function() {\n return this.session.getOverwrite();\n };\n this.toggleOverwrite = function() {\n this.session.toggleOverwrite();\n };\n this.setScrollSpeed = function(speed) {\n this.setOption(\"scrollSpeed\", speed);\n };\n this.getScrollSpeed = function() {\n return this.getOption(\"scrollSpeed\");\n };\n this.setDragDelay = function(dragDelay) {\n this.setOption(\"dragDelay\", dragDelay);\n };\n this.getDragDelay = function() {\n return this.getOption(\"dragDelay\");\n };\n this.setSelectionStyle = function(val) {\n this.setOption(\"selectionStyle\", val);\n };\n this.getSelectionStyle = function() {\n return this.getOption(\"selectionStyle\");\n };\n this.setHighlightActiveLine = function(shouldHighlight) {\n this.setOption(\"highlightActiveLine\", shouldHighlight);\n };\n this.getHighlightActiveLine = function() {\n return this.getOption(\"highlightActiveLine\");\n };\n this.setHighlightGutterLine = function(shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n\n this.getHighlightGutterLine = function() {\n return this.getOption(\"highlightGutterLine\");\n };\n this.setHighlightSelectedWord = function(shouldHighlight) {\n this.setOption(\"highlightSelectedWord\", shouldHighlight);\n };\n this.getHighlightSelectedWord = function() {\n return this.$highlightSelectedWord;\n };\n\n this.setAnimatedScroll = function(shouldAnimate){\n this.renderer.setAnimatedScroll(shouldAnimate);\n };\n\n this.getAnimatedScroll = function(){\n return this.renderer.getAnimatedScroll();\n };\n this.setShowInvisibles = function(showInvisibles) {\n this.renderer.setShowInvisibles(showInvisibles);\n };\n this.getShowInvisibles = function() {\n return this.renderer.getShowInvisibles();\n };\n\n this.setDisplayIndentGuides = function(display) {\n this.renderer.setDisplayIndentGuides(display);\n };\n\n this.getDisplayIndentGuides = function() {\n return this.renderer.getDisplayIndentGuides();\n };\n this.setShowPrintMargin = function(showPrintMargin) {\n this.renderer.setShowPrintMargin(showPrintMargin);\n };\n this.getShowPrintMargin = function() {\n return this.renderer.getShowPrintMargin();\n };\n this.setPrintMarginColumn = function(showPrintMargin) {\n this.renderer.setPrintMarginColumn(showPrintMargin);\n };\n this.getPrintMarginColumn = function() {\n return this.renderer.getPrintMarginColumn();\n };\n this.setReadOnly = function(readOnly) {\n this.setOption(\"readOnly\", readOnly);\n };\n this.getReadOnly = function() {\n return this.getOption(\"readOnly\");\n };\n this.setBehavioursEnabled = function (enabled) {\n this.setOption(\"behavioursEnabled\", enabled);\n };\n this.getBehavioursEnabled = function () {\n return this.getOption(\"behavioursEnabled\");\n };\n this.setWrapBehavioursEnabled = function (enabled) {\n this.setOption(\"wrapBehavioursEnabled\", enabled);\n };\n this.getWrapBehavioursEnabled = function () {\n return this.getOption(\"wrapBehavioursEnabled\");\n };\n this.setShowFoldWidgets = function(show) {\n this.setOption(\"showFoldWidgets\", show);\n\n };\n this.getShowFoldWidgets = function() {\n return this.getOption(\"showFoldWidgets\");\n };\n\n this.setFadeFoldWidgets = function(fade) {\n this.setOption(\"fadeFoldWidgets\", fade);\n };\n\n this.getFadeFoldWidgets = function() {\n return this.getOption(\"fadeFoldWidgets\");\n };\n this.remove = function(dir) {\n if (this.selection.isEmpty()){\n if (dir == \"left\")\n this.selection.selectLeft();\n else\n this.selection.selectRight();\n }\n\n var range = this.getSelectionRange();\n if (this.getBehavioursEnabled()) {\n var session = this.session;\n var state = session.getState(range.start.row);\n var new_range = session.getMode().transformAction(state, 'deletion', this, session, range);\n\n if (range.end.column === 0) {\n var text = session.getTextRange(range);\n if (text[text.length - 1] == \"\\n\") {\n var line = session.getLine(range.end.row);\n if (/^\\s+$/.test(line)) {\n range.end.column = line.length;\n }\n }\n }\n if (new_range)\n range = new_range;\n }\n\n this.session.remove(range);\n this.clearSelection();\n };\n this.removeWordRight = function() {\n if (this.selection.isEmpty())\n this.selection.selectWordRight();\n\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n this.removeWordLeft = function() {\n if (this.selection.isEmpty())\n this.selection.selectWordLeft();\n\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n this.removeToLineStart = function() {\n if (this.selection.isEmpty())\n this.selection.selectLineStart();\n\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n this.removeToLineEnd = function() {\n if (this.selection.isEmpty())\n this.selection.selectLineEnd();\n\n var range = this.getSelectionRange();\n if (range.start.column == range.end.column && range.start.row == range.end.row) {\n range.end.column = 0;\n range.end.row++;\n }\n\n this.session.remove(range);\n this.clearSelection();\n };\n this.splitLine = function() {\n if (!this.selection.isEmpty()) {\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n }\n\n var cursor = this.getCursorPosition();\n this.insert(\"\\n\");\n this.moveCursorToPosition(cursor);\n };\n this.transposeLetters = function() {\n if (!this.selection.isEmpty()) {\n return;\n }\n\n var cursor = this.getCursorPosition();\n var column = cursor.column;\n if (column === 0)\n return;\n\n var line = this.session.getLine(cursor.row);\n var swap, range;\n if (column < line.length) {\n swap = line.charAt(column) + line.charAt(column-1);\n range = new Range(cursor.row, column-1, cursor.row, column+1);\n }\n else {\n swap = line.charAt(column-1) + line.charAt(column-2);\n range = new Range(cursor.row, column-2, cursor.row, column);\n }\n this.session.replace(range, swap);\n this.session.selection.moveToPosition(range.end);\n };\n this.toLowerCase = function() {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toLowerCase());\n this.selection.setSelectionRange(originalRange);\n };\n this.toUpperCase = function() {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toUpperCase());\n this.selection.setSelectionRange(originalRange);\n };\n this.indent = function() {\n var session = this.session;\n var range = this.getSelectionRange();\n\n if (range.start.row < range.end.row) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n } else if (range.start.column < range.end.column) {\n var text = session.getTextRange(range);\n if (!/^\\s+$/.test(text)) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n }\n \n var line = session.getLine(range.start.row);\n var position = range.start;\n var size = session.getTabSize();\n var column = session.documentToScreenColumn(position.row, position.column);\n\n if (this.session.getUseSoftTabs()) {\n var count = (size - column % size);\n var indentString = lang.stringRepeat(\" \", count);\n } else {\n var count = column % size;\n while (line[range.start.column - 1] == \" \" && count) {\n range.start.column--;\n count--;\n }\n this.selection.setSelectionRange(range);\n indentString = \"\\t\";\n }\n return this.insert(indentString);\n };\n this.blockIndent = function() {\n var rows = this.$getSelectedRows();\n this.session.indentRows(rows.first, rows.last, \"\\t\");\n };\n this.blockOutdent = function() {\n var selection = this.session.getSelection();\n this.session.outdentRows(selection.getRange());\n };\n this.sortLines = function() {\n var rows = this.$getSelectedRows();\n var session = this.session;\n\n var lines = [];\n for (var i = rows.first; i <= rows.last; i++)\n lines.push(session.getLine(i));\n\n lines.sort(function(a, b) {\n if (a.toLowerCase() < b.toLowerCase()) return -1;\n if (a.toLowerCase() > b.toLowerCase()) return 1;\n return 0;\n });\n\n var deleteRange = new Range(0, 0, 0, 0);\n for (var i = rows.first; i <= rows.last; i++) {\n var line = session.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n deleteRange.end.column = line.length;\n session.replace(deleteRange, lines[i-rows.first]);\n }\n };\n this.toggleCommentLines = function() {\n var state = this.session.getState(this.getCursorPosition().row);\n var rows = this.$getSelectedRows();\n this.session.getMode().toggleCommentLines(state, this.session, rows.first, rows.last);\n };\n\n this.toggleBlockComment = function() {\n var cursor = this.getCursorPosition();\n var state = this.session.getState(cursor.row);\n var range = this.getSelectionRange();\n this.session.getMode().toggleBlockComment(state, this.session, range, cursor);\n };\n this.getNumberAt = function(row, column) {\n var _numberRx = /[\\-]?[0-9]+(?:\\.[0-9]+)?/g;\n _numberRx.lastIndex = 0;\n\n var s = this.session.getLine(row);\n while (_numberRx.lastIndex < column) {\n var m = _numberRx.exec(s);\n if(m.index <= column && m.index+m[0].length >= column){\n var number = {\n value: m[0],\n start: m.index,\n end: m.index+m[0].length\n };\n return number;\n }\n }\n return null;\n };\n this.modifyNumber = function(amount) {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n var charRange = new Range(row, column-1, row, column);\n\n var c = this.session.getTextRange(charRange);\n if (!isNaN(parseFloat(c)) && isFinite(c)) {\n var nr = this.getNumberAt(row, column);\n if (nr) {\n var fp = nr.value.indexOf(\".\") >= 0 ? nr.start + nr.value.indexOf(\".\") + 1 : nr.end;\n var decimals = nr.start + nr.value.length - fp;\n\n var t = parseFloat(nr.value);\n t *= Math.pow(10, decimals);\n\n\n if(fp !== nr.end && column < fp){\n amount *= Math.pow(10, nr.end - column - 1);\n } else {\n amount *= Math.pow(10, nr.end - column);\n }\n\n t += amount;\n t /= Math.pow(10, decimals);\n var nnr = t.toFixed(decimals);\n var replaceRange = new Range(row, nr.start, row, nr.end);\n this.session.replace(replaceRange, nnr);\n this.moveCursorTo(row, Math.max(nr.start +1, column + nnr.length - nr.value.length));\n\n }\n }\n };\n this.removeLines = function() {\n var rows = this.$getSelectedRows();\n this.session.removeFullLines(rows.first, rows.last);\n this.clearSelection();\n };\n\n this.duplicateSelection = function() {\n var sel = this.selection;\n var doc = this.session;\n var range = sel.getRange();\n var reverse = sel.isBackwards();\n if (range.isEmpty()) {\n var row = range.start.row;\n doc.duplicateLines(row, row);\n } else {\n var point = reverse ? range.start : range.end;\n var endPoint = doc.insert(point, doc.getTextRange(range), false);\n range.start = point;\n range.end = endPoint;\n\n sel.setSelectionRange(range, reverse);\n }\n };\n this.moveLinesDown = function() {\n this.$moveLines(1, false);\n };\n this.moveLinesUp = function() {\n this.$moveLines(-1, false);\n };\n this.moveText = function(range, toPosition, copy) {\n return this.session.moveText(range, toPosition, copy);\n };\n this.copyLinesUp = function() {\n this.$moveLines(-1, true);\n };\n this.copyLinesDown = function() {\n this.$moveLines(1, true);\n };\n this.$moveLines = function(dir, copy) {\n var rows, moved;\n var selection = this.selection;\n if (!selection.inMultiSelectMode || this.inVirtualSelectionMode) {\n var range = selection.toOrientedRange();\n rows = this.$getSelectedRows(range);\n moved = this.session.$moveLines(rows.first, rows.last, copy ? 0 : dir);\n if (copy && dir == -1) moved = 0;\n range.moveBy(moved, 0);\n selection.fromOrientedRange(range);\n } else {\n var ranges = selection.rangeList.ranges;\n selection.rangeList.detach(this.session);\n this.inVirtualSelectionMode = true;\n \n var diff = 0;\n var totalDiff = 0;\n var l = ranges.length;\n for (var i = 0; i < l; i++) {\n var rangeIndex = i;\n ranges[i].moveBy(diff, 0);\n rows = this.$getSelectedRows(ranges[i]);\n var first = rows.first;\n var last = rows.last;\n while (++i < l) {\n if (totalDiff) ranges[i].moveBy(totalDiff, 0);\n var subRows = this.$getSelectedRows(ranges[i]);\n if (copy && subRows.first != last)\n break;\n else if (!copy && subRows.first > last + 1)\n break;\n last = subRows.last;\n }\n i--;\n diff = this.session.$moveLines(first, last, copy ? 0 : dir);\n if (copy && dir == -1) rangeIndex = i + 1;\n while (rangeIndex <= i) {\n ranges[rangeIndex].moveBy(diff, 0);\n rangeIndex++;\n }\n if (!copy) diff = 0;\n totalDiff += diff;\n }\n \n selection.fromOrientedRange(selection.ranges[0]);\n selection.rangeList.attach(this.session);\n this.inVirtualSelectionMode = false;\n }\n };\n this.$getSelectedRows = function(range) {\n range = (range || this.getSelectionRange()).collapseRows();\n\n return {\n first: this.session.getRowFoldStart(range.start.row),\n last: this.session.getRowFoldEnd(range.end.row)\n };\n };\n\n this.onCompositionStart = function(text) {\n this.renderer.showComposition(this.getCursorPosition());\n };\n\n this.onCompositionUpdate = function(text) {\n this.renderer.setCompositionText(text);\n };\n\n this.onCompositionEnd = function() {\n this.renderer.hideComposition();\n };\n this.getFirstVisibleRow = function() {\n return this.renderer.getFirstVisibleRow();\n };\n this.getLastVisibleRow = function() {\n return this.renderer.getLastVisibleRow();\n };\n this.isRowVisible = function(row) {\n return (row >= this.getFirstVisibleRow() && row <= this.getLastVisibleRow());\n };\n this.isRowFullyVisible = function(row) {\n return (row >= this.renderer.getFirstFullyVisibleRow() && row <= this.renderer.getLastFullyVisibleRow());\n };\n this.$getVisibleRowCount = function() {\n return this.renderer.getScrollBottomRow() - this.renderer.getScrollTopRow() + 1;\n };\n\n this.$moveByPage = function(dir, select) {\n var renderer = this.renderer;\n var config = this.renderer.layerConfig;\n var rows = dir * Math.floor(config.height / config.lineHeight);\n\n this.$blockScrolling++;\n if (select === true) {\n this.selection.$moveSelection(function(){\n this.moveCursorBy(rows, 0);\n });\n } else if (select === false) {\n this.selection.moveCursorBy(rows, 0);\n this.selection.clearSelection();\n }\n this.$blockScrolling--;\n\n var scrollTop = renderer.scrollTop;\n\n renderer.scrollBy(0, rows * config.lineHeight);\n if (select != null)\n renderer.scrollCursorIntoView(null, 0.5);\n\n renderer.animateScrolling(scrollTop);\n };\n this.selectPageDown = function() {\n this.$moveByPage(1, true);\n };\n this.selectPageUp = function() {\n this.$moveByPage(-1, true);\n };\n this.gotoPageDown = function() {\n this.$moveByPage(1, false);\n };\n this.gotoPageUp = function() {\n this.$moveByPage(-1, false);\n };\n this.scrollPageDown = function() {\n this.$moveByPage(1);\n };\n this.scrollPageUp = function() {\n this.$moveByPage(-1);\n };\n this.scrollToRow = function(row) {\n this.renderer.scrollToRow(row);\n };\n this.scrollToLine = function(line, center, animate, callback) {\n this.renderer.scrollToLine(line, center, animate, callback);\n };\n this.centerSelection = function() {\n var range = this.getSelectionRange();\n var pos = {\n row: Math.floor(range.start.row + (range.end.row - range.start.row) / 2),\n column: Math.floor(range.start.column + (range.end.column - range.start.column) / 2)\n };\n this.renderer.alignCursor(pos, 0.5);\n };\n this.getCursorPosition = function() {\n return this.selection.getCursor();\n };\n this.getCursorPositionScreen = function() {\n return this.session.documentToScreenPosition(this.getCursorPosition());\n };\n this.getSelectionRange = function() {\n return this.selection.getRange();\n };\n this.selectAll = function() {\n this.$blockScrolling += 1;\n this.selection.selectAll();\n this.$blockScrolling -= 1;\n };\n this.clearSelection = function() {\n this.selection.clearSelection();\n };\n this.moveCursorTo = function(row, column) {\n this.selection.moveCursorTo(row, column);\n };\n this.moveCursorToPosition = function(pos) {\n this.selection.moveCursorToPosition(pos);\n };\n this.jumpToMatching = function(select, expand) {\n var cursor = this.getCursorPosition();\n var iterator = new TokenIterator(this.session, cursor.row, cursor.column);\n var prevToken = iterator.getCurrentToken();\n var token = prevToken || iterator.stepForward();\n\n if (!token) return;\n var matchType;\n var found = false;\n var depth = {};\n var i = cursor.column - token.start;\n var bracketType;\n var brackets = {\n \")\": \"(\",\n \"(\": \"(\",\n \"]\": \"[\",\n \"[\": \"[\",\n \"{\": \"{\",\n \"}\": \"{\"\n };\n \n do {\n if (token.value.match(/[{}()\\[\\]]/g)) {\n for (; i < token.value.length && !found; i++) {\n if (!brackets[token.value[i]]) {\n continue;\n }\n\n bracketType = brackets[token.value[i]] + '.' + token.type.replace(\"rparen\", \"lparen\");\n\n if (isNaN(depth[bracketType])) {\n depth[bracketType] = 0;\n }\n\n switch (token.value[i]) {\n case '(':\n case '[':\n case '{':\n depth[bracketType]++;\n break;\n case ')':\n case ']':\n case '}':\n depth[bracketType]--;\n\n if (depth[bracketType] === -1) {\n matchType = 'bracket';\n found = true;\n }\n break;\n }\n }\n }\n else if (token && token.type.indexOf('tag-name') !== -1) {\n if (isNaN(depth[token.value])) {\n depth[token.value] = 0;\n }\n \n if (prevToken.value === '<') {\n depth[token.value]++;\n }\n else if (prevToken.value === '</') {\n depth[token.value]--;\n }\n \n if (depth[token.value] === -1) {\n matchType = 'tag';\n found = true;\n }\n }\n\n if (!found) {\n prevToken = token;\n token = iterator.stepForward();\n i = 0;\n }\n } while (token && !found);\n if (!matchType)\n return;\n\n var range, pos;\n if (matchType === 'bracket') {\n range = this.session.getBracketRange(cursor);\n if (!range) {\n range = new Range(\n iterator.getCurrentTokenRow(),\n iterator.getCurrentTokenColumn() + i - 1,\n iterator.getCurrentTokenRow(),\n iterator.getCurrentTokenColumn() + i - 1\n );\n pos = range.start;\n if (expand || pos.row === cursor.row && Math.abs(pos.column - cursor.column) < 2)\n range = this.session.getBracketRange(pos);\n }\n }\n else if (matchType === 'tag') {\n if (token && token.type.indexOf('tag-name') !== -1) \n var tag = token.value;\n else\n return;\n\n range = new Range(\n iterator.getCurrentTokenRow(),\n iterator.getCurrentTokenColumn() - 2,\n iterator.getCurrentTokenRow(),\n iterator.getCurrentTokenColumn() - 2\n );\n if (range.compare(cursor.row, cursor.column) === 0) {\n found = false;\n do {\n token = prevToken;\n prevToken = iterator.stepBackward();\n \n if (prevToken) {\n if (prevToken.type.indexOf('tag-close') !== -1) {\n range.setEnd(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1);\n }\n\n if (token.value === tag && token.type.indexOf('tag-name') !== -1) {\n if (prevToken.value === '<') {\n depth[tag]++;\n }\n else if (prevToken.value === '</') {\n depth[tag]--;\n }\n \n if (depth[tag] === 0)\n found = true;\n }\n }\n } while (prevToken && !found);\n }\n if (token && token.type.indexOf('tag-name')) {\n pos = range.start;\n if (pos.row == cursor.row && Math.abs(pos.column - cursor.column) < 2)\n pos = range.end;\n }\n }\n\n pos = range && range.cursor || pos;\n if (pos) {\n if (select) {\n if (range && expand) {\n this.selection.setRange(range);\n } else if (range && range.isEqual(this.getSelectionRange())) {\n this.clearSelection();\n } else {\n this.selection.selectTo(pos.row, pos.column);\n }\n } else {\n this.selection.moveTo(pos.row, pos.column);\n }\n }\n };\n this.gotoLine = function(lineNumber, column, animate) {\n this.selection.clearSelection();\n this.session.unfold({row: lineNumber - 1, column: column || 0});\n\n this.$blockScrolling += 1;\n this.exitMultiSelectMode && this.exitMultiSelectMode();\n this.moveCursorTo(lineNumber - 1, column || 0);\n this.$blockScrolling -= 1;\n\n if (!this.isRowFullyVisible(lineNumber - 1))\n this.scrollToLine(lineNumber - 1, true, animate);\n };\n this.navigateTo = function(row, column) {\n this.selection.moveTo(row, column);\n };\n this.navigateUp = function(times) {\n if (this.selection.isMultiLine() && !this.selection.isBackwards()) {\n var selectionStart = this.selection.anchor.getPosition();\n return this.moveCursorToPosition(selectionStart);\n }\n this.selection.clearSelection();\n this.selection.moveCursorBy(-times || -1, 0);\n };\n this.navigateDown = function(times) {\n if (this.selection.isMultiLine() && this.selection.isBackwards()) {\n var selectionEnd = this.selection.anchor.getPosition();\n return this.moveCursorToPosition(selectionEnd);\n }\n this.selection.clearSelection();\n this.selection.moveCursorBy(times || 1, 0);\n };\n this.navigateLeft = function(times) {\n if (!this.selection.isEmpty()) {\n var selectionStart = this.getSelectionRange().start;\n this.moveCursorToPosition(selectionStart);\n }\n else {\n times = times || 1;\n while (times--) {\n this.selection.moveCursorLeft();\n }\n }\n this.clearSelection();\n };\n this.navigateRight = function(times) {\n if (!this.selection.isEmpty()) {\n var selectionEnd = this.getSelectionRange().end;\n this.moveCursorToPosition(selectionEnd);\n }\n else {\n times = times || 1;\n while (times--) {\n this.selection.moveCursorRight();\n }\n }\n this.clearSelection();\n };\n this.navigateLineStart = function() {\n this.selection.moveCursorLineStart();\n this.clearSelection();\n };\n this.navigateLineEnd = function() {\n this.selection.moveCursorLineEnd();\n this.clearSelection();\n };\n this.navigateFileEnd = function() {\n this.selection.moveCursorFileEnd();\n this.clearSelection();\n };\n this.navigateFileStart = function() {\n this.selection.moveCursorFileStart();\n this.clearSelection();\n };\n this.navigateWordRight = function() {\n this.selection.moveCursorWordRight();\n this.clearSelection();\n };\n this.navigateWordLeft = function() {\n this.selection.moveCursorWordLeft();\n this.clearSelection();\n };\n this.replace = function(replacement, options) {\n if (options)\n this.$search.set(options);\n\n var range = this.$search.find(this.session);\n var replaced = 0;\n if (!range)\n return replaced;\n\n if (this.$tryReplace(range, replacement)) {\n replaced = 1;\n }\n if (range !== null) {\n this.selection.setSelectionRange(range);\n this.renderer.scrollSelectionIntoView(range.start, range.end);\n }\n\n return replaced;\n };\n this.replaceAll = function(replacement, options) {\n if (options) {\n this.$search.set(options);\n }\n\n var ranges = this.$search.findAll(this.session);\n var replaced = 0;\n if (!ranges.length)\n return replaced;\n\n this.$blockScrolling += 1;\n\n var selection = this.getSelectionRange();\n this.selection.moveTo(0, 0);\n\n for (var i = ranges.length - 1; i >= 0; --i) {\n if(this.$tryReplace(ranges[i], replacement)) {\n replaced++;\n }\n }\n\n this.selection.setSelectionRange(selection);\n this.$blockScrolling -= 1;\n\n return replaced;\n };\n\n this.$tryReplace = function(range, replacement) {\n var input = this.session.getTextRange(range);\n replacement = this.$search.replace(input, replacement);\n if (replacement !== null) {\n range.end = this.session.replace(range, replacement);\n return range;\n } else {\n return null;\n }\n };\n this.getLastSearchOptions = function() {\n return this.$search.getOptions();\n };\n this.find = function(needle, options, animate) {\n if (!options)\n options = {};\n\n if (typeof needle == \"string\" || needle instanceof RegExp)\n options.needle = needle;\n else if (typeof needle == \"object\")\n oop.mixin(options, needle);\n\n var range = this.selection.getRange();\n if (options.needle == null) {\n needle = this.session.getTextRange(range)\n || this.$search.$options.needle;\n if (!needle) {\n range = this.session.getWordRange(range.start.row, range.start.column);\n needle = this.session.getTextRange(range);\n }\n this.$search.set({needle: needle});\n }\n\n this.$search.set(options);\n if (!options.start)\n this.$search.set({start: range});\n\n var newRange = this.$search.find(this.session);\n if (options.preventScroll)\n return newRange;\n if (newRange) {\n this.revealRange(newRange, animate);\n return newRange;\n }\n if (options.backwards)\n range.start = range.end;\n else\n range.end = range.start;\n this.selection.setRange(range);\n };\n this.findNext = function(options, animate) {\n this.find({skipCurrent: true, backwards: false}, options, animate);\n };\n this.findPrevious = function(options, animate) {\n this.find(options, {skipCurrent: true, backwards: true}, animate);\n };\n\n this.revealRange = function(range, animate) {\n this.$blockScrolling += 1;\n this.session.unfold(range);\n this.selection.setSelectionRange(range);\n this.$blockScrolling -= 1;\n\n var scrollTop = this.renderer.scrollTop;\n this.renderer.scrollSelectionIntoView(range.start, range.end, 0.5);\n if (animate !== false)\n this.renderer.animateScrolling(scrollTop);\n };\n this.undo = function() {\n this.$blockScrolling++;\n this.session.getUndoManager().undo();\n this.$blockScrolling--;\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n this.redo = function() {\n this.$blockScrolling++;\n this.session.getUndoManager().redo();\n this.$blockScrolling--;\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n this.destroy = function() {\n this.renderer.destroy();\n this._signal(\"destroy\", this);\n if (this.session) {\n this.session.destroy();\n }\n };\n this.setAutoScrollEditorIntoView = function(enable) {\n if (!enable)\n return;\n var rect;\n var self = this;\n var shouldScroll = false;\n if (!this.$scrollAnchor)\n this.$scrollAnchor = document.createElement(\"div\");\n var scrollAnchor = this.$scrollAnchor;\n scrollAnchor.style.cssText = \"position:absolute\";\n this.container.insertBefore(scrollAnchor, this.container.firstChild);\n var onChangeSelection = this.on(\"changeSelection\", function() {\n shouldScroll = true;\n });\n var onBeforeRender = this.renderer.on(\"beforeRender\", function() {\n if (shouldScroll)\n rect = self.renderer.container.getBoundingClientRect();\n });\n var onAfterRender = this.renderer.on(\"afterRender\", function() {\n if (shouldScroll && rect && (self.isFocused()\n || self.searchBox && self.searchBox.isFocused())\n ) {\n var renderer = self.renderer;\n var pos = renderer.$cursorLayer.$pixelPos;\n var config = renderer.layerConfig;\n var top = pos.top - config.offset;\n if (pos.top >= 0 && top + rect.top < 0) {\n shouldScroll = true;\n } else if (pos.top < config.height &&\n pos.top + rect.top + config.lineHeight > window.innerHeight) {\n shouldScroll = false;\n } else {\n shouldScroll = null;\n }\n if (shouldScroll != null) {\n scrollAnchor.style.top = top + \"px\";\n scrollAnchor.style.left = pos.left + \"px\";\n scrollAnchor.style.height = config.lineHeight + \"px\";\n scrollAnchor.scrollIntoView(shouldScroll);\n }\n shouldScroll = rect = null;\n }\n });\n this.setAutoScrollEditorIntoView = function(enable) {\n if (enable)\n return;\n delete this.setAutoScrollEditorIntoView;\n this.off(\"changeSelection\", onChangeSelection);\n this.renderer.off(\"afterRender\", onAfterRender);\n this.renderer.off(\"beforeRender\", onBeforeRender);\n };\n };\n\n\n this.$resetCursorStyle = function() {\n var style = this.$cursorStyle || \"ace\";\n var cursorLayer = this.renderer.$cursorLayer;\n if (!cursorLayer)\n return;\n cursorLayer.setSmoothBlinking(/smooth/.test(style));\n cursorLayer.isBlinking = !this.$readOnly && style != \"wide\";\n dom.setCssClass(cursorLayer.element, \"ace_slim-cursors\", /slim/.test(style));\n };\n\n}).call(Editor.prototype);\n\n\n\nconfig.defineOptions(Editor.prototype, \"editor\", {\n selectionStyle: {\n set: function(style) {\n this.onSelectionChange();\n this._signal(\"changeSelectionStyle\", {data: style});\n },\n initialValue: \"line\"\n },\n highlightActiveLine: {\n set: function() {this.$updateHighlightActiveLine();},\n initialValue: true\n },\n highlightSelectedWord: {\n set: function(shouldHighlight) {this.$onSelectionChange();},\n initialValue: true\n },\n readOnly: {\n set: function(readOnly) {\n this.$resetCursorStyle(); \n },\n initialValue: false\n },\n cursorStyle: {\n set: function(val) { this.$resetCursorStyle(); },\n values: [\"ace\", \"slim\", \"smooth\", \"wide\"],\n initialValue: \"ace\"\n },\n mergeUndoDeltas: {\n values: [false, true, \"always\"],\n initialValue: true\n },\n behavioursEnabled: {initialValue: true},\n wrapBehavioursEnabled: {initialValue: true},\n autoScrollEditorIntoView: {\n set: function(val) {this.setAutoScrollEditorIntoView(val);}\n },\n keyboardHandler: {\n set: function(val) { this.setKeyboardHandler(val); },\n get: function() { return this.keybindingId; },\n handlesSet: true\n },\n\n hScrollBarAlwaysVisible: \"renderer\",\n vScrollBarAlwaysVisible: \"renderer\",\n highlightGutterLine: \"renderer\",\n animatedScroll: \"renderer\",\n showInvisibles: \"renderer\",\n showPrintMargin: \"renderer\",\n printMarginColumn: \"renderer\",\n printMargin: \"renderer\",\n fadeFoldWidgets: \"renderer\",\n showFoldWidgets: \"renderer\",\n showLineNumbers: \"renderer\",\n showGutter: \"renderer\",\n displayIndentGuides: \"renderer\",\n fontSize: \"renderer\",\n fontFamily: \"renderer\",\n maxLines: \"renderer\",\n minLines: \"renderer\",\n scrollPastEnd: \"renderer\",\n fixedWidthGutter: \"renderer\",\n theme: \"renderer\",\n\n scrollSpeed: \"$mouseHandler\",\n dragDelay: \"$mouseHandler\",\n dragEnabled: \"$mouseHandler\",\n focusTimout: \"$mouseHandler\",\n tooltipFollowsMouse: \"$mouseHandler\",\n\n firstLineNumber: \"session\",\n overwrite: \"session\",\n newLineMode: \"session\",\n useWorker: \"session\",\n useSoftTabs: \"session\",\n tabSize: \"session\",\n wrap: \"session\",\n indentedSoftWrap: \"session\",\n foldStyle: \"session\",\n mode: \"session\"\n});\n\nexports.Editor = Editor;\n});\n\nace.define(\"ace/undomanager\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nvar UndoManager = function() {\n this.reset();\n};\n\n(function() {\n this.execute = function(options) {\n var deltaSets = options.args[0];\n this.$doc = options.args[1];\n if (options.merge && this.hasUndo()){\n this.dirtyCounter--;\n deltaSets = this.$undoStack.pop().concat(deltaSets);\n }\n this.$undoStack.push(deltaSets);\n this.$redoStack = [];\n if (this.dirtyCounter < 0) {\n this.dirtyCounter = NaN;\n }\n this.dirtyCounter++;\n };\n this.undo = function(dontSelect) {\n var deltaSets = this.$undoStack.pop();\n var undoSelectionRange = null;\n if (deltaSets) {\n undoSelectionRange = this.$doc.undoChanges(deltaSets, dontSelect);\n this.$redoStack.push(deltaSets);\n this.dirtyCounter--;\n }\n\n return undoSelectionRange;\n };\n this.redo = function(dontSelect) {\n var deltaSets = this.$redoStack.pop();\n var redoSelectionRange = null;\n if (deltaSets) {\n redoSelectionRange =\n this.$doc.redoChanges(this.$deserializeDeltas(deltaSets), dontSelect);\n this.$undoStack.push(deltaSets);\n this.dirtyCounter++;\n }\n return redoSelectionRange;\n };\n this.reset = function() {\n this.$undoStack = [];\n this.$redoStack = [];\n this.dirtyCounter = 0;\n };\n this.hasUndo = function() {\n return this.$undoStack.length > 0;\n };\n this.hasRedo = function() {\n return this.$redoStack.length > 0;\n };\n this.markClean = function() {\n this.dirtyCounter = 0;\n };\n this.isClean = function() {\n return this.dirtyCounter === 0;\n };\n this.$serializeDeltas = function(deltaSets) {\n return cloneDeltaSetsObj(deltaSets, $serializeDelta);\n };\n this.$deserializeDeltas = function(deltaSets) {\n return cloneDeltaSetsObj(deltaSets, $deserializeDelta);\n };\n \n function $serializeDelta(delta){\n return {\n action: delta.action,\n start: delta.start,\n end: delta.end,\n lines: delta.lines.length == 1 ? null : delta.lines,\n text: delta.lines.length == 1 ? delta.lines[0] : null\n };\n }\n \n function $deserializeDelta(delta) {\n return {\n action: delta.action,\n start: delta.start,\n end: delta.end,\n lines: delta.lines || [delta.text]\n };\n }\n \n function cloneDeltaSetsObj(deltaSets_old, fnGetModifiedDelta) {\n var deltaSets_new = new Array(deltaSets_old.length);\n for (var i = 0; i < deltaSets_old.length; i++) {\n var deltaSet_old = deltaSets_old[i];\n var deltaSet_new = { group: deltaSet_old.group, deltas: new Array(deltaSet_old.length)};\n \n for (var j = 0; j < deltaSet_old.deltas.length; j++) {\n var delta_old = deltaSet_old.deltas[j];\n deltaSet_new.deltas[j] = fnGetModifiedDelta(delta_old);\n }\n \n deltaSets_new[i] = deltaSet_new;\n }\n return deltaSets_new;\n }\n \n}).call(UndoManager.prototype);\n\nexports.UndoManager = UndoManager;\n});\n\nace.define(\"ace/layer/gutter\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar oop = acequire(\"../lib/oop\");\nvar lang = acequire(\"../lib/lang\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar Gutter = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_gutter-layer\";\n parentEl.appendChild(this.element);\n this.setShowFoldWidgets(this.$showFoldWidgets);\n \n this.gutterWidth = 0;\n\n this.$annotations = [];\n this.$updateAnnotations = this.$updateAnnotations.bind(this);\n\n this.$cells = [];\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n\n this.setSession = function(session) {\n if (this.session)\n this.session.removeEventListener(\"change\", this.$updateAnnotations);\n this.session = session;\n if (session)\n session.on(\"change\", this.$updateAnnotations);\n };\n\n this.addGutterDecoration = function(row, className){\n if (window.console)\n console.warn && console.warn(\"deprecated use session.addGutterDecoration\");\n this.session.addGutterDecoration(row, className);\n };\n\n this.removeGutterDecoration = function(row, className){\n if (window.console)\n console.warn && console.warn(\"deprecated use session.removeGutterDecoration\");\n this.session.removeGutterDecoration(row, className);\n };\n\n this.setAnnotations = function(annotations) {\n this.$annotations = [];\n for (var i = 0; i < annotations.length; i++) {\n var annotation = annotations[i];\n var row = annotation.row;\n var rowInfo = this.$annotations[row];\n if (!rowInfo)\n rowInfo = this.$annotations[row] = {text: []};\n \n var annoText = annotation.text;\n annoText = annoText ? lang.escapeHTML(annoText) : annotation.html || \"\";\n\n if (rowInfo.text.indexOf(annoText) === -1)\n rowInfo.text.push(annoText);\n\n var type = annotation.type;\n if (type == \"error\")\n rowInfo.className = \" ace_error\";\n else if (type == \"warning\" && rowInfo.className != \" ace_error\")\n rowInfo.className = \" ace_warning\";\n else if (type == \"info\" && (!rowInfo.className))\n rowInfo.className = \" ace_info\";\n }\n };\n\n this.$updateAnnotations = function (delta) {\n if (!this.$annotations.length)\n return;\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n } else if (delta.action == 'remove') {\n this.$annotations.splice(firstRow, len + 1, null);\n } else {\n var args = new Array(len + 1);\n args.unshift(firstRow, 1);\n this.$annotations.splice.apply(this.$annotations, args);\n }\n };\n\n this.update = function(config) {\n var session = this.session;\n var firstRow = config.firstRow;\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n session.getLength() - 1);\n var fold = session.getNextFoldLine(firstRow);\n var foldStart = fold ? fold.start.row : Infinity;\n var foldWidgets = this.$showFoldWidgets && session.foldWidgets;\n var breakpoints = session.$breakpoints;\n var decorations = session.$decorations;\n var firstLineNumber = session.$firstLineNumber;\n var lastLineNumber = 0;\n \n var gutterRenderer = session.gutterRenderer || this.$renderer;\n\n var cell = null;\n var index = -1;\n var row = firstRow;\n while (true) {\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = session.getNextFoldLine(row, fold);\n foldStart = fold ? fold.start.row : Infinity;\n }\n if (row > lastRow) {\n while (this.$cells.length > index + 1) {\n cell = this.$cells.pop();\n this.element.removeChild(cell.element);\n }\n break;\n }\n\n cell = this.$cells[++index];\n if (!cell) {\n cell = {element: null, textNode: null, foldWidget: null};\n cell.element = dom.createElement(\"div\");\n cell.textNode = document.createTextNode('');\n cell.element.appendChild(cell.textNode);\n this.element.appendChild(cell.element);\n this.$cells[index] = cell;\n }\n\n var className = \"ace_gutter-cell \";\n if (breakpoints[row])\n className += breakpoints[row];\n if (decorations[row])\n className += decorations[row];\n if (this.$annotations[row])\n className += this.$annotations[row].className;\n if (cell.element.className != className)\n cell.element.className = className;\n\n var height = session.getRowLength(row) * config.lineHeight + \"px\";\n if (height != cell.element.style.height)\n cell.element.style.height = height;\n\n if (foldWidgets) {\n var c = foldWidgets[row];\n if (c == null)\n c = foldWidgets[row] = session.getFoldWidget(row);\n }\n\n if (c) {\n if (!cell.foldWidget) {\n cell.foldWidget = dom.createElement(\"span\");\n cell.element.appendChild(cell.foldWidget);\n }\n var className = \"ace_fold-widget ace_\" + c;\n if (c == \"start\" && row == foldStart && row < fold.end.row)\n className += \" ace_closed\";\n else\n className += \" ace_open\";\n if (cell.foldWidget.className != className)\n cell.foldWidget.className = className;\n\n var height = config.lineHeight + \"px\";\n if (cell.foldWidget.style.height != height)\n cell.foldWidget.style.height = height;\n } else {\n if (cell.foldWidget) {\n cell.element.removeChild(cell.foldWidget);\n cell.foldWidget = null;\n }\n }\n \n var text = lastLineNumber = gutterRenderer\n ? gutterRenderer.getText(session, row)\n : row + firstLineNumber;\n if (text !== cell.textNode.data)\n cell.textNode.data = text;\n\n row++;\n }\n\n this.element.style.height = config.minHeight + \"px\";\n\n if (this.$fixedWidth || session.$useWrapMode)\n lastLineNumber = session.getLength() + firstLineNumber;\n\n var gutterWidth = gutterRenderer \n ? gutterRenderer.getWidth(session, lastLineNumber, config)\n : lastLineNumber.toString().length * config.characterWidth;\n \n var padding = this.$padding || this.$computePadding();\n gutterWidth += padding.left + padding.right;\n if (gutterWidth !== this.gutterWidth && !isNaN(gutterWidth)) {\n this.gutterWidth = gutterWidth;\n this.element.style.width = Math.ceil(this.gutterWidth) + \"px\";\n this._emit(\"changeGutterWidth\", gutterWidth);\n }\n };\n\n this.$fixedWidth = false;\n \n this.$showLineNumbers = true;\n this.$renderer = \"\";\n this.setShowLineNumbers = function(show) {\n this.$renderer = !show && {\n getWidth: function() {return \"\";},\n getText: function() {return \"\";}\n };\n };\n \n this.getShowLineNumbers = function() {\n return this.$showLineNumbers;\n };\n \n this.$showFoldWidgets = true;\n this.setShowFoldWidgets = function(show) {\n if (show)\n dom.addCssClass(this.element, \"ace_folding-enabled\");\n else\n dom.removeCssClass(this.element, \"ace_folding-enabled\");\n\n this.$showFoldWidgets = show;\n this.$padding = null;\n };\n \n this.getShowFoldWidgets = function() {\n return this.$showFoldWidgets;\n };\n\n this.$computePadding = function() {\n if (!this.element.firstChild)\n return {left: 0, right: 0};\n var style = dom.computedStyle(this.element.firstChild);\n this.$padding = {};\n this.$padding.left = parseInt(style.paddingLeft) + 1 || 0;\n this.$padding.right = parseInt(style.paddingRight) || 0;\n return this.$padding;\n };\n\n this.getRegion = function(point) {\n var padding = this.$padding || this.$computePadding();\n var rect = this.element.getBoundingClientRect();\n if (point.x < padding.left + rect.left)\n return \"markers\";\n if (this.$showFoldWidgets && point.x > rect.right - padding.right)\n return \"foldWidgets\";\n };\n\n}).call(Gutter.prototype);\n\nexports.Gutter = Gutter;\n\n});\n\nace.define(\"ace/layer/marker\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nvar dom = acequire(\"../lib/dom\");\n\nvar Marker = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_marker-layer\";\n parentEl.appendChild(this.element);\n};\n\n(function() {\n\n this.$padding = 0;\n\n this.setPadding = function(padding) {\n this.$padding = padding;\n };\n this.setSession = function(session) {\n this.session = session;\n };\n \n this.setMarkers = function(markers) {\n this.markers = markers;\n };\n\n this.update = function(config) {\n if (!config) return;\n\n this.config = config;\n\n\n var html = [];\n for (var key in this.markers) {\n var marker = this.markers[key];\n\n if (!marker.range) {\n marker.update(html, this, this.session, config);\n continue;\n }\n\n var range = marker.range.clipRows(config.firstRow, config.lastRow);\n if (range.isEmpty()) continue;\n\n range = range.toScreenRange(this.session);\n if (marker.renderer) {\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + (this.session.$bidiHandler.isBidiRow(range.start.row)\n ? this.session.$bidiHandler.getPosLeft(range.start.column)\n : range.start.column * config.characterWidth);\n marker.renderer(html, range, left, top, config);\n } else if (marker.type == \"fullLine\") {\n this.drawFullLineMarker(html, range, marker.clazz, config);\n } else if (marker.type == \"screenLine\") {\n this.drawScreenLineMarker(html, range, marker.clazz, config);\n } else if (range.isMultiLine()) {\n if (marker.type == \"text\")\n this.drawTextMarker(html, range, marker.clazz, config);\n else\n this.drawMultiLineMarker(html, range, marker.clazz, config);\n } else {\n if (this.session.$bidiHandler.isBidiRow(range.start.row)) {\n this.drawBidiSingleLineMarker(html, range, marker.clazz + \" ace_start\" + \" ace_br15\", config);\n } else {\n this.drawSingleLineMarker(html, range, marker.clazz + \" ace_start\" + \" ace_br15\", config);\n }\n }\n }\n this.element.innerHTML = html.join(\"\");\n };\n\n this.$getTop = function(row, layerConfig) {\n return (row - layerConfig.firstRowScreen) * layerConfig.lineHeight;\n };\n\n function getBorderClass(tl, tr, br, bl) {\n return (tl ? 1 : 0) | (tr ? 2 : 0) | (br ? 4 : 0) | (bl ? 8 : 0);\n }\n this.drawTextMarker = function(stringBuilder, range, clazz, layerConfig, extraStyle) {\n var session = this.session;\n var start = range.start.row;\n var end = range.end.row;\n var row = start;\n var prev = 0; \n var curr = 0;\n var next = session.getScreenLastRowColumn(row);\n var clazzModified = null;\n var lineRange = new Range(row, range.start.column, row, curr);\n for (; row <= end; row++) {\n lineRange.start.row = lineRange.end.row = row;\n lineRange.start.column = row == start ? range.start.column : session.getRowWrapIndent(row);\n lineRange.end.column = next;\n prev = curr;\n curr = next;\n next = row + 1 < end ? session.getScreenLastRowColumn(row + 1) : row == end ? 0 : range.end.column;\n clazzModified = clazz + (row == start ? \" ace_start\" : \"\") + \" ace_br\"\n + getBorderClass(row == start || row == start + 1 && range.start.column, prev < curr, curr > next, row == end);\n\n if (this.session.$bidiHandler.isBidiRow(row)) {\n this.drawBidiSingleLineMarker(stringBuilder, lineRange, clazzModified,\n layerConfig, row == end ? 0 : 1, extraStyle);\n } else {\n this.drawSingleLineMarker(stringBuilder, lineRange, clazzModified,\n layerConfig, row == end ? 0 : 1, extraStyle);\n }\n }\n };\n this.drawMultiLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n var padding = this.$padding;\n var height, top, left;\n extraStyle = extraStyle || \"\";\n if (this.session.$bidiHandler.isBidiRow(range.start.row)) {\n var range1 = range.clone();\n range1.end.row = range1.start.row;\n range1.end.column = this.session.getLine(range1.start.row).length;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br1 ace_start\", config, null, extraStyle);\n } else {\n height = config.lineHeight;\n top = this.$getTop(range.start.row, config);\n left = padding + range.start.column * config.characterWidth;\n stringBuilder.push(\n \"<div class='\", clazz, \" ace_br1 ace_start' style='\",\n \"height:\", height, \"px;\",\n \"right:0;\",\n \"top:\", top, \"px;\",\n \"left:\", left, \"px;\", extraStyle, \"'></div>\"\n );\n }\n if (this.session.$bidiHandler.isBidiRow(range.end.row)) {\n var range1 = range.clone();\n range1.start.row = range1.end.row;\n range1.start.column = 0;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br12\", config, null, extraStyle);\n } else {\n var width = range.end.column * config.characterWidth;\n height = config.lineHeight;\n top = this.$getTop(range.end.row, config);\n stringBuilder.push(\n \"<div class='\", clazz, \" ace_br12' style='\",\n \"height:\", height, \"px;\",\n \"width:\", width, \"px;\",\n \"top:\", top, \"px;\",\n \"left:\", padding, \"px;\", extraStyle, \"'></div>\"\n );\n }\n height = (range.end.row - range.start.row - 1) * config.lineHeight;\n if (height <= 0)\n return;\n top = this.$getTop(range.start.row + 1, config);\n \n var radiusClass = (range.start.column ? 1 : 0) | (range.end.column ? 0 : 8);\n\n stringBuilder.push(\n \"<div class='\", clazz, (radiusClass ? \" ace_br\" + radiusClass : \"\"), \"' style='\",\n \"height:\", height, \"px;\",\n \"right:0;\",\n \"top:\", top, \"px;\",\n \"left:\", padding, \"px;\", extraStyle, \"'></div>\"\n );\n };\n this.drawSingleLineMarker = function(stringBuilder, range, clazz, config, extraLength, extraStyle) {\n var height = config.lineHeight;\n var width = (range.end.column + (extraLength || 0) - range.start.column) * config.characterWidth;\n\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n\n stringBuilder.push(\n \"<div class='\", clazz, \"' style='\",\n \"height:\", height, \"px;\",\n \"width:\", width, \"px;\",\n \"top:\", top, \"px;\",\n \"left:\", left, \"px;\", extraStyle || \"\", \"'></div>\"\n );\n };\n this.drawBidiSingleLineMarker = function(stringBuilder, range, clazz, config, extraLength, extraStyle) {\n var height = config.lineHeight, top = this.$getTop(range.start.row, config), padding = this.$padding;\n var selections = this.session.$bidiHandler.getSelections(range.start.column, range.end.column);\n\n selections.forEach(function(selection) {\n stringBuilder.push(\n \"<div class='\", clazz, \"' style='\",\n \"height:\", height, \"px;\",\n \"width:\", selection.width + (extraLength || 0), \"px;\",\n \"top:\", top, \"px;\",\n \"left:\", padding + selection.left, \"px;\", extraStyle || \"\", \"'></div>\"\n );\n });\n };\n\n this.drawFullLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n if (range.start.row != range.end.row)\n height += this.$getTop(range.end.row, config) - top;\n\n stringBuilder.push(\n \"<div class='\", clazz, \"' style='\",\n \"height:\", height, \"px;\",\n \"top:\", top, \"px;\",\n \"left:0;right:0;\", extraStyle || \"\", \"'></div>\"\n );\n };\n \n this.drawScreenLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n\n stringBuilder.push(\n \"<div class='\", clazz, \"' style='\",\n \"height:\", height, \"px;\",\n \"top:\", top, \"px;\",\n \"left:0;right:0;\", extraStyle || \"\", \"'></div>\"\n );\n };\n\n}).call(Marker.prototype);\n\nexports.Marker = Marker;\n\n});\n\nace.define(\"ace/layer/text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar dom = acequire(\"../lib/dom\");\nvar lang = acequire(\"../lib/lang\");\nvar useragent = acequire(\"../lib/useragent\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar Text = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_text-layer\";\n parentEl.appendChild(this.element);\n this.$updateEolChar = this.$updateEolChar.bind(this);\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n\n this.EOF_CHAR = \"\\xB6\";\n this.EOL_CHAR_LF = \"\\xAC\";\n this.EOL_CHAR_CRLF = \"\\xa4\";\n this.EOL_CHAR = this.EOL_CHAR_LF;\n this.TAB_CHAR = \"\\u2014\"; //\"\\u21E5\";\n this.SPACE_CHAR = \"\\xB7\";\n this.$padding = 0;\n\n this.$updateEolChar = function() {\n var EOL_CHAR = this.session.doc.getNewLineCharacter() == \"\\n\"\n ? this.EOL_CHAR_LF\n : this.EOL_CHAR_CRLF;\n if (this.EOL_CHAR != EOL_CHAR) {\n this.EOL_CHAR = EOL_CHAR;\n return true;\n }\n };\n\n this.setPadding = function(padding) {\n this.$padding = padding;\n this.element.style.padding = \"0 \" + padding + \"px\";\n };\n\n this.getLineHeight = function() {\n return this.$fontMetrics.$characterSize.height || 0;\n };\n\n this.getCharacterWidth = function() {\n return this.$fontMetrics.$characterSize.width || 0;\n };\n \n this.$setFontMetrics = function(measure) {\n this.$fontMetrics = measure;\n this.$fontMetrics.on(\"changeCharacterSize\", function(e) {\n this._signal(\"changeCharacterSize\", e);\n }.bind(this));\n this.$pollSizeChanges();\n };\n\n this.checkForSizeChanges = function() {\n this.$fontMetrics.checkForSizeChanges();\n };\n this.$pollSizeChanges = function() {\n return this.$pollSizeChangesTimer = this.$fontMetrics.$pollSizeChanges();\n };\n this.setSession = function(session) {\n this.session = session;\n if (session)\n this.$computeTabString();\n };\n\n this.showInvisibles = false;\n this.setShowInvisibles = function(showInvisibles) {\n if (this.showInvisibles == showInvisibles)\n return false;\n\n this.showInvisibles = showInvisibles;\n this.$computeTabString();\n return true;\n };\n\n this.displayIndentGuides = true;\n this.setDisplayIndentGuides = function(display) {\n if (this.displayIndentGuides == display)\n return false;\n\n this.displayIndentGuides = display;\n this.$computeTabString();\n return true;\n };\n\n this.$tabStrings = [];\n this.onChangeTabSize =\n this.$computeTabString = function() {\n var tabSize = this.session.getTabSize();\n this.tabSize = tabSize;\n var tabStr = this.$tabStrings = [0];\n for (var i = 1; i < tabSize + 1; i++) {\n if (this.showInvisibles) {\n tabStr.push(\"<span class='ace_invisible ace_invisible_tab'>\"\n + lang.stringRepeat(this.TAB_CHAR, i)\n + \"</span>\");\n } else {\n tabStr.push(lang.stringRepeat(\" \", i));\n }\n }\n if (this.displayIndentGuides) {\n this.$indentGuideRe = /\\s\\S| \\t|\\t |\\s$/;\n var className = \"ace_indent-guide\";\n var spaceClass = \"\";\n var tabClass = \"\";\n if (this.showInvisibles) {\n className += \" ace_invisible\";\n spaceClass = \" ace_invisible_space\";\n tabClass = \" ace_invisible_tab\";\n var spaceContent = lang.stringRepeat(this.SPACE_CHAR, this.tabSize);\n var tabContent = lang.stringRepeat(this.TAB_CHAR, this.tabSize);\n } else{\n var spaceContent = lang.stringRepeat(\" \", this.tabSize);\n var tabContent = spaceContent;\n }\n\n this.$tabStrings[\" \"] = \"<span class='\" + className + spaceClass + \"'>\" + spaceContent + \"</span>\";\n this.$tabStrings[\"\\t\"] = \"<span class='\" + className + tabClass + \"'>\" + tabContent + \"</span>\";\n }\n };\n\n this.updateLines = function(config, firstRow, lastRow) {\n if (this.config.lastRow != config.lastRow ||\n this.config.firstRow != config.firstRow) {\n this.scrollLines(config);\n }\n this.config = config;\n\n var first = Math.max(firstRow, config.firstRow);\n var last = Math.min(lastRow, config.lastRow);\n\n var lineElements = this.element.childNodes;\n var lineElementsIdx = 0;\n\n for (var row = config.firstRow; row < first; row++) {\n var foldLine = this.session.getFoldLine(row);\n if (foldLine) {\n if (foldLine.containsRow(first)) {\n first = foldLine.start.row;\n break;\n } else {\n row = foldLine.end.row;\n }\n }\n lineElementsIdx ++;\n }\n\n var row = first;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row+1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row :Infinity;\n }\n if (row > last)\n break;\n\n var lineElement = lineElements[lineElementsIdx++];\n if (lineElement) {\n var html = [];\n this.$renderLine(\n html, row, !this.$useLineGroups(), row == foldStart ? foldLine : false\n );\n lineElement.style.height = config.lineHeight * this.session.getRowLength(row) + \"px\";\n lineElement.innerHTML = html.join(\"\");\n }\n row++;\n }\n };\n\n this.scrollLines = function(config) {\n var oldConfig = this.config;\n this.config = config;\n\n if (!oldConfig || oldConfig.lastRow < config.firstRow)\n return this.update(config);\n\n if (config.lastRow < oldConfig.firstRow)\n return this.update(config);\n\n var el = this.element;\n if (oldConfig.firstRow < config.firstRow)\n for (var row=this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row>0; row--)\n el.removeChild(el.firstChild);\n\n if (oldConfig.lastRow > config.lastRow)\n for (var row=this.session.getFoldedRowCount(config.lastRow + 1, oldConfig.lastRow); row>0; row--)\n el.removeChild(el.lastChild);\n\n if (config.firstRow < oldConfig.firstRow) {\n var fragment = this.$renderLinesFragment(config, config.firstRow, oldConfig.firstRow - 1);\n if (el.firstChild)\n el.insertBefore(fragment, el.firstChild);\n else\n el.appendChild(fragment);\n }\n\n if (config.lastRow > oldConfig.lastRow) {\n var fragment = this.$renderLinesFragment(config, oldConfig.lastRow + 1, config.lastRow);\n el.appendChild(fragment);\n }\n };\n\n this.$renderLinesFragment = function(config, firstRow, lastRow) {\n var fragment = this.element.ownerDocument.createDocumentFragment();\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row+1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n\n var container = dom.createElement(\"div\");\n\n var html = [];\n this.$renderLine(html, row, false, row == foldStart ? foldLine : false);\n container.innerHTML = html.join(\"\");\n if (this.$useLineGroups()) {\n container.className = 'ace_line_group';\n fragment.appendChild(container);\n container.style.height = config.lineHeight * this.session.getRowLength(row) + \"px\";\n\n } else {\n while(container.firstChild)\n fragment.appendChild(container.firstChild);\n }\n\n row++;\n }\n return fragment;\n };\n\n this.update = function(config) {\n this.config = config;\n\n var html = [];\n var firstRow = config.firstRow, lastRow = config.lastRow;\n\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row+1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row :Infinity;\n }\n if (row > lastRow)\n break;\n\n if (this.$useLineGroups())\n html.push(\"<div class='ace_line_group' style='height:\", config.lineHeight*this.session.getRowLength(row), \"px'>\");\n\n this.$renderLine(html, row, false, row == foldStart ? foldLine : false);\n\n if (this.$useLineGroups())\n html.push(\"</div>\"); // end the line group\n\n row++;\n }\n this.element.innerHTML = html.join(\"\");\n };\n\n this.$textToken = {\n \"text\": true,\n \"rparen\": true,\n \"lparen\": true\n };\n\n this.$renderToken = function(stringBuilder, screenColumn, token, value) {\n var self = this;\n var replaceReg = /\\t|&|<|>|( +)|([\\x00-\\x1f\\x80-\\xa0\\xad\\u1680\\u180E\\u2000-\\u200f\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF\\uFFF9-\\uFFFC])|[\\u1100-\\u115F\\u11A3-\\u11A7\\u11FA-\\u11FF\\u2329-\\u232A\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3000-\\u303E\\u3041-\\u3096\\u3099-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u3190-\\u31BA\\u31C0-\\u31E3\\u31F0-\\u321E\\u3220-\\u3247\\u3250-\\u32FE\\u3300-\\u4DBF\\u4E00-\\uA48C\\uA490-\\uA4C6\\uA960-\\uA97C\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFAFF\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFF01-\\uFF60\\uFFE0-\\uFFE6]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n var replaceFunc = function(c, a, b, tabIdx, idx4) {\n if (a) {\n return self.showInvisibles\n ? \"<span class='ace_invisible ace_invisible_space'>\" + lang.stringRepeat(self.SPACE_CHAR, c.length) + \"</span>\"\n : c;\n } else if (c == \"&\") {\n return \"&\";\n } else if (c == \"<\") {\n return \"<\";\n } else if (c == \">\") {\n return \">\";\n } else if (c == \"\\t\") {\n var tabSize = self.session.getScreenTabSize(screenColumn + tabIdx);\n screenColumn += tabSize - 1;\n return self.$tabStrings[tabSize];\n } else if (c == \"\\u3000\") {\n var classToUse = self.showInvisibles ? \"ace_cjk ace_invisible ace_invisible_space\" : \"ace_cjk\";\n var space = self.showInvisibles ? self.SPACE_CHAR : \"\";\n screenColumn += 1;\n return \"<span class='\" + classToUse + \"' style='width:\" +\n (self.config.characterWidth * 2) +\n \"px'>\" + space + \"</span>\";\n } else if (b) {\n return \"<span class='ace_invisible ace_invisible_space ace_invalid'>\" + self.SPACE_CHAR + \"</span>\";\n } else {\n screenColumn += 1;\n return \"<span class='ace_cjk' style='width:\" +\n (self.config.characterWidth * 2) +\n \"px'>\" + c + \"</span>\";\n }\n };\n\n var output = value.replace(replaceReg, replaceFunc);\n\n if (!this.$textToken[token.type]) {\n var classes = \"ace_\" + token.type.replace(/\\./g, \" ace_\");\n var style = \"\";\n if (token.type == \"fold\")\n style = \" style='width:\" + (token.value.length * this.config.characterWidth) + \"px;' \";\n stringBuilder.push(\"<span class='\", classes, \"'\", style, \">\", output, \"</span>\");\n }\n else {\n stringBuilder.push(output);\n }\n return screenColumn + value.length;\n };\n\n this.renderIndentGuide = function(stringBuilder, value, max) {\n var cols = value.search(this.$indentGuideRe);\n if (cols <= 0 || cols >= max)\n return value;\n if (value[0] == \" \") {\n cols -= cols % this.tabSize;\n stringBuilder.push(lang.stringRepeat(this.$tabStrings[\" \"], cols/this.tabSize));\n return value.substr(cols);\n } else if (value[0] == \"\\t\") {\n stringBuilder.push(lang.stringRepeat(this.$tabStrings[\"\\t\"], cols));\n return value.substr(cols);\n }\n return value;\n };\n\n this.$renderWrappedLine = function(stringBuilder, tokens, splits, onlyContents) {\n var chars = 0;\n var split = 0;\n var splitChars = splits[0];\n var screenColumn = 0;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n chars = value.length;\n value = this.renderIndentGuide(stringBuilder, value, splitChars);\n if (!value)\n continue;\n chars -= value.length;\n }\n\n if (chars + value.length < splitChars) {\n screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n chars += value.length;\n } else {\n while (chars + value.length >= splitChars) {\n screenColumn = this.$renderToken(\n stringBuilder, screenColumn,\n token, value.substring(0, splitChars - chars)\n );\n value = value.substring(splitChars - chars);\n chars = splitChars;\n\n if (!onlyContents) {\n stringBuilder.push(\"</div>\",\n \"<div class='ace_line' style='height:\",\n this.config.lineHeight, \"px'>\"\n );\n }\n\n stringBuilder.push(lang.stringRepeat(\"\\xa0\", splits.indent));\n\n split ++;\n screenColumn = 0;\n splitChars = splits[split] || Number.MAX_VALUE;\n }\n if (value.length != 0) {\n chars += value.length;\n screenColumn = this.$renderToken(\n stringBuilder, screenColumn, token, value\n );\n }\n }\n }\n };\n\n this.$renderSimpleLine = function(stringBuilder, tokens) {\n var screenColumn = 0;\n var token = tokens[0];\n var value = token.value;\n if (this.displayIndentGuides)\n value = this.renderIndentGuide(stringBuilder, value);\n if (value)\n screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n for (var i = 1; i < tokens.length; i++) {\n token = tokens[i];\n value = token.value;\n screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n }\n };\n this.$renderLine = function(stringBuilder, row, onlyContents, foldLine) {\n if (!foldLine && foldLine != false)\n foldLine = this.session.getFoldLine(row);\n\n if (foldLine)\n var tokens = this.$getFoldLineTokens(row, foldLine);\n else\n var tokens = this.session.getTokens(row);\n\n\n if (!onlyContents) {\n stringBuilder.push(\n \"<div class='ace_line' style='height:\", \n this.config.lineHeight * (\n this.$useLineGroups() ? 1 :this.session.getRowLength(row)\n ), \"px'>\"\n );\n }\n\n if (tokens.length) {\n var splits = this.session.getRowSplitData(row);\n if (splits && splits.length)\n this.$renderWrappedLine(stringBuilder, tokens, splits, onlyContents);\n else\n this.$renderSimpleLine(stringBuilder, tokens);\n }\n\n if (this.showInvisibles) {\n if (foldLine)\n row = foldLine.end.row;\n\n stringBuilder.push(\n \"<span class='ace_invisible ace_invisible_eol'>\",\n row == this.session.getLength() - 1 ? this.EOF_CHAR : this.EOL_CHAR,\n \"</span>\"\n );\n }\n if (!onlyContents)\n stringBuilder.push(\"</div>\");\n };\n\n this.$getFoldLineTokens = function(row, foldLine) {\n var session = this.session;\n var renderTokens = [];\n\n function addTokens(tokens, from, to) {\n var idx = 0, col = 0;\n while ((col + tokens[idx].value.length) < from) {\n col += tokens[idx].value.length;\n idx++;\n\n if (idx == tokens.length)\n return;\n }\n if (col != from) {\n var value = tokens[idx].value.substring(from - col);\n if (value.length > (to - from))\n value = value.substring(0, to - from);\n\n renderTokens.push({\n type: tokens[idx].type,\n value: value\n });\n\n col = from + value.length;\n idx += 1;\n }\n\n while (col < to && idx < tokens.length) {\n var value = tokens[idx].value;\n if (value.length + col > to) {\n renderTokens.push({\n type: tokens[idx].type,\n value: value.substring(0, to - col)\n });\n } else\n renderTokens.push(tokens[idx]);\n col += value.length;\n idx += 1;\n }\n }\n\n var tokens = session.getTokens(row);\n foldLine.walk(function(placeholder, row, column, lastColumn, isNewRow) {\n if (placeholder != null) {\n renderTokens.push({\n type: \"fold\",\n value: placeholder\n });\n } else {\n if (isNewRow)\n tokens = session.getTokens(row);\n\n if (tokens.length)\n addTokens(tokens, lastColumn, column);\n }\n }, foldLine.end.row, this.session.getLine(foldLine.end.row).length);\n\n return renderTokens;\n };\n\n this.$useLineGroups = function() {\n return this.session.getUseWrapMode();\n };\n\n this.destroy = function() {\n clearInterval(this.$pollSizeChangesTimer);\n if (this.$measureNode)\n this.$measureNode.parentNode.removeChild(this.$measureNode);\n delete this.$measureNode;\n };\n\n}).call(Text.prototype);\n\nexports.Text = Text;\n\n});\n\nace.define(\"ace/layer/cursor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar isIE8;\n\nvar Cursor = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_cursor-layer\";\n parentEl.appendChild(this.element);\n \n if (isIE8 === undefined)\n isIE8 = !(\"opacity\" in this.element.style);\n\n this.isVisible = false;\n this.isBlinking = true;\n this.blinkInterval = 1000;\n this.smoothBlinking = false;\n\n this.cursors = [];\n this.cursor = this.addCursor();\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.$updateCursors = (isIE8\n ? this.$updateVisibility\n : this.$updateOpacity).bind(this);\n};\n\n(function() {\n \n this.$updateVisibility = function(val) {\n var cursors = this.cursors;\n for (var i = cursors.length; i--; )\n cursors[i].style.visibility = val ? \"\" : \"hidden\";\n };\n this.$updateOpacity = function(val) {\n var cursors = this.cursors;\n for (var i = cursors.length; i--; )\n cursors[i].style.opacity = val ? \"\" : \"0\";\n };\n \n\n this.$padding = 0;\n this.setPadding = function(padding) {\n this.$padding = padding;\n };\n\n this.setSession = function(session) {\n this.session = session;\n };\n\n this.setBlinking = function(blinking) {\n if (blinking != this.isBlinking){\n this.isBlinking = blinking;\n this.restartTimer();\n }\n };\n\n this.setBlinkInterval = function(blinkInterval) {\n if (blinkInterval != this.blinkInterval){\n this.blinkInterval = blinkInterval;\n this.restartTimer();\n }\n };\n\n this.setSmoothBlinking = function(smoothBlinking) {\n if (smoothBlinking != this.smoothBlinking && !isIE8) {\n this.smoothBlinking = smoothBlinking;\n dom.setCssClass(this.element, \"ace_smooth-blinking\", smoothBlinking);\n this.$updateCursors(true);\n this.$updateCursors = (this.$updateOpacity).bind(this);\n this.restartTimer();\n }\n };\n\n this.addCursor = function() {\n var el = dom.createElement(\"div\");\n el.className = \"ace_cursor\";\n this.element.appendChild(el);\n this.cursors.push(el);\n return el;\n };\n\n this.removeCursor = function() {\n if (this.cursors.length > 1) {\n var el = this.cursors.pop();\n el.parentNode.removeChild(el);\n return el;\n }\n };\n\n this.hideCursor = function() {\n this.isVisible = false;\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n\n this.showCursor = function() {\n this.isVisible = true;\n dom.removeCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n\n this.restartTimer = function() {\n var update = this.$updateCursors;\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n if (this.smoothBlinking) {\n dom.removeCssClass(this.element, \"ace_smooth-blinking\");\n }\n \n update(true);\n\n if (!this.isBlinking || !this.blinkInterval || !this.isVisible)\n return;\n\n if (this.smoothBlinking) {\n setTimeout(function(){\n dom.addCssClass(this.element, \"ace_smooth-blinking\");\n }.bind(this));\n }\n \n var blink = function(){\n this.timeoutId = setTimeout(function() {\n update(false);\n }, 0.6 * this.blinkInterval);\n }.bind(this);\n\n this.intervalId = setInterval(function() {\n update(true);\n blink();\n }, this.blinkInterval);\n\n blink();\n };\n\n this.getPixelPosition = function(position, onScreen) {\n if (!this.config || !this.session)\n return {left : 0, top : 0};\n\n if (!position)\n position = this.session.selection.getCursor();\n var pos = this.session.documentToScreenPosition(position);\n var cursorLeft = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, position.row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : pos.column * this.config.characterWidth);\n\n var cursorTop = (pos.row - (onScreen ? this.config.firstRowScreen : 0)) *\n this.config.lineHeight;\n\n return {left : cursorLeft, top : cursorTop};\n };\n\n this.update = function(config) {\n this.config = config;\n\n var selections = this.session.$selectionMarkers;\n var i = 0, cursorIndex = 0;\n\n if (selections === undefined || selections.length === 0){\n selections = [{cursor: null}];\n }\n\n for (var i = 0, n = selections.length; i < n; i++) {\n var pixelPos = this.getPixelPosition(selections[i].cursor, true);\n if ((pixelPos.top > config.height + config.offset ||\n pixelPos.top < 0) && i > 1) {\n continue;\n }\n\n var style = (this.cursors[cursorIndex++] || this.addCursor()).style;\n \n if (!this.drawCursor) {\n style.left = pixelPos.left + \"px\";\n style.top = pixelPos.top + \"px\";\n style.width = config.characterWidth + \"px\";\n style.height = config.lineHeight + \"px\";\n } else {\n this.drawCursor(style, pixelPos, config, selections[i], this.session);\n }\n }\n while (this.cursors.length > cursorIndex)\n this.removeCursor();\n\n var overwrite = this.session.getOverwrite();\n this.$setOverwrite(overwrite);\n this.$pixelPos = pixelPos;\n this.restartTimer();\n };\n \n this.drawCursor = null;\n\n this.$setOverwrite = function(overwrite) {\n if (overwrite != this.overwrite) {\n this.overwrite = overwrite;\n if (overwrite)\n dom.addCssClass(this.element, \"ace_overwrite-cursors\");\n else\n dom.removeCssClass(this.element, \"ace_overwrite-cursors\");\n }\n };\n\n this.destroy = function() {\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n };\n\n}).call(Cursor.prototype);\n\nexports.Cursor = Cursor;\n\n});\n\nace.define(\"ace/scrollbar\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar event = acequire(\"./lib/event\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar MAX_SCROLL_H = 0x8000;\nvar ScrollBar = function(parent) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_scrollbar ace_scrollbar\" + this.classSuffix;\n\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"ace_scrollbar-inner\";\n this.element.appendChild(this.inner);\n\n parent.appendChild(this.element);\n\n this.setVisible(false);\n this.skipEvent = false;\n\n event.addListener(this.element, \"scroll\", this.onScroll.bind(this));\n event.addListener(this.element, \"mousedown\", event.preventDefault);\n};\n\n(function() {\n oop.implement(this, EventEmitter);\n\n this.setVisible = function(isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n}).call(ScrollBar.prototype);\nvar VScrollBar = function(parent, renderer) {\n ScrollBar.call(this, parent);\n this.scrollTop = 0;\n this.scrollHeight = 0;\n renderer.$scrollbarWidth = \n this.width = dom.scrollbarWidth(parent.ownerDocument);\n this.inner.style.width =\n this.element.style.width = (this.width || 15) + 5 + \"px\";\n this.$minWidth = 0;\n};\n\noop.inherits(VScrollBar, ScrollBar);\n\n(function() {\n\n this.classSuffix = '-v';\n this.onScroll = function() {\n if (!this.skipEvent) {\n this.scrollTop = this.element.scrollTop;\n if (this.coeff != 1) {\n var h = this.element.clientHeight / this.scrollHeight;\n this.scrollTop = this.scrollTop * (1 - h) / (this.coeff - h);\n }\n this._emit(\"scroll\", {data: this.scrollTop});\n }\n this.skipEvent = false;\n };\n this.getWidth = function() {\n return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);\n };\n this.setHeight = function(height) {\n this.element.style.height = height + \"px\";\n };\n this.setInnerHeight =\n this.setScrollHeight = function(height) {\n this.scrollHeight = height;\n if (height > MAX_SCROLL_H) {\n this.coeff = MAX_SCROLL_H / height;\n height = MAX_SCROLL_H;\n } else if (this.coeff != 1) {\n this.coeff = 1;\n }\n this.inner.style.height = height + \"px\";\n };\n this.setScrollTop = function(scrollTop) {\n if (this.scrollTop != scrollTop) {\n this.skipEvent = true;\n this.scrollTop = scrollTop;\n this.element.scrollTop = scrollTop * this.coeff;\n }\n };\n\n}).call(VScrollBar.prototype);\nvar HScrollBar = function(parent, renderer) {\n ScrollBar.call(this, parent);\n this.scrollLeft = 0;\n this.height = renderer.$scrollbarWidth;\n this.inner.style.height =\n this.element.style.height = (this.height || 15) + 5 + \"px\";\n};\n\noop.inherits(HScrollBar, ScrollBar);\n\n(function() {\n\n this.classSuffix = '-h';\n this.onScroll = function() {\n if (!this.skipEvent) {\n this.scrollLeft = this.element.scrollLeft;\n this._emit(\"scroll\", {data: this.scrollLeft});\n }\n this.skipEvent = false;\n };\n this.getHeight = function() {\n return this.isVisible ? this.height : 0;\n };\n this.setWidth = function(width) {\n this.element.style.width = width + \"px\";\n };\n this.setInnerWidth = function(width) {\n this.inner.style.width = width + \"px\";\n };\n this.setScrollWidth = function(width) {\n this.inner.style.width = width + \"px\";\n };\n this.setScrollLeft = function(scrollLeft) {\n if (this.scrollLeft != scrollLeft) {\n this.skipEvent = true;\n this.scrollLeft = this.element.scrollLeft = scrollLeft;\n }\n };\n\n}).call(HScrollBar.prototype);\n\n\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\n\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n});\n\nace.define(\"ace/renderloop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar event = acequire(\"./lib/event\");\n\n\nvar RenderLoop = function(onRender, win) {\n this.onRender = onRender;\n this.pending = false;\n this.changes = 0;\n this.window = win || window;\n};\n\n(function() {\n\n\n this.schedule = function(change) {\n this.changes = this.changes | change;\n if (!this.pending && this.changes) {\n this.pending = true;\n var _self = this;\n event.nextFrame(function() {\n _self.pending = false;\n var changes;\n while (changes = _self.changes) {\n _self.changes = 0;\n _self.onRender(changes);\n }\n }, this.window);\n }\n };\n\n}).call(RenderLoop.prototype);\n\nexports.RenderLoop = RenderLoop;\n});\n\nace.define(\"ace/layer/font_metrics\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\nvar oop = acequire(\"../lib/oop\");\nvar dom = acequire(\"../lib/dom\");\nvar lang = acequire(\"../lib/lang\");\nvar useragent = acequire(\"../lib/useragent\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar CHAR_COUNT = 0;\n\nvar FontMetrics = exports.FontMetrics = function(parentEl) {\n this.el = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.el.style, true);\n \n this.$main = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$main.style);\n \n this.$measureNode = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$measureNode.style);\n \n \n this.el.appendChild(this.$main);\n this.el.appendChild(this.$measureNode);\n parentEl.appendChild(this.el);\n \n if (!CHAR_COUNT)\n this.$testFractionalRect();\n this.$measureNode.innerHTML = lang.stringRepeat(\"X\", CHAR_COUNT);\n \n this.$characterSize = {width: 0, height: 0};\n this.checkForSizeChanges();\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n \n this.$characterSize = {width: 0, height: 0};\n \n this.$testFractionalRect = function() {\n var el = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(el.style);\n el.style.width = \"0.2px\";\n document.documentElement.appendChild(el);\n var w = el.getBoundingClientRect().width;\n if (w > 0 && w < 1)\n CHAR_COUNT = 50;\n else\n CHAR_COUNT = 100;\n el.parentNode.removeChild(el);\n };\n \n this.$setMeasureNodeStyles = function(style, isRoot) {\n style.width = style.height = \"auto\";\n style.left = style.top = \"0px\";\n style.visibility = \"hidden\";\n style.position = \"absolute\";\n style.whiteSpace = \"pre\";\n\n if (useragent.isIE < 8) {\n style[\"font-family\"] = \"inherit\";\n } else {\n style.font = \"inherit\";\n }\n style.overflow = isRoot ? \"hidden\" : \"visible\";\n };\n\n this.checkForSizeChanges = function() {\n var size = this.$measureSizes();\n if (size && (this.$characterSize.width !== size.width || this.$characterSize.height !== size.height)) {\n this.$measureNode.style.fontWeight = \"bold\";\n var boldSize = this.$measureSizes();\n this.$measureNode.style.fontWeight = \"\";\n this.$characterSize = size;\n this.charSizes = Object.create(null);\n this.allowBoldFonts = boldSize && boldSize.width === size.width && boldSize.height === size.height;\n this._emit(\"changeCharacterSize\", {data: size});\n }\n };\n\n this.$pollSizeChanges = function() {\n if (this.$pollSizeChangesTimer)\n return this.$pollSizeChangesTimer;\n var self = this;\n return this.$pollSizeChangesTimer = setInterval(function() {\n self.checkForSizeChanges();\n }, 500);\n };\n \n this.setPolling = function(val) {\n if (val) {\n this.$pollSizeChanges();\n } else if (this.$pollSizeChangesTimer) {\n clearInterval(this.$pollSizeChangesTimer);\n this.$pollSizeChangesTimer = 0;\n }\n };\n\n this.$measureSizes = function() {\n if (CHAR_COUNT === 50) {\n var rect = null;\n try { \n rect = this.$measureNode.getBoundingClientRect();\n } catch(e) {\n rect = {width: 0, height:0 };\n }\n var size = {\n height: rect.height,\n width: rect.width / CHAR_COUNT\n };\n } else {\n var size = {\n height: this.$measureNode.clientHeight,\n width: this.$measureNode.clientWidth / CHAR_COUNT\n };\n }\n if (size.width === 0 || size.height === 0)\n return null;\n return size;\n };\n\n this.$measureCharWidth = function(ch) {\n this.$main.innerHTML = lang.stringRepeat(ch, CHAR_COUNT);\n var rect = this.$main.getBoundingClientRect();\n return rect.width / CHAR_COUNT;\n };\n \n this.getCharacterWidth = function(ch) {\n var w = this.charSizes[ch];\n if (w === undefined) {\n w = this.charSizes[ch] = this.$measureCharWidth(ch) / this.$characterSize.width;\n }\n return w;\n };\n\n this.destroy = function() {\n clearInterval(this.$pollSizeChangesTimer);\n if (this.el && this.el.parentNode)\n this.el.parentNode.removeChild(this.el);\n };\n\n}).call(FontMetrics.prototype);\n\n});\n\nace.define(\"ace/virtual_renderer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/config\",\"ace/lib/useragent\",\"ace/layer/gutter\",\"ace/layer/marker\",\"ace/layer/text\",\"ace/layer/cursor\",\"ace/scrollbar\",\"ace/scrollbar\",\"ace/renderloop\",\"ace/layer/font_metrics\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar config = acequire(\"./config\");\nvar useragent = acequire(\"./lib/useragent\");\nvar GutterLayer = acequire(\"./layer/gutter\").Gutter;\nvar MarkerLayer = acequire(\"./layer/marker\").Marker;\nvar TextLayer = acequire(\"./layer/text\").Text;\nvar CursorLayer = acequire(\"./layer/cursor\").Cursor;\nvar HScrollBar = acequire(\"./scrollbar\").HScrollBar;\nvar VScrollBar = acequire(\"./scrollbar\").VScrollBar;\nvar RenderLoop = acequire(\"./renderloop\").RenderLoop;\nvar FontMetrics = acequire(\"./layer/font_metrics\").FontMetrics;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar editorCss = \".ace_editor {\\\nposition: relative;\\\noverflow: hidden;\\\nfont: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;\\\ndirection: ltr;\\\ntext-align: left;\\\n-webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\\n}\\\n.ace_scroller {\\\nposition: absolute;\\\noverflow: hidden;\\\ntop: 0;\\\nbottom: 0;\\\nbackground-color: inherit;\\\n-ms-user-select: none;\\\n-moz-user-select: none;\\\n-webkit-user-select: none;\\\nuser-select: none;\\\ncursor: text;\\\n}\\\n.ace_content {\\\nposition: absolute;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nmin-width: 100%;\\\n}\\\n.ace_dragging .ace_scroller:before{\\\nposition: absolute;\\\ntop: 0;\\\nleft: 0;\\\nright: 0;\\\nbottom: 0;\\\ncontent: '';\\\nbackground: rgba(250, 250, 250, 0.01);\\\nz-index: 1000;\\\n}\\\n.ace_dragging.ace_dark .ace_scroller:before{\\\nbackground: rgba(0, 0, 0, 0.01);\\\n}\\\n.ace_selecting, .ace_selecting * {\\\ncursor: text !important;\\\n}\\\n.ace_gutter {\\\nposition: absolute;\\\noverflow : hidden;\\\nwidth: auto;\\\ntop: 0;\\\nbottom: 0;\\\nleft: 0;\\\ncursor: default;\\\nz-index: 4;\\\n-ms-user-select: none;\\\n-moz-user-select: none;\\\n-webkit-user-select: none;\\\nuser-select: none;\\\n}\\\n.ace_gutter-active-line {\\\nposition: absolute;\\\nleft: 0;\\\nright: 0;\\\n}\\\n.ace_scroller.ace_scroll-left {\\\nbox-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\\\n}\\\n.ace_gutter-cell {\\\npadding-left: 19px;\\\npadding-right: 6px;\\\nbackground-repeat: no-repeat;\\\n}\\\n.ace_gutter-cell.ace_error {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==\\\");\\\nbackground-repeat: no-repeat;\\\nbackground-position: 2px center;\\\n}\\\n.ace_gutter-cell.ace_warning {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==\\\");\\\nbackground-position: 2px center;\\\n}\\\n.ace_gutter-cell.ace_info {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=\\\");\\\nbackground-position: 2px center;\\\n}\\\n.ace_dark .ace_gutter-cell.ace_info {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace_scrollbar {\\\nposition: absolute;\\\nright: 0;\\\nbottom: 0;\\\nz-index: 6;\\\n}\\\n.ace_scrollbar-inner {\\\nposition: absolute;\\\ncursor: text;\\\nleft: 0;\\\ntop: 0;\\\n}\\\n.ace_scrollbar-v{\\\noverflow-x: hidden;\\\noverflow-y: scroll;\\\ntop: 0;\\\n}\\\n.ace_scrollbar-h {\\\noverflow-x: scroll;\\\noverflow-y: hidden;\\\nleft: 0;\\\n}\\\n.ace_print-margin {\\\nposition: absolute;\\\nheight: 100%;\\\n}\\\n.ace_text-input {\\\nposition: absolute;\\\nz-index: 0;\\\nwidth: 0.5em;\\\nheight: 1em;\\\nopacity: 0;\\\nbackground: transparent;\\\n-moz-appearance: none;\\\nappearance: none;\\\nborder: none;\\\nresize: none;\\\noutline: none;\\\noverflow: hidden;\\\nfont: inherit;\\\npadding: 0 1px;\\\nmargin: 0 -1px;\\\ntext-indent: -1em;\\\n-ms-user-select: text;\\\n-moz-user-select: text;\\\n-webkit-user-select: text;\\\nuser-select: text;\\\nwhite-space: pre!important;\\\n}\\\n.ace_text-input.ace_composition {\\\nbackground: inherit;\\\ncolor: inherit;\\\nz-index: 1000;\\\nopacity: 1;\\\ntext-indent: 0;\\\n}\\\n.ace_layer {\\\nz-index: 1;\\\nposition: absolute;\\\noverflow: hidden;\\\nword-wrap: normal;\\\nwhite-space: pre;\\\nheight: 100%;\\\nwidth: 100%;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\npointer-events: none;\\\n}\\\n.ace_gutter-layer {\\\nposition: relative;\\\nwidth: auto;\\\ntext-align: right;\\\npointer-events: auto;\\\n}\\\n.ace_text-layer {\\\nfont: inherit !important;\\\n}\\\n.ace_cjk {\\\ndisplay: inline-block;\\\ntext-align: center;\\\n}\\\n.ace_cursor-layer {\\\nz-index: 4;\\\n}\\\n.ace_cursor {\\\nz-index: 4;\\\nposition: absolute;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nborder-left: 2px solid;\\\ntransform: translatez(0);\\\n}\\\n.ace_multiselect .ace_cursor {\\\nborder-left-width: 1px;\\\n}\\\n.ace_slim-cursors .ace_cursor {\\\nborder-left-width: 1px;\\\n}\\\n.ace_overwrite-cursors .ace_cursor {\\\nborder-left-width: 0;\\\nborder-bottom: 1px solid;\\\n}\\\n.ace_hidden-cursors .ace_cursor {\\\nopacity: 0.2;\\\n}\\\n.ace_smooth-blinking .ace_cursor {\\\n-webkit-transition: opacity 0.18s;\\\ntransition: opacity 0.18s;\\\n}\\\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\\\nposition: absolute;\\\nz-index: 3;\\\n}\\\n.ace_marker-layer .ace_selection {\\\nposition: absolute;\\\nz-index: 5;\\\n}\\\n.ace_marker-layer .ace_bracket {\\\nposition: absolute;\\\nz-index: 6;\\\n}\\\n.ace_marker-layer .ace_active-line {\\\nposition: absolute;\\\nz-index: 2;\\\n}\\\n.ace_marker-layer .ace_selected-word {\\\nposition: absolute;\\\nz-index: 4;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\n}\\\n.ace_line .ace_fold {\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\ndisplay: inline-block;\\\nheight: 11px;\\\nmargin-top: -2px;\\\nvertical-align: middle;\\\nbackground-image:\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=\\\");\\\nbackground-repeat: no-repeat, repeat-x;\\\nbackground-position: center center, top left;\\\ncolor: transparent;\\\nborder: 1px solid black;\\\nborder-radius: 2px;\\\ncursor: pointer;\\\npointer-events: auto;\\\n}\\\n.ace_dark .ace_fold {\\\n}\\\n.ace_fold:hover{\\\nbackground-image:\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace_tooltip {\\\nbackground-color: #FFF;\\\nbackground-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));\\\nbackground-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));\\\nborder: 1px solid gray;\\\nborder-radius: 1px;\\\nbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\\\ncolor: black;\\\nmax-width: 100%;\\\npadding: 3px 4px;\\\nposition: fixed;\\\nz-index: 999999;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\ncursor: default;\\\nwhite-space: pre;\\\nword-wrap: break-word;\\\nline-height: normal;\\\nfont-style: normal;\\\nfont-weight: normal;\\\nletter-spacing: normal;\\\npointer-events: none;\\\n}\\\n.ace_folding-enabled > .ace_gutter-cell {\\\npadding-right: 13px;\\\n}\\\n.ace_fold-widget {\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nmargin: 0 -12px 0 1px;\\\ndisplay: none;\\\nwidth: 11px;\\\nvertical-align: top;\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==\\\");\\\nbackground-repeat: no-repeat;\\\nbackground-position: center;\\\nborder-radius: 3px;\\\nborder: 1px solid transparent;\\\ncursor: pointer;\\\n}\\\n.ace_folding-enabled .ace_fold-widget {\\\ndisplay: inline-block; \\\n}\\\n.ace_fold-widget.ace_end {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==\\\");\\\n}\\\n.ace_fold-widget.ace_closed {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==\\\");\\\n}\\\n.ace_fold-widget:hover {\\\nborder: 1px solid rgba(0, 0, 0, 0.3);\\\nbackground-color: rgba(255, 255, 255, 0.2);\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\\\n}\\\n.ace_fold-widget:active {\\\nborder: 1px solid rgba(0, 0, 0, 0.4);\\\nbackground-color: rgba(0, 0, 0, 0.05);\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\\\n}\\\n.ace_dark .ace_fold-widget {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace_dark .ace_fold-widget.ace_end {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\\\");\\\n}\\\n.ace_dark .ace_fold-widget.ace_closed {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\\\");\\\n}\\\n.ace_dark .ace_fold-widget:hover {\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\\nbackground-color: rgba(255, 255, 255, 0.1);\\\n}\\\n.ace_dark .ace_fold-widget:active {\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\\n}\\\n.ace_fold-widget.ace_invalid {\\\nbackground-color: #FFB4B4;\\\nborder-color: #DE5555;\\\n}\\\n.ace_fade-fold-widgets .ace_fold-widget {\\\n-webkit-transition: opacity 0.4s ease 0.05s;\\\ntransition: opacity 0.4s ease 0.05s;\\\nopacity: 0;\\\n}\\\n.ace_fade-fold-widgets:hover .ace_fold-widget {\\\n-webkit-transition: opacity 0.05s ease 0.05s;\\\ntransition: opacity 0.05s ease 0.05s;\\\nopacity:1;\\\n}\\\n.ace_underline {\\\ntext-decoration: underline;\\\n}\\\n.ace_bold {\\\nfont-weight: bold;\\\n}\\\n.ace_nobold .ace_bold {\\\nfont-weight: normal;\\\n}\\\n.ace_italic {\\\nfont-style: italic;\\\n}\\\n.ace_error-marker {\\\nbackground-color: rgba(255, 0, 0,0.2);\\\nposition: absolute;\\\nz-index: 9;\\\n}\\\n.ace_highlight-marker {\\\nbackground-color: rgba(255, 255, 0,0.2);\\\nposition: absolute;\\\nz-index: 8;\\\n}\\\n.ace_br1 {border-top-left-radius : 3px;}\\\n.ace_br2 {border-top-right-radius : 3px;}\\\n.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\\\n.ace_br4 {border-bottom-right-radius: 3px;}\\\n.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\\\n.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\\\n.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\\\n.ace_br8 {border-bottom-left-radius : 3px;}\\\n.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\\\n.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\\\n.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_text-input-ios {\\\nposition: absolute !important;\\\ntop: -100000px !important;\\\nleft: -100000px !important;\\\n}\\\n\";\n\ndom.importCssString(editorCss, \"ace_editor.css\");\n\nvar VirtualRenderer = function(container, theme) {\n var _self = this;\n\n this.container = container || dom.createElement(\"div\");\n this.$keepTextAreaAtCursor = !useragent.isOldIE;\n\n dom.addCssClass(this.container, \"ace_editor\");\n\n this.setTheme(theme);\n\n this.$gutter = dom.createElement(\"div\");\n this.$gutter.className = \"ace_gutter\";\n this.container.appendChild(this.$gutter);\n this.$gutter.setAttribute(\"aria-hidden\", true);\n\n this.scroller = dom.createElement(\"div\");\n this.scroller.className = \"ace_scroller\";\n this.container.appendChild(this.scroller);\n\n this.content = dom.createElement(\"div\");\n this.content.className = \"ace_content\";\n this.scroller.appendChild(this.content);\n\n this.$gutterLayer = new GutterLayer(this.$gutter);\n this.$gutterLayer.on(\"changeGutterWidth\", this.onGutterResize.bind(this));\n\n this.$markerBack = new MarkerLayer(this.content);\n\n var textLayer = this.$textLayer = new TextLayer(this.content);\n this.canvas = textLayer.element;\n\n this.$markerFront = new MarkerLayer(this.content);\n\n this.$cursorLayer = new CursorLayer(this.content);\n this.$horizScroll = false;\n this.$vScroll = false;\n\n this.scrollBar = \n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.addEventListener(\"scroll\", function(e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function(e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n\n this.scrollTop = 0;\n this.scrollLeft = 0;\n\n this.cursorPos = {\n row : 0,\n column : 0\n };\n\n this.$fontMetrics = new FontMetrics(this.container);\n this.$textLayer.$setFontMetrics(this.$fontMetrics);\n this.$textLayer.addEventListener(\"changeCharacterSize\", function(e) {\n _self.updateCharacterSize();\n _self.onResize(true, _self.gutterWidth, _self.$size.width, _self.$size.height);\n _self._signal(\"changeCharacterSize\", e);\n });\n\n this.$size = {\n width: 0,\n height: 0,\n scrollerHeight: 0,\n scrollerWidth: 0,\n $dirty: true\n };\n\n this.layerConfig = {\n width : 1,\n padding : 0,\n firstRow : 0,\n firstRowScreen: 0,\n lastRow : 0,\n lineHeight : 0,\n characterWidth : 0,\n minHeight : 1,\n maxHeight : 1,\n offset : 0,\n height : 1,\n gutterOffset: 1\n };\n \n this.scrollMargin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n\n this.$loop = new RenderLoop(\n this.$renderChanges.bind(this),\n this.container.ownerDocument.defaultView\n );\n this.$loop.schedule(this.CHANGE_FULL);\n\n this.updateCharacterSize();\n this.setPadding(4);\n config.resetOptions(this);\n config._emit(\"renderer\", this);\n};\n\n(function() {\n\n this.CHANGE_CURSOR = 1;\n this.CHANGE_MARKER = 2;\n this.CHANGE_GUTTER = 4;\n this.CHANGE_SCROLL = 8;\n this.CHANGE_LINES = 16;\n this.CHANGE_TEXT = 32;\n this.CHANGE_SIZE = 64;\n this.CHANGE_MARKER_BACK = 128;\n this.CHANGE_MARKER_FRONT = 256;\n this.CHANGE_FULL = 512;\n this.CHANGE_H_SCROLL = 1024;\n\n oop.implement(this, EventEmitter);\n\n this.updateCharacterSize = function() {\n if (this.$textLayer.allowBoldFonts != this.$allowBoldFonts) {\n this.$allowBoldFonts = this.$textLayer.allowBoldFonts;\n this.setStyle(\"ace_nobold\", !this.$allowBoldFonts);\n }\n\n this.layerConfig.characterWidth =\n this.characterWidth = this.$textLayer.getCharacterWidth();\n this.layerConfig.lineHeight =\n this.lineHeight = this.$textLayer.getLineHeight();\n this.$updatePrintMargin();\n };\n this.setSession = function(session) {\n if (this.session)\n this.session.doc.off(\"changeNewLineMode\", this.onChangeNewLineMode);\n \n this.session = session;\n if (session && this.scrollMargin.top && session.getScrollTop() <= 0)\n session.setScrollTop(-this.scrollMargin.top);\n\n this.$cursorLayer.setSession(session);\n this.$markerBack.setSession(session);\n this.$markerFront.setSession(session);\n this.$gutterLayer.setSession(session);\n this.$textLayer.setSession(session);\n if (!session)\n return;\n \n this.$loop.schedule(this.CHANGE_FULL);\n this.session.$setFontMetrics(this.$fontMetrics);\n this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;\n \n this.onChangeNewLineMode = this.onChangeNewLineMode.bind(this);\n this.onChangeNewLineMode();\n this.session.doc.on(\"changeNewLineMode\", this.onChangeNewLineMode);\n };\n this.updateLines = function(firstRow, lastRow, force) {\n if (lastRow === undefined)\n lastRow = Infinity;\n\n if (!this.$changedLines) {\n this.$changedLines = {\n firstRow: firstRow,\n lastRow: lastRow\n };\n }\n else {\n if (this.$changedLines.firstRow > firstRow)\n this.$changedLines.firstRow = firstRow;\n\n if (this.$changedLines.lastRow < lastRow)\n this.$changedLines.lastRow = lastRow;\n }\n if (this.$changedLines.lastRow < this.layerConfig.firstRow) {\n if (force)\n this.$changedLines.lastRow = this.layerConfig.lastRow;\n else\n return;\n }\n if (this.$changedLines.firstRow > this.layerConfig.lastRow)\n return;\n this.$loop.schedule(this.CHANGE_LINES);\n };\n\n this.onChangeNewLineMode = function() {\n this.$loop.schedule(this.CHANGE_TEXT);\n this.$textLayer.$updateEolChar();\n this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR);\n };\n \n this.onChangeTabSize = function() {\n this.$loop.schedule(this.CHANGE_TEXT | this.CHANGE_MARKER);\n this.$textLayer.onChangeTabSize();\n };\n this.updateText = function() {\n this.$loop.schedule(this.CHANGE_TEXT);\n };\n this.updateFull = function(force) {\n if (force)\n this.$renderChanges(this.CHANGE_FULL, true);\n else\n this.$loop.schedule(this.CHANGE_FULL);\n };\n this.updateFontSize = function() {\n this.$textLayer.checkForSizeChanges();\n };\n\n this.$changes = 0;\n this.$updateSizeAsync = function() {\n if (this.$loop.pending)\n this.$size.$dirty = true;\n else\n this.onResize();\n };\n this.onResize = function(force, gutterWidth, width, height) {\n if (this.resizing > 2)\n return;\n else if (this.resizing > 0)\n this.resizing++;\n else\n this.resizing = force ? 1 : 0;\n var el = this.container;\n if (!height)\n height = el.clientHeight || el.scrollHeight;\n if (!width)\n width = el.clientWidth || el.scrollWidth;\n var changes = this.$updateCachedSize(force, gutterWidth, width, height);\n\n \n if (!this.$size.scrollerHeight || (!width && !height))\n return this.resizing = 0;\n\n if (force)\n this.$gutterLayer.$padding = null;\n\n if (force)\n this.$renderChanges(changes | this.$changes, true);\n else\n this.$loop.schedule(changes | this.$changes);\n\n if (this.resizing)\n this.resizing = 0;\n this.scrollBarV.scrollLeft = this.scrollBarV.scrollTop = null;\n };\n \n this.$updateCachedSize = function(force, gutterWidth, width, height) {\n height -= (this.$extraHeight || 0);\n var changes = 0;\n var size = this.$size;\n var oldSize = {\n width: size.width,\n height: size.height,\n scrollerHeight: size.scrollerHeight,\n scrollerWidth: size.scrollerWidth\n };\n if (height && (force || size.height != height)) {\n size.height = height;\n changes |= this.CHANGE_SIZE;\n\n size.scrollerHeight = size.height;\n if (this.$horizScroll)\n size.scrollerHeight -= this.scrollBarH.getHeight();\n this.scrollBarV.element.style.bottom = this.scrollBarH.getHeight() + \"px\";\n\n changes = changes | this.CHANGE_SCROLL;\n }\n\n if (width && (force || size.width != width)) {\n changes |= this.CHANGE_SIZE;\n size.width = width;\n \n if (gutterWidth == null)\n gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n \n this.gutterWidth = gutterWidth;\n \n this.scrollBarH.element.style.left = \n this.scroller.style.left = gutterWidth + \"px\";\n size.scrollerWidth = Math.max(0, width - gutterWidth - this.scrollBarV.getWidth()); \n \n this.scrollBarH.element.style.right = \n this.scroller.style.right = this.scrollBarV.getWidth() + \"px\";\n this.scroller.style.bottom = this.scrollBarH.getHeight() + \"px\";\n\n if (this.session && this.session.getUseWrapMode() && this.adjustWrapLimit() || force)\n changes |= this.CHANGE_FULL;\n }\n \n size.$dirty = !width || !height;\n\n if (changes)\n this._signal(\"resize\", oldSize);\n\n return changes;\n };\n\n this.onGutterResize = function() {\n var gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n if (gutterWidth != this.gutterWidth)\n this.$changes |= this.$updateCachedSize(true, gutterWidth, this.$size.width, this.$size.height);\n\n if (this.session.getUseWrapMode() && this.adjustWrapLimit()) {\n this.$loop.schedule(this.CHANGE_FULL);\n } else if (this.$size.$dirty) {\n this.$loop.schedule(this.CHANGE_FULL);\n } else {\n this.$computeLayerConfig();\n this.$loop.schedule(this.CHANGE_MARKER);\n }\n };\n this.adjustWrapLimit = function() {\n var availableWidth = this.$size.scrollerWidth - this.$padding * 2;\n var limit = Math.floor(availableWidth / this.characterWidth);\n return this.session.adjustWrapLimit(limit, this.$showPrintMargin && this.$printMarginColumn);\n };\n this.setAnimatedScroll = function(shouldAnimate){\n this.setOption(\"animatedScroll\", shouldAnimate);\n };\n this.getAnimatedScroll = function() {\n return this.$animatedScroll;\n };\n this.setShowInvisibles = function(showInvisibles) {\n this.setOption(\"showInvisibles\", showInvisibles);\n this.session.$bidiHandler.setShowInvisibles(showInvisibles);\n };\n this.getShowInvisibles = function() {\n return this.getOption(\"showInvisibles\");\n };\n this.getDisplayIndentGuides = function() {\n return this.getOption(\"displayIndentGuides\");\n };\n\n this.setDisplayIndentGuides = function(display) {\n this.setOption(\"displayIndentGuides\", display);\n };\n this.setShowPrintMargin = function(showPrintMargin) {\n this.setOption(\"showPrintMargin\", showPrintMargin);\n };\n this.getShowPrintMargin = function() {\n return this.getOption(\"showPrintMargin\");\n };\n this.setPrintMarginColumn = function(showPrintMargin) {\n this.setOption(\"printMarginColumn\", showPrintMargin);\n };\n this.getPrintMarginColumn = function() {\n return this.getOption(\"printMarginColumn\");\n };\n this.getShowGutter = function(){\n return this.getOption(\"showGutter\");\n };\n this.setShowGutter = function(show){\n return this.setOption(\"showGutter\", show);\n };\n\n this.getFadeFoldWidgets = function(){\n return this.getOption(\"fadeFoldWidgets\");\n };\n\n this.setFadeFoldWidgets = function(show) {\n this.setOption(\"fadeFoldWidgets\", show);\n };\n\n this.setHighlightGutterLine = function(shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n\n this.getHighlightGutterLine = function() {\n return this.getOption(\"highlightGutterLine\");\n };\n\n this.$updateGutterLineHighlight = function() {\n var pos = this.$cursorLayer.$pixelPos;\n var height = this.layerConfig.lineHeight;\n if (this.session.getUseWrapMode()) {\n var cursor = this.session.selection.getCursor();\n cursor.column = 0;\n pos = this.$cursorLayer.getPixelPosition(cursor, true);\n height *= this.session.getRowLength(cursor.row);\n }\n this.$gutterLineHighlight.style.top = pos.top - this.layerConfig.offset + \"px\";\n this.$gutterLineHighlight.style.height = height + \"px\";\n };\n\n this.$updatePrintMargin = function() {\n if (!this.$showPrintMargin && !this.$printMarginEl)\n return;\n\n if (!this.$printMarginEl) {\n var containerEl = dom.createElement(\"div\");\n containerEl.className = \"ace_layer ace_print-margin-layer\";\n this.$printMarginEl = dom.createElement(\"div\");\n this.$printMarginEl.className = \"ace_print-margin\";\n containerEl.appendChild(this.$printMarginEl);\n this.content.insertBefore(containerEl, this.content.firstChild);\n }\n\n var style = this.$printMarginEl.style;\n style.left = ((this.characterWidth * this.$printMarginColumn) + this.$padding) + \"px\";\n style.visibility = this.$showPrintMargin ? \"visible\" : \"hidden\";\n \n if (this.session && this.session.$wrap == -1)\n this.adjustWrapLimit();\n };\n this.getContainerElement = function() {\n return this.container;\n };\n this.getMouseEventTarget = function() {\n return this.scroller;\n };\n this.getTextAreaContainer = function() {\n return this.container;\n };\n this.$moveTextAreaToCursor = function() {\n if (!this.$keepTextAreaAtCursor)\n return;\n var config = this.layerConfig;\n var posTop = this.$cursorLayer.$pixelPos.top;\n var posLeft = this.$cursorLayer.$pixelPos.left;\n posTop -= config.offset;\n\n var style = this.textarea.style;\n var h = this.lineHeight;\n if (posTop < 0 || posTop > config.height - h) {\n style.top = style.left = \"0\";\n return;\n }\n\n var w = this.characterWidth;\n if (this.$composition) {\n var val = this.textarea.value.replace(/^\\x01+/, \"\");\n w *= (this.session.$getStringScreenWidth(val)[0]+2);\n h += 2;\n }\n posLeft -= this.scrollLeft;\n if (posLeft > this.$size.scrollerWidth - w)\n posLeft = this.$size.scrollerWidth - w;\n\n posLeft += this.gutterWidth;\n style.height = h + \"px\";\n style.width = w + \"px\";\n style.left = Math.min(posLeft, this.$size.scrollerWidth - w) + \"px\";\n style.top = Math.min(posTop, this.$size.height - h) + \"px\";\n };\n this.getFirstVisibleRow = function() {\n return this.layerConfig.firstRow;\n };\n this.getFirstFullyVisibleRow = function() {\n return this.layerConfig.firstRow + (this.layerConfig.offset === 0 ? 0 : 1);\n };\n this.getLastFullyVisibleRow = function() {\n var config = this.layerConfig;\n var lastRow = config.lastRow;\n var top = this.session.documentToScreenRow(lastRow, 0) * config.lineHeight;\n if (top - this.session.getScrollTop() > config.height - config.lineHeight)\n return lastRow - 1;\n return lastRow;\n };\n this.getLastVisibleRow = function() {\n return this.layerConfig.lastRow;\n };\n\n this.$padding = null;\n this.setPadding = function(padding) {\n this.$padding = padding;\n this.$textLayer.setPadding(padding);\n this.$cursorLayer.setPadding(padding);\n this.$markerFront.setPadding(padding);\n this.$markerBack.setPadding(padding);\n this.$loop.schedule(this.CHANGE_FULL);\n this.$updatePrintMargin();\n };\n \n this.setScrollMargin = function(top, bottom, left, right) {\n var sm = this.scrollMargin;\n sm.top = top|0;\n sm.bottom = bottom|0;\n sm.right = right|0;\n sm.left = left|0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n if (sm.top && this.scrollTop <= 0 && this.session)\n this.session.setScrollTop(-sm.top);\n this.updateFull();\n };\n this.getHScrollBarAlwaysVisible = function() {\n return this.$hScrollBarAlwaysVisible;\n };\n this.setHScrollBarAlwaysVisible = function(alwaysVisible) {\n this.setOption(\"hScrollBarAlwaysVisible\", alwaysVisible);\n };\n this.getVScrollBarAlwaysVisible = function() {\n return this.$vScrollBarAlwaysVisible;\n };\n this.setVScrollBarAlwaysVisible = function(alwaysVisible) {\n this.setOption(\"vScrollBarAlwaysVisible\", alwaysVisible);\n };\n\n this.$updateScrollBarV = function() {\n var scrollHeight = this.layerConfig.maxHeight;\n var scrollerHeight = this.$size.scrollerHeight;\n if (!this.$maxLines && this.$scrollPastEnd) {\n scrollHeight -= (scrollerHeight - this.lineHeight) * this.$scrollPastEnd;\n if (this.scrollTop > scrollHeight - scrollerHeight) {\n scrollHeight = this.scrollTop + scrollerHeight;\n this.scrollBarV.scrollTop = null;\n }\n }\n this.scrollBarV.setScrollHeight(scrollHeight + this.scrollMargin.v);\n this.scrollBarV.setScrollTop(this.scrollTop + this.scrollMargin.top);\n };\n this.$updateScrollBarH = function() {\n this.scrollBarH.setScrollWidth(this.layerConfig.width + 2 * this.$padding + this.scrollMargin.h);\n this.scrollBarH.setScrollLeft(this.scrollLeft + this.scrollMargin.left);\n };\n \n this.$frozen = false;\n this.freeze = function() {\n this.$frozen = true;\n };\n \n this.unfreeze = function() {\n this.$frozen = false;\n };\n\n this.$renderChanges = function(changes, force) {\n if (this.$changes) {\n changes |= this.$changes;\n this.$changes = 0;\n }\n if ((!this.session || !this.container.offsetWidth || this.$frozen) || (!changes && !force)) {\n this.$changes |= changes;\n return; \n } \n if (this.$size.$dirty) {\n this.$changes |= changes;\n return this.onResize(true);\n }\n if (!this.lineHeight) {\n this.$textLayer.checkForSizeChanges();\n }\n \n this._signal(\"beforeRender\");\n\n if (this.session && this.session.$bidiHandler)\n this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);\n\n var config = this.layerConfig;\n if (changes & this.CHANGE_FULL ||\n changes & this.CHANGE_SIZE ||\n changes & this.CHANGE_TEXT ||\n changes & this.CHANGE_LINES ||\n changes & this.CHANGE_SCROLL ||\n changes & this.CHANGE_H_SCROLL\n ) {\n changes |= this.$computeLayerConfig();\n if (config.firstRow != this.layerConfig.firstRow && config.firstRowScreen == this.layerConfig.firstRowScreen) {\n var st = this.scrollTop + (config.firstRow - this.layerConfig.firstRow) * this.lineHeight;\n if (st > 0) {\n this.scrollTop = st;\n changes = changes | this.CHANGE_SCROLL;\n changes |= this.$computeLayerConfig();\n }\n }\n config = this.layerConfig;\n this.$updateScrollBarV();\n if (changes & this.CHANGE_H_SCROLL)\n this.$updateScrollBarH();\n this.$gutterLayer.element.style.marginTop = (-config.offset) + \"px\";\n this.content.style.marginTop = (-config.offset) + \"px\";\n this.content.style.width = config.width + 2 * this.$padding + \"px\";\n this.content.style.height = config.minHeight + \"px\";\n }\n if (changes & this.CHANGE_H_SCROLL) {\n this.content.style.marginLeft = -this.scrollLeft + \"px\";\n this.scroller.className = this.scrollLeft <= 0 ? \"ace_scroller\" : \"ace_scroller ace_scroll-left\";\n }\n if (changes & this.CHANGE_FULL) {\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this.$highlightGutterLine && this.$updateGutterLineHighlight();\n this._signal(\"afterRender\");\n return;\n }\n if (changes & this.CHANGE_SCROLL) {\n if (changes & this.CHANGE_TEXT || changes & this.CHANGE_LINES)\n this.$textLayer.update(config);\n else\n this.$textLayer.scrollLines(config);\n\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$highlightGutterLine && this.$updateGutterLineHighlight();\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\");\n return;\n }\n\n if (changes & this.CHANGE_TEXT) {\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n }\n else if (changes & this.CHANGE_LINES) {\n if (this.$updateLines() || (changes & this.CHANGE_GUTTER) && this.$showGutter)\n this.$gutterLayer.update(config);\n }\n else if (changes & this.CHANGE_TEXT || changes & this.CHANGE_GUTTER) {\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n }\n\n if (changes & this.CHANGE_CURSOR) {\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this.$highlightGutterLine && this.$updateGutterLineHighlight();\n }\n\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_FRONT)) {\n this.$markerFront.update(config);\n }\n\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_BACK)) {\n this.$markerBack.update(config);\n }\n\n this._signal(\"afterRender\");\n };\n\n \n this.$autosize = function() {\n var height = this.session.getScreenLength() * this.lineHeight;\n var maxHeight = this.$maxLines * this.lineHeight;\n var desiredHeight = Math.min(maxHeight,\n Math.max((this.$minLines || 1) * this.lineHeight, height)\n ) + this.scrollMargin.v + (this.$extraHeight || 0);\n if (this.$horizScroll)\n desiredHeight += this.scrollBarH.getHeight();\n if (this.$maxPixelHeight && desiredHeight > this.$maxPixelHeight)\n desiredHeight = this.$maxPixelHeight;\n var vScroll = height > maxHeight;\n \n if (desiredHeight != this.desiredHeight ||\n this.$size.height != this.desiredHeight || vScroll != this.$vScroll) {\n if (vScroll != this.$vScroll) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n \n var w = this.container.clientWidth;\n this.container.style.height = desiredHeight + \"px\";\n this.$updateCachedSize(true, this.$gutterWidth, w, desiredHeight);\n this.desiredHeight = desiredHeight;\n \n this._signal(\"autosize\");\n }\n };\n \n this.$computeLayerConfig = function() {\n var session = this.session;\n var size = this.$size;\n \n var hideScrollbars = size.height <= 2 * this.lineHeight;\n var screenLines = this.session.getScreenLength();\n var maxHeight = screenLines * this.lineHeight;\n\n var longestLine = this.$getLongestLine();\n \n var horizScroll = !hideScrollbars && (this.$hScrollBarAlwaysVisible ||\n size.scrollerWidth - longestLine - 2 * this.$padding < 0);\n\n var hScrollChanged = this.$horizScroll !== horizScroll;\n if (hScrollChanged) {\n this.$horizScroll = horizScroll;\n this.scrollBarH.setVisible(horizScroll);\n }\n var vScrollBefore = this.$vScroll; // autosize can change vscroll value in which case we need to update longestLine\n if (this.$maxLines && this.lineHeight > 1)\n this.$autosize();\n\n var offset = this.scrollTop % this.lineHeight;\n var minHeight = size.scrollerHeight + this.lineHeight;\n \n var scrollPastEnd = !this.$maxLines && this.$scrollPastEnd\n ? (size.scrollerHeight - this.lineHeight) * this.$scrollPastEnd\n : 0;\n maxHeight += scrollPastEnd;\n \n var sm = this.scrollMargin;\n this.session.setScrollTop(Math.max(-sm.top,\n Math.min(this.scrollTop, maxHeight - size.scrollerHeight + sm.bottom)));\n\n this.session.setScrollLeft(Math.max(-sm.left, Math.min(this.scrollLeft, \n longestLine + 2 * this.$padding - size.scrollerWidth + sm.right)));\n \n var vScroll = !hideScrollbars && (this.$vScrollBarAlwaysVisible ||\n size.scrollerHeight - maxHeight + scrollPastEnd < 0 || this.scrollTop > sm.top);\n var vScrollChanged = vScrollBefore !== vScroll;\n if (vScrollChanged) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n\n var lineCount = Math.ceil(minHeight / this.lineHeight) - 1;\n var firstRow = Math.max(0, Math.round((this.scrollTop - offset) / this.lineHeight));\n var lastRow = firstRow + lineCount;\n var firstRowScreen, firstRowHeight;\n var lineHeight = this.lineHeight;\n firstRow = session.screenToDocumentRow(firstRow, 0);\n var foldLine = session.getFoldLine(firstRow);\n if (foldLine) {\n firstRow = foldLine.start.row;\n }\n\n firstRowScreen = session.documentToScreenRow(firstRow, 0);\n firstRowHeight = session.getRowLength(firstRow) * lineHeight;\n\n lastRow = Math.min(session.screenToDocumentRow(lastRow, 0), session.getLength() - 1);\n minHeight = size.scrollerHeight + session.getRowLength(lastRow) * lineHeight +\n firstRowHeight;\n\n offset = this.scrollTop - firstRowScreen * lineHeight;\n\n var changes = 0;\n if (this.layerConfig.width != longestLine) \n changes = this.CHANGE_H_SCROLL;\n if (hScrollChanged || vScrollChanged) {\n changes = this.$updateCachedSize(true, this.gutterWidth, size.width, size.height);\n this._signal(\"scrollbarVisibilityChanged\");\n if (vScrollChanged)\n longestLine = this.$getLongestLine();\n }\n \n this.layerConfig = {\n width : longestLine,\n padding : this.$padding,\n firstRow : firstRow,\n firstRowScreen: firstRowScreen,\n lastRow : lastRow,\n lineHeight : lineHeight,\n characterWidth : this.characterWidth,\n minHeight : minHeight,\n maxHeight : maxHeight,\n offset : offset,\n gutterOffset : lineHeight ? Math.max(0, Math.ceil((offset + size.height - size.scrollerHeight) / lineHeight)) : 0,\n height : this.$size.scrollerHeight\n };\n\n return changes;\n };\n\n this.$updateLines = function() {\n if (!this.$changedLines) return;\n var firstRow = this.$changedLines.firstRow;\n var lastRow = this.$changedLines.lastRow;\n this.$changedLines = null;\n\n var layerConfig = this.layerConfig;\n\n if (firstRow > layerConfig.lastRow + 1) { return; }\n if (lastRow < layerConfig.firstRow) { return; }\n if (lastRow === Infinity) {\n if (this.$showGutter)\n this.$gutterLayer.update(layerConfig);\n this.$textLayer.update(layerConfig);\n return;\n }\n this.$textLayer.updateLines(layerConfig, firstRow, lastRow);\n return true;\n };\n\n this.$getLongestLine = function() {\n var charCount = this.session.getScreenWidth();\n if (this.showInvisibles && !this.session.$useWrapMode)\n charCount += 1;\n\n return Math.max(this.$size.scrollerWidth - 2 * this.$padding, Math.round(charCount * this.characterWidth));\n };\n this.updateFrontMarkers = function() {\n this.$markerFront.setMarkers(this.session.getMarkers(true));\n this.$loop.schedule(this.CHANGE_MARKER_FRONT);\n };\n this.updateBackMarkers = function() {\n this.$markerBack.setMarkers(this.session.getMarkers());\n this.$loop.schedule(this.CHANGE_MARKER_BACK);\n };\n this.addGutterDecoration = function(row, className){\n this.$gutterLayer.addGutterDecoration(row, className);\n };\n this.removeGutterDecoration = function(row, className){\n this.$gutterLayer.removeGutterDecoration(row, className);\n };\n this.updateBreakpoints = function(rows) {\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n this.setAnnotations = function(annotations) {\n this.$gutterLayer.setAnnotations(annotations);\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n this.updateCursor = function() {\n this.$loop.schedule(this.CHANGE_CURSOR);\n };\n this.hideCursor = function() {\n this.$cursorLayer.hideCursor();\n };\n this.showCursor = function() {\n this.$cursorLayer.showCursor();\n };\n\n this.scrollSelectionIntoView = function(anchor, lead, offset) {\n this.scrollCursorIntoView(anchor, offset);\n this.scrollCursorIntoView(lead, offset);\n };\n this.scrollCursorIntoView = function(cursor, offset, $viewMargin) {\n if (this.$size.scrollerHeight === 0)\n return;\n\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n\n var left = pos.left;\n var top = pos.top;\n \n var topMargin = $viewMargin && $viewMargin.top || 0;\n var bottomMargin = $viewMargin && $viewMargin.bottom || 0;\n \n var scrollTop = this.$scrollAnimation ? this.session.getScrollTop() : this.scrollTop;\n \n if (scrollTop + topMargin > top) {\n if (offset && scrollTop + topMargin > top + this.lineHeight)\n top -= offset * this.$size.scrollerHeight;\n if (top === 0)\n top = -this.scrollMargin.top;\n this.session.setScrollTop(top);\n } else if (scrollTop + this.$size.scrollerHeight - bottomMargin < top + this.lineHeight) {\n if (offset && scrollTop + this.$size.scrollerHeight - bottomMargin < top - this.lineHeight)\n top += offset * this.$size.scrollerHeight;\n this.session.setScrollTop(top + this.lineHeight - this.$size.scrollerHeight);\n }\n\n var scrollLeft = this.scrollLeft;\n\n if (scrollLeft > left) {\n if (left < this.$padding + 2 * this.layerConfig.characterWidth)\n left = -this.scrollMargin.left;\n this.session.setScrollLeft(left);\n } else if (scrollLeft + this.$size.scrollerWidth < left + this.characterWidth) {\n this.session.setScrollLeft(Math.round(left + this.characterWidth - this.$size.scrollerWidth));\n } else if (scrollLeft <= this.$padding && left - scrollLeft < this.characterWidth) {\n this.session.setScrollLeft(0);\n }\n };\n this.getScrollTop = function() {\n return this.session.getScrollTop();\n };\n this.getScrollLeft = function() {\n return this.session.getScrollLeft();\n };\n this.getScrollTopRow = function() {\n return this.scrollTop / this.lineHeight;\n };\n this.getScrollBottomRow = function() {\n return Math.max(0, Math.floor((this.scrollTop + this.$size.scrollerHeight) / this.lineHeight) - 1);\n };\n this.scrollToRow = function(row) {\n this.session.setScrollTop(row * this.lineHeight);\n };\n\n this.alignCursor = function(cursor, alignment) {\n if (typeof cursor == \"number\")\n cursor = {row: cursor, column: 0};\n\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var h = this.$size.scrollerHeight - this.lineHeight;\n var offset = pos.top - h * (alignment || 0);\n\n this.session.setScrollTop(offset);\n return offset;\n };\n\n this.STEPS = 8;\n this.$calcSteps = function(fromValue, toValue){\n var i = 0;\n var l = this.STEPS;\n var steps = [];\n\n var func = function(t, x_min, dx) {\n return dx * (Math.pow(t - 1, 3) + 1) + x_min;\n };\n\n for (i = 0; i < l; ++i)\n steps.push(func(i / this.STEPS, fromValue, toValue - fromValue));\n\n return steps;\n };\n this.scrollToLine = function(line, center, animate, callback) {\n var pos = this.$cursorLayer.getPixelPosition({row: line, column: 0});\n var offset = pos.top;\n if (center)\n offset -= this.$size.scrollerHeight / 2;\n\n var initialScroll = this.scrollTop;\n this.session.setScrollTop(offset);\n if (animate !== false)\n this.animateScrolling(initialScroll, callback);\n };\n\n this.animateScrolling = function(fromValue, callback) {\n var toValue = this.scrollTop;\n if (!this.$animatedScroll)\n return;\n var _self = this;\n \n if (fromValue == toValue)\n return;\n \n if (this.$scrollAnimation) {\n var oldSteps = this.$scrollAnimation.steps;\n if (oldSteps.length) {\n fromValue = oldSteps[0];\n if (fromValue == toValue)\n return;\n }\n }\n \n var steps = _self.$calcSteps(fromValue, toValue);\n this.$scrollAnimation = {from: fromValue, to: toValue, steps: steps};\n\n clearInterval(this.$timer);\n\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n this.$timer = setInterval(function() {\n if (steps.length) {\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n } else if (toValue != null) {\n _self.session.$scrollTop = -1;\n _self.session.setScrollTop(toValue);\n toValue = null;\n } else {\n _self.$timer = clearInterval(_self.$timer);\n _self.$scrollAnimation = null;\n callback && callback();\n }\n }, 10);\n };\n this.scrollToY = function(scrollTop) {\n if (this.scrollTop !== scrollTop) {\n this.$loop.schedule(this.CHANGE_SCROLL);\n this.scrollTop = scrollTop;\n }\n };\n this.scrollToX = function(scrollLeft) {\n if (this.scrollLeft !== scrollLeft)\n this.scrollLeft = scrollLeft;\n this.$loop.schedule(this.CHANGE_H_SCROLL);\n };\n this.scrollTo = function(x, y) {\n this.session.setScrollTop(y);\n this.session.setScrollLeft(y);\n };\n this.scrollBy = function(deltaX, deltaY) {\n deltaY && this.session.setScrollTop(this.session.getScrollTop() + deltaY);\n deltaX && this.session.setScrollLeft(this.session.getScrollLeft() + deltaX);\n };\n this.isScrollableBy = function(deltaX, deltaY) {\n if (deltaY < 0 && this.session.getScrollTop() >= 1 - this.scrollMargin.top)\n return true;\n if (deltaY > 0 && this.session.getScrollTop() + this.$size.scrollerHeight\n - this.layerConfig.maxHeight < -1 + this.scrollMargin.bottom)\n return true;\n if (deltaX < 0 && this.session.getScrollLeft() >= 1 - this.scrollMargin.left)\n return true;\n if (deltaX > 0 && this.session.getScrollLeft() + this.$size.scrollerWidth\n - this.layerConfig.width < -1 + this.scrollMargin.right)\n return true;\n };\n\n this.pixelToScreenCoordinates = function(x, y) {\n var canvasPos = this.scroller.getBoundingClientRect();\n\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n var offset = offsetX / this.characterWidth;\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n var col = Math.round(offset);\n\n return {row: row, column: col, side: offset - col > 0 ? 1 : -1, offsetX: offsetX};\n };\n\n this.screenToTextCoordinates = function(x, y) {\n var canvasPos = this.scroller.getBoundingClientRect();\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n\n var col = Math.round(offsetX / this.characterWidth);\n\n var row = (y + this.scrollTop - canvasPos.top) / this.lineHeight;\n\n return this.session.screenToDocumentPosition(row, Math.max(col, 0), offsetX);\n };\n this.textToScreenCoordinates = function(row, column) {\n var canvasPos = this.scroller.getBoundingClientRect();\n var pos = this.session.documentToScreenPosition(row, column);\n\n var x = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : Math.round(pos.column * this.characterWidth));\n\n var y = pos.row * this.lineHeight;\n\n return {\n pageX: canvasPos.left + x - this.scrollLeft,\n pageY: canvasPos.top + y - this.scrollTop\n };\n };\n this.visualizeFocus = function() {\n dom.addCssClass(this.container, \"ace_focus\");\n };\n this.visualizeBlur = function() {\n dom.removeCssClass(this.container, \"ace_focus\");\n };\n this.showComposition = function(position) {\n if (!this.$composition)\n this.$composition = {\n keepTextAreaAtCursor: this.$keepTextAreaAtCursor,\n cssText: this.textarea.style.cssText\n };\n\n this.$keepTextAreaAtCursor = true;\n dom.addCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = \"\";\n this.$moveTextAreaToCursor();\n };\n this.setCompositionText = function(text) {\n this.$moveTextAreaToCursor();\n };\n this.hideComposition = function() {\n if (!this.$composition)\n return;\n\n dom.removeCssClass(this.textarea, \"ace_composition\");\n this.$keepTextAreaAtCursor = this.$composition.keepTextAreaAtCursor;\n this.textarea.style.cssText = this.$composition.cssText;\n this.$composition = null;\n };\n this.setTheme = function(theme, cb) {\n var _self = this;\n this.$themeId = theme;\n _self._dispatchEvent('themeChange',{theme:theme});\n\n if (!theme || typeof theme == \"string\") {\n var moduleName = theme || this.$options.theme.initialValue;\n config.loadModule([\"theme\", moduleName], afterLoad);\n } else {\n afterLoad(theme);\n }\n\n function afterLoad(module) {\n if (_self.$themeId != theme)\n return cb && cb();\n if (!module || !module.cssClass)\n throw new Error(\"couldn't load module \" + theme + \" or it didn't call define\");\n dom.importCssString(\n module.cssText,\n module.cssClass,\n _self.container.ownerDocument\n );\n\n if (_self.theme)\n dom.removeCssClass(_self.container, _self.theme.cssClass);\n\n var padding = \"padding\" in module ? module.padding \n : \"padding\" in (_self.theme || {}) ? 4 : _self.$padding;\n if (_self.$padding && padding != _self.$padding)\n _self.setPadding(padding);\n _self.$theme = module.cssClass;\n\n _self.theme = module;\n dom.addCssClass(_self.container, module.cssClass);\n dom.setCssClass(_self.container, \"ace_dark\", module.isDark);\n if (_self.$size) {\n _self.$size.width = 0;\n _self.$updateSizeAsync();\n }\n\n _self._dispatchEvent('themeLoaded', {theme:module});\n cb && cb();\n }\n };\n this.getTheme = function() {\n return this.$themeId;\n };\n this.setStyle = function(style, include) {\n dom.setCssClass(this.container, style, include !== false);\n };\n this.unsetStyle = function(style) {\n dom.removeCssClass(this.container, style);\n };\n \n this.setCursorStyle = function(style) {\n if (this.scroller.style.cursor != style)\n this.scroller.style.cursor = style;\n };\n this.setMouseCursor = function(cursorStyle) {\n this.scroller.style.cursor = cursorStyle;\n };\n this.destroy = function() {\n this.$textLayer.destroy();\n this.$cursorLayer.destroy();\n };\n\n}).call(VirtualRenderer.prototype);\n\n\nconfig.defineOptions(VirtualRenderer.prototype, \"renderer\", {\n animatedScroll: {initialValue: false},\n showInvisibles: {\n set: function(value) {\n if (this.$textLayer.setShowInvisibles(value))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: false\n },\n showPrintMargin: {\n set: function() { this.$updatePrintMargin(); },\n initialValue: true\n },\n printMarginColumn: {\n set: function() { this.$updatePrintMargin(); },\n initialValue: 80\n },\n printMargin: {\n set: function(val) {\n if (typeof val == \"number\")\n this.$printMarginColumn = val;\n this.$showPrintMargin = !!val;\n this.$updatePrintMargin();\n },\n get: function() {\n return this.$showPrintMargin && this.$printMarginColumn; \n }\n },\n showGutter: {\n set: function(show){\n this.$gutter.style.display = show ? \"block\" : \"none\";\n this.$loop.schedule(this.CHANGE_FULL);\n this.onGutterResize();\n },\n initialValue: true\n },\n fadeFoldWidgets: {\n set: function(show) {\n dom.setCssClass(this.$gutter, \"ace_fade-fold-widgets\", show);\n },\n initialValue: false\n },\n showFoldWidgets: {\n set: function(show) {this.$gutterLayer.setShowFoldWidgets(show);},\n initialValue: true\n },\n showLineNumbers: {\n set: function(show) {\n this.$gutterLayer.setShowLineNumbers(show);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n displayIndentGuides: {\n set: function(show) {\n if (this.$textLayer.setDisplayIndentGuides(show))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: true\n },\n highlightGutterLine: {\n set: function(shouldHighlight) {\n if (!this.$gutterLineHighlight) {\n this.$gutterLineHighlight = dom.createElement(\"div\");\n this.$gutterLineHighlight.className = \"ace_gutter-active-line\";\n this.$gutter.appendChild(this.$gutterLineHighlight);\n return;\n }\n\n this.$gutterLineHighlight.style.display = shouldHighlight ? \"\" : \"none\";\n if (this.$cursorLayer.$pixelPos)\n this.$updateGutterLineHighlight();\n },\n initialValue: false,\n value: true\n },\n hScrollBarAlwaysVisible: {\n set: function(val) {\n if (!this.$hScrollBarAlwaysVisible || !this.$horizScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n vScrollBarAlwaysVisible: {\n set: function(val) {\n if (!this.$vScrollBarAlwaysVisible || !this.$vScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n fontSize: {\n set: function(size) {\n if (typeof size == \"number\")\n size = size + \"px\";\n this.container.style.fontSize = size;\n this.updateFontSize();\n },\n initialValue: 12\n },\n fontFamily: {\n set: function(name) {\n this.container.style.fontFamily = name;\n this.updateFontSize();\n }\n },\n maxLines: {\n set: function(val) {\n this.updateFull();\n }\n },\n minLines: {\n set: function(val) {\n this.updateFull();\n }\n },\n maxPixelHeight: {\n set: function(val) {\n this.updateFull();\n },\n initialValue: 0\n },\n scrollPastEnd: {\n set: function(val) {\n val = +val || 0;\n if (this.$scrollPastEnd == val)\n return;\n this.$scrollPastEnd = val;\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: 0,\n handlesSet: true\n },\n fixedWidthGutter: {\n set: function(val) {\n this.$gutterLayer.$fixedWidth = !!val;\n this.$loop.schedule(this.CHANGE_GUTTER);\n }\n },\n theme: {\n set: function(val) { this.setTheme(val); },\n get: function() { return this.$themeId || this.theme; },\n initialValue: \"./theme/textmate\",\n handlesSet: true\n }\n});\n\nexports.VirtualRenderer = VirtualRenderer;\n});\n\nace.define(\"ace/worker/worker_client\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/event_emitter\",\"ace/config\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar net = acequire(\"../lib/net\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\nvar config = acequire(\"../config\");\n\nfunction $workerBlob(workerUrl, mod) {\n var script = mod.src;\"importScripts('\" + net.qualifyURL(workerUrl) + \"');\";\n try {\n return new Blob([script], {\"type\": \"application/javascript\"});\n } catch (e) { // Backwards-compatibility\n var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;\n var blobBuilder = new BlobBuilder();\n blobBuilder.append(script);\n return blobBuilder.getBlob(\"application/javascript\");\n }\n}\n\nfunction createWorker(workerUrl, mod) {\n var blob = $workerBlob(workerUrl, mod);\n var URL = window.URL || window.webkitURL;\n var blobURL = URL.createObjectURL(blob);\n return new Worker(blobURL);\n}\n\nvar WorkerClient = function(topLevelNamespaces, mod, classname, workerUrl, importScripts) {\n this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.onMessage = this.onMessage.bind(this);\n if (acequire.nameToUrl && !acequire.toUrl)\n acequire.toUrl = acequire.nameToUrl;\n \n if (config.get(\"packaged\") || !acequire.toUrl) {\n workerUrl = workerUrl || config.moduleUrl(mod.id, \"worker\");\n } else {\n var normalizePath = this.$normalizePath;\n workerUrl = workerUrl || normalizePath(acequire.toUrl(\"ace/worker/worker.js\", null, \"_\"));\n\n var tlns = {};\n topLevelNamespaces.forEach(function(ns) {\n tlns[ns] = normalizePath(acequire.toUrl(ns, null, \"_\").replace(/(\\.js)?(\\?.*)?$/, \"\"));\n });\n }\n\n this.$worker = createWorker(workerUrl, mod);\n if (importScripts) {\n this.send(\"importScripts\", importScripts);\n }\n this.$worker.postMessage({\n init : true,\n tlns : tlns,\n module : mod.id,\n classname : classname\n });\n\n this.callbackId = 1;\n this.callbacks = {};\n\n this.$worker.onmessage = this.onMessage;\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n\n this.onMessage = function(e) {\n var msg = e.data;\n switch (msg.type) {\n case \"event\":\n this._signal(msg.name, {data: msg.data});\n break;\n case \"call\":\n var callback = this.callbacks[msg.id];\n if (callback) {\n callback(msg.data);\n delete this.callbacks[msg.id];\n }\n break;\n case \"error\":\n this.reportError(msg.data);\n break;\n case \"log\":\n window.console && console.log && console.log.apply(console, msg.data);\n break;\n }\n };\n \n this.reportError = function(err) {\n window.console && console.error && console.error(err);\n };\n\n this.$normalizePath = function(path) {\n return net.qualifyURL(path);\n };\n\n this.terminate = function() {\n this._signal(\"terminate\", {});\n this.deltaQueue = null;\n this.$worker.terminate();\n this.$worker = null;\n if (this.$doc)\n this.$doc.off(\"change\", this.changeListener);\n this.$doc = null;\n };\n\n this.send = function(cmd, args) {\n this.$worker.postMessage({command: cmd, args: args});\n };\n\n this.call = function(cmd, args, callback) {\n if (callback) {\n var id = this.callbackId++;\n this.callbacks[id] = callback;\n args.push(id);\n }\n this.send(cmd, args);\n };\n\n this.emit = function(event, data) {\n try {\n this.$worker.postMessage({event: event, data: {data: data.data}});\n }\n catch(ex) {\n console.error(ex.stack);\n }\n };\n\n this.attachToDocument = function(doc) {\n if (this.$doc)\n this.terminate();\n\n this.$doc = doc;\n this.call(\"setValue\", [doc.getValue()]);\n doc.on(\"change\", this.changeListener);\n };\n\n this.changeListener = function(delta) {\n if (!this.deltaQueue) {\n this.deltaQueue = [];\n setTimeout(this.$sendDeltaQueue, 0);\n }\n if (delta.action == \"insert\")\n this.deltaQueue.push(delta.start, delta.lines);\n else\n this.deltaQueue.push(delta.start, delta.end);\n };\n\n this.$sendDeltaQueue = function() {\n var q = this.deltaQueue;\n if (!q) return;\n this.deltaQueue = null;\n if (q.length > 50 && q.length > this.$doc.getLength() >> 1) {\n this.call(\"setValue\", [this.$doc.getValue()]);\n } else\n this.emit(\"change\", {data: q});\n };\n\n}).call(WorkerClient.prototype);\n\n\nvar UIWorkerClient = function(topLevelNamespaces, mod, classname) {\n this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.callbackId = 1;\n this.callbacks = {};\n this.messageBuffer = [];\n\n var main = null;\n var emitSync = false;\n var sender = Object.create(EventEmitter);\n var _self = this;\n\n this.$worker = {};\n this.$worker.terminate = function() {};\n this.$worker.postMessage = function(e) {\n _self.messageBuffer.push(e);\n if (main) {\n if (emitSync)\n setTimeout(processNext);\n else\n processNext();\n }\n };\n this.setEmitSync = function(val) { emitSync = val; };\n\n var processNext = function() {\n var msg = _self.messageBuffer.shift();\n if (msg.command)\n main[msg.command].apply(main, msg.args);\n else if (msg.event)\n sender._signal(msg.event, msg.data);\n };\n\n sender.postMessage = function(msg) {\n _self.onMessage({data: msg});\n };\n sender.callback = function(data, callbackId) {\n this.postMessage({type: \"call\", id: callbackId, data: data});\n };\n sender.emit = function(name, data) {\n this.postMessage({type: \"event\", name: name, data: data});\n };\n\n config.loadModule([\"worker\", mod], function(Main) {\n main = new Main[classname](sender);\n while (_self.messageBuffer.length)\n processNext();\n });\n};\n\nUIWorkerClient.prototype = WorkerClient.prototype;\n\nexports.UIWorkerClient = UIWorkerClient;\nexports.WorkerClient = WorkerClient;\nexports.createWorker = createWorker;\n\n\n});\n\nace.define(\"ace/placeholder\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/oop\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"./range\").Range;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar oop = acequire(\"./lib/oop\");\n\nvar PlaceHolder = function(session, length, pos, others, mainClass, othersClass) {\n var _self = this;\n this.length = length;\n this.session = session;\n this.doc = session.getDocument();\n this.mainClass = mainClass;\n this.othersClass = othersClass;\n this.$onUpdate = this.onUpdate.bind(this);\n this.doc.on(\"change\", this.$onUpdate);\n this.$others = others;\n \n this.$onCursorChange = function() {\n setTimeout(function() {\n _self.onCursorChange();\n });\n };\n \n this.$pos = pos;\n var undoStack = session.getUndoManager().$undoStack || session.getUndoManager().$undostack || {length: -1};\n this.$undoStackDepth = undoStack.length;\n this.setup();\n\n session.selection.on(\"changeCursor\", this.$onCursorChange);\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.setup = function() {\n var _self = this;\n var doc = this.doc;\n var session = this.session;\n \n this.selectionBefore = session.selection.toJSON();\n if (session.selection.inMultiSelectMode)\n session.selection.toSingleRange();\n\n this.pos = doc.createAnchor(this.$pos.row, this.$pos.column);\n var pos = this.pos;\n pos.$insertRight = true;\n pos.detach();\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + this.length), this.mainClass, null, false);\n this.others = [];\n this.$others.forEach(function(other) {\n var anchor = doc.createAnchor(other.row, other.column);\n anchor.$insertRight = true;\n anchor.detach();\n _self.others.push(anchor);\n });\n session.setUndoSelect(false);\n };\n this.showOtherMarkers = function() {\n if (this.othersActive) return;\n var session = this.session;\n var _self = this;\n this.othersActive = true;\n this.others.forEach(function(anchor) {\n anchor.markerId = session.addMarker(new Range(anchor.row, anchor.column, anchor.row, anchor.column+_self.length), _self.othersClass, null, false);\n });\n };\n this.hideOtherMarkers = function() {\n if (!this.othersActive) return;\n this.othersActive = false;\n for (var i = 0; i < this.others.length; i++) {\n this.session.removeMarker(this.others[i].markerId);\n }\n };\n this.onUpdate = function(delta) {\n if (this.$updating)\n return this.updateAnchors(delta);\n \n var range = delta;\n if (range.start.row !== range.end.row) return;\n if (range.start.row !== this.pos.row) return;\n this.$updating = true;\n var lengthDiff = delta.action === \"insert\" ? range.end.column - range.start.column : range.start.column - range.end.column;\n var inMainRange = range.start.column >= this.pos.column && range.start.column <= this.pos.column + this.length + 1;\n var distanceFromStart = range.start.column - this.pos.column;\n \n this.updateAnchors(delta);\n \n if (inMainRange)\n this.length += lengthDiff;\n\n if (inMainRange && !this.session.$fromUndo) {\n if (delta.action === 'insert') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = {row: otherPos.row, column: otherPos.column + distanceFromStart};\n this.doc.insertMergedLines(newPos, delta.lines);\n }\n } else if (delta.action === 'remove') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = {row: otherPos.row, column: otherPos.column + distanceFromStart};\n this.doc.remove(new Range(newPos.row, newPos.column, newPos.row, newPos.column - lengthDiff));\n }\n }\n }\n \n this.$updating = false;\n this.updateMarkers();\n };\n \n this.updateAnchors = function(delta) {\n this.pos.onChange(delta);\n for (var i = this.others.length; i--;)\n this.others[i].onChange(delta);\n this.updateMarkers();\n };\n \n this.updateMarkers = function() {\n if (this.$updating)\n return;\n var _self = this;\n var session = this.session;\n var updateMarker = function(pos, className) {\n session.removeMarker(pos.markerId);\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column+_self.length), className, null, false);\n };\n updateMarker(this.pos, this.mainClass);\n for (var i = this.others.length; i--;)\n updateMarker(this.others[i], this.othersClass);\n };\n\n this.onCursorChange = function(event) {\n if (this.$updating || !this.session) return;\n var pos = this.session.selection.getCursor();\n if (pos.row === this.pos.row && pos.column >= this.pos.column && pos.column <= this.pos.column + this.length) {\n this.showOtherMarkers();\n this._emit(\"cursorEnter\", event);\n } else {\n this.hideOtherMarkers();\n this._emit(\"cursorLeave\", event);\n }\n }; \n this.detach = function() {\n this.session.removeMarker(this.pos && this.pos.markerId);\n this.hideOtherMarkers();\n this.doc.removeEventListener(\"change\", this.$onUpdate);\n this.session.selection.removeEventListener(\"changeCursor\", this.$onCursorChange);\n this.session.setUndoSelect(true);\n this.session = null;\n };\n this.cancel = function() {\n if (this.$undoStackDepth === -1)\n return;\n var undoManager = this.session.getUndoManager();\n var undosRequired = (undoManager.$undoStack || undoManager.$undostack).length - this.$undoStackDepth;\n for (var i = 0; i < undosRequired; i++) {\n undoManager.undo(true);\n }\n if (this.selectionBefore)\n this.session.selection.fromJSON(this.selectionBefore);\n };\n}).call(PlaceHolder.prototype);\n\n\nexports.PlaceHolder = PlaceHolder;\n});\n\nace.define(\"ace/mouse/multi_select_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\n\nfunction onMouseDown(e) {\n var ev = e.domEvent;\n var alt = ev.altKey;\n var shift = ev.shiftKey;\n var ctrl = ev.ctrlKey;\n var accel = e.getAccelKey();\n var button = e.getButton();\n \n if (ctrl && useragent.isMac)\n button = ev.button;\n\n if (e.editor.inMultiSelectMode && button == 2) {\n e.editor.textInput.onContextMenu(e.domEvent);\n return;\n }\n \n if (!ctrl && !alt && !accel) {\n if (button === 0 && e.editor.inMultiSelectMode)\n e.editor.exitMultiSelectMode();\n return;\n }\n \n if (button !== 0)\n return;\n\n var editor = e.editor;\n var selection = editor.selection;\n var isMultiSelect = editor.inMultiSelectMode;\n var pos = e.getDocumentPosition();\n var cursor = selection.getCursor();\n var inSelection = e.inSelection() || (selection.isEmpty() && isSamePoint(pos, cursor));\n\n var mouseX = e.x, mouseY = e.y;\n var onMouseSelection = function(e) {\n mouseX = e.clientX;\n mouseY = e.clientY;\n };\n \n var session = editor.session;\n var screenAnchor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var screenCursor = screenAnchor;\n \n var selectionMode;\n if (editor.$mouseHandler.$enableJumpToDef) {\n if (ctrl && alt || accel && alt)\n selectionMode = shift ? \"block\" : \"add\";\n else if (alt && editor.$blockSelectEnabled)\n selectionMode = \"block\";\n } else {\n if (accel && !alt) {\n selectionMode = \"add\";\n if (!isMultiSelect && shift)\n return;\n } else if (alt && editor.$blockSelectEnabled) {\n selectionMode = \"block\";\n }\n }\n \n if (selectionMode && useragent.isMac && ev.ctrlKey) {\n editor.$mouseHandler.cancelContextMenu();\n }\n\n if (selectionMode == \"add\") {\n if (!isMultiSelect && inSelection)\n return; // dragging\n\n if (!isMultiSelect) {\n var range = selection.toOrientedRange();\n editor.addSelectionMarker(range);\n }\n\n var oldRange = selection.rangeList.rangeAtPoint(pos);\n \n \n editor.$blockScrolling++;\n editor.inVirtualSelectionMode = true;\n \n if (shift) {\n oldRange = null;\n range = selection.ranges[0] || range;\n editor.removeSelectionMarker(range);\n }\n editor.once(\"mouseup\", function() {\n var tmpSel = selection.toOrientedRange();\n\n if (oldRange && tmpSel.isEmpty() && isSamePoint(oldRange.cursor, tmpSel.cursor))\n selection.substractPoint(tmpSel.cursor);\n else {\n if (shift) {\n selection.substractPoint(range.cursor);\n } else if (range) {\n editor.removeSelectionMarker(range);\n selection.addRange(range);\n }\n selection.addRange(tmpSel);\n }\n editor.$blockScrolling--;\n editor.inVirtualSelectionMode = false;\n });\n\n } else if (selectionMode == \"block\") {\n e.stop();\n editor.inVirtualSelectionMode = true; \n var initialRange;\n var rectSel = [];\n var blockSelect = function() {\n var newCursor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var cursor = session.screenToDocumentPosition(newCursor.row, newCursor.column, newCursor.offsetX);\n\n if (isSamePoint(screenCursor, newCursor) && isSamePoint(cursor, selection.lead))\n return;\n screenCursor = newCursor;\n \n editor.$blockScrolling++;\n editor.selection.moveToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n\n editor.removeSelectionMarkers(rectSel);\n rectSel = selection.rectangularRangeBlock(screenCursor, screenAnchor);\n if (editor.$mouseHandler.$clickSelection && rectSel.length == 1 && rectSel[0].isEmpty())\n rectSel[0] = editor.$mouseHandler.$clickSelection.clone();\n rectSel.forEach(editor.addSelectionMarker, editor);\n editor.updateSelectionMarkers();\n editor.$blockScrolling--;\n };\n editor.$blockScrolling++;\n if (isMultiSelect && !accel) {\n selection.toSingleRange();\n } else if (!isMultiSelect && accel) {\n initialRange = selection.toOrientedRange();\n editor.addSelectionMarker(initialRange);\n }\n \n if (shift)\n screenAnchor = session.documentToScreenPosition(selection.lead); \n else\n selection.moveToPosition(pos);\n editor.$blockScrolling--;\n \n screenCursor = {row: -1, column: -1};\n\n var onMouseSelectionEnd = function(e) {\n clearInterval(timerId);\n editor.removeSelectionMarkers(rectSel);\n if (!rectSel.length)\n rectSel = [selection.toOrientedRange()];\n editor.$blockScrolling++;\n if (initialRange) {\n editor.removeSelectionMarker(initialRange);\n selection.toSingleRange(initialRange);\n }\n for (var i = 0; i < rectSel.length; i++)\n selection.addRange(rectSel[i]);\n editor.inVirtualSelectionMode = false;\n editor.$mouseHandler.$clickSelection = null;\n editor.$blockScrolling--;\n };\n\n var onSelectionInterval = blockSelect;\n\n event.capture(editor.container, onMouseSelection, onMouseSelectionEnd);\n var timerId = setInterval(function() {onSelectionInterval();}, 20);\n\n return e.preventDefault();\n }\n}\n\n\nexports.onMouseDown = onMouseDown;\n\n});\n\nace.define(\"ace/commands/multi_select_commands\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\"], function(acequire, exports, module) {\nexports.defaultCommands = [{\n name: \"addCursorAbove\",\n exec: function(editor) { editor.selectMoreLines(-1); },\n bindKey: {win: \"Ctrl-Alt-Up\", mac: \"Ctrl-Alt-Up\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"addCursorBelow\",\n exec: function(editor) { editor.selectMoreLines(1); },\n bindKey: {win: \"Ctrl-Alt-Down\", mac: \"Ctrl-Alt-Down\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"addCursorAboveSkipCurrent\",\n exec: function(editor) { editor.selectMoreLines(-1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Up\", mac: \"Ctrl-Alt-Shift-Up\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"addCursorBelowSkipCurrent\",\n exec: function(editor) { editor.selectMoreLines(1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Down\", mac: \"Ctrl-Alt-Shift-Down\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectMoreBefore\",\n exec: function(editor) { editor.selectMore(-1); },\n bindKey: {win: \"Ctrl-Alt-Left\", mac: \"Ctrl-Alt-Left\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectMoreAfter\",\n exec: function(editor) { editor.selectMore(1); },\n bindKey: {win: \"Ctrl-Alt-Right\", mac: \"Ctrl-Alt-Right\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectNextBefore\",\n exec: function(editor) { editor.selectMore(-1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Left\", mac: \"Ctrl-Alt-Shift-Left\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectNextAfter\",\n exec: function(editor) { editor.selectMore(1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Right\", mac: \"Ctrl-Alt-Shift-Right\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"splitIntoLines\",\n exec: function(editor) { editor.multiSelect.splitIntoLines(); },\n bindKey: {win: \"Ctrl-Alt-L\", mac: \"Ctrl-Alt-L\"},\n readOnly: true\n}, {\n name: \"alignCursors\",\n exec: function(editor) { editor.alignCursors(); },\n bindKey: {win: \"Ctrl-Alt-A\", mac: \"Ctrl-Alt-A\"},\n scrollIntoView: \"cursor\"\n}, {\n name: \"findAll\",\n exec: function(editor) { editor.findAll(); },\n bindKey: {win: \"Ctrl-Alt-K\", mac: \"Ctrl-Alt-G\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}];\nexports.multiSelectCommands = [{\n name: \"singleSelection\",\n bindKey: \"esc\",\n exec: function(editor) { editor.exitMultiSelectMode(); },\n scrollIntoView: \"cursor\",\n readOnly: true,\n isAvailable: function(editor) {return editor && editor.inMultiSelectMode;}\n}];\n\nvar HashHandler = acequire(\"../keyboard/hash_handler\").HashHandler;\nexports.keyboardHandler = new HashHandler(exports.multiSelectCommands);\n\n});\n\nace.define(\"ace/multi_select\",[\"require\",\"exports\",\"module\",\"ace/range_list\",\"ace/range\",\"ace/selection\",\"ace/mouse/multi_select_handler\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/commands/multi_select_commands\",\"ace/search\",\"ace/edit_session\",\"ace/editor\",\"ace/config\"], function(acequire, exports, module) {\n\nvar RangeList = acequire(\"./range_list\").RangeList;\nvar Range = acequire(\"./range\").Range;\nvar Selection = acequire(\"./selection\").Selection;\nvar onMouseDown = acequire(\"./mouse/multi_select_handler\").onMouseDown;\nvar event = acequire(\"./lib/event\");\nvar lang = acequire(\"./lib/lang\");\nvar commands = acequire(\"./commands/multi_select_commands\");\nexports.commands = commands.defaultCommands.concat(commands.multiSelectCommands);\nvar Search = acequire(\"./search\").Search;\nvar search = new Search();\n\nfunction find(session, needle, dir) {\n search.$options.wrap = true;\n search.$options.needle = needle;\n search.$options.backwards = dir == -1;\n return search.find(session);\n}\nvar EditSession = acequire(\"./edit_session\").EditSession;\n(function() {\n this.getSelectionMarkers = function() {\n return this.$selectionMarkers;\n };\n}).call(EditSession.prototype);\n(function() {\n this.ranges = null;\n this.rangeList = null;\n this.addRange = function(range, $blockChangeEvents) {\n if (!range)\n return;\n\n if (!this.inMultiSelectMode && this.rangeCount === 0) {\n var oldRange = this.toOrientedRange();\n this.rangeList.add(oldRange);\n this.rangeList.add(range);\n if (this.rangeList.ranges.length != 2) {\n this.rangeList.removeAll();\n return $blockChangeEvents || this.fromOrientedRange(range);\n }\n this.rangeList.removeAll();\n this.rangeList.add(oldRange);\n this.$onAddRange(oldRange);\n }\n\n if (!range.cursor)\n range.cursor = range.end;\n\n var removed = this.rangeList.add(range);\n\n this.$onAddRange(range);\n\n if (removed.length)\n this.$onRemoveRange(removed);\n\n if (this.rangeCount > 1 && !this.inMultiSelectMode) {\n this._signal(\"multiSelect\");\n this.inMultiSelectMode = true;\n this.session.$undoSelect = false;\n this.rangeList.attach(this.session);\n }\n\n return $blockChangeEvents || this.fromOrientedRange(range);\n };\n\n this.toSingleRange = function(range) {\n range = range || this.ranges[0];\n var removed = this.rangeList.removeAll();\n if (removed.length)\n this.$onRemoveRange(removed);\n\n range && this.fromOrientedRange(range);\n };\n this.substractPoint = function(pos) {\n var removed = this.rangeList.substractPoint(pos);\n if (removed) {\n this.$onRemoveRange(removed);\n return removed[0];\n }\n };\n this.mergeOverlappingRanges = function() {\n var removed = this.rangeList.merge();\n if (removed.length)\n this.$onRemoveRange(removed);\n else if(this.ranges[0])\n this.fromOrientedRange(this.ranges[0]);\n };\n\n this.$onAddRange = function(range) {\n this.rangeCount = this.rangeList.ranges.length;\n this.ranges.unshift(range);\n this._signal(\"addRange\", {range: range});\n };\n\n this.$onRemoveRange = function(removed) {\n this.rangeCount = this.rangeList.ranges.length;\n if (this.rangeCount == 1 && this.inMultiSelectMode) {\n var lastRange = this.rangeList.ranges.pop();\n removed.push(lastRange);\n this.rangeCount = 0;\n }\n\n for (var i = removed.length; i--; ) {\n var index = this.ranges.indexOf(removed[i]);\n this.ranges.splice(index, 1);\n }\n\n this._signal(\"removeRange\", {ranges: removed});\n\n if (this.rangeCount === 0 && this.inMultiSelectMode) {\n this.inMultiSelectMode = false;\n this._signal(\"singleSelect\");\n this.session.$undoSelect = true;\n this.rangeList.detach(this.session);\n }\n\n lastRange = lastRange || this.ranges[0];\n if (lastRange && !lastRange.isEqual(this.getRange()))\n this.fromOrientedRange(lastRange);\n };\n this.$initRangeList = function() {\n if (this.rangeList)\n return;\n\n this.rangeList = new RangeList();\n this.ranges = [];\n this.rangeCount = 0;\n };\n this.getAllRanges = function() {\n return this.rangeCount ? this.rangeList.ranges.concat() : [this.getRange()];\n };\n\n this.splitIntoLines = function () {\n if (this.rangeCount > 1) {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n } else {\n var range = this.getRange();\n var isBackwards = this.isBackwards();\n var startRow = range.start.row;\n var endRow = range.end.row;\n if (startRow == endRow) {\n if (isBackwards)\n var start = range.end, end = range.start;\n else\n var start = range.start, end = range.end;\n \n this.addRange(Range.fromPoints(end, end));\n this.addRange(Range.fromPoints(start, start));\n return;\n }\n\n var rectSel = [];\n var r = this.getLineRange(startRow, true);\n r.start.column = range.start.column;\n rectSel.push(r);\n\n for (var i = startRow + 1; i < endRow; i++)\n rectSel.push(this.getLineRange(i, true));\n\n r = this.getLineRange(endRow, true);\n r.end.column = range.end.column;\n rectSel.push(r);\n\n rectSel.forEach(this.addRange, this);\n }\n };\n this.toggleBlockSelection = function () {\n if (this.rangeCount > 1) {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n } else {\n var cursor = this.session.documentToScreenPosition(this.selectionLead);\n var anchor = this.session.documentToScreenPosition(this.selectionAnchor);\n\n var rectSel = this.rectangularRangeBlock(cursor, anchor);\n rectSel.forEach(this.addRange, this);\n }\n };\n this.rectangularRangeBlock = function(screenCursor, screenAnchor, includeEmptyLines) {\n var rectSel = [];\n\n var xBackwards = screenCursor.column < screenAnchor.column;\n if (xBackwards) {\n var startColumn = screenCursor.column;\n var endColumn = screenAnchor.column;\n var startOffsetX = screenCursor.offsetX;\n var endOffsetX = screenAnchor.offsetX;\n } else {\n var startColumn = screenAnchor.column;\n var endColumn = screenCursor.column;\n var startOffsetX = screenAnchor.offsetX;\n var endOffsetX = screenCursor.offsetX;\n }\n\n var yBackwards = screenCursor.row < screenAnchor.row;\n if (yBackwards) {\n var startRow = screenCursor.row;\n var endRow = screenAnchor.row;\n } else {\n var startRow = screenAnchor.row;\n var endRow = screenCursor.row;\n }\n\n if (startColumn < 0)\n startColumn = 0;\n if (startRow < 0)\n startRow = 0;\n\n if (startRow == endRow)\n includeEmptyLines = true;\n\n for (var row = startRow; row <= endRow; row++) {\n var range = Range.fromPoints(\n this.session.screenToDocumentPosition(row, startColumn, startOffsetX),\n this.session.screenToDocumentPosition(row, endColumn, endOffsetX)\n );\n if (range.isEmpty()) {\n if (docEnd && isSamePoint(range.end, docEnd))\n break;\n var docEnd = range.end;\n }\n range.cursor = xBackwards ? range.start : range.end;\n rectSel.push(range);\n }\n\n if (yBackwards)\n rectSel.reverse();\n\n if (!includeEmptyLines) {\n var end = rectSel.length - 1;\n while (rectSel[end].isEmpty() && end > 0)\n end--;\n if (end > 0) {\n var start = 0;\n while (rectSel[start].isEmpty())\n start++;\n }\n for (var i = end; i >= start; i--) {\n if (rectSel[i].isEmpty())\n rectSel.splice(i, 1);\n }\n }\n\n return rectSel;\n };\n}).call(Selection.prototype);\nvar Editor = acequire(\"./editor\").Editor;\n(function() {\n this.updateSelectionMarkers = function() {\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.addSelectionMarker = function(orientedRange) {\n if (!orientedRange.cursor)\n orientedRange.cursor = orientedRange.end;\n\n var style = this.getSelectionStyle();\n orientedRange.marker = this.session.addMarker(orientedRange, \"ace_selection\", style);\n\n this.session.$selectionMarkers.push(orientedRange);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n return orientedRange;\n };\n this.removeSelectionMarker = function(range) {\n if (!range.marker)\n return;\n this.session.removeMarker(range.marker);\n var index = this.session.$selectionMarkers.indexOf(range);\n if (index != -1)\n this.session.$selectionMarkers.splice(index, 1);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n };\n\n this.removeSelectionMarkers = function(ranges) {\n var markerList = this.session.$selectionMarkers;\n for (var i = ranges.length; i--; ) {\n var range = ranges[i];\n if (!range.marker)\n continue;\n this.session.removeMarker(range.marker);\n var index = markerList.indexOf(range);\n if (index != -1)\n markerList.splice(index, 1);\n }\n this.session.selectionMarkerCount = markerList.length;\n };\n\n this.$onAddRange = function(e) {\n this.addSelectionMarker(e.range);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n\n this.$onRemoveRange = function(e) {\n this.removeSelectionMarkers(e.ranges);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n\n this.$onMultiSelect = function(e) {\n if (this.inMultiSelectMode)\n return;\n this.inMultiSelectMode = true;\n\n this.setStyle(\"ace_multiselect\");\n this.keyBinding.addKeyboardHandler(commands.keyboardHandler);\n this.commands.setDefaultHandler(\"exec\", this.$onMultiSelectExec);\n\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n\n this.$onSingleSelect = function(e) {\n if (this.session.multiSelect.inVirtualMode)\n return;\n this.inMultiSelectMode = false;\n\n this.unsetStyle(\"ace_multiselect\");\n this.keyBinding.removeKeyboardHandler(commands.keyboardHandler);\n\n this.commands.removeDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n this._emit(\"changeSelection\");\n };\n\n this.$onMultiSelectExec = function(e) {\n var command = e.command;\n var editor = e.editor;\n if (!editor.multiSelect)\n return;\n if (!command.multiSelectAction) {\n var result = command.exec(editor, e.args || {});\n editor.multiSelect.addRange(editor.multiSelect.toOrientedRange());\n editor.multiSelect.mergeOverlappingRanges();\n } else if (command.multiSelectAction == \"forEach\") {\n result = editor.forEachSelection(command, e.args);\n } else if (command.multiSelectAction == \"forEachLine\") {\n result = editor.forEachSelection(command, e.args, true);\n } else if (command.multiSelectAction == \"single\") {\n editor.exitMultiSelectMode();\n result = command.exec(editor, e.args || {});\n } else {\n result = command.multiSelectAction(editor, e.args || {});\n }\n return result;\n }; \n this.forEachSelection = function(cmd, args, options) {\n if (this.inVirtualSelectionMode)\n return;\n var keepOrder = options && options.keepOrder;\n var $byLines = options == true || options && options.$byLines;\n var session = this.session;\n var selection = this.selection;\n var rangeList = selection.rangeList;\n var ranges = (keepOrder ? selection : rangeList).ranges;\n var result;\n \n if (!ranges.length)\n return cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n \n var reg = selection._eventRegistry;\n selection._eventRegistry = {};\n\n var tmpSel = new Selection(session);\n this.inVirtualSelectionMode = true;\n for (var i = ranges.length; i--;) {\n if ($byLines) {\n while (i > 0 && ranges[i].start.row == ranges[i - 1].end.row)\n i--;\n }\n tmpSel.fromOrientedRange(ranges[i]);\n tmpSel.index = i;\n this.selection = session.selection = tmpSel;\n var cmdResult = cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n if (!result && cmdResult !== undefined)\n result = cmdResult;\n tmpSel.toOrientedRange(ranges[i]);\n }\n tmpSel.detach();\n\n this.selection = session.selection = selection;\n this.inVirtualSelectionMode = false;\n selection._eventRegistry = reg;\n selection.mergeOverlappingRanges();\n \n var anim = this.renderer.$scrollAnimation;\n this.onCursorChange();\n this.onSelectionChange();\n if (anim && anim.from == anim.to)\n this.renderer.animateScrolling(anim.from);\n \n return result;\n };\n this.exitMultiSelectMode = function() {\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode)\n return;\n this.multiSelect.toSingleRange();\n };\n\n this.getSelectedText = function() {\n var text = \"\";\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var ranges = this.multiSelect.rangeList.ranges;\n var buf = [];\n for (var i = 0; i < ranges.length; i++) {\n buf.push(this.session.getTextRange(ranges[i]));\n }\n var nl = this.session.getDocument().getNewLineCharacter();\n text = buf.join(nl);\n if (text.length == (buf.length - 1) * nl.length)\n text = \"\";\n } else if (!this.selection.isEmpty()) {\n text = this.session.getTextRange(this.getSelectionRange());\n }\n return text;\n };\n \n this.$checkMultiselectChange = function(e, anchor) {\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var range = this.multiSelect.ranges[0];\n if (this.multiSelect.isEmpty() && anchor == this.multiSelect.anchor)\n return;\n var pos = anchor == this.multiSelect.anchor\n ? range.cursor == range.start ? range.end : range.start\n : range.cursor;\n if (pos.row != anchor.row \n || this.session.$clipPositionToDocument(pos.row, pos.column).column != anchor.column)\n this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange());\n }\n };\n this.findAll = function(needle, options, additive) {\n options = options || {};\n options.needle = needle || options.needle;\n if (options.needle == undefined) {\n var range = this.selection.isEmpty()\n ? this.selection.getWordRange()\n : this.selection.getRange();\n options.needle = this.session.getTextRange(range);\n } \n this.$search.set(options);\n \n var ranges = this.$search.findAll(this.session);\n if (!ranges.length)\n return 0;\n\n this.$blockScrolling += 1;\n var selection = this.multiSelect;\n\n if (!additive)\n selection.toSingleRange(ranges[0]);\n\n for (var i = ranges.length; i--; )\n selection.addRange(ranges[i], true);\n if (range && selection.rangeList.rangeAtPoint(range.start))\n selection.addRange(range, true);\n \n this.$blockScrolling -= 1;\n\n return ranges.length;\n };\n this.selectMoreLines = function(dir, skip) {\n var range = this.selection.toOrientedRange();\n var isBackwards = range.cursor == range.end;\n\n var screenLead = this.session.documentToScreenPosition(range.cursor);\n if (this.selection.$desiredColumn)\n screenLead.column = this.selection.$desiredColumn;\n\n var lead = this.session.screenToDocumentPosition(screenLead.row + dir, screenLead.column);\n\n if (!range.isEmpty()) {\n var screenAnchor = this.session.documentToScreenPosition(isBackwards ? range.end : range.start);\n var anchor = this.session.screenToDocumentPosition(screenAnchor.row + dir, screenAnchor.column);\n } else {\n var anchor = lead;\n }\n\n if (isBackwards) {\n var newRange = Range.fromPoints(lead, anchor);\n newRange.cursor = newRange.start;\n } else {\n var newRange = Range.fromPoints(anchor, lead);\n newRange.cursor = newRange.end;\n }\n\n newRange.desiredColumn = screenLead.column;\n if (!this.selection.inMultiSelectMode) {\n this.selection.addRange(range);\n } else {\n if (skip)\n var toRemove = range.cursor;\n }\n\n this.selection.addRange(newRange);\n if (toRemove)\n this.selection.substractPoint(toRemove);\n };\n this.transposeSelections = function(dir) {\n var session = this.session;\n var sel = session.multiSelect;\n var all = sel.ranges;\n\n for (var i = all.length; i--; ) {\n var range = all[i];\n if (range.isEmpty()) {\n var tmp = session.getWordRange(range.start.row, range.start.column);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n range.end.row = tmp.end.row;\n range.end.column = tmp.end.column;\n }\n }\n sel.mergeOverlappingRanges();\n\n var words = [];\n for (var i = all.length; i--; ) {\n var range = all[i];\n words.unshift(session.getTextRange(range));\n }\n\n if (dir < 0)\n words.unshift(words.pop());\n else\n words.push(words.shift());\n\n for (var i = all.length; i--; ) {\n var range = all[i];\n var tmp = range.clone();\n session.replace(range, words[i]);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n }\n };\n this.selectMore = function(dir, skip, stopAtFirst) {\n var session = this.session;\n var sel = session.multiSelect;\n\n var range = sel.toOrientedRange();\n if (range.isEmpty()) {\n range = session.getWordRange(range.start.row, range.start.column);\n range.cursor = dir == -1 ? range.start : range.end;\n this.multiSelect.addRange(range);\n if (stopAtFirst)\n return;\n }\n var needle = session.getTextRange(range);\n\n var newRange = find(session, needle, dir);\n if (newRange) {\n newRange.cursor = dir == -1 ? newRange.start : newRange.end;\n this.$blockScrolling += 1;\n this.session.unfold(newRange);\n this.multiSelect.addRange(newRange);\n this.$blockScrolling -= 1;\n this.renderer.scrollCursorIntoView(null, 0.5);\n }\n if (skip)\n this.multiSelect.substractPoint(range.cursor);\n };\n this.alignCursors = function() {\n var session = this.session;\n var sel = session.multiSelect;\n var ranges = sel.ranges;\n var row = -1;\n var sameRowRanges = ranges.filter(function(r) {\n if (r.cursor.row == row)\n return true;\n row = r.cursor.row;\n });\n \n if (!ranges.length || sameRowRanges.length == ranges.length - 1) {\n var range = this.selection.getRange();\n var fr = range.start.row, lr = range.end.row;\n var guessRange = fr == lr;\n if (guessRange) {\n var max = this.session.getLength();\n var line;\n do {\n line = this.session.getLine(lr);\n } while (/[=:]/.test(line) && ++lr < max);\n do {\n line = this.session.getLine(fr);\n } while (/[=:]/.test(line) && --fr > 0);\n \n if (fr < 0) fr = 0;\n if (lr >= max) lr = max - 1;\n }\n var lines = this.session.removeFullLines(fr, lr);\n lines = this.$reAlignText(lines, guessRange);\n this.session.insert({row: fr, column: 0}, lines.join(\"\\n\") + \"\\n\");\n if (!guessRange) {\n range.start.column = 0;\n range.end.column = lines[lines.length - 1].length;\n }\n this.selection.setRange(range);\n } else {\n sameRowRanges.forEach(function(r) {\n sel.substractPoint(r.cursor);\n });\n\n var maxCol = 0;\n var minSpace = Infinity;\n var spaceOffsets = ranges.map(function(r) {\n var p = r.cursor;\n var line = session.getLine(p.row);\n var spaceOffset = line.substr(p.column).search(/\\S/g);\n if (spaceOffset == -1)\n spaceOffset = 0;\n\n if (p.column > maxCol)\n maxCol = p.column;\n if (spaceOffset < minSpace)\n minSpace = spaceOffset;\n return spaceOffset;\n });\n ranges.forEach(function(r, i) {\n var p = r.cursor;\n var l = maxCol - p.column;\n var d = spaceOffsets[i] - minSpace;\n if (l > d)\n session.insert(p, lang.stringRepeat(\" \", l - d));\n else\n session.remove(new Range(p.row, p.column, p.row, p.column - l + d));\n\n r.start.column = r.end.column = maxCol;\n r.start.row = r.end.row = p.row;\n r.cursor = r.end;\n });\n sel.fromOrientedRange(ranges[0]);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n }\n };\n\n this.$reAlignText = function(lines, forceLeft) {\n var isLeftAligned = true, isRightAligned = true;\n var startW, textW, endW;\n\n return lines.map(function(line) {\n var m = line.match(/(\\s*)(.*?)(\\s*)([=:].*)/);\n if (!m)\n return [line];\n\n if (startW == null) {\n startW = m[1].length;\n textW = m[2].length;\n endW = m[3].length;\n return m;\n }\n\n if (startW + textW + endW != m[1].length + m[2].length + m[3].length)\n isRightAligned = false;\n if (startW != m[1].length)\n isLeftAligned = false;\n\n if (startW > m[1].length)\n startW = m[1].length;\n if (textW < m[2].length)\n textW = m[2].length;\n if (endW > m[3].length)\n endW = m[3].length;\n\n return m;\n }).map(forceLeft ? alignLeft :\n isLeftAligned ? isRightAligned ? alignRight : alignLeft : unAlign);\n\n function spaces(n) {\n return lang.stringRepeat(\" \", n);\n }\n\n function alignLeft(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(textW - m[2].length + endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function alignRight(m) {\n return !m[2] ? m[0] : spaces(startW + textW - m[2].length) + m[2]\n + spaces(endW, \" \")\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function unAlign(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n };\n}).call(Editor.prototype);\n\n\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nexports.onSessionChange = function(e) {\n var session = e.session;\n if (session && !session.multiSelect) {\n session.$selectionMarkers = [];\n session.selection.$initRangeList();\n session.multiSelect = session.selection;\n }\n this.multiSelect = session && session.multiSelect;\n\n var oldSession = e.oldSession;\n if (oldSession) {\n oldSession.multiSelect.off(\"addRange\", this.$onAddRange);\n oldSession.multiSelect.off(\"removeRange\", this.$onRemoveRange);\n oldSession.multiSelect.off(\"multiSelect\", this.$onMultiSelect);\n oldSession.multiSelect.off(\"singleSelect\", this.$onSingleSelect);\n oldSession.multiSelect.lead.off(\"change\", this.$checkMultiselectChange);\n oldSession.multiSelect.anchor.off(\"change\", this.$checkMultiselectChange);\n }\n\n if (session) {\n session.multiSelect.on(\"addRange\", this.$onAddRange);\n session.multiSelect.on(\"removeRange\", this.$onRemoveRange);\n session.multiSelect.on(\"multiSelect\", this.$onMultiSelect);\n session.multiSelect.on(\"singleSelect\", this.$onSingleSelect);\n session.multiSelect.lead.on(\"change\", this.$checkMultiselectChange);\n session.multiSelect.anchor.on(\"change\", this.$checkMultiselectChange);\n }\n\n if (session && this.inMultiSelectMode != session.selection.inMultiSelectMode) {\n if (session.selection.inMultiSelectMode)\n this.$onMultiSelect();\n else\n this.$onSingleSelect();\n }\n};\nfunction MultiSelect(editor) {\n if (editor.$multiselectOnSessionChange)\n return;\n editor.$onAddRange = editor.$onAddRange.bind(editor);\n editor.$onRemoveRange = editor.$onRemoveRange.bind(editor);\n editor.$onMultiSelect = editor.$onMultiSelect.bind(editor);\n editor.$onSingleSelect = editor.$onSingleSelect.bind(editor);\n editor.$multiselectOnSessionChange = exports.onSessionChange.bind(editor);\n editor.$checkMultiselectChange = editor.$checkMultiselectChange.bind(editor);\n\n editor.$multiselectOnSessionChange(editor);\n editor.on(\"changeSession\", editor.$multiselectOnSessionChange);\n\n editor.on(\"mousedown\", onMouseDown);\n editor.commands.addCommands(commands.defaultCommands);\n\n addAltCursorListeners(editor);\n}\n\nfunction addAltCursorListeners(editor){\n var el = editor.textInput.getElement();\n var altCursor = false;\n event.addListener(el, \"keydown\", function(e) {\n var altDown = e.keyCode == 18 && !(e.ctrlKey || e.shiftKey || e.metaKey);\n if (editor.$blockSelectEnabled && altDown) {\n if (!altCursor) {\n editor.renderer.setMouseCursor(\"crosshair\");\n altCursor = true;\n }\n } else if (altCursor) {\n reset();\n }\n });\n\n event.addListener(el, \"keyup\", reset);\n event.addListener(el, \"blur\", reset);\n function reset(e) {\n if (altCursor) {\n editor.renderer.setMouseCursor(\"\");\n altCursor = false;\n }\n }\n}\n\nexports.MultiSelect = MultiSelect;\n\n\nacequire(\"./config\").defineOptions(Editor.prototype, \"editor\", {\n enableMultiselect: {\n set: function(val) {\n MultiSelect(this);\n if (val) {\n this.on(\"changeSession\", this.$multiselectOnSessionChange);\n this.on(\"mousedown\", onMouseDown);\n } else {\n this.off(\"changeSession\", this.$multiselectOnSessionChange);\n this.off(\"mousedown\", onMouseDown);\n }\n },\n value: true\n },\n enableBlockSelect: {\n set: function(val) {\n this.$blockSelectEnabled = val;\n },\n value: true\n }\n});\n\n\n\n});\n\nace.define(\"ace/mode/folding/fold_mode\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\n\n(function() {\n\n this.foldingStartMarker = null;\n this.foldingStopMarker = null;\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.foldingStartMarker.test(line))\n return \"start\";\n if (foldStyle == \"markbeginend\"\n && this.foldingStopMarker\n && this.foldingStopMarker.test(line))\n return \"end\";\n return \"\";\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row) {\n return null;\n };\n\n this.indentationBlock = function(session, row, column) {\n var re = /\\S/;\n var line = session.getLine(row);\n var startLevel = line.search(re);\n if (startLevel == -1)\n return;\n\n var startColumn = column || line.length;\n var maxRow = session.getLength();\n var startRow = row;\n var endRow = row;\n\n while (++row < maxRow) {\n var level = session.getLine(row).search(re);\n\n if (level == -1)\n continue;\n\n if (level <= startLevel)\n break;\n\n endRow = row;\n }\n\n if (endRow > startRow) {\n var endColumn = session.getLine(endRow).length;\n return new Range(startRow, startColumn, endRow, endColumn);\n }\n };\n\n this.openingBracketBlock = function(session, bracket, row, column, typeRe) {\n var start = {row: row, column: column + 1};\n var end = session.$findClosingBracket(bracket, start, typeRe);\n if (!end)\n return;\n\n var fw = session.foldWidgets[end.row];\n if (fw == null)\n fw = session.getFoldWidget(end.row);\n\n if (fw == \"start\" && end.row > start.row) {\n end.row --;\n end.column = session.getLine(end.row).length;\n }\n return Range.fromPoints(start, end);\n };\n\n this.closingBracketBlock = function(session, bracket, row, column, typeRe) {\n var end = {row: row, column: column};\n var start = session.$findOpeningBracket(bracket, end);\n\n if (!start)\n return;\n\n start.column++;\n end.column--;\n\n return Range.fromPoints(start, end);\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nexports.isDark = false;\nexports.cssClass = \"ace-tm\";\nexports.cssText = \".ace-tm .ace_gutter {\\\nbackground: #f0f0f0;\\\ncolor: #333;\\\n}\\\n.ace-tm .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #e8e8e8;\\\n}\\\n.ace-tm .ace_fold {\\\nbackground-color: #6B72E6;\\\n}\\\n.ace-tm {\\\nbackground-color: #FFFFFF;\\\ncolor: black;\\\n}\\\n.ace-tm .ace_cursor {\\\ncolor: black;\\\n}\\\n.ace-tm .ace_invisible {\\\ncolor: rgb(191, 191, 191);\\\n}\\\n.ace-tm .ace_storage,\\\n.ace-tm .ace_keyword {\\\ncolor: blue;\\\n}\\\n.ace-tm .ace_constant {\\\ncolor: rgb(197, 6, 11);\\\n}\\\n.ace-tm .ace_constant.ace_buildin {\\\ncolor: rgb(88, 72, 246);\\\n}\\\n.ace-tm .ace_constant.ace_language {\\\ncolor: rgb(88, 92, 246);\\\n}\\\n.ace-tm .ace_constant.ace_library {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-tm .ace_invalid {\\\nbackground-color: rgba(255, 0, 0, 0.1);\\\ncolor: red;\\\n}\\\n.ace-tm .ace_support.ace_function {\\\ncolor: rgb(60, 76, 114);\\\n}\\\n.ace-tm .ace_support.ace_constant {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-tm .ace_support.ace_type,\\\n.ace-tm .ace_support.ace_class {\\\ncolor: rgb(109, 121, 222);\\\n}\\\n.ace-tm .ace_keyword.ace_operator {\\\ncolor: rgb(104, 118, 135);\\\n}\\\n.ace-tm .ace_string {\\\ncolor: rgb(3, 106, 7);\\\n}\\\n.ace-tm .ace_comment {\\\ncolor: rgb(76, 136, 107);\\\n}\\\n.ace-tm .ace_comment.ace_doc {\\\ncolor: rgb(0, 102, 255);\\\n}\\\n.ace-tm .ace_comment.ace_doc.ace_tag {\\\ncolor: rgb(128, 159, 191);\\\n}\\\n.ace-tm .ace_constant.ace_numeric {\\\ncolor: rgb(0, 0, 205);\\\n}\\\n.ace-tm .ace_variable {\\\ncolor: rgb(49, 132, 149);\\\n}\\\n.ace-tm .ace_xml-pe {\\\ncolor: rgb(104, 104, 91);\\\n}\\\n.ace-tm .ace_entity.ace_name.ace_function {\\\ncolor: #0000A2;\\\n}\\\n.ace-tm .ace_heading {\\\ncolor: rgb(12, 7, 255);\\\n}\\\n.ace-tm .ace_list {\\\ncolor:rgb(185, 6, 144);\\\n}\\\n.ace-tm .ace_meta.ace_tag {\\\ncolor:rgb(0, 22, 142);\\\n}\\\n.ace-tm .ace_string.ace_regex {\\\ncolor: rgb(255, 0, 0)\\\n}\\\n.ace-tm .ace_marker-layer .ace_selection {\\\nbackground: rgb(181, 213, 255);\\\n}\\\n.ace-tm.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px white;\\\n}\\\n.ace-tm .ace_marker-layer .ace_step {\\\nbackground: rgb(252, 255, 0);\\\n}\\\n.ace-tm .ace_marker-layer .ace_stack {\\\nbackground: rgb(164, 229, 101);\\\n}\\\n.ace-tm .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid rgb(192, 192, 192);\\\n}\\\n.ace-tm .ace_marker-layer .ace_active-line {\\\nbackground: rgba(0, 0, 0, 0.07);\\\n}\\\n.ace-tm .ace_gutter-active-line {\\\nbackground-color : #dcdcdc;\\\n}\\\n.ace-tm .ace_marker-layer .ace_selected-word {\\\nbackground: rgb(250, 250, 255);\\\nborder: 1px solid rgb(200, 200, 250);\\\n}\\\n.ace-tm .ace_indent-guide {\\\nbackground: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\\n}\\\n\";\n\nvar dom = acequire(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n\nace.define(\"ace/line_widgets\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar Range = acequire(\"./range\").Range;\n\n\nfunction LineWidgets(session) {\n this.session = session;\n this.session.widgetManager = this;\n this.session.getRowLength = this.getRowLength;\n this.session.$getWidgetScreenLength = this.$getWidgetScreenLength;\n this.updateOnChange = this.updateOnChange.bind(this);\n this.renderWidgets = this.renderWidgets.bind(this);\n this.measureWidgets = this.measureWidgets.bind(this);\n this.session._changedWidgets = [];\n this.$onChangeEditor = this.$onChangeEditor.bind(this);\n \n this.session.on(\"change\", this.updateOnChange);\n this.session.on(\"changeFold\", this.updateOnFold);\n this.session.on(\"changeEditor\", this.$onChangeEditor);\n}\n\n(function() {\n this.getRowLength = function(row) {\n var h;\n if (this.lineWidgets)\n h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n else \n h = 0;\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1 + h;\n } else {\n return this.$wrapData[row].length + 1 + h;\n }\n };\n\n this.$getWidgetScreenLength = function() {\n var screenRows = 0;\n this.lineWidgets.forEach(function(w){\n if (w && w.rowCount && !w.hidden)\n screenRows += w.rowCount;\n });\n return screenRows;\n }; \n \n this.$onChangeEditor = function(e) {\n this.attach(e.editor);\n };\n \n this.attach = function(editor) {\n if (editor && editor.widgetManager && editor.widgetManager != this)\n editor.widgetManager.detach();\n\n if (this.editor == editor)\n return;\n\n this.detach();\n this.editor = editor;\n \n if (editor) {\n editor.widgetManager = this;\n editor.renderer.on(\"beforeRender\", this.measureWidgets);\n editor.renderer.on(\"afterRender\", this.renderWidgets);\n }\n };\n this.detach = function(e) {\n var editor = this.editor;\n if (!editor)\n return;\n \n this.editor = null;\n editor.widgetManager = null;\n \n editor.renderer.off(\"beforeRender\", this.measureWidgets);\n editor.renderer.off(\"afterRender\", this.renderWidgets);\n var lineWidgets = this.session.lineWidgets;\n lineWidgets && lineWidgets.forEach(function(w) {\n if (w && w.el && w.el.parentNode) {\n w._inDocument = false;\n w.el.parentNode.removeChild(w.el);\n }\n });\n };\n\n this.updateOnFold = function(e, session) {\n var lineWidgets = session.lineWidgets;\n if (!lineWidgets || !e.action)\n return;\n var fold = e.data;\n var start = fold.start.row;\n var end = fold.end.row;\n var hide = e.action == \"add\";\n for (var i = start + 1; i < end; i++) {\n if (lineWidgets[i])\n lineWidgets[i].hidden = hide;\n }\n if (lineWidgets[end]) {\n if (hide) {\n if (!lineWidgets[start])\n lineWidgets[start] = lineWidgets[end];\n else\n lineWidgets[end].hidden = hide;\n } else {\n if (lineWidgets[start] == lineWidgets[end])\n lineWidgets[start] = undefined;\n lineWidgets[end].hidden = hide;\n }\n }\n };\n \n this.updateOnChange = function(delta) {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets) return;\n \n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n\n if (len === 0) {\n } else if (delta.action == 'remove') {\n var removed = lineWidgets.splice(startRow + 1, len);\n removed.forEach(function(w) {\n w && this.removeLineWidget(w);\n }, this);\n this.$updateRows();\n } else {\n var args = new Array(len);\n args.unshift(startRow, 0);\n lineWidgets.splice.apply(lineWidgets, args);\n this.$updateRows();\n }\n };\n \n this.$updateRows = function() {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets) return;\n var noWidgets = true;\n lineWidgets.forEach(function(w, i) {\n if (w) {\n noWidgets = false;\n w.row = i;\n while (w.$oldWidget) {\n w.$oldWidget.row = i;\n w = w.$oldWidget;\n }\n }\n });\n if (noWidgets)\n this.session.lineWidgets = null;\n };\n\n this.addLineWidget = function(w) {\n if (!this.session.lineWidgets)\n this.session.lineWidgets = new Array(this.session.getLength());\n \n var old = this.session.lineWidgets[w.row];\n if (old) {\n w.$oldWidget = old;\n if (old.el && old.el.parentNode) {\n old.el.parentNode.removeChild(old.el);\n old._inDocument = false;\n }\n }\n \n this.session.lineWidgets[w.row] = w;\n \n w.session = this.session;\n \n var renderer = this.editor.renderer;\n if (w.html && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.innerHTML = w.html;\n }\n if (w.el) {\n dom.addCssClass(w.el, \"ace_lineWidgetContainer\");\n w.el.style.position = \"absolute\";\n w.el.style.zIndex = 5;\n renderer.container.appendChild(w.el);\n w._inDocument = true;\n }\n \n if (!w.coverGutter) {\n w.el.style.zIndex = 3;\n }\n if (w.pixelHeight == null) {\n w.pixelHeight = w.el.offsetHeight;\n }\n if (w.rowCount == null) {\n w.rowCount = w.pixelHeight / renderer.layerConfig.lineHeight;\n }\n \n var fold = this.session.getFoldAt(w.row, 0);\n w.$fold = fold;\n if (fold) {\n var lineWidgets = this.session.lineWidgets;\n if (w.row == fold.end.row && !lineWidgets[fold.start.row])\n lineWidgets[fold.start.row] = w;\n else\n w.hidden = true;\n }\n \n this.session._emit(\"changeFold\", {data:{start:{row: w.row}}});\n \n this.$updateRows();\n this.renderWidgets(null, renderer);\n this.onWidgetChanged(w);\n return w;\n };\n \n this.removeLineWidget = function(w) {\n w._inDocument = false;\n w.session = null;\n if (w.el && w.el.parentNode)\n w.el.parentNode.removeChild(w.el);\n if (w.editor && w.editor.destroy) try {\n w.editor.destroy();\n } catch(e){}\n if (this.session.lineWidgets) {\n var w1 = this.session.lineWidgets[w.row];\n if (w1 == w) {\n this.session.lineWidgets[w.row] = w.$oldWidget;\n if (w.$oldWidget)\n this.onWidgetChanged(w.$oldWidget);\n } else {\n while (w1) {\n if (w1.$oldWidget == w) {\n w1.$oldWidget = w.$oldWidget;\n break;\n }\n w1 = w1.$oldWidget;\n }\n }\n }\n this.session._emit(\"changeFold\", {data:{start:{row: w.row}}});\n this.$updateRows();\n };\n \n this.getWidgetsAtRow = function(row) {\n var lineWidgets = this.session.lineWidgets;\n var w = lineWidgets && lineWidgets[row];\n var list = [];\n while (w) {\n list.push(w);\n w = w.$oldWidget;\n }\n return list;\n };\n \n this.onWidgetChanged = function(w) {\n this.session._changedWidgets.push(w);\n this.editor && this.editor.renderer.updateFull();\n };\n \n this.measureWidgets = function(e, renderer) {\n var changedWidgets = this.session._changedWidgets;\n var config = renderer.layerConfig;\n \n if (!changedWidgets || !changedWidgets.length) return;\n var min = Infinity;\n for (var i = 0; i < changedWidgets.length; i++) {\n var w = changedWidgets[i];\n if (!w || !w.el) continue;\n if (w.session != this.session) continue;\n if (!w._inDocument) {\n if (this.session.lineWidgets[w.row] != w)\n continue;\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n \n w.h = w.el.offsetHeight;\n \n if (!w.fixedWidth) {\n w.w = w.el.offsetWidth;\n w.screenWidth = Math.ceil(w.w / config.characterWidth);\n }\n \n var rowCount = w.h / config.lineHeight;\n if (w.coverLine) {\n rowCount -= this.session.getRowLineCount(w.row);\n if (rowCount < 0)\n rowCount = 0;\n }\n if (w.rowCount != rowCount) {\n w.rowCount = rowCount;\n if (w.row < min)\n min = w.row;\n }\n }\n if (min != Infinity) {\n this.session._emit(\"changeFold\", {data:{start:{row: min}}});\n this.session.lineWidgetWidth = null;\n }\n this.session._changedWidgets = [];\n };\n \n this.renderWidgets = function(e, renderer) {\n var config = renderer.layerConfig;\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var first = Math.min(this.firstRow, config.firstRow);\n var last = Math.max(this.lastRow, config.lastRow, lineWidgets.length);\n \n while (first > 0 && !lineWidgets[first])\n first--;\n \n this.firstRow = config.firstRow;\n this.lastRow = config.lastRow;\n\n renderer.$cursorLayer.config = config;\n for (var i = first; i <= last; i++) {\n var w = lineWidgets[i];\n if (!w || !w.el) continue;\n if (w.hidden) {\n w.el.style.top = -100 - (w.pixelHeight || 0) + \"px\";\n continue;\n }\n if (!w._inDocument) {\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n var top = renderer.$cursorLayer.getPixelPosition({row: i, column:0}, true).top;\n if (!w.coverLine)\n top += config.lineHeight * this.session.getRowLineCount(w.row);\n w.el.style.top = top - config.offset + \"px\";\n \n var left = w.coverGutter ? 0 : renderer.gutterWidth;\n if (!w.fixedWidth)\n left -= renderer.scrollLeft;\n w.el.style.left = left + \"px\";\n \n if (w.fullWidth && w.screenWidth) {\n w.el.style.minWidth = config.width + 2 * config.padding + \"px\";\n }\n \n if (w.fixedWidth) {\n w.el.style.right = renderer.scrollBar.getWidth() + \"px\";\n } else {\n w.el.style.right = \"\";\n }\n }\n };\n \n}).call(LineWidgets.prototype);\n\n\nexports.LineWidgets = LineWidgets;\n\n});\n\nace.define(\"ace/ext/error_marker\",[\"require\",\"exports\",\"module\",\"ace/line_widgets\",\"ace/lib/dom\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\nvar LineWidgets = acequire(\"../line_widgets\").LineWidgets;\nvar dom = acequire(\"../lib/dom\");\nvar Range = acequire(\"../range\").Range;\n\nfunction binarySearch(array, needle, comparator) {\n var first = 0;\n var last = array.length - 1;\n\n while (first <= last) {\n var mid = (first + last) >> 1;\n var c = comparator(needle, array[mid]);\n if (c > 0)\n first = mid + 1;\n else if (c < 0)\n last = mid - 1;\n else\n return mid;\n }\n return -(first + 1);\n}\n\nfunction findAnnotations(session, row, dir) {\n var annotations = session.getAnnotations().sort(Range.comparePoints);\n if (!annotations.length)\n return;\n \n var i = binarySearch(annotations, {row: row, column: -1}, Range.comparePoints);\n if (i < 0)\n i = -i - 1;\n \n if (i >= annotations.length)\n i = dir > 0 ? 0 : annotations.length - 1;\n else if (i === 0 && dir < 0)\n i = annotations.length - 1;\n \n var annotation = annotations[i];\n if (!annotation || !dir)\n return;\n\n if (annotation.row === row) {\n do {\n annotation = annotations[i += dir];\n } while (annotation && annotation.row === row);\n if (!annotation)\n return annotations.slice();\n }\n \n \n var matched = [];\n row = annotation.row;\n do {\n matched[dir < 0 ? \"unshift\" : \"push\"](annotation);\n annotation = annotations[i += dir];\n } while (annotation && annotation.row == row);\n return matched.length && matched;\n}\n\nexports.showErrorMarker = function(editor, dir) {\n var session = editor.session;\n if (!session.widgetManager) {\n session.widgetManager = new LineWidgets(session);\n session.widgetManager.attach(editor);\n }\n \n var pos = editor.getCursorPosition();\n var row = pos.row;\n var oldWidget = session.widgetManager.getWidgetsAtRow(row).filter(function(w) {\n return w.type == \"errorMarker\";\n })[0];\n if (oldWidget) {\n oldWidget.destroy();\n } else {\n row -= dir;\n }\n var annotations = findAnnotations(session, row, dir);\n var gutterAnno;\n if (annotations) {\n var annotation = annotations[0];\n pos.column = (annotation.pos && typeof annotation.column != \"number\"\n ? annotation.pos.sc\n : annotation.column) || 0;\n pos.row = annotation.row;\n gutterAnno = editor.renderer.$gutterLayer.$annotations[pos.row];\n } else if (oldWidget) {\n return;\n } else {\n gutterAnno = {\n text: [\"Looks good!\"],\n className: \"ace_ok\"\n };\n }\n editor.session.unfold(pos.row);\n editor.selection.moveToPosition(pos);\n \n var w = {\n row: pos.row, \n fixedWidth: true,\n coverGutter: true,\n el: dom.createElement(\"div\"),\n type: \"errorMarker\"\n };\n var el = w.el.appendChild(dom.createElement(\"div\"));\n var arrow = w.el.appendChild(dom.createElement(\"div\"));\n arrow.className = \"error_widget_arrow \" + gutterAnno.className;\n \n var left = editor.renderer.$cursorLayer\n .getPixelPosition(pos).left;\n arrow.style.left = left + editor.renderer.gutterWidth - 5 + \"px\";\n \n w.el.className = \"error_widget_wrapper\";\n el.className = \"error_widget \" + gutterAnno.className;\n el.innerHTML = gutterAnno.text.join(\"<br>\");\n \n el.appendChild(dom.createElement(\"div\"));\n \n var kb = function(_, hashId, keyString) {\n if (hashId === 0 && (keyString === \"esc\" || keyString === \"return\")) {\n w.destroy();\n return {command: \"null\"};\n }\n };\n \n w.destroy = function() {\n if (editor.$mouseHandler.isMousePressed)\n return;\n editor.keyBinding.removeKeyboardHandler(kb);\n session.widgetManager.removeLineWidget(w);\n editor.off(\"changeSelection\", w.destroy);\n editor.off(\"changeSession\", w.destroy);\n editor.off(\"mouseup\", w.destroy);\n editor.off(\"change\", w.destroy);\n };\n \n editor.keyBinding.addKeyboardHandler(kb);\n editor.on(\"changeSelection\", w.destroy);\n editor.on(\"changeSession\", w.destroy);\n editor.on(\"mouseup\", w.destroy);\n editor.on(\"change\", w.destroy);\n \n editor.session.widgetManager.addLineWidget(w);\n \n w.el.onmousedown = editor.focus.bind(editor);\n \n editor.renderer.scrollCursorIntoView(null, 0.5, {bottom: w.el.offsetHeight});\n};\n\n\ndom.importCssString(\"\\\n .error_widget_wrapper {\\\n background: inherit;\\\n color: inherit;\\\n border:none\\\n }\\\n .error_widget {\\\n border-top: solid 2px;\\\n border-bottom: solid 2px;\\\n margin: 5px 0;\\\n padding: 10px 40px;\\\n white-space: pre-wrap;\\\n }\\\n .error_widget.ace_error, .error_widget_arrow.ace_error{\\\n border-color: #ff5a5a\\\n }\\\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\\\n border-color: #F1D817\\\n }\\\n .error_widget.ace_info, .error_widget_arrow.ace_info{\\\n border-color: #5a5a5a\\\n }\\\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\\\n border-color: #5aaa5a\\\n }\\\n .error_widget_arrow {\\\n position: absolute;\\\n border: solid 5px;\\\n border-top-color: transparent!important;\\\n border-right-color: transparent!important;\\\n border-left-color: transparent!important;\\\n top: -5px;\\\n }\\\n\", \"\");\n\n});\n\nace.define(\"ace/ace\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/editor\",\"ace/edit_session\",\"ace/undomanager\",\"ace/virtual_renderer\",\"ace/worker/worker_client\",\"ace/keyboard/hash_handler\",\"ace/placeholder\",\"ace/multi_select\",\"ace/mode/folding/fold_mode\",\"ace/theme/textmate\",\"ace/ext/error_marker\",\"ace/config\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./lib/fixoldbrowsers\");\n\nvar dom = acequire(\"./lib/dom\");\nvar event = acequire(\"./lib/event\");\n\nvar Editor = acequire(\"./editor\").Editor;\nvar EditSession = acequire(\"./edit_session\").EditSession;\nvar UndoManager = acequire(\"./undomanager\").UndoManager;\nvar Renderer = acequire(\"./virtual_renderer\").VirtualRenderer;\nacequire(\"./worker/worker_client\");\nacequire(\"./keyboard/hash_handler\");\nacequire(\"./placeholder\");\nacequire(\"./multi_select\");\nacequire(\"./mode/folding/fold_mode\");\nacequire(\"./theme/textmate\");\nacequire(\"./ext/error_marker\");\n\nexports.config = acequire(\"./config\");\nexports.acequire = acequire;\n\nif (typeof define === \"function\")\n exports.define = define;\nexports.edit = function(el) {\n if (typeof el == \"string\") {\n var _id = el;\n el = document.getElementById(_id);\n if (!el)\n throw new Error(\"ace.edit can't find div #\" + _id);\n }\n\n if (el && el.env && el.env.editor instanceof Editor)\n return el.env.editor;\n\n var value = \"\";\n if (el && /input|textarea/i.test(el.tagName)) {\n var oldNode = el;\n value = oldNode.value;\n el = dom.createElement(\"pre\");\n oldNode.parentNode.replaceChild(el, oldNode);\n } else if (el) {\n value = dom.getInnerText(el);\n el.innerHTML = \"\";\n }\n\n var doc = exports.createEditSession(value);\n\n var editor = new Editor(new Renderer(el));\n editor.setSession(doc);\n\n var env = {\n document: doc,\n editor: editor,\n onResize: editor.resize.bind(editor, null)\n };\n if (oldNode) env.textarea = oldNode;\n event.addListener(window, \"resize\", env.onResize);\n editor.on(\"destroy\", function() {\n event.removeListener(window, \"resize\", env.onResize);\n env.editor.container.env = null; // prevent memory leak on old ie\n });\n editor.container.env = editor.env = env;\n return editor;\n};\nexports.createEditSession = function(text, mode) {\n var doc = new EditSession(text, mode);\n doc.setUndoManager(new UndoManager());\n return doc;\n};\nexports.EditSession = EditSession;\nexports.UndoManager = UndoManager;\nexports.version = \"1.2.9\";\n});\n (function() {\n ace.acequire([\"ace/ace\"], function(a) {\n if (a) {\n a.config.init(true);\n a.define = ace.define;\n }\n if (!window.ace)\n window.ace = a;\n for (var key in a) if (a.hasOwnProperty(key))\n window.ace[key] = a[key];\n });\n })();\n \nmodule.exports = window.ace.acequire(\"ace/ace\");"],"names":["define"],"mappings":"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"} \ No newline at end of file diff --git a/assets/index.636ef3ff.js b/assets/index.e47e678b.js similarity index 99% rename from assets/index.636ef3ff.js rename to assets/index.e47e678b.js index 93992506..d6feba63 100644 --- a/assets/index.636ef3ff.js +++ b/assets/index.e47e678b.js @@ -1,2 +1,2 @@ -var Ue=Object.defineProperty,Ve=Object.defineProperties;var Ge=Object.getOwnPropertyDescriptors;var De=Object.getOwnPropertySymbols;var He=Object.prototype.hasOwnProperty,Ke=Object.prototype.propertyIsEnumerable;var ze=(r,e,t)=>e in r?Ue(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,g=(r,e)=>{for(var t in e||(e={}))He.call(e,t)&&ze(r,t,e[t]);if(De)for(var t of De(e))Ke.call(e,t)&&ze(r,t,e[t]);return r},A=(r,e)=>Ve(r,Ge(e));import{l as k,c as re}from"./index.36354f76.js";function Xe(r,e){return e.forEach(function(t){t&&typeof t!="string"&&!Array.isArray(t)&&Object.keys(t).forEach(function(o){if(o!=="default"&&!(o in r)){var d=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(r,o,d.get?d:{enumerable:!0,get:function(){return t[o]}})}})}),Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var G={},ae={};Object.defineProperty(ae,"__esModule",{value:!0});ae.initCollections=void 0;function Ye(r){r.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"]),r.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"]),r.register("slot",["mainhand","offhand","head","chest","legs","feet"]),r.register("gamemode",["survival","creative","adventure","spectator"]),r.register("entity_source",["this","killer","direct_killer","killer_player"]),r.register("copy_source",["block_entity","this","killer","killer_player"]),r.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),r.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"]),r.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"]),r.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"]),r.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mountain","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),r.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),r.register("generation_step",["air","liquid"]),r.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"]),r.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"]),r.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"]),r.register("cave_surface",["floor","ceiling"]),r.register("direction",["down","up","north","east","south","west"]),r.register("axis",["x","y","z"]),r.register("display_position",["firstperson_righthand","firstperson_lefthand","thirdperson_righthand","thirdperson_lefthand","gui","head","ground","fixed"]),r.register("gui_light",["front","side"]),r.register("item_model_predicates",["angle","blocking","broken","cast","charged","cooldown","custom_model_data","damage","damaged","firework","lefthanded","pull","pulling","throwing","time"]),r.register("mob_category",["monster","creature","ambient","axolotls","underground_water_creature","water_creature","water_ambient","misc"]),r.register("cat_texture",["textures/entity/cat/tabby.png","textures/entity/cat/black.png","textures/entity/cat/red.png","textures/entity/cat/siamese.png","textures/entity/cat/british_shorthair.png","textures/entity/cat/calico.png","textures/entity/cat/persian.png","textures/entity/cat/ragdoll.png","textures/entity/cat/white.png","textures/entity/cat/jellie.png","textures/entity/cat/all_black.png"])}ae.initCollections=Ye;var ce={},de={};Object.defineProperty(de,"__esModule",{value:!0});de.initAdvancementSchemas=void 0;const s=k;function Ze(r,e){const t=s.Reference.bind(void 0,r),o=s.StringNode.bind(void 0,e),d=(0,s.ChoiceNode)([{type:"object",node:(0,s.Opt)(t("entity_predicate")),change:n=>{var a,p;return(p=(a=n[0])===null||a===void 0?void 0:a.predicate)!==null&&p!==void 0?p:{}}},{type:"list",node:(0,s.ListNode)(t("condition")),change:n=>[{condition:"minecraft:entity_properties",predicate:n}]}],{context:"conditions"});r.register("advancement",(0,s.Mod)((0,s.ObjectNode)({display:(0,s.Opt)((0,s.Mod)((0,s.ObjectNode)({icon:(0,s.ObjectNode)({item:o({validator:"resource",params:{pool:"item"}}),nbt:(0,s.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:t("text_component"),description:t("text_component"),background:(0,s.Opt)(o()),frame:(0,s.Opt)(o({enum:["task","challenge","goal"]})),show_toast:(0,s.Opt)((0,s.BooleanNode)()),announce_to_chat:(0,s.Opt)((0,s.BooleanNode)()),hidden:(0,s.Opt)((0,s.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,s.Opt)(o({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,s.MapNode)(o(),t("advancement_criteria")),requirements:(0,s.Opt)((0,s.ListNode)((0,s.ListNode)(o()))),rewards:(0,s.Opt)((0,s.ObjectNode)({function:(0,s.Opt)(o({validator:"resource",params:{pool:"$function"}})),loot:(0,s.Opt)((0,s.ListNode)(o({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,s.Opt)((0,s.ListNode)(o({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,s.Opt)((0,s.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),r.register("advancement_criteria",(0,s.ObjectNode)({trigger:o({validator:"resource",params:{pool:e.get("advancement_trigger")}}),conditions:(0,s.Opt)((0,s.ObjectNode)({player:(0,s.Mod)(d,{enabled:n=>n.pop().push("trigger").get()!=="minecraft:impossible"}),[s.Switch]:["pop",{push:"trigger"}],[s.Case]:{"minecraft:bee_nest_destroyed":{block:(0,s.Opt)(o({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,s.Opt)((0,s.NumberNode)({integer:!0})),item:(0,s.Opt)(t("item_predicate"))},"minecraft:bred_animals":{parent:d,partner:d,child:d},"minecraft:brewed_potion":{potion:(0,s.Opt)(o({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,s.Opt)(o({validator:"resource",params:{pool:"$dimension"}})),to:(0,s.Opt)(o({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:construct_beacon":{level:t("int_bounds")},"minecraft:consume_item":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:cured_zombie_villager":{villager:d,zombie:d},"minecraft:effects_changed":{effects:(0,s.Opt)((0,s.MapNode)(o({validator:"resource",params:{pool:"mob_effect"}}),(0,s.ObjectNode)({amplifier:t("int_bounds"),duration:t("int_bounds")}))),source:(0,s.Opt)(d)},"minecraft:enter_block":{block:(0,s.Opt)(o({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:t("int_bounds"),item:(0,s.Opt)(t("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,s.Opt)(t("damage_predicate"))},"minecraft:entity_killed_player":{entity:d,killing_blow:(0,s.Opt)(t("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:(0,s.Opt)(t("location_predicate")),distance:(0,s.Opt)(t("distance_predicate"))},"minecraft:filled_bucket":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:d,item:(0,s.Opt)(t("item_predicate"))},"minecraft:hero_of_the_village":{location:(0,s.Opt)(t("location_predicate"))},"minecraft:inventory_changed":{slots:(0,s.Opt)((0,s.ObjectNode)({empty:t("int_bounds"),occupied:t("int_bounds"),full:t("int_bounds")})),items:(0,s.Opt)((0,s.ListNode)(t("item_predicate")))},"minecraft:item_durability_changed":{delta:t("int_bounds"),durability:t("int_bounds"),item:(0,s.Opt)(t("item_predicate"))},"minecraft:item_used_on_block":{item:(0,s.Opt)(t("item_predicate")),location:(0,s.Opt)(t("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:t("int_bounds"),victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:levitation":{distance:(0,s.Opt)(t("distance_predicate")),duration:t("int_bounds")},"minecraft:lightning_strike":{lightning:d,bystander:d},"minecraft:location":{location:(0,s.Opt)(t("location_predicate"))},"minecraft:nether_travel":{start_position:(0,s.Opt)(t("location_predicate")),distance:(0,s.Opt)(t("distance_predicate"))},"minecraft:placed_block":{block:(0,s.Opt)(o({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,s.Opt)(t("item_predicate")),location:(0,s.Opt)(t("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:o({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:(0,s.Opt)(t("damage_predicate")),entity:d},"minecraft:player_interacted_with_entity":{item:(0,s.Opt)(t("item_predicate")),entity:d},"minecraft:player_killed_entity":{entity:d,killing_blow:(0,s.Opt)(t("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:o({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:(0,s.Opt)(t("location_predicate")),distance:(0,s.Opt)(t("distance_predicate"))},"minecraft:slept_in_bed":{location:(0,s.Opt)(t("location_predicate"))},"minecraft:slide_down_block":{block:(0,s.Opt)(o({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:summoned_entity":{entity:d},"minecraft:tame_animal":{entity:d},"minecraft:target_hit":{projectile:d,shooter:d,signal_strength:t("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:d,item:(0,s.Opt)(t("item_predicate"))},"minecraft:used_ender_eye":{distance:(0,s.Opt)(t("float_bounds"))},"minecraft:used_totem":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:using_item":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:villager_trade":{villager:d,item:(0,s.Opt)(t("item_predicate"))},"minecraft:voluntary_exile":{location:(0,s.Opt)(t("location_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))}de.initAdvancementSchemas=Ze;var se={},le={};Object.defineProperty(le,"__esModule",{value:!0});le.initModelSchemas=void 0;const b=k;function Je(r,e){b.Reference.bind(void 0,r);const t=b.StringNode.bind(void 0,e),o=(n,a,p)=>(0,b.ListNode)((0,b.NumberNode)({min:a,max:p}),{minLength:n,maxLength:n}),d=(0,b.ChoiceNode)([{type:"alias",match:n=>typeof n=="string"&&n.startsWith("#"),node:t(),change:n=>typeof n=="string"?`#${n}`:"#0"},{type:"reference",match:n=>typeof n=="string",node:t({validator:"resource",params:{pool:"$texture"}}),change:n=>typeof n=="string"?n.replace(/^#/,""):""}],{choiceContext:"texture"});r.register("model",(0,b.Mod)((0,b.ObjectNode)({parent:(0,b.Opt)(t({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,b.Opt)((0,b.BooleanNode)()),gui_light:(0,b.Opt)(t({enum:"gui_light"})),textures:(0,b.Opt)((0,b.MapNode)(t(),d)),elements:(0,b.Opt)((0,b.ListNode)((0,b.ObjectNode)({from:o(3,-16,32),to:o(3,-16,32),rotation:(0,b.Opt)((0,b.ObjectNode)({origin:o(3),axis:t({enum:"axis"}),angle:(0,b.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,b.Opt)((0,b.BooleanNode)())})),shade:(0,b.Opt)((0,b.BooleanNode)()),faces:(0,b.MapNode)(t({enum:"direction"}),(0,b.ObjectNode)({texture:d,uv:(0,b.Opt)(o(4)),cullface:(0,b.Opt)(t({enum:"direction"})),rotation:(0,b.Opt)((0,b.NumberNode)({integer:!0})),tintindex:(0,b.Opt)((0,b.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,b.Opt)((0,b.MapNode)(t({enum:"display_position"}),(0,b.ObjectNode)({rotation:o(3),translation:o(3,-80,80),scale:o(3,-4,4)},{context:"item_transform"}))),overrides:(0,b.Opt)((0,b.ListNode)((0,b.ObjectNode)({predicate:(0,b.MapNode)(t({enum:"item_model_predicates"}),(0,b.NumberNode)()),model:t({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))}le.initModelSchemas=Je;var me={};Object.defineProperty(me,"__esModule",{value:!0});me.initBlockDefinitionSchemas=void 0;const x=k;function Qe(r,e){const t=x.Reference.bind(void 0,r),o=x.StringNode.bind(void 0,e);r.register("block_definition",(0,x.Mod)((0,x.ChoiceNode)([{type:"variants",match:n=>n.variants!==void 0,node:(0,x.ObjectNode)({variants:(0,x.MapNode)(o(),t("model_variant"))}),change:n=>({variants:{"":{}}})},{type:"multipart",match:n=>n.multipart!==void 0,node:(0,x.ObjectNode)({multipart:(0,x.ListNode)((0,x.ObjectNode)({when:(0,x.Opt)(t("multipart_condition")),apply:t("model_variant")}))}),change:n=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const d={model:o({validator:"resource",params:{pool:"$model"}}),x:(0,x.Opt)((0,x.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,x.Opt)((0,x.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,x.Opt)((0,x.BooleanNode)())};r.register("model_variant",(0,x.ChoiceNode)([{type:"object",node:(0,x.ObjectNode)(d),change:n=>Array.isArray(n)&&n.length>0?n[0]:{}},{type:"list",node:(0,x.ListNode)((0,x.ObjectNode)(A(g({},d),{weight:(0,x.Opt)((0,x.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:n=>[g({weight:1},n)]}],{context:"model_variant"})),r.register("multipart_condition",(0,x.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,x.MapNode)(o(),o()),change:n=>typeof n=="object"&&Array.isArray(n==null?void 0:n.OR)&&n.OR.length>0?n.OR[0]:{}},{type:"or",match:n=>typeof n=="object"&&(n==null?void 0:n.OR)!==void 0,node:(0,x.ObjectNode)({OR:(0,x.ListNode)(t("multipart_condition"))}),change:n=>({OR:[n!=null?n:{}]})}],{context:"multipart_condition"}))}me.initBlockDefinitionSchemas=Qe;Object.defineProperty(se,"__esModule",{value:!0});se.initAssetsSchemas=void 0;const et=le,tt=me;function rt(r,e){(0,tt.initBlockDefinitionSchemas)(r,e),(0,et.initModelSchemas)(r,e)}se.initAssetsSchemas=rt;var z={};(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.initCommonSchemas=r.Tag=r.InclusiveRange=r.IntProvider=r.FloatProvider=r.NoiseSettingsPresets=r.DefaultNoiseSettings=r.DimensionTypePresets=r.DefaultDimensionType=r.FunctionCases=r.ConditionCases=void 0;const e=k;r.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},r.DefaultNoiseSettings={sea_level:63,ore_veins_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,legacy_random_source:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}};function t(o,d){const n=e.StringNode.bind(void 0,d),a=e.Reference.bind(void 0,o);o.register("block_state",(0,e.Mod)((0,e.ObjectNode)({Name:n({validator:"resource",params:{pool:"block"}}),Properties:(0,e.Opt)((0,e.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),o.register("fluid_state",(0,e.Mod)((0,e.ObjectNode)({Name:n({validator:"resource",params:{pool:"fluid"}}),Properties:(0,e.Opt)((0,e.MapNode)(n(),n()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),o.register("block_pos",(0,e.Mod)((0,e.ListNode)((0,e.NumberNode)({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const p=m=>(0,e.Opt)((0,e.ChoiceNode)([{type:"number",node:(0,e.NumberNode)({integer:m}),change:f=>{var j,v;return f===void 0?0:(v=(j=f.min)!==null&&j!==void 0?j:f.max)!==null&&v!==void 0?v:0}},{type:"object",node:(0,e.ObjectNode)({min:(0,e.Opt)((0,e.NumberNode)({integer:m})),max:(0,e.Opt)((0,e.NumberNode)({integer:m}))},{context:"range"}),change:f=>({min:f!=null?f:0,max:f!=null?f:0})}]));o.register("int_bounds",p(!0)),o.register("float_bounds",p()),o.register("int_range",(0,e.ChoiceNode)([{type:"object",node:(0,e.ObjectNode)({min:(0,e.Opt)(a("number_provider")),max:(0,e.Opt)(a("number_provider"))})},{type:"number",node:(0,e.NumberNode)({integer:!0})}],{context:"range"}));const w=(m,f,j,v,S,B,E)=>{let ie={};S&&Object.keys(E[S]).forEach(q=>{ie[q]=(0,e.Mod)(E[S][q],{enabled:I=>I.push("type").get()===void 0})});const Z=(0,e.ObjectNode)(g({type:(0,e.Mod)((0,e.Opt)(n({validator:"resource",params:{pool:m}})),{hidden:()=>!0}),[e.Switch]:[{push:"type"}],[e.Case]:E},ie),{context:B,disableSwitchContext:!0}),J=[{type:f,node:E[v][j]}];return S&&J.push({type:"object",priority:-1,node:Z}),Object.keys(E).forEach(q=>{J.push({type:q,match:I=>{var Q;if("minecraft:"+((Q=I==null?void 0:I.type)===null||Q===void 0?void 0:Q.replace(/^minecraft:/,""))===q)return!0;const W=I?Object.keys(I):[];return typeof I=="object"&&((W==null?void 0:W.length)===0||(W==null?void 0:W.length)===1&&(W==null?void 0:W[0])==="type")},node:Z,change:I=>({type:q})})}),(0,e.ChoiceNode)(J,{context:B,choiceContext:`${B}.type`})};o.register("number_provider",w("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:(0,e.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:n({validator:"objective"}),scale:(0,e.Opt)((0,e.NumberNode)())}})),o.register("scoreboard_name_provider",w("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:n({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:(0,e.Mod)(n({enum:"entity_source"}),{default:()=>"this"})}})),o.register("nbt_provider",w("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:n({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:(0,e.Mod)(n({enum:"copy_source"}),{default:()=>"this"})}})),r.FloatProvider=m=>w("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:(0,e.NumberNode)(m)},"minecraft:uniform":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(m),max_exclusive:(0,e.NumberNode)(m)})},"minecraft:clamped_normal":{value:(0,e.ObjectNode)({min:(0,e.NumberNode)(),max:(0,e.NumberNode)(),mean:(0,e.NumberNode)(),deviation:(0,e.NumberNode)()})},"minecraft:trapezoid":{value:(0,e.ObjectNode)({min:(0,e.NumberNode)(),max:(0,e.NumberNode)(),plateau:(0,e.NumberNode)()})}}),o.register("float_provider",(0,r.FloatProvider)()),r.IntProvider=m=>w("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:(0,e.NumberNode)(g({integer:!0},m))},"minecraft:uniform":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},m)),max_inclusive:(0,e.NumberNode)(g({integer:!0},m))})},"minecraft:biased_to_bottom":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},m)),max_inclusive:(0,e.NumberNode)(g({integer:!0},m))})},"minecraft:clamped":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},m)),max_inclusive:(0,e.NumberNode)(g({integer:!0},m)),source:a("int_provider")})},"minecraft:clamped_normal":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},m)),max_inclusive:(0,e.NumberNode)(g({integer:!0},m)),mean:(0,e.NumberNode)(),deviation:(0,e.NumberNode)()})},"minecraft:weighted_list":{distribution:(0,e.ListNode)((0,e.ObjectNode)({weight:(0,e.NumberNode)({integer:!0}),data:a("int_provider")}))}}),o.register("int_provider",(0,r.IntProvider)()),o.register("vertical_anchor",(0,e.ChoiceNode)(["absolute","above_bottom","below_top"].map(m=>({type:m,match:f=>(f==null?void 0:f[m])!==void 0,change:f=>{var j,v,S;return{[m]:(S=(v=(j=f.absolute)!==null&&j!==void 0?j:f.above_bottom)!==null&&v!==void 0?v:f.below_top)!==null&&S!==void 0?S:0}},node:(0,e.ObjectNode)({[m]:(0,e.NumberNode)({integer:!0,min:-2048,max:2047})})})),{context:"vertical_anchor"})),o.register("height_provider",w("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:(0,e.Opt)((0,e.NumberNode)({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),inner:(0,e.Opt)((0,e.NumberNode)({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),plateau:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:weighted_list":{distribution:(0,e.ListNode)((0,e.ObjectNode)({weight:(0,e.NumberNode)({integer:!0}),data:a("int_provider")}))}})),r.InclusiveRange=m=>(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(m),max_inclusive:(0,e.NumberNode)(m)},{context:"range"}),o.register("noise_parameters",(0,e.Mod)((0,e.ObjectNode)({firstOctave:(0,e.NumberNode)({integer:!0}),amplitudes:(0,e.ListNode)((0,e.NumberNode)())},{context:"noise_parameters"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})})),r.Tag=m=>(0,e.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:m.resource,allowTag:!0}}),change:f=>{if(Array.isArray(f)&&typeof f[0]=="string"&&!f[0].startsWith("#"))return f[0]}},{type:"list",node:(0,e.ListNode)(m.inlineSchema?(0,e.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:m.resource}})},{type:"object",node:a(m.inlineSchema)}],{choiceContext:"tag.list"}):n({validator:"resource",params:{pool:m.resource}})),change:f=>typeof f=="string"&&!f.startsWith("#")?[f]:[]}],{choiceContext:"tag"}),r.ConditionCases=(m=n({enum:"entity_source"}))=>({"minecraft:alternative":{terms:(0,e.ListNode)(a("condition"))},"minecraft:block_state_property":{block:n({validator:"resource",params:{pool:"block"}}),properties:(0,e.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:a("damage_source_predicate")},"minecraft:entity_properties":{entity:m,predicate:a("entity_predicate")},"minecraft:entity_scores":{entity:m,scores:(0,e.MapNode)(n({validator:"objective"}),a("int_range"))},"minecraft:inverted":{term:a("condition")},"minecraft:killed_by_player":{inverse:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:location_check":{offsetX:(0,e.Opt)((0,e.NumberNode)({integer:!0})),offsetY:(0,e.Opt)((0,e.NumberNode)({integer:!0})),offsetZ:(0,e.Opt)((0,e.NumberNode)({integer:!0})),predicate:a("location_predicate")},"minecraft:match_tool":{predicate:a("item_predicate")},"minecraft:random_chance":{chance:(0,e.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,e.NumberNode)({min:0,max:1}),looting_multiplier:(0,e.NumberNode)()},"minecraft:reference":{name:n({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:n({validator:"resource",params:{pool:"enchantment"}}),chances:(0,e.ListNode)((0,e.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:a("int_range"),period:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:value_check":{value:a("number_provider"),range:a("int_range")},"minecraft:weather_check":{raining:(0,e.Opt)((0,e.BooleanNode)()),thundering:(0,e.Opt)((0,e.BooleanNode)())}}),r.FunctionCases=(m,f=n({enum:"copy_source"}),j=n({enum:"entity_source"}))=>{const v={"minecraft:apply_bonus":{enchantment:n({validator:"resource",params:{pool:"enchantment"}}),formula:n({validator:"resource",params:{pool:d.get("loot_table_apply_bonus_formula")}}),parameters:(0,e.Mod)((0,e.ObjectNode)({bonusMultiplier:(0,e.Mod)((0,e.NumberNode)(),{enabled:B=>B.pop().push("formula").get()==="minecraft:uniform_bonus_count"}),extra:(0,e.Mod)((0,e.NumberNode)(),{enabled:B=>B.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"}),probability:(0,e.Mod)((0,e.NumberNode)(),{enabled:B=>B.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"})}),{enabled:B=>B.push("formula").get()!=="minecraft:ore_drops"})},"minecraft:copy_name":{source:f},"minecraft:copy_nbt":{source:a("nbt_provider"),ops:(0,e.ListNode)((0,e.ObjectNode)({source:n({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:n({validator:"nbt_path",params:{category:"minecraft:item"}}),op:n({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:n({validator:"resource",params:{pool:"block"}}),properties:(0,e.ListNode)(n({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,e.Opt)((0,e.ListNode)(n({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:a("number_provider"),treasure:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:exploration_map":{destination:(0,e.Opt)((0,r.Tag)({resource:"$worldgen/configured_structure_feature"})),decoration:(0,e.Opt)(n({enum:"map_decoration"})),zoom:(0,e.Opt)((0,e.NumberNode)({integer:!0})),search_radius:(0,e.Opt)((0,e.NumberNode)({integer:!0})),skip_existing_chunks:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:fill_player_head":{entity:j},"minecraft:limit_count":{limit:a("int_range")},"minecraft:looting_enchant":{count:a("number_provider"),limit:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,e.ListNode)(a("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:(0,e.ListNode)((0,e.ObjectNode)({pattern:n({enum:"banner_pattern"}),color:n({enum:"dye_color"})})),append:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_contents":{type:n({validator:"resource",params:{pool:"block_entity_type"}}),entries:(0,e.ListNode)(a("loot_entry"))},"minecraft:set_count":{count:a("number_provider"),add:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_damage":{damage:a("number_provider"),add:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_enchantments":{enchantments:(0,e.MapNode)(n({validator:"resource",params:{pool:"enchantment"}}),a("number_provider")),add:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_loot_table":{type:n({validator:"resource",params:{pool:"block_entity_type"}}),name:n({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,e.Opt)(j),lore:(0,e.ListNode)(a("text_component")),replace:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_name":{entity:(0,e.Opt)(j),name:(0,e.Opt)(a("text_component"))},"minecraft:set_nbt":{tag:n({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_potion":{id:n({validator:"resource",params:{pool:"potion"}})},"minecraft:set_stew_effect":{effects:(0,e.Opt)((0,e.ListNode)((0,e.ObjectNode)({type:n({validator:"resource",params:{pool:"mob_effect"}}),duration:a("number_provider")})))}},S={};return d.get("loot_function_type").forEach(B=>{S[B]=g(g({},v[B]),m)}),S},r.DimensionTypePresets=m=>(0,e.ObjectOrPreset)(n({validator:"resource",params:{pool:"$dimension_type"}}),m,{"minecraft:overworld":r.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}}),r.NoiseSettingsPresets=m=>(0,e.ObjectOrPreset)(n({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),m,{"minecraft:overworld":r.DefaultNoiseSettings,"minecraft:nether":{sea_level:32,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:netherrack"},default_fluid:{Properties:{level:"0"},Name:"minecraft:lava"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:end":{sea_level:0,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:amplified":{sea_level:63,ore_veins_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,legacy_random_source:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:caves":{sea_level:32,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:floating_islands":{sea_level:0,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}}})}r.initCommonSchemas=t})(z);var _e={};Object.defineProperty(_e,"__esModule",{value:!0});_e.initConditionSchemas=void 0;const ee=k,ot=z;function it(r,e){const t=ee.Reference.bind(void 0,r),o=ee.StringNode.bind(void 0,e);r.register("predicate",(0,ee.ObjectOrList)(t("condition"),{choiceContext:"condition"})),r.register("condition",(0,ee.Mod)((0,ee.ObjectNode)({condition:o({validator:"resource",params:{pool:"loot_condition_type"}}),[ee.Switch]:[{push:"condition"}],[ee.Case]:(0,ot.ConditionCases)()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))}_e.initConditionSchemas=it;var ue={};Object.defineProperty(ue,"__esModule",{value:!0});ue.initDimensionSchemas=void 0;const O=k,$e=z;function nt(r,e){const t=O.Reference.bind(void 0,r),o=O.StringNode.bind(void 0,e),d=(0,O.ChoiceNode)([{type:"string",priority:1,node:o({validator:"resource",params:{pool:"$worldgen/structure_set"}}),change:()=>{}},{type:"object",node:t("structure_set"),change:()=>({})}],{choiceContext:"structure_set"});r.register("dimension",(0,O.Mod)((0,O.ObjectNode)({type:(0,$e.DimensionTypePresets)(t("dimension_type")),generator:(0,O.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[O.Switch]:[{push:"type"}],[O.Case]:{"minecraft:noise":{seed:(0,O.NumberNode)({integer:!0}),settings:(0,$e.NoiseSettingsPresets)(t("noise_settings")),biome_source:(0,O.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/biome_source"}}),[O.Switch]:[{push:"type"}],[O.Case]:{"minecraft:fixed":{biome:o({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:(0,O.Opt)(o({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:(0,O.Mod)((0,O.ListNode)(t("generator_biome")),{enabled:a=>a.push("preset").get()===void 0,default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:(0,O.Opt)((0,O.NumberNode)({integer:!0,min:0,max:62})),biomes:(0,$e.Tag)({resource:"$worldgen/biome"})},"minecraft:the_end":{seed:(0,O.NumberNode)({integer:!0})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:(0,O.ObjectNode)({biome:(0,O.Opt)(o({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:(0,O.Opt)((0,O.BooleanNode)()),features:(0,O.Opt)((0,O.BooleanNode)()),layers:(0,O.ListNode)(t("generator_layer")),structure_overrides:(0,O.ListNode)(d)})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const a=Math.floor(Math.random()*4294967296)-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:a,biome_source:{type:"minecraft:fixed",seed:a,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}}));const n=(0,O.ChoiceNode)([{type:"number",node:(0,O.NumberNode)({min:-2,max:2}),change:a=>{var p;return(p=a[0])!==null&&p!==void 0?p:0}},{type:"list",node:(0,O.ListNode)((0,O.NumberNode)({min:-2,max:2}),{minLength:2,maxLength:2}),change:a=>[a!=null?a:0,a!=null?a:0]}]);r.register("generator_biome",(0,O.Mod)((0,O.ObjectNode)({biome:o({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:(0,O.ObjectNode)({temperature:n,humidity:n,continentalness:n,erosion:n,weirdness:n,depth:n,offset:(0,O.NumberNode)({min:0,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})}))}ue.initDimensionSchemas=nt;var pe={};Object.defineProperty(pe,"__esModule",{value:!0});pe.initDimensionTypeSchemas=void 0;const $=k,at=z;function ct(r,e){const t=$.StringNode.bind(void 0,e);r.register("dimension_type",(0,$.Mod)((0,$.ObjectNode)({ultrawarm:(0,$.BooleanNode)(),natural:(0,$.BooleanNode)(),piglin_safe:(0,$.BooleanNode)(),respawn_anchor_works:(0,$.BooleanNode)(),bed_works:(0,$.BooleanNode)(),has_raids:(0,$.BooleanNode)(),has_skylight:(0,$.BooleanNode)(),has_ceiling:(0,$.BooleanNode)(),coordinate_scale:(0,$.NumberNode)({min:1e-5,max:3e7}),ambient_light:(0,$.NumberNode)(),fixed_time:(0,$.Opt)((0,$.NumberNode)({integer:!0})),logical_height:(0,$.NumberNode)({integer:!0,min:0,max:4064}),effects:(0,$.Opt)(t({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:t({validator:"resource",params:{pool:"block",requireTag:!0}}),min_y:(0,$.NumberNode)({integer:!0,min:-2032,max:2031}),height:(0,$.NumberNode)({integer:!0,min:16,max:4064})},{context:"dimension_type"}),o=>({default:()=>at.DefaultDimensionType,validate:(d,n,a,p)=>(n=o.validate(d,n,a,p),(n==null?void 0:n.min_y)+(n==null?void 0:n.height)>2032&&a.add(d.push("height"),"error.min_y_plus_height",2032),(n==null?void 0:n.logical_height)>(n==null?void 0:n.height)&&a.add(d.push("logical_height"),"error.logical_height"),(n==null?void 0:n.height)%16!==0&&a.add(d.push("height"),"error.height_multiple",16),(n==null?void 0:n.min_y)%16!==0&&a.add(d.push("min_y"),"error.min_y_multiple",16),n)})))}pe.initDimensionTypeSchemas=ct;var fe={};Object.defineProperty(fe,"__esModule",{value:!0});fe.initItemModifierSchemas=void 0;const U=k,dt=z;function st(r,e){const t=U.Reference.bind(void 0,r),o=U.StringNode.bind(void 0,e);r.register("item_modifier",(0,U.ObjectOrList)(t("function"),{choiceContext:"function"}));const d={conditions:(0,U.Opt)((0,U.ListNode)(t("condition")))};r.register("function",(0,U.Mod)((0,U.ObjectNode)({function:o({validator:"resource",params:{pool:"loot_function_type"}}),[U.Switch]:[{push:"function"}],[U.Case]:(0,dt.FunctionCases)(d)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))}fe.initItemModifierSchemas=st;var ge={},T={};Object.defineProperty(T,"__esModule",{value:!0});T.LootFunctions=T.LootConditions=T.LootCopySources=T.LootEntitySources=T.LootTableTypes=void 0;T.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]}]]);T.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]);T.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]);T.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",[]]]);T.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(ge,"__esModule",{value:!0});ge.initLootTableSchemas=void 0;const u=k,oe=T,Re=z;function lt(r,e){const t=u.Reference.bind(void 0,r),o=u.StringNode.bind(void 0,e),d={conditions:(0,u.Opt)((0,u.ListNode)(t("loot_condition")))},n=g({functions:(0,u.Opt)((0,u.ListNode)(t("loot_function")))},d);function a(v,S,B){const E=[],ie=Z=>e.get(S).filter(J=>{var q;return((q=v.get(J))!==null&&q!==void 0?q:[]).every(Q=>Z.includes(Q))});for(const[Z,{allows:J,requires:q}]of oe.LootTableTypes){const I=[...J,...q];E.push({match:Q=>Q.getModel().get(new u.Path(["type"]))===Z,node:B(ie(I))})}return E.push({match:Z=>!0,node:B(S)}),(0,u.SwitchNode)(E)}const p=a(oe.LootConditions,"loot_condition_type",v=>o({validator:"resource",params:{pool:v instanceof Array?v:"loot_condition_type"}})),w=a(oe.LootFunctions,"loot_function_type",v=>o({validator:"resource",params:{pool:v instanceof Array?v:"loot_function_type"}})),m=a(oe.LootEntitySources,"entity_source",v=>o({enum:v})),f=a(oe.LootCopySources,"copy_source",v=>o({enum:v}));r.register("loot_table",(0,u.Mod)((0,u.ObjectNode)({type:(0,u.Opt)(o({validator:"resource",params:{pool:e.get("loot_context_type")}})),pools:(0,u.Opt)((0,u.ListNode)((0,u.Mod)((0,u.ObjectNode)(g({rolls:t("number_provider"),bonus_rolls:(0,u.Opt)(t("number_provider")),entries:(0,u.ListNode)(t("loot_entry"))},n),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,u.Opt)((0,u.ListNode)(t("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const j={enabled:v=>{var S;return((S=v.pop().get())===null||S===void 0?void 0:S.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(v.push("type").get())}};r.register("loot_entry",(0,u.Mod)((0,u.ObjectNode)({type:o({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0,min:1}),j)),quality:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),j)),[u.Switch]:[{push:"type"}],[u.Case]:{"minecraft:alternatives":g({children:(0,u.ListNode)(t("loot_entry"))},n),"minecraft:dynamic":g({name:o()},n),"minecraft:group":g({children:(0,u.ListNode)(t("loot_entry"))},n),"minecraft:item":g({name:o({validator:"resource",params:{pool:"item"}})},n),"minecraft:loot_table":g({name:o({validator:"resource",params:{pool:"$loot_table"}})},n),"minecraft:sequence":g({children:(0,u.ListNode)(t("loot_entry"))},n),"minecraft:tag":g({name:o({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,u.Opt)((0,u.BooleanNode)())},n)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),r.register("loot_function",(0,u.Mod)((0,u.ObjectNode)({function:w,[u.Switch]:[{push:"function"}],[u.Case]:(0,Re.FunctionCases)(d,f,m)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),r.register("loot_condition",(0,u.Mod)((0,u.ObjectNode)({condition:p,[u.Switch]:[{push:"condition"}],[u.Case]:(0,Re.ConditionCases)(m)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),r.register("attribute_modifier",(0,u.Mod)((0,u.ObjectNode)({attribute:o({validator:"resource",params:{pool:"attribute"}}),name:o(),amount:t("number_provider"),operation:o({enum:["addition","multiply_base","multiply_total"]}),slot:(0,u.StringOrList)(o({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))}ge.initLootTableSchemas=lt;var be={};Object.defineProperty(be,"__esModule",{value:!0});be.initPackMcmetaSchemas=void 0;const te=k,H=9;function mt(r,e){r.register("pack_mcmeta",(0,te.Mod)((0,te.ObjectNode)({pack:(0,te.Mod)((0,te.ObjectNode)({pack_format:(0,te.Mod)((0,te.NumberNode)({integer:!0,min:H,max:H}),{default:()=>H,canUpdate:(t,o)=>o!==H,update:()=>[{name:"pack_format",params:[H],newValue:H}]}),description:(0,te.Reference)(r,"text_component")}),{default:()=>({pack_format:H,description:""})})}),{default:()=>({pack:{pack_format:H,description:""}})}))}be.initPackMcmetaSchemas=mt;var Ne={};Object.defineProperty(Ne,"__esModule",{value:!0});Ne.initPredicatesSchemas=void 0;const c=k;function _t(r,e){const t=c.Reference.bind(void 0,r),o=c.StringNode.bind(void 0,e),d=(0,c.ChoiceNode)([{type:"string",node:o(),change:n=>typeof n=="boolean"||typeof n=="number"?n.toString():""},{type:"number",node:(0,c.NumberNode)(),change:n=>typeof n=="string"?parseInt(n):0},{type:"object",node:(0,c.ObjectNode)({min:(0,c.Opt)((0,c.NumberNode)({integer:!0})),max:(0,c.Opt)((0,c.NumberNode)({integer:!0}))}),change:n=>typeof n=="number"?{min:n,max:n}:{}},{type:"boolean",node:(0,c.BooleanNode)(),change:n=>n==="true"||n===1}]);r.register("item_predicate",(0,c.ObjectNode)({items:(0,c.Opt)((0,c.ListNode)(o({validator:"resource",params:{pool:"item"}}))),tag:(0,c.Opt)(o({validator:"resource",params:{pool:"$tag/item"}})),count:t("int_bounds"),durability:t("int_bounds"),potion:(0,c.Opt)(o({validator:"resource",params:{pool:"potion"}})),nbt:(0,c.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,c.Opt)((0,c.ListNode)(t("enchantment_predicate")))},{context:"item"})),r.register("enchantment_predicate",(0,c.ObjectNode)({enchantment:(0,c.Opt)(o({validator:"resource",params:{pool:"enchantment"}})),levels:t("int_bounds")},{context:"enchantment"})),r.register("block_predicate",(0,c.ObjectNode)({blocks:(0,c.Opt)((0,c.ListNode)(o({validator:"resource",params:{pool:"block"}}))),tag:(0,c.Opt)(o({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,c.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,c.Opt)((0,c.MapNode)(o(),d,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),r.register("fluid_predicate",(0,c.ObjectNode)({fluid:(0,c.Opt)(o({validator:"resource",params:{pool:"fluid"}})),tag:(0,c.Opt)(o({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,c.Opt)((0,c.MapNode)(o(),d))},{context:"fluid"})),r.register("location_predicate",(0,c.ObjectNode)({position:(0,c.Opt)((0,c.ObjectNode)({x:t("float_bounds"),y:t("float_bounds"),z:t("float_bounds")})),biome:(0,c.Opt)(o({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:(0,c.Opt)(o({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),dimension:(0,c.Opt)(o({validator:"resource",params:{pool:"$dimension"}})),light:(0,c.Opt)((0,c.ObjectNode)({light:t("int_bounds")})),smokey:(0,c.Opt)((0,c.BooleanNode)()),block:(0,c.Opt)(t("block_predicate")),fluid:(0,c.Opt)(t("fluid_predicate"))},{context:"location"})),r.register("statistic_predicate",(0,c.ObjectNode)({type:o({validator:"resource",params:{pool:"stat_type"}}),stat:o(),value:t("int_bounds"),[c.Switch]:[{push:"type"}],[c.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"}})}}})),r.register("player_predicate",(0,c.ObjectNode)({gamemode:(0,c.Opt)(o({enum:"gamemode"})),level:t("int_bounds"),advancements:(0,c.Opt)((0,c.MapNode)(o({validator:"resource",params:{pool:"$advancement"}}),(0,c.ChoiceNode)([{type:"boolean",node:(0,c.BooleanNode)(),change:n=>!0},{type:"object",node:(0,c.MapNode)(o(),(0,c.BooleanNode)())}]))),recipes:(0,c.Opt)((0,c.MapNode)(o({validator:"resource",params:{pool:"$recipe"}}),(0,c.BooleanNode)())),stats:(0,c.Opt)((0,c.ListNode)(t("statistic_predicate"))),looking_at:(0,c.Opt)(t("entity_predicate"))},{context:"player"})),r.register("status_effect_predicate",(0,c.ObjectNode)({amplifier:t("int_bounds"),duration:t("int_bounds"),ambient:(0,c.Opt)((0,c.BooleanNode)()),visible:(0,c.Opt)((0,c.BooleanNode)())},{context:"status_effect"})),r.register("distance_predicate",(0,c.ObjectNode)({x:t("float_bounds"),y:t("float_bounds"),z:t("float_bounds"),absolute:t("float_bounds"),horizontal:t("float_bounds")},{context:"distance"})),r.register("entity_predicate",(0,c.ObjectNode)({type:(0,c.Opt)(o({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:(0,c.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,c.Opt)(o({validator:"team"})),location:(0,c.Opt)(t("location_predicate")),stepping_on:(0,c.Opt)(t("location_predicate")),distance:(0,c.Opt)(t("distance_predicate")),flags:(0,c.Opt)((0,c.ObjectNode)({is_on_fire:(0,c.Opt)((0,c.BooleanNode)()),is_sneaking:(0,c.Opt)((0,c.BooleanNode)()),is_sprinting:(0,c.Opt)((0,c.BooleanNode)()),is_swimming:(0,c.Opt)((0,c.BooleanNode)()),is_baby:(0,c.Opt)((0,c.BooleanNode)())})),equipment:(0,c.Opt)((0,c.MapNode)(o({enum:"slot"}),t("item_predicate"))),player:(0,c.Opt)(t("player_predicate")),vehicle:(0,c.Opt)(t("entity_predicate")),passenger:(0,c.Opt)(t("entity_predicate")),targeted_entity:(0,c.Opt)(t("entity_predicate")),lightning_bolt:(0,c.Opt)((0,c.ObjectNode)({blocks_set_on_fire:(0,c.Opt)(t("int_bounds")),entity_struck:(0,c.Opt)(t("entity_predicate"))})),fishing_hook:(0,c.Opt)((0,c.ObjectNode)({in_open_water:(0,c.Opt)((0,c.BooleanNode)())})),catType:(0,c.Opt)(o({enum:"cat_texture"})),effects:(0,c.Opt)((0,c.MapNode)(o({validator:"resource",params:{pool:"mob_effect"}}),t("status_effect_predicate")))},{context:"entity"})),r.register("damage_source_predicate",(0,c.ObjectNode)({is_explosion:(0,c.Opt)((0,c.BooleanNode)()),is_fire:(0,c.Opt)((0,c.BooleanNode)()),is_magic:(0,c.Opt)((0,c.BooleanNode)()),is_projectile:(0,c.Opt)((0,c.BooleanNode)()),is_lightning:(0,c.Opt)((0,c.BooleanNode)()),bypasses_armor:(0,c.Opt)((0,c.BooleanNode)()),bypasses_invulnerability:(0,c.Opt)((0,c.BooleanNode)()),bypasses_magic:(0,c.Opt)((0,c.BooleanNode)()),source_entity:(0,c.Opt)(t("entity_predicate")),direct_entity:(0,c.Opt)(t("entity_predicate"))},{context:"damage_source"})),r.register("damage_predicate",(0,c.ObjectNode)({dealt:t("float_bounds"),taken:t("float_bounds"),blocked:(0,c.Opt)((0,c.BooleanNode)()),source_entity:(0,c.Opt)(t("entity_predicate")),type:(0,c.Opt)(t("damage_source_predicate"))},{context:"damage"}))}Ne.initPredicatesSchemas=_t;var he={};Object.defineProperty(he,"__esModule",{value:!0});he.initRecipeSchemas=void 0;const _=k;function ut(r,e){const t=_.Reference.bind(void 0,r),o=_.StringNode.bind(void 0,e);r.register("recipe",(0,_.Mod)((0,_.ObjectNode)({type:o({validator:"resource",params:{pool:"recipe_serializer"}}),[_.Switch]:[{push:"type"}],[_.Case]:{"minecraft:crafting_shaped":{group:(0,_.Opt)(o({enum:"recipe_group",additional:!0})),pattern:(0,_.ListNode)(o()),key:(0,_.MapNode)(o(),t("recipe_ingredient")),result:t("recipe_result")},"minecraft:crafting_shapeless":{group:(0,_.Opt)(o()),ingredients:(0,_.ListNode)(t("recipe_ingredient")),result:t("recipe_result")},"minecraft:smelting":{group:(0,_.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,_.Opt)((0,_.NumberNode)()),cookingtime:(0,_.Opt)((0,_.Mod)((0,_.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,_.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,_.Opt)((0,_.NumberNode)()),cookingtime:(0,_.Opt)((0,_.Mod)((0,_.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,_.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,_.Opt)((0,_.NumberNode)()),cookingtime:(0,_.Opt)((0,_.Mod)((0,_.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,_.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,_.Opt)((0,_.NumberNode)()),cookingtime:(0,_.Opt)((0,_.Mod)((0,_.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,_.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),count:(0,_.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,_.Opt)(o()),base:t("recipe_ingredient_object"),addition:t("recipe_ingredient_object"),result:t("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),r.register("recipe_ingredient",(0,_.Mod)((0,_.ChoiceNode)([{type:"object",node:t("recipe_ingredient_object"),change:d=>d[0]},{type:"list",node:(0,_.ListNode)(t("recipe_ingredient_object")),change:d=>[d]}]),{default:()=>({item:"minecraft:stone"})})),r.register("recipe_ingredient_object",(0,_.Mod)((0,_.ObjectNode)({item:(0,_.Opt)(o({validator:"resource",params:{pool:"item"}})),tag:(0,_.Opt)(o({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),r.register("recipe_result",(0,_.Mod)((0,_.ObjectNode)({item:o({validator:"resource",params:{pool:"item"}}),count:(0,_.Opt)((0,_.Mod)((0,_.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))}he.initRecipeSchemas=ut;var ye={};Object.defineProperty(ye,"__esModule",{value:!0});ye.initTagsSchemas=void 0;const V=k;function pt(r,e){const t=V.StringNode.bind(void 0,e),o=d=>(0,V.Mod)((0,V.ObjectNode)({replace:(0,V.Opt)((0,V.BooleanNode)()),values:(0,V.ListNode)((0,V.ChoiceNode)([{type:"string",node:t({validator:"resource",params:{pool:d,allowTag:!0}}),change:n=>n.id},{type:"object",node:(0,V.ObjectNode)({id:t({validator:"resource",params:{pool:d,allowTag:!0,allowUnknown:!0}}),required:(0,V.BooleanNode)()}),change:n=>({id:n})}]))},{context:"tag"}),{default:()=>({values:[]})});r.register("block_tag",o("block")),r.register("entity_type_tag",o("entity_type")),r.register("fluid_tag",o("fluid")),r.register("function_tag",o("$function")),r.register("game_event_tag",o("game_event")),r.register("item_tag",o("item")),r.register("advancement_tag",o("$advancement")),r.register("dimension_tag",o("$dimension")),r.register("dimension_type_tag",o("$dimension_type")),r.register("function_tag",o("$function")),r.register("item_modifier_tag",o("$item_modifier")),r.register("loot_table_tag",o("$loot_table")),r.register("predicate_tag",o("$predicate")),r.register("recipe_tag",o("$recipe")),r.register("structure_tag",o("$structure")),r.register("biome_tag",o("$worldgen/biome")),r.register("configured_carver_tag",o("$worldgen/configured_carver")),r.register("configured_decorator_tag",o("$worldgen/configured_decorator")),r.register("configured_feature_tag",o("$worldgen/configured_feature")),r.register("configured_structure_feature_tag",o("$worldgen/configured_structure_feature")),r.register("configured_surface_builder_tag",o("$worldgen/configured_surface_builder")),r.register("density_function_tag",o("$worldgen/density_function")),r.register("noise_tag",o("$worldgen/noise")),r.register("noise_settings_tag",o("$worldgen/noise_settings")),r.register("placed_feature_tag",o("$worldgen/placed_feature")),r.register("processor_list_tag",o("$worldgen/processor_list")),r.register("structure_set_tag",o("$worldgen/structure_set")),r.register("template_pool_tag",o("$worldgen/template_pool"))}ye.initTagsSchemas=pt;var ve={};Object.defineProperty(ve,"__esModule",{value:!0});ve.initTextComponentSchemas=void 0;const l=k;function ft(r,e){const t=l.Reference.bind(void 0,r),o=l.StringNode.bind(void 0,e),d=a=>{var p;return a instanceof Array?d(a[0]):(p=a==null?void 0:a.text)!==null&&p!==void 0?p:typeof a=="object"?"":a==null?void 0:a.toString()};r.register("text_component",(0,l.Mod)((0,l.ChoiceNode)([{type:"object",node:t("text_component_object"),change:a=>a instanceof Array?typeof a[0]=="object"?a[0]:{text:d(a[0])}:typeof a=="object"?a:{text:d(a)}},{type:"list",node:t("text_component_list"),change:a=>[a]},{type:"string",priority:1,node:o(),change:d},{type:"number",node:(0,l.NumberNode)(),change:a=>{const p=parseFloat(d(a));return isFinite(p)?p:a?1:0}},{type:"boolean",node:(0,l.BooleanNode)(),change:a=>{const p=d(a);return p==="true"||p==="false"?p==="true":!!p}}],{context:"text_component"}),{default:()=>({text:""})}));const n={color:(0,l.Opt)(o()),font:(0,l.Opt)(o()),bold:(0,l.Opt)((0,l.BooleanNode)()),italic:(0,l.Opt)((0,l.BooleanNode)()),underlined:(0,l.Opt)((0,l.BooleanNode)()),strikethrough:(0,l.Opt)((0,l.BooleanNode)()),obfuscated:(0,l.Opt)((0,l.BooleanNode)()),insertion:(0,l.Opt)(o()),clickEvent:(0,l.Opt)((0,l.ObjectNode)({action:o({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[l.Switch]:[{push:"action"}],[l.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:(0,l.Opt)((0,l.ObjectNode)({action:o({enum:["show_text","show_item","show_entity"]}),[l.Switch]:[{push:"action"}],[l.Case]:{show_text:{value:(0,l.Opt)(t("text_component")),contents:(0,l.Opt)(t("text_component"))},show_item:{value:(0,l.Opt)(o({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:(0,l.Opt)((0,l.ObjectNode)({id:o({validator:"resource",params:{pool:"item"}}),count:(0,l.Opt)((0,l.NumberNode)({integer:!0})),tag:(0,l.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:(0,l.Opt)((0,l.ObjectNode)({name:(0,l.Opt)(o()),type:(0,l.Opt)(o()),id:(0,l.Opt)(o())})),contents:(0,l.Opt)((0,l.Mod)((0,l.ObjectNode)({name:(0,l.Opt)(t("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:(0,l.Opt)(t("text_component_list"))};r.register("text_component_object",(0,l.Mod)((0,l.ChoiceNode)([{type:"text",match:a=>typeof a=="object",change:a=>({text:""}),priority:-1,node:(0,l.ObjectNode)(g({text:o()},n))},{type:"translation",match:a=>(a==null?void 0:a.translate)!==void 0,change:a=>({translate:""}),node:(0,l.ObjectNode)(g({translate:o(),with:(0,l.Opt)(t("text_component_list"))},n))},{type:"score",match:a=>(a==null?void 0:a.score)!==void 0,change:a=>({score:{}}),node:(0,l.ObjectNode)(g({score:(0,l.ObjectNode)({name:o({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:o({validator:"objective"}),value:(0,l.Opt)(o())})},n))},{type:"selector",match:a=>(a==null?void 0:a.selector)!==void 0,change:a=>({selector:""}),node:(0,l.ObjectNode)(g({selector:o({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:(0,l.Opt)(t("text_component"))},n))},{type:"keybind",match:a=>(a==null?void 0:a.keybind)!==void 0,change:a=>({keybind:""}),node:(0,l.ObjectNode)(g({keybind:o({enum:"keybind",additional:!0})},n))},{type:"nbt",match:a=>(a==null?void 0:a.nbt)!==void 0,change:a=>({nbt:""}),node:(0,l.ObjectNode)(g({nbt:o({validator:"nbt_path"}),block:(0,l.Opt)(o({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,l.Opt)(o({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,l.Opt)(o({validator:"resource",params:{pool:"$storage"}})),interpret:(0,l.Opt)((0,l.BooleanNode)()),separator:(0,l.Opt)(t("text_component"))},n))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),r.register("text_component_list",(0,l.Mod)((0,l.ListNode)(t("text_component")),{default:()=>[{text:""}]}))}ve.initTextComponentSchemas=ft;var Oe={},Fe={};(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.initBiomeSchemas=r.MobCategorySpawnSettings=void 0;const e=k,t=z;function o(d,n){const a=e.StringNode.bind(void 0,n);r.MobCategorySpawnSettings=(0,e.Mod)((0,e.ListNode)((0,e.ObjectNode)({type:a({validator:"resource",params:{pool:"entity_type"}}),weight:(0,e.NumberNode)({integer:!0}),minCount:(0,e.NumberNode)({integer:!0}),maxCount:(0,e.NumberNode)({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]}),d.register("biome",(0,e.Mod)((0,e.ObjectNode)({temperature:(0,e.NumberNode)(),downfall:(0,e.NumberNode)(),precipitation:a({enum:["none","rain","snow"]}),temperature_modifier:(0,e.Opt)(a({enum:["none","frozen"]})),category:a({enum:"biome_category"}),creature_spawn_probability:(0,e.Opt)((0,e.NumberNode)({min:0,max:1})),effects:(0,e.ObjectNode)({sky_color:(0,e.NumberNode)({color:!0}),fog_color:(0,e.NumberNode)({color:!0}),water_color:(0,e.NumberNode)({color:!0}),water_fog_color:(0,e.NumberNode)({color:!0}),grass_color:(0,e.Opt)((0,e.NumberNode)({color:!0})),foliage_color:(0,e.Opt)((0,e.NumberNode)({color:!0})),grass_color_modifier:(0,e.Opt)(a({enum:["none","dark_forest","swamp"]})),ambient_sound:(0,e.Opt)(a()),mood_sound:(0,e.Opt)((0,e.ObjectNode)({sound:a(),tick_delay:(0,e.NumberNode)({integer:!0}),block_search_extent:(0,e.NumberNode)({integer:!0}),offset:(0,e.NumberNode)()})),additions_sound:(0,e.Opt)((0,e.ObjectNode)({sound:a(),tick_chance:(0,e.NumberNode)({min:0,max:1})})),music:(0,e.Opt)((0,e.ObjectNode)({sound:a(),min_delay:(0,e.NumberNode)({integer:!0,min:0}),max_delay:(0,e.NumberNode)({integer:!0,min:0}),replace_current_music:(0,e.BooleanNode)()})),particle:(0,e.Opt)((0,e.ObjectNode)({options:(0,e.ObjectNode)({type:a()}),probability:(0,e.NumberNode)({min:0,max:1})}))}),spawners:(0,e.MapNode)(a({enum:"mob_category"}),r.MobCategorySpawnSettings),spawn_costs:(0,e.MapNode)(a({validator:"resource",params:{pool:"entity_type"}}),(0,e.Mod)((0,e.ObjectNode)({energy_budget:(0,e.NumberNode)(),charge:(0,e.NumberNode)()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:(0,e.MapNode)(a({enum:["air","liquid"]}),(0,e.Mod)((0,t.Tag)({resource:"$worldgen/configured_carver",inlineSchema:"configured_carver"}),{default:()=>["minecraft:cave"]})),features:(0,e.ListNode)((0,e.Mod)((0,t.Tag)({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"}),{category:()=>"predicate"}),{maxLength:11})},{context:"biome"}),{default:()=>({temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))}r.initBiomeSchemas=o})(Fe);var ke={};Object.defineProperty(ke,"__esModule",{value:!0});ke.initCarverSchemas=void 0;const P=k,K=z;function gt(r,e){const t=P.Reference.bind(void 0,r),o=P.StringNode.bind(void 0,e),d={vertical_rotation:(0,K.FloatProvider)(),shape:(0,P.ObjectNode)({distance_factor:(0,K.FloatProvider)(),thickness:(0,K.FloatProvider)(),width_smoothness:(0,P.NumberNode)({integer:!0,min:0}),horizontal_radius_factor:(0,K.FloatProvider)(),vertical_radius_default_factor:(0,P.NumberNode)(),vertical_radius_center_factor:(0,P.NumberNode)()})},n={horizontal_radius_multiplier:(0,K.FloatProvider)(),vertical_radius_multiplier:(0,K.FloatProvider)(),floor_level:(0,K.FloatProvider)({min:-1,max:1})};r.register("configured_carver",(0,P.Mod)((0,P.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/carver"}}),config:(0,P.ObjectNode)({probability:(0,P.NumberNode)({min:0,max:1}),y:t("height_provider"),yScale:(0,K.FloatProvider)(),lava_level:t("vertical_anchor"),debug_settings:(0,P.Opt)((0,P.ObjectNode)({debug_mode:(0,P.Opt)((0,P.BooleanNode)()),air_state:(0,P.Opt)(t("block_state")),water_state:(0,P.Opt)(t("block_state")),lava_state:(0,P.Opt)(t("block_state")),barrier_state:(0,P.Opt)(t("block_state"))})),[P.Switch]:["pop",{push:"type"}],[P.Case]:{"minecraft:canyon":d,"minecraft:cave":n,"minecraft:nether_cave":n}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))}ke.initCarverSchemas=gt;var we={};Object.defineProperty(we,"__esModule",{value:!0});we.initDecoratorSchemas=void 0;const L=k,ne=z;function bt(r,e){const t=L.Reference.bind(void 0,r),o=L.StringNode.bind(void 0,e);r.register("decorator",(0,L.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/placement_modifier_type"}}),[L.Switch]:[{push:"type"}],[L.Case]:{"minecraft:block_predicate_filter":{predicate:t("block_predicate_worldgen")},"minecraft:carving_mask":{step:o({enum:"generation_step"})},"minecraft:rarity_filter":{chance:(0,L.NumberNode)({integer:!0,min:0})},"minecraft:count":{count:(0,ne.IntProvider)({min:0,max:256})},"minecraft:count_on_every_layer":{count:(0,ne.IntProvider)({min:0,max:256})},"minecraft:noise_threshold_count":{noise_level:(0,L.NumberNode)(),below_noise:(0,L.NumberNode)({integer:!0}),above_noise:(0,L.NumberNode)({integer:!0})},"minecraft:noise_based_count":{noise_to_count_ratio:(0,L.NumberNode)({integer:!0}),noise_factor:(0,L.NumberNode)(),noise_offset:(0,L.Opt)((0,L.NumberNode)())},"minecraft:environment_scan":{direction_of_search:o({enum:["up","down"]}),max_steps:(0,L.NumberNode)({integer:!0,min:1,max:32}),target_condition:t("block_predicate_worldgen"),allowed_search_condition:(0,L.Opt)(t("block_predicate_worldgen"))},"minecraft:heightmap":{heightmap:o({enum:"heightmap_type"})},"minecraft:height_range":{height:t("height_provider")},"minecraft:random_offset":{xz_spread:(0,ne.IntProvider)({min:-16,max:16}),y_spread:(0,ne.IntProvider)({min:-16,max:16})},"minecraft:surface_relative_threshold_filter":{heightmap:o({enum:"heightmap_type"}),min_inclusive:(0,L.Opt)((0,L.NumberNode)({integer:!0})),max_inclusive:(0,L.Opt)((0,L.NumberNode)({integer:!0}))},"minecraft:surface_water_depth_filter":{max_water_depth:(0,L.NumberNode)({integer:!0})}}},{context:"decorator",category:"predicate"}))}we.initDecoratorSchemas=bt;var Be={};(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.initDensityFunctionSchemas=r.DensityFunction=void 0;const e=k;function t(o,d){const n=e.StringNode.bind(void 0,d),a=e.Reference.bind(void 0,o);r.DensityFunction=(0,e.Mod)((0,e.ChoiceNode)([{type:"number",node:(0,e.NumberNode)(),change:()=>0},{type:"string",priority:1,node:n({validator:"resource",params:{pool:"$worldgen/density_function"}}),change:()=>{}},{type:"object",node:a("density_function"),change:()=>({})}],{choiceContext:"density_function"}),{default:()=>0});const p=(0,e.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/noise"}}),change:()=>{}},{type:"object",node:a("noise_parameters")}],{choiceContext:"noise_parameters"}),w=(0,e.NumberNode)({min:-1e6,max:1e6}),m=(0,e.NumberNode)({integer:!0,min:-2032*2,max:2031*2});o.register("density_function",(0,e.Mod)((0,e.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/density_function_type"}}),[e.Switch]:[{push:"type"}],[e.Case]:{"minecraft:abs":{argument:r.DensityFunction},"minecraft:add":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:blend_density":{argument:r.DensityFunction},"minecraft:cache_2d":{argument:r.DensityFunction},"minecraft:cache_all_in_cell":{argument:r.DensityFunction},"minecraft:cache_once":{argument:r.DensityFunction},"minecraft:clamp":{input:r.DensityFunction,min:w,max:w},"minecraft:constant":{argument:(0,e.NumberNode)()},"minecraft:cube":{argument:r.DensityFunction},"minecraft:flat_cache":{argument:r.DensityFunction},"minecraft:half_negative":{argument:r.DensityFunction},"minecraft:interpolated":{argument:r.DensityFunction},"minecraft:max":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:min":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:mul":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:noise":{noise:p,xz_scale:(0,e.NumberNode)(),y_scale:(0,e.NumberNode)()},"minecraft:quarter_negative":{argument:r.DensityFunction},"minecraft:range_choice":{input:r.DensityFunction,min_inclusive:w,max_exclusive:w,when_in_range:r.DensityFunction,when_out_of_range:r.DensityFunction},"minecraft:shift":{argument:r.DensityFunction},"minecraft:shift_a":{argument:r.DensityFunction},"minecraft:shift_b":{argument:r.DensityFunction},"minecraft:shifted_noise":{noise:p,xz_scale:(0,e.NumberNode)(),y_scale:(0,e.NumberNode)(),shift_x:r.DensityFunction,shift_y:r.DensityFunction,shift_z:r.DensityFunction},"minecraft:slide":{argument:r.DensityFunction},"minecraft:spline":{spline:a("cubic_spline"),min_value:w,max_value:w},"minecraft:square":{argument:r.DensityFunction},"minecraft:squeeze":{argument:r.DensityFunction},"minecraft:terrain_shaper_spline":{spline:n({enum:["offset","factor","jaggedness"]}),min_value:w,max_value:w,continentalness:r.DensityFunction,erosion:r.DensityFunction,weirdness:r.DensityFunction},"minecraft:weird_scaled_sampler":{rarity_value_mapper:n({enum:["type_1","type_2"]}),noise:p,input:r.DensityFunction},"minecraft:y_clamped_gradient":{from_y:m,to_y:m,from_value:w,to_value:w}}},{context:"density_function",disableSwitchContext:!0}),{default:()=>({type:"minecraft:noise",noise:"minecraft:cave_entrance",xz_scale:.75,y_scale:.5})})),o.register("cubic_spline",(0,e.Mod)((0,e.ChoiceNode)([{type:"number",node:(0,e.NumberNode)()},{type:"object",node:(0,e.ObjectNode)({coordinate:r.DensityFunction,points:(0,e.ListNode)((0,e.ObjectNode)({location:(0,e.NumberNode)(),derivative:(0,e.NumberNode)(),value:a("cubic_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))}r.initDensityFunctionSchemas=t})(Be);var xe={},Y={};Object.defineProperty(Y,"__esModule",{value:!0});Y.initProcessorListSchemas=Y.Processors=void 0;const y=k;function Nt(r,e){const t=y.Reference.bind(void 0,r),o=y.StringNode.bind(void 0,e);Y.Processors=(0,y.ChoiceNode)([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:n=>{}},{type:"object",node:t("processor_list"),change:n=>({processors:[{processor_type:"minecraft:nop"}]})}]),r.register("processor_list",(0,y.Mod)((0,y.ObjectNode)({processors:(0,y.ListNode)(t("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"}}]}]})})),r.register("processor",(0,y.Mod)((0,y.ObjectNode)({processor_type:o({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[y.Switch]:[{push:"processor_type"}],[y.Case]:{"minecraft:block_age":{mossiness:(0,y.NumberNode)()},"minecraft:block_ignore":{blocks:(0,y.ListNode)(t("block_state"))},"minecraft:block_rot":{integrity:(0,y.NumberNode)({min:0,max:1})},"minecraft:gravity":{heightmap:o({enum:"heightmap_type"}),offset:(0,y.NumberNode)({integer:!0})},"minecraft:protected_blocks":{value:o({validator:"resource",params:{pool:"block",requireTag:!0}})},"minecraft:rule":{rules:(0,y.ListNode)(t("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"}}]})})),r.register("processor_rule",(0,y.Mod)((0,y.ObjectNode)({position_predicate:(0,y.Opt)(t("pos_rule_test")),location_predicate:t("rule_test"),input_predicate:t("rule_test"),output_state:t("block_state"),output_nbt:(0,y.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 d={min_dist:(0,y.Opt)((0,y.NumberNode)({min:0,max:255,integer:!0})),max_dist:(0,y.Opt)((0,y.NumberNode)({min:0,max:255,integer:!0})),min_chance:(0,y.Opt)((0,y.NumberNode)({min:0,max:1})),max_chance:(0,y.Opt)((0,y.NumberNode)({min:0,max:1}))};r.register("pos_rule_test",(0,y.ObjectNode)({predicate_type:o({validator:"resource",params:{pool:"pos_rule_test"}}),[y.Switch]:[{push:"predicate_type"}],[y.Case]:{"minecraft:axis_aligned_linear_pos":g({axis:o({enum:["x","y","z"]})},d),"minecraft:linear_pos":d}},{context:"pos_rule_test",disableSwitchContext:!0})),r.register("rule_test",(0,y.ObjectNode)({predicate_type:o({validator:"resource",params:{pool:"rule_test"}}),[y.Switch]:[{push:"predicate_type"}],[y.Case]:{"minecraft:block_match":{block:o({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:t("block_state")},"minecraft:random_block_match":{block:o({validator:"resource",params:{pool:"block"}}),probability:(0,y.NumberNode)({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:t("block_state"),probability:(0,y.NumberNode)({min:0,max:1})},"minecraft:tag_match":{tag:o({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))}Y.initProcessorListSchemas=Nt;Object.defineProperty(xe,"__esModule",{value:!0});xe.initFeatureSchemas=void 0;const i=k,h=z,Te=Y;function ht(r,e){const t=i.Reference.bind(void 0,r),o=i.StringNode.bind(void 0,e),d=(0,i.ChoiceNode)([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:t("configured_feature")}],{choiceContext:"feature"}),n=(0,i.ChoiceNode)([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},{type:"object",node:t("placed_feature")}],{choiceContext:"placed_feature"}),a={tries:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1})),xz_spread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),y_spread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),feature:n},p={state:t("block_state"),radius:(0,h.IntProvider)({min:0,max:8}),half_height:(0,i.NumberNode)({integer:!0,min:0,max:4}),targets:(0,i.ListNode)(t("block_state"))},w={cap_provider:t("block_state_provider"),stem_provider:t("block_state_provider"),foliage_radius:(0,i.Opt)((0,i.NumberNode)({integer:!0}))},m=(0,i.ObjectNode)({target:t("rule_test"),state:t("block_state")}),f={size:(0,i.NumberNode)({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:(0,i.NumberNode)({min:0,max:1}),targets:(0,i.ListNode)(m)},j={surface:o({enum:"cave_surface"}),depth:(0,h.IntProvider)({min:1,max:128}),vertical_range:(0,i.NumberNode)({integer:!0,min:1,max:256}),extra_bottom_block_chance:(0,i.NumberNode)({min:0,max:1}),extra_edge_column_chance:(0,i.NumberNode)({min:0,max:1}),vegetation_chance:(0,i.NumberNode)({min:0,max:1}),xz_radius:(0,h.IntProvider)(),replaceable:o({validator:"resource",params:{pool:"block",requireTag:!0}}),ground_state:t("block_state_provider"),vegetation_feature:n};r.register("configured_feature",(0,i.Mod)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/feature"}}),config:(0,i.ObjectNode)({[i.Switch]:["pop",{push:"type"}],[i.Case]:{"minecraft:bamboo":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:basalt_columns":{reach:(0,h.IntProvider)({min:0,max:3}),height:(0,h.IntProvider)({min:1,max:10})},"minecraft:block_column":{direction:o({enum:["up","down","north","east","south","west"]}),allowed_placement:t("block_predicate_worldgen"),prioritize_tip:(0,i.BooleanNode)(),layers:(0,i.ListNode)((0,i.ObjectNode)({height:(0,h.IntProvider)({min:0}),provider:t("block_state_provider")}))},"minecraft:block_pile":{state_provider:t("block_state_provider")},"minecraft:delta_feature":{contents:t("block_state"),rim:t("block_state"),size:(0,h.IntProvider)({min:0,max:16}),rim_size:(0,h.IntProvider)({min:0,max:16})},"minecraft:disk":p,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:(0,i.NumberNode)({integer:!0,min:1,max:512}),height:(0,h.IntProvider)({min:0,max:128}),radius:(0,h.IntProvider)({min:0,max:128}),max_stalagmite_stalactite_height_diff:(0,i.NumberNode)({integer:!0,min:0,max:64}),height_deviation:(0,i.NumberNode)({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:(0,h.IntProvider)({min:0,max:128}),density:(0,h.FloatProvider)({min:0,max:2}),wetness:(0,h.FloatProvider)({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:(0,i.NumberNode)({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:(0,i.NumberNode)({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:(0,i.NumberNode)({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:(0,i.BooleanNode)(),exit:(0,i.Opt)(t("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:(0,i.Opt)((0,i.BooleanNode)()),crystal_beam_target:(0,i.Opt)(t("block_pos")),spikes:(0,i.ListNode)((0,i.ObjectNode)({centerX:(0,i.Opt)((0,i.NumberNode)({integer:!0})),centerZ:(0,i.Opt)((0,i.NumberNode)({integer:!0})),radius:(0,i.Opt)((0,i.NumberNode)({integer:!0})),height:(0,i.Opt)((0,i.NumberNode)({integer:!0})),guarded:(0,i.Opt)((0,i.BooleanNode)())}))},"minecraft:fill_layer":{state:t("block_state"),height:(0,i.NumberNode)({integer:!0,min:0,max:255})},"minecraft:flower":a,"minecraft:forest_rock":{state:t("block_state")},"minecraft:fossil":{max_empty_corners_allowed:(0,i.NumberNode)({integer:!0,min:0,max:7}),fossil_structures:(0,i.ListNode)(o({validator:"resource",params:{pool:"$structure"}})),overlay_structures:(0,i.ListNode)(o({validator:"resource",params:{pool:"$structure"}})),fossil_processors:Te.Processors,overlay_processors:Te.Processors},"minecraft:geode":{blocks:(0,i.ObjectNode)({filling_provider:t("block_state_provider"),inner_layer_provider:t("block_state_provider"),alternate_inner_layer_provider:t("block_state_provider"),middle_layer_provider:t("block_state_provider"),outer_layer_provider:t("block_state_provider"),inner_placements:(0,i.ListNode)(t("block_state")),cannot_replace:o({validator:"resource",params:{pool:"block",requireTag:!0}}),invalid_blocks:o({validator:"resource",params:{pool:"block",requireTag:!0}})}),layers:(0,i.ObjectNode)({filling:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),inner_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),middle_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),outer_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50}))}),crack:(0,i.ObjectNode)({generate_crack_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),base_crack_size:(0,i.Opt)((0,i.NumberNode)({min:0,max:5})),crack_point_offset:(0,i.Opt)((0,i.NumberNode)({min:0,max:10}))}),noise_multiplier:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),use_potential_placements_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),use_alternate_layer0_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),placements_require_layer0_alternate:(0,i.Opt)((0,i.BooleanNode)()),outer_wall_distance:(0,i.Opt)((0,h.IntProvider)({min:1,max:20})),distribution_points:(0,i.Opt)((0,h.IntProvider)({min:1,max:20})),point_offset:(0,i.Opt)((0,h.IntProvider)({min:0,max:10})),min_gen_offset:(0,i.Opt)((0,i.NumberNode)({integer:!0})),max_gen_offset:(0,i.Opt)((0,i.NumberNode)({integer:!0})),invalid_blocks_threshold:(0,i.NumberNode)({integer:!0})},"minecraft:glow_lichen":{search_range:(0,i.Opt)((0,i.NumberNode)({min:1,max:64,integer:!0})),chance_of_spreading:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),can_place_on_floor:(0,i.Opt)((0,i.BooleanNode)()),can_place_on_ceiling:(0,i.Opt)((0,i.BooleanNode)()),can_place_on_wall:(0,i.Opt)((0,i.BooleanNode)()),can_be_placed_on:(0,h.Tag)({resource:"block"})},"minecraft:huge_brown_mushroom":w,"minecraft:huge_fungus":{hat_state:t("block_state"),decor_state:t("block_state"),stem_state:t("block_state"),valid_base_block:t("block_state"),planted:(0,i.Opt)((0,i.BooleanNode)())},"minecraft:huge_red_mushroom":w,"minecraft:ice_patch":p,"minecraft:iceberg":{state:t("block_state")},"minecraft:lake":{fluid:t("block_state_provider"),barrier:t("block_state_provider")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1,max:512})),column_radius:(0,h.IntProvider)({min:0,max:60}),height_scale:(0,h.FloatProvider)({min:0,max:20}),max_column_radius_to_cave_height_ratio:(0,i.NumberNode)({min:0,max:1}),stalactite_bluntness:(0,h.FloatProvider)({min:.1,max:10}),stalagmite_bluntness:(0,h.FloatProvider)({min:.1,max:10}),wind_speed:(0,h.FloatProvider)({min:0,max:2}),min_radius_for_wind:(0,i.NumberNode)({integer:!0,min:0,max:100}),min_bluntness_for_wind:(0,i.NumberNode)({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:t("block_state_provider"),spread_width:(0,i.NumberNode)({integer:!0,min:1}),spread_height:(0,i.NumberNode)({integer:!0,min:1})},"minecraft:netherrack_replace_blobs":{state:t("block_state"),target:t("block_state"),radius:(0,h.IntProvider)({min:0,max:12})},"minecraft:no_bonemeal_flower":a,"minecraft:ore":f,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_directional_spread:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_spread_radius2:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_spread_radius3:(0,i.Opt)((0,i.NumberNode)({min:0,max:1}))},"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:n,feature_true:n},"minecraft:random_selector":{features:(0,i.ListNode)((0,i.ObjectNode)({chance:(0,i.NumberNode)({min:0,max:1}),feature:n})),default:n},"minecraft:replace_single_block":{targets:(0,i.ListNode)(m)},"minecraft:root_system":{required_vertical_space_for_tree:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_radius:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_placement_attempts:(0,i.NumberNode)({integer:!0,min:1,max:256}),root_column_max_height:(0,i.NumberNode)({integer:!0,min:1,max:4096}),hanging_root_radius:(0,i.NumberNode)({integer:!0,min:1,max:64}),hanging_roots_vertical_span:(0,i.NumberNode)({integer:!0,min:0,max:16}),hanging_root_placement_attempts:(0,i.NumberNode)({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_replaceable:o({validator:"resource",params:{pool:"block",requireTag:!0}}),root_state_provider:t("block_state_provider"),hanging_root_state_provider:t("block_state_provider"),allowed_tree_position:t("block_predicate_worldgen"),feature:n},"minecraft:scattered_ore":f,"minecraft:sea_pickle":{count:(0,h.IntProvider)({min:0,max:256})},"minecraft:seagrass":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:simple_block":{to_place:t("block_state_provider")},"minecraft:simple_random_selector":{features:(0,h.Tag)({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"})},"minecraft:spring_feature":{state:t("fluid_state"),rock_count:(0,i.NumberNode)({integer:!0}),hole_count:(0,i.NumberNode)({integer:!0}),requires_block_below:(0,i.BooleanNode)(),valid_blocks:(0,h.Tag)({resource:"block"})},"minecraft:tree":{ignore_vines:(0,i.Opt)((0,i.BooleanNode)()),force_dirt:(0,i.Opt)((0,i.BooleanNode)()),minimum_size:t("feature_size"),dirt_provider:t("block_state_provider"),trunk_provider:t("block_state_provider"),foliage_provider:t("block_state_provider"),trunk_placer:(0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:(0,i.NumberNode)({integer:!0,min:0,max:32}),height_rand_a:(0,i.NumberNode)({integer:!0,min:0,max:24}),height_rand_b:(0,i.NumberNode)({integer:!0,min:0,max:24}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:bending_trunk_placer":{bend_length:(0,h.IntProvider)({min:1,max:64}),min_height_for_leaves:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:(0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:(0,h.IntProvider)({min:0,max:16}),offset:(0,h.IntProvider)({min:0,max:16}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:blob_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:(0,h.IntProvider)({min:0,max:24})},"minecraft:pine_foliage_placer":{height:(0,h.IntProvider)({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:(0,h.IntProvider)({min:1,max:512}),leaf_placement_attempts:(0,i.NumberNode)({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:(0,h.IntProvider)({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:(0,i.ListNode)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:alter_ground":{provider:t("block_state_provider")},"minecraft:beehive":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:cocoa":{probability:(0,i.NumberNode)({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:twisting_vines":{spread_width:(0,i.NumberNode)({integer:!0,min:1}),spread_height:(0,i.NumberNode)({integer:!0,min:1}),max_height:(0,i.NumberNode)({integer:!0,min:1})},"minecraft:underwater_magma":{floor_search_range:(0,i.NumberNode)({integer:!0,min:0,max:512}),placement_radius_around_floor:(0,i.NumberNode)({integer:!0,min:0,max:64}),placement_probability_per_valid_position:(0,i.NumberNode)({min:0,max:1})},"minecraft:vegetation_patch":j,"minecraft:waterlogged_vegetation_patch":j}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:tree",config:{minimum_size:{type:"minecraft:two_layers_feature_size"},trunk_placer:{type:"minecraft:straight_trunk_placer",base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{type:"minecraft:blob_foliage_placer",radius:2,offset:0,height:3}}})})),r.register("placed_feature",(0,i.Mod)((0,i.ObjectNode)({feature:d,placement:(0,i.ListNode)(t("decorator"))},{context:"placed_feature"}),{default:()=>({feature:"minecraft:oak",placement:[{type:"minecraft:count",count:4},{type:"minecraft:in_square"},{type:"minecraft:heightmap",heightmap:"OCEAN_FLOOR"}]})})),r.register("feature_size",(0,i.Mod)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:(0,i.Opt)((0,i.NumberNode)({min:0,max:80})),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:two_layers_feature_size":{limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:81})),lower_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:80})),upper_limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:80})),lower_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),middle_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const v={seed:(0,i.NumberNode)({integer:!0}),noise:t("noise_parameters"),scale:(0,i.Mod)((0,i.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1})};r.register("block_state_provider",(0,i.Mod)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:dual_noise_provider":A(g({},v),{variety:(0,h.InclusiveRange)({integer:!0,min:1,max:64}),slow_noise:t("noise_parameters"),slow_scale:(0,i.Mod)((0,i.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1}),states:(0,i.ListNode)(t("block_state"))}),"minecraft:noise_threshold_provider":A(g({},v),{threshold:(0,i.NumberNode)({min:-1,max:1}),high_chance:(0,i.NumberNode)({min:0,max:1}),default_state:t("block_state"),low_states:(0,i.ListNode)(t("block_state")),high_states:(0,i.ListNode)(t("block_state"))}),"minecraft:noise_provider":A(g({},v),{states:(0,i.ListNode)(t("block_state"))}),"minecraft:randomized_int_state_provider":{property:o(),values:(0,h.IntProvider)(),source:t("block_state_provider")},"minecraft:rotated_block_provider":{state:t("block_state")},"minecraft:simple_state_provider":{state:t("block_state")},"minecraft:weighted_state_provider":{entries:(0,i.ListNode)((0,i.Mod)((0,i.ObjectNode)({weight:(0,i.NumberNode)({integer:!0,min:1}),data:t("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})}));const S={offset:(0,i.Opt)((0,i.ListNode)((0,i.NumberNode)({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))};r.register("block_predicate_worldgen",(0,i.Mod)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"block_predicate_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:all_of":{predicates:(0,i.ListNode)(t("block_predicate_worldgen"))},"minecraft:any_of":{predicates:(0,i.ListNode)(t("block_predicate_worldgen"))},"minecraft:has_sturdy_face":A(g({},S),{direction:o({enum:"direction"})}),"minecraft:inside_world_bounds":g({},S),"minecraft:matching_block_tag":A(g({},S),{tag:o({validator:"resource",params:{pool:"$tag/block"}})}),"minecraft:matching_blocks":A(g({},S),{blocks:(0,h.Tag)({resource:"block"})}),"minecraft:matching_fluids":A(g({},S),{fluids:(0,h.Tag)({resource:"fluid"})}),"minecraft:not":{predicate:t("block_predicate_worldgen")},"minecraft:would_survive":A(g({},S),{state:t("block_state")})}},{context:"block_predicate"}),{default:()=>({type:"minecraft:true"})}))}xe.initFeatureSchemas=ht;var Se={};Object.defineProperty(Se,"__esModule",{value:!0});Se.initNoiseSettingsSchemas=void 0;const N=k,yt=z,D=Be;function vt(r,e){const t=N.Reference.bind(void 0,r),o=N.StringNode.bind(void 0,e);r.register("noise_settings",(0,N.Mod)((0,N.ObjectNode)({sea_level:(0,N.NumberNode)({integer:!0}),disable_mob_generation:(0,N.BooleanNode)(),aquifers_enabled:(0,N.BooleanNode)(),ore_veins_enabled:(0,N.BooleanNode)(),legacy_random_source:(0,N.BooleanNode)(),default_block:t("block_state"),default_fluid:t("block_state"),noise:(0,N.ObjectNode)({min_y:(0,N.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,N.NumberNode)({integer:!0,min:0,max:4096}),size_horizontal:(0,N.NumberNode)({integer:!0}),size_vertical:(0,N.NumberNode)({integer:!0}),sampling:(0,N.ObjectNode)({xz_scale:(0,N.NumberNode)(),y_scale:(0,N.NumberNode)(),xz_factor:(0,N.NumberNode)(),y_factor:(0,N.NumberNode)()}),bottom_slide:t("noise_slider"),top_slide:t("noise_slider"),terrain_shaper:t("terrain_shaper")}),noise_router:(0,N.ObjectNode)({barrier:D.DensityFunction,fluid_level_floodedness:D.DensityFunction,fluid_level_spread:D.DensityFunction,lava:D.DensityFunction,temperature:D.DensityFunction,vegetation:D.DensityFunction,continents:D.DensityFunction,erosion:D.DensityFunction,depth:D.DensityFunction,ridges:D.DensityFunction,initial_density_without_jaggedness:D.DensityFunction,final_density:D.DensityFunction,vein_toggle:D.DensityFunction,vein_ridged:D.DensityFunction,vein_gap:D.DensityFunction}),surface_rule:t("material_rule")},{context:"noise_settings"}),d=>({default:()=>yt.DefaultNoiseSettings,validate:(n,a,p,w)=>{var m,f,j,v;return a=d.validate(n,a,p,w),((m=a==null?void 0:a.noise)===null||m===void 0?void 0:m.min_y)+((f=a==null?void 0:a.noise)===null||f===void 0?void 0:f.height)>2047&&p.add(n.push("noise").push("height"),"error.min_y_plus_height",2047),((j=a==null?void 0:a.noise)===null||j===void 0?void 0:j.height)%16!==0&&p.add(n.push("noise").push("height"),"error.height_multiple",16),((v=a==null?void 0:a.noise)===null||v===void 0?void 0:v.min_y)%16!==0&&p.add(n.push("noise").push("min_y"),"error.min_y_multiple",16),a}}))),r.register("noise_slider",(0,N.ObjectNode)({target:(0,N.NumberNode)(),size:(0,N.NumberNode)({integer:!0,min:0}),offset:(0,N.NumberNode)({integer:!0})})),r.register("generator_layer",(0,N.Mod)((0,N.ObjectNode)({block:o({validator:"resource",params:{pool:"block"}}),height:(0,N.NumberNode)({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})})),r.register("terrain_shaper",(0,N.Mod)((0,N.ObjectNode)({offset:t("terrain_spline"),factor:t("terrain_spline"),jaggedness:t("terrain_spline")},{context:"terrain_shaper"}),{default:()=>({offset:0,factor:0,jaggedness:0})})),r.register("terrain_spline",(0,N.Mod)((0,N.ChoiceNode)([{type:"number",node:(0,N.NumberNode)()},{type:"object",node:(0,N.ObjectNode)({coordinate:(0,N.Mod)(o({enum:["continents","erosion","weirdness","ridges"]}),{default:()=>"continents"}),points:(0,N.ListNode)((0,N.ObjectNode)({location:(0,N.NumberNode)(),derivative:(0,N.NumberNode)(),value:t("terrain_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))}Se.initNoiseSettingsSchemas=vt;var je={};Object.defineProperty(je,"__esModule",{value:!0});je.initStructureFeatureSchemas=void 0;const F=k,Ot=z,kt=Fe;function wt(r,e){const t=F.StringNode.bind(void 0,e),o=F.Reference.bind(void 0,r),d={start_pool:t({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:(0,F.NumberNode)({integer:!0})};r.register("configured_structure_feature",(0,F.Mod)((0,F.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/structure_feature"}}),biomes:(0,Ot.Tag)({resource:"$worldgen/biome"}),adapt_noise:(0,F.Opt)((0,F.BooleanNode)()),spawn_overrides:(0,F.MapNode)(t({enum:"mob_category"}),(0,F.ObjectNode)({bounding_box:t({enum:["piece","full"]}),spawns:kt.MobCategorySpawnSettings})),config:(0,F.ObjectNode)({[F.Switch]:["pop",{push:"type"}],[F.Case]:{"minecraft:bastion_remnant":d,"minecraft:buried_treasure":{probability:(0,F.NumberNode)({min:0,max:1})},"minecraft:mineshaft":{type:t({enum:["normal","mesa"]}),probability:(0,F.NumberNode)({min:0,max:1})},"minecraft:nether_fossil":{height:o("height_provider")},"minecraft:ocean_ruin":{biome_temp:t({enum:["cold","warm"]}),large_probability:(0,F.NumberNode)({min:0,max:1}),cluster_probability:(0,F.NumberNode)({min:0,max:1})},"minecraft:pillager_outpost":d,"minecraft:ruined_portal":{portal_type:t({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:(0,F.Opt)((0,F.BooleanNode)())},"minecraft:village":d}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))}je.initStructureFeatureSchemas=wt;var Ce={};Object.defineProperty(Ce,"__esModule",{value:!0});Ce.initStructureSetSchemas=void 0;const M=k,xt=z;function St(r,e){const t=M.StringNode.bind(void 0,e),o=M.Reference.bind(void 0,r);r.register("structure_set",(0,M.ObjectNode)({structures:(0,M.ListNode)((0,M.ObjectNode)({structure:(0,xt.Tag)({resource:"$worldgen/configured_structure_feature"}),weight:(0,M.NumberNode)({integer:!0,min:1})})),placement:o("structure_placement")},{context:"structure_set"})),r.register("structure_placement",(0,M.Mod)((0,M.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/structure_placement"}}),[M.Switch]:[{push:"type"}],[M.Case]:{"minecraft:concentric_rings":{distance:(0,M.NumberNode)({integer:!0,min:0,max:1023}),spread:(0,M.NumberNode)({integer:!0,min:0,max:1023}),count:(0,M.NumberNode)({integer:!0,min:1,max:4095})},"minecraft:random_spread":{spread_type:(0,M.Opt)(t({enum:["linear","triangular"]})),spacing:(0,M.NumberNode)({integer:!0,min:0,max:4096}),separation:(0,M.Mod)((0,M.NumberNode)({integer:!0,min:0,max:4096}),d=>({validate:(n,a,p,w)=>(n.pop().push("spacing").get()<=a&&p.add(n,"error.separation_smaller_spacing"),d.validate(n,a,p,w))})),salt:(0,M.NumberNode)({integer:!0,min:0}),locate_offset:(0,M.Opt)((0,M.ListNode)((0,M.NumberNode)({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))}}},{context:"structure_placement"}),{default:()=>({type:"minecraft:random_spread",spacing:10,separation:5,salt:Math.floor(Math.random()*2147483647)})}))}Ce.initStructureSetSchemas=St;var Me={};Object.defineProperty(Me,"__esModule",{value:!0});Me.initSurfaceRuleSchemas=void 0;const C=k;function jt(r,e){const t=C.StringNode.bind(void 0,e),o=C.Reference.bind(void 0,r);r.register("material_rule",(0,C.Mod)((0,C.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/material_rule"}}),[C.Switch]:[{push:"type"}],[C.Case]:{"minecraft:block":{result_state:o("block_state")},"minecraft:condition":{if_true:o("material_condition"),then_run:o("material_rule")},"minecraft:sequence":{sequence:(0,C.ListNode)(o("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),r.register("material_condition",(0,C.Mod)((0,C.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/material_condition"}}),[C.Switch]:[{push:"type"}],[C.Case]:{"minecraft:biome":{biome_is:(0,C.ListNode)(t({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:t({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:(0,C.NumberNode)(),max_threshold:(0,C.NumberNode)()},"minecraft:not":{invert:o("material_condition")},"minecraft:stone_depth":{offset:(0,C.NumberNode)({integer:!0}),surface_type:t({enum:"cave_surface"}),add_surface_depth:(0,C.BooleanNode)(),secondary_depth_range:(0,C.NumberNode)({integer:!0})},"minecraft:vertical_gradient":{random_name:t(),true_at_and_below:o("vertical_anchor"),false_at_and_above:o("vertical_anchor")},"minecraft:water":{offset:(0,C.NumberNode)({integer:!0}),surface_depth_multiplier:(0,C.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,C.BooleanNode)()},"minecraft:y_above":{anchor:o("vertical_anchor"),surface_depth_multiplier:(0,C.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,C.BooleanNode)()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))}Me.initSurfaceRuleSchemas=jt;var Pe={};Object.defineProperty(Pe,"__esModule",{value:!0});Pe.initTemplatePoolSchemas=void 0;const R=k,qe=Y;function Ct(r,e){const t=R.Reference.bind(void 0,r),o=R.StringNode.bind(void 0,e);r.register("template_pool",(0,R.Mod)((0,R.ObjectNode)({name:o(),fallback:o(),elements:(0,R.ListNode)(t("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"}}]})})),r.register("template_weighted_element",(0,R.Mod)((0,R.ObjectNode)({weight:(0,R.NumberNode)({integer:!0,min:1}),element:t("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),r.register("template_element",(0,R.Mod)((0,R.ObjectNode)({element_type:o({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:o({enum:["rigid","terrain_matching"]}),[R.Switch]:[{push:"element_type"}],[R.Case]:{"minecraft:feature_pool_element":{feature:o({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},"minecraft:legacy_single_pool_element":{location:o({validator:"resource",params:{pool:"$structure"}}),processors:qe.Processors},"minecraft:list_pool_element":{elements:(0,R.ListNode)(t("template_element"))},"minecraft:single_pool_element":{location:o({validator:"resource",params:{pool:"$structure"}}),processors:qe.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))}Pe.initTemplatePoolSchemas=Ct;Object.defineProperty(Oe,"__esModule",{value:!0});Oe.initWorldgenSchemas=void 0;const Mt=Fe,Pt=ke,Lt=we,$t=Be,Ft=xe,Bt=Se,Dt=Y,zt=je,Rt=Ce,Tt=Me,qt=Pe;function It(r,e){(0,Dt.initProcessorListSchemas)(r,e),(0,$t.initDensityFunctionSchemas)(r,e),(0,Mt.initBiomeSchemas)(r,e),(0,Pt.initCarverSchemas)(r,e),(0,Lt.initDecoratorSchemas)(r,e),(0,Ft.initFeatureSchemas)(r,e),(0,Bt.initNoiseSettingsSchemas)(r,e),(0,zt.initStructureFeatureSchemas)(r,e),(0,Rt.initStructureSetSchemas)(r,e),(0,Tt.initSurfaceRuleSchemas)(r,e),(0,qt.initTemplatePoolSchemas)(r,e)}Oe.initWorldgenSchemas=It;var Le={};Object.defineProperty(Le,"__esModule",{value:!0});Le.initWorldSettingsSchemas=void 0;const X=k;function At(r,e){const t=X.Reference.bind(void 0,r),o=X.StringNode.bind(void 0,e);r.register("world_settings",(0,X.Mod)((0,X.ObjectNode)({generate_features:(0,X.BooleanNode)(),bonus_chest:(0,X.BooleanNode)(),seed:(0,X.NumberNode)({integer:!0}),dimensions:(0,X.MapNode)(o({validator:"resource",params:{pool:"$dimension"}}),t("dimension"))},{context:"world_settings"}),{default:()=>{const d=Math.floor(Math.random()*4294967296)-2147483648;return{generate_features:!0,bonus_chest:!1,seed:d,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:overworld"},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:nether"},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:the_end",seed:d},settings:"minecraft:end"}}}}}}))}Le.initWorldSettingsSchemas=At;Object.defineProperty(ce,"__esModule",{value:!0});ce.initSchemas=void 0;const Et=de,Wt=se,Ut=z,Vt=_e,Gt=ue,Ht=pe,Kt=fe,Xt=ge,Yt=be,Zt=Ne,Jt=he,Qt=ye,er=ve,tr=Oe,rr=Le;function or(r,e){(0,Ut.initCommonSchemas)(r,e),(0,Et.initAdvancementSchemas)(r,e),(0,Wt.initAssetsSchemas)(r,e),(0,Vt.initConditionSchemas)(r,e),(0,Ht.initDimensionTypeSchemas)(r,e),(0,Gt.initDimensionSchemas)(r,e),(0,Kt.initItemModifierSchemas)(r,e),(0,Xt.initLootTableSchemas)(r,e),(0,Yt.initPackMcmetaSchemas)(r,e),(0,Zt.initPredicatesSchemas)(r,e),(0,Jt.initRecipeSchemas)(r,e),(0,Qt.initTagsSchemas)(r,e),(0,er.initTextComponentSchemas)(r,e),(0,tr.initWorldgenSchemas)(r,e),(0,rr.initWorldSettingsSchemas)(r,e)}ce.initSchemas=or;var ir=re&&re.__createBinding||(Object.create?function(r,e,t,o){o===void 0&&(o=t);var d=Object.getOwnPropertyDescriptor(e,t);(!d||("get"in d?!e.__esModule:d.writable||d.configurable))&&(d={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,o,d)}:function(r,e,t,o){o===void 0&&(o=t),r[o]=e[t]}),nr=re&&re.__setModuleDefault||(Object.create?function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}:function(r,e){r.default=e}),ar=re&&re.__importStar||function(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t in r)t!=="default"&&Object.prototype.hasOwnProperty.call(r,t)&&ir(e,r,t);return nr(e,r),e};Object.defineProperty(G,"__esModule",{value:!0});var Ie=G.getSchemas=We=G.getCollections=Ee=G.lootContext=void 0;const Ae=k,cr=ae,dr=ce;var Ee=G.lootContext=ar(T);function sr(){const r=new Ae.CollectionRegistry;return(0,cr.initCollections)(r),r}var We=G.getCollections=sr;function lr(r){const e=new Ae.SchemaRegistry;return(0,dr.initSchemas)(e,r),e}Ie=G.getSchemas=lr;var pr=Xe({__proto__:null,get getSchemas(){return Ie},get getCollections(){return We},get lootContext(){return Ee},default:G},[G]);export{pr as i}; -//# sourceMappingURL=index.636ef3ff.js.map +var Ue=Object.defineProperty,Ve=Object.defineProperties;var Ge=Object.getOwnPropertyDescriptors;var De=Object.getOwnPropertySymbols;var He=Object.prototype.hasOwnProperty,Ke=Object.prototype.propertyIsEnumerable;var ze=(r,e,t)=>e in r?Ue(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,g=(r,e)=>{for(var t in e||(e={}))He.call(e,t)&&ze(r,t,e[t]);if(De)for(var t of De(e))Ke.call(e,t)&&ze(r,t,e[t]);return r},A=(r,e)=>Ve(r,Ge(e));import{l as k,c as re}from"./index.18869b2a.js";function Xe(r,e){return e.forEach(function(t){t&&typeof t!="string"&&!Array.isArray(t)&&Object.keys(t).forEach(function(o){if(o!=="default"&&!(o in r)){var d=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(r,o,d.get?d:{enumerable:!0,get:function(){return t[o]}})}})}),Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var G={},ae={};Object.defineProperty(ae,"__esModule",{value:!0});ae.initCollections=void 0;function Ye(r){r.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"]),r.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"]),r.register("slot",["mainhand","offhand","head","chest","legs","feet"]),r.register("gamemode",["survival","creative","adventure","spectator"]),r.register("entity_source",["this","killer","direct_killer","killer_player"]),r.register("copy_source",["block_entity","this","killer","killer_player"]),r.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),r.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"]),r.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"]),r.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"]),r.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mountain","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),r.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),r.register("generation_step",["air","liquid"]),r.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"]),r.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"]),r.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"]),r.register("cave_surface",["floor","ceiling"]),r.register("direction",["down","up","north","east","south","west"]),r.register("axis",["x","y","z"]),r.register("display_position",["firstperson_righthand","firstperson_lefthand","thirdperson_righthand","thirdperson_lefthand","gui","head","ground","fixed"]),r.register("gui_light",["front","side"]),r.register("item_model_predicates",["angle","blocking","broken","cast","charged","cooldown","custom_model_data","damage","damaged","firework","lefthanded","pull","pulling","throwing","time"]),r.register("mob_category",["monster","creature","ambient","axolotls","underground_water_creature","water_creature","water_ambient","misc"]),r.register("cat_texture",["textures/entity/cat/tabby.png","textures/entity/cat/black.png","textures/entity/cat/red.png","textures/entity/cat/siamese.png","textures/entity/cat/british_shorthair.png","textures/entity/cat/calico.png","textures/entity/cat/persian.png","textures/entity/cat/ragdoll.png","textures/entity/cat/white.png","textures/entity/cat/jellie.png","textures/entity/cat/all_black.png"])}ae.initCollections=Ye;var ce={},de={};Object.defineProperty(de,"__esModule",{value:!0});de.initAdvancementSchemas=void 0;const s=k;function Ze(r,e){const t=s.Reference.bind(void 0,r),o=s.StringNode.bind(void 0,e),d=(0,s.ChoiceNode)([{type:"object",node:(0,s.Opt)(t("entity_predicate")),change:n=>{var a,p;return(p=(a=n[0])===null||a===void 0?void 0:a.predicate)!==null&&p!==void 0?p:{}}},{type:"list",node:(0,s.ListNode)(t("condition")),change:n=>[{condition:"minecraft:entity_properties",predicate:n}]}],{context:"conditions"});r.register("advancement",(0,s.Mod)((0,s.ObjectNode)({display:(0,s.Opt)((0,s.Mod)((0,s.ObjectNode)({icon:(0,s.ObjectNode)({item:o({validator:"resource",params:{pool:"item"}}),nbt:(0,s.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:t("text_component"),description:t("text_component"),background:(0,s.Opt)(o()),frame:(0,s.Opt)(o({enum:["task","challenge","goal"]})),show_toast:(0,s.Opt)((0,s.BooleanNode)()),announce_to_chat:(0,s.Opt)((0,s.BooleanNode)()),hidden:(0,s.Opt)((0,s.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,s.Opt)(o({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,s.MapNode)(o(),t("advancement_criteria")),requirements:(0,s.Opt)((0,s.ListNode)((0,s.ListNode)(o()))),rewards:(0,s.Opt)((0,s.ObjectNode)({function:(0,s.Opt)(o({validator:"resource",params:{pool:"$function"}})),loot:(0,s.Opt)((0,s.ListNode)(o({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,s.Opt)((0,s.ListNode)(o({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,s.Opt)((0,s.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),r.register("advancement_criteria",(0,s.ObjectNode)({trigger:o({validator:"resource",params:{pool:e.get("advancement_trigger")}}),conditions:(0,s.Opt)((0,s.ObjectNode)({player:(0,s.Mod)(d,{enabled:n=>n.pop().push("trigger").get()!=="minecraft:impossible"}),[s.Switch]:["pop",{push:"trigger"}],[s.Case]:{"minecraft:bee_nest_destroyed":{block:(0,s.Opt)(o({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,s.Opt)((0,s.NumberNode)({integer:!0})),item:(0,s.Opt)(t("item_predicate"))},"minecraft:bred_animals":{parent:d,partner:d,child:d},"minecraft:brewed_potion":{potion:(0,s.Opt)(o({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,s.Opt)(o({validator:"resource",params:{pool:"$dimension"}})),to:(0,s.Opt)(o({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:construct_beacon":{level:t("int_bounds")},"minecraft:consume_item":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:cured_zombie_villager":{villager:d,zombie:d},"minecraft:effects_changed":{effects:(0,s.Opt)((0,s.MapNode)(o({validator:"resource",params:{pool:"mob_effect"}}),(0,s.ObjectNode)({amplifier:t("int_bounds"),duration:t("int_bounds")}))),source:(0,s.Opt)(d)},"minecraft:enter_block":{block:(0,s.Opt)(o({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:t("int_bounds"),item:(0,s.Opt)(t("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,s.Opt)(t("damage_predicate"))},"minecraft:entity_killed_player":{entity:d,killing_blow:(0,s.Opt)(t("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:(0,s.Opt)(t("location_predicate")),distance:(0,s.Opt)(t("distance_predicate"))},"minecraft:filled_bucket":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:d,item:(0,s.Opt)(t("item_predicate"))},"minecraft:hero_of_the_village":{location:(0,s.Opt)(t("location_predicate"))},"minecraft:inventory_changed":{slots:(0,s.Opt)((0,s.ObjectNode)({empty:t("int_bounds"),occupied:t("int_bounds"),full:t("int_bounds")})),items:(0,s.Opt)((0,s.ListNode)(t("item_predicate")))},"minecraft:item_durability_changed":{delta:t("int_bounds"),durability:t("int_bounds"),item:(0,s.Opt)(t("item_predicate"))},"minecraft:item_used_on_block":{item:(0,s.Opt)(t("item_predicate")),location:(0,s.Opt)(t("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:t("int_bounds"),victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:levitation":{distance:(0,s.Opt)(t("distance_predicate")),duration:t("int_bounds")},"minecraft:lightning_strike":{lightning:d,bystander:d},"minecraft:location":{location:(0,s.Opt)(t("location_predicate"))},"minecraft:nether_travel":{start_position:(0,s.Opt)(t("location_predicate")),distance:(0,s.Opt)(t("distance_predicate"))},"minecraft:placed_block":{block:(0,s.Opt)(o({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,s.Opt)(t("item_predicate")),location:(0,s.Opt)(t("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:o({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:(0,s.Opt)(t("damage_predicate")),entity:d},"minecraft:player_interacted_with_entity":{item:(0,s.Opt)(t("item_predicate")),entity:d},"minecraft:player_killed_entity":{entity:d,killing_blow:(0,s.Opt)(t("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:o({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:(0,s.Opt)(t("location_predicate")),distance:(0,s.Opt)(t("distance_predicate"))},"minecraft:slept_in_bed":{location:(0,s.Opt)(t("location_predicate"))},"minecraft:slide_down_block":{block:(0,s.Opt)(o({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:summoned_entity":{entity:d},"minecraft:tame_animal":{entity:d},"minecraft:target_hit":{projectile:d,shooter:d,signal_strength:t("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:d,item:(0,s.Opt)(t("item_predicate"))},"minecraft:used_ender_eye":{distance:(0,s.Opt)(t("float_bounds"))},"minecraft:used_totem":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:using_item":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:villager_trade":{villager:d,item:(0,s.Opt)(t("item_predicate"))},"minecraft:voluntary_exile":{location:(0,s.Opt)(t("location_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))}de.initAdvancementSchemas=Ze;var se={},le={};Object.defineProperty(le,"__esModule",{value:!0});le.initModelSchemas=void 0;const b=k;function Je(r,e){b.Reference.bind(void 0,r);const t=b.StringNode.bind(void 0,e),o=(n,a,p)=>(0,b.ListNode)((0,b.NumberNode)({min:a,max:p}),{minLength:n,maxLength:n}),d=(0,b.ChoiceNode)([{type:"alias",match:n=>typeof n=="string"&&n.startsWith("#"),node:t(),change:n=>typeof n=="string"?`#${n}`:"#0"},{type:"reference",match:n=>typeof n=="string",node:t({validator:"resource",params:{pool:"$texture"}}),change:n=>typeof n=="string"?n.replace(/^#/,""):""}],{choiceContext:"texture"});r.register("model",(0,b.Mod)((0,b.ObjectNode)({parent:(0,b.Opt)(t({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,b.Opt)((0,b.BooleanNode)()),gui_light:(0,b.Opt)(t({enum:"gui_light"})),textures:(0,b.Opt)((0,b.MapNode)(t(),d)),elements:(0,b.Opt)((0,b.ListNode)((0,b.ObjectNode)({from:o(3,-16,32),to:o(3,-16,32),rotation:(0,b.Opt)((0,b.ObjectNode)({origin:o(3),axis:t({enum:"axis"}),angle:(0,b.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,b.Opt)((0,b.BooleanNode)())})),shade:(0,b.Opt)((0,b.BooleanNode)()),faces:(0,b.MapNode)(t({enum:"direction"}),(0,b.ObjectNode)({texture:d,uv:(0,b.Opt)(o(4)),cullface:(0,b.Opt)(t({enum:"direction"})),rotation:(0,b.Opt)((0,b.NumberNode)({integer:!0})),tintindex:(0,b.Opt)((0,b.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,b.Opt)((0,b.MapNode)(t({enum:"display_position"}),(0,b.ObjectNode)({rotation:o(3),translation:o(3,-80,80),scale:o(3,-4,4)},{context:"item_transform"}))),overrides:(0,b.Opt)((0,b.ListNode)((0,b.ObjectNode)({predicate:(0,b.MapNode)(t({enum:"item_model_predicates"}),(0,b.NumberNode)()),model:t({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))}le.initModelSchemas=Je;var me={};Object.defineProperty(me,"__esModule",{value:!0});me.initBlockDefinitionSchemas=void 0;const x=k;function Qe(r,e){const t=x.Reference.bind(void 0,r),o=x.StringNode.bind(void 0,e);r.register("block_definition",(0,x.Mod)((0,x.ChoiceNode)([{type:"variants",match:n=>n.variants!==void 0,node:(0,x.ObjectNode)({variants:(0,x.MapNode)(o(),t("model_variant"))}),change:n=>({variants:{"":{}}})},{type:"multipart",match:n=>n.multipart!==void 0,node:(0,x.ObjectNode)({multipart:(0,x.ListNode)((0,x.ObjectNode)({when:(0,x.Opt)(t("multipart_condition")),apply:t("model_variant")}))}),change:n=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const d={model:o({validator:"resource",params:{pool:"$model"}}),x:(0,x.Opt)((0,x.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,x.Opt)((0,x.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,x.Opt)((0,x.BooleanNode)())};r.register("model_variant",(0,x.ChoiceNode)([{type:"object",node:(0,x.ObjectNode)(d),change:n=>Array.isArray(n)&&n.length>0?n[0]:{}},{type:"list",node:(0,x.ListNode)((0,x.ObjectNode)(A(g({},d),{weight:(0,x.Opt)((0,x.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:n=>[g({weight:1},n)]}],{context:"model_variant"})),r.register("multipart_condition",(0,x.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,x.MapNode)(o(),o()),change:n=>typeof n=="object"&&Array.isArray(n==null?void 0:n.OR)&&n.OR.length>0?n.OR[0]:{}},{type:"or",match:n=>typeof n=="object"&&(n==null?void 0:n.OR)!==void 0,node:(0,x.ObjectNode)({OR:(0,x.ListNode)(t("multipart_condition"))}),change:n=>({OR:[n!=null?n:{}]})}],{context:"multipart_condition"}))}me.initBlockDefinitionSchemas=Qe;Object.defineProperty(se,"__esModule",{value:!0});se.initAssetsSchemas=void 0;const et=le,tt=me;function rt(r,e){(0,tt.initBlockDefinitionSchemas)(r,e),(0,et.initModelSchemas)(r,e)}se.initAssetsSchemas=rt;var z={};(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.initCommonSchemas=r.Tag=r.InclusiveRange=r.IntProvider=r.FloatProvider=r.NoiseSettingsPresets=r.DefaultNoiseSettings=r.DimensionTypePresets=r.DefaultDimensionType=r.FunctionCases=r.ConditionCases=void 0;const e=k;r.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},r.DefaultNoiseSettings={sea_level:63,ore_veins_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,legacy_random_source:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}};function t(o,d){const n=e.StringNode.bind(void 0,d),a=e.Reference.bind(void 0,o);o.register("block_state",(0,e.Mod)((0,e.ObjectNode)({Name:n({validator:"resource",params:{pool:"block"}}),Properties:(0,e.Opt)((0,e.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),o.register("fluid_state",(0,e.Mod)((0,e.ObjectNode)({Name:n({validator:"resource",params:{pool:"fluid"}}),Properties:(0,e.Opt)((0,e.MapNode)(n(),n()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),o.register("block_pos",(0,e.Mod)((0,e.ListNode)((0,e.NumberNode)({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const p=m=>(0,e.Opt)((0,e.ChoiceNode)([{type:"number",node:(0,e.NumberNode)({integer:m}),change:f=>{var j,v;return f===void 0?0:(v=(j=f.min)!==null&&j!==void 0?j:f.max)!==null&&v!==void 0?v:0}},{type:"object",node:(0,e.ObjectNode)({min:(0,e.Opt)((0,e.NumberNode)({integer:m})),max:(0,e.Opt)((0,e.NumberNode)({integer:m}))},{context:"range"}),change:f=>({min:f!=null?f:0,max:f!=null?f:0})}]));o.register("int_bounds",p(!0)),o.register("float_bounds",p()),o.register("int_range",(0,e.ChoiceNode)([{type:"object",node:(0,e.ObjectNode)({min:(0,e.Opt)(a("number_provider")),max:(0,e.Opt)(a("number_provider"))})},{type:"number",node:(0,e.NumberNode)({integer:!0})}],{context:"range"}));const w=(m,f,j,v,S,B,E)=>{let ie={};S&&Object.keys(E[S]).forEach(q=>{ie[q]=(0,e.Mod)(E[S][q],{enabled:I=>I.push("type").get()===void 0})});const Z=(0,e.ObjectNode)(g({type:(0,e.Mod)((0,e.Opt)(n({validator:"resource",params:{pool:m}})),{hidden:()=>!0}),[e.Switch]:[{push:"type"}],[e.Case]:E},ie),{context:B,disableSwitchContext:!0}),J=[{type:f,node:E[v][j]}];return S&&J.push({type:"object",priority:-1,node:Z}),Object.keys(E).forEach(q=>{J.push({type:q,match:I=>{var Q;if("minecraft:"+((Q=I==null?void 0:I.type)===null||Q===void 0?void 0:Q.replace(/^minecraft:/,""))===q)return!0;const W=I?Object.keys(I):[];return typeof I=="object"&&((W==null?void 0:W.length)===0||(W==null?void 0:W.length)===1&&(W==null?void 0:W[0])==="type")},node:Z,change:I=>({type:q})})}),(0,e.ChoiceNode)(J,{context:B,choiceContext:`${B}.type`})};o.register("number_provider",w("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:(0,e.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:n({validator:"objective"}),scale:(0,e.Opt)((0,e.NumberNode)())}})),o.register("scoreboard_name_provider",w("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:n({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:(0,e.Mod)(n({enum:"entity_source"}),{default:()=>"this"})}})),o.register("nbt_provider",w("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:n({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:(0,e.Mod)(n({enum:"copy_source"}),{default:()=>"this"})}})),r.FloatProvider=m=>w("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:(0,e.NumberNode)(m)},"minecraft:uniform":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(m),max_exclusive:(0,e.NumberNode)(m)})},"minecraft:clamped_normal":{value:(0,e.ObjectNode)({min:(0,e.NumberNode)(),max:(0,e.NumberNode)(),mean:(0,e.NumberNode)(),deviation:(0,e.NumberNode)()})},"minecraft:trapezoid":{value:(0,e.ObjectNode)({min:(0,e.NumberNode)(),max:(0,e.NumberNode)(),plateau:(0,e.NumberNode)()})}}),o.register("float_provider",(0,r.FloatProvider)()),r.IntProvider=m=>w("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:(0,e.NumberNode)(g({integer:!0},m))},"minecraft:uniform":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},m)),max_inclusive:(0,e.NumberNode)(g({integer:!0},m))})},"minecraft:biased_to_bottom":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},m)),max_inclusive:(0,e.NumberNode)(g({integer:!0},m))})},"minecraft:clamped":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},m)),max_inclusive:(0,e.NumberNode)(g({integer:!0},m)),source:a("int_provider")})},"minecraft:clamped_normal":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},m)),max_inclusive:(0,e.NumberNode)(g({integer:!0},m)),mean:(0,e.NumberNode)(),deviation:(0,e.NumberNode)()})},"minecraft:weighted_list":{distribution:(0,e.ListNode)((0,e.ObjectNode)({weight:(0,e.NumberNode)({integer:!0}),data:a("int_provider")}))}}),o.register("int_provider",(0,r.IntProvider)()),o.register("vertical_anchor",(0,e.ChoiceNode)(["absolute","above_bottom","below_top"].map(m=>({type:m,match:f=>(f==null?void 0:f[m])!==void 0,change:f=>{var j,v,S;return{[m]:(S=(v=(j=f.absolute)!==null&&j!==void 0?j:f.above_bottom)!==null&&v!==void 0?v:f.below_top)!==null&&S!==void 0?S:0}},node:(0,e.ObjectNode)({[m]:(0,e.NumberNode)({integer:!0,min:-2048,max:2047})})})),{context:"vertical_anchor"})),o.register("height_provider",w("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:(0,e.Opt)((0,e.NumberNode)({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),inner:(0,e.Opt)((0,e.NumberNode)({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),plateau:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:weighted_list":{distribution:(0,e.ListNode)((0,e.ObjectNode)({weight:(0,e.NumberNode)({integer:!0}),data:a("int_provider")}))}})),r.InclusiveRange=m=>(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(m),max_inclusive:(0,e.NumberNode)(m)},{context:"range"}),o.register("noise_parameters",(0,e.Mod)((0,e.ObjectNode)({firstOctave:(0,e.NumberNode)({integer:!0}),amplitudes:(0,e.ListNode)((0,e.NumberNode)())},{context:"noise_parameters"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})})),r.Tag=m=>(0,e.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:m.resource,allowTag:!0}}),change:f=>{if(Array.isArray(f)&&typeof f[0]=="string"&&!f[0].startsWith("#"))return f[0]}},{type:"list",node:(0,e.ListNode)(m.inlineSchema?(0,e.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:m.resource}})},{type:"object",node:a(m.inlineSchema)}],{choiceContext:"tag.list"}):n({validator:"resource",params:{pool:m.resource}})),change:f=>typeof f=="string"&&!f.startsWith("#")?[f]:[]}],{choiceContext:"tag"}),r.ConditionCases=(m=n({enum:"entity_source"}))=>({"minecraft:alternative":{terms:(0,e.ListNode)(a("condition"))},"minecraft:block_state_property":{block:n({validator:"resource",params:{pool:"block"}}),properties:(0,e.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:a("damage_source_predicate")},"minecraft:entity_properties":{entity:m,predicate:a("entity_predicate")},"minecraft:entity_scores":{entity:m,scores:(0,e.MapNode)(n({validator:"objective"}),a("int_range"))},"minecraft:inverted":{term:a("condition")},"minecraft:killed_by_player":{inverse:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:location_check":{offsetX:(0,e.Opt)((0,e.NumberNode)({integer:!0})),offsetY:(0,e.Opt)((0,e.NumberNode)({integer:!0})),offsetZ:(0,e.Opt)((0,e.NumberNode)({integer:!0})),predicate:a("location_predicate")},"minecraft:match_tool":{predicate:a("item_predicate")},"minecraft:random_chance":{chance:(0,e.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,e.NumberNode)({min:0,max:1}),looting_multiplier:(0,e.NumberNode)()},"minecraft:reference":{name:n({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:n({validator:"resource",params:{pool:"enchantment"}}),chances:(0,e.ListNode)((0,e.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:a("int_range"),period:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:value_check":{value:a("number_provider"),range:a("int_range")},"minecraft:weather_check":{raining:(0,e.Opt)((0,e.BooleanNode)()),thundering:(0,e.Opt)((0,e.BooleanNode)())}}),r.FunctionCases=(m,f=n({enum:"copy_source"}),j=n({enum:"entity_source"}))=>{const v={"minecraft:apply_bonus":{enchantment:n({validator:"resource",params:{pool:"enchantment"}}),formula:n({validator:"resource",params:{pool:d.get("loot_table_apply_bonus_formula")}}),parameters:(0,e.Mod)((0,e.ObjectNode)({bonusMultiplier:(0,e.Mod)((0,e.NumberNode)(),{enabled:B=>B.pop().push("formula").get()==="minecraft:uniform_bonus_count"}),extra:(0,e.Mod)((0,e.NumberNode)(),{enabled:B=>B.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"}),probability:(0,e.Mod)((0,e.NumberNode)(),{enabled:B=>B.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"})}),{enabled:B=>B.push("formula").get()!=="minecraft:ore_drops"})},"minecraft:copy_name":{source:f},"minecraft:copy_nbt":{source:a("nbt_provider"),ops:(0,e.ListNode)((0,e.ObjectNode)({source:n({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:n({validator:"nbt_path",params:{category:"minecraft:item"}}),op:n({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:n({validator:"resource",params:{pool:"block"}}),properties:(0,e.ListNode)(n({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,e.Opt)((0,e.ListNode)(n({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:a("number_provider"),treasure:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:exploration_map":{destination:(0,e.Opt)((0,r.Tag)({resource:"$worldgen/configured_structure_feature"})),decoration:(0,e.Opt)(n({enum:"map_decoration"})),zoom:(0,e.Opt)((0,e.NumberNode)({integer:!0})),search_radius:(0,e.Opt)((0,e.NumberNode)({integer:!0})),skip_existing_chunks:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:fill_player_head":{entity:j},"minecraft:limit_count":{limit:a("int_range")},"minecraft:looting_enchant":{count:a("number_provider"),limit:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,e.ListNode)(a("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:(0,e.ListNode)((0,e.ObjectNode)({pattern:n({enum:"banner_pattern"}),color:n({enum:"dye_color"})})),append:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_contents":{type:n({validator:"resource",params:{pool:"block_entity_type"}}),entries:(0,e.ListNode)(a("loot_entry"))},"minecraft:set_count":{count:a("number_provider"),add:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_damage":{damage:a("number_provider"),add:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_enchantments":{enchantments:(0,e.MapNode)(n({validator:"resource",params:{pool:"enchantment"}}),a("number_provider")),add:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_loot_table":{type:n({validator:"resource",params:{pool:"block_entity_type"}}),name:n({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,e.Opt)(j),lore:(0,e.ListNode)(a("text_component")),replace:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_name":{entity:(0,e.Opt)(j),name:(0,e.Opt)(a("text_component"))},"minecraft:set_nbt":{tag:n({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_potion":{id:n({validator:"resource",params:{pool:"potion"}})},"minecraft:set_stew_effect":{effects:(0,e.Opt)((0,e.ListNode)((0,e.ObjectNode)({type:n({validator:"resource",params:{pool:"mob_effect"}}),duration:a("number_provider")})))}},S={};return d.get("loot_function_type").forEach(B=>{S[B]=g(g({},v[B]),m)}),S},r.DimensionTypePresets=m=>(0,e.ObjectOrPreset)(n({validator:"resource",params:{pool:"$dimension_type"}}),m,{"minecraft:overworld":r.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}}),r.NoiseSettingsPresets=m=>(0,e.ObjectOrPreset)(n({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),m,{"minecraft:overworld":r.DefaultNoiseSettings,"minecraft:nether":{sea_level:32,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:netherrack"},default_fluid:{Properties:{level:"0"},Name:"minecraft:lava"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:end":{sea_level:0,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:amplified":{sea_level:63,ore_veins_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,legacy_random_source:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:caves":{sea_level:32,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:floating_islands":{sea_level:0,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}}})}r.initCommonSchemas=t})(z);var _e={};Object.defineProperty(_e,"__esModule",{value:!0});_e.initConditionSchemas=void 0;const ee=k,ot=z;function it(r,e){const t=ee.Reference.bind(void 0,r),o=ee.StringNode.bind(void 0,e);r.register("predicate",(0,ee.ObjectOrList)(t("condition"),{choiceContext:"condition"})),r.register("condition",(0,ee.Mod)((0,ee.ObjectNode)({condition:o({validator:"resource",params:{pool:"loot_condition_type"}}),[ee.Switch]:[{push:"condition"}],[ee.Case]:(0,ot.ConditionCases)()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))}_e.initConditionSchemas=it;var ue={};Object.defineProperty(ue,"__esModule",{value:!0});ue.initDimensionSchemas=void 0;const O=k,$e=z;function nt(r,e){const t=O.Reference.bind(void 0,r),o=O.StringNode.bind(void 0,e),d=(0,O.ChoiceNode)([{type:"string",priority:1,node:o({validator:"resource",params:{pool:"$worldgen/structure_set"}}),change:()=>{}},{type:"object",node:t("structure_set"),change:()=>({})}],{choiceContext:"structure_set"});r.register("dimension",(0,O.Mod)((0,O.ObjectNode)({type:(0,$e.DimensionTypePresets)(t("dimension_type")),generator:(0,O.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[O.Switch]:[{push:"type"}],[O.Case]:{"minecraft:noise":{seed:(0,O.NumberNode)({integer:!0}),settings:(0,$e.NoiseSettingsPresets)(t("noise_settings")),biome_source:(0,O.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/biome_source"}}),[O.Switch]:[{push:"type"}],[O.Case]:{"minecraft:fixed":{biome:o({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:(0,O.Opt)(o({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:(0,O.Mod)((0,O.ListNode)(t("generator_biome")),{enabled:a=>a.push("preset").get()===void 0,default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:(0,O.Opt)((0,O.NumberNode)({integer:!0,min:0,max:62})),biomes:(0,$e.Tag)({resource:"$worldgen/biome"})},"minecraft:the_end":{seed:(0,O.NumberNode)({integer:!0})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:(0,O.ObjectNode)({biome:(0,O.Opt)(o({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:(0,O.Opt)((0,O.BooleanNode)()),features:(0,O.Opt)((0,O.BooleanNode)()),layers:(0,O.ListNode)(t("generator_layer")),structure_overrides:(0,O.ListNode)(d)})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const a=Math.floor(Math.random()*4294967296)-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:a,biome_source:{type:"minecraft:fixed",seed:a,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}}));const n=(0,O.ChoiceNode)([{type:"number",node:(0,O.NumberNode)({min:-2,max:2}),change:a=>{var p;return(p=a[0])!==null&&p!==void 0?p:0}},{type:"list",node:(0,O.ListNode)((0,O.NumberNode)({min:-2,max:2}),{minLength:2,maxLength:2}),change:a=>[a!=null?a:0,a!=null?a:0]}]);r.register("generator_biome",(0,O.Mod)((0,O.ObjectNode)({biome:o({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:(0,O.ObjectNode)({temperature:n,humidity:n,continentalness:n,erosion:n,weirdness:n,depth:n,offset:(0,O.NumberNode)({min:0,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})}))}ue.initDimensionSchemas=nt;var pe={};Object.defineProperty(pe,"__esModule",{value:!0});pe.initDimensionTypeSchemas=void 0;const $=k,at=z;function ct(r,e){const t=$.StringNode.bind(void 0,e);r.register("dimension_type",(0,$.Mod)((0,$.ObjectNode)({ultrawarm:(0,$.BooleanNode)(),natural:(0,$.BooleanNode)(),piglin_safe:(0,$.BooleanNode)(),respawn_anchor_works:(0,$.BooleanNode)(),bed_works:(0,$.BooleanNode)(),has_raids:(0,$.BooleanNode)(),has_skylight:(0,$.BooleanNode)(),has_ceiling:(0,$.BooleanNode)(),coordinate_scale:(0,$.NumberNode)({min:1e-5,max:3e7}),ambient_light:(0,$.NumberNode)(),fixed_time:(0,$.Opt)((0,$.NumberNode)({integer:!0})),logical_height:(0,$.NumberNode)({integer:!0,min:0,max:4064}),effects:(0,$.Opt)(t({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:t({validator:"resource",params:{pool:"block",requireTag:!0}}),min_y:(0,$.NumberNode)({integer:!0,min:-2032,max:2031}),height:(0,$.NumberNode)({integer:!0,min:16,max:4064})},{context:"dimension_type"}),o=>({default:()=>at.DefaultDimensionType,validate:(d,n,a,p)=>(n=o.validate(d,n,a,p),(n==null?void 0:n.min_y)+(n==null?void 0:n.height)>2032&&a.add(d.push("height"),"error.min_y_plus_height",2032),(n==null?void 0:n.logical_height)>(n==null?void 0:n.height)&&a.add(d.push("logical_height"),"error.logical_height"),(n==null?void 0:n.height)%16!==0&&a.add(d.push("height"),"error.height_multiple",16),(n==null?void 0:n.min_y)%16!==0&&a.add(d.push("min_y"),"error.min_y_multiple",16),n)})))}pe.initDimensionTypeSchemas=ct;var fe={};Object.defineProperty(fe,"__esModule",{value:!0});fe.initItemModifierSchemas=void 0;const U=k,dt=z;function st(r,e){const t=U.Reference.bind(void 0,r),o=U.StringNode.bind(void 0,e);r.register("item_modifier",(0,U.ObjectOrList)(t("function"),{choiceContext:"function"}));const d={conditions:(0,U.Opt)((0,U.ListNode)(t("condition")))};r.register("function",(0,U.Mod)((0,U.ObjectNode)({function:o({validator:"resource",params:{pool:"loot_function_type"}}),[U.Switch]:[{push:"function"}],[U.Case]:(0,dt.FunctionCases)(d)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))}fe.initItemModifierSchemas=st;var ge={},T={};Object.defineProperty(T,"__esModule",{value:!0});T.LootFunctions=T.LootConditions=T.LootCopySources=T.LootEntitySources=T.LootTableTypes=void 0;T.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]}]]);T.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]);T.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]);T.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",[]]]);T.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(ge,"__esModule",{value:!0});ge.initLootTableSchemas=void 0;const u=k,oe=T,Re=z;function lt(r,e){const t=u.Reference.bind(void 0,r),o=u.StringNode.bind(void 0,e),d={conditions:(0,u.Opt)((0,u.ListNode)(t("loot_condition")))},n=g({functions:(0,u.Opt)((0,u.ListNode)(t("loot_function")))},d);function a(v,S,B){const E=[],ie=Z=>e.get(S).filter(J=>{var q;return((q=v.get(J))!==null&&q!==void 0?q:[]).every(Q=>Z.includes(Q))});for(const[Z,{allows:J,requires:q}]of oe.LootTableTypes){const I=[...J,...q];E.push({match:Q=>Q.getModel().get(new u.Path(["type"]))===Z,node:B(ie(I))})}return E.push({match:Z=>!0,node:B(S)}),(0,u.SwitchNode)(E)}const p=a(oe.LootConditions,"loot_condition_type",v=>o({validator:"resource",params:{pool:v instanceof Array?v:"loot_condition_type"}})),w=a(oe.LootFunctions,"loot_function_type",v=>o({validator:"resource",params:{pool:v instanceof Array?v:"loot_function_type"}})),m=a(oe.LootEntitySources,"entity_source",v=>o({enum:v})),f=a(oe.LootCopySources,"copy_source",v=>o({enum:v}));r.register("loot_table",(0,u.Mod)((0,u.ObjectNode)({type:(0,u.Opt)(o({validator:"resource",params:{pool:e.get("loot_context_type")}})),pools:(0,u.Opt)((0,u.ListNode)((0,u.Mod)((0,u.ObjectNode)(g({rolls:t("number_provider"),bonus_rolls:(0,u.Opt)(t("number_provider")),entries:(0,u.ListNode)(t("loot_entry"))},n),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,u.Opt)((0,u.ListNode)(t("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const j={enabled:v=>{var S;return((S=v.pop().get())===null||S===void 0?void 0:S.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(v.push("type").get())}};r.register("loot_entry",(0,u.Mod)((0,u.ObjectNode)({type:o({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0,min:1}),j)),quality:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),j)),[u.Switch]:[{push:"type"}],[u.Case]:{"minecraft:alternatives":g({children:(0,u.ListNode)(t("loot_entry"))},n),"minecraft:dynamic":g({name:o()},n),"minecraft:group":g({children:(0,u.ListNode)(t("loot_entry"))},n),"minecraft:item":g({name:o({validator:"resource",params:{pool:"item"}})},n),"minecraft:loot_table":g({name:o({validator:"resource",params:{pool:"$loot_table"}})},n),"minecraft:sequence":g({children:(0,u.ListNode)(t("loot_entry"))},n),"minecraft:tag":g({name:o({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,u.Opt)((0,u.BooleanNode)())},n)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),r.register("loot_function",(0,u.Mod)((0,u.ObjectNode)({function:w,[u.Switch]:[{push:"function"}],[u.Case]:(0,Re.FunctionCases)(d,f,m)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),r.register("loot_condition",(0,u.Mod)((0,u.ObjectNode)({condition:p,[u.Switch]:[{push:"condition"}],[u.Case]:(0,Re.ConditionCases)(m)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),r.register("attribute_modifier",(0,u.Mod)((0,u.ObjectNode)({attribute:o({validator:"resource",params:{pool:"attribute"}}),name:o(),amount:t("number_provider"),operation:o({enum:["addition","multiply_base","multiply_total"]}),slot:(0,u.StringOrList)(o({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))}ge.initLootTableSchemas=lt;var be={};Object.defineProperty(be,"__esModule",{value:!0});be.initPackMcmetaSchemas=void 0;const te=k,H=9;function mt(r,e){r.register("pack_mcmeta",(0,te.Mod)((0,te.ObjectNode)({pack:(0,te.Mod)((0,te.ObjectNode)({pack_format:(0,te.Mod)((0,te.NumberNode)({integer:!0,min:H,max:H}),{default:()=>H,canUpdate:(t,o)=>o!==H,update:()=>[{name:"pack_format",params:[H],newValue:H}]}),description:(0,te.Reference)(r,"text_component")}),{default:()=>({pack_format:H,description:""})})}),{default:()=>({pack:{pack_format:H,description:""}})}))}be.initPackMcmetaSchemas=mt;var Ne={};Object.defineProperty(Ne,"__esModule",{value:!0});Ne.initPredicatesSchemas=void 0;const c=k;function _t(r,e){const t=c.Reference.bind(void 0,r),o=c.StringNode.bind(void 0,e),d=(0,c.ChoiceNode)([{type:"string",node:o(),change:n=>typeof n=="boolean"||typeof n=="number"?n.toString():""},{type:"number",node:(0,c.NumberNode)(),change:n=>typeof n=="string"?parseInt(n):0},{type:"object",node:(0,c.ObjectNode)({min:(0,c.Opt)((0,c.NumberNode)({integer:!0})),max:(0,c.Opt)((0,c.NumberNode)({integer:!0}))}),change:n=>typeof n=="number"?{min:n,max:n}:{}},{type:"boolean",node:(0,c.BooleanNode)(),change:n=>n==="true"||n===1}]);r.register("item_predicate",(0,c.ObjectNode)({items:(0,c.Opt)((0,c.ListNode)(o({validator:"resource",params:{pool:"item"}}))),tag:(0,c.Opt)(o({validator:"resource",params:{pool:"$tag/item"}})),count:t("int_bounds"),durability:t("int_bounds"),potion:(0,c.Opt)(o({validator:"resource",params:{pool:"potion"}})),nbt:(0,c.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,c.Opt)((0,c.ListNode)(t("enchantment_predicate")))},{context:"item"})),r.register("enchantment_predicate",(0,c.ObjectNode)({enchantment:(0,c.Opt)(o({validator:"resource",params:{pool:"enchantment"}})),levels:t("int_bounds")},{context:"enchantment"})),r.register("block_predicate",(0,c.ObjectNode)({blocks:(0,c.Opt)((0,c.ListNode)(o({validator:"resource",params:{pool:"block"}}))),tag:(0,c.Opt)(o({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,c.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,c.Opt)((0,c.MapNode)(o(),d,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),r.register("fluid_predicate",(0,c.ObjectNode)({fluid:(0,c.Opt)(o({validator:"resource",params:{pool:"fluid"}})),tag:(0,c.Opt)(o({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,c.Opt)((0,c.MapNode)(o(),d))},{context:"fluid"})),r.register("location_predicate",(0,c.ObjectNode)({position:(0,c.Opt)((0,c.ObjectNode)({x:t("float_bounds"),y:t("float_bounds"),z:t("float_bounds")})),biome:(0,c.Opt)(o({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:(0,c.Opt)(o({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),dimension:(0,c.Opt)(o({validator:"resource",params:{pool:"$dimension"}})),light:(0,c.Opt)((0,c.ObjectNode)({light:t("int_bounds")})),smokey:(0,c.Opt)((0,c.BooleanNode)()),block:(0,c.Opt)(t("block_predicate")),fluid:(0,c.Opt)(t("fluid_predicate"))},{context:"location"})),r.register("statistic_predicate",(0,c.ObjectNode)({type:o({validator:"resource",params:{pool:"stat_type"}}),stat:o(),value:t("int_bounds"),[c.Switch]:[{push:"type"}],[c.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"}})}}})),r.register("player_predicate",(0,c.ObjectNode)({gamemode:(0,c.Opt)(o({enum:"gamemode"})),level:t("int_bounds"),advancements:(0,c.Opt)((0,c.MapNode)(o({validator:"resource",params:{pool:"$advancement"}}),(0,c.ChoiceNode)([{type:"boolean",node:(0,c.BooleanNode)(),change:n=>!0},{type:"object",node:(0,c.MapNode)(o(),(0,c.BooleanNode)())}]))),recipes:(0,c.Opt)((0,c.MapNode)(o({validator:"resource",params:{pool:"$recipe"}}),(0,c.BooleanNode)())),stats:(0,c.Opt)((0,c.ListNode)(t("statistic_predicate"))),looking_at:(0,c.Opt)(t("entity_predicate"))},{context:"player"})),r.register("status_effect_predicate",(0,c.ObjectNode)({amplifier:t("int_bounds"),duration:t("int_bounds"),ambient:(0,c.Opt)((0,c.BooleanNode)()),visible:(0,c.Opt)((0,c.BooleanNode)())},{context:"status_effect"})),r.register("distance_predicate",(0,c.ObjectNode)({x:t("float_bounds"),y:t("float_bounds"),z:t("float_bounds"),absolute:t("float_bounds"),horizontal:t("float_bounds")},{context:"distance"})),r.register("entity_predicate",(0,c.ObjectNode)({type:(0,c.Opt)(o({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:(0,c.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,c.Opt)(o({validator:"team"})),location:(0,c.Opt)(t("location_predicate")),stepping_on:(0,c.Opt)(t("location_predicate")),distance:(0,c.Opt)(t("distance_predicate")),flags:(0,c.Opt)((0,c.ObjectNode)({is_on_fire:(0,c.Opt)((0,c.BooleanNode)()),is_sneaking:(0,c.Opt)((0,c.BooleanNode)()),is_sprinting:(0,c.Opt)((0,c.BooleanNode)()),is_swimming:(0,c.Opt)((0,c.BooleanNode)()),is_baby:(0,c.Opt)((0,c.BooleanNode)())})),equipment:(0,c.Opt)((0,c.MapNode)(o({enum:"slot"}),t("item_predicate"))),player:(0,c.Opt)(t("player_predicate")),vehicle:(0,c.Opt)(t("entity_predicate")),passenger:(0,c.Opt)(t("entity_predicate")),targeted_entity:(0,c.Opt)(t("entity_predicate")),lightning_bolt:(0,c.Opt)((0,c.ObjectNode)({blocks_set_on_fire:(0,c.Opt)(t("int_bounds")),entity_struck:(0,c.Opt)(t("entity_predicate"))})),fishing_hook:(0,c.Opt)((0,c.ObjectNode)({in_open_water:(0,c.Opt)((0,c.BooleanNode)())})),catType:(0,c.Opt)(o({enum:"cat_texture"})),effects:(0,c.Opt)((0,c.MapNode)(o({validator:"resource",params:{pool:"mob_effect"}}),t("status_effect_predicate")))},{context:"entity"})),r.register("damage_source_predicate",(0,c.ObjectNode)({is_explosion:(0,c.Opt)((0,c.BooleanNode)()),is_fire:(0,c.Opt)((0,c.BooleanNode)()),is_magic:(0,c.Opt)((0,c.BooleanNode)()),is_projectile:(0,c.Opt)((0,c.BooleanNode)()),is_lightning:(0,c.Opt)((0,c.BooleanNode)()),bypasses_armor:(0,c.Opt)((0,c.BooleanNode)()),bypasses_invulnerability:(0,c.Opt)((0,c.BooleanNode)()),bypasses_magic:(0,c.Opt)((0,c.BooleanNode)()),source_entity:(0,c.Opt)(t("entity_predicate")),direct_entity:(0,c.Opt)(t("entity_predicate"))},{context:"damage_source"})),r.register("damage_predicate",(0,c.ObjectNode)({dealt:t("float_bounds"),taken:t("float_bounds"),blocked:(0,c.Opt)((0,c.BooleanNode)()),source_entity:(0,c.Opt)(t("entity_predicate")),type:(0,c.Opt)(t("damage_source_predicate"))},{context:"damage"}))}Ne.initPredicatesSchemas=_t;var he={};Object.defineProperty(he,"__esModule",{value:!0});he.initRecipeSchemas=void 0;const _=k;function ut(r,e){const t=_.Reference.bind(void 0,r),o=_.StringNode.bind(void 0,e);r.register("recipe",(0,_.Mod)((0,_.ObjectNode)({type:o({validator:"resource",params:{pool:"recipe_serializer"}}),[_.Switch]:[{push:"type"}],[_.Case]:{"minecraft:crafting_shaped":{group:(0,_.Opt)(o({enum:"recipe_group",additional:!0})),pattern:(0,_.ListNode)(o()),key:(0,_.MapNode)(o(),t("recipe_ingredient")),result:t("recipe_result")},"minecraft:crafting_shapeless":{group:(0,_.Opt)(o()),ingredients:(0,_.ListNode)(t("recipe_ingredient")),result:t("recipe_result")},"minecraft:smelting":{group:(0,_.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,_.Opt)((0,_.NumberNode)()),cookingtime:(0,_.Opt)((0,_.Mod)((0,_.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,_.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,_.Opt)((0,_.NumberNode)()),cookingtime:(0,_.Opt)((0,_.Mod)((0,_.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,_.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,_.Opt)((0,_.NumberNode)()),cookingtime:(0,_.Opt)((0,_.Mod)((0,_.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,_.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,_.Opt)((0,_.NumberNode)()),cookingtime:(0,_.Opt)((0,_.Mod)((0,_.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,_.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),count:(0,_.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,_.Opt)(o()),base:t("recipe_ingredient_object"),addition:t("recipe_ingredient_object"),result:t("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),r.register("recipe_ingredient",(0,_.Mod)((0,_.ChoiceNode)([{type:"object",node:t("recipe_ingredient_object"),change:d=>d[0]},{type:"list",node:(0,_.ListNode)(t("recipe_ingredient_object")),change:d=>[d]}]),{default:()=>({item:"minecraft:stone"})})),r.register("recipe_ingredient_object",(0,_.Mod)((0,_.ObjectNode)({item:(0,_.Opt)(o({validator:"resource",params:{pool:"item"}})),tag:(0,_.Opt)(o({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),r.register("recipe_result",(0,_.Mod)((0,_.ObjectNode)({item:o({validator:"resource",params:{pool:"item"}}),count:(0,_.Opt)((0,_.Mod)((0,_.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))}he.initRecipeSchemas=ut;var ye={};Object.defineProperty(ye,"__esModule",{value:!0});ye.initTagsSchemas=void 0;const V=k;function pt(r,e){const t=V.StringNode.bind(void 0,e),o=d=>(0,V.Mod)((0,V.ObjectNode)({replace:(0,V.Opt)((0,V.BooleanNode)()),values:(0,V.ListNode)((0,V.ChoiceNode)([{type:"string",node:t({validator:"resource",params:{pool:d,allowTag:!0}}),change:n=>n.id},{type:"object",node:(0,V.ObjectNode)({id:t({validator:"resource",params:{pool:d,allowTag:!0,allowUnknown:!0}}),required:(0,V.BooleanNode)()}),change:n=>({id:n})}]))},{context:"tag"}),{default:()=>({values:[]})});r.register("block_tag",o("block")),r.register("entity_type_tag",o("entity_type")),r.register("fluid_tag",o("fluid")),r.register("function_tag",o("$function")),r.register("game_event_tag",o("game_event")),r.register("item_tag",o("item")),r.register("advancement_tag",o("$advancement")),r.register("dimension_tag",o("$dimension")),r.register("dimension_type_tag",o("$dimension_type")),r.register("function_tag",o("$function")),r.register("item_modifier_tag",o("$item_modifier")),r.register("loot_table_tag",o("$loot_table")),r.register("predicate_tag",o("$predicate")),r.register("recipe_tag",o("$recipe")),r.register("structure_tag",o("$structure")),r.register("biome_tag",o("$worldgen/biome")),r.register("configured_carver_tag",o("$worldgen/configured_carver")),r.register("configured_decorator_tag",o("$worldgen/configured_decorator")),r.register("configured_feature_tag",o("$worldgen/configured_feature")),r.register("configured_structure_feature_tag",o("$worldgen/configured_structure_feature")),r.register("configured_surface_builder_tag",o("$worldgen/configured_surface_builder")),r.register("density_function_tag",o("$worldgen/density_function")),r.register("noise_tag",o("$worldgen/noise")),r.register("noise_settings_tag",o("$worldgen/noise_settings")),r.register("placed_feature_tag",o("$worldgen/placed_feature")),r.register("processor_list_tag",o("$worldgen/processor_list")),r.register("structure_set_tag",o("$worldgen/structure_set")),r.register("template_pool_tag",o("$worldgen/template_pool"))}ye.initTagsSchemas=pt;var ve={};Object.defineProperty(ve,"__esModule",{value:!0});ve.initTextComponentSchemas=void 0;const l=k;function ft(r,e){const t=l.Reference.bind(void 0,r),o=l.StringNode.bind(void 0,e),d=a=>{var p;return a instanceof Array?d(a[0]):(p=a==null?void 0:a.text)!==null&&p!==void 0?p:typeof a=="object"?"":a==null?void 0:a.toString()};r.register("text_component",(0,l.Mod)((0,l.ChoiceNode)([{type:"object",node:t("text_component_object"),change:a=>a instanceof Array?typeof a[0]=="object"?a[0]:{text:d(a[0])}:typeof a=="object"?a:{text:d(a)}},{type:"list",node:t("text_component_list"),change:a=>[a]},{type:"string",priority:1,node:o(),change:d},{type:"number",node:(0,l.NumberNode)(),change:a=>{const p=parseFloat(d(a));return isFinite(p)?p:a?1:0}},{type:"boolean",node:(0,l.BooleanNode)(),change:a=>{const p=d(a);return p==="true"||p==="false"?p==="true":!!p}}],{context:"text_component"}),{default:()=>({text:""})}));const n={color:(0,l.Opt)(o()),font:(0,l.Opt)(o()),bold:(0,l.Opt)((0,l.BooleanNode)()),italic:(0,l.Opt)((0,l.BooleanNode)()),underlined:(0,l.Opt)((0,l.BooleanNode)()),strikethrough:(0,l.Opt)((0,l.BooleanNode)()),obfuscated:(0,l.Opt)((0,l.BooleanNode)()),insertion:(0,l.Opt)(o()),clickEvent:(0,l.Opt)((0,l.ObjectNode)({action:o({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[l.Switch]:[{push:"action"}],[l.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:(0,l.Opt)((0,l.ObjectNode)({action:o({enum:["show_text","show_item","show_entity"]}),[l.Switch]:[{push:"action"}],[l.Case]:{show_text:{value:(0,l.Opt)(t("text_component")),contents:(0,l.Opt)(t("text_component"))},show_item:{value:(0,l.Opt)(o({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:(0,l.Opt)((0,l.ObjectNode)({id:o({validator:"resource",params:{pool:"item"}}),count:(0,l.Opt)((0,l.NumberNode)({integer:!0})),tag:(0,l.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:(0,l.Opt)((0,l.ObjectNode)({name:(0,l.Opt)(o()),type:(0,l.Opt)(o()),id:(0,l.Opt)(o())})),contents:(0,l.Opt)((0,l.Mod)((0,l.ObjectNode)({name:(0,l.Opt)(t("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:(0,l.Opt)(t("text_component_list"))};r.register("text_component_object",(0,l.Mod)((0,l.ChoiceNode)([{type:"text",match:a=>typeof a=="object",change:a=>({text:""}),priority:-1,node:(0,l.ObjectNode)(g({text:o()},n))},{type:"translation",match:a=>(a==null?void 0:a.translate)!==void 0,change:a=>({translate:""}),node:(0,l.ObjectNode)(g({translate:o(),with:(0,l.Opt)(t("text_component_list"))},n))},{type:"score",match:a=>(a==null?void 0:a.score)!==void 0,change:a=>({score:{}}),node:(0,l.ObjectNode)(g({score:(0,l.ObjectNode)({name:o({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:o({validator:"objective"}),value:(0,l.Opt)(o())})},n))},{type:"selector",match:a=>(a==null?void 0:a.selector)!==void 0,change:a=>({selector:""}),node:(0,l.ObjectNode)(g({selector:o({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:(0,l.Opt)(t("text_component"))},n))},{type:"keybind",match:a=>(a==null?void 0:a.keybind)!==void 0,change:a=>({keybind:""}),node:(0,l.ObjectNode)(g({keybind:o({enum:"keybind",additional:!0})},n))},{type:"nbt",match:a=>(a==null?void 0:a.nbt)!==void 0,change:a=>({nbt:""}),node:(0,l.ObjectNode)(g({nbt:o({validator:"nbt_path"}),block:(0,l.Opt)(o({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,l.Opt)(o({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,l.Opt)(o({validator:"resource",params:{pool:"$storage"}})),interpret:(0,l.Opt)((0,l.BooleanNode)()),separator:(0,l.Opt)(t("text_component"))},n))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),r.register("text_component_list",(0,l.Mod)((0,l.ListNode)(t("text_component")),{default:()=>[{text:""}]}))}ve.initTextComponentSchemas=ft;var Oe={},Fe={};(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.initBiomeSchemas=r.MobCategorySpawnSettings=void 0;const e=k,t=z;function o(d,n){const a=e.StringNode.bind(void 0,n);r.MobCategorySpawnSettings=(0,e.Mod)((0,e.ListNode)((0,e.ObjectNode)({type:a({validator:"resource",params:{pool:"entity_type"}}),weight:(0,e.NumberNode)({integer:!0}),minCount:(0,e.NumberNode)({integer:!0}),maxCount:(0,e.NumberNode)({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]}),d.register("biome",(0,e.Mod)((0,e.ObjectNode)({temperature:(0,e.NumberNode)(),downfall:(0,e.NumberNode)(),precipitation:a({enum:["none","rain","snow"]}),temperature_modifier:(0,e.Opt)(a({enum:["none","frozen"]})),category:a({enum:"biome_category"}),creature_spawn_probability:(0,e.Opt)((0,e.NumberNode)({min:0,max:1})),effects:(0,e.ObjectNode)({sky_color:(0,e.NumberNode)({color:!0}),fog_color:(0,e.NumberNode)({color:!0}),water_color:(0,e.NumberNode)({color:!0}),water_fog_color:(0,e.NumberNode)({color:!0}),grass_color:(0,e.Opt)((0,e.NumberNode)({color:!0})),foliage_color:(0,e.Opt)((0,e.NumberNode)({color:!0})),grass_color_modifier:(0,e.Opt)(a({enum:["none","dark_forest","swamp"]})),ambient_sound:(0,e.Opt)(a()),mood_sound:(0,e.Opt)((0,e.ObjectNode)({sound:a(),tick_delay:(0,e.NumberNode)({integer:!0}),block_search_extent:(0,e.NumberNode)({integer:!0}),offset:(0,e.NumberNode)()})),additions_sound:(0,e.Opt)((0,e.ObjectNode)({sound:a(),tick_chance:(0,e.NumberNode)({min:0,max:1})})),music:(0,e.Opt)((0,e.ObjectNode)({sound:a(),min_delay:(0,e.NumberNode)({integer:!0,min:0}),max_delay:(0,e.NumberNode)({integer:!0,min:0}),replace_current_music:(0,e.BooleanNode)()})),particle:(0,e.Opt)((0,e.ObjectNode)({options:(0,e.ObjectNode)({type:a()}),probability:(0,e.NumberNode)({min:0,max:1})}))}),spawners:(0,e.MapNode)(a({enum:"mob_category"}),r.MobCategorySpawnSettings),spawn_costs:(0,e.MapNode)(a({validator:"resource",params:{pool:"entity_type"}}),(0,e.Mod)((0,e.ObjectNode)({energy_budget:(0,e.NumberNode)(),charge:(0,e.NumberNode)()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:(0,e.MapNode)(a({enum:["air","liquid"]}),(0,e.Mod)((0,t.Tag)({resource:"$worldgen/configured_carver",inlineSchema:"configured_carver"}),{default:()=>["minecraft:cave"]})),features:(0,e.ListNode)((0,e.Mod)((0,t.Tag)({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"}),{category:()=>"predicate"}),{maxLength:11})},{context:"biome"}),{default:()=>({temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))}r.initBiomeSchemas=o})(Fe);var ke={};Object.defineProperty(ke,"__esModule",{value:!0});ke.initCarverSchemas=void 0;const P=k,K=z;function gt(r,e){const t=P.Reference.bind(void 0,r),o=P.StringNode.bind(void 0,e),d={vertical_rotation:(0,K.FloatProvider)(),shape:(0,P.ObjectNode)({distance_factor:(0,K.FloatProvider)(),thickness:(0,K.FloatProvider)(),width_smoothness:(0,P.NumberNode)({integer:!0,min:0}),horizontal_radius_factor:(0,K.FloatProvider)(),vertical_radius_default_factor:(0,P.NumberNode)(),vertical_radius_center_factor:(0,P.NumberNode)()})},n={horizontal_radius_multiplier:(0,K.FloatProvider)(),vertical_radius_multiplier:(0,K.FloatProvider)(),floor_level:(0,K.FloatProvider)({min:-1,max:1})};r.register("configured_carver",(0,P.Mod)((0,P.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/carver"}}),config:(0,P.ObjectNode)({probability:(0,P.NumberNode)({min:0,max:1}),y:t("height_provider"),yScale:(0,K.FloatProvider)(),lava_level:t("vertical_anchor"),debug_settings:(0,P.Opt)((0,P.ObjectNode)({debug_mode:(0,P.Opt)((0,P.BooleanNode)()),air_state:(0,P.Opt)(t("block_state")),water_state:(0,P.Opt)(t("block_state")),lava_state:(0,P.Opt)(t("block_state")),barrier_state:(0,P.Opt)(t("block_state"))})),[P.Switch]:["pop",{push:"type"}],[P.Case]:{"minecraft:canyon":d,"minecraft:cave":n,"minecraft:nether_cave":n}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))}ke.initCarverSchemas=gt;var we={};Object.defineProperty(we,"__esModule",{value:!0});we.initDecoratorSchemas=void 0;const L=k,ne=z;function bt(r,e){const t=L.Reference.bind(void 0,r),o=L.StringNode.bind(void 0,e);r.register("decorator",(0,L.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/placement_modifier_type"}}),[L.Switch]:[{push:"type"}],[L.Case]:{"minecraft:block_predicate_filter":{predicate:t("block_predicate_worldgen")},"minecraft:carving_mask":{step:o({enum:"generation_step"})},"minecraft:rarity_filter":{chance:(0,L.NumberNode)({integer:!0,min:0})},"minecraft:count":{count:(0,ne.IntProvider)({min:0,max:256})},"minecraft:count_on_every_layer":{count:(0,ne.IntProvider)({min:0,max:256})},"minecraft:noise_threshold_count":{noise_level:(0,L.NumberNode)(),below_noise:(0,L.NumberNode)({integer:!0}),above_noise:(0,L.NumberNode)({integer:!0})},"minecraft:noise_based_count":{noise_to_count_ratio:(0,L.NumberNode)({integer:!0}),noise_factor:(0,L.NumberNode)(),noise_offset:(0,L.Opt)((0,L.NumberNode)())},"minecraft:environment_scan":{direction_of_search:o({enum:["up","down"]}),max_steps:(0,L.NumberNode)({integer:!0,min:1,max:32}),target_condition:t("block_predicate_worldgen"),allowed_search_condition:(0,L.Opt)(t("block_predicate_worldgen"))},"minecraft:heightmap":{heightmap:o({enum:"heightmap_type"})},"minecraft:height_range":{height:t("height_provider")},"minecraft:random_offset":{xz_spread:(0,ne.IntProvider)({min:-16,max:16}),y_spread:(0,ne.IntProvider)({min:-16,max:16})},"minecraft:surface_relative_threshold_filter":{heightmap:o({enum:"heightmap_type"}),min_inclusive:(0,L.Opt)((0,L.NumberNode)({integer:!0})),max_inclusive:(0,L.Opt)((0,L.NumberNode)({integer:!0}))},"minecraft:surface_water_depth_filter":{max_water_depth:(0,L.NumberNode)({integer:!0})}}},{context:"decorator",category:"predicate"}))}we.initDecoratorSchemas=bt;var Be={};(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.initDensityFunctionSchemas=r.DensityFunction=void 0;const e=k;function t(o,d){const n=e.StringNode.bind(void 0,d),a=e.Reference.bind(void 0,o);r.DensityFunction=(0,e.Mod)((0,e.ChoiceNode)([{type:"number",node:(0,e.NumberNode)(),change:()=>0},{type:"string",priority:1,node:n({validator:"resource",params:{pool:"$worldgen/density_function"}}),change:()=>{}},{type:"object",node:a("density_function"),change:()=>({})}],{choiceContext:"density_function"}),{default:()=>0});const p=(0,e.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/noise"}}),change:()=>{}},{type:"object",node:a("noise_parameters")}],{choiceContext:"noise_parameters"}),w=(0,e.NumberNode)({min:-1e6,max:1e6}),m=(0,e.NumberNode)({integer:!0,min:-2032*2,max:2031*2});o.register("density_function",(0,e.Mod)((0,e.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/density_function_type"}}),[e.Switch]:[{push:"type"}],[e.Case]:{"minecraft:abs":{argument:r.DensityFunction},"minecraft:add":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:blend_density":{argument:r.DensityFunction},"minecraft:cache_2d":{argument:r.DensityFunction},"minecraft:cache_all_in_cell":{argument:r.DensityFunction},"minecraft:cache_once":{argument:r.DensityFunction},"minecraft:clamp":{input:r.DensityFunction,min:w,max:w},"minecraft:constant":{argument:(0,e.NumberNode)()},"minecraft:cube":{argument:r.DensityFunction},"minecraft:flat_cache":{argument:r.DensityFunction},"minecraft:half_negative":{argument:r.DensityFunction},"minecraft:interpolated":{argument:r.DensityFunction},"minecraft:max":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:min":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:mul":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:noise":{noise:p,xz_scale:(0,e.NumberNode)(),y_scale:(0,e.NumberNode)()},"minecraft:quarter_negative":{argument:r.DensityFunction},"minecraft:range_choice":{input:r.DensityFunction,min_inclusive:w,max_exclusive:w,when_in_range:r.DensityFunction,when_out_of_range:r.DensityFunction},"minecraft:shift":{argument:r.DensityFunction},"minecraft:shift_a":{argument:r.DensityFunction},"minecraft:shift_b":{argument:r.DensityFunction},"minecraft:shifted_noise":{noise:p,xz_scale:(0,e.NumberNode)(),y_scale:(0,e.NumberNode)(),shift_x:r.DensityFunction,shift_y:r.DensityFunction,shift_z:r.DensityFunction},"minecraft:slide":{argument:r.DensityFunction},"minecraft:spline":{spline:a("cubic_spline"),min_value:w,max_value:w},"minecraft:square":{argument:r.DensityFunction},"minecraft:squeeze":{argument:r.DensityFunction},"minecraft:terrain_shaper_spline":{spline:n({enum:["offset","factor","jaggedness"]}),min_value:w,max_value:w,continentalness:r.DensityFunction,erosion:r.DensityFunction,weirdness:r.DensityFunction},"minecraft:weird_scaled_sampler":{rarity_value_mapper:n({enum:["type_1","type_2"]}),noise:p,input:r.DensityFunction},"minecraft:y_clamped_gradient":{from_y:m,to_y:m,from_value:w,to_value:w}}},{context:"density_function",disableSwitchContext:!0}),{default:()=>({type:"minecraft:noise",noise:"minecraft:cave_entrance",xz_scale:.75,y_scale:.5})})),o.register("cubic_spline",(0,e.Mod)((0,e.ChoiceNode)([{type:"number",node:(0,e.NumberNode)()},{type:"object",node:(0,e.ObjectNode)({coordinate:r.DensityFunction,points:(0,e.ListNode)((0,e.ObjectNode)({location:(0,e.NumberNode)(),derivative:(0,e.NumberNode)(),value:a("cubic_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))}r.initDensityFunctionSchemas=t})(Be);var xe={},Y={};Object.defineProperty(Y,"__esModule",{value:!0});Y.initProcessorListSchemas=Y.Processors=void 0;const y=k;function Nt(r,e){const t=y.Reference.bind(void 0,r),o=y.StringNode.bind(void 0,e);Y.Processors=(0,y.ChoiceNode)([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:n=>{}},{type:"object",node:t("processor_list"),change:n=>({processors:[{processor_type:"minecraft:nop"}]})}]),r.register("processor_list",(0,y.Mod)((0,y.ObjectNode)({processors:(0,y.ListNode)(t("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"}}]}]})})),r.register("processor",(0,y.Mod)((0,y.ObjectNode)({processor_type:o({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[y.Switch]:[{push:"processor_type"}],[y.Case]:{"minecraft:block_age":{mossiness:(0,y.NumberNode)()},"minecraft:block_ignore":{blocks:(0,y.ListNode)(t("block_state"))},"minecraft:block_rot":{integrity:(0,y.NumberNode)({min:0,max:1})},"minecraft:gravity":{heightmap:o({enum:"heightmap_type"}),offset:(0,y.NumberNode)({integer:!0})},"minecraft:protected_blocks":{value:o({validator:"resource",params:{pool:"block",requireTag:!0}})},"minecraft:rule":{rules:(0,y.ListNode)(t("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"}}]})})),r.register("processor_rule",(0,y.Mod)((0,y.ObjectNode)({position_predicate:(0,y.Opt)(t("pos_rule_test")),location_predicate:t("rule_test"),input_predicate:t("rule_test"),output_state:t("block_state"),output_nbt:(0,y.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 d={min_dist:(0,y.Opt)((0,y.NumberNode)({min:0,max:255,integer:!0})),max_dist:(0,y.Opt)((0,y.NumberNode)({min:0,max:255,integer:!0})),min_chance:(0,y.Opt)((0,y.NumberNode)({min:0,max:1})),max_chance:(0,y.Opt)((0,y.NumberNode)({min:0,max:1}))};r.register("pos_rule_test",(0,y.ObjectNode)({predicate_type:o({validator:"resource",params:{pool:"pos_rule_test"}}),[y.Switch]:[{push:"predicate_type"}],[y.Case]:{"minecraft:axis_aligned_linear_pos":g({axis:o({enum:["x","y","z"]})},d),"minecraft:linear_pos":d}},{context:"pos_rule_test",disableSwitchContext:!0})),r.register("rule_test",(0,y.ObjectNode)({predicate_type:o({validator:"resource",params:{pool:"rule_test"}}),[y.Switch]:[{push:"predicate_type"}],[y.Case]:{"minecraft:block_match":{block:o({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:t("block_state")},"minecraft:random_block_match":{block:o({validator:"resource",params:{pool:"block"}}),probability:(0,y.NumberNode)({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:t("block_state"),probability:(0,y.NumberNode)({min:0,max:1})},"minecraft:tag_match":{tag:o({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))}Y.initProcessorListSchemas=Nt;Object.defineProperty(xe,"__esModule",{value:!0});xe.initFeatureSchemas=void 0;const i=k,h=z,Te=Y;function ht(r,e){const t=i.Reference.bind(void 0,r),o=i.StringNode.bind(void 0,e),d=(0,i.ChoiceNode)([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:t("configured_feature")}],{choiceContext:"feature"}),n=(0,i.ChoiceNode)([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},{type:"object",node:t("placed_feature")}],{choiceContext:"placed_feature"}),a={tries:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1})),xz_spread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),y_spread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),feature:n},p={state:t("block_state"),radius:(0,h.IntProvider)({min:0,max:8}),half_height:(0,i.NumberNode)({integer:!0,min:0,max:4}),targets:(0,i.ListNode)(t("block_state"))},w={cap_provider:t("block_state_provider"),stem_provider:t("block_state_provider"),foliage_radius:(0,i.Opt)((0,i.NumberNode)({integer:!0}))},m=(0,i.ObjectNode)({target:t("rule_test"),state:t("block_state")}),f={size:(0,i.NumberNode)({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:(0,i.NumberNode)({min:0,max:1}),targets:(0,i.ListNode)(m)},j={surface:o({enum:"cave_surface"}),depth:(0,h.IntProvider)({min:1,max:128}),vertical_range:(0,i.NumberNode)({integer:!0,min:1,max:256}),extra_bottom_block_chance:(0,i.NumberNode)({min:0,max:1}),extra_edge_column_chance:(0,i.NumberNode)({min:0,max:1}),vegetation_chance:(0,i.NumberNode)({min:0,max:1}),xz_radius:(0,h.IntProvider)(),replaceable:o({validator:"resource",params:{pool:"block",requireTag:!0}}),ground_state:t("block_state_provider"),vegetation_feature:n};r.register("configured_feature",(0,i.Mod)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/feature"}}),config:(0,i.ObjectNode)({[i.Switch]:["pop",{push:"type"}],[i.Case]:{"minecraft:bamboo":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:basalt_columns":{reach:(0,h.IntProvider)({min:0,max:3}),height:(0,h.IntProvider)({min:1,max:10})},"minecraft:block_column":{direction:o({enum:["up","down","north","east","south","west"]}),allowed_placement:t("block_predicate_worldgen"),prioritize_tip:(0,i.BooleanNode)(),layers:(0,i.ListNode)((0,i.ObjectNode)({height:(0,h.IntProvider)({min:0}),provider:t("block_state_provider")}))},"minecraft:block_pile":{state_provider:t("block_state_provider")},"minecraft:delta_feature":{contents:t("block_state"),rim:t("block_state"),size:(0,h.IntProvider)({min:0,max:16}),rim_size:(0,h.IntProvider)({min:0,max:16})},"minecraft:disk":p,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:(0,i.NumberNode)({integer:!0,min:1,max:512}),height:(0,h.IntProvider)({min:0,max:128}),radius:(0,h.IntProvider)({min:0,max:128}),max_stalagmite_stalactite_height_diff:(0,i.NumberNode)({integer:!0,min:0,max:64}),height_deviation:(0,i.NumberNode)({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:(0,h.IntProvider)({min:0,max:128}),density:(0,h.FloatProvider)({min:0,max:2}),wetness:(0,h.FloatProvider)({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:(0,i.NumberNode)({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:(0,i.NumberNode)({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:(0,i.NumberNode)({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:(0,i.BooleanNode)(),exit:(0,i.Opt)(t("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:(0,i.Opt)((0,i.BooleanNode)()),crystal_beam_target:(0,i.Opt)(t("block_pos")),spikes:(0,i.ListNode)((0,i.ObjectNode)({centerX:(0,i.Opt)((0,i.NumberNode)({integer:!0})),centerZ:(0,i.Opt)((0,i.NumberNode)({integer:!0})),radius:(0,i.Opt)((0,i.NumberNode)({integer:!0})),height:(0,i.Opt)((0,i.NumberNode)({integer:!0})),guarded:(0,i.Opt)((0,i.BooleanNode)())}))},"minecraft:fill_layer":{state:t("block_state"),height:(0,i.NumberNode)({integer:!0,min:0,max:255})},"minecraft:flower":a,"minecraft:forest_rock":{state:t("block_state")},"minecraft:fossil":{max_empty_corners_allowed:(0,i.NumberNode)({integer:!0,min:0,max:7}),fossil_structures:(0,i.ListNode)(o({validator:"resource",params:{pool:"$structure"}})),overlay_structures:(0,i.ListNode)(o({validator:"resource",params:{pool:"$structure"}})),fossil_processors:Te.Processors,overlay_processors:Te.Processors},"minecraft:geode":{blocks:(0,i.ObjectNode)({filling_provider:t("block_state_provider"),inner_layer_provider:t("block_state_provider"),alternate_inner_layer_provider:t("block_state_provider"),middle_layer_provider:t("block_state_provider"),outer_layer_provider:t("block_state_provider"),inner_placements:(0,i.ListNode)(t("block_state")),cannot_replace:o({validator:"resource",params:{pool:"block",requireTag:!0}}),invalid_blocks:o({validator:"resource",params:{pool:"block",requireTag:!0}})}),layers:(0,i.ObjectNode)({filling:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),inner_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),middle_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),outer_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50}))}),crack:(0,i.ObjectNode)({generate_crack_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),base_crack_size:(0,i.Opt)((0,i.NumberNode)({min:0,max:5})),crack_point_offset:(0,i.Opt)((0,i.NumberNode)({min:0,max:10}))}),noise_multiplier:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),use_potential_placements_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),use_alternate_layer0_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),placements_require_layer0_alternate:(0,i.Opt)((0,i.BooleanNode)()),outer_wall_distance:(0,i.Opt)((0,h.IntProvider)({min:1,max:20})),distribution_points:(0,i.Opt)((0,h.IntProvider)({min:1,max:20})),point_offset:(0,i.Opt)((0,h.IntProvider)({min:0,max:10})),min_gen_offset:(0,i.Opt)((0,i.NumberNode)({integer:!0})),max_gen_offset:(0,i.Opt)((0,i.NumberNode)({integer:!0})),invalid_blocks_threshold:(0,i.NumberNode)({integer:!0})},"minecraft:glow_lichen":{search_range:(0,i.Opt)((0,i.NumberNode)({min:1,max:64,integer:!0})),chance_of_spreading:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),can_place_on_floor:(0,i.Opt)((0,i.BooleanNode)()),can_place_on_ceiling:(0,i.Opt)((0,i.BooleanNode)()),can_place_on_wall:(0,i.Opt)((0,i.BooleanNode)()),can_be_placed_on:(0,h.Tag)({resource:"block"})},"minecraft:huge_brown_mushroom":w,"minecraft:huge_fungus":{hat_state:t("block_state"),decor_state:t("block_state"),stem_state:t("block_state"),valid_base_block:t("block_state"),planted:(0,i.Opt)((0,i.BooleanNode)())},"minecraft:huge_red_mushroom":w,"minecraft:ice_patch":p,"minecraft:iceberg":{state:t("block_state")},"minecraft:lake":{fluid:t("block_state_provider"),barrier:t("block_state_provider")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1,max:512})),column_radius:(0,h.IntProvider)({min:0,max:60}),height_scale:(0,h.FloatProvider)({min:0,max:20}),max_column_radius_to_cave_height_ratio:(0,i.NumberNode)({min:0,max:1}),stalactite_bluntness:(0,h.FloatProvider)({min:.1,max:10}),stalagmite_bluntness:(0,h.FloatProvider)({min:.1,max:10}),wind_speed:(0,h.FloatProvider)({min:0,max:2}),min_radius_for_wind:(0,i.NumberNode)({integer:!0,min:0,max:100}),min_bluntness_for_wind:(0,i.NumberNode)({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:t("block_state_provider"),spread_width:(0,i.NumberNode)({integer:!0,min:1}),spread_height:(0,i.NumberNode)({integer:!0,min:1})},"minecraft:netherrack_replace_blobs":{state:t("block_state"),target:t("block_state"),radius:(0,h.IntProvider)({min:0,max:12})},"minecraft:no_bonemeal_flower":a,"minecraft:ore":f,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_directional_spread:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_spread_radius2:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_spread_radius3:(0,i.Opt)((0,i.NumberNode)({min:0,max:1}))},"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:n,feature_true:n},"minecraft:random_selector":{features:(0,i.ListNode)((0,i.ObjectNode)({chance:(0,i.NumberNode)({min:0,max:1}),feature:n})),default:n},"minecraft:replace_single_block":{targets:(0,i.ListNode)(m)},"minecraft:root_system":{required_vertical_space_for_tree:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_radius:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_placement_attempts:(0,i.NumberNode)({integer:!0,min:1,max:256}),root_column_max_height:(0,i.NumberNode)({integer:!0,min:1,max:4096}),hanging_root_radius:(0,i.NumberNode)({integer:!0,min:1,max:64}),hanging_roots_vertical_span:(0,i.NumberNode)({integer:!0,min:0,max:16}),hanging_root_placement_attempts:(0,i.NumberNode)({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_replaceable:o({validator:"resource",params:{pool:"block",requireTag:!0}}),root_state_provider:t("block_state_provider"),hanging_root_state_provider:t("block_state_provider"),allowed_tree_position:t("block_predicate_worldgen"),feature:n},"minecraft:scattered_ore":f,"minecraft:sea_pickle":{count:(0,h.IntProvider)({min:0,max:256})},"minecraft:seagrass":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:simple_block":{to_place:t("block_state_provider")},"minecraft:simple_random_selector":{features:(0,h.Tag)({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"})},"minecraft:spring_feature":{state:t("fluid_state"),rock_count:(0,i.NumberNode)({integer:!0}),hole_count:(0,i.NumberNode)({integer:!0}),requires_block_below:(0,i.BooleanNode)(),valid_blocks:(0,h.Tag)({resource:"block"})},"minecraft:tree":{ignore_vines:(0,i.Opt)((0,i.BooleanNode)()),force_dirt:(0,i.Opt)((0,i.BooleanNode)()),minimum_size:t("feature_size"),dirt_provider:t("block_state_provider"),trunk_provider:t("block_state_provider"),foliage_provider:t("block_state_provider"),trunk_placer:(0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:(0,i.NumberNode)({integer:!0,min:0,max:32}),height_rand_a:(0,i.NumberNode)({integer:!0,min:0,max:24}),height_rand_b:(0,i.NumberNode)({integer:!0,min:0,max:24}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:bending_trunk_placer":{bend_length:(0,h.IntProvider)({min:1,max:64}),min_height_for_leaves:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:(0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:(0,h.IntProvider)({min:0,max:16}),offset:(0,h.IntProvider)({min:0,max:16}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:blob_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:(0,h.IntProvider)({min:0,max:24})},"minecraft:pine_foliage_placer":{height:(0,h.IntProvider)({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:(0,h.IntProvider)({min:1,max:512}),leaf_placement_attempts:(0,i.NumberNode)({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:(0,h.IntProvider)({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:(0,i.ListNode)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:alter_ground":{provider:t("block_state_provider")},"minecraft:beehive":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:cocoa":{probability:(0,i.NumberNode)({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:twisting_vines":{spread_width:(0,i.NumberNode)({integer:!0,min:1}),spread_height:(0,i.NumberNode)({integer:!0,min:1}),max_height:(0,i.NumberNode)({integer:!0,min:1})},"minecraft:underwater_magma":{floor_search_range:(0,i.NumberNode)({integer:!0,min:0,max:512}),placement_radius_around_floor:(0,i.NumberNode)({integer:!0,min:0,max:64}),placement_probability_per_valid_position:(0,i.NumberNode)({min:0,max:1})},"minecraft:vegetation_patch":j,"minecraft:waterlogged_vegetation_patch":j}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:tree",config:{minimum_size:{type:"minecraft:two_layers_feature_size"},trunk_placer:{type:"minecraft:straight_trunk_placer",base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{type:"minecraft:blob_foliage_placer",radius:2,offset:0,height:3}}})})),r.register("placed_feature",(0,i.Mod)((0,i.ObjectNode)({feature:d,placement:(0,i.ListNode)(t("decorator"))},{context:"placed_feature"}),{default:()=>({feature:"minecraft:oak",placement:[{type:"minecraft:count",count:4},{type:"minecraft:in_square"},{type:"minecraft:heightmap",heightmap:"OCEAN_FLOOR"}]})})),r.register("feature_size",(0,i.Mod)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:(0,i.Opt)((0,i.NumberNode)({min:0,max:80})),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:two_layers_feature_size":{limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:81})),lower_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:80})),upper_limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:80})),lower_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),middle_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const v={seed:(0,i.NumberNode)({integer:!0}),noise:t("noise_parameters"),scale:(0,i.Mod)((0,i.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1})};r.register("block_state_provider",(0,i.Mod)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:dual_noise_provider":A(g({},v),{variety:(0,h.InclusiveRange)({integer:!0,min:1,max:64}),slow_noise:t("noise_parameters"),slow_scale:(0,i.Mod)((0,i.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1}),states:(0,i.ListNode)(t("block_state"))}),"minecraft:noise_threshold_provider":A(g({},v),{threshold:(0,i.NumberNode)({min:-1,max:1}),high_chance:(0,i.NumberNode)({min:0,max:1}),default_state:t("block_state"),low_states:(0,i.ListNode)(t("block_state")),high_states:(0,i.ListNode)(t("block_state"))}),"minecraft:noise_provider":A(g({},v),{states:(0,i.ListNode)(t("block_state"))}),"minecraft:randomized_int_state_provider":{property:o(),values:(0,h.IntProvider)(),source:t("block_state_provider")},"minecraft:rotated_block_provider":{state:t("block_state")},"minecraft:simple_state_provider":{state:t("block_state")},"minecraft:weighted_state_provider":{entries:(0,i.ListNode)((0,i.Mod)((0,i.ObjectNode)({weight:(0,i.NumberNode)({integer:!0,min:1}),data:t("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})}));const S={offset:(0,i.Opt)((0,i.ListNode)((0,i.NumberNode)({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))};r.register("block_predicate_worldgen",(0,i.Mod)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"block_predicate_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:all_of":{predicates:(0,i.ListNode)(t("block_predicate_worldgen"))},"minecraft:any_of":{predicates:(0,i.ListNode)(t("block_predicate_worldgen"))},"minecraft:has_sturdy_face":A(g({},S),{direction:o({enum:"direction"})}),"minecraft:inside_world_bounds":g({},S),"minecraft:matching_block_tag":A(g({},S),{tag:o({validator:"resource",params:{pool:"$tag/block"}})}),"minecraft:matching_blocks":A(g({},S),{blocks:(0,h.Tag)({resource:"block"})}),"minecraft:matching_fluids":A(g({},S),{fluids:(0,h.Tag)({resource:"fluid"})}),"minecraft:not":{predicate:t("block_predicate_worldgen")},"minecraft:would_survive":A(g({},S),{state:t("block_state")})}},{context:"block_predicate"}),{default:()=>({type:"minecraft:true"})}))}xe.initFeatureSchemas=ht;var Se={};Object.defineProperty(Se,"__esModule",{value:!0});Se.initNoiseSettingsSchemas=void 0;const N=k,yt=z,D=Be;function vt(r,e){const t=N.Reference.bind(void 0,r),o=N.StringNode.bind(void 0,e);r.register("noise_settings",(0,N.Mod)((0,N.ObjectNode)({sea_level:(0,N.NumberNode)({integer:!0}),disable_mob_generation:(0,N.BooleanNode)(),aquifers_enabled:(0,N.BooleanNode)(),ore_veins_enabled:(0,N.BooleanNode)(),legacy_random_source:(0,N.BooleanNode)(),default_block:t("block_state"),default_fluid:t("block_state"),noise:(0,N.ObjectNode)({min_y:(0,N.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,N.NumberNode)({integer:!0,min:0,max:4096}),size_horizontal:(0,N.NumberNode)({integer:!0}),size_vertical:(0,N.NumberNode)({integer:!0}),sampling:(0,N.ObjectNode)({xz_scale:(0,N.NumberNode)(),y_scale:(0,N.NumberNode)(),xz_factor:(0,N.NumberNode)(),y_factor:(0,N.NumberNode)()}),bottom_slide:t("noise_slider"),top_slide:t("noise_slider"),terrain_shaper:t("terrain_shaper")}),noise_router:(0,N.ObjectNode)({barrier:D.DensityFunction,fluid_level_floodedness:D.DensityFunction,fluid_level_spread:D.DensityFunction,lava:D.DensityFunction,temperature:D.DensityFunction,vegetation:D.DensityFunction,continents:D.DensityFunction,erosion:D.DensityFunction,depth:D.DensityFunction,ridges:D.DensityFunction,initial_density_without_jaggedness:D.DensityFunction,final_density:D.DensityFunction,vein_toggle:D.DensityFunction,vein_ridged:D.DensityFunction,vein_gap:D.DensityFunction}),surface_rule:t("material_rule")},{context:"noise_settings"}),d=>({default:()=>yt.DefaultNoiseSettings,validate:(n,a,p,w)=>{var m,f,j,v;return a=d.validate(n,a,p,w),((m=a==null?void 0:a.noise)===null||m===void 0?void 0:m.min_y)+((f=a==null?void 0:a.noise)===null||f===void 0?void 0:f.height)>2047&&p.add(n.push("noise").push("height"),"error.min_y_plus_height",2047),((j=a==null?void 0:a.noise)===null||j===void 0?void 0:j.height)%16!==0&&p.add(n.push("noise").push("height"),"error.height_multiple",16),((v=a==null?void 0:a.noise)===null||v===void 0?void 0:v.min_y)%16!==0&&p.add(n.push("noise").push("min_y"),"error.min_y_multiple",16),a}}))),r.register("noise_slider",(0,N.ObjectNode)({target:(0,N.NumberNode)(),size:(0,N.NumberNode)({integer:!0,min:0}),offset:(0,N.NumberNode)({integer:!0})})),r.register("generator_layer",(0,N.Mod)((0,N.ObjectNode)({block:o({validator:"resource",params:{pool:"block"}}),height:(0,N.NumberNode)({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})})),r.register("terrain_shaper",(0,N.Mod)((0,N.ObjectNode)({offset:t("terrain_spline"),factor:t("terrain_spline"),jaggedness:t("terrain_spline")},{context:"terrain_shaper"}),{default:()=>({offset:0,factor:0,jaggedness:0})})),r.register("terrain_spline",(0,N.Mod)((0,N.ChoiceNode)([{type:"number",node:(0,N.NumberNode)()},{type:"object",node:(0,N.ObjectNode)({coordinate:(0,N.Mod)(o({enum:["continents","erosion","weirdness","ridges"]}),{default:()=>"continents"}),points:(0,N.ListNode)((0,N.ObjectNode)({location:(0,N.NumberNode)(),derivative:(0,N.NumberNode)(),value:t("terrain_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))}Se.initNoiseSettingsSchemas=vt;var je={};Object.defineProperty(je,"__esModule",{value:!0});je.initStructureFeatureSchemas=void 0;const F=k,Ot=z,kt=Fe;function wt(r,e){const t=F.StringNode.bind(void 0,e),o=F.Reference.bind(void 0,r),d={start_pool:t({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:(0,F.NumberNode)({integer:!0})};r.register("configured_structure_feature",(0,F.Mod)((0,F.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/structure_feature"}}),biomes:(0,Ot.Tag)({resource:"$worldgen/biome"}),adapt_noise:(0,F.Opt)((0,F.BooleanNode)()),spawn_overrides:(0,F.MapNode)(t({enum:"mob_category"}),(0,F.ObjectNode)({bounding_box:t({enum:["piece","full"]}),spawns:kt.MobCategorySpawnSettings})),config:(0,F.ObjectNode)({[F.Switch]:["pop",{push:"type"}],[F.Case]:{"minecraft:bastion_remnant":d,"minecraft:buried_treasure":{probability:(0,F.NumberNode)({min:0,max:1})},"minecraft:mineshaft":{type:t({enum:["normal","mesa"]}),probability:(0,F.NumberNode)({min:0,max:1})},"minecraft:nether_fossil":{height:o("height_provider")},"minecraft:ocean_ruin":{biome_temp:t({enum:["cold","warm"]}),large_probability:(0,F.NumberNode)({min:0,max:1}),cluster_probability:(0,F.NumberNode)({min:0,max:1})},"minecraft:pillager_outpost":d,"minecraft:ruined_portal":{portal_type:t({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:(0,F.Opt)((0,F.BooleanNode)())},"minecraft:village":d}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))}je.initStructureFeatureSchemas=wt;var Ce={};Object.defineProperty(Ce,"__esModule",{value:!0});Ce.initStructureSetSchemas=void 0;const M=k,xt=z;function St(r,e){const t=M.StringNode.bind(void 0,e),o=M.Reference.bind(void 0,r);r.register("structure_set",(0,M.ObjectNode)({structures:(0,M.ListNode)((0,M.ObjectNode)({structure:(0,xt.Tag)({resource:"$worldgen/configured_structure_feature"}),weight:(0,M.NumberNode)({integer:!0,min:1})})),placement:o("structure_placement")},{context:"structure_set"})),r.register("structure_placement",(0,M.Mod)((0,M.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/structure_placement"}}),[M.Switch]:[{push:"type"}],[M.Case]:{"minecraft:concentric_rings":{distance:(0,M.NumberNode)({integer:!0,min:0,max:1023}),spread:(0,M.NumberNode)({integer:!0,min:0,max:1023}),count:(0,M.NumberNode)({integer:!0,min:1,max:4095})},"minecraft:random_spread":{spread_type:(0,M.Opt)(t({enum:["linear","triangular"]})),spacing:(0,M.NumberNode)({integer:!0,min:0,max:4096}),separation:(0,M.Mod)((0,M.NumberNode)({integer:!0,min:0,max:4096}),d=>({validate:(n,a,p,w)=>(n.pop().push("spacing").get()<=a&&p.add(n,"error.separation_smaller_spacing"),d.validate(n,a,p,w))})),salt:(0,M.NumberNode)({integer:!0,min:0}),locate_offset:(0,M.Opt)((0,M.ListNode)((0,M.NumberNode)({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))}}},{context:"structure_placement"}),{default:()=>({type:"minecraft:random_spread",spacing:10,separation:5,salt:Math.floor(Math.random()*2147483647)})}))}Ce.initStructureSetSchemas=St;var Me={};Object.defineProperty(Me,"__esModule",{value:!0});Me.initSurfaceRuleSchemas=void 0;const C=k;function jt(r,e){const t=C.StringNode.bind(void 0,e),o=C.Reference.bind(void 0,r);r.register("material_rule",(0,C.Mod)((0,C.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/material_rule"}}),[C.Switch]:[{push:"type"}],[C.Case]:{"minecraft:block":{result_state:o("block_state")},"minecraft:condition":{if_true:o("material_condition"),then_run:o("material_rule")},"minecraft:sequence":{sequence:(0,C.ListNode)(o("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),r.register("material_condition",(0,C.Mod)((0,C.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/material_condition"}}),[C.Switch]:[{push:"type"}],[C.Case]:{"minecraft:biome":{biome_is:(0,C.ListNode)(t({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:t({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:(0,C.NumberNode)(),max_threshold:(0,C.NumberNode)()},"minecraft:not":{invert:o("material_condition")},"minecraft:stone_depth":{offset:(0,C.NumberNode)({integer:!0}),surface_type:t({enum:"cave_surface"}),add_surface_depth:(0,C.BooleanNode)(),secondary_depth_range:(0,C.NumberNode)({integer:!0})},"minecraft:vertical_gradient":{random_name:t(),true_at_and_below:o("vertical_anchor"),false_at_and_above:o("vertical_anchor")},"minecraft:water":{offset:(0,C.NumberNode)({integer:!0}),surface_depth_multiplier:(0,C.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,C.BooleanNode)()},"minecraft:y_above":{anchor:o("vertical_anchor"),surface_depth_multiplier:(0,C.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,C.BooleanNode)()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))}Me.initSurfaceRuleSchemas=jt;var Pe={};Object.defineProperty(Pe,"__esModule",{value:!0});Pe.initTemplatePoolSchemas=void 0;const R=k,qe=Y;function Ct(r,e){const t=R.Reference.bind(void 0,r),o=R.StringNode.bind(void 0,e);r.register("template_pool",(0,R.Mod)((0,R.ObjectNode)({name:o(),fallback:o(),elements:(0,R.ListNode)(t("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"}}]})})),r.register("template_weighted_element",(0,R.Mod)((0,R.ObjectNode)({weight:(0,R.NumberNode)({integer:!0,min:1}),element:t("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),r.register("template_element",(0,R.Mod)((0,R.ObjectNode)({element_type:o({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:o({enum:["rigid","terrain_matching"]}),[R.Switch]:[{push:"element_type"}],[R.Case]:{"minecraft:feature_pool_element":{feature:o({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},"minecraft:legacy_single_pool_element":{location:o({validator:"resource",params:{pool:"$structure"}}),processors:qe.Processors},"minecraft:list_pool_element":{elements:(0,R.ListNode)(t("template_element"))},"minecraft:single_pool_element":{location:o({validator:"resource",params:{pool:"$structure"}}),processors:qe.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))}Pe.initTemplatePoolSchemas=Ct;Object.defineProperty(Oe,"__esModule",{value:!0});Oe.initWorldgenSchemas=void 0;const Mt=Fe,Pt=ke,Lt=we,$t=Be,Ft=xe,Bt=Se,Dt=Y,zt=je,Rt=Ce,Tt=Me,qt=Pe;function It(r,e){(0,Dt.initProcessorListSchemas)(r,e),(0,$t.initDensityFunctionSchemas)(r,e),(0,Mt.initBiomeSchemas)(r,e),(0,Pt.initCarverSchemas)(r,e),(0,Lt.initDecoratorSchemas)(r,e),(0,Ft.initFeatureSchemas)(r,e),(0,Bt.initNoiseSettingsSchemas)(r,e),(0,zt.initStructureFeatureSchemas)(r,e),(0,Rt.initStructureSetSchemas)(r,e),(0,Tt.initSurfaceRuleSchemas)(r,e),(0,qt.initTemplatePoolSchemas)(r,e)}Oe.initWorldgenSchemas=It;var Le={};Object.defineProperty(Le,"__esModule",{value:!0});Le.initWorldSettingsSchemas=void 0;const X=k;function At(r,e){const t=X.Reference.bind(void 0,r),o=X.StringNode.bind(void 0,e);r.register("world_settings",(0,X.Mod)((0,X.ObjectNode)({generate_features:(0,X.BooleanNode)(),bonus_chest:(0,X.BooleanNode)(),seed:(0,X.NumberNode)({integer:!0}),dimensions:(0,X.MapNode)(o({validator:"resource",params:{pool:"$dimension"}}),t("dimension"))},{context:"world_settings"}),{default:()=>{const d=Math.floor(Math.random()*4294967296)-2147483648;return{generate_features:!0,bonus_chest:!1,seed:d,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:overworld"},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:nether"},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:the_end",seed:d},settings:"minecraft:end"}}}}}}))}Le.initWorldSettingsSchemas=At;Object.defineProperty(ce,"__esModule",{value:!0});ce.initSchemas=void 0;const Et=de,Wt=se,Ut=z,Vt=_e,Gt=ue,Ht=pe,Kt=fe,Xt=ge,Yt=be,Zt=Ne,Jt=he,Qt=ye,er=ve,tr=Oe,rr=Le;function or(r,e){(0,Ut.initCommonSchemas)(r,e),(0,Et.initAdvancementSchemas)(r,e),(0,Wt.initAssetsSchemas)(r,e),(0,Vt.initConditionSchemas)(r,e),(0,Ht.initDimensionTypeSchemas)(r,e),(0,Gt.initDimensionSchemas)(r,e),(0,Kt.initItemModifierSchemas)(r,e),(0,Xt.initLootTableSchemas)(r,e),(0,Yt.initPackMcmetaSchemas)(r,e),(0,Zt.initPredicatesSchemas)(r,e),(0,Jt.initRecipeSchemas)(r,e),(0,Qt.initTagsSchemas)(r,e),(0,er.initTextComponentSchemas)(r,e),(0,tr.initWorldgenSchemas)(r,e),(0,rr.initWorldSettingsSchemas)(r,e)}ce.initSchemas=or;var ir=re&&re.__createBinding||(Object.create?function(r,e,t,o){o===void 0&&(o=t);var d=Object.getOwnPropertyDescriptor(e,t);(!d||("get"in d?!e.__esModule:d.writable||d.configurable))&&(d={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,o,d)}:function(r,e,t,o){o===void 0&&(o=t),r[o]=e[t]}),nr=re&&re.__setModuleDefault||(Object.create?function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}:function(r,e){r.default=e}),ar=re&&re.__importStar||function(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t in r)t!=="default"&&Object.prototype.hasOwnProperty.call(r,t)&&ir(e,r,t);return nr(e,r),e};Object.defineProperty(G,"__esModule",{value:!0});var Ie=G.getSchemas=We=G.getCollections=Ee=G.lootContext=void 0;const Ae=k,cr=ae,dr=ce;var Ee=G.lootContext=ar(T);function sr(){const r=new Ae.CollectionRegistry;return(0,cr.initCollections)(r),r}var We=G.getCollections=sr;function lr(r){const e=new Ae.SchemaRegistry;return(0,dr.initSchemas)(e,r),e}Ie=G.getSchemas=lr;var pr=Xe({__proto__:null,get getSchemas(){return Ie},get getCollections(){return We},get lootContext(){return Ee},default:G},[G]);export{pr as i}; +//# sourceMappingURL=index.e47e678b.js.map diff --git a/assets/index.636ef3ff.js.map b/assets/index.e47e678b.js.map similarity index 99% rename from assets/index.636ef3ff.js.map rename to assets/index.e47e678b.js.map index 9b60f5e9..2f065496 100644 --- a/assets/index.636ef3ff.js.map +++ b/assets/index.e47e678b.js.map @@ -1 +1 @@ -{"version":3,"file":"index.636ef3ff.js","sources":["../../node_modules/@mcschema/java-1.18.2/lib/Collections.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.18.2/lib/LootContext.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/DensityFunction.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/StructureSet.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/SurfaceRule.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/index.js","../../node_modules/@mcschema/java-1.18.2/lib/index.js"],"sourcesContent":["\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:fall_from_height',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:lightning_strike',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:ride_entity_in_lava',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:started_riding',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:using_item',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'killer',\r\n 'direct_killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mountain',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end',\r\n 'underground'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n collections.register('banner_pattern', [\r\n 'base',\r\n 'square_bottom_left',\r\n 'square_bottom_right',\r\n 'square_top_left',\r\n 'square_top_right',\r\n 'stripe_bottom',\r\n 'stripe_top',\r\n 'stripe_left',\r\n 'stripe_right',\r\n 'stripe_center',\r\n 'stripe_middle',\r\n 'stripe_downright',\r\n 'stripe_downleft',\r\n 'small_stripes',\r\n 'cross',\r\n 'straight_cross',\r\n 'triangle_bottom',\r\n 'triangle_top',\r\n 'triangles_bottom',\r\n 'triangles_top',\r\n 'diagonal_left',\r\n 'diagonal_up_right',\r\n 'diagonal_up_left',\r\n 'diagonal_right',\r\n 'circle',\r\n 'rhombus',\r\n 'half_vertical',\r\n 'half_horizontal',\r\n 'half_vertical_right',\r\n 'half_horizontal_bottom',\r\n 'border',\r\n 'curly_border',\r\n 'gradient',\r\n 'gradient_up',\r\n 'bricks',\r\n 'globe',\r\n 'creeper',\r\n 'skull',\r\n 'flower',\r\n 'mojang',\r\n 'piglin'\r\n ]);\r\n collections.register('dye_color', [\r\n 'white',\r\n 'orange',\r\n 'magenta',\r\n 'light_blue',\r\n 'yellow',\r\n 'lime',\r\n 'pink',\r\n 'gray',\r\n 'light_gray',\r\n 'cyan',\r\n 'purple',\r\n 'blue',\r\n 'brown',\r\n 'green',\r\n 'red',\r\n 'black'\r\n ]);\r\n collections.register('cave_surface', [\r\n 'floor',\r\n 'ceiling'\r\n ]);\r\n collections.register('direction', [\r\n 'down',\r\n 'up',\r\n 'north',\r\n 'east',\r\n 'south',\r\n 'west'\r\n ]);\r\n collections.register('axis', [\r\n 'x',\r\n 'y',\r\n 'z'\r\n ]);\r\n collections.register('display_position', [\r\n 'firstperson_righthand',\r\n 'firstperson_lefthand',\r\n 'thirdperson_righthand',\r\n 'thirdperson_lefthand',\r\n 'gui',\r\n 'head',\r\n 'ground',\r\n 'fixed'\r\n ]);\r\n collections.register('gui_light', [\r\n 'front',\r\n 'side'\r\n ]);\r\n collections.register('item_model_predicates', [\r\n 'angle',\r\n 'blocking',\r\n 'broken',\r\n 'cast',\r\n 'charged',\r\n 'cooldown',\r\n 'custom_model_data',\r\n 'damage',\r\n 'damaged',\r\n 'firework',\r\n 'lefthanded',\r\n 'pull',\r\n 'pulling',\r\n 'throwing',\r\n 'time'\r\n ]);\r\n collections.register('mob_category', [\r\n 'monster',\r\n 'creature',\r\n 'ambient',\r\n 'axolotls',\r\n 'underground_water_creature',\r\n 'water_creature',\r\n 'water_ambient',\r\n 'misc',\r\n ]);\r\n collections.register('cat_texture', [\r\n 'textures/entity/cat/tabby.png',\r\n 'textures/entity/cat/black.png',\r\n 'textures/entity/cat/red.png',\r\n 'textures/entity/cat/siamese.png',\r\n 'textures/entity/cat/british_shorthair.png',\r\n 'textures/entity/cat/calico.png',\r\n 'textures/entity/cat/persian.png',\r\n 'textures/entity/cat/ragdoll.png',\r\n 'textures/entity/cat/white.png',\r\n 'textures/entity/cat/jellie.png',\r\n 'textures/entity/cat/all_black.png'\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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n player: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, 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: (0, 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: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: (0, core_1.Opt)(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:fall_from_height': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: (0, 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: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: (0, 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: (0, 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: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, 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: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: (0, core_1.Opt)(Reference('float_bounds'))\r\n },\r\n 'minecraft:used_totem': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, core_1.ObjectNode)({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, core_1.NumberNode)()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, core_1.MapNode)(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, core_1.Opt)(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, core_1.MapNode)(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n OR: (0, core_1.ListNode)(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, Model_1.initModelSchemas)(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.Tag = exports.InclusiveRange = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: '#minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nexports.DefaultNoiseSettings = {\r\n sea_level: 63,\r\n ore_veins_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n legacy_random_source: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => (0, core_1.Opt)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer })),\r\n max: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)(Reference('number_provider')),\r\n max: (0, core_1.Opt)(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: (0, 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] = (0, 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 = (0, core_1.ObjectNode)({\r\n type: (0, core_1.Mod)((0, 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 (0, 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: (0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, 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: (0, core_1.NumberNode)(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_exclusive: (0, core_1.NumberNode)(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n plateau: (0, core_1.NumberNode)()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', (0, 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: (0, core_1.NumberNode)({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n });\r\n schemas.register('int_provider', (0, exports.IntProvider)());\r\n schemas.register('vertical_anchor', (0, 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: (0, core_1.ObjectNode)({\r\n [t]: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n }));\r\n exports.InclusiveRange = (config) => (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_inclusive: (0, core_1.NumberNode)(config)\r\n }, { context: 'range' });\r\n schemas.register('noise_parameters', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n firstOctave: (0, core_1.NumberNode)({ integer: true }),\r\n amplitudes: (0, core_1.ListNode)((0, core_1.NumberNode)())\r\n }, { context: 'noise_parameters' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n exports.Tag = (config) => (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: config.resource, allowTag: true } }),\r\n change: (v) => {\r\n if (Array.isArray(v) && typeof v[0] === 'string' && !v[0].startsWith('#')) {\r\n return v[0];\r\n }\r\n return undefined;\r\n }\r\n },\r\n {\r\n type: 'list',\r\n node: (0, core_1.ListNode)(config.inlineSchema\r\n ? (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: config.resource } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference(config.inlineSchema)\r\n }\r\n ], { choiceContext: 'tag.list' })\r\n : StringNode({ validator: 'resource', params: { pool: config.resource } })),\r\n change: (v) => {\r\n if (typeof v === 'string' && !v.startsWith('#')) {\r\n return [v];\r\n }\r\n return [];\r\n }\r\n },\r\n ], { choiceContext: 'tag' });\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)((0, exports.Tag)({ resource: '$worldgen/configured_structure_feature' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_contents': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_loot_table': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, 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) => (0, 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) => (0, core_1.ObjectOrPreset)(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n sea_level: 32,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\r\n default_block: {\r\n Name: 'minecraft:netherrack'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:lava'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:end': {\r\n sea_level: 0,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\r\n default_block: {\r\n Name: 'minecraft:end_stone'\r\n },\r\n default_fluid: {\r\n Name: 'minecraft:air'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n sea_level: 63,\r\n ore_veins_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n legacy_random_source: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n },\r\n 'minecraft:caves': {\r\n sea_level: 32,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n sea_level: 0,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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]: (0, Common_1.ConditionCases)()\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StructureSet = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/structure_set' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('structure_set'),\r\n change: () => ({})\r\n }\r\n ], { choiceContext: 'structure_set' });\r\n schemas.register('dimension', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, Common_1.DimensionTypePresets)(Reference('dimension_type')),\r\n generator: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n settings: (0, Common_1.NoiseSettingsPresets)(Reference('noise_settings')),\r\n biome_source: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:nether'] } })),\r\n biomes: (0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 62 })),\r\n biomes: (0, Common_1.Tag)({ resource: '$worldgen/biome' })\r\n },\r\n 'minecraft:the_end': {\r\n seed: (0, core_1.NumberNode)({ integer: true })\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: (0, core_1.ObjectNode)({\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n features: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n layers: (0, core_1.ListNode)(Reference('generator_layer')),\r\n structure_overrides: (0, core_1.ListNode)(StructureSet)\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n const ClimateParameter = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ListNode)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n ultrawarm: (0, core_1.BooleanNode)(),\r\n natural: (0, core_1.BooleanNode)(),\r\n piglin_safe: (0, core_1.BooleanNode)(),\r\n respawn_anchor_works: (0, core_1.BooleanNode)(),\r\n bed_works: (0, core_1.BooleanNode)(),\r\n has_raids: (0, core_1.BooleanNode)(),\r\n has_skylight: (0, core_1.BooleanNode)(),\r\n has_ceiling: (0, core_1.BooleanNode)(),\r\n coordinate_scale: (0, core_1.NumberNode)({ min: 0.00001, max: 30000000 }),\r\n ambient_light: (0, core_1.NumberNode)(),\r\n fixed_time: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n logical_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4064 }),\r\n effects: (0, core_1.Opt)(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2032, max: 2031 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 16, max: 4064 })\r\n }, { context: 'dimension_type' }), node => ({\r\n default: () => Common_1.DefaultDimensionType,\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) + (value === null || value === void 0 ? void 0 : value.height) > 2032) {\r\n errors.add(path.push('height'), 'error.min_y_plus_height', 2032);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.logical_height) > (value === null || value === void 0 ? void 0 : value.height)) {\r\n errors.add(path.push('logical_height'), 'error.logical_height');\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.height) % 16 !== 0) {\r\n errors.add(path.push('height'), 'error.height_multiple', 16);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) % 16 !== 0) {\r\n errors.add(path.push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initItemModifierSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initItemModifierSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('item_modifier', (0, core_1.ObjectOrList)(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: (0, core_1.Opt)((0, core_1.ListNode)(Reference('condition')))\r\n };\r\n schemas.register('function', (0, core_1.Mod)((0, 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]: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: (0, core_1.Opt)(Reference('number_provider')),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.StringOrList)(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst CURRENT_PACK_FORMAT = 9;\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, 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: (0, 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 = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, 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', (0, core_1.ObjectNode)({\r\n blocks: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)({\r\n position: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n dimension: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n { type: 'boolean', node: (0, core_1.BooleanNode)(), change: _ => true },\r\n {\r\n type: 'object', node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate'))),\r\n looking_at: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n stepping_on: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: (0, core_1.Opt)(Reference('player_predicate')),\r\n vehicle: (0, core_1.Opt)(Reference('entity_predicate')),\r\n passenger: (0, core_1.Opt)(Reference('entity_predicate')),\r\n targeted_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n lightning_bolt: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n blocks_set_on_fire: (0, core_1.Opt)(Reference('int_bounds')),\r\n entity_struck: (0, core_1.Opt)(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n in_open_water: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n catType: (0, core_1.Opt)(StringNode({ enum: 'cat_texture' })),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, core_1.BooleanNode)()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('game_event_tag', TagBase('game_event'));\r\n schemas.register('item_tag', TagBase('item'));\r\n schemas.register('advancement_tag', TagBase('$advancement'));\r\n schemas.register('dimension_tag', TagBase('$dimension'));\r\n schemas.register('dimension_type_tag', TagBase('$dimension_type'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_modifier_tag', TagBase('$item_modifier'));\r\n schemas.register('loot_table_tag', TagBase('$loot_table'));\r\n schemas.register('predicate_tag', TagBase('$predicate'));\r\n schemas.register('recipe_tag', TagBase('$recipe'));\r\n schemas.register('structure_tag', TagBase('$structure'));\r\n schemas.register('biome_tag', TagBase('$worldgen/biome'));\r\n schemas.register('configured_carver_tag', TagBase('$worldgen/configured_carver'));\r\n schemas.register('configured_decorator_tag', TagBase('$worldgen/configured_decorator'));\r\n schemas.register('configured_feature_tag', TagBase('$worldgen/configured_feature'));\r\n schemas.register('configured_structure_feature_tag', TagBase('$worldgen/configured_structure_feature'));\r\n schemas.register('configured_surface_builder_tag', TagBase('$worldgen/configured_surface_builder'));\r\n schemas.register('density_function_tag', TagBase('$worldgen/density_function'));\r\n schemas.register('noise_tag', TagBase('$worldgen/noise'));\r\n schemas.register('noise_settings_tag', TagBase('$worldgen/noise_settings'));\r\n schemas.register('placed_feature_tag', TagBase('$worldgen/placed_feature'));\r\n schemas.register('processor_list_tag', TagBase('$worldgen/processor_list'));\r\n schemas.register('structure_set_tag', TagBase('$worldgen/structure_set'));\r\n schemas.register('template_pool_tag', TagBase('$worldgen/template_pool'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', (0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, core_1.Opt)(StringNode()) /* TODO */,\r\n font: (0, core_1.Opt)(StringNode()),\r\n bold: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component')),\r\n contents: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tag: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n })),\r\n contents: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n separator: (0, 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', (0, core_1.Mod)((0, core_1.ListNode)(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = exports.MobCategorySpawnSettings = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.MobCategorySpawnSettings = (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n minCount: (0, core_1.NumberNode)({ integer: true }),\r\n maxCount: (0, core_1.NumberNode)({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n });\r\n schemas.register('biome', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n temperature: (0, core_1.NumberNode)(),\r\n downfall: (0, core_1.NumberNode)(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n creature_spawn_probability: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n effects: (0, core_1.ObjectNode)({\r\n sky_color: (0, core_1.NumberNode)({ color: true }),\r\n fog_color: (0, core_1.NumberNode)({ color: true }),\r\n water_color: (0, core_1.NumberNode)({ color: true }),\r\n water_fog_color: (0, core_1.NumberNode)({ color: true }),\r\n grass_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n foliage_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n grass_color_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: (0, core_1.Opt)(StringNode()),\r\n mood_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_delay: (0, core_1.NumberNode)({ integer: true }),\r\n block_search_extent: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)()\r\n })),\r\n additions_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n music: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n min_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n max_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n replace_current_music: (0, core_1.BooleanNode)()\r\n })),\r\n particle: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n options: (0, core_1.ObjectNode)({\r\n type: StringNode()\r\n }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }))\r\n }),\r\n spawners: (0, core_1.MapNode)(StringNode({ enum: 'mob_category' }), exports.MobCategorySpawnSettings),\r\n spawn_costs: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n energy_budget: (0, core_1.NumberNode)(),\r\n charge: (0, 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: (0, core_1.MapNode)(StringNode({ enum: ['air', 'liquid'] }), (0, core_1.Mod)((0, Common_1.Tag)({ resource: '$worldgen/configured_carver', inlineSchema: 'configured_carver' }), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: (0, core_1.ListNode)((0, core_1.Mod)((0, Common_1.Tag)({ resource: '$worldgen/placed_feature', inlineSchema: 'placed_feature' }), { category: () => 'predicate' }), { maxLength: 11 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: (0, Common_1.FloatProvider)(),\r\n shape: (0, core_1.ObjectNode)({\r\n distance_factor: (0, Common_1.FloatProvider)(),\r\n thickness: (0, Common_1.FloatProvider)(),\r\n width_smoothness: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n horizontal_radius_factor: (0, Common_1.FloatProvider)(),\r\n vertical_radius_default_factor: (0, core_1.NumberNode)(),\r\n vertical_radius_center_factor: (0, core_1.NumberNode)()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n vertical_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n floor_level: (0, Common_1.FloatProvider)({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: (0, core_1.ObjectNode)({\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: (0, Common_1.FloatProvider)(),\r\n lava_level: Reference('vertical_anchor'),\r\n debug_settings: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n debug_mode: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n air_state: (0, core_1.Opt)(Reference('block_state')),\r\n water_state: (0, core_1.Opt)(Reference('block_state')),\r\n lava_state: (0, core_1.Opt)(Reference('block_state')),\r\n barrier_state: (0, core_1.Opt)(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('decorator', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/placement_modifier_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_predicate_filter': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:rarity_filter': {\r\n chance: (0, core_1.NumberNode)({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:count_on_every_layer': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:noise_threshold_count': {\r\n noise_level: (0, core_1.NumberNode)(),\r\n below_noise: (0, core_1.NumberNode)({ integer: true }),\r\n above_noise: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:noise_based_count': {\r\n noise_to_count_ratio: (0, core_1.NumberNode)({ integer: true }),\r\n noise_factor: (0, core_1.NumberNode)(),\r\n noise_offset: (0, core_1.Opt)((0, core_1.NumberNode)())\r\n },\r\n 'minecraft:environment_scan': {\r\n direction_of_search: StringNode({ enum: ['up', 'down'] }),\r\n max_steps: (0, core_1.NumberNode)({ integer: true, min: 1, max: 32 }),\r\n target_condition: Reference('block_predicate_worldgen'),\r\n allowed_search_condition: (0, core_1.Opt)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:height_range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:random_offset': {\r\n xz_spread: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n y_spread: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n },\r\n 'minecraft:surface_relative_threshold_filter': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n min_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:surface_water_depth_filter': {\r\n max_water_depth: (0, core_1.NumberNode)({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDensityFunctionSchemas = exports.DensityFunction = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initDensityFunctionSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n exports.DensityFunction = (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)(),\r\n change: () => 0\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/density_function' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('density_function'),\r\n change: () => ({})\r\n }\r\n ], { choiceContext: 'density_function' }), {\r\n default: () => 0\r\n });\r\n const NoiseParameters = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('noise_parameters')\r\n }\r\n ], { choiceContext: 'noise_parameters' });\r\n const NoiseRange = (0, core_1.NumberNode)({ min: -1000000, max: 1000000 });\r\n const YRange = (0, core_1.NumberNode)({ integer: true, min: -2032 * 2, max: 2031 * 2 });\r\n schemas.register('density_function', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/density_function_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:abs': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:add': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:blend_density': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_2d': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_all_in_cell': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_once': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:clamp': {\r\n input: exports.DensityFunction,\r\n min: NoiseRange,\r\n max: NoiseRange,\r\n },\r\n 'minecraft:constant': {\r\n argument: (0, core_1.NumberNode)(),\r\n },\r\n 'minecraft:cube': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:flat_cache': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:half_negative': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:interpolated': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:max': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:min': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:mul': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:noise': {\r\n noise: NoiseParameters,\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n },\r\n 'minecraft:quarter_negative': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:range_choice': {\r\n input: exports.DensityFunction,\r\n min_inclusive: NoiseRange,\r\n max_exclusive: NoiseRange,\r\n when_in_range: exports.DensityFunction,\r\n when_out_of_range: exports.DensityFunction,\r\n },\r\n 'minecraft:shift': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shift_a': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shift_b': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shifted_noise': {\r\n noise: NoiseParameters,\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n shift_x: exports.DensityFunction,\r\n shift_y: exports.DensityFunction,\r\n shift_z: exports.DensityFunction,\r\n },\r\n 'minecraft:slide': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:spline': {\r\n spline: Reference('cubic_spline'),\r\n min_value: NoiseRange,\r\n max_value: NoiseRange,\r\n },\r\n 'minecraft:square': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:squeeze': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:terrain_shaper_spline': {\r\n spline: StringNode({ enum: ['offset', 'factor', 'jaggedness'] }),\r\n min_value: NoiseRange,\r\n max_value: NoiseRange,\r\n continentalness: exports.DensityFunction,\r\n erosion: exports.DensityFunction,\r\n weirdness: exports.DensityFunction,\r\n },\r\n 'minecraft:weird_scaled_sampler': {\r\n rarity_value_mapper: StringNode({ enum: ['type_1', 'type_2'] }),\r\n noise: NoiseParameters,\r\n input: exports.DensityFunction,\r\n },\r\n 'minecraft:y_clamped_gradient': {\r\n from_y: YRange,\r\n to_y: YRange,\r\n from_value: NoiseRange,\r\n to_value: NoiseRange,\r\n },\r\n }\r\n }, { context: 'density_function', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:noise',\r\n noise: 'minecraft:cave_entrance',\r\n xz_scale: 0.75,\r\n y_scale: 0.5\r\n })\r\n }));\r\n schemas.register('cubic_spline', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)()\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n coordinate: exports.DensityFunction,\r\n points: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n location: (0, core_1.NumberNode)(),\r\n derivative: (0, core_1.NumberNode)(),\r\n value: Reference('cubic_spline')\r\n }))\r\n }, { category: 'function' })\r\n }\r\n ], { context: 'terrain_spline', choiceContext: 'terrain_spline' }), {\r\n default: () => 0\r\n }));\r\n}\r\nexports.initDensityFunctionSchemas = initDensityFunctionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.Processors = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n processors: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:protected_blocks': {\r\n value: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } })\r\n },\r\n 'minecraft:rule': {\r\n rules: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n position_predicate: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n max_dist: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n min_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n max_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', (0, 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', (0, 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: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const ConfiguredFeature = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const PlacedFeature = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('placed_feature')\r\n }\r\n ], { choiceContext: 'placed_feature' });\r\n const RandomPatchConfig = {\r\n tries: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 })),\r\n xz_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n y_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n feature: PlacedFeature,\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 8 }),\r\n half_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4 }),\r\n targets: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n };\r\n const TargetBlockState = (0, core_1.ObjectNode)({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n };\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: 'cave_surface' }),\r\n depth: (0, Common_1.IntProvider)({ min: 1, max: 128 }),\r\n vertical_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n extra_edge_column_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n vegetation_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n xz_radius: (0, Common_1.IntProvider)(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: PlacedFeature\r\n };\r\n schemas.register('configured_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: (0, core_1.ObjectNode)({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: (0, Common_1.IntProvider)({ min: 0, max: 3 }),\r\n height: (0, Common_1.IntProvider)({ min: 1, max: 10 })\r\n },\r\n 'minecraft:block_column': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allowed_placement: Reference('block_predicate_worldgen'),\r\n prioritize_tip: (0, core_1.BooleanNode)(),\r\n layers: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n height: (0, Common_1.IntProvider)({ min: 0 }),\r\n provider: Reference('block_state_provider')\r\n }))\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n rim_size: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 1, max: 512 }),\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n height_deviation: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n density: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n wetness: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: (0, core_1.BooleanNode)(),\r\n exit: (0, core_1.Opt)(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n crystal_beam_target: (0, core_1.Opt)(Reference('block_pos')),\r\n spikes: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n centerX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n centerZ: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n guarded: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: (0, 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: (0, 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: (0, core_1.ListNode)(Reference('block_state')),\r\n cannot_replace: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n invalid_blocks: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } })\r\n }),\r\n layers: (0, core_1.ObjectNode)({\r\n filling: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n inner_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n middle_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n outer_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n }),\r\n crack: (0, core_1.ObjectNode)({\r\n generate_crack_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n base_crack_size: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 5 })),\r\n crack_point_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 10 })),\r\n }),\r\n noise_multiplier: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_potential_placements_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n outer_wall_distance: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n distribution_points: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n point_offset: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 0, max: 10 })),\r\n min_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n invalid_blocks_threshold: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n can_place_on_floor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_ceiling: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_wall: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_be_placed_on: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n fluid: Reference('block_state_provider'),\r\n barrier: Reference('block_state_provider')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1, max: 512 })),\r\n column_radius: (0, Common_1.IntProvider)({ min: 0, max: 60 }),\r\n height_scale: (0, Common_1.FloatProvider)({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n stalactite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n wind_speed: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n min_radius_for_wind: (0, core_1.NumberNode)({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: (0, core_1.NumberNode)({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider'),\r\n spread_width: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 })\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 12 })\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:pointed_dripstone': {\r\n chance_of_taller_dripstone: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_directional_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius2: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius3: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n },\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: PlacedFeature,\r\n feature_true: PlacedFeature\r\n },\r\n 'minecraft:random_selector': {\r\n features: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n feature: PlacedFeature\r\n })),\r\n default: PlacedFeature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n allowed_tree_position: Reference('block_predicate_worldgen'),\r\n feature: PlacedFeature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: (0, 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: (0, Common_1.Tag)({ resource: '$worldgen/placed_feature', inlineSchema: 'placed_feature' }),\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: (0, core_1.NumberNode)({ integer: true }),\r\n hole_count: (0, core_1.NumberNode)({ integer: true }),\r\n requires_block_below: (0, core_1.BooleanNode)(),\r\n valid_blocks: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n force_dirt: (0, core_1.Opt)((0, 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: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: (0, 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: (0, Common_1.IntProvider)({ min: 1, max: 64 }),\r\n min_height_for_leaves: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n offset: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: (0, Common_1.IntProvider)({ min: 1, max: 512 }),\r\n leaf_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: (0, core_1.ListNode)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:twisting_vines': {\r\n spread_width: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n max_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: (0, core_1.NumberNode)({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:tree',\r\n config: {\r\n minimum_size: {\r\n type: 'minecraft:two_layers_feature_size'\r\n },\r\n trunk_placer: {\r\n type: 'minecraft:straight_trunk_placer',\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n type: 'minecraft:blob_foliage_placer',\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('placed_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n feature: ConfiguredFeature,\r\n placement: (0, core_1.ListNode)(Reference('decorator'))\r\n }, { context: 'placed_feature' }), {\r\n default: () => ({\r\n feature: 'minecraft:oak',\r\n placement: [\r\n {\r\n type: 'minecraft:count',\r\n count: 4\r\n },\r\n {\r\n type: 'minecraft:in_square'\r\n },\r\n {\r\n type: 'minecraft:heightmap',\r\n heightmap: 'OCEAN_FLOOR'\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('feature_size', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 81 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n upper_limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n middle_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n noise: Reference('noise_parameters'),\r\n scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 })\r\n };\r\n schemas.register('block_state_provider', (0, core_1.Mod)((0, 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: (0, Common_1.InclusiveRange)({ integer: true, min: 1, max: 64 }),\r\n slow_noise: Reference('noise_parameters'),\r\n slow_scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 }),\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_threshold_provider': {\r\n ...NoiseProvider,\r\n threshold: (0, core_1.NumberNode)({ min: -1, max: 1 }),\r\n high_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n default_state: Reference('block_state'),\r\n low_states: (0, core_1.ListNode)(Reference('block_state')),\r\n high_states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_provider': {\r\n ...NoiseProvider,\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: (0, 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: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n const Offset = {\r\n offset: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n };\r\n schemas.register('block_predicate_worldgen', (0, core_1.Mod)((0, 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: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:any_of': {\r\n predicates: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:has_sturdy_face': {\r\n ...Offset,\r\n direction: StringNode({ enum: 'direction' })\r\n },\r\n 'minecraft:inside_world_bounds': {\r\n ...Offset,\r\n },\r\n 'minecraft:matching_block_tag': {\r\n ...Offset,\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:matching_blocks': {\r\n ...Offset,\r\n blocks: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:matching_fluids': {\r\n ...Offset,\r\n fluids: (0, Common_1.Tag)({ resource: 'fluid' })\r\n },\r\n 'minecraft:not': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:would_survive': {\r\n ...Offset,\r\n state: Reference('block_state')\r\n }\r\n }\r\n }, { context: 'block_predicate' }), {\r\n default: () => ({\r\n type: 'minecraft:true'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nconst DensityFunction_1 = require(\"./DensityFunction\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n sea_level: (0, core_1.NumberNode)({ integer: true }),\r\n disable_mob_generation: (0, core_1.BooleanNode)(),\r\n aquifers_enabled: (0, core_1.BooleanNode)(),\r\n ore_veins_enabled: (0, core_1.BooleanNode)(),\r\n legacy_random_source: (0, core_1.BooleanNode)(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: (0, core_1.ObjectNode)({\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n size_horizontal: (0, core_1.NumberNode)({ integer: true }),\r\n size_vertical: (0, core_1.NumberNode)({ integer: true }),\r\n sampling: (0, core_1.ObjectNode)({\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n xz_factor: (0, core_1.NumberNode)(),\r\n y_factor: (0, core_1.NumberNode)()\r\n }),\r\n bottom_slide: Reference('noise_slider'),\r\n top_slide: Reference('noise_slider'),\r\n terrain_shaper: Reference('terrain_shaper')\r\n }),\r\n noise_router: (0, core_1.ObjectNode)({\r\n barrier: DensityFunction_1.DensityFunction,\r\n fluid_level_floodedness: DensityFunction_1.DensityFunction,\r\n fluid_level_spread: DensityFunction_1.DensityFunction,\r\n lava: DensityFunction_1.DensityFunction,\r\n temperature: DensityFunction_1.DensityFunction,\r\n vegetation: DensityFunction_1.DensityFunction,\r\n continents: DensityFunction_1.DensityFunction,\r\n erosion: DensityFunction_1.DensityFunction,\r\n depth: DensityFunction_1.DensityFunction,\r\n ridges: DensityFunction_1.DensityFunction,\r\n initial_density_without_jaggedness: DensityFunction_1.DensityFunction,\r\n final_density: DensityFunction_1.DensityFunction,\r\n vein_toggle: DensityFunction_1.DensityFunction,\r\n vein_ridged: DensityFunction_1.DensityFunction,\r\n vein_gap: DensityFunction_1.DensityFunction,\r\n }),\r\n surface_rule: Reference('material_rule'),\r\n }, { context: 'noise_settings' }), node => ({\r\n default: () => Common_1.DefaultNoiseSettings,\r\n validate: (path, value, errors, options) => {\r\n var _a, _b, _c, _d;\r\n value = node.validate(path, value, errors, options);\r\n if (((_a = value === null || value === void 0 ? void 0 : value.noise) === null || _a === void 0 ? void 0 : _a.min_y) + ((_b = value === null || value === void 0 ? void 0 : value.noise) === null || _b === void 0 ? void 0 : _b.height) > 2047) {\r\n errors.add(path.push('noise').push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if (((_c = value === null || value === void 0 ? void 0 : value.noise) === null || _c === void 0 ? void 0 : _c.height) % 16 !== 0) {\r\n errors.add(path.push('noise').push('height'), 'error.height_multiple', 16);\r\n }\r\n if (((_d = value === null || value === void 0 ? void 0 : value.noise) === null || _d === void 0 ? void 0 : _d.min_y) % 16 !== 0) {\r\n errors.add(path.push('noise').push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n schemas.register('noise_slider', (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)(),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n }));\r\n schemas.register('generator_layer', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n schemas.register('terrain_shaper', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n offset: Reference('terrain_spline'),\r\n factor: Reference('terrain_spline'),\r\n jaggedness: Reference('terrain_spline'),\r\n }, { context: 'terrain_shaper' }), {\r\n default: () => ({\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0,\r\n })\r\n }));\r\n schemas.register('terrain_spline', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)()\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n coordinate: (0, core_1.Mod)(StringNode({ enum: ['continents', 'erosion', 'weirdness', 'ridges'] }), { default: () => 'continents' }),\r\n points: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n location: (0, core_1.NumberNode)(),\r\n derivative: (0, core_1.NumberNode)(),\r\n value: Reference('terrain_spline')\r\n }))\r\n }, { category: 'function' })\r\n }\r\n ], { context: 'terrain_spline', choiceContext: 'terrain_spline' }), {\r\n default: () => 0\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nconst Biome_1 = require(\"./Biome\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: (0, core_1.NumberNode)({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n biomes: (0, Common_1.Tag)({ resource: '$worldgen/biome' }),\r\n adapt_noise: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n spawn_overrides: (0, core_1.MapNode)(StringNode({ enum: 'mob_category' }), (0, core_1.ObjectNode)({\r\n bounding_box: StringNode({ enum: ['piece', 'full'] }),\r\n spawns: Biome_1.MobCategorySpawnSettings,\r\n })),\r\n config: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n cluster_probability: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureSetSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initStructureSetSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('structure_set', (0, core_1.ObjectNode)({\r\n structures: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n structure: (0, Common_1.Tag)({ resource: '$worldgen/configured_structure_feature' }),\r\n weight: (0, core_1.NumberNode)({ integer: true, min: 1 })\r\n })),\r\n placement: Reference('structure_placement')\r\n }, { context: 'structure_set' }));\r\n schemas.register('structure_placement', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_placement' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:concentric_rings': {\r\n distance: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n spread: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4095 })\r\n },\r\n 'minecraft:random_spread': {\r\n spread_type: (0, core_1.Opt)(StringNode({ enum: ['linear', 'triangular'] })),\r\n spacing: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n separation: (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n locate_offset: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n }\r\n }\r\n }, { context: 'structure_placement' }), {\r\n default: () => ({\r\n type: 'minecraft:random_spread',\r\n spacing: 10,\r\n separation: 5,\r\n salt: Math.floor(Math.random() * 2147483647)\r\n })\r\n }));\r\n}\r\nexports.initStructureSetSchemas = initStructureSetSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceRuleSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceRuleSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('material_rule', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_rule' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block': {\r\n result_state: Reference('block_state'),\r\n },\r\n 'minecraft:condition': {\r\n if_true: Reference('material_condition'),\r\n then_run: Reference('material_rule')\r\n },\r\n 'minecraft:sequence': {\r\n sequence: (0, core_1.ListNode)(Reference('material_rule'))\r\n }\r\n }\r\n }, { context: 'material_rule', category: 'pool' }), {\r\n default: () => ({\r\n type: 'minecraft:block',\r\n result_state: {\r\n Name: 'minecraft:stone'\r\n }\r\n })\r\n }));\r\n schemas.register('material_condition', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_condition' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:biome': {\r\n biome_is: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:noise_threshold': {\r\n noise: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n min_threshold: (0, core_1.NumberNode)(),\r\n max_threshold: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:not': {\r\n invert: Reference('material_condition')\r\n },\r\n 'minecraft:stone_depth': {\r\n offset: (0, core_1.NumberNode)({ integer: true }),\r\n surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_surface_depth: (0, core_1.BooleanNode)(),\r\n secondary_depth_range: (0, core_1.NumberNode)({ integer: true }),\r\n },\r\n 'minecraft:vertical_gradient': {\r\n random_name: StringNode(),\r\n true_at_and_below: Reference('vertical_anchor'),\r\n false_at_and_above: Reference('vertical_anchor'),\r\n },\r\n 'minecraft:water': {\r\n offset: (0, core_1.NumberNode)({ integer: true }),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, core_1.BooleanNode)()\r\n },\r\n 'minecraft:y_above': {\r\n anchor: Reference('vertical_anchor'),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, core_1.BooleanNode)()\r\n }\r\n }\r\n }, { context: 'material_condition' }), {\r\n default: () => ({\r\n type: 'minecraft:biome',\r\n is_biome: 'minecraft:plains'\r\n })\r\n }));\r\n}\r\nexports.initSurfaceRuleSchemas = initSurfaceRuleSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('template_pool', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: (0, core_1.ListNode)(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst DensityFunction_1 = require(\"./DensityFunction\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst StructureSet_1 = require(\"./StructureSet\");\r\nconst SurfaceRule_1 = require(\"./SurfaceRule\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts`, `DensityFunction.ts`, and `Biome.ts` have exports. They should be initialized first. \r\n (0, ProcessorList_1.initProcessorListSchemas)(schemas, collections);\r\n (0, DensityFunction_1.initDensityFunctionSchemas)(schemas, collections);\r\n (0, Biome_1.initBiomeSchemas)(schemas, collections);\r\n (0, Carver_1.initCarverSchemas)(schemas, collections);\r\n (0, Decorator_1.initDecoratorSchemas)(schemas, collections);\r\n (0, Feature_1.initFeatureSchemas)(schemas, collections);\r\n (0, NoiseSettings_1.initNoiseSettingsSchemas)(schemas, collections);\r\n (0, StructureFeature_1.initStructureFeatureSchemas)(schemas, collections);\r\n (0, StructureSet_1.initStructureSetSchemas)(schemas, collections);\r\n (0, SurfaceRule_1.initSurfaceRuleSchemas)(schemas, collections);\r\n (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n generate_features: (0, core_1.BooleanNode)(),\r\n bonus_chest: (0, core_1.BooleanNode)(),\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n dimensions: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:overworld\"\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:nether\"\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, DimensionType_1.initDimensionTypeSchemas)(schemas, collections);\r\n (0, Dimension_1.initDimensionSchemas)(schemas, collections);\r\n (0, ItemModifier_1.initItemModifierSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, TextComponent_1.initTextComponentSchemas)(schemas, collections);\r\n (0, worldgen_1.initWorldgenSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, schemas_1.initSchemas)(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n"],"names":["core_1","require$$0","require$$1","Common_1","require$$2","ProcessorList_1","DensityFunction_1","Biome_1","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","this"],"mappings":"+1BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EACrC,GAAA,gBAAG,OAC1B,YAAyB,EAAa,CAClC,EAAY,SAAS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,6BACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,+BACA,uBACA,6BACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,gCACA,0BACA,yBACA,6BACA,2BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,uBACA,2BACA,2BACR,CAAK,EACD,EAAY,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,SACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,MACR,CAAK,EACD,EAAY,SAAS,WAAY,CAC7B,WACA,WACA,YACA,WACR,CAAK,EACD,EAAY,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,eACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,eACA,OACA,SACA,eACR,CAAK,EACD,EAAY,SAAS,iCAAkC,CACnD,gCACA,sCACA,qBACR,CAAK,EACD,EAAY,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,cACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,SACR,CAAK,EACD,EAAY,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,iBACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,aACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,kBACR,CAAK,EACD,EAAY,SAAS,kBAAmB,CACpC,MACA,QACR,CAAK,EACD,EAAY,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,iBACR,CAAK,EACD,EAAY,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,QACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,QACA,SACA,UACA,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,OACR,CAAK,EACD,EAAY,SAAS,eAAgB,CACjC,QACA,SACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,OACA,KACA,QACA,OACA,QACA,MACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,IACA,IACA,GACR,CAAK,EACD,EAAY,SAAS,mBAAoB,CACrC,wBACA,uBACA,wBACA,uBACA,MACA,OACA,SACA,OACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,QACA,MACR,CAAK,EA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"} \ No newline at end of file +{"version":3,"file":"index.e47e678b.js","sources":["../../node_modules/@mcschema/java-1.18.2/lib/Collections.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.18.2/lib/LootContext.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/DensityFunction.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/StructureSet.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/SurfaceRule.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/index.js","../../node_modules/@mcschema/java-1.18.2/lib/index.js"],"sourcesContent":["\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:fall_from_height',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:lightning_strike',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:ride_entity_in_lava',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:started_riding',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:using_item',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'killer',\r\n 'direct_killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mountain',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end',\r\n 'underground'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n collections.register('banner_pattern', [\r\n 'base',\r\n 'square_bottom_left',\r\n 'square_bottom_right',\r\n 'square_top_left',\r\n 'square_top_right',\r\n 'stripe_bottom',\r\n 'stripe_top',\r\n 'stripe_left',\r\n 'stripe_right',\r\n 'stripe_center',\r\n 'stripe_middle',\r\n 'stripe_downright',\r\n 'stripe_downleft',\r\n 'small_stripes',\r\n 'cross',\r\n 'straight_cross',\r\n 'triangle_bottom',\r\n 'triangle_top',\r\n 'triangles_bottom',\r\n 'triangles_top',\r\n 'diagonal_left',\r\n 'diagonal_up_right',\r\n 'diagonal_up_left',\r\n 'diagonal_right',\r\n 'circle',\r\n 'rhombus',\r\n 'half_vertical',\r\n 'half_horizontal',\r\n 'half_vertical_right',\r\n 'half_horizontal_bottom',\r\n 'border',\r\n 'curly_border',\r\n 'gradient',\r\n 'gradient_up',\r\n 'bricks',\r\n 'globe',\r\n 'creeper',\r\n 'skull',\r\n 'flower',\r\n 'mojang',\r\n 'piglin'\r\n ]);\r\n collections.register('dye_color', [\r\n 'white',\r\n 'orange',\r\n 'magenta',\r\n 'light_blue',\r\n 'yellow',\r\n 'lime',\r\n 'pink',\r\n 'gray',\r\n 'light_gray',\r\n 'cyan',\r\n 'purple',\r\n 'blue',\r\n 'brown',\r\n 'green',\r\n 'red',\r\n 'black'\r\n ]);\r\n collections.register('cave_surface', [\r\n 'floor',\r\n 'ceiling'\r\n ]);\r\n collections.register('direction', [\r\n 'down',\r\n 'up',\r\n 'north',\r\n 'east',\r\n 'south',\r\n 'west'\r\n ]);\r\n collections.register('axis', [\r\n 'x',\r\n 'y',\r\n 'z'\r\n ]);\r\n collections.register('display_position', [\r\n 'firstperson_righthand',\r\n 'firstperson_lefthand',\r\n 'thirdperson_righthand',\r\n 'thirdperson_lefthand',\r\n 'gui',\r\n 'head',\r\n 'ground',\r\n 'fixed'\r\n ]);\r\n collections.register('gui_light', [\r\n 'front',\r\n 'side'\r\n ]);\r\n collections.register('item_model_predicates', [\r\n 'angle',\r\n 'blocking',\r\n 'broken',\r\n 'cast',\r\n 'charged',\r\n 'cooldown',\r\n 'custom_model_data',\r\n 'damage',\r\n 'damaged',\r\n 'firework',\r\n 'lefthanded',\r\n 'pull',\r\n 'pulling',\r\n 'throwing',\r\n 'time'\r\n ]);\r\n collections.register('mob_category', [\r\n 'monster',\r\n 'creature',\r\n 'ambient',\r\n 'axolotls',\r\n 'underground_water_creature',\r\n 'water_creature',\r\n 'water_ambient',\r\n 'misc',\r\n ]);\r\n collections.register('cat_texture', [\r\n 'textures/entity/cat/tabby.png',\r\n 'textures/entity/cat/black.png',\r\n 'textures/entity/cat/red.png',\r\n 'textures/entity/cat/siamese.png',\r\n 'textures/entity/cat/british_shorthair.png',\r\n 'textures/entity/cat/calico.png',\r\n 'textures/entity/cat/persian.png',\r\n 'textures/entity/cat/ragdoll.png',\r\n 'textures/entity/cat/white.png',\r\n 'textures/entity/cat/jellie.png',\r\n 'textures/entity/cat/all_black.png'\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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n player: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, 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: (0, 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: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: (0, core_1.Opt)(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:fall_from_height': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: (0, 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: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: (0, 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: (0, 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: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, 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: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: (0, core_1.Opt)(Reference('float_bounds'))\r\n },\r\n 'minecraft:used_totem': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, core_1.ObjectNode)({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, core_1.NumberNode)()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, core_1.MapNode)(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, core_1.Opt)(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, core_1.MapNode)(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n OR: (0, core_1.ListNode)(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, Model_1.initModelSchemas)(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.Tag = exports.InclusiveRange = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: '#minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nexports.DefaultNoiseSettings = {\r\n sea_level: 63,\r\n ore_veins_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n legacy_random_source: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => (0, core_1.Opt)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer })),\r\n max: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)(Reference('number_provider')),\r\n max: (0, core_1.Opt)(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: (0, 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] = (0, 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 = (0, core_1.ObjectNode)({\r\n type: (0, core_1.Mod)((0, 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 (0, 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: (0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, 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: (0, core_1.NumberNode)(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_exclusive: (0, core_1.NumberNode)(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n plateau: (0, core_1.NumberNode)()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', (0, 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: (0, core_1.NumberNode)({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n });\r\n schemas.register('int_provider', (0, exports.IntProvider)());\r\n schemas.register('vertical_anchor', (0, 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: (0, core_1.ObjectNode)({\r\n [t]: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n }));\r\n exports.InclusiveRange = (config) => (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_inclusive: (0, core_1.NumberNode)(config)\r\n }, { context: 'range' });\r\n schemas.register('noise_parameters', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n firstOctave: (0, core_1.NumberNode)({ integer: true }),\r\n amplitudes: (0, core_1.ListNode)((0, core_1.NumberNode)())\r\n }, { context: 'noise_parameters' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n exports.Tag = (config) => (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: config.resource, allowTag: true } }),\r\n change: (v) => {\r\n if (Array.isArray(v) && typeof v[0] === 'string' && !v[0].startsWith('#')) {\r\n return v[0];\r\n }\r\n return undefined;\r\n }\r\n },\r\n {\r\n type: 'list',\r\n node: (0, core_1.ListNode)(config.inlineSchema\r\n ? (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: config.resource } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference(config.inlineSchema)\r\n }\r\n ], { choiceContext: 'tag.list' })\r\n : StringNode({ validator: 'resource', params: { pool: config.resource } })),\r\n change: (v) => {\r\n if (typeof v === 'string' && !v.startsWith('#')) {\r\n return [v];\r\n }\r\n return [];\r\n }\r\n },\r\n ], { choiceContext: 'tag' });\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)((0, exports.Tag)({ resource: '$worldgen/configured_structure_feature' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_contents': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_loot_table': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, 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) => (0, 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) => (0, core_1.ObjectOrPreset)(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n sea_level: 32,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\r\n default_block: {\r\n Name: 'minecraft:netherrack'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:lava'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:end': {\r\n sea_level: 0,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\r\n default_block: {\r\n Name: 'minecraft:end_stone'\r\n },\r\n default_fluid: {\r\n Name: 'minecraft:air'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n sea_level: 63,\r\n ore_veins_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n legacy_random_source: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n },\r\n 'minecraft:caves': {\r\n sea_level: 32,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n sea_level: 0,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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]: (0, Common_1.ConditionCases)()\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StructureSet = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/structure_set' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('structure_set'),\r\n change: () => ({})\r\n }\r\n ], { choiceContext: 'structure_set' });\r\n schemas.register('dimension', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, Common_1.DimensionTypePresets)(Reference('dimension_type')),\r\n generator: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n settings: (0, Common_1.NoiseSettingsPresets)(Reference('noise_settings')),\r\n biome_source: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:nether'] } })),\r\n biomes: (0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 62 })),\r\n biomes: (0, Common_1.Tag)({ resource: '$worldgen/biome' })\r\n },\r\n 'minecraft:the_end': {\r\n seed: (0, core_1.NumberNode)({ integer: true })\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: (0, core_1.ObjectNode)({\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n features: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n layers: (0, core_1.ListNode)(Reference('generator_layer')),\r\n structure_overrides: (0, core_1.ListNode)(StructureSet)\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n const ClimateParameter = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ListNode)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n ultrawarm: (0, core_1.BooleanNode)(),\r\n natural: (0, core_1.BooleanNode)(),\r\n piglin_safe: (0, core_1.BooleanNode)(),\r\n respawn_anchor_works: (0, core_1.BooleanNode)(),\r\n bed_works: (0, core_1.BooleanNode)(),\r\n has_raids: (0, core_1.BooleanNode)(),\r\n has_skylight: (0, core_1.BooleanNode)(),\r\n has_ceiling: (0, core_1.BooleanNode)(),\r\n coordinate_scale: (0, core_1.NumberNode)({ min: 0.00001, max: 30000000 }),\r\n ambient_light: (0, core_1.NumberNode)(),\r\n fixed_time: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n logical_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4064 }),\r\n effects: (0, core_1.Opt)(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2032, max: 2031 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 16, max: 4064 })\r\n }, { context: 'dimension_type' }), node => ({\r\n default: () => Common_1.DefaultDimensionType,\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) + (value === null || value === void 0 ? void 0 : value.height) > 2032) {\r\n errors.add(path.push('height'), 'error.min_y_plus_height', 2032);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.logical_height) > (value === null || value === void 0 ? void 0 : value.height)) {\r\n errors.add(path.push('logical_height'), 'error.logical_height');\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.height) % 16 !== 0) {\r\n errors.add(path.push('height'), 'error.height_multiple', 16);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) % 16 !== 0) {\r\n errors.add(path.push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initItemModifierSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initItemModifierSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('item_modifier', (0, core_1.ObjectOrList)(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: (0, core_1.Opt)((0, core_1.ListNode)(Reference('condition')))\r\n };\r\n schemas.register('function', (0, core_1.Mod)((0, 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]: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: (0, core_1.Opt)(Reference('number_provider')),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.StringOrList)(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst CURRENT_PACK_FORMAT = 9;\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, 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: (0, 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 = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, 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', (0, core_1.ObjectNode)({\r\n blocks: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)({\r\n position: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n dimension: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n { type: 'boolean', node: (0, core_1.BooleanNode)(), change: _ => true },\r\n {\r\n type: 'object', node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate'))),\r\n looking_at: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n stepping_on: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: (0, core_1.Opt)(Reference('player_predicate')),\r\n vehicle: (0, core_1.Opt)(Reference('entity_predicate')),\r\n passenger: (0, core_1.Opt)(Reference('entity_predicate')),\r\n targeted_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n lightning_bolt: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n blocks_set_on_fire: (0, core_1.Opt)(Reference('int_bounds')),\r\n entity_struck: (0, core_1.Opt)(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n in_open_water: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n catType: (0, core_1.Opt)(StringNode({ enum: 'cat_texture' })),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, core_1.BooleanNode)()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('game_event_tag', TagBase('game_event'));\r\n schemas.register('item_tag', TagBase('item'));\r\n schemas.register('advancement_tag', TagBase('$advancement'));\r\n schemas.register('dimension_tag', TagBase('$dimension'));\r\n schemas.register('dimension_type_tag', TagBase('$dimension_type'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_modifier_tag', TagBase('$item_modifier'));\r\n schemas.register('loot_table_tag', TagBase('$loot_table'));\r\n schemas.register('predicate_tag', TagBase('$predicate'));\r\n schemas.register('recipe_tag', TagBase('$recipe'));\r\n schemas.register('structure_tag', TagBase('$structure'));\r\n schemas.register('biome_tag', TagBase('$worldgen/biome'));\r\n schemas.register('configured_carver_tag', TagBase('$worldgen/configured_carver'));\r\n schemas.register('configured_decorator_tag', TagBase('$worldgen/configured_decorator'));\r\n schemas.register('configured_feature_tag', TagBase('$worldgen/configured_feature'));\r\n schemas.register('configured_structure_feature_tag', TagBase('$worldgen/configured_structure_feature'));\r\n schemas.register('configured_surface_builder_tag', TagBase('$worldgen/configured_surface_builder'));\r\n schemas.register('density_function_tag', TagBase('$worldgen/density_function'));\r\n schemas.register('noise_tag', TagBase('$worldgen/noise'));\r\n schemas.register('noise_settings_tag', TagBase('$worldgen/noise_settings'));\r\n schemas.register('placed_feature_tag', TagBase('$worldgen/placed_feature'));\r\n schemas.register('processor_list_tag', TagBase('$worldgen/processor_list'));\r\n schemas.register('structure_set_tag', TagBase('$worldgen/structure_set'));\r\n schemas.register('template_pool_tag', TagBase('$worldgen/template_pool'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', (0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, core_1.Opt)(StringNode()) /* TODO */,\r\n font: (0, core_1.Opt)(StringNode()),\r\n bold: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component')),\r\n contents: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tag: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n })),\r\n contents: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n separator: (0, 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', (0, core_1.Mod)((0, core_1.ListNode)(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = exports.MobCategorySpawnSettings = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.MobCategorySpawnSettings = (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n minCount: (0, core_1.NumberNode)({ integer: true }),\r\n maxCount: (0, core_1.NumberNode)({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n });\r\n schemas.register('biome', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n temperature: (0, core_1.NumberNode)(),\r\n downfall: (0, core_1.NumberNode)(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n creature_spawn_probability: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n effects: (0, core_1.ObjectNode)({\r\n sky_color: (0, core_1.NumberNode)({ color: true }),\r\n fog_color: (0, core_1.NumberNode)({ color: true }),\r\n water_color: (0, core_1.NumberNode)({ color: true }),\r\n water_fog_color: (0, core_1.NumberNode)({ color: true }),\r\n grass_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n foliage_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n grass_color_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: (0, core_1.Opt)(StringNode()),\r\n mood_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_delay: (0, core_1.NumberNode)({ integer: true }),\r\n block_search_extent: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)()\r\n })),\r\n additions_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n music: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n min_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n max_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n replace_current_music: (0, core_1.BooleanNode)()\r\n })),\r\n particle: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n options: (0, core_1.ObjectNode)({\r\n type: StringNode()\r\n }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }))\r\n }),\r\n spawners: (0, core_1.MapNode)(StringNode({ enum: 'mob_category' }), exports.MobCategorySpawnSettings),\r\n spawn_costs: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n energy_budget: (0, core_1.NumberNode)(),\r\n charge: (0, 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: (0, core_1.MapNode)(StringNode({ enum: ['air', 'liquid'] }), (0, core_1.Mod)((0, Common_1.Tag)({ resource: '$worldgen/configured_carver', inlineSchema: 'configured_carver' }), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: (0, core_1.ListNode)((0, core_1.Mod)((0, Common_1.Tag)({ resource: '$worldgen/placed_feature', inlineSchema: 'placed_feature' }), { category: () => 'predicate' }), { maxLength: 11 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: (0, Common_1.FloatProvider)(),\r\n shape: (0, core_1.ObjectNode)({\r\n distance_factor: (0, Common_1.FloatProvider)(),\r\n thickness: (0, Common_1.FloatProvider)(),\r\n width_smoothness: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n horizontal_radius_factor: (0, Common_1.FloatProvider)(),\r\n vertical_radius_default_factor: (0, core_1.NumberNode)(),\r\n vertical_radius_center_factor: (0, core_1.NumberNode)()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n vertical_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n floor_level: (0, Common_1.FloatProvider)({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: (0, core_1.ObjectNode)({\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: (0, Common_1.FloatProvider)(),\r\n lava_level: Reference('vertical_anchor'),\r\n debug_settings: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n debug_mode: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n air_state: (0, core_1.Opt)(Reference('block_state')),\r\n water_state: (0, core_1.Opt)(Reference('block_state')),\r\n lava_state: (0, core_1.Opt)(Reference('block_state')),\r\n barrier_state: (0, core_1.Opt)(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('decorator', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/placement_modifier_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_predicate_filter': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:rarity_filter': {\r\n chance: (0, core_1.NumberNode)({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:count_on_every_layer': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:noise_threshold_count': {\r\n noise_level: (0, core_1.NumberNode)(),\r\n below_noise: (0, core_1.NumberNode)({ integer: true }),\r\n above_noise: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:noise_based_count': {\r\n noise_to_count_ratio: (0, core_1.NumberNode)({ integer: true }),\r\n noise_factor: (0, core_1.NumberNode)(),\r\n noise_offset: (0, core_1.Opt)((0, core_1.NumberNode)())\r\n },\r\n 'minecraft:environment_scan': {\r\n direction_of_search: StringNode({ enum: ['up', 'down'] }),\r\n max_steps: (0, core_1.NumberNode)({ integer: true, min: 1, max: 32 }),\r\n target_condition: Reference('block_predicate_worldgen'),\r\n allowed_search_condition: (0, core_1.Opt)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:height_range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:random_offset': {\r\n xz_spread: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n y_spread: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n },\r\n 'minecraft:surface_relative_threshold_filter': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n min_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:surface_water_depth_filter': {\r\n max_water_depth: (0, core_1.NumberNode)({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDensityFunctionSchemas = exports.DensityFunction = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initDensityFunctionSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n exports.DensityFunction = (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)(),\r\n change: () => 0\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/density_function' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('density_function'),\r\n change: () => ({})\r\n }\r\n ], { choiceContext: 'density_function' }), {\r\n default: () => 0\r\n });\r\n const NoiseParameters = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('noise_parameters')\r\n }\r\n ], { choiceContext: 'noise_parameters' });\r\n const NoiseRange = (0, core_1.NumberNode)({ min: -1000000, max: 1000000 });\r\n const YRange = (0, core_1.NumberNode)({ integer: true, min: -2032 * 2, max: 2031 * 2 });\r\n schemas.register('density_function', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/density_function_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:abs': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:add': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:blend_density': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_2d': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_all_in_cell': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_once': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:clamp': {\r\n input: exports.DensityFunction,\r\n min: NoiseRange,\r\n max: NoiseRange,\r\n },\r\n 'minecraft:constant': {\r\n argument: (0, core_1.NumberNode)(),\r\n },\r\n 'minecraft:cube': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:flat_cache': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:half_negative': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:interpolated': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:max': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:min': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:mul': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:noise': {\r\n noise: NoiseParameters,\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n },\r\n 'minecraft:quarter_negative': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:range_choice': {\r\n input: exports.DensityFunction,\r\n min_inclusive: NoiseRange,\r\n max_exclusive: NoiseRange,\r\n when_in_range: exports.DensityFunction,\r\n when_out_of_range: exports.DensityFunction,\r\n },\r\n 'minecraft:shift': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shift_a': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shift_b': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shifted_noise': {\r\n noise: NoiseParameters,\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n shift_x: exports.DensityFunction,\r\n shift_y: exports.DensityFunction,\r\n shift_z: exports.DensityFunction,\r\n },\r\n 'minecraft:slide': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:spline': {\r\n spline: Reference('cubic_spline'),\r\n min_value: NoiseRange,\r\n max_value: NoiseRange,\r\n },\r\n 'minecraft:square': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:squeeze': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:terrain_shaper_spline': {\r\n spline: StringNode({ enum: ['offset', 'factor', 'jaggedness'] }),\r\n min_value: NoiseRange,\r\n max_value: NoiseRange,\r\n continentalness: exports.DensityFunction,\r\n erosion: exports.DensityFunction,\r\n weirdness: exports.DensityFunction,\r\n },\r\n 'minecraft:weird_scaled_sampler': {\r\n rarity_value_mapper: StringNode({ enum: ['type_1', 'type_2'] }),\r\n noise: NoiseParameters,\r\n input: exports.DensityFunction,\r\n },\r\n 'minecraft:y_clamped_gradient': {\r\n from_y: YRange,\r\n to_y: YRange,\r\n from_value: NoiseRange,\r\n to_value: NoiseRange,\r\n },\r\n }\r\n }, { context: 'density_function', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:noise',\r\n noise: 'minecraft:cave_entrance',\r\n xz_scale: 0.75,\r\n y_scale: 0.5\r\n })\r\n }));\r\n schemas.register('cubic_spline', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)()\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n coordinate: exports.DensityFunction,\r\n points: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n location: (0, core_1.NumberNode)(),\r\n derivative: (0, core_1.NumberNode)(),\r\n value: Reference('cubic_spline')\r\n }))\r\n }, { category: 'function' })\r\n }\r\n ], { context: 'terrain_spline', choiceContext: 'terrain_spline' }), {\r\n default: () => 0\r\n }));\r\n}\r\nexports.initDensityFunctionSchemas = initDensityFunctionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.Processors = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n processors: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:protected_blocks': {\r\n value: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } })\r\n },\r\n 'minecraft:rule': {\r\n rules: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n position_predicate: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n max_dist: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n min_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n max_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', (0, 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', (0, 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: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const ConfiguredFeature = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const PlacedFeature = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('placed_feature')\r\n }\r\n ], { choiceContext: 'placed_feature' });\r\n const RandomPatchConfig = {\r\n tries: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 })),\r\n xz_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n y_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n feature: PlacedFeature,\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 8 }),\r\n half_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4 }),\r\n targets: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n };\r\n const TargetBlockState = (0, core_1.ObjectNode)({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n };\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: 'cave_surface' }),\r\n depth: (0, Common_1.IntProvider)({ min: 1, max: 128 }),\r\n vertical_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n extra_edge_column_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n vegetation_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n xz_radius: (0, Common_1.IntProvider)(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: PlacedFeature\r\n };\r\n schemas.register('configured_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: (0, core_1.ObjectNode)({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: (0, Common_1.IntProvider)({ min: 0, max: 3 }),\r\n height: (0, Common_1.IntProvider)({ min: 1, max: 10 })\r\n },\r\n 'minecraft:block_column': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allowed_placement: Reference('block_predicate_worldgen'),\r\n prioritize_tip: (0, core_1.BooleanNode)(),\r\n layers: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n height: (0, Common_1.IntProvider)({ min: 0 }),\r\n provider: Reference('block_state_provider')\r\n }))\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n rim_size: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 1, max: 512 }),\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n height_deviation: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n density: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n wetness: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: (0, core_1.BooleanNode)(),\r\n exit: (0, core_1.Opt)(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n crystal_beam_target: (0, core_1.Opt)(Reference('block_pos')),\r\n spikes: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n centerX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n centerZ: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n guarded: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: (0, 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: (0, 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: (0, core_1.ListNode)(Reference('block_state')),\r\n cannot_replace: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n invalid_blocks: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } })\r\n }),\r\n layers: (0, core_1.ObjectNode)({\r\n filling: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n inner_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n middle_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n outer_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n }),\r\n crack: (0, core_1.ObjectNode)({\r\n generate_crack_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n base_crack_size: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 5 })),\r\n crack_point_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 10 })),\r\n }),\r\n noise_multiplier: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_potential_placements_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n outer_wall_distance: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n distribution_points: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n point_offset: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 0, max: 10 })),\r\n min_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n invalid_blocks_threshold: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n can_place_on_floor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_ceiling: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_wall: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_be_placed_on: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n fluid: Reference('block_state_provider'),\r\n barrier: Reference('block_state_provider')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1, max: 512 })),\r\n column_radius: (0, Common_1.IntProvider)({ min: 0, max: 60 }),\r\n height_scale: (0, Common_1.FloatProvider)({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n stalactite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n wind_speed: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n min_radius_for_wind: (0, core_1.NumberNode)({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: (0, core_1.NumberNode)({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider'),\r\n spread_width: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 })\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 12 })\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:pointed_dripstone': {\r\n chance_of_taller_dripstone: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_directional_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius2: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius3: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n },\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: PlacedFeature,\r\n feature_true: PlacedFeature\r\n },\r\n 'minecraft:random_selector': {\r\n features: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n feature: PlacedFeature\r\n })),\r\n default: PlacedFeature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n allowed_tree_position: Reference('block_predicate_worldgen'),\r\n feature: PlacedFeature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: (0, 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: (0, Common_1.Tag)({ resource: '$worldgen/placed_feature', inlineSchema: 'placed_feature' }),\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: (0, core_1.NumberNode)({ integer: true }),\r\n hole_count: (0, core_1.NumberNode)({ integer: true }),\r\n requires_block_below: (0, core_1.BooleanNode)(),\r\n valid_blocks: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n force_dirt: (0, core_1.Opt)((0, 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: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: (0, 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: (0, Common_1.IntProvider)({ min: 1, max: 64 }),\r\n min_height_for_leaves: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n offset: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: (0, Common_1.IntProvider)({ min: 1, max: 512 }),\r\n leaf_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: (0, core_1.ListNode)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:twisting_vines': {\r\n spread_width: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n max_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: (0, core_1.NumberNode)({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:tree',\r\n config: {\r\n minimum_size: {\r\n type: 'minecraft:two_layers_feature_size'\r\n },\r\n trunk_placer: {\r\n type: 'minecraft:straight_trunk_placer',\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n type: 'minecraft:blob_foliage_placer',\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('placed_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n feature: ConfiguredFeature,\r\n placement: (0, core_1.ListNode)(Reference('decorator'))\r\n }, { context: 'placed_feature' }), {\r\n default: () => ({\r\n feature: 'minecraft:oak',\r\n placement: [\r\n {\r\n type: 'minecraft:count',\r\n count: 4\r\n },\r\n {\r\n type: 'minecraft:in_square'\r\n },\r\n {\r\n type: 'minecraft:heightmap',\r\n heightmap: 'OCEAN_FLOOR'\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('feature_size', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 81 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n upper_limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n middle_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n noise: Reference('noise_parameters'),\r\n scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 })\r\n };\r\n schemas.register('block_state_provider', (0, core_1.Mod)((0, 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: (0, Common_1.InclusiveRange)({ integer: true, min: 1, max: 64 }),\r\n slow_noise: Reference('noise_parameters'),\r\n slow_scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 }),\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_threshold_provider': {\r\n ...NoiseProvider,\r\n threshold: (0, core_1.NumberNode)({ min: -1, max: 1 }),\r\n high_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n default_state: Reference('block_state'),\r\n low_states: (0, core_1.ListNode)(Reference('block_state')),\r\n high_states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_provider': {\r\n ...NoiseProvider,\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: (0, 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: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n const Offset = {\r\n offset: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n };\r\n schemas.register('block_predicate_worldgen', (0, core_1.Mod)((0, 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: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:any_of': {\r\n predicates: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:has_sturdy_face': {\r\n ...Offset,\r\n direction: StringNode({ enum: 'direction' })\r\n },\r\n 'minecraft:inside_world_bounds': {\r\n ...Offset,\r\n },\r\n 'minecraft:matching_block_tag': {\r\n ...Offset,\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:matching_blocks': {\r\n ...Offset,\r\n blocks: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:matching_fluids': {\r\n ...Offset,\r\n fluids: (0, Common_1.Tag)({ resource: 'fluid' })\r\n },\r\n 'minecraft:not': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:would_survive': {\r\n ...Offset,\r\n state: Reference('block_state')\r\n }\r\n }\r\n }, { context: 'block_predicate' }), {\r\n default: () => ({\r\n type: 'minecraft:true'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nconst DensityFunction_1 = require(\"./DensityFunction\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n sea_level: (0, core_1.NumberNode)({ integer: true }),\r\n disable_mob_generation: (0, core_1.BooleanNode)(),\r\n aquifers_enabled: (0, core_1.BooleanNode)(),\r\n ore_veins_enabled: (0, core_1.BooleanNode)(),\r\n legacy_random_source: (0, core_1.BooleanNode)(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: (0, core_1.ObjectNode)({\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n size_horizontal: (0, core_1.NumberNode)({ integer: true }),\r\n size_vertical: (0, core_1.NumberNode)({ integer: true }),\r\n sampling: (0, core_1.ObjectNode)({\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n xz_factor: (0, core_1.NumberNode)(),\r\n y_factor: (0, core_1.NumberNode)()\r\n }),\r\n bottom_slide: Reference('noise_slider'),\r\n top_slide: Reference('noise_slider'),\r\n terrain_shaper: Reference('terrain_shaper')\r\n }),\r\n noise_router: (0, core_1.ObjectNode)({\r\n barrier: DensityFunction_1.DensityFunction,\r\n fluid_level_floodedness: DensityFunction_1.DensityFunction,\r\n fluid_level_spread: DensityFunction_1.DensityFunction,\r\n lava: DensityFunction_1.DensityFunction,\r\n temperature: DensityFunction_1.DensityFunction,\r\n vegetation: DensityFunction_1.DensityFunction,\r\n continents: DensityFunction_1.DensityFunction,\r\n erosion: DensityFunction_1.DensityFunction,\r\n depth: DensityFunction_1.DensityFunction,\r\n ridges: DensityFunction_1.DensityFunction,\r\n initial_density_without_jaggedness: DensityFunction_1.DensityFunction,\r\n final_density: DensityFunction_1.DensityFunction,\r\n vein_toggle: DensityFunction_1.DensityFunction,\r\n vein_ridged: DensityFunction_1.DensityFunction,\r\n vein_gap: DensityFunction_1.DensityFunction,\r\n }),\r\n surface_rule: Reference('material_rule'),\r\n }, { context: 'noise_settings' }), node => ({\r\n default: () => Common_1.DefaultNoiseSettings,\r\n validate: (path, value, errors, options) => {\r\n var _a, _b, _c, _d;\r\n value = node.validate(path, value, errors, options);\r\n if (((_a = value === null || value === void 0 ? void 0 : value.noise) === null || _a === void 0 ? void 0 : _a.min_y) + ((_b = value === null || value === void 0 ? void 0 : value.noise) === null || _b === void 0 ? void 0 : _b.height) > 2047) {\r\n errors.add(path.push('noise').push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if (((_c = value === null || value === void 0 ? void 0 : value.noise) === null || _c === void 0 ? void 0 : _c.height) % 16 !== 0) {\r\n errors.add(path.push('noise').push('height'), 'error.height_multiple', 16);\r\n }\r\n if (((_d = value === null || value === void 0 ? void 0 : value.noise) === null || _d === void 0 ? void 0 : _d.min_y) % 16 !== 0) {\r\n errors.add(path.push('noise').push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n schemas.register('noise_slider', (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)(),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n }));\r\n schemas.register('generator_layer', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n schemas.register('terrain_shaper', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n offset: Reference('terrain_spline'),\r\n factor: Reference('terrain_spline'),\r\n jaggedness: Reference('terrain_spline'),\r\n }, { context: 'terrain_shaper' }), {\r\n default: () => ({\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0,\r\n })\r\n }));\r\n schemas.register('terrain_spline', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)()\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n coordinate: (0, core_1.Mod)(StringNode({ enum: ['continents', 'erosion', 'weirdness', 'ridges'] }), { default: () => 'continents' }),\r\n points: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n location: (0, core_1.NumberNode)(),\r\n derivative: (0, core_1.NumberNode)(),\r\n value: Reference('terrain_spline')\r\n }))\r\n }, { category: 'function' })\r\n }\r\n ], { context: 'terrain_spline', choiceContext: 'terrain_spline' }), {\r\n default: () => 0\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nconst Biome_1 = require(\"./Biome\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: (0, core_1.NumberNode)({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n biomes: (0, Common_1.Tag)({ resource: '$worldgen/biome' }),\r\n adapt_noise: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n spawn_overrides: (0, core_1.MapNode)(StringNode({ enum: 'mob_category' }), (0, core_1.ObjectNode)({\r\n bounding_box: StringNode({ enum: ['piece', 'full'] }),\r\n spawns: Biome_1.MobCategorySpawnSettings,\r\n })),\r\n config: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n cluster_probability: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureSetSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initStructureSetSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('structure_set', (0, core_1.ObjectNode)({\r\n structures: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n structure: (0, Common_1.Tag)({ resource: '$worldgen/configured_structure_feature' }),\r\n weight: (0, core_1.NumberNode)({ integer: true, min: 1 })\r\n })),\r\n placement: Reference('structure_placement')\r\n }, { context: 'structure_set' }));\r\n schemas.register('structure_placement', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_placement' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:concentric_rings': {\r\n distance: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n spread: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4095 })\r\n },\r\n 'minecraft:random_spread': {\r\n spread_type: (0, core_1.Opt)(StringNode({ enum: ['linear', 'triangular'] })),\r\n spacing: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n separation: (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n locate_offset: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n }\r\n }\r\n }, { context: 'structure_placement' }), {\r\n default: () => ({\r\n type: 'minecraft:random_spread',\r\n spacing: 10,\r\n separation: 5,\r\n salt: Math.floor(Math.random() * 2147483647)\r\n })\r\n }));\r\n}\r\nexports.initStructureSetSchemas = initStructureSetSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceRuleSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceRuleSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('material_rule', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_rule' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block': {\r\n result_state: Reference('block_state'),\r\n },\r\n 'minecraft:condition': {\r\n if_true: Reference('material_condition'),\r\n then_run: Reference('material_rule')\r\n },\r\n 'minecraft:sequence': {\r\n sequence: (0, core_1.ListNode)(Reference('material_rule'))\r\n }\r\n }\r\n }, { context: 'material_rule', category: 'pool' }), {\r\n default: () => ({\r\n type: 'minecraft:block',\r\n result_state: {\r\n Name: 'minecraft:stone'\r\n }\r\n })\r\n }));\r\n schemas.register('material_condition', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_condition' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:biome': {\r\n biome_is: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:noise_threshold': {\r\n noise: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n min_threshold: (0, core_1.NumberNode)(),\r\n max_threshold: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:not': {\r\n invert: Reference('material_condition')\r\n },\r\n 'minecraft:stone_depth': {\r\n offset: (0, core_1.NumberNode)({ integer: true }),\r\n surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_surface_depth: (0, core_1.BooleanNode)(),\r\n secondary_depth_range: (0, core_1.NumberNode)({ integer: true }),\r\n },\r\n 'minecraft:vertical_gradient': {\r\n random_name: StringNode(),\r\n true_at_and_below: Reference('vertical_anchor'),\r\n false_at_and_above: Reference('vertical_anchor'),\r\n },\r\n 'minecraft:water': {\r\n offset: (0, core_1.NumberNode)({ integer: true }),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, core_1.BooleanNode)()\r\n },\r\n 'minecraft:y_above': {\r\n anchor: Reference('vertical_anchor'),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, core_1.BooleanNode)()\r\n }\r\n }\r\n }, { context: 'material_condition' }), {\r\n default: () => ({\r\n type: 'minecraft:biome',\r\n is_biome: 'minecraft:plains'\r\n })\r\n }));\r\n}\r\nexports.initSurfaceRuleSchemas = initSurfaceRuleSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('template_pool', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: (0, core_1.ListNode)(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst DensityFunction_1 = require(\"./DensityFunction\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst StructureSet_1 = require(\"./StructureSet\");\r\nconst SurfaceRule_1 = require(\"./SurfaceRule\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts`, `DensityFunction.ts`, and `Biome.ts` have exports. They should be initialized first. \r\n (0, ProcessorList_1.initProcessorListSchemas)(schemas, collections);\r\n (0, DensityFunction_1.initDensityFunctionSchemas)(schemas, collections);\r\n (0, Biome_1.initBiomeSchemas)(schemas, collections);\r\n (0, Carver_1.initCarverSchemas)(schemas, collections);\r\n (0, Decorator_1.initDecoratorSchemas)(schemas, collections);\r\n (0, Feature_1.initFeatureSchemas)(schemas, collections);\r\n (0, NoiseSettings_1.initNoiseSettingsSchemas)(schemas, collections);\r\n (0, StructureFeature_1.initStructureFeatureSchemas)(schemas, collections);\r\n (0, StructureSet_1.initStructureSetSchemas)(schemas, collections);\r\n (0, SurfaceRule_1.initSurfaceRuleSchemas)(schemas, collections);\r\n (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n generate_features: (0, core_1.BooleanNode)(),\r\n bonus_chest: (0, core_1.BooleanNode)(),\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n dimensions: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:overworld\"\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:nether\"\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, DimensionType_1.initDimensionTypeSchemas)(schemas, collections);\r\n (0, Dimension_1.initDimensionSchemas)(schemas, collections);\r\n (0, ItemModifier_1.initItemModifierSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, TextComponent_1.initTextComponentSchemas)(schemas, collections);\r\n (0, worldgen_1.initWorldgenSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, schemas_1.initSchemas)(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n"],"names":["core_1","require$$0","require$$1","Common_1","require$$2","ProcessorList_1","DensityFunction_1","Biome_1","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","this"],"mappings":"+1BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EACrC,GAAA,gBAAG,OAC1B,YAAyB,EAAa,CAClC,EAAY,SAAS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,6BACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,+BACA,uBACA,6BACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,gCACA,0BACA,yBACA,6BACA,2BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,uBACA,2BACA,2BACR,CAAK,EACD,EAAY,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,SACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,MACR,CAAK,EACD,EAAY,SAAS,WAAY,CAC7B,WACA,WACA,YACA,WACR,CAAK,EACD,EAAY,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,eACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,eACA,OACA,SACA,eACR,CAAK,EACD,EAAY,SAAS,iCAAkC,CACnD,gCACA,sCACA,qBACR,CAAK,EACD,EAAY,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,cACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,SACR,CAAK,EACD,EAAY,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,iBACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,aACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,kBACR,CAAK,EACD,EAAY,SAAS,kBAAmB,CACpC,MACA,QACR,CAAK,EACD,EAAY,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,iBACR,CAAK,EACD,EAAY,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,QACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,QACA,SACA,UACA,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,OACR,CAAK,EACD,EAAY,SAAS,eAAgB,CACjC,QACA,SACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,OACA,KACA,QACA,OACA,QACA,MACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,IACA,IACA,GACR,CAAK,EACD,EAAY,SAAS,mBAAoB,CACrC,wBACA,uBACA,wBACA,uBACA,MACA,OACA,SACA,OACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,QACA,MACR,CAAK,EA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"} \ No newline at end of file diff --git a/assets/index.8076ef8d.js b/assets/index.ec1836d3.js similarity index 99% rename from assets/index.8076ef8d.js rename to assets/index.ec1836d3.js index 42ec7d55..3d60c804 100644 --- a/assets/index.8076ef8d.js +++ b/assets/index.ec1836d3.js @@ -1,2 +1,2 @@ -var qe=Object.defineProperty,Ae=Object.defineProperties;var Ee=Object.getOwnPropertyDescriptors;var Ce=Object.getOwnPropertySymbols;var We=Object.prototype.hasOwnProperty,Ge=Object.prototype.propertyIsEnumerable;var Pe=(o,r,e)=>r in o?qe(o,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[r]=e,k=(o,r)=>{for(var e in r||(r={}))We.call(r,e)&&Pe(o,e,r[e]);if(Ce)for(var e of Ce(r))Ge.call(r,e)&&Pe(o,e,r[e]);return o},Le=(o,r)=>Ae(o,Ee(r));import{l as w,c as Q}from"./index.36354f76.js";function Ue(o,r){return r.forEach(function(e){e&&typeof e!="string"&&!Array.isArray(e)&&Object.keys(e).forEach(function(t){if(t!=="default"&&!(t in o)){var d=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(o,t,d.get?d:{enumerable:!0,get:function(){return e[t]}})}})}),Object.freeze(Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}))}var W={},oe={};Object.defineProperty(oe,"__esModule",{value:!0});oe.initCollections=void 0;function Ve(o){o.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"]),o.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),o.register("dimension_type",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),o.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"]),o.register("slot",["mainhand","offhand","head","chest","legs","feet"]),o.register("gamemode",["survival","creative","adventure","spectator"]),o.register("worldgen/noise_settings",["minecraft:overworld","minecraft:nether","minecraft:end","minecraft:amplified","minecraft:caves","minecraft:floating_islands"]),o.register("entity_source",["this","killer","direct_killer","killer_player"]),o.register("copy_source",["block_entity","this","killer","killer_player"]),o.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),o.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"]),o.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"]),o.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"]),o.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"]),o.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"]),o.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"]),o.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),o.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),o.register("generation_step",["air","liquid"]),o.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"]),o.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"]),o.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"]),o.register("cat_texture",["textures/entity/cat/tabby.png","textures/entity/cat/black.png","textures/entity/cat/red.png","textures/entity/cat/siamese.png","textures/entity/cat/british_shorthair.png","textures/entity/cat/calico.png","textures/entity/cat/persian.png","textures/entity/cat/ragdoll.png","textures/entity/cat/white.png","textures/entity/cat/jellie.png","textures/entity/cat/all_black.png"])}oe.initCollections=Ve;var ie={},ae={};Object.defineProperty(ae,"__esModule",{value:!0});ae.initAdvancementSchemas=void 0;const s=w;function He(o,r){const e=s.Reference.bind(void 0,o),t=s.StringNode.bind(void 0,r),d=(0,s.ChoiceNode)([{type:"object",node:(0,s.Opt)(e("entity_predicate")),change:a=>{var n,N;return(N=(n=a[0])===null||n===void 0?void 0:n.predicate)!==null&&N!==void 0?N:{}}},{type:"list",node:(0,s.ListNode)(e("condition")),change:a=>[{condition:"minecraft:entity_properties",predicate:a}]}],{context:"conditions"});o.register("advancement",(0,s.Mod)((0,s.ObjectNode)({display:(0,s.Opt)((0,s.Mod)((0,s.ObjectNode)({icon:(0,s.ObjectNode)({item:t({validator:"resource",params:{pool:"item"}}),nbt:(0,s.Opt)(t({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:e("text_component"),description:e("text_component"),background:(0,s.Opt)(t()),frame:(0,s.Opt)(t({enum:["task","challenge","goal"]})),show_toast:(0,s.Opt)((0,s.BooleanNode)()),announce_to_chat:(0,s.Opt)((0,s.BooleanNode)()),hidden:(0,s.Opt)((0,s.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,s.Opt)(t({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,s.MapNode)(t(),e("advancement_criteria")),requirements:(0,s.Opt)((0,s.ListNode)((0,s.ListNode)(t()))),rewards:(0,s.Opt)((0,s.ObjectNode)({function:(0,s.Opt)(t({validator:"resource",params:{pool:"$function"}})),loot:(0,s.Opt)((0,s.ListNode)(t({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,s.Opt)((0,s.ListNode)(t({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,s.Opt)((0,s.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),o.register("advancement_criteria",(0,s.ObjectNode)({trigger:t({validator:"resource",params:{pool:r.get("advancement_trigger")}}),conditions:(0,s.Opt)((0,s.ObjectNode)({player:(0,s.Mod)(d,{enabled:a=>a.pop().push("trigger").get()!=="minecraft:impossible"}),[s.Switch]:["pop",{push:"trigger"}],[s.Case]:{"minecraft:bee_nest_destroyed":{block:(0,s.Opt)(t({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,s.Opt)((0,s.NumberNode)({integer:!0})),item:(0,s.Opt)(e("item_predicate"))},"minecraft:bred_animals":{parent:d,partner:d,child:d},"minecraft:brewed_potion":{potion:(0,s.Opt)(t({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,s.Opt)(t({validator:"resource",params:{pool:"$dimension"}})),to:(0,s.Opt)(t({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:construct_beacon":{level:e("int_bounds")},"minecraft:consume_item":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:cured_zombie_villager":{villager:d,zombie:d},"minecraft:effects_changed":{effects:(0,s.Opt)((0,s.MapNode)(t({validator:"resource",params:{pool:"mob_effect"}}),(0,s.ObjectNode)({amplifier:e("int_bounds"),duration:e("int_bounds")}))),source:(0,s.Opt)(d)},"minecraft:enter_block":{block:(0,s.Opt)(t({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(t(),t(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:e("int_bounds"),item:(0,s.Opt)(e("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,s.Opt)(e("damage_predicate"))},"minecraft:entity_killed_player":{entity:d,killing_blow:(0,s.Opt)(e("damage_source_predicate"))},"minecraft:filled_bucket":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:d,item:(0,s.Opt)(e("item_predicate"))},"minecraft:hero_of_the_village":{location:(0,s.Opt)(e("location_predicate"))},"minecraft:inventory_changed":{slots:(0,s.Opt)((0,s.ObjectNode)({empty:e("int_bounds"),occupied:e("int_bounds"),full:e("int_bounds")})),items:(0,s.Opt)((0,s.ListNode)(e("item_predicate")))},"minecraft:item_durability_changed":{delta:e("int_bounds"),durability:e("int_bounds"),item:(0,s.Opt)(e("item_predicate"))},"minecraft:item_used_on_block":{item:(0,s.Opt)(e("item_predicate")),location:(0,s.Opt)(e("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:e("int_bounds"),victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:levitation":{distance:e("distance_predicate"),duration:e("int_bounds")},"minecraft:lightning_strike":{lightning:d,bystander:d},"minecraft:location":{location:(0,s.Opt)(e("location_predicate"))},"minecraft:nether_travel":{distance:e("distance_predicate"),entered:(0,s.Opt)(e("location_predicate")),exited:(0,s.Opt)(e("location_predicate"))},"minecraft:placed_block":{block:(0,s.Opt)(t({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(t(),t(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,s.Opt)(e("item_predicate")),location:(0,s.Opt)(e("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:t({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:(0,s.Opt)(e("damage_predicate")),entity:d},"minecraft:player_interacted_with_entity":{item:(0,s.Opt)(e("item_predicate")),entity:d},"minecraft:player_killed_entity":{entity:d,killing_blow:(0,s.Opt)(e("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:t({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:(0,s.Opt)(e("location_predicate"))},"minecraft:slide_down_block":{block:(0,s.Opt)(t({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:summoned_entity":{entity:d},"minecraft:tame_animal":{entity:d},"minecraft:target_hit":{projectile:d,shooter:d,signal_strength:e("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:d,item:(0,s.Opt)(e("item_predicate"))},"minecraft:used_ender_eye":{distance:e("float_bounds")},"minecraft:used_totem":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:using_item":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:villager_trade":{villager:d,item:(0,s.Opt)(e("item_predicate"))},"minecraft:voluntary_exile":{location:e("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))}ae.initAdvancementSchemas=He;var ne={},ce={};Object.defineProperty(ce,"__esModule",{value:!0});ce.initModelSchemas=void 0;const g=w;function Ke(o,r){g.Reference.bind(void 0,o);const e=g.StringNode.bind(void 0,r),t=(a,n,N)=>(0,g.ListNode)((0,g.NumberNode)({min:n,max:N}),{minLength:a,maxLength:a}),d=(0,g.ChoiceNode)([{type:"alias",match:a=>typeof a=="string"&&a.startsWith("#"),node:e(),change:a=>typeof a=="string"?`#${a}`:"#0"},{type:"reference",match:a=>typeof a=="string",node:e({validator:"resource",params:{pool:"$texture"}}),change:a=>typeof a=="string"?a.replace(/^#/,""):""}],{choiceContext:"texture"});o.register("model",(0,g.Mod)((0,g.ObjectNode)({parent:(0,g.Opt)(e({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,g.Opt)((0,g.BooleanNode)()),gui_light:(0,g.Opt)(e({enum:"gui_light"})),textures:(0,g.Opt)((0,g.MapNode)(e(),d)),elements:(0,g.Opt)((0,g.ListNode)((0,g.ObjectNode)({from:t(3,-16,32),to:t(3,-16,32),rotation:(0,g.Opt)((0,g.ObjectNode)({origin:t(3),axis:e({enum:"axis"}),angle:(0,g.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,g.Opt)((0,g.BooleanNode)())})),shade:(0,g.Opt)((0,g.BooleanNode)()),faces:(0,g.MapNode)(e({enum:"direction"}),(0,g.ObjectNode)({texture:d,uv:(0,g.Opt)(t(4)),cullface:(0,g.Opt)(e({enum:"direction"})),rotation:(0,g.Opt)((0,g.NumberNode)({integer:!0})),tintindex:(0,g.Opt)((0,g.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,g.Opt)((0,g.MapNode)(e({enum:"display_position"}),(0,g.ObjectNode)({rotation:t(3),translation:t(3,-80,80),scale:t(3,-4,4)},{context:"item_transform"}))),overrides:(0,g.Opt)((0,g.ListNode)((0,g.ObjectNode)({predicate:(0,g.MapNode)(e({enum:"item_model_predicates"}),(0,g.NumberNode)()),model:e({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))}ce.initModelSchemas=Ke;var de={};Object.defineProperty(de,"__esModule",{value:!0});de.initBlockDefinitionSchemas=void 0;const x=w;function Xe(o,r){const e=x.Reference.bind(void 0,o),t=x.StringNode.bind(void 0,r);o.register("block_definition",(0,x.Mod)((0,x.ChoiceNode)([{type:"variants",match:a=>a.variants!==void 0,node:(0,x.ObjectNode)({variants:(0,x.MapNode)(t(),e("model_variant"))}),change:a=>({variants:{"":{}}})},{type:"multipart",match:a=>a.multipart!==void 0,node:(0,x.ObjectNode)({multipart:(0,x.ListNode)((0,x.ObjectNode)({when:(0,x.Opt)(e("multipart_condition")),apply:e("model_variant")}))}),change:a=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const d={model:t({validator:"resource",params:{pool:"$model"}}),x:(0,x.Opt)((0,x.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,x.Opt)((0,x.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,x.Opt)((0,x.BooleanNode)())};o.register("model_variant",(0,x.ChoiceNode)([{type:"object",node:(0,x.ObjectNode)(d),change:a=>Array.isArray(a)&&a.length>0?a[0]:{}},{type:"list",node:(0,x.ListNode)((0,x.ObjectNode)(Le(k({},d),{weight:(0,x.Opt)((0,x.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:a=>[k({weight:1},a)]}],{context:"model_variant"})),o.register("multipart_condition",(0,x.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,x.MapNode)(t(),t()),change:a=>typeof a=="object"&&Array.isArray(a==null?void 0:a.OR)&&a.OR.length>0?a.OR[0]:{}},{type:"or",match:a=>typeof a=="object"&&(a==null?void 0:a.OR)!==void 0,node:(0,x.ObjectNode)({OR:(0,x.ListNode)(e("multipart_condition"))}),change:a=>({OR:[a!=null?a:{}]})}],{context:"multipart_condition"}))}de.initBlockDefinitionSchemas=Xe;Object.defineProperty(ne,"__esModule",{value:!0});ne.initAssetsSchemas=void 0;const Ze=ce,Ye=de;function Je(o,r){(0,Ye.initBlockDefinitionSchemas)(o,r),(0,Ze.initModelSchemas)(o,r)}ne.initAssetsSchemas=Je;var F={};(function(o){Object.defineProperty(o,"__esModule",{value:!0}),o.initCommonSchemas=o.IntProvider=o.FloatProvider=o.NoiseSettingsPresets=o.DefaultNoiseSettings=o.DimensionTypePresets=o.DefaultDimensionType=o.FunctionCases=o.ConditionCases=void 0;const r=w;o.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},o.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"}}};function e(t,d){const a=r.StringNode.bind(void 0,d),n=r.Reference.bind(void 0,t);t.register("block_state",(0,r.Mod)((0,r.ObjectNode)({Name:a({validator:"resource",params:{pool:"block"}}),Properties:(0,r.Opt)((0,r.MapNode)(a(),a(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),t.register("fluid_state",(0,r.Mod)((0,r.ObjectNode)({Name:a({validator:"resource",params:{pool:"fluid"}}),Properties:(0,r.Opt)((0,r.MapNode)(a(),a()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),t.register("block_pos",(0,r.Mod)((0,r.ListNode)((0,r.NumberNode)({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const N=u=>(0,r.Opt)((0,r.ChoiceNode)([{type:"number",node:(0,r.NumberNode)({integer:u}),change:v=>{var j,O;return v===void 0?0:(O=(j=v.min)!==null&&j!==void 0?j:v.max)!==null&&O!==void 0?O:0}},{type:"object",node:(0,r.ObjectNode)({min:(0,r.Opt)((0,r.NumberNode)({integer:u})),max:(0,r.Opt)((0,r.NumberNode)({integer:u}))},{context:"range"}),change:v=>({min:v!=null?v:0,max:v!=null?v:0})}]));t.register("int_bounds",N(!0)),t.register("float_bounds",N()),t.register("int_range",(0,r.ChoiceNode)([{type:"object",node:(0,r.ObjectNode)({min:(0,r.Opt)(n("number_provider")),max:(0,r.Opt)(n("number_provider"))})},{type:"number",node:(0,r.NumberNode)({integer:!0})}],{context:"range"}));const B=(u,v,j,O,P,L,I)=>{let re={};P&&Object.keys(I[P]).forEach(T=>{re[T]=(0,r.Mod)(I[P][T],{enabled:D=>D.push("type").get()===void 0})});const K=(0,r.ObjectNode)(k({type:(0,r.Mod)((0,r.Opt)(a({validator:"resource",params:{pool:u}})),{hidden:()=>!0}),[r.Switch]:[{push:"type"}],[r.Case]:I},re),{context:L,disableSwitchContext:!0}),X=[{type:v,node:I[O][j]}];return P&&X.push({type:"object",priority:-1,node:K}),Object.keys(I).forEach(T=>{X.push({type:T,match:D=>{var Z;if("minecraft:"+((Z=D==null?void 0:D.type)===null||Z===void 0?void 0:Z.replace(/^minecraft:/,""))===T)return!0;const q=D?Object.keys(D):[];return typeof D=="object"&&((q==null?void 0:q.length)===0||(q==null?void 0:q.length)===1&&(q==null?void 0:q[0])==="type")},node:K,change:D=>({type:T})})}),(0,r.ChoiceNode)(X,{context:L,choiceContext:`${L}.type`})};t.register("number_provider",B("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:(0,r.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:(0,r.Opt)((0,r.NumberNode)())}})),t.register("scoreboard_name_provider",B("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:(0,r.Mod)(a({enum:"entity_source"}),{default:()=>"this"})}})),t.register("nbt_provider",B("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:a({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:(0,r.Mod)(a({enum:"copy_source"}),{default:()=>"this"})}})),o.FloatProvider=u=>B("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:(0,r.NumberNode)(u)},"minecraft:uniform":{value:(0,r.ObjectNode)({min_inclusive:(0,r.NumberNode)(u),max_exclusive:(0,r.NumberNode)(u)})},"minecraft:clamped_normal":{value:(0,r.ObjectNode)({min:(0,r.NumberNode)(),max:(0,r.NumberNode)(),mean:(0,r.NumberNode)(),deviation:(0,r.NumberNode)()})},"minecraft:trapezoid":{value:(0,r.ObjectNode)({min:(0,r.NumberNode)(),max:(0,r.NumberNode)(),plateau:(0,r.NumberNode)()})}}),t.register("float_provider",(0,o.FloatProvider)()),o.IntProvider=u=>B("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:(0,r.NumberNode)(k({integer:!0},u))},"minecraft:uniform":{value:(0,r.ObjectNode)({min_inclusive:(0,r.NumberNode)(k({integer:!0},u)),max_inclusive:(0,r.NumberNode)(k({integer:!0},u))})},"minecraft:biased_to_bottom":{value:(0,r.ObjectNode)({min_inclusive:(0,r.NumberNode)(k({integer:!0},u)),max_inclusive:(0,r.NumberNode)(k({integer:!0},u))})},"minecraft:clamped":{value:(0,r.ObjectNode)({min_inclusive:(0,r.NumberNode)(k({integer:!0},u)),max_inclusive:(0,r.NumberNode)(k({integer:!0},u)),source:n("int_provider")})}}),t.register("int_provider",(0,o.IntProvider)()),t.register("vertical_anchor",(0,r.ChoiceNode)(["absolute","above_bottom","below_top"].map(u=>({type:u,match:v=>(v==null?void 0:v[u])!==void 0,change:v=>{var j,O,P;return{[u]:(P=(O=(j=v.absolute)!==null&&j!==void 0?j:v.above_bottom)!==null&&O!==void 0?O:v.below_top)!==null&&P!==void 0?P:0}},node:(0,r.ObjectNode)({[u]:(0,r.NumberNode)({integer:!0,min:-2048,max:2047})})})),{context:"vertical_anchor"})),t.register("height_provider",B("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:(0,r.Opt)((0,r.NumberNode)({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor"),inner:(0,r.Opt)((0,r.NumberNode)({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor"),plateau:(0,r.Opt)((0,r.NumberNode)({integer:!0}))}})),o.ConditionCases=(u=a({enum:"entity_source"}))=>({"minecraft:alternative":{terms:(0,r.ListNode)(n("condition"))},"minecraft:block_state_property":{block:a({validator:"resource",params:{pool:"block"}}),properties:(0,r.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:u,predicate:n("entity_predicate")},"minecraft:entity_scores":{entity:u,scores:(0,r.MapNode)(a({validator:"objective"}),n("int_range"))},"minecraft:inverted":{term:n("condition")},"minecraft:killed_by_player":{inverse:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:location_check":{offsetX:(0,r.Opt)((0,r.NumberNode)({integer:!0})),offsetY:(0,r.Opt)((0,r.NumberNode)({integer:!0})),offsetZ:(0,r.Opt)((0,r.NumberNode)({integer:!0})),predicate:n("location_predicate")},"minecraft:match_tool":{predicate:n("item_predicate")},"minecraft:random_chance":{chance:(0,r.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,r.NumberNode)({min:0,max:1}),looting_multiplier:(0,r.NumberNode)()},"minecraft:reference":{name:a({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:a({validator:"resource",params:{pool:"enchantment"}}),chances:(0,r.ListNode)((0,r.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:n("int_range"),period:(0,r.Opt)((0,r.NumberNode)({integer:!0}))},"minecraft:value_check":{value:n("number_provider"),range:n("int_range")},"minecraft:weather_check":{raining:(0,r.Opt)((0,r.BooleanNode)()),thundering:(0,r.Opt)((0,r.BooleanNode)())}}),o.FunctionCases=(u,v=a({enum:"copy_source"}),j=a({enum:"entity_source"}))=>{const O={"minecraft:apply_bonus":{enchantment:a({validator:"resource",params:{pool:"enchantment"}}),formula:a({validator:"resource",params:{pool:d.get("loot_table_apply_bonus_formula")}}),parameters:(0,r.Mod)((0,r.ObjectNode)({bonusMultiplier:(0,r.Mod)((0,r.NumberNode)(),{enabled:L=>L.pop().push("formula").get()==="minecraft:uniform_bonus_count"}),extra:(0,r.Mod)((0,r.NumberNode)(),{enabled:L=>L.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"}),probability:(0,r.Mod)((0,r.NumberNode)(),{enabled:L=>L.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"})}),{enabled:L=>L.push("formula").get()!=="minecraft:ore_drops"})},"minecraft:copy_name":{source:v},"minecraft:copy_nbt":{source:n("nbt_provider"),ops:(0,r.ListNode)((0,r.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:(0,r.ListNode)(a({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,r.Opt)((0,r.ListNode)(a({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:n("number_provider"),treasure:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:exploration_map":{destination:(0,r.Opt)(a({enum:"map_feature"})),decoration:(0,r.Opt)(a({enum:"map_decoration"})),zoom:(0,r.Opt)((0,r.NumberNode)({integer:!0})),search_radius:(0,r.Opt)((0,r.NumberNode)({integer:!0})),skip_existing_chunks:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:fill_player_head":{entity:j},"minecraft:limit_count":{limit:n("int_range")},"minecraft:looting_enchant":{count:n("number_provider"),limit:(0,r.Opt)((0,r.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,r.ListNode)(n("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:(0,r.ListNode)((0,r.ObjectNode)({pattern:a({enum:"banner_pattern"}),color:a({enum:"dye_color"})})),append:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:set_contents":{entries:(0,r.ListNode)(n("loot_entry"))},"minecraft:set_count":{count:n("number_provider"),add:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:set_damage":{damage:n("number_provider"),add:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:set_enchantments":{enchantments:(0,r.MapNode)(a({validator:"resource",params:{pool:"enchantment"}}),n("number_provider")),add:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:set_loot_table":{name:a({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,r.Opt)((0,r.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,r.Opt)(j),lore:(0,r.ListNode)(n("text_component")),replace:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:set_name":{entity:(0,r.Opt)(j),name:(0,r.Opt)(n("text_component"))},"minecraft:set_nbt":{tag:a({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:(0,r.Opt)((0,r.ListNode)((0,r.ObjectNode)({type:a({validator:"resource",params:{pool:"mob_effect"}}),duration:n("number_provider")})))}},P={};return d.get("loot_function_type").forEach(L=>{P[L]=k(k({},O[L]),u)}),P},o.DimensionTypePresets=u=>(0,r.ObjectOrPreset)(a({validator:"resource",params:{pool:"$dimension_type"}}),u,{"minecraft:overworld":o.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}}),o.NoiseSettingsPresets=u=>(0,r.ObjectOrPreset)(a({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),u,{"minecraft:overworld":o.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"}}}})}o.initCommonSchemas=e})(F);var se={};Object.defineProperty(se,"__esModule",{value:!0});se.initConditionSchemas=void 0;const Y=w,Qe=F;function et(o,r){const e=Y.Reference.bind(void 0,o),t=Y.StringNode.bind(void 0,r);o.register("predicate",(0,Y.ObjectOrList)(e("condition"),{choiceContext:"condition"})),o.register("condition",(0,Y.Mod)((0,Y.ObjectNode)({condition:t({validator:"resource",params:{pool:"loot_condition_type"}}),[Y.Switch]:[{push:"condition"}],[Y.Case]:(0,Qe.ConditionCases)()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))}se.initConditionSchemas=et;var me={};Object.defineProperty(me,"__esModule",{value:!0});me.initDimensionSchemas=void 0;const f=w,Be=F;function tt(o,r){const e=f.Reference.bind(void 0,o),t=f.StringNode.bind(void 0,r),d=a=>(0,f.Mod)(a,{enabled:n=>n.push("preset").get()===void 0});o.register("dimension",(0,f.Mod)((0,f.ObjectNode)({type:(0,Be.DimensionTypePresets)(e("dimension_type")),generator:(0,f.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[f.Switch]:[{push:"type"}],[f.Case]:{"minecraft:noise":{seed:(0,f.NumberNode)({integer:!0}),settings:(0,Be.NoiseSettingsPresets)(e("noise_settings")),biome_source:(0,f.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/biome_source"}}),[f.Switch]:[{push:"type"}],[f.Case]:{"minecraft:fixed":{biome:t({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:(0,f.NumberNode)({integer:!0}),preset:(0,f.Opt)(t({enum:["nether"]})),altitude_noise:d(e("generator_biome_noise")),temperature_noise:d(e("generator_biome_noise")),humidity_noise:d(e("generator_biome_noise")),weirdness_noise:d(e("generator_biome_noise")),biomes:d((0,f.Mod)((0,f.ListNode)(e("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:(0,f.Opt)((0,f.NumberNode)({integer:!0,min:0,max:62})),biomes:(0,f.ListNode)(t({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:(0,f.NumberNode)({integer:!0})},"minecraft:vanilla_layered":{seed:(0,f.NumberNode)({integer:!0}),large_biomes:(0,f.Opt)((0,f.BooleanNode)()),legacy_biome_init_layer:(0,f.Opt)((0,f.BooleanNode)())}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:(0,f.ObjectNode)({biome:(0,f.Opt)(t({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:(0,f.Opt)((0,f.BooleanNode)()),features:(0,f.Opt)((0,f.BooleanNode)()),layers:(0,f.ListNode)(e("generator_layer")),structures:e("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const a=Math.floor(Math.random()*4294967296)-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:a,biome_source:{type:"minecraft:fixed",seed:a,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}})),o.register("generator_biome",(0,f.Mod)((0,f.ObjectNode)({biome:t({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:(0,f.ObjectNode)({altitude:(0,f.NumberNode)(),temperature:(0,f.NumberNode)(),humidity:(0,f.NumberNode)(),weirdness:(0,f.NumberNode)(),offset:(0,f.NumberNode)()})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),o.register("generator_biome_noise",(0,f.Mod)((0,f.ObjectNode)({firstOctave:(0,f.NumberNode)({integer:!0}),amplitudes:(0,f.ListNode)((0,f.NumberNode)())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))}me.initDimensionSchemas=tt;var le={};Object.defineProperty(le,"__esModule",{value:!0});le.initDimensionTypeSchemas=void 0;const M=w,rt=F;function ot(o,r){const e=M.StringNode.bind(void 0,r);o.register("dimension_type",(0,M.Mod)((0,M.ObjectNode)({name:(0,M.Mod)(e({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:t=>t.getArray().length>0}),ultrawarm:(0,M.BooleanNode)(),natural:(0,M.BooleanNode)(),piglin_safe:(0,M.BooleanNode)(),respawn_anchor_works:(0,M.BooleanNode)(),bed_works:(0,M.BooleanNode)(),has_raids:(0,M.BooleanNode)(),has_skylight:(0,M.BooleanNode)(),has_ceiling:(0,M.BooleanNode)(),coordinate_scale:(0,M.NumberNode)({min:1e-5,max:3e7}),ambient_light:(0,M.NumberNode)(),fixed_time:(0,M.Opt)((0,M.NumberNode)({integer:!0})),logical_height:(0,M.NumberNode)({integer:!0,min:0,max:4096}),effects:(0,M.Opt)(e({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:e({validator:"resource",params:{pool:"$tag/block"}}),min_y:(0,M.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,M.NumberNode)({integer:!0,min:0,max:4096})},{context:"dimension_type"}),t=>({default:()=>rt.DefaultDimensionType,validate:(d,a,n,N)=>(a=t.validate(d,a,n,N),(a==null?void 0:a.min_y)+(a==null?void 0:a.height)>2047&&n.add(d.push("height"),"error.min_y_plus_height",2047),(a==null?void 0:a.logical_height)>(a==null?void 0:a.height)&&n.add(d.push("logical_height"),"error.logical_height"),(a==null?void 0:a.height)%16!==0&&n.add(d.push("height"),"error.height_multiple",16),(a==null?void 0:a.min_y)%16!==0&&n.add(d.push("min_y"),"error.min_y_multiple",16),a)})))}le.initDimensionTypeSchemas=ot;var _e={};Object.defineProperty(_e,"__esModule",{value:!0});_e.initItemModifierSchemas=void 0;const A=w,it=F;function at(o,r){const e=A.Reference.bind(void 0,o),t=A.StringNode.bind(void 0,r);o.register("item_modifier",(0,A.ObjectOrList)(e("function"),{choiceContext:"function"}));const d={conditions:(0,A.Opt)((0,A.ListNode)(e("condition")))};o.register("function",(0,A.Mod)((0,A.ObjectNode)({function:t({validator:"resource",params:{pool:"loot_function_type"}}),[A.Switch]:[{push:"function"}],[A.Case]:(0,it.FunctionCases)(d)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))}_e.initItemModifierSchemas=at;var pe={},R={};Object.defineProperty(R,"__esModule",{value:!0});R.LootFunctions=R.LootConditions=R.LootCopySources=R.LootEntitySources=R.LootTableTypes=void 0;R.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]}]]);R.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]);R.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]);R.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",[]]]);R.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(pe,"__esModule",{value:!0});pe.initLootTableSchemas=void 0;const b=w,ee=R,ze=F;function nt(o,r){const e=b.Reference.bind(void 0,o),t=b.StringNode.bind(void 0,r),d={conditions:(0,b.Opt)((0,b.ListNode)(e("loot_condition")))},a=k({functions:(0,b.Opt)((0,b.ListNode)(e("loot_function")))},d);function n(O,P,L){const I=[],re=K=>r.get(P).filter(X=>{var T;return((T=O.get(X))!==null&&T!==void 0?T:[]).every(Z=>K.includes(Z))});for(const[K,{allows:X,requires:T}]of ee.LootTableTypes){const D=[...X,...T];I.push({match:Z=>Z.getModel().get(new b.Path(["type"]))===K,node:L(re(D))})}return I.push({match:K=>!0,node:L(P)}),(0,b.SwitchNode)(I)}const N=n(ee.LootConditions,"loot_condition_type",O=>t({validator:"resource",params:{pool:O instanceof Array?O:"loot_condition_type"}})),B=n(ee.LootFunctions,"loot_function_type",O=>t({validator:"resource",params:{pool:O instanceof Array?O:"loot_function_type"}})),u=n(ee.LootEntitySources,"entity_source",O=>t({enum:O})),v=n(ee.LootCopySources,"copy_source",O=>t({enum:O}));o.register("loot_table",(0,b.Mod)((0,b.ObjectNode)({type:(0,b.Opt)(t({validator:"resource",params:{pool:r.get("loot_context_type")}})),pools:(0,b.Opt)((0,b.ListNode)((0,b.Mod)((0,b.ObjectNode)(k({rolls:e("number_provider"),bonus_rolls:(0,b.Opt)(e("number_provider")),entries:(0,b.ListNode)(e("loot_entry"))},a),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,b.Opt)((0,b.ListNode)(e("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const j={enabled:O=>{var P;return((P=O.pop().get())===null||P===void 0?void 0:P.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(O.push("type").get())}};o.register("loot_entry",(0,b.Mod)((0,b.ObjectNode)({type:t({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,b.Opt)((0,b.Mod)((0,b.NumberNode)({integer:!0,min:1}),j)),quality:(0,b.Opt)((0,b.Mod)((0,b.NumberNode)({integer:!0}),j)),[b.Switch]:[{push:"type"}],[b.Case]:{"minecraft:alternatives":k({children:(0,b.ListNode)(e("loot_entry"))},a),"minecraft:dynamic":k({name:t()},a),"minecraft:group":k({children:(0,b.ListNode)(e("loot_entry"))},a),"minecraft:item":k({name:t({validator:"resource",params:{pool:"item"}})},a),"minecraft:loot_table":k({name:t({validator:"resource",params:{pool:"$loot_table"}})},a),"minecraft:sequence":k({children:(0,b.ListNode)(e("loot_entry"))},a),"minecraft:tag":k({name:t({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,b.Opt)((0,b.BooleanNode)())},a)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),o.register("loot_function",(0,b.Mod)((0,b.ObjectNode)({function:B,[b.Switch]:[{push:"function"}],[b.Case]:(0,ze.FunctionCases)(d,v,u)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),o.register("loot_condition",(0,b.Mod)((0,b.ObjectNode)({condition:N,[b.Switch]:[{push:"condition"}],[b.Case]:(0,ze.ConditionCases)(u)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),o.register("attribute_modifier",(0,b.Mod)((0,b.ObjectNode)({attribute:t({validator:"resource",params:{pool:"attribute"}}),name:t(),amount:e("number_provider"),operation:t({enum:["addition","multiply_base","multiply_total"]}),slot:(0,b.StringOrList)(t({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))}pe.initLootTableSchemas=nt;var ue={};Object.defineProperty(ue,"__esModule",{value:!0});ue.initPackMcmetaSchemas=void 0;const J=w,G=7;function ct(o,r){o.register("pack_mcmeta",(0,J.Mod)((0,J.ObjectNode)({pack:(0,J.Mod)((0,J.ObjectNode)({pack_format:(0,J.Mod)((0,J.NumberNode)({integer:!0,min:G,max:G}),{default:()=>G,canUpdate:(e,t)=>t!==G,update:()=>[{name:"pack_format",params:[G],newValue:G}]}),description:(0,J.Reference)(o,"text_component")}),{default:()=>({pack_format:G,description:""})})}),{default:()=>({pack:{pack_format:G,description:""}})}))}ue.initPackMcmetaSchemas=ct;var fe={};Object.defineProperty(fe,"__esModule",{value:!0});fe.initPredicatesSchemas=void 0;const c=w;function dt(o,r){const e=c.Reference.bind(void 0,o),t=c.StringNode.bind(void 0,r),d=(0,c.ChoiceNode)([{type:"string",node:t(),change:a=>typeof a=="boolean"||typeof a=="number"?a.toString():""},{type:"number",node:(0,c.NumberNode)(),change:a=>typeof a=="string"?parseInt(a):0},{type:"object",node:(0,c.ObjectNode)({min:(0,c.Opt)((0,c.NumberNode)({integer:!0})),max:(0,c.Opt)((0,c.NumberNode)({integer:!0}))}),change:a=>typeof a=="number"?{min:a,max:a}:{}},{type:"boolean",node:(0,c.BooleanNode)(),change:a=>a==="true"||a===1}]);o.register("item_predicate",(0,c.ObjectNode)({items:(0,c.Opt)((0,c.ListNode)(t({validator:"resource",params:{pool:"item"}}))),tag:(0,c.Opt)(t({validator:"resource",params:{pool:"$tag/item"}})),count:e("int_bounds"),durability:e("int_bounds"),potion:(0,c.Opt)(t({validator:"resource",params:{pool:"potion"}})),nbt:(0,c.Opt)(t({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,c.Opt)((0,c.ListNode)(e("enchantment_predicate")))},{context:"item"})),o.register("enchantment_predicate",(0,c.ObjectNode)({enchantment:(0,c.Opt)(t({validator:"resource",params:{pool:"enchantment"}})),levels:e("int_bounds")},{context:"enchantment"})),o.register("block_predicate",(0,c.ObjectNode)({blocks:(0,c.Opt)((0,c.ListNode)(t({validator:"resource",params:{pool:"block"}}))),tag:(0,c.Opt)(t({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,c.Opt)(t({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,c.Opt)((0,c.MapNode)(t(),d,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),o.register("fluid_predicate",(0,c.ObjectNode)({fluid:(0,c.Opt)(t({validator:"resource",params:{pool:"fluid"}})),tag:(0,c.Opt)(t({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,c.Opt)((0,c.MapNode)(t(),d))},{context:"fluid"})),o.register("location_predicate",(0,c.ObjectNode)({position:(0,c.Opt)((0,c.ObjectNode)({x:e("float_bounds"),y:e("float_bounds"),z:e("float_bounds")})),biome:(0,c.Opt)(t({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:(0,c.Opt)(t({enum:r.get("worldgen/structure_feature").map(a=>a.slice(10))})),dimension:(0,c.Opt)(t({validator:"resource",params:{pool:"$dimension"}})),light:(0,c.Opt)((0,c.ObjectNode)({light:e("int_bounds")})),smokey:(0,c.Opt)((0,c.BooleanNode)()),block:(0,c.Opt)(e("block_predicate")),fluid:(0,c.Opt)(e("fluid_predicate"))},{context:"location"})),o.register("statistic_predicate",(0,c.ObjectNode)({type:t({validator:"resource",params:{pool:"stat_type"}}),stat:t(),value:e("int_bounds"),[c.Switch]:[{push:"type"}],[c.Case]:{"minecraft:mined":{stat:t({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:t({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:t({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:t({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:t({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:t({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:t({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:t({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:t({validator:"resource",params:{pool:"custom_stat"}})}}})),o.register("player_predicate",(0,c.ObjectNode)({gamemode:(0,c.Opt)(t({enum:"gamemode"})),level:e("int_bounds"),advancements:(0,c.Opt)((0,c.MapNode)(t({validator:"resource",params:{pool:"$advancement"}}),(0,c.ChoiceNode)([{type:"boolean",node:(0,c.BooleanNode)(),change:a=>!0},{type:"object",node:(0,c.MapNode)(t(),(0,c.BooleanNode)())}]))),recipes:(0,c.Opt)((0,c.MapNode)(t({validator:"resource",params:{pool:"$recipe"}}),(0,c.BooleanNode)())),stats:(0,c.Opt)((0,c.ListNode)(e("statistic_predicate"))),looking_at:(0,c.Opt)(e("entity_predicate"))},{context:"player"})),o.register("status_effect_predicate",(0,c.ObjectNode)({amplifier:e("int_bounds"),duration:e("int_bounds"),ambient:(0,c.Opt)((0,c.BooleanNode)()),visible:(0,c.Opt)((0,c.BooleanNode)())},{context:"status_effect"})),o.register("distance_predicate",(0,c.ObjectNode)({x:e("float_bounds"),y:e("float_bounds"),z:e("float_bounds"),absolute:e("float_bounds"),horizontal:e("float_bounds")},{context:"distance"})),o.register("entity_predicate",(0,c.ObjectNode)({type:(0,c.Opt)(t({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:(0,c.Opt)(t({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,c.Opt)(t({validator:"team"})),location:(0,c.Opt)(e("location_predicate")),stepping_on:(0,c.Opt)(e("location_predicate")),distance:(0,c.Opt)(e("distance_predicate")),flags:(0,c.Opt)((0,c.ObjectNode)({is_on_fire:(0,c.Opt)((0,c.BooleanNode)()),is_sneaking:(0,c.Opt)((0,c.BooleanNode)()),is_sprinting:(0,c.Opt)((0,c.BooleanNode)()),is_swimming:(0,c.Opt)((0,c.BooleanNode)()),is_baby:(0,c.Opt)((0,c.BooleanNode)())})),equipment:(0,c.Opt)((0,c.MapNode)(t({enum:"slot"}),e("item_predicate"))),vehicle:(0,c.Opt)(e("entity_predicate")),passenger:(0,c.Opt)(e("entity_predicate")),targeted_entity:(0,c.Opt)(e("entity_predicate")),player:(0,c.Opt)(e("player_predicate")),lightning_bolt:(0,c.Opt)((0,c.ObjectNode)({blocks_set_on_fire:(0,c.Opt)(e("int_bounds")),entity_struck:(0,c.Opt)(e("entity_predicate"))})),fishing_hook:(0,c.Opt)((0,c.ObjectNode)({in_open_water:(0,c.Opt)((0,c.BooleanNode)())})),catType:(0,c.Opt)(t({enum:"cat_texture"})),effects:(0,c.Opt)((0,c.MapNode)(t({validator:"resource",params:{pool:"mob_effect"}}),e("status_effect_predicate")))},{context:"entity"})),o.register("damage_source_predicate",(0,c.ObjectNode)({is_explosion:(0,c.Opt)((0,c.BooleanNode)()),is_fire:(0,c.Opt)((0,c.BooleanNode)()),is_magic:(0,c.Opt)((0,c.BooleanNode)()),is_projectile:(0,c.Opt)((0,c.BooleanNode)()),is_lightning:(0,c.Opt)((0,c.BooleanNode)()),bypasses_armor:(0,c.Opt)((0,c.BooleanNode)()),bypasses_invulnerability:(0,c.Opt)((0,c.BooleanNode)()),bypasses_magic:(0,c.Opt)((0,c.BooleanNode)()),source_entity:(0,c.Opt)(e("entity_predicate")),direct_entity:(0,c.Opt)(e("entity_predicate"))},{context:"damage_source"})),o.register("damage_predicate",(0,c.ObjectNode)({dealt:e("float_bounds"),taken:e("float_bounds"),blocked:(0,c.Opt)((0,c.BooleanNode)()),source_entity:(0,c.Opt)(e("entity_predicate")),type:(0,c.Opt)(e("damage_source_predicate"))},{context:"damage"}))}fe.initPredicatesSchemas=dt;var be={};Object.defineProperty(be,"__esModule",{value:!0});be.initRecipeSchemas=void 0;const p=w;function st(o,r){const e=p.Reference.bind(void 0,o),t=p.StringNode.bind(void 0,r);o.register("recipe",(0,p.Mod)((0,p.ObjectNode)({type:t({validator:"resource",params:{pool:"recipe_serializer"}}),[p.Switch]:[{push:"type"}],[p.Case]:{"minecraft:crafting_shaped":{group:(0,p.Opt)(t({enum:"recipe_group",additional:!0})),pattern:(0,p.ListNode)(t()),key:(0,p.MapNode)(t(),e("recipe_ingredient")),result:e("recipe_result")},"minecraft:crafting_shapeless":{group:(0,p.Opt)(t()),ingredients:(0,p.ListNode)(e("recipe_ingredient")),result:e("recipe_result")},"minecraft:smelting":{group:(0,p.Opt)(t()),ingredient:e("recipe_ingredient"),result:t({validator:"resource",params:{pool:"item"}}),experience:(0,p.Opt)((0,p.NumberNode)()),cookingtime:(0,p.Opt)((0,p.Mod)((0,p.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,p.Opt)(t()),ingredient:e("recipe_ingredient"),result:t({validator:"resource",params:{pool:"item"}}),experience:(0,p.Opt)((0,p.NumberNode)()),cookingtime:(0,p.Opt)((0,p.Mod)((0,p.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,p.Opt)(t()),ingredient:e("recipe_ingredient"),result:t({validator:"resource",params:{pool:"item"}}),experience:(0,p.Opt)((0,p.NumberNode)()),cookingtime:(0,p.Opt)((0,p.Mod)((0,p.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,p.Opt)(t()),ingredient:e("recipe_ingredient"),result:t({validator:"resource",params:{pool:"item"}}),experience:(0,p.Opt)((0,p.NumberNode)()),cookingtime:(0,p.Opt)((0,p.Mod)((0,p.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,p.Opt)(t()),ingredient:e("recipe_ingredient"),result:t({validator:"resource",params:{pool:"item"}}),count:(0,p.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,p.Opt)(t()),base:e("recipe_ingredient_object"),addition:e("recipe_ingredient_object"),result:e("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),o.register("recipe_ingredient",(0,p.Mod)((0,p.ChoiceNode)([{type:"object",node:e("recipe_ingredient_object"),change:d=>d[0]},{type:"list",node:(0,p.ListNode)(e("recipe_ingredient_object")),change:d=>[d]}]),{default:()=>({item:"minecraft:stone"})})),o.register("recipe_ingredient_object",(0,p.Mod)((0,p.ObjectNode)({item:(0,p.Opt)(t({validator:"resource",params:{pool:"item"}})),tag:(0,p.Opt)(t({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),o.register("recipe_result",(0,p.Mod)((0,p.ObjectNode)({item:t({validator:"resource",params:{pool:"item"}}),count:(0,p.Opt)((0,p.Mod)((0,p.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))}be.initRecipeSchemas=st;var ge={};Object.defineProperty(ge,"__esModule",{value:!0});ge.initTagsSchemas=void 0;const E=w;function mt(o,r){const e=E.StringNode.bind(void 0,r),t=d=>(0,E.Mod)((0,E.ObjectNode)({replace:(0,E.Opt)((0,E.BooleanNode)()),values:(0,E.ListNode)((0,E.ChoiceNode)([{type:"string",node:e({validator:"resource",params:{pool:d,allowTag:!0}}),change:a=>a.id},{type:"object",node:(0,E.ObjectNode)({id:e({validator:"resource",params:{pool:d,allowTag:!0,allowUnknown:!0}}),required:(0,E.BooleanNode)()}),change:a=>({id:a})}]))},{context:"tag"}),{default:()=>({values:[]})});o.register("block_tag",t("block")),o.register("entity_type_tag",t("entity_type")),o.register("fluid_tag",t("fluid")),o.register("function_tag",t("$function")),o.register("game_event_tag",t("game_event")),o.register("item_tag",t("item"))}ge.initTagsSchemas=mt;var Ne={};Object.defineProperty(Ne,"__esModule",{value:!0});Ne.initTextComponentSchemas=void 0;const m=w;function lt(o,r){const e=m.Reference.bind(void 0,o),t=m.StringNode.bind(void 0,r),d=n=>{var N;return n instanceof Array?d(n[0]):(N=n==null?void 0:n.text)!==null&&N!==void 0?N:typeof n=="object"?"":n==null?void 0:n.toString()};o.register("text_component",(0,m.Mod)((0,m.ChoiceNode)([{type:"object",node:e("text_component_object"),change:n=>n instanceof Array?typeof n[0]=="object"?n[0]:{text:d(n[0])}:typeof n=="object"?n:{text:d(n)}},{type:"list",node:e("text_component_list"),change:n=>[n]},{type:"string",priority:1,node:t(),change:d},{type:"number",node:(0,m.NumberNode)(),change:n=>{const N=parseFloat(d(n));return isFinite(N)?N:n?1:0}},{type:"boolean",node:(0,m.BooleanNode)(),change:n=>{const N=d(n);return N==="true"||N==="false"?N==="true":!!N}}],{context:"text_component"}),{default:()=>({text:""})}));const a={color:(0,m.Opt)(t()),font:(0,m.Opt)(t()),bold:(0,m.Opt)((0,m.BooleanNode)()),italic:(0,m.Opt)((0,m.BooleanNode)()),underlined:(0,m.Opt)((0,m.BooleanNode)()),strikethrough:(0,m.Opt)((0,m.BooleanNode)()),obfuscated:(0,m.Opt)((0,m.BooleanNode)()),insertion:(0,m.Opt)(t()),clickEvent:(0,m.Opt)((0,m.ObjectNode)({action:t({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[m.Switch]:[{push:"action"}],[m.Case]:{change_page:{value:t()},copy_to_clipboard:{value:t()},open_file:{value:t()},open_url:{value:t()},run_command:{value:t({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:t({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:(0,m.Opt)((0,m.ObjectNode)({action:t({enum:["show_text","show_item","show_entity"]}),[m.Switch]:[{push:"action"}],[m.Case]:{show_text:{value:(0,m.Opt)(e("text_component")),contents:(0,m.Opt)(e("text_component"))},show_item:{value:(0,m.Opt)(t({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:(0,m.Opt)((0,m.ObjectNode)({id:t({validator:"resource",params:{pool:"item"}}),count:(0,m.Opt)((0,m.NumberNode)({integer:!0})),tag:(0,m.Opt)(t({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:(0,m.Opt)((0,m.ObjectNode)({name:(0,m.Opt)(t()),type:(0,m.Opt)(t()),id:(0,m.Opt)(t())})),contents:(0,m.Opt)((0,m.Mod)((0,m.ObjectNode)({name:(0,m.Opt)(e("text_component")),type:t({validator:"resource",params:{pool:"entity_type"}}),id:t({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:(0,m.Opt)(e("text_component_list"))};o.register("text_component_object",(0,m.Mod)((0,m.ChoiceNode)([{type:"text",match:n=>typeof n=="object",change:n=>({text:""}),priority:-1,node:(0,m.ObjectNode)(k({text:t()},a))},{type:"translation",match:n=>(n==null?void 0:n.translate)!==void 0,change:n=>({translate:""}),node:(0,m.ObjectNode)(k({translate:t(),with:(0,m.Opt)(e("text_component_list"))},a))},{type:"score",match:n=>(n==null?void 0:n.score)!==void 0,change:n=>({score:{}}),node:(0,m.ObjectNode)(k({score:(0,m.ObjectNode)({name:t({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:t({validator:"objective"}),value:(0,m.Opt)(t())})},a))},{type:"selector",match:n=>(n==null?void 0:n.selector)!==void 0,change:n=>({selector:""}),node:(0,m.ObjectNode)(k({selector:t({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:(0,m.Opt)(e("text_component"))},a))},{type:"keybind",match:n=>(n==null?void 0:n.keybind)!==void 0,change:n=>({keybind:""}),node:(0,m.ObjectNode)(k({keybind:t({enum:"keybind",additional:!0})},a))},{type:"nbt",match:n=>(n==null?void 0:n.nbt)!==void 0,change:n=>({nbt:""}),node:(0,m.ObjectNode)(k({nbt:t({validator:"nbt_path"}),block:(0,m.Opt)(t({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,m.Opt)(t({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,m.Opt)(t({validator:"resource",params:{pool:"$storage"}})),interpret:(0,m.Opt)((0,m.BooleanNode)()),separator:(0,m.Opt)(e("text_component"))},a))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),o.register("text_component_list",(0,m.Mod)((0,m.ListNode)(e("text_component")),{default:()=>[{text:""}]}))}Ne.initTextComponentSchemas=lt;var he={},ye={};Object.defineProperty(ye,"__esModule",{value:!0});ye.initBiomeSchemas=void 0;const l=w;function _t(o,r){const e=l.StringNode.bind(void 0,r);o.register("biome",(0,l.Mod)((0,l.ObjectNode)({surface_builder:e({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:(0,l.NumberNode)(),scale:(0,l.NumberNode)(),temperature:(0,l.NumberNode)(),downfall:(0,l.NumberNode)(),precipitation:e({enum:["none","rain","snow"]}),temperature_modifier:(0,l.Opt)(e({enum:["none","frozen"]})),category:e({enum:"biome_category"}),player_spawn_friendly:(0,l.Opt)((0,l.BooleanNode)()),creature_spawn_probability:(0,l.Opt)((0,l.NumberNode)({min:0,max:1})),effects:(0,l.ObjectNode)({sky_color:(0,l.NumberNode)({color:!0}),fog_color:(0,l.NumberNode)({color:!0}),water_color:(0,l.NumberNode)({color:!0}),water_fog_color:(0,l.NumberNode)({color:!0}),grass_color:(0,l.Opt)((0,l.NumberNode)({color:!0})),foliage_color:(0,l.Opt)((0,l.NumberNode)({color:!0})),grass_color_modifier:(0,l.Opt)(e({enum:["none","dark_forest","swamp"]})),ambient_sound:(0,l.Opt)(e()),mood_sound:(0,l.Opt)((0,l.ObjectNode)({sound:e(),tick_delay:(0,l.NumberNode)({integer:!0}),block_search_extent:(0,l.NumberNode)({integer:!0}),offset:(0,l.NumberNode)()})),additions_sound:(0,l.Opt)((0,l.ObjectNode)({sound:e(),tick_chance:(0,l.NumberNode)({min:0,max:1})})),music:(0,l.Opt)((0,l.ObjectNode)({sound:e(),min_delay:(0,l.NumberNode)({integer:!0,min:0}),max_delay:(0,l.NumberNode)({integer:!0,min:0}),replace_current_music:(0,l.BooleanNode)()})),particle:(0,l.Opt)((0,l.ObjectNode)({options:(0,l.ObjectNode)({type:e()}),probability:(0,l.NumberNode)({min:0,max:1})}))}),starts:(0,l.ListNode)(e({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:(0,l.MapNode)(e({enum:["monster","creature","ambient","underground_water_creature","water_creature","water_ambient","misc"]}),(0,l.Mod)((0,l.ListNode)((0,l.ObjectNode)({type:e({validator:"resource",params:{pool:"entity_type"}}),weight:(0,l.NumberNode)({integer:!0}),minCount:(0,l.NumberNode)({integer:!0}),maxCount:(0,l.NumberNode)({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:(0,l.MapNode)(e({validator:"resource",params:{pool:"entity_type"}}),(0,l.Mod)((0,l.ObjectNode)({energy_budget:(0,l.NumberNode)(),charge:(0,l.NumberNode)()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:(0,l.MapNode)(e({enum:["air","liquid"]}),(0,l.Mod)((0,l.ListNode)(e({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:(0,l.ListNode)((0,l.Mod)((0,l.ListNode)(e({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}})}))}ye.initBiomeSchemas=_t;var ve={};Object.defineProperty(ve,"__esModule",{value:!0});ve.initCarverSchemas=void 0;const S=w,U=F;function pt(o,r){const e=S.Reference.bind(void 0,o),t=S.StringNode.bind(void 0,r),d={vertical_rotation:(0,U.FloatProvider)(),shape:(0,S.ObjectNode)({distance_factor:(0,U.FloatProvider)(),thickness:(0,U.FloatProvider)(),width_smoothness:(0,S.NumberNode)({integer:!0,min:0}),horizontal_radius_factor:(0,U.FloatProvider)(),vertical_radius_default_factor:(0,S.NumberNode)(),vertical_radius_center_factor:(0,S.NumberNode)()})},a={horizontal_radius_multiplier:(0,U.FloatProvider)(),vertical_radius_multiplier:(0,U.FloatProvider)(),floor_level:(0,U.FloatProvider)({min:-1,max:1})};o.register("configured_carver",(0,S.Mod)((0,S.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/carver"}}),config:(0,S.ObjectNode)({probability:(0,S.NumberNode)({min:0,max:1}),y:e("height_provider"),yScale:(0,U.FloatProvider)(),lava_level:e("vertical_anchor"),aquifers_enabled:(0,S.BooleanNode)(),debug_settings:(0,S.Opt)((0,S.ObjectNode)({debug_mode:(0,S.Opt)((0,S.BooleanNode)()),air_state:(0,S.Opt)(e("block_state")),water_state:(0,S.Opt)(e("block_state")),lava_state:(0,S.Opt)(e("block_state")),barrier_state:(0,S.Opt)(e("block_state"))})),[S.Switch]:["pop",{push:"type"}],[S.Case]:{"minecraft:canyon":d,"minecraft:cave":a,"minecraft:nether_cave":a}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))}ve.initCarverSchemas=pt;var Oe={};Object.defineProperty(Oe,"__esModule",{value:!0});Oe.initDecoratorSchemas=void 0;const C=w,ut=F;function ft(o,r){const e=C.Reference.bind(void 0,o),t=C.StringNode.bind(void 0,r),d={count:(0,ut.IntProvider)({min:0,max:256})};o.register("configured_decorator",(0,C.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/decorator"}}),config:(0,C.ObjectNode)({[C.Switch]:["pop",{push:"type"}],[C.Case]:{"minecraft:carving_mask":{step:t({enum:"generation_step"})},"minecraft:cave_surface":{surface:t({enum:["floor","ceiling"]}),floor_to_ceiling_search_range:(0,C.NumberNode)({integer:!0})},"minecraft:chance":{chance:(0,C.NumberNode)({integer:!0,min:0})},"minecraft:count":d,"minecraft:count_extra":{count:(0,C.NumberNode)({integer:!0,min:0}),extra_count:(0,C.NumberNode)({integer:!0,min:0}),extra_chance:(0,C.NumberNode)({min:0,max:1})},"minecraft:count_multilayer":d,"minecraft:count_noise":{noise_level:(0,C.NumberNode)(),below_noise:(0,C.NumberNode)({integer:!0}),above_noise:(0,C.NumberNode)({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:(0,C.NumberNode)({integer:!0}),noise_factor:(0,C.NumberNode)(),noise_offset:(0,C.Opt)((0,C.NumberNode)())},"minecraft:decorated":{outer:e("configured_decorator"),inner:e("configured_decorator")},"minecraft:heightmap":{heightmap:t({enum:"heightmap_type"})},"minecraft:heightmap_spread_double":{heightmap:t({enum:"heightmap_type"})},"minecraft:lava_lake":{chance:(0,C.NumberNode)({integer:!0,min:0})},"minecraft:range":{height:e("height_provider")},"minecraft:water_depth_threshold":{max_water_depth:(0,C.NumberNode)({integer:!0})}}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))}Oe.initDecoratorSchemas=ft;var ke={},H={};Object.defineProperty(H,"__esModule",{value:!0});H.initProcessorListSchemas=H.Processors=void 0;const h=w;function bt(o,r){const e=h.Reference.bind(void 0,o),t=h.StringNode.bind(void 0,r);H.Processors=(0,h.ChoiceNode)([{type:"string",node:t({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:a=>{}},{type:"object",node:e("processor_list"),change:a=>({processors:[{processor_type:"minecraft:nop"}]})}]),o.register("processor_list",(0,h.Mod)((0,h.ObjectNode)({processors:(0,h.ListNode)(e("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"}}]}]})})),o.register("processor",(0,h.Mod)((0,h.ObjectNode)({processor_type:t({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[h.Switch]:[{push:"processor_type"}],[h.Case]:{"minecraft:block_age":{mossiness:(0,h.NumberNode)()},"minecraft:block_ignore":{blocks:(0,h.ListNode)(e("block_state"))},"minecraft:block_rot":{integrity:(0,h.NumberNode)({min:0,max:1})},"minecraft:gravity":{heightmap:t({enum:"heightmap_type"}),offset:(0,h.NumberNode)({integer:!0})},"minecraft:protected_blocks":{value:t({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:(0,h.ListNode)(e("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"}}]})})),o.register("processor_rule",(0,h.Mod)((0,h.ObjectNode)({position_predicate:(0,h.Opt)(e("pos_rule_test")),location_predicate:e("rule_test"),input_predicate:e("rule_test"),output_state:e("block_state"),output_nbt:(0,h.Opt)(t({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 d={min_dist:(0,h.Opt)((0,h.NumberNode)({min:0,max:255,integer:!0})),max_dist:(0,h.Opt)((0,h.NumberNode)({min:0,max:255,integer:!0})),min_chance:(0,h.Opt)((0,h.NumberNode)({min:0,max:1})),max_chance:(0,h.Opt)((0,h.NumberNode)({min:0,max:1}))};o.register("pos_rule_test",(0,h.ObjectNode)({predicate_type:t({validator:"resource",params:{pool:"pos_rule_test"}}),[h.Switch]:[{push:"predicate_type"}],[h.Case]:{"minecraft:axis_aligned_linear_pos":k({axis:t({enum:["x","y","z"]})},d),"minecraft:linear_pos":d}},{context:"pos_rule_test",disableSwitchContext:!0})),o.register("rule_test",(0,h.ObjectNode)({predicate_type:t({validator:"resource",params:{pool:"rule_test"}}),[h.Switch]:[{push:"predicate_type"}],[h.Case]:{"minecraft:block_match":{block:t({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:e("block_state")},"minecraft:random_block_match":{block:t({validator:"resource",params:{pool:"block"}}),probability:(0,h.NumberNode)({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:e("block_state"),probability:(0,h.NumberNode)({min:0,max:1})},"minecraft:tag_match":{tag:t({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))}H.initProcessorListSchemas=bt;Object.defineProperty(ke,"__esModule",{value:!0});ke.initFeatureSchemas=void 0;const i=w,y=F,$e=H;function gt(o,r){const e=i.Reference.bind(void 0,o),t=i.StringNode.bind(void 0,r),d={can_replace:(0,i.Opt)((0,i.BooleanNode)()),project:(0,i.Opt)((0,i.BooleanNode)()),need_water:(0,i.Opt)((0,i.BooleanNode)()),xspread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),yspread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),zspread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),tries:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1})),state_provider:e("block_state_provider"),block_placer:e("block_placer"),whitelist:(0,i.ListNode)(e("block_state")),blacklist:(0,i.ListNode)(e("block_state"))},a={state:e("block_state"),radius:(0,y.IntProvider)({min:0,max:8}),half_height:(0,i.NumberNode)({integer:!0,min:0,max:4}),targets:(0,i.ListNode)(e("block_state"))},n={cap_provider:e("block_state_provider"),stem_provider:e("block_state_provider"),foliage_radius:(0,i.Opt)((0,i.NumberNode)({integer:!0}))},N=(0,i.ObjectNode)({target:e("rule_test"),state:e("block_state")}),B={size:(0,i.NumberNode)({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:(0,i.NumberNode)({min:0,max:1}),targets:(0,i.ListNode)(N)},u=(0,i.ChoiceNode)([{type:"string",node:t({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:e("configured_feature")}],{choiceContext:"feature"}),v={surface:t({enum:["floor","ceiling"]}),depth:(0,y.IntProvider)({min:1,max:128}),vertical_range:(0,i.NumberNode)({integer:!0,min:1,max:256}),extra_bottom_block_chance:(0,i.NumberNode)({min:0,max:1}),extra_edge_column_chance:(0,i.NumberNode)({min:0,max:1}),vegetation_chance:(0,i.NumberNode)({min:0,max:1}),xz_radius:(0,y.IntProvider)(),replaceable:t({validator:"resource",params:{pool:"$tag/block"}}),ground_state:e("block_state_provider"),vegetation_feature:u};o.register("configured_feature",(0,i.Mod)((0,i.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/feature"}}),config:(0,i.ObjectNode)({[i.Switch]:["pop",{push:"type"}],[i.Case]:{"minecraft:bamboo":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:basalt_columns":{reach:(0,y.IntProvider)({min:0,max:3}),height:(0,y.IntProvider)({min:1,max:10})},"minecraft:block_pile":{state_provider:e("block_state_provider")},"minecraft:decorated":{decorator:e("configured_decorator"),feature:u},"minecraft:decorated_flower":{decorator:e("configured_decorator"),feature:u},"minecraft:delta_feature":{contents:e("block_state"),rim:e("block_state"),size:(0,y.IntProvider)({min:0,max:16}),rim_size:(0,y.IntProvider)({min:0,max:16})},"minecraft:disk":a,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:(0,i.NumberNode)({integer:!0,min:1,max:512}),height:(0,y.IntProvider)({min:0,max:128}),radius:(0,y.IntProvider)({min:0,max:128}),max_stalagmite_stalactite_height_diff:(0,i.NumberNode)({integer:!0,min:0,max:64}),height_deviation:(0,i.NumberNode)({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:(0,y.IntProvider)({min:0,max:128}),density:(0,y.FloatProvider)({min:0,max:2}),wetness:(0,y.FloatProvider)({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:(0,i.NumberNode)({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:(0,i.NumberNode)({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:(0,i.NumberNode)({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:(0,i.BooleanNode)(),exit:(0,i.Opt)(e("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:(0,i.Opt)((0,i.BooleanNode)()),crystal_beam_target:(0,i.Opt)(e("block_pos")),spikes:(0,i.ListNode)((0,i.ObjectNode)({centerX:(0,i.Opt)((0,i.NumberNode)({integer:!0})),centerZ:(0,i.Opt)((0,i.NumberNode)({integer:!0})),radius:(0,i.Opt)((0,i.NumberNode)({integer:!0})),height:(0,i.Opt)((0,i.NumberNode)({integer:!0})),guarded:(0,i.Opt)((0,i.BooleanNode)())}))},"minecraft:fill_layer":{state:e("block_state"),height:(0,i.NumberNode)({integer:!0,min:0,max:255})},"minecraft:flower":d,"minecraft:forest_rock":{state:e("block_state")},"minecraft:fossil":{max_empty_corners_allowed:(0,i.NumberNode)({integer:!0,min:0,max:7}),fossil_structures:(0,i.ListNode)(t({validator:"resource",params:{pool:"$structure"}})),overlay_structures:(0,i.ListNode)(t({validator:"resource",params:{pool:"$structure"}})),fossil_processors:$e.Processors,overlay_processors:$e.Processors},"minecraft:geode":{blocks:(0,i.ObjectNode)({filling_provider:e("block_state_provider"),inner_layer_provider:e("block_state_provider"),alternate_inner_layer_provider:e("block_state_provider"),middle_layer_provider:e("block_state_provider"),outer_layer_provider:e("block_state_provider"),inner_placements:(0,i.ListNode)(e("block_state")),cannot_replace:t({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:t({validator:"resource",params:{pool:"$tag/block"}})}),layers:(0,i.ObjectNode)({filling:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),inner_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),middle_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),outer_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50}))}),crack:(0,i.ObjectNode)({generate_crack_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),base_crack_size:(0,i.Opt)((0,i.NumberNode)({min:0,max:5})),crack_point_offset:(0,i.Opt)((0,i.NumberNode)({min:0,max:10}))}),noise_multiplier:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),use_potential_placements_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),use_alternate_layer0_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),placements_require_layer0_alternate:(0,i.Opt)((0,i.BooleanNode)()),outer_wall_distance:(0,i.Opt)((0,y.IntProvider)({min:1,max:20})),distribution_points:(0,i.Opt)((0,y.IntProvider)({min:1,max:20})),point_offset:(0,i.Opt)((0,y.IntProvider)({min:0,max:10})),min_gen_offset:(0,i.Opt)((0,i.NumberNode)({integer:!0})),max_gen_offset:(0,i.Opt)((0,i.NumberNode)({integer:!0})),invalid_blocks_threshold:(0,i.NumberNode)({integer:!0})},"minecraft:glow_lichen":{search_range:(0,i.Opt)((0,i.NumberNode)({min:1,max:64,integer:!0})),chance_of_spreading:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),can_place_on_floor:(0,i.Opt)((0,i.BooleanNode)()),can_place_on_ceiling:(0,i.Opt)((0,i.BooleanNode)()),can_place_on_wall:(0,i.Opt)((0,i.BooleanNode)()),can_be_placed_on:(0,i.ListNode)(e("block_state"))},"minecraft:growing_plant":{direction:t({enum:["up","down","north","east","south","west"]}),allow_water:(0,i.BooleanNode)(),height_distribution:(0,i.ListNode)((0,i.ObjectNode)({weight:(0,i.NumberNode)({integer:!0}),data:(0,y.IntProvider)()})),body_provider:e("block_state_provider"),head_provider:e("block_state_provider")},"minecraft:huge_brown_mushroom":n,"minecraft:huge_fungus":{hat_state:e("block_state"),decor_state:e("block_state"),stem_state:e("block_state"),valid_base_block:e("block_state"),planted:(0,i.Opt)((0,i.BooleanNode)())},"minecraft:huge_red_mushroom":n,"minecraft:ice_patch":a,"minecraft:iceberg":{state:e("block_state")},"minecraft:lake":{state:e("block_state")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1,max:512})),column_radius:(0,y.IntProvider)({min:0,max:60}),height_scale:(0,y.FloatProvider)({min:0,max:20}),max_column_radius_to_cave_height_ratio:(0,i.NumberNode)({min:0,max:1}),stalactite_bluntness:(0,y.FloatProvider)({min:.1,max:10}),stalagmite_bluntness:(0,y.FloatProvider)({min:.1,max:10}),wind_speed:(0,y.FloatProvider)({min:0,max:2}),min_radius_for_wind:(0,i.NumberNode)({integer:!0,min:0,max:100}),min_bluntness_for_wind:(0,i.NumberNode)({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:e("block_state_provider")},"minecraft:netherrack_replace_blobs":{state:e("block_state"),target:e("block_state"),radius:(0,y.IntProvider)({min:0,max:12})},"minecraft:no_bonemeal_flower":d,"minecraft:ore":B,"minecraft:random_patch":d,"minecraft:random_boolean_selector":{feature_false:u,feature_true:u},"minecraft:random_selector":{features:(0,i.ListNode)((0,i.ObjectNode)({chance:(0,i.NumberNode)({min:0,max:1}),feature:u})),default:u},"minecraft:replace_single_block":{targets:(0,i.ListNode)(N)},"minecraft:root_system":{required_vertical_space_for_tree:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_radius:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_placement_attempts:(0,i.NumberNode)({integer:!0,min:1,max:256}),root_column_max_height:(0,i.NumberNode)({integer:!0,min:1,max:4096}),hanging_root_radius:(0,i.NumberNode)({integer:!0,min:1,max:64}),hanging_roots_vertical_span:(0,i.NumberNode)({integer:!0,min:0,max:16}),hanging_root_placement_attempts:(0,i.NumberNode)({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_replaceable:t({validator:"resource",params:{pool:"$tag/block"}}),root_state_provider:e("block_state_provider"),hanging_root_state_provider:e("block_state_provider"),feature:u},"minecraft:scattered_ore":B,"minecraft:sea_pickle":{count:(0,y.IntProvider)({min:0,max:256})},"minecraft:seagrass":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:simple_block":{to_place:e("block_state_provider"),place_on:(0,i.Opt)((0,i.ListNode)(e("block_state"))),place_in:(0,i.Opt)((0,i.ListNode)(e("block_state"))),place_under:(0,i.Opt)((0,i.ListNode)(e("block_state")))},"minecraft:simple_random_selector":{features:(0,i.ListNode)(u)},"minecraft:small_dripstone":{max_placements:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:100})),empty_space_search_radius:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:20})),max_offset_from_origin:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:20})),chance_of_taller_dripstone:(0,i.Opt)((0,i.NumberNode)({min:0,max:1}))},"minecraft:spring_feature":{state:e("fluid_state"),rock_count:(0,i.NumberNode)({integer:!0}),hole_count:(0,i.NumberNode)({integer:!0}),requires_block_below:(0,i.BooleanNode)(),valid_blocks:(0,i.ListNode)(t({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:(0,i.Opt)((0,i.BooleanNode)()),force_dirt:(0,i.Opt)((0,i.BooleanNode)()),minimum_size:e("feature_size"),dirt_provider:e("block_state_provider"),sapling_provider:e("block_state_provider"),trunk_provider:e("block_state_provider"),foliage_provider:e("block_state_provider"),trunk_placer:(0,i.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:(0,i.NumberNode)({integer:!0,min:0,max:32}),height_rand_a:(0,i.NumberNode)({integer:!0,min:0,max:24}),height_rand_b:(0,i.NumberNode)({integer:!0,min:0,max:24}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:bending_trunk_placer":{bend_length:(0,y.IntProvider)({min:1,max:64}),min_height_for_leaves:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:(0,i.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:(0,y.IntProvider)({min:0,max:16}),offset:(0,y.IntProvider)({min:0,max:16}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:blob_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:(0,y.IntProvider)({min:0,max:24})},"minecraft:pine_foliage_placer":{height:(0,y.IntProvider)({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:(0,y.IntProvider)({min:1,max:512}),leaf_placement_attempts:(0,i.NumberNode)({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:(0,y.IntProvider)({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:(0,i.ListNode)((0,i.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:alter_ground":{provider:e("block_state_provider")},"minecraft:beehive":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:cocoa":{probability:(0,i.NumberNode)({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:underwater_magma":{floor_search_range:(0,i.NumberNode)({integer:!0,min:0,max:512}),placement_radius_around_floor:(0,i.NumberNode)({integer:!0,min:0,max:64}),placement_probability_per_valid_position:(0,i.NumberNode)({min:0,max:1})},"minecraft:vegetation_patch":v,"minecraft:waterlogged_vegetation_patch":v}},{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}}}}})})),o.register("feature_size",(0,i.Mod)((0,i.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:(0,i.Opt)((0,i.NumberNode)({min:0,max:80})),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:two_layers_feature_size":{limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:81})),lower_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:80})),upper_limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:80})),lower_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),middle_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),o.register("block_state_provider",(0,i.Mod)((0,i.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:randomized_int_state_provider":{property:t(),values:(0,y.IntProvider)(),source:e("block_state_provider")},"minecraft:rotated_block_provider":{state:e("block_state")},"minecraft:simple_state_provider":{state:e("block_state")},"minecraft:weighted_state_provider":{entries:(0,i.ListNode)((0,i.Mod)((0,i.ObjectNode)({weight:(0,i.NumberNode)({integer:!0,min:1}),data:e("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),o.register("block_placer",(0,i.Mod)((0,i.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:column_placer":{size:(0,y.IntProvider)({min:0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))}ke.initFeatureSchemas=gt;var xe={};Object.defineProperty(xe,"__esModule",{value:!0});xe.initNoiseSettingsSchemas=void 0;const _=w,Nt=F;function ht(o,r){const e=_.Reference.bind(void 0,o),t=_.StringNode.bind(void 0,r);o.register("noise_settings",(0,_.Mod)((0,_.ObjectNode)({name:(0,_.Mod)(t({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:d=>d.getArray().length>0}),bedrock_roof_position:(0,_.NumberNode)({integer:!0}),bedrock_floor_position:(0,_.NumberNode)({integer:!0}),sea_level:(0,_.NumberNode)({integer:!0}),min_surface_level:(0,_.NumberNode)({integer:!0}),disable_mob_generation:(0,_.BooleanNode)(),noise_caves_enabled:(0,_.BooleanNode)(),noodle_caves_enabled:(0,_.BooleanNode)(),aquifers_enabled:(0,_.BooleanNode)(),deepslate_enabled:(0,_.BooleanNode)(),ore_veins_enabled:(0,_.BooleanNode)(),default_block:e("block_state"),default_fluid:e("block_state"),noise:(0,_.ObjectNode)({min_y:(0,_.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,_.NumberNode)({integer:!0,min:0,max:4096}),density_factor:(0,_.NumberNode)(),density_offset:(0,_.NumberNode)(),size_horizontal:(0,_.NumberNode)({integer:!0}),size_vertical:(0,_.NumberNode)({integer:!0}),simplex_surface_noise:(0,_.BooleanNode)(),random_density_offset:(0,_.Opt)((0,_.BooleanNode)()),island_noise_override:(0,_.Opt)((0,_.BooleanNode)()),amplified:(0,_.Opt)((0,_.BooleanNode)()),sampling:(0,_.ObjectNode)({xz_scale:(0,_.NumberNode)(),y_scale:(0,_.NumberNode)(),xz_factor:(0,_.NumberNode)(),y_factor:(0,_.NumberNode)()}),bottom_slide:(0,_.ObjectNode)({target:(0,_.NumberNode)({integer:!0}),size:(0,_.NumberNode)({integer:!0,min:0}),offset:(0,_.NumberNode)({integer:!0})}),top_slide:(0,_.ObjectNode)({target:(0,_.NumberNode)({integer:!0}),size:(0,_.NumberNode)({integer:!0,min:0}),offset:(0,_.NumberNode)({integer:!0})})}),structures:e("generator_structures")},{context:"noise_settings"}),d=>({default:()=>Nt.DefaultNoiseSettings,validate:(a,n,N,B)=>{var u,v,j,O;return n=d.validate(a,n,N,B),((u=n==null?void 0:n.noise)===null||u===void 0?void 0:u.min_y)+((v=n==null?void 0:n.noise)===null||v===void 0?void 0:v.height)>2047&&N.add(a.push("noise").push("height"),"error.min_y_plus_height",2047),((j=n==null?void 0:n.noise)===null||j===void 0?void 0:j.height)%16!==0&&N.add(a.push("noise").push("height"),"error.height_multiple",16),((O=n==null?void 0:n.noise)===null||O===void 0?void 0:O.min_y)%16!==0&&N.add(a.push("noise").push("min_y"),"error.min_y_multiple",16),n}}))),o.register("generator_structures",(0,_.ObjectNode)({stronghold:(0,_.Opt)((0,_.ObjectNode)({distance:(0,_.NumberNode)({integer:!0,min:0,max:1023}),spread:(0,_.NumberNode)({integer:!0,min:0,max:1023}),count:(0,_.NumberNode)({integer:!0,min:1,max:4095})})),structures:(0,_.MapNode)(t({validator:"resource",params:{pool:"worldgen/structure_feature"}}),(0,_.Mod)((0,_.ObjectNode)({spacing:(0,_.NumberNode)({integer:!0,min:0,max:4096}),separation:(0,_.Mod)((0,_.NumberNode)({integer:!0,min:0,max:4096}),d=>({validate:(a,n,N,B)=>(a.pop().push("spacing").get()<=n&&N.add(a,"error.separation_smaller_spacing"),d.validate(a,n,N,B))})),salt:(0,_.NumberNode)({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),o.register("generator_layer",(0,_.Mod)((0,_.ObjectNode)({block:t({validator:"resource",params:{pool:"block"}}),height:(0,_.NumberNode)({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))}xe.initNoiseSettingsSchemas=ht;var we={};Object.defineProperty(we,"__esModule",{value:!0});we.initStructureFeatureSchemas=void 0;const z=w;function yt(o,r){const e=z.StringNode.bind(void 0,r),t=z.Reference.bind(void 0,o),d={start_pool:e({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:(0,z.NumberNode)({integer:!0})};o.register("configured_structure_feature",(0,z.Mod)((0,z.ObjectNode)({type:e({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:(0,z.ObjectNode)({[z.Switch]:["pop",{push:"type"}],[z.Case]:{"minecraft:bastion_remnant":d,"minecraft:buried_treasure":{probability:(0,z.NumberNode)({min:0,max:1})},"minecraft:mineshaft":{type:e({enum:["normal","mesa"]}),probability:(0,z.NumberNode)({min:0,max:1})},"minecraft:nether_fossil":{height:t("height_provider")},"minecraft:ocean_ruin":{biome_temp:e({enum:["cold","warm"]}),large_probability:(0,z.NumberNode)({min:0,max:1}),cluster_probability:(0,z.NumberNode)({min:0,max:1})},"minecraft:pillager_outpost":d,"minecraft:ruined_portal":{portal_type:e({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:(0,z.Opt)((0,z.BooleanNode)())},"minecraft:village":d}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))}we.initStructureFeatureSchemas=yt;var Se={};Object.defineProperty(Se,"__esModule",{value:!0});Se.initSurfaceBuilderSchemas=void 0;const te=w;function vt(o,r){const e=te.StringNode.bind(void 0,r),t=te.Reference.bind(void 0,o);o.register("configured_surface_builder",(0,te.Mod)((0,te.ObjectNode)({type:e({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:(0,te.ObjectNode)({top_material:t("block_state"),under_material:t("block_state"),underwater_material:t("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"}}})}))}Se.initSurfaceBuilderSchemas=vt;var je={};Object.defineProperty(je,"__esModule",{value:!0});je.initTemplatePoolSchemas=void 0;const $=w,Re=H;function Ot(o,r){const e=$.Reference.bind(void 0,o),t=$.StringNode.bind(void 0,r);o.register("template_pool",(0,$.Mod)((0,$.ObjectNode)({name:t(),fallback:t(),elements:(0,$.ListNode)(e("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"}}]})})),o.register("template_weighted_element",(0,$.Mod)((0,$.ObjectNode)({weight:(0,$.NumberNode)({integer:!0,min:1}),element:e("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),o.register("template_element",(0,$.Mod)((0,$.ObjectNode)({element_type:t({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:t({enum:["rigid","terrain_matching"]}),[$.Switch]:[{push:"element_type"}],[$.Case]:{"minecraft:feature_pool_element":{feature:t({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},"minecraft:legacy_single_pool_element":{location:t({validator:"resource",params:{pool:"$structure"}}),processors:Re.Processors},"minecraft:list_pool_element":{elements:(0,$.ListNode)(e("template_element"))},"minecraft:single_pool_element":{location:t({validator:"resource",params:{pool:"$structure"}}),processors:Re.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))}je.initTemplatePoolSchemas=Ot;Object.defineProperty(he,"__esModule",{value:!0});he.initWorldgenSchemas=void 0;const kt=ye,xt=ve,wt=Oe,St=ke,jt=xe,Mt=H,Ct=we,Pt=Se,Lt=je;function Bt(o,r){(0,Mt.initProcessorListSchemas)(o,r),(0,kt.initBiomeSchemas)(o,r),(0,xt.initCarverSchemas)(o,r),(0,wt.initDecoratorSchemas)(o,r),(0,St.initFeatureSchemas)(o,r),(0,jt.initNoiseSettingsSchemas)(o,r),(0,Ct.initStructureFeatureSchemas)(o,r),(0,Pt.initSurfaceBuilderSchemas)(o,r),(0,Lt.initTemplatePoolSchemas)(o,r)}he.initWorldgenSchemas=Bt;var Me={};Object.defineProperty(Me,"__esModule",{value:!0});Me.initWorldSettingsSchemas=void 0;const V=w;function zt(o,r){const e=V.Reference.bind(void 0,o),t=V.StringNode.bind(void 0,r);o.register("world_settings",(0,V.Mod)((0,V.ObjectNode)({generate_features:(0,V.BooleanNode)(),bonus_chest:(0,V.BooleanNode)(),seed:(0,V.NumberNode)({integer:!0}),dimensions:(0,V.MapNode)(t({validator:"resource",params:{pool:"$dimension"}}),e("dimension"))},{context:"world_settings"}),{default:()=>{const d=Math.floor(Math.random()*4294967296)-2147483648;return{generate_features:!0,bonus_chest:!1,seed:d,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:vanilla_layered",seed:d},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:multi_noise",seed:d,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:d,biome_source:{type:"minecraft:the_end",seed:d},settings:"minecraft:end"}}}}}}))}Me.initWorldSettingsSchemas=zt;Object.defineProperty(ie,"__esModule",{value:!0});ie.initSchemas=void 0;const $t=ae,Rt=ne,Tt=F,Dt=se,Ft=me,It=le,qt=_e,At=pe,Et=ue,Wt=fe,Gt=be,Ut=ge,Vt=Ne,Ht=he,Kt=Me;function Xt(o,r){(0,Tt.initCommonSchemas)(o,r),(0,$t.initAdvancementSchemas)(o,r),(0,Rt.initAssetsSchemas)(o,r),(0,Dt.initConditionSchemas)(o,r),(0,It.initDimensionTypeSchemas)(o,r),(0,Ft.initDimensionSchemas)(o,r),(0,qt.initItemModifierSchemas)(o,r),(0,At.initLootTableSchemas)(o,r),(0,Et.initPackMcmetaSchemas)(o,r),(0,Wt.initPredicatesSchemas)(o,r),(0,Gt.initRecipeSchemas)(o,r),(0,Ut.initTagsSchemas)(o,r),(0,Vt.initTextComponentSchemas)(o,r),(0,Ht.initWorldgenSchemas)(o,r),(0,Kt.initWorldSettingsSchemas)(o,r)}ie.initSchemas=Xt;var Zt=Q&&Q.__createBinding||(Object.create?function(o,r,e,t){t===void 0&&(t=e);var d=Object.getOwnPropertyDescriptor(r,e);(!d||("get"in d?!r.__esModule:d.writable||d.configurable))&&(d={enumerable:!0,get:function(){return r[e]}}),Object.defineProperty(o,t,d)}:function(o,r,e,t){t===void 0&&(t=e),o[t]=r[e]}),Yt=Q&&Q.__setModuleDefault||(Object.create?function(o,r){Object.defineProperty(o,"default",{enumerable:!0,value:r})}:function(o,r){o.default=r}),Jt=Q&&Q.__importStar||function(o){if(o&&o.__esModule)return o;var r={};if(o!=null)for(var e in o)e!=="default"&&Object.prototype.hasOwnProperty.call(o,e)&&Zt(r,o,e);return Yt(r,o),r};Object.defineProperty(W,"__esModule",{value:!0});var Te=W.getSchemas=Ie=W.getCollections=Fe=W.lootContext=void 0;const De=w,Qt=oe,er=ie;var Fe=W.lootContext=Jt(R);function tr(){const o=new De.CollectionRegistry;return(0,Qt.initCollections)(o),o}var Ie=W.getCollections=tr;function rr(o){const r=new De.SchemaRegistry;return(0,er.initSchemas)(r,o),r}Te=W.getSchemas=rr;var nr=Ue({__proto__:null,get getSchemas(){return Te},get getCollections(){return Ie},get lootContext(){return Fe},default:W},[W]);export{nr as i}; -//# sourceMappingURL=index.8076ef8d.js.map +var qe=Object.defineProperty,Ae=Object.defineProperties;var Ee=Object.getOwnPropertyDescriptors;var Ce=Object.getOwnPropertySymbols;var We=Object.prototype.hasOwnProperty,Ge=Object.prototype.propertyIsEnumerable;var Pe=(o,r,e)=>r in o?qe(o,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[r]=e,k=(o,r)=>{for(var e in r||(r={}))We.call(r,e)&&Pe(o,e,r[e]);if(Ce)for(var e of Ce(r))Ge.call(r,e)&&Pe(o,e,r[e]);return o},Le=(o,r)=>Ae(o,Ee(r));import{l as w,c as Q}from"./index.18869b2a.js";function Ue(o,r){return r.forEach(function(e){e&&typeof e!="string"&&!Array.isArray(e)&&Object.keys(e).forEach(function(t){if(t!=="default"&&!(t in o)){var d=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(o,t,d.get?d:{enumerable:!0,get:function(){return e[t]}})}})}),Object.freeze(Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}))}var W={},oe={};Object.defineProperty(oe,"__esModule",{value:!0});oe.initCollections=void 0;function Ve(o){o.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"]),o.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),o.register("dimension_type",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),o.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"]),o.register("slot",["mainhand","offhand","head","chest","legs","feet"]),o.register("gamemode",["survival","creative","adventure","spectator"]),o.register("worldgen/noise_settings",["minecraft:overworld","minecraft:nether","minecraft:end","minecraft:amplified","minecraft:caves","minecraft:floating_islands"]),o.register("entity_source",["this","killer","direct_killer","killer_player"]),o.register("copy_source",["block_entity","this","killer","killer_player"]),o.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),o.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"]),o.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"]),o.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"]),o.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"]),o.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"]),o.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"]),o.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),o.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),o.register("generation_step",["air","liquid"]),o.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"]),o.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"]),o.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"]),o.register("cat_texture",["textures/entity/cat/tabby.png","textures/entity/cat/black.png","textures/entity/cat/red.png","textures/entity/cat/siamese.png","textures/entity/cat/british_shorthair.png","textures/entity/cat/calico.png","textures/entity/cat/persian.png","textures/entity/cat/ragdoll.png","textures/entity/cat/white.png","textures/entity/cat/jellie.png","textures/entity/cat/all_black.png"])}oe.initCollections=Ve;var ie={},ae={};Object.defineProperty(ae,"__esModule",{value:!0});ae.initAdvancementSchemas=void 0;const s=w;function He(o,r){const e=s.Reference.bind(void 0,o),t=s.StringNode.bind(void 0,r),d=(0,s.ChoiceNode)([{type:"object",node:(0,s.Opt)(e("entity_predicate")),change:a=>{var n,N;return(N=(n=a[0])===null||n===void 0?void 0:n.predicate)!==null&&N!==void 0?N:{}}},{type:"list",node:(0,s.ListNode)(e("condition")),change:a=>[{condition:"minecraft:entity_properties",predicate:a}]}],{context:"conditions"});o.register("advancement",(0,s.Mod)((0,s.ObjectNode)({display:(0,s.Opt)((0,s.Mod)((0,s.ObjectNode)({icon:(0,s.ObjectNode)({item:t({validator:"resource",params:{pool:"item"}}),nbt:(0,s.Opt)(t({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:e("text_component"),description:e("text_component"),background:(0,s.Opt)(t()),frame:(0,s.Opt)(t({enum:["task","challenge","goal"]})),show_toast:(0,s.Opt)((0,s.BooleanNode)()),announce_to_chat:(0,s.Opt)((0,s.BooleanNode)()),hidden:(0,s.Opt)((0,s.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,s.Opt)(t({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,s.MapNode)(t(),e("advancement_criteria")),requirements:(0,s.Opt)((0,s.ListNode)((0,s.ListNode)(t()))),rewards:(0,s.Opt)((0,s.ObjectNode)({function:(0,s.Opt)(t({validator:"resource",params:{pool:"$function"}})),loot:(0,s.Opt)((0,s.ListNode)(t({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,s.Opt)((0,s.ListNode)(t({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,s.Opt)((0,s.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),o.register("advancement_criteria",(0,s.ObjectNode)({trigger:t({validator:"resource",params:{pool:r.get("advancement_trigger")}}),conditions:(0,s.Opt)((0,s.ObjectNode)({player:(0,s.Mod)(d,{enabled:a=>a.pop().push("trigger").get()!=="minecraft:impossible"}),[s.Switch]:["pop",{push:"trigger"}],[s.Case]:{"minecraft:bee_nest_destroyed":{block:(0,s.Opt)(t({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,s.Opt)((0,s.NumberNode)({integer:!0})),item:(0,s.Opt)(e("item_predicate"))},"minecraft:bred_animals":{parent:d,partner:d,child:d},"minecraft:brewed_potion":{potion:(0,s.Opt)(t({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,s.Opt)(t({validator:"resource",params:{pool:"$dimension"}})),to:(0,s.Opt)(t({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:construct_beacon":{level:e("int_bounds")},"minecraft:consume_item":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:cured_zombie_villager":{villager:d,zombie:d},"minecraft:effects_changed":{effects:(0,s.Opt)((0,s.MapNode)(t({validator:"resource",params:{pool:"mob_effect"}}),(0,s.ObjectNode)({amplifier:e("int_bounds"),duration:e("int_bounds")}))),source:(0,s.Opt)(d)},"minecraft:enter_block":{block:(0,s.Opt)(t({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(t(),t(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:e("int_bounds"),item:(0,s.Opt)(e("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,s.Opt)(e("damage_predicate"))},"minecraft:entity_killed_player":{entity:d,killing_blow:(0,s.Opt)(e("damage_source_predicate"))},"minecraft:filled_bucket":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:d,item:(0,s.Opt)(e("item_predicate"))},"minecraft:hero_of_the_village":{location:(0,s.Opt)(e("location_predicate"))},"minecraft:inventory_changed":{slots:(0,s.Opt)((0,s.ObjectNode)({empty:e("int_bounds"),occupied:e("int_bounds"),full:e("int_bounds")})),items:(0,s.Opt)((0,s.ListNode)(e("item_predicate")))},"minecraft:item_durability_changed":{delta:e("int_bounds"),durability:e("int_bounds"),item:(0,s.Opt)(e("item_predicate"))},"minecraft:item_used_on_block":{item:(0,s.Opt)(e("item_predicate")),location:(0,s.Opt)(e("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:e("int_bounds"),victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:levitation":{distance:e("distance_predicate"),duration:e("int_bounds")},"minecraft:lightning_strike":{lightning:d,bystander:d},"minecraft:location":{location:(0,s.Opt)(e("location_predicate"))},"minecraft:nether_travel":{distance:e("distance_predicate"),entered:(0,s.Opt)(e("location_predicate")),exited:(0,s.Opt)(e("location_predicate"))},"minecraft:placed_block":{block:(0,s.Opt)(t({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(t(),t(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,s.Opt)(e("item_predicate")),location:(0,s.Opt)(e("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:t({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:(0,s.Opt)(e("damage_predicate")),entity:d},"minecraft:player_interacted_with_entity":{item:(0,s.Opt)(e("item_predicate")),entity:d},"minecraft:player_killed_entity":{entity:d,killing_blow:(0,s.Opt)(e("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:t({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:(0,s.Opt)(e("location_predicate"))},"minecraft:slide_down_block":{block:(0,s.Opt)(t({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:summoned_entity":{entity:d},"minecraft:tame_animal":{entity:d},"minecraft:target_hit":{projectile:d,shooter:d,signal_strength:e("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:d,item:(0,s.Opt)(e("item_predicate"))},"minecraft:used_ender_eye":{distance:e("float_bounds")},"minecraft:used_totem":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:using_item":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:villager_trade":{villager:d,item:(0,s.Opt)(e("item_predicate"))},"minecraft:voluntary_exile":{location:e("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))}ae.initAdvancementSchemas=He;var ne={},ce={};Object.defineProperty(ce,"__esModule",{value:!0});ce.initModelSchemas=void 0;const g=w;function Ke(o,r){g.Reference.bind(void 0,o);const e=g.StringNode.bind(void 0,r),t=(a,n,N)=>(0,g.ListNode)((0,g.NumberNode)({min:n,max:N}),{minLength:a,maxLength:a}),d=(0,g.ChoiceNode)([{type:"alias",match:a=>typeof a=="string"&&a.startsWith("#"),node:e(),change:a=>typeof a=="string"?`#${a}`:"#0"},{type:"reference",match:a=>typeof a=="string",node:e({validator:"resource",params:{pool:"$texture"}}),change:a=>typeof a=="string"?a.replace(/^#/,""):""}],{choiceContext:"texture"});o.register("model",(0,g.Mod)((0,g.ObjectNode)({parent:(0,g.Opt)(e({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,g.Opt)((0,g.BooleanNode)()),gui_light:(0,g.Opt)(e({enum:"gui_light"})),textures:(0,g.Opt)((0,g.MapNode)(e(),d)),elements:(0,g.Opt)((0,g.ListNode)((0,g.ObjectNode)({from:t(3,-16,32),to:t(3,-16,32),rotation:(0,g.Opt)((0,g.ObjectNode)({origin:t(3),axis:e({enum:"axis"}),angle:(0,g.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,g.Opt)((0,g.BooleanNode)())})),shade:(0,g.Opt)((0,g.BooleanNode)()),faces:(0,g.MapNode)(e({enum:"direction"}),(0,g.ObjectNode)({texture:d,uv:(0,g.Opt)(t(4)),cullface:(0,g.Opt)(e({enum:"direction"})),rotation:(0,g.Opt)((0,g.NumberNode)({integer:!0})),tintindex:(0,g.Opt)((0,g.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,g.Opt)((0,g.MapNode)(e({enum:"display_position"}),(0,g.ObjectNode)({rotation:t(3),translation:t(3,-80,80),scale:t(3,-4,4)},{context:"item_transform"}))),overrides:(0,g.Opt)((0,g.ListNode)((0,g.ObjectNode)({predicate:(0,g.MapNode)(e({enum:"item_model_predicates"}),(0,g.NumberNode)()),model:e({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))}ce.initModelSchemas=Ke;var de={};Object.defineProperty(de,"__esModule",{value:!0});de.initBlockDefinitionSchemas=void 0;const x=w;function Xe(o,r){const e=x.Reference.bind(void 0,o),t=x.StringNode.bind(void 0,r);o.register("block_definition",(0,x.Mod)((0,x.ChoiceNode)([{type:"variants",match:a=>a.variants!==void 0,node:(0,x.ObjectNode)({variants:(0,x.MapNode)(t(),e("model_variant"))}),change:a=>({variants:{"":{}}})},{type:"multipart",match:a=>a.multipart!==void 0,node:(0,x.ObjectNode)({multipart:(0,x.ListNode)((0,x.ObjectNode)({when:(0,x.Opt)(e("multipart_condition")),apply:e("model_variant")}))}),change:a=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const d={model:t({validator:"resource",params:{pool:"$model"}}),x:(0,x.Opt)((0,x.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,x.Opt)((0,x.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,x.Opt)((0,x.BooleanNode)())};o.register("model_variant",(0,x.ChoiceNode)([{type:"object",node:(0,x.ObjectNode)(d),change:a=>Array.isArray(a)&&a.length>0?a[0]:{}},{type:"list",node:(0,x.ListNode)((0,x.ObjectNode)(Le(k({},d),{weight:(0,x.Opt)((0,x.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:a=>[k({weight:1},a)]}],{context:"model_variant"})),o.register("multipart_condition",(0,x.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,x.MapNode)(t(),t()),change:a=>typeof a=="object"&&Array.isArray(a==null?void 0:a.OR)&&a.OR.length>0?a.OR[0]:{}},{type:"or",match:a=>typeof a=="object"&&(a==null?void 0:a.OR)!==void 0,node:(0,x.ObjectNode)({OR:(0,x.ListNode)(e("multipart_condition"))}),change:a=>({OR:[a!=null?a:{}]})}],{context:"multipart_condition"}))}de.initBlockDefinitionSchemas=Xe;Object.defineProperty(ne,"__esModule",{value:!0});ne.initAssetsSchemas=void 0;const Ze=ce,Ye=de;function Je(o,r){(0,Ye.initBlockDefinitionSchemas)(o,r),(0,Ze.initModelSchemas)(o,r)}ne.initAssetsSchemas=Je;var F={};(function(o){Object.defineProperty(o,"__esModule",{value:!0}),o.initCommonSchemas=o.IntProvider=o.FloatProvider=o.NoiseSettingsPresets=o.DefaultNoiseSettings=o.DimensionTypePresets=o.DefaultDimensionType=o.FunctionCases=o.ConditionCases=void 0;const r=w;o.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},o.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"}}};function e(t,d){const a=r.StringNode.bind(void 0,d),n=r.Reference.bind(void 0,t);t.register("block_state",(0,r.Mod)((0,r.ObjectNode)({Name:a({validator:"resource",params:{pool:"block"}}),Properties:(0,r.Opt)((0,r.MapNode)(a(),a(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),t.register("fluid_state",(0,r.Mod)((0,r.ObjectNode)({Name:a({validator:"resource",params:{pool:"fluid"}}),Properties:(0,r.Opt)((0,r.MapNode)(a(),a()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),t.register("block_pos",(0,r.Mod)((0,r.ListNode)((0,r.NumberNode)({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const N=u=>(0,r.Opt)((0,r.ChoiceNode)([{type:"number",node:(0,r.NumberNode)({integer:u}),change:v=>{var j,O;return v===void 0?0:(O=(j=v.min)!==null&&j!==void 0?j:v.max)!==null&&O!==void 0?O:0}},{type:"object",node:(0,r.ObjectNode)({min:(0,r.Opt)((0,r.NumberNode)({integer:u})),max:(0,r.Opt)((0,r.NumberNode)({integer:u}))},{context:"range"}),change:v=>({min:v!=null?v:0,max:v!=null?v:0})}]));t.register("int_bounds",N(!0)),t.register("float_bounds",N()),t.register("int_range",(0,r.ChoiceNode)([{type:"object",node:(0,r.ObjectNode)({min:(0,r.Opt)(n("number_provider")),max:(0,r.Opt)(n("number_provider"))})},{type:"number",node:(0,r.NumberNode)({integer:!0})}],{context:"range"}));const B=(u,v,j,O,P,L,I)=>{let re={};P&&Object.keys(I[P]).forEach(T=>{re[T]=(0,r.Mod)(I[P][T],{enabled:D=>D.push("type").get()===void 0})});const K=(0,r.ObjectNode)(k({type:(0,r.Mod)((0,r.Opt)(a({validator:"resource",params:{pool:u}})),{hidden:()=>!0}),[r.Switch]:[{push:"type"}],[r.Case]:I},re),{context:L,disableSwitchContext:!0}),X=[{type:v,node:I[O][j]}];return P&&X.push({type:"object",priority:-1,node:K}),Object.keys(I).forEach(T=>{X.push({type:T,match:D=>{var Z;if("minecraft:"+((Z=D==null?void 0:D.type)===null||Z===void 0?void 0:Z.replace(/^minecraft:/,""))===T)return!0;const q=D?Object.keys(D):[];return typeof D=="object"&&((q==null?void 0:q.length)===0||(q==null?void 0:q.length)===1&&(q==null?void 0:q[0])==="type")},node:K,change:D=>({type:T})})}),(0,r.ChoiceNode)(X,{context:L,choiceContext:`${L}.type`})};t.register("number_provider",B("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:(0,r.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:(0,r.Opt)((0,r.NumberNode)())}})),t.register("scoreboard_name_provider",B("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:(0,r.Mod)(a({enum:"entity_source"}),{default:()=>"this"})}})),t.register("nbt_provider",B("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:a({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:(0,r.Mod)(a({enum:"copy_source"}),{default:()=>"this"})}})),o.FloatProvider=u=>B("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:(0,r.NumberNode)(u)},"minecraft:uniform":{value:(0,r.ObjectNode)({min_inclusive:(0,r.NumberNode)(u),max_exclusive:(0,r.NumberNode)(u)})},"minecraft:clamped_normal":{value:(0,r.ObjectNode)({min:(0,r.NumberNode)(),max:(0,r.NumberNode)(),mean:(0,r.NumberNode)(),deviation:(0,r.NumberNode)()})},"minecraft:trapezoid":{value:(0,r.ObjectNode)({min:(0,r.NumberNode)(),max:(0,r.NumberNode)(),plateau:(0,r.NumberNode)()})}}),t.register("float_provider",(0,o.FloatProvider)()),o.IntProvider=u=>B("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:(0,r.NumberNode)(k({integer:!0},u))},"minecraft:uniform":{value:(0,r.ObjectNode)({min_inclusive:(0,r.NumberNode)(k({integer:!0},u)),max_inclusive:(0,r.NumberNode)(k({integer:!0},u))})},"minecraft:biased_to_bottom":{value:(0,r.ObjectNode)({min_inclusive:(0,r.NumberNode)(k({integer:!0},u)),max_inclusive:(0,r.NumberNode)(k({integer:!0},u))})},"minecraft:clamped":{value:(0,r.ObjectNode)({min_inclusive:(0,r.NumberNode)(k({integer:!0},u)),max_inclusive:(0,r.NumberNode)(k({integer:!0},u)),source:n("int_provider")})}}),t.register("int_provider",(0,o.IntProvider)()),t.register("vertical_anchor",(0,r.ChoiceNode)(["absolute","above_bottom","below_top"].map(u=>({type:u,match:v=>(v==null?void 0:v[u])!==void 0,change:v=>{var j,O,P;return{[u]:(P=(O=(j=v.absolute)!==null&&j!==void 0?j:v.above_bottom)!==null&&O!==void 0?O:v.below_top)!==null&&P!==void 0?P:0}},node:(0,r.ObjectNode)({[u]:(0,r.NumberNode)({integer:!0,min:-2048,max:2047})})})),{context:"vertical_anchor"})),t.register("height_provider",B("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:(0,r.Opt)((0,r.NumberNode)({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor"),inner:(0,r.Opt)((0,r.NumberNode)({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor"),plateau:(0,r.Opt)((0,r.NumberNode)({integer:!0}))}})),o.ConditionCases=(u=a({enum:"entity_source"}))=>({"minecraft:alternative":{terms:(0,r.ListNode)(n("condition"))},"minecraft:block_state_property":{block:a({validator:"resource",params:{pool:"block"}}),properties:(0,r.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:u,predicate:n("entity_predicate")},"minecraft:entity_scores":{entity:u,scores:(0,r.MapNode)(a({validator:"objective"}),n("int_range"))},"minecraft:inverted":{term:n("condition")},"minecraft:killed_by_player":{inverse:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:location_check":{offsetX:(0,r.Opt)((0,r.NumberNode)({integer:!0})),offsetY:(0,r.Opt)((0,r.NumberNode)({integer:!0})),offsetZ:(0,r.Opt)((0,r.NumberNode)({integer:!0})),predicate:n("location_predicate")},"minecraft:match_tool":{predicate:n("item_predicate")},"minecraft:random_chance":{chance:(0,r.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,r.NumberNode)({min:0,max:1}),looting_multiplier:(0,r.NumberNode)()},"minecraft:reference":{name:a({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:a({validator:"resource",params:{pool:"enchantment"}}),chances:(0,r.ListNode)((0,r.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:n("int_range"),period:(0,r.Opt)((0,r.NumberNode)({integer:!0}))},"minecraft:value_check":{value:n("number_provider"),range:n("int_range")},"minecraft:weather_check":{raining:(0,r.Opt)((0,r.BooleanNode)()),thundering:(0,r.Opt)((0,r.BooleanNode)())}}),o.FunctionCases=(u,v=a({enum:"copy_source"}),j=a({enum:"entity_source"}))=>{const O={"minecraft:apply_bonus":{enchantment:a({validator:"resource",params:{pool:"enchantment"}}),formula:a({validator:"resource",params:{pool:d.get("loot_table_apply_bonus_formula")}}),parameters:(0,r.Mod)((0,r.ObjectNode)({bonusMultiplier:(0,r.Mod)((0,r.NumberNode)(),{enabled:L=>L.pop().push("formula").get()==="minecraft:uniform_bonus_count"}),extra:(0,r.Mod)((0,r.NumberNode)(),{enabled:L=>L.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"}),probability:(0,r.Mod)((0,r.NumberNode)(),{enabled:L=>L.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"})}),{enabled:L=>L.push("formula").get()!=="minecraft:ore_drops"})},"minecraft:copy_name":{source:v},"minecraft:copy_nbt":{source:n("nbt_provider"),ops:(0,r.ListNode)((0,r.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:(0,r.ListNode)(a({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,r.Opt)((0,r.ListNode)(a({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:n("number_provider"),treasure:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:exploration_map":{destination:(0,r.Opt)(a({enum:"map_feature"})),decoration:(0,r.Opt)(a({enum:"map_decoration"})),zoom:(0,r.Opt)((0,r.NumberNode)({integer:!0})),search_radius:(0,r.Opt)((0,r.NumberNode)({integer:!0})),skip_existing_chunks:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:fill_player_head":{entity:j},"minecraft:limit_count":{limit:n("int_range")},"minecraft:looting_enchant":{count:n("number_provider"),limit:(0,r.Opt)((0,r.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,r.ListNode)(n("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:(0,r.ListNode)((0,r.ObjectNode)({pattern:a({enum:"banner_pattern"}),color:a({enum:"dye_color"})})),append:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:set_contents":{entries:(0,r.ListNode)(n("loot_entry"))},"minecraft:set_count":{count:n("number_provider"),add:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:set_damage":{damage:n("number_provider"),add:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:set_enchantments":{enchantments:(0,r.MapNode)(a({validator:"resource",params:{pool:"enchantment"}}),n("number_provider")),add:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:set_loot_table":{name:a({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,r.Opt)((0,r.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,r.Opt)(j),lore:(0,r.ListNode)(n("text_component")),replace:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:set_name":{entity:(0,r.Opt)(j),name:(0,r.Opt)(n("text_component"))},"minecraft:set_nbt":{tag:a({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:(0,r.Opt)((0,r.ListNode)((0,r.ObjectNode)({type:a({validator:"resource",params:{pool:"mob_effect"}}),duration:n("number_provider")})))}},P={};return d.get("loot_function_type").forEach(L=>{P[L]=k(k({},O[L]),u)}),P},o.DimensionTypePresets=u=>(0,r.ObjectOrPreset)(a({validator:"resource",params:{pool:"$dimension_type"}}),u,{"minecraft:overworld":o.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}}),o.NoiseSettingsPresets=u=>(0,r.ObjectOrPreset)(a({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),u,{"minecraft:overworld":o.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"}}}})}o.initCommonSchemas=e})(F);var se={};Object.defineProperty(se,"__esModule",{value:!0});se.initConditionSchemas=void 0;const Y=w,Qe=F;function et(o,r){const e=Y.Reference.bind(void 0,o),t=Y.StringNode.bind(void 0,r);o.register("predicate",(0,Y.ObjectOrList)(e("condition"),{choiceContext:"condition"})),o.register("condition",(0,Y.Mod)((0,Y.ObjectNode)({condition:t({validator:"resource",params:{pool:"loot_condition_type"}}),[Y.Switch]:[{push:"condition"}],[Y.Case]:(0,Qe.ConditionCases)()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))}se.initConditionSchemas=et;var me={};Object.defineProperty(me,"__esModule",{value:!0});me.initDimensionSchemas=void 0;const f=w,Be=F;function tt(o,r){const e=f.Reference.bind(void 0,o),t=f.StringNode.bind(void 0,r),d=a=>(0,f.Mod)(a,{enabled:n=>n.push("preset").get()===void 0});o.register("dimension",(0,f.Mod)((0,f.ObjectNode)({type:(0,Be.DimensionTypePresets)(e("dimension_type")),generator:(0,f.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[f.Switch]:[{push:"type"}],[f.Case]:{"minecraft:noise":{seed:(0,f.NumberNode)({integer:!0}),settings:(0,Be.NoiseSettingsPresets)(e("noise_settings")),biome_source:(0,f.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/biome_source"}}),[f.Switch]:[{push:"type"}],[f.Case]:{"minecraft:fixed":{biome:t({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:(0,f.NumberNode)({integer:!0}),preset:(0,f.Opt)(t({enum:["nether"]})),altitude_noise:d(e("generator_biome_noise")),temperature_noise:d(e("generator_biome_noise")),humidity_noise:d(e("generator_biome_noise")),weirdness_noise:d(e("generator_biome_noise")),biomes:d((0,f.Mod)((0,f.ListNode)(e("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:(0,f.Opt)((0,f.NumberNode)({integer:!0,min:0,max:62})),biomes:(0,f.ListNode)(t({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:(0,f.NumberNode)({integer:!0})},"minecraft:vanilla_layered":{seed:(0,f.NumberNode)({integer:!0}),large_biomes:(0,f.Opt)((0,f.BooleanNode)()),legacy_biome_init_layer:(0,f.Opt)((0,f.BooleanNode)())}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:(0,f.ObjectNode)({biome:(0,f.Opt)(t({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:(0,f.Opt)((0,f.BooleanNode)()),features:(0,f.Opt)((0,f.BooleanNode)()),layers:(0,f.ListNode)(e("generator_layer")),structures:e("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const a=Math.floor(Math.random()*4294967296)-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:a,biome_source:{type:"minecraft:fixed",seed:a,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}})),o.register("generator_biome",(0,f.Mod)((0,f.ObjectNode)({biome:t({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:(0,f.ObjectNode)({altitude:(0,f.NumberNode)(),temperature:(0,f.NumberNode)(),humidity:(0,f.NumberNode)(),weirdness:(0,f.NumberNode)(),offset:(0,f.NumberNode)()})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),o.register("generator_biome_noise",(0,f.Mod)((0,f.ObjectNode)({firstOctave:(0,f.NumberNode)({integer:!0}),amplitudes:(0,f.ListNode)((0,f.NumberNode)())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))}me.initDimensionSchemas=tt;var le={};Object.defineProperty(le,"__esModule",{value:!0});le.initDimensionTypeSchemas=void 0;const M=w,rt=F;function ot(o,r){const e=M.StringNode.bind(void 0,r);o.register("dimension_type",(0,M.Mod)((0,M.ObjectNode)({name:(0,M.Mod)(e({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:t=>t.getArray().length>0}),ultrawarm:(0,M.BooleanNode)(),natural:(0,M.BooleanNode)(),piglin_safe:(0,M.BooleanNode)(),respawn_anchor_works:(0,M.BooleanNode)(),bed_works:(0,M.BooleanNode)(),has_raids:(0,M.BooleanNode)(),has_skylight:(0,M.BooleanNode)(),has_ceiling:(0,M.BooleanNode)(),coordinate_scale:(0,M.NumberNode)({min:1e-5,max:3e7}),ambient_light:(0,M.NumberNode)(),fixed_time:(0,M.Opt)((0,M.NumberNode)({integer:!0})),logical_height:(0,M.NumberNode)({integer:!0,min:0,max:4096}),effects:(0,M.Opt)(e({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:e({validator:"resource",params:{pool:"$tag/block"}}),min_y:(0,M.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,M.NumberNode)({integer:!0,min:0,max:4096})},{context:"dimension_type"}),t=>({default:()=>rt.DefaultDimensionType,validate:(d,a,n,N)=>(a=t.validate(d,a,n,N),(a==null?void 0:a.min_y)+(a==null?void 0:a.height)>2047&&n.add(d.push("height"),"error.min_y_plus_height",2047),(a==null?void 0:a.logical_height)>(a==null?void 0:a.height)&&n.add(d.push("logical_height"),"error.logical_height"),(a==null?void 0:a.height)%16!==0&&n.add(d.push("height"),"error.height_multiple",16),(a==null?void 0:a.min_y)%16!==0&&n.add(d.push("min_y"),"error.min_y_multiple",16),a)})))}le.initDimensionTypeSchemas=ot;var _e={};Object.defineProperty(_e,"__esModule",{value:!0});_e.initItemModifierSchemas=void 0;const A=w,it=F;function at(o,r){const e=A.Reference.bind(void 0,o),t=A.StringNode.bind(void 0,r);o.register("item_modifier",(0,A.ObjectOrList)(e("function"),{choiceContext:"function"}));const d={conditions:(0,A.Opt)((0,A.ListNode)(e("condition")))};o.register("function",(0,A.Mod)((0,A.ObjectNode)({function:t({validator:"resource",params:{pool:"loot_function_type"}}),[A.Switch]:[{push:"function"}],[A.Case]:(0,it.FunctionCases)(d)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))}_e.initItemModifierSchemas=at;var pe={},R={};Object.defineProperty(R,"__esModule",{value:!0});R.LootFunctions=R.LootConditions=R.LootCopySources=R.LootEntitySources=R.LootTableTypes=void 0;R.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]}]]);R.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]);R.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]);R.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",[]]]);R.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(pe,"__esModule",{value:!0});pe.initLootTableSchemas=void 0;const b=w,ee=R,ze=F;function nt(o,r){const e=b.Reference.bind(void 0,o),t=b.StringNode.bind(void 0,r),d={conditions:(0,b.Opt)((0,b.ListNode)(e("loot_condition")))},a=k({functions:(0,b.Opt)((0,b.ListNode)(e("loot_function")))},d);function n(O,P,L){const I=[],re=K=>r.get(P).filter(X=>{var T;return((T=O.get(X))!==null&&T!==void 0?T:[]).every(Z=>K.includes(Z))});for(const[K,{allows:X,requires:T}]of ee.LootTableTypes){const D=[...X,...T];I.push({match:Z=>Z.getModel().get(new b.Path(["type"]))===K,node:L(re(D))})}return I.push({match:K=>!0,node:L(P)}),(0,b.SwitchNode)(I)}const N=n(ee.LootConditions,"loot_condition_type",O=>t({validator:"resource",params:{pool:O instanceof Array?O:"loot_condition_type"}})),B=n(ee.LootFunctions,"loot_function_type",O=>t({validator:"resource",params:{pool:O instanceof Array?O:"loot_function_type"}})),u=n(ee.LootEntitySources,"entity_source",O=>t({enum:O})),v=n(ee.LootCopySources,"copy_source",O=>t({enum:O}));o.register("loot_table",(0,b.Mod)((0,b.ObjectNode)({type:(0,b.Opt)(t({validator:"resource",params:{pool:r.get("loot_context_type")}})),pools:(0,b.Opt)((0,b.ListNode)((0,b.Mod)((0,b.ObjectNode)(k({rolls:e("number_provider"),bonus_rolls:(0,b.Opt)(e("number_provider")),entries:(0,b.ListNode)(e("loot_entry"))},a),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,b.Opt)((0,b.ListNode)(e("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const j={enabled:O=>{var P;return((P=O.pop().get())===null||P===void 0?void 0:P.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(O.push("type").get())}};o.register("loot_entry",(0,b.Mod)((0,b.ObjectNode)({type:t({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,b.Opt)((0,b.Mod)((0,b.NumberNode)({integer:!0,min:1}),j)),quality:(0,b.Opt)((0,b.Mod)((0,b.NumberNode)({integer:!0}),j)),[b.Switch]:[{push:"type"}],[b.Case]:{"minecraft:alternatives":k({children:(0,b.ListNode)(e("loot_entry"))},a),"minecraft:dynamic":k({name:t()},a),"minecraft:group":k({children:(0,b.ListNode)(e("loot_entry"))},a),"minecraft:item":k({name:t({validator:"resource",params:{pool:"item"}})},a),"minecraft:loot_table":k({name:t({validator:"resource",params:{pool:"$loot_table"}})},a),"minecraft:sequence":k({children:(0,b.ListNode)(e("loot_entry"))},a),"minecraft:tag":k({name:t({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,b.Opt)((0,b.BooleanNode)())},a)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),o.register("loot_function",(0,b.Mod)((0,b.ObjectNode)({function:B,[b.Switch]:[{push:"function"}],[b.Case]:(0,ze.FunctionCases)(d,v,u)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),o.register("loot_condition",(0,b.Mod)((0,b.ObjectNode)({condition:N,[b.Switch]:[{push:"condition"}],[b.Case]:(0,ze.ConditionCases)(u)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),o.register("attribute_modifier",(0,b.Mod)((0,b.ObjectNode)({attribute:t({validator:"resource",params:{pool:"attribute"}}),name:t(),amount:e("number_provider"),operation:t({enum:["addition","multiply_base","multiply_total"]}),slot:(0,b.StringOrList)(t({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))}pe.initLootTableSchemas=nt;var ue={};Object.defineProperty(ue,"__esModule",{value:!0});ue.initPackMcmetaSchemas=void 0;const J=w,G=7;function ct(o,r){o.register("pack_mcmeta",(0,J.Mod)((0,J.ObjectNode)({pack:(0,J.Mod)((0,J.ObjectNode)({pack_format:(0,J.Mod)((0,J.NumberNode)({integer:!0,min:G,max:G}),{default:()=>G,canUpdate:(e,t)=>t!==G,update:()=>[{name:"pack_format",params:[G],newValue:G}]}),description:(0,J.Reference)(o,"text_component")}),{default:()=>({pack_format:G,description:""})})}),{default:()=>({pack:{pack_format:G,description:""}})}))}ue.initPackMcmetaSchemas=ct;var fe={};Object.defineProperty(fe,"__esModule",{value:!0});fe.initPredicatesSchemas=void 0;const c=w;function dt(o,r){const e=c.Reference.bind(void 0,o),t=c.StringNode.bind(void 0,r),d=(0,c.ChoiceNode)([{type:"string",node:t(),change:a=>typeof a=="boolean"||typeof a=="number"?a.toString():""},{type:"number",node:(0,c.NumberNode)(),change:a=>typeof a=="string"?parseInt(a):0},{type:"object",node:(0,c.ObjectNode)({min:(0,c.Opt)((0,c.NumberNode)({integer:!0})),max:(0,c.Opt)((0,c.NumberNode)({integer:!0}))}),change:a=>typeof a=="number"?{min:a,max:a}:{}},{type:"boolean",node:(0,c.BooleanNode)(),change:a=>a==="true"||a===1}]);o.register("item_predicate",(0,c.ObjectNode)({items:(0,c.Opt)((0,c.ListNode)(t({validator:"resource",params:{pool:"item"}}))),tag:(0,c.Opt)(t({validator:"resource",params:{pool:"$tag/item"}})),count:e("int_bounds"),durability:e("int_bounds"),potion:(0,c.Opt)(t({validator:"resource",params:{pool:"potion"}})),nbt:(0,c.Opt)(t({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,c.Opt)((0,c.ListNode)(e("enchantment_predicate")))},{context:"item"})),o.register("enchantment_predicate",(0,c.ObjectNode)({enchantment:(0,c.Opt)(t({validator:"resource",params:{pool:"enchantment"}})),levels:e("int_bounds")},{context:"enchantment"})),o.register("block_predicate",(0,c.ObjectNode)({blocks:(0,c.Opt)((0,c.ListNode)(t({validator:"resource",params:{pool:"block"}}))),tag:(0,c.Opt)(t({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,c.Opt)(t({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,c.Opt)((0,c.MapNode)(t(),d,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),o.register("fluid_predicate",(0,c.ObjectNode)({fluid:(0,c.Opt)(t({validator:"resource",params:{pool:"fluid"}})),tag:(0,c.Opt)(t({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,c.Opt)((0,c.MapNode)(t(),d))},{context:"fluid"})),o.register("location_predicate",(0,c.ObjectNode)({position:(0,c.Opt)((0,c.ObjectNode)({x:e("float_bounds"),y:e("float_bounds"),z:e("float_bounds")})),biome:(0,c.Opt)(t({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:(0,c.Opt)(t({enum:r.get("worldgen/structure_feature").map(a=>a.slice(10))})),dimension:(0,c.Opt)(t({validator:"resource",params:{pool:"$dimension"}})),light:(0,c.Opt)((0,c.ObjectNode)({light:e("int_bounds")})),smokey:(0,c.Opt)((0,c.BooleanNode)()),block:(0,c.Opt)(e("block_predicate")),fluid:(0,c.Opt)(e("fluid_predicate"))},{context:"location"})),o.register("statistic_predicate",(0,c.ObjectNode)({type:t({validator:"resource",params:{pool:"stat_type"}}),stat:t(),value:e("int_bounds"),[c.Switch]:[{push:"type"}],[c.Case]:{"minecraft:mined":{stat:t({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:t({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:t({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:t({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:t({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:t({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:t({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:t({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:t({validator:"resource",params:{pool:"custom_stat"}})}}})),o.register("player_predicate",(0,c.ObjectNode)({gamemode:(0,c.Opt)(t({enum:"gamemode"})),level:e("int_bounds"),advancements:(0,c.Opt)((0,c.MapNode)(t({validator:"resource",params:{pool:"$advancement"}}),(0,c.ChoiceNode)([{type:"boolean",node:(0,c.BooleanNode)(),change:a=>!0},{type:"object",node:(0,c.MapNode)(t(),(0,c.BooleanNode)())}]))),recipes:(0,c.Opt)((0,c.MapNode)(t({validator:"resource",params:{pool:"$recipe"}}),(0,c.BooleanNode)())),stats:(0,c.Opt)((0,c.ListNode)(e("statistic_predicate"))),looking_at:(0,c.Opt)(e("entity_predicate"))},{context:"player"})),o.register("status_effect_predicate",(0,c.ObjectNode)({amplifier:e("int_bounds"),duration:e("int_bounds"),ambient:(0,c.Opt)((0,c.BooleanNode)()),visible:(0,c.Opt)((0,c.BooleanNode)())},{context:"status_effect"})),o.register("distance_predicate",(0,c.ObjectNode)({x:e("float_bounds"),y:e("float_bounds"),z:e("float_bounds"),absolute:e("float_bounds"),horizontal:e("float_bounds")},{context:"distance"})),o.register("entity_predicate",(0,c.ObjectNode)({type:(0,c.Opt)(t({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:(0,c.Opt)(t({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,c.Opt)(t({validator:"team"})),location:(0,c.Opt)(e("location_predicate")),stepping_on:(0,c.Opt)(e("location_predicate")),distance:(0,c.Opt)(e("distance_predicate")),flags:(0,c.Opt)((0,c.ObjectNode)({is_on_fire:(0,c.Opt)((0,c.BooleanNode)()),is_sneaking:(0,c.Opt)((0,c.BooleanNode)()),is_sprinting:(0,c.Opt)((0,c.BooleanNode)()),is_swimming:(0,c.Opt)((0,c.BooleanNode)()),is_baby:(0,c.Opt)((0,c.BooleanNode)())})),equipment:(0,c.Opt)((0,c.MapNode)(t({enum:"slot"}),e("item_predicate"))),vehicle:(0,c.Opt)(e("entity_predicate")),passenger:(0,c.Opt)(e("entity_predicate")),targeted_entity:(0,c.Opt)(e("entity_predicate")),player:(0,c.Opt)(e("player_predicate")),lightning_bolt:(0,c.Opt)((0,c.ObjectNode)({blocks_set_on_fire:(0,c.Opt)(e("int_bounds")),entity_struck:(0,c.Opt)(e("entity_predicate"))})),fishing_hook:(0,c.Opt)((0,c.ObjectNode)({in_open_water:(0,c.Opt)((0,c.BooleanNode)())})),catType:(0,c.Opt)(t({enum:"cat_texture"})),effects:(0,c.Opt)((0,c.MapNode)(t({validator:"resource",params:{pool:"mob_effect"}}),e("status_effect_predicate")))},{context:"entity"})),o.register("damage_source_predicate",(0,c.ObjectNode)({is_explosion:(0,c.Opt)((0,c.BooleanNode)()),is_fire:(0,c.Opt)((0,c.BooleanNode)()),is_magic:(0,c.Opt)((0,c.BooleanNode)()),is_projectile:(0,c.Opt)((0,c.BooleanNode)()),is_lightning:(0,c.Opt)((0,c.BooleanNode)()),bypasses_armor:(0,c.Opt)((0,c.BooleanNode)()),bypasses_invulnerability:(0,c.Opt)((0,c.BooleanNode)()),bypasses_magic:(0,c.Opt)((0,c.BooleanNode)()),source_entity:(0,c.Opt)(e("entity_predicate")),direct_entity:(0,c.Opt)(e("entity_predicate"))},{context:"damage_source"})),o.register("damage_predicate",(0,c.ObjectNode)({dealt:e("float_bounds"),taken:e("float_bounds"),blocked:(0,c.Opt)((0,c.BooleanNode)()),source_entity:(0,c.Opt)(e("entity_predicate")),type:(0,c.Opt)(e("damage_source_predicate"))},{context:"damage"}))}fe.initPredicatesSchemas=dt;var be={};Object.defineProperty(be,"__esModule",{value:!0});be.initRecipeSchemas=void 0;const p=w;function st(o,r){const e=p.Reference.bind(void 0,o),t=p.StringNode.bind(void 0,r);o.register("recipe",(0,p.Mod)((0,p.ObjectNode)({type:t({validator:"resource",params:{pool:"recipe_serializer"}}),[p.Switch]:[{push:"type"}],[p.Case]:{"minecraft:crafting_shaped":{group:(0,p.Opt)(t({enum:"recipe_group",additional:!0})),pattern:(0,p.ListNode)(t()),key:(0,p.MapNode)(t(),e("recipe_ingredient")),result:e("recipe_result")},"minecraft:crafting_shapeless":{group:(0,p.Opt)(t()),ingredients:(0,p.ListNode)(e("recipe_ingredient")),result:e("recipe_result")},"minecraft:smelting":{group:(0,p.Opt)(t()),ingredient:e("recipe_ingredient"),result:t({validator:"resource",params:{pool:"item"}}),experience:(0,p.Opt)((0,p.NumberNode)()),cookingtime:(0,p.Opt)((0,p.Mod)((0,p.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,p.Opt)(t()),ingredient:e("recipe_ingredient"),result:t({validator:"resource",params:{pool:"item"}}),experience:(0,p.Opt)((0,p.NumberNode)()),cookingtime:(0,p.Opt)((0,p.Mod)((0,p.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,p.Opt)(t()),ingredient:e("recipe_ingredient"),result:t({validator:"resource",params:{pool:"item"}}),experience:(0,p.Opt)((0,p.NumberNode)()),cookingtime:(0,p.Opt)((0,p.Mod)((0,p.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,p.Opt)(t()),ingredient:e("recipe_ingredient"),result:t({validator:"resource",params:{pool:"item"}}),experience:(0,p.Opt)((0,p.NumberNode)()),cookingtime:(0,p.Opt)((0,p.Mod)((0,p.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,p.Opt)(t()),ingredient:e("recipe_ingredient"),result:t({validator:"resource",params:{pool:"item"}}),count:(0,p.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,p.Opt)(t()),base:e("recipe_ingredient_object"),addition:e("recipe_ingredient_object"),result:e("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),o.register("recipe_ingredient",(0,p.Mod)((0,p.ChoiceNode)([{type:"object",node:e("recipe_ingredient_object"),change:d=>d[0]},{type:"list",node:(0,p.ListNode)(e("recipe_ingredient_object")),change:d=>[d]}]),{default:()=>({item:"minecraft:stone"})})),o.register("recipe_ingredient_object",(0,p.Mod)((0,p.ObjectNode)({item:(0,p.Opt)(t({validator:"resource",params:{pool:"item"}})),tag:(0,p.Opt)(t({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),o.register("recipe_result",(0,p.Mod)((0,p.ObjectNode)({item:t({validator:"resource",params:{pool:"item"}}),count:(0,p.Opt)((0,p.Mod)((0,p.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))}be.initRecipeSchemas=st;var ge={};Object.defineProperty(ge,"__esModule",{value:!0});ge.initTagsSchemas=void 0;const E=w;function mt(o,r){const e=E.StringNode.bind(void 0,r),t=d=>(0,E.Mod)((0,E.ObjectNode)({replace:(0,E.Opt)((0,E.BooleanNode)()),values:(0,E.ListNode)((0,E.ChoiceNode)([{type:"string",node:e({validator:"resource",params:{pool:d,allowTag:!0}}),change:a=>a.id},{type:"object",node:(0,E.ObjectNode)({id:e({validator:"resource",params:{pool:d,allowTag:!0,allowUnknown:!0}}),required:(0,E.BooleanNode)()}),change:a=>({id:a})}]))},{context:"tag"}),{default:()=>({values:[]})});o.register("block_tag",t("block")),o.register("entity_type_tag",t("entity_type")),o.register("fluid_tag",t("fluid")),o.register("function_tag",t("$function")),o.register("game_event_tag",t("game_event")),o.register("item_tag",t("item"))}ge.initTagsSchemas=mt;var Ne={};Object.defineProperty(Ne,"__esModule",{value:!0});Ne.initTextComponentSchemas=void 0;const m=w;function lt(o,r){const e=m.Reference.bind(void 0,o),t=m.StringNode.bind(void 0,r),d=n=>{var N;return n instanceof Array?d(n[0]):(N=n==null?void 0:n.text)!==null&&N!==void 0?N:typeof n=="object"?"":n==null?void 0:n.toString()};o.register("text_component",(0,m.Mod)((0,m.ChoiceNode)([{type:"object",node:e("text_component_object"),change:n=>n instanceof Array?typeof n[0]=="object"?n[0]:{text:d(n[0])}:typeof n=="object"?n:{text:d(n)}},{type:"list",node:e("text_component_list"),change:n=>[n]},{type:"string",priority:1,node:t(),change:d},{type:"number",node:(0,m.NumberNode)(),change:n=>{const N=parseFloat(d(n));return isFinite(N)?N:n?1:0}},{type:"boolean",node:(0,m.BooleanNode)(),change:n=>{const N=d(n);return N==="true"||N==="false"?N==="true":!!N}}],{context:"text_component"}),{default:()=>({text:""})}));const a={color:(0,m.Opt)(t()),font:(0,m.Opt)(t()),bold:(0,m.Opt)((0,m.BooleanNode)()),italic:(0,m.Opt)((0,m.BooleanNode)()),underlined:(0,m.Opt)((0,m.BooleanNode)()),strikethrough:(0,m.Opt)((0,m.BooleanNode)()),obfuscated:(0,m.Opt)((0,m.BooleanNode)()),insertion:(0,m.Opt)(t()),clickEvent:(0,m.Opt)((0,m.ObjectNode)({action:t({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[m.Switch]:[{push:"action"}],[m.Case]:{change_page:{value:t()},copy_to_clipboard:{value:t()},open_file:{value:t()},open_url:{value:t()},run_command:{value:t({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:t({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:(0,m.Opt)((0,m.ObjectNode)({action:t({enum:["show_text","show_item","show_entity"]}),[m.Switch]:[{push:"action"}],[m.Case]:{show_text:{value:(0,m.Opt)(e("text_component")),contents:(0,m.Opt)(e("text_component"))},show_item:{value:(0,m.Opt)(t({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:(0,m.Opt)((0,m.ObjectNode)({id:t({validator:"resource",params:{pool:"item"}}),count:(0,m.Opt)((0,m.NumberNode)({integer:!0})),tag:(0,m.Opt)(t({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:(0,m.Opt)((0,m.ObjectNode)({name:(0,m.Opt)(t()),type:(0,m.Opt)(t()),id:(0,m.Opt)(t())})),contents:(0,m.Opt)((0,m.Mod)((0,m.ObjectNode)({name:(0,m.Opt)(e("text_component")),type:t({validator:"resource",params:{pool:"entity_type"}}),id:t({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:(0,m.Opt)(e("text_component_list"))};o.register("text_component_object",(0,m.Mod)((0,m.ChoiceNode)([{type:"text",match:n=>typeof n=="object",change:n=>({text:""}),priority:-1,node:(0,m.ObjectNode)(k({text:t()},a))},{type:"translation",match:n=>(n==null?void 0:n.translate)!==void 0,change:n=>({translate:""}),node:(0,m.ObjectNode)(k({translate:t(),with:(0,m.Opt)(e("text_component_list"))},a))},{type:"score",match:n=>(n==null?void 0:n.score)!==void 0,change:n=>({score:{}}),node:(0,m.ObjectNode)(k({score:(0,m.ObjectNode)({name:t({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:t({validator:"objective"}),value:(0,m.Opt)(t())})},a))},{type:"selector",match:n=>(n==null?void 0:n.selector)!==void 0,change:n=>({selector:""}),node:(0,m.ObjectNode)(k({selector:t({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:(0,m.Opt)(e("text_component"))},a))},{type:"keybind",match:n=>(n==null?void 0:n.keybind)!==void 0,change:n=>({keybind:""}),node:(0,m.ObjectNode)(k({keybind:t({enum:"keybind",additional:!0})},a))},{type:"nbt",match:n=>(n==null?void 0:n.nbt)!==void 0,change:n=>({nbt:""}),node:(0,m.ObjectNode)(k({nbt:t({validator:"nbt_path"}),block:(0,m.Opt)(t({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,m.Opt)(t({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,m.Opt)(t({validator:"resource",params:{pool:"$storage"}})),interpret:(0,m.Opt)((0,m.BooleanNode)()),separator:(0,m.Opt)(e("text_component"))},a))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),o.register("text_component_list",(0,m.Mod)((0,m.ListNode)(e("text_component")),{default:()=>[{text:""}]}))}Ne.initTextComponentSchemas=lt;var he={},ye={};Object.defineProperty(ye,"__esModule",{value:!0});ye.initBiomeSchemas=void 0;const l=w;function _t(o,r){const e=l.StringNode.bind(void 0,r);o.register("biome",(0,l.Mod)((0,l.ObjectNode)({surface_builder:e({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:(0,l.NumberNode)(),scale:(0,l.NumberNode)(),temperature:(0,l.NumberNode)(),downfall:(0,l.NumberNode)(),precipitation:e({enum:["none","rain","snow"]}),temperature_modifier:(0,l.Opt)(e({enum:["none","frozen"]})),category:e({enum:"biome_category"}),player_spawn_friendly:(0,l.Opt)((0,l.BooleanNode)()),creature_spawn_probability:(0,l.Opt)((0,l.NumberNode)({min:0,max:1})),effects:(0,l.ObjectNode)({sky_color:(0,l.NumberNode)({color:!0}),fog_color:(0,l.NumberNode)({color:!0}),water_color:(0,l.NumberNode)({color:!0}),water_fog_color:(0,l.NumberNode)({color:!0}),grass_color:(0,l.Opt)((0,l.NumberNode)({color:!0})),foliage_color:(0,l.Opt)((0,l.NumberNode)({color:!0})),grass_color_modifier:(0,l.Opt)(e({enum:["none","dark_forest","swamp"]})),ambient_sound:(0,l.Opt)(e()),mood_sound:(0,l.Opt)((0,l.ObjectNode)({sound:e(),tick_delay:(0,l.NumberNode)({integer:!0}),block_search_extent:(0,l.NumberNode)({integer:!0}),offset:(0,l.NumberNode)()})),additions_sound:(0,l.Opt)((0,l.ObjectNode)({sound:e(),tick_chance:(0,l.NumberNode)({min:0,max:1})})),music:(0,l.Opt)((0,l.ObjectNode)({sound:e(),min_delay:(0,l.NumberNode)({integer:!0,min:0}),max_delay:(0,l.NumberNode)({integer:!0,min:0}),replace_current_music:(0,l.BooleanNode)()})),particle:(0,l.Opt)((0,l.ObjectNode)({options:(0,l.ObjectNode)({type:e()}),probability:(0,l.NumberNode)({min:0,max:1})}))}),starts:(0,l.ListNode)(e({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:(0,l.MapNode)(e({enum:["monster","creature","ambient","underground_water_creature","water_creature","water_ambient","misc"]}),(0,l.Mod)((0,l.ListNode)((0,l.ObjectNode)({type:e({validator:"resource",params:{pool:"entity_type"}}),weight:(0,l.NumberNode)({integer:!0}),minCount:(0,l.NumberNode)({integer:!0}),maxCount:(0,l.NumberNode)({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:(0,l.MapNode)(e({validator:"resource",params:{pool:"entity_type"}}),(0,l.Mod)((0,l.ObjectNode)({energy_budget:(0,l.NumberNode)(),charge:(0,l.NumberNode)()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:(0,l.MapNode)(e({enum:["air","liquid"]}),(0,l.Mod)((0,l.ListNode)(e({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:(0,l.ListNode)((0,l.Mod)((0,l.ListNode)(e({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}})}))}ye.initBiomeSchemas=_t;var ve={};Object.defineProperty(ve,"__esModule",{value:!0});ve.initCarverSchemas=void 0;const S=w,U=F;function pt(o,r){const e=S.Reference.bind(void 0,o),t=S.StringNode.bind(void 0,r),d={vertical_rotation:(0,U.FloatProvider)(),shape:(0,S.ObjectNode)({distance_factor:(0,U.FloatProvider)(),thickness:(0,U.FloatProvider)(),width_smoothness:(0,S.NumberNode)({integer:!0,min:0}),horizontal_radius_factor:(0,U.FloatProvider)(),vertical_radius_default_factor:(0,S.NumberNode)(),vertical_radius_center_factor:(0,S.NumberNode)()})},a={horizontal_radius_multiplier:(0,U.FloatProvider)(),vertical_radius_multiplier:(0,U.FloatProvider)(),floor_level:(0,U.FloatProvider)({min:-1,max:1})};o.register("configured_carver",(0,S.Mod)((0,S.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/carver"}}),config:(0,S.ObjectNode)({probability:(0,S.NumberNode)({min:0,max:1}),y:e("height_provider"),yScale:(0,U.FloatProvider)(),lava_level:e("vertical_anchor"),aquifers_enabled:(0,S.BooleanNode)(),debug_settings:(0,S.Opt)((0,S.ObjectNode)({debug_mode:(0,S.Opt)((0,S.BooleanNode)()),air_state:(0,S.Opt)(e("block_state")),water_state:(0,S.Opt)(e("block_state")),lava_state:(0,S.Opt)(e("block_state")),barrier_state:(0,S.Opt)(e("block_state"))})),[S.Switch]:["pop",{push:"type"}],[S.Case]:{"minecraft:canyon":d,"minecraft:cave":a,"minecraft:nether_cave":a}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))}ve.initCarverSchemas=pt;var Oe={};Object.defineProperty(Oe,"__esModule",{value:!0});Oe.initDecoratorSchemas=void 0;const C=w,ut=F;function ft(o,r){const e=C.Reference.bind(void 0,o),t=C.StringNode.bind(void 0,r),d={count:(0,ut.IntProvider)({min:0,max:256})};o.register("configured_decorator",(0,C.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/decorator"}}),config:(0,C.ObjectNode)({[C.Switch]:["pop",{push:"type"}],[C.Case]:{"minecraft:carving_mask":{step:t({enum:"generation_step"})},"minecraft:cave_surface":{surface:t({enum:["floor","ceiling"]}),floor_to_ceiling_search_range:(0,C.NumberNode)({integer:!0})},"minecraft:chance":{chance:(0,C.NumberNode)({integer:!0,min:0})},"minecraft:count":d,"minecraft:count_extra":{count:(0,C.NumberNode)({integer:!0,min:0}),extra_count:(0,C.NumberNode)({integer:!0,min:0}),extra_chance:(0,C.NumberNode)({min:0,max:1})},"minecraft:count_multilayer":d,"minecraft:count_noise":{noise_level:(0,C.NumberNode)(),below_noise:(0,C.NumberNode)({integer:!0}),above_noise:(0,C.NumberNode)({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:(0,C.NumberNode)({integer:!0}),noise_factor:(0,C.NumberNode)(),noise_offset:(0,C.Opt)((0,C.NumberNode)())},"minecraft:decorated":{outer:e("configured_decorator"),inner:e("configured_decorator")},"minecraft:heightmap":{heightmap:t({enum:"heightmap_type"})},"minecraft:heightmap_spread_double":{heightmap:t({enum:"heightmap_type"})},"minecraft:lava_lake":{chance:(0,C.NumberNode)({integer:!0,min:0})},"minecraft:range":{height:e("height_provider")},"minecraft:water_depth_threshold":{max_water_depth:(0,C.NumberNode)({integer:!0})}}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))}Oe.initDecoratorSchemas=ft;var ke={},H={};Object.defineProperty(H,"__esModule",{value:!0});H.initProcessorListSchemas=H.Processors=void 0;const h=w;function bt(o,r){const e=h.Reference.bind(void 0,o),t=h.StringNode.bind(void 0,r);H.Processors=(0,h.ChoiceNode)([{type:"string",node:t({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:a=>{}},{type:"object",node:e("processor_list"),change:a=>({processors:[{processor_type:"minecraft:nop"}]})}]),o.register("processor_list",(0,h.Mod)((0,h.ObjectNode)({processors:(0,h.ListNode)(e("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"}}]}]})})),o.register("processor",(0,h.Mod)((0,h.ObjectNode)({processor_type:t({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[h.Switch]:[{push:"processor_type"}],[h.Case]:{"minecraft:block_age":{mossiness:(0,h.NumberNode)()},"minecraft:block_ignore":{blocks:(0,h.ListNode)(e("block_state"))},"minecraft:block_rot":{integrity:(0,h.NumberNode)({min:0,max:1})},"minecraft:gravity":{heightmap:t({enum:"heightmap_type"}),offset:(0,h.NumberNode)({integer:!0})},"minecraft:protected_blocks":{value:t({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:(0,h.ListNode)(e("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"}}]})})),o.register("processor_rule",(0,h.Mod)((0,h.ObjectNode)({position_predicate:(0,h.Opt)(e("pos_rule_test")),location_predicate:e("rule_test"),input_predicate:e("rule_test"),output_state:e("block_state"),output_nbt:(0,h.Opt)(t({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 d={min_dist:(0,h.Opt)((0,h.NumberNode)({min:0,max:255,integer:!0})),max_dist:(0,h.Opt)((0,h.NumberNode)({min:0,max:255,integer:!0})),min_chance:(0,h.Opt)((0,h.NumberNode)({min:0,max:1})),max_chance:(0,h.Opt)((0,h.NumberNode)({min:0,max:1}))};o.register("pos_rule_test",(0,h.ObjectNode)({predicate_type:t({validator:"resource",params:{pool:"pos_rule_test"}}),[h.Switch]:[{push:"predicate_type"}],[h.Case]:{"minecraft:axis_aligned_linear_pos":k({axis:t({enum:["x","y","z"]})},d),"minecraft:linear_pos":d}},{context:"pos_rule_test",disableSwitchContext:!0})),o.register("rule_test",(0,h.ObjectNode)({predicate_type:t({validator:"resource",params:{pool:"rule_test"}}),[h.Switch]:[{push:"predicate_type"}],[h.Case]:{"minecraft:block_match":{block:t({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:e("block_state")},"minecraft:random_block_match":{block:t({validator:"resource",params:{pool:"block"}}),probability:(0,h.NumberNode)({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:e("block_state"),probability:(0,h.NumberNode)({min:0,max:1})},"minecraft:tag_match":{tag:t({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))}H.initProcessorListSchemas=bt;Object.defineProperty(ke,"__esModule",{value:!0});ke.initFeatureSchemas=void 0;const i=w,y=F,$e=H;function gt(o,r){const e=i.Reference.bind(void 0,o),t=i.StringNode.bind(void 0,r),d={can_replace:(0,i.Opt)((0,i.BooleanNode)()),project:(0,i.Opt)((0,i.BooleanNode)()),need_water:(0,i.Opt)((0,i.BooleanNode)()),xspread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),yspread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),zspread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),tries:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1})),state_provider:e("block_state_provider"),block_placer:e("block_placer"),whitelist:(0,i.ListNode)(e("block_state")),blacklist:(0,i.ListNode)(e("block_state"))},a={state:e("block_state"),radius:(0,y.IntProvider)({min:0,max:8}),half_height:(0,i.NumberNode)({integer:!0,min:0,max:4}),targets:(0,i.ListNode)(e("block_state"))},n={cap_provider:e("block_state_provider"),stem_provider:e("block_state_provider"),foliage_radius:(0,i.Opt)((0,i.NumberNode)({integer:!0}))},N=(0,i.ObjectNode)({target:e("rule_test"),state:e("block_state")}),B={size:(0,i.NumberNode)({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:(0,i.NumberNode)({min:0,max:1}),targets:(0,i.ListNode)(N)},u=(0,i.ChoiceNode)([{type:"string",node:t({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:e("configured_feature")}],{choiceContext:"feature"}),v={surface:t({enum:["floor","ceiling"]}),depth:(0,y.IntProvider)({min:1,max:128}),vertical_range:(0,i.NumberNode)({integer:!0,min:1,max:256}),extra_bottom_block_chance:(0,i.NumberNode)({min:0,max:1}),extra_edge_column_chance:(0,i.NumberNode)({min:0,max:1}),vegetation_chance:(0,i.NumberNode)({min:0,max:1}),xz_radius:(0,y.IntProvider)(),replaceable:t({validator:"resource",params:{pool:"$tag/block"}}),ground_state:e("block_state_provider"),vegetation_feature:u};o.register("configured_feature",(0,i.Mod)((0,i.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/feature"}}),config:(0,i.ObjectNode)({[i.Switch]:["pop",{push:"type"}],[i.Case]:{"minecraft:bamboo":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:basalt_columns":{reach:(0,y.IntProvider)({min:0,max:3}),height:(0,y.IntProvider)({min:1,max:10})},"minecraft:block_pile":{state_provider:e("block_state_provider")},"minecraft:decorated":{decorator:e("configured_decorator"),feature:u},"minecraft:decorated_flower":{decorator:e("configured_decorator"),feature:u},"minecraft:delta_feature":{contents:e("block_state"),rim:e("block_state"),size:(0,y.IntProvider)({min:0,max:16}),rim_size:(0,y.IntProvider)({min:0,max:16})},"minecraft:disk":a,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:(0,i.NumberNode)({integer:!0,min:1,max:512}),height:(0,y.IntProvider)({min:0,max:128}),radius:(0,y.IntProvider)({min:0,max:128}),max_stalagmite_stalactite_height_diff:(0,i.NumberNode)({integer:!0,min:0,max:64}),height_deviation:(0,i.NumberNode)({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:(0,y.IntProvider)({min:0,max:128}),density:(0,y.FloatProvider)({min:0,max:2}),wetness:(0,y.FloatProvider)({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:(0,i.NumberNode)({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:(0,i.NumberNode)({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:(0,i.NumberNode)({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:(0,i.BooleanNode)(),exit:(0,i.Opt)(e("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:(0,i.Opt)((0,i.BooleanNode)()),crystal_beam_target:(0,i.Opt)(e("block_pos")),spikes:(0,i.ListNode)((0,i.ObjectNode)({centerX:(0,i.Opt)((0,i.NumberNode)({integer:!0})),centerZ:(0,i.Opt)((0,i.NumberNode)({integer:!0})),radius:(0,i.Opt)((0,i.NumberNode)({integer:!0})),height:(0,i.Opt)((0,i.NumberNode)({integer:!0})),guarded:(0,i.Opt)((0,i.BooleanNode)())}))},"minecraft:fill_layer":{state:e("block_state"),height:(0,i.NumberNode)({integer:!0,min:0,max:255})},"minecraft:flower":d,"minecraft:forest_rock":{state:e("block_state")},"minecraft:fossil":{max_empty_corners_allowed:(0,i.NumberNode)({integer:!0,min:0,max:7}),fossil_structures:(0,i.ListNode)(t({validator:"resource",params:{pool:"$structure"}})),overlay_structures:(0,i.ListNode)(t({validator:"resource",params:{pool:"$structure"}})),fossil_processors:$e.Processors,overlay_processors:$e.Processors},"minecraft:geode":{blocks:(0,i.ObjectNode)({filling_provider:e("block_state_provider"),inner_layer_provider:e("block_state_provider"),alternate_inner_layer_provider:e("block_state_provider"),middle_layer_provider:e("block_state_provider"),outer_layer_provider:e("block_state_provider"),inner_placements:(0,i.ListNode)(e("block_state")),cannot_replace:t({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:t({validator:"resource",params:{pool:"$tag/block"}})}),layers:(0,i.ObjectNode)({filling:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),inner_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),middle_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),outer_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50}))}),crack:(0,i.ObjectNode)({generate_crack_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),base_crack_size:(0,i.Opt)((0,i.NumberNode)({min:0,max:5})),crack_point_offset:(0,i.Opt)((0,i.NumberNode)({min:0,max:10}))}),noise_multiplier:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),use_potential_placements_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),use_alternate_layer0_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),placements_require_layer0_alternate:(0,i.Opt)((0,i.BooleanNode)()),outer_wall_distance:(0,i.Opt)((0,y.IntProvider)({min:1,max:20})),distribution_points:(0,i.Opt)((0,y.IntProvider)({min:1,max:20})),point_offset:(0,i.Opt)((0,y.IntProvider)({min:0,max:10})),min_gen_offset:(0,i.Opt)((0,i.NumberNode)({integer:!0})),max_gen_offset:(0,i.Opt)((0,i.NumberNode)({integer:!0})),invalid_blocks_threshold:(0,i.NumberNode)({integer:!0})},"minecraft:glow_lichen":{search_range:(0,i.Opt)((0,i.NumberNode)({min:1,max:64,integer:!0})),chance_of_spreading:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),can_place_on_floor:(0,i.Opt)((0,i.BooleanNode)()),can_place_on_ceiling:(0,i.Opt)((0,i.BooleanNode)()),can_place_on_wall:(0,i.Opt)((0,i.BooleanNode)()),can_be_placed_on:(0,i.ListNode)(e("block_state"))},"minecraft:growing_plant":{direction:t({enum:["up","down","north","east","south","west"]}),allow_water:(0,i.BooleanNode)(),height_distribution:(0,i.ListNode)((0,i.ObjectNode)({weight:(0,i.NumberNode)({integer:!0}),data:(0,y.IntProvider)()})),body_provider:e("block_state_provider"),head_provider:e("block_state_provider")},"minecraft:huge_brown_mushroom":n,"minecraft:huge_fungus":{hat_state:e("block_state"),decor_state:e("block_state"),stem_state:e("block_state"),valid_base_block:e("block_state"),planted:(0,i.Opt)((0,i.BooleanNode)())},"minecraft:huge_red_mushroom":n,"minecraft:ice_patch":a,"minecraft:iceberg":{state:e("block_state")},"minecraft:lake":{state:e("block_state")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1,max:512})),column_radius:(0,y.IntProvider)({min:0,max:60}),height_scale:(0,y.FloatProvider)({min:0,max:20}),max_column_radius_to_cave_height_ratio:(0,i.NumberNode)({min:0,max:1}),stalactite_bluntness:(0,y.FloatProvider)({min:.1,max:10}),stalagmite_bluntness:(0,y.FloatProvider)({min:.1,max:10}),wind_speed:(0,y.FloatProvider)({min:0,max:2}),min_radius_for_wind:(0,i.NumberNode)({integer:!0,min:0,max:100}),min_bluntness_for_wind:(0,i.NumberNode)({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:e("block_state_provider")},"minecraft:netherrack_replace_blobs":{state:e("block_state"),target:e("block_state"),radius:(0,y.IntProvider)({min:0,max:12})},"minecraft:no_bonemeal_flower":d,"minecraft:ore":B,"minecraft:random_patch":d,"minecraft:random_boolean_selector":{feature_false:u,feature_true:u},"minecraft:random_selector":{features:(0,i.ListNode)((0,i.ObjectNode)({chance:(0,i.NumberNode)({min:0,max:1}),feature:u})),default:u},"minecraft:replace_single_block":{targets:(0,i.ListNode)(N)},"minecraft:root_system":{required_vertical_space_for_tree:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_radius:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_placement_attempts:(0,i.NumberNode)({integer:!0,min:1,max:256}),root_column_max_height:(0,i.NumberNode)({integer:!0,min:1,max:4096}),hanging_root_radius:(0,i.NumberNode)({integer:!0,min:1,max:64}),hanging_roots_vertical_span:(0,i.NumberNode)({integer:!0,min:0,max:16}),hanging_root_placement_attempts:(0,i.NumberNode)({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_replaceable:t({validator:"resource",params:{pool:"$tag/block"}}),root_state_provider:e("block_state_provider"),hanging_root_state_provider:e("block_state_provider"),feature:u},"minecraft:scattered_ore":B,"minecraft:sea_pickle":{count:(0,y.IntProvider)({min:0,max:256})},"minecraft:seagrass":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:simple_block":{to_place:e("block_state_provider"),place_on:(0,i.Opt)((0,i.ListNode)(e("block_state"))),place_in:(0,i.Opt)((0,i.ListNode)(e("block_state"))),place_under:(0,i.Opt)((0,i.ListNode)(e("block_state")))},"minecraft:simple_random_selector":{features:(0,i.ListNode)(u)},"minecraft:small_dripstone":{max_placements:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:100})),empty_space_search_radius:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:20})),max_offset_from_origin:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:20})),chance_of_taller_dripstone:(0,i.Opt)((0,i.NumberNode)({min:0,max:1}))},"minecraft:spring_feature":{state:e("fluid_state"),rock_count:(0,i.NumberNode)({integer:!0}),hole_count:(0,i.NumberNode)({integer:!0}),requires_block_below:(0,i.BooleanNode)(),valid_blocks:(0,i.ListNode)(t({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:(0,i.Opt)((0,i.BooleanNode)()),force_dirt:(0,i.Opt)((0,i.BooleanNode)()),minimum_size:e("feature_size"),dirt_provider:e("block_state_provider"),sapling_provider:e("block_state_provider"),trunk_provider:e("block_state_provider"),foliage_provider:e("block_state_provider"),trunk_placer:(0,i.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:(0,i.NumberNode)({integer:!0,min:0,max:32}),height_rand_a:(0,i.NumberNode)({integer:!0,min:0,max:24}),height_rand_b:(0,i.NumberNode)({integer:!0,min:0,max:24}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:bending_trunk_placer":{bend_length:(0,y.IntProvider)({min:1,max:64}),min_height_for_leaves:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:(0,i.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:(0,y.IntProvider)({min:0,max:16}),offset:(0,y.IntProvider)({min:0,max:16}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:blob_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:(0,y.IntProvider)({min:0,max:24})},"minecraft:pine_foliage_placer":{height:(0,y.IntProvider)({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:(0,y.IntProvider)({min:1,max:512}),leaf_placement_attempts:(0,i.NumberNode)({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:(0,y.IntProvider)({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:(0,i.ListNode)((0,i.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:alter_ground":{provider:e("block_state_provider")},"minecraft:beehive":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:cocoa":{probability:(0,i.NumberNode)({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:underwater_magma":{floor_search_range:(0,i.NumberNode)({integer:!0,min:0,max:512}),placement_radius_around_floor:(0,i.NumberNode)({integer:!0,min:0,max:64}),placement_probability_per_valid_position:(0,i.NumberNode)({min:0,max:1})},"minecraft:vegetation_patch":v,"minecraft:waterlogged_vegetation_patch":v}},{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}}}}})})),o.register("feature_size",(0,i.Mod)((0,i.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:(0,i.Opt)((0,i.NumberNode)({min:0,max:80})),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:two_layers_feature_size":{limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:81})),lower_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:80})),upper_limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:80})),lower_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),middle_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),o.register("block_state_provider",(0,i.Mod)((0,i.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:randomized_int_state_provider":{property:t(),values:(0,y.IntProvider)(),source:e("block_state_provider")},"minecraft:rotated_block_provider":{state:e("block_state")},"minecraft:simple_state_provider":{state:e("block_state")},"minecraft:weighted_state_provider":{entries:(0,i.ListNode)((0,i.Mod)((0,i.ObjectNode)({weight:(0,i.NumberNode)({integer:!0,min:1}),data:e("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),o.register("block_placer",(0,i.Mod)((0,i.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:column_placer":{size:(0,y.IntProvider)({min:0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))}ke.initFeatureSchemas=gt;var xe={};Object.defineProperty(xe,"__esModule",{value:!0});xe.initNoiseSettingsSchemas=void 0;const _=w,Nt=F;function ht(o,r){const e=_.Reference.bind(void 0,o),t=_.StringNode.bind(void 0,r);o.register("noise_settings",(0,_.Mod)((0,_.ObjectNode)({name:(0,_.Mod)(t({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:d=>d.getArray().length>0}),bedrock_roof_position:(0,_.NumberNode)({integer:!0}),bedrock_floor_position:(0,_.NumberNode)({integer:!0}),sea_level:(0,_.NumberNode)({integer:!0}),min_surface_level:(0,_.NumberNode)({integer:!0}),disable_mob_generation:(0,_.BooleanNode)(),noise_caves_enabled:(0,_.BooleanNode)(),noodle_caves_enabled:(0,_.BooleanNode)(),aquifers_enabled:(0,_.BooleanNode)(),deepslate_enabled:(0,_.BooleanNode)(),ore_veins_enabled:(0,_.BooleanNode)(),default_block:e("block_state"),default_fluid:e("block_state"),noise:(0,_.ObjectNode)({min_y:(0,_.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,_.NumberNode)({integer:!0,min:0,max:4096}),density_factor:(0,_.NumberNode)(),density_offset:(0,_.NumberNode)(),size_horizontal:(0,_.NumberNode)({integer:!0}),size_vertical:(0,_.NumberNode)({integer:!0}),simplex_surface_noise:(0,_.BooleanNode)(),random_density_offset:(0,_.Opt)((0,_.BooleanNode)()),island_noise_override:(0,_.Opt)((0,_.BooleanNode)()),amplified:(0,_.Opt)((0,_.BooleanNode)()),sampling:(0,_.ObjectNode)({xz_scale:(0,_.NumberNode)(),y_scale:(0,_.NumberNode)(),xz_factor:(0,_.NumberNode)(),y_factor:(0,_.NumberNode)()}),bottom_slide:(0,_.ObjectNode)({target:(0,_.NumberNode)({integer:!0}),size:(0,_.NumberNode)({integer:!0,min:0}),offset:(0,_.NumberNode)({integer:!0})}),top_slide:(0,_.ObjectNode)({target:(0,_.NumberNode)({integer:!0}),size:(0,_.NumberNode)({integer:!0,min:0}),offset:(0,_.NumberNode)({integer:!0})})}),structures:e("generator_structures")},{context:"noise_settings"}),d=>({default:()=>Nt.DefaultNoiseSettings,validate:(a,n,N,B)=>{var u,v,j,O;return n=d.validate(a,n,N,B),((u=n==null?void 0:n.noise)===null||u===void 0?void 0:u.min_y)+((v=n==null?void 0:n.noise)===null||v===void 0?void 0:v.height)>2047&&N.add(a.push("noise").push("height"),"error.min_y_plus_height",2047),((j=n==null?void 0:n.noise)===null||j===void 0?void 0:j.height)%16!==0&&N.add(a.push("noise").push("height"),"error.height_multiple",16),((O=n==null?void 0:n.noise)===null||O===void 0?void 0:O.min_y)%16!==0&&N.add(a.push("noise").push("min_y"),"error.min_y_multiple",16),n}}))),o.register("generator_structures",(0,_.ObjectNode)({stronghold:(0,_.Opt)((0,_.ObjectNode)({distance:(0,_.NumberNode)({integer:!0,min:0,max:1023}),spread:(0,_.NumberNode)({integer:!0,min:0,max:1023}),count:(0,_.NumberNode)({integer:!0,min:1,max:4095})})),structures:(0,_.MapNode)(t({validator:"resource",params:{pool:"worldgen/structure_feature"}}),(0,_.Mod)((0,_.ObjectNode)({spacing:(0,_.NumberNode)({integer:!0,min:0,max:4096}),separation:(0,_.Mod)((0,_.NumberNode)({integer:!0,min:0,max:4096}),d=>({validate:(a,n,N,B)=>(a.pop().push("spacing").get()<=n&&N.add(a,"error.separation_smaller_spacing"),d.validate(a,n,N,B))})),salt:(0,_.NumberNode)({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),o.register("generator_layer",(0,_.Mod)((0,_.ObjectNode)({block:t({validator:"resource",params:{pool:"block"}}),height:(0,_.NumberNode)({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))}xe.initNoiseSettingsSchemas=ht;var we={};Object.defineProperty(we,"__esModule",{value:!0});we.initStructureFeatureSchemas=void 0;const z=w;function yt(o,r){const e=z.StringNode.bind(void 0,r),t=z.Reference.bind(void 0,o),d={start_pool:e({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:(0,z.NumberNode)({integer:!0})};o.register("configured_structure_feature",(0,z.Mod)((0,z.ObjectNode)({type:e({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:(0,z.ObjectNode)({[z.Switch]:["pop",{push:"type"}],[z.Case]:{"minecraft:bastion_remnant":d,"minecraft:buried_treasure":{probability:(0,z.NumberNode)({min:0,max:1})},"minecraft:mineshaft":{type:e({enum:["normal","mesa"]}),probability:(0,z.NumberNode)({min:0,max:1})},"minecraft:nether_fossil":{height:t("height_provider")},"minecraft:ocean_ruin":{biome_temp:e({enum:["cold","warm"]}),large_probability:(0,z.NumberNode)({min:0,max:1}),cluster_probability:(0,z.NumberNode)({min:0,max:1})},"minecraft:pillager_outpost":d,"minecraft:ruined_portal":{portal_type:e({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:(0,z.Opt)((0,z.BooleanNode)())},"minecraft:village":d}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))}we.initStructureFeatureSchemas=yt;var Se={};Object.defineProperty(Se,"__esModule",{value:!0});Se.initSurfaceBuilderSchemas=void 0;const te=w;function vt(o,r){const e=te.StringNode.bind(void 0,r),t=te.Reference.bind(void 0,o);o.register("configured_surface_builder",(0,te.Mod)((0,te.ObjectNode)({type:e({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:(0,te.ObjectNode)({top_material:t("block_state"),under_material:t("block_state"),underwater_material:t("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"}}})}))}Se.initSurfaceBuilderSchemas=vt;var je={};Object.defineProperty(je,"__esModule",{value:!0});je.initTemplatePoolSchemas=void 0;const $=w,Re=H;function Ot(o,r){const e=$.Reference.bind(void 0,o),t=$.StringNode.bind(void 0,r);o.register("template_pool",(0,$.Mod)((0,$.ObjectNode)({name:t(),fallback:t(),elements:(0,$.ListNode)(e("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"}}]})})),o.register("template_weighted_element",(0,$.Mod)((0,$.ObjectNode)({weight:(0,$.NumberNode)({integer:!0,min:1}),element:e("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),o.register("template_element",(0,$.Mod)((0,$.ObjectNode)({element_type:t({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:t({enum:["rigid","terrain_matching"]}),[$.Switch]:[{push:"element_type"}],[$.Case]:{"minecraft:feature_pool_element":{feature:t({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},"minecraft:legacy_single_pool_element":{location:t({validator:"resource",params:{pool:"$structure"}}),processors:Re.Processors},"minecraft:list_pool_element":{elements:(0,$.ListNode)(e("template_element"))},"minecraft:single_pool_element":{location:t({validator:"resource",params:{pool:"$structure"}}),processors:Re.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))}je.initTemplatePoolSchemas=Ot;Object.defineProperty(he,"__esModule",{value:!0});he.initWorldgenSchemas=void 0;const kt=ye,xt=ve,wt=Oe,St=ke,jt=xe,Mt=H,Ct=we,Pt=Se,Lt=je;function Bt(o,r){(0,Mt.initProcessorListSchemas)(o,r),(0,kt.initBiomeSchemas)(o,r),(0,xt.initCarverSchemas)(o,r),(0,wt.initDecoratorSchemas)(o,r),(0,St.initFeatureSchemas)(o,r),(0,jt.initNoiseSettingsSchemas)(o,r),(0,Ct.initStructureFeatureSchemas)(o,r),(0,Pt.initSurfaceBuilderSchemas)(o,r),(0,Lt.initTemplatePoolSchemas)(o,r)}he.initWorldgenSchemas=Bt;var Me={};Object.defineProperty(Me,"__esModule",{value:!0});Me.initWorldSettingsSchemas=void 0;const V=w;function zt(o,r){const e=V.Reference.bind(void 0,o),t=V.StringNode.bind(void 0,r);o.register("world_settings",(0,V.Mod)((0,V.ObjectNode)({generate_features:(0,V.BooleanNode)(),bonus_chest:(0,V.BooleanNode)(),seed:(0,V.NumberNode)({integer:!0}),dimensions:(0,V.MapNode)(t({validator:"resource",params:{pool:"$dimension"}}),e("dimension"))},{context:"world_settings"}),{default:()=>{const d=Math.floor(Math.random()*4294967296)-2147483648;return{generate_features:!0,bonus_chest:!1,seed:d,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:vanilla_layered",seed:d},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:multi_noise",seed:d,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:d,biome_source:{type:"minecraft:the_end",seed:d},settings:"minecraft:end"}}}}}}))}Me.initWorldSettingsSchemas=zt;Object.defineProperty(ie,"__esModule",{value:!0});ie.initSchemas=void 0;const $t=ae,Rt=ne,Tt=F,Dt=se,Ft=me,It=le,qt=_e,At=pe,Et=ue,Wt=fe,Gt=be,Ut=ge,Vt=Ne,Ht=he,Kt=Me;function Xt(o,r){(0,Tt.initCommonSchemas)(o,r),(0,$t.initAdvancementSchemas)(o,r),(0,Rt.initAssetsSchemas)(o,r),(0,Dt.initConditionSchemas)(o,r),(0,It.initDimensionTypeSchemas)(o,r),(0,Ft.initDimensionSchemas)(o,r),(0,qt.initItemModifierSchemas)(o,r),(0,At.initLootTableSchemas)(o,r),(0,Et.initPackMcmetaSchemas)(o,r),(0,Wt.initPredicatesSchemas)(o,r),(0,Gt.initRecipeSchemas)(o,r),(0,Ut.initTagsSchemas)(o,r),(0,Vt.initTextComponentSchemas)(o,r),(0,Ht.initWorldgenSchemas)(o,r),(0,Kt.initWorldSettingsSchemas)(o,r)}ie.initSchemas=Xt;var Zt=Q&&Q.__createBinding||(Object.create?function(o,r,e,t){t===void 0&&(t=e);var d=Object.getOwnPropertyDescriptor(r,e);(!d||("get"in d?!r.__esModule:d.writable||d.configurable))&&(d={enumerable:!0,get:function(){return r[e]}}),Object.defineProperty(o,t,d)}:function(o,r,e,t){t===void 0&&(t=e),o[t]=r[e]}),Yt=Q&&Q.__setModuleDefault||(Object.create?function(o,r){Object.defineProperty(o,"default",{enumerable:!0,value:r})}:function(o,r){o.default=r}),Jt=Q&&Q.__importStar||function(o){if(o&&o.__esModule)return o;var r={};if(o!=null)for(var e in o)e!=="default"&&Object.prototype.hasOwnProperty.call(o,e)&&Zt(r,o,e);return Yt(r,o),r};Object.defineProperty(W,"__esModule",{value:!0});var Te=W.getSchemas=Ie=W.getCollections=Fe=W.lootContext=void 0;const De=w,Qt=oe,er=ie;var Fe=W.lootContext=Jt(R);function tr(){const o=new De.CollectionRegistry;return(0,Qt.initCollections)(o),o}var Ie=W.getCollections=tr;function rr(o){const r=new De.SchemaRegistry;return(0,er.initSchemas)(r,o),r}Te=W.getSchemas=rr;var nr=Ue({__proto__:null,get getSchemas(){return Te},get getCollections(){return Ie},get lootContext(){return Fe},default:W},[W]);export{nr as i}; +//# sourceMappingURL=index.ec1836d3.js.map diff --git a/assets/index.8076ef8d.js.map b/assets/index.ec1836d3.js.map similarity index 99% rename from assets/index.8076ef8d.js.map rename to assets/index.ec1836d3.js.map index b67df39c..f34298c9 100644 --- a/assets/index.8076ef8d.js.map +++ b/assets/index.ec1836d3.js.map @@ -1 +1 @@ -{"version":3,"file":"index.8076ef8d.js","sources":["../../node_modules/@mcschema/java-1.17/lib/Collections.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.17/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.17/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.17/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.17/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.17/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.17/lib/LootContext.js","../../node_modules/@mcschema/java-1.17/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.17/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.17/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/SurfaceBuilder.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.17/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.17/lib/schemas/index.js","../../node_modules/@mcschema/java-1.17/lib/index.js"],"sourcesContent":["\"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 collections.register('cat_texture', [\r\n 'textures/entity/cat/tabby.png',\r\n 'textures/entity/cat/black.png',\r\n 'textures/entity/cat/red.png',\r\n 'textures/entity/cat/siamese.png',\r\n 'textures/entity/cat/british_shorthair.png',\r\n 'textures/entity/cat/calico.png',\r\n 'textures/entity/cat/persian.png',\r\n 'textures/entity/cat/ragdoll.png',\r\n 'textures/entity/cat/white.png',\r\n 'textures/entity/cat/jellie.png',\r\n 'textures/entity/cat/all_black.png'\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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n player: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, 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: (0, 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: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: (0, core_1.Opt)(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n distance: Reference('distance_predicate'),\r\n entered: (0, core_1.Opt)(Reference('location_predicate')),\r\n exited: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: (0, 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: (0, 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: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, 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: EntityPredicate,\r\n item: (0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: Reference('location_predicate')\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, core_1.ObjectNode)({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, core_1.NumberNode)()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, core_1.MapNode)(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, core_1.Opt)(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, core_1.MapNode)(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n OR: (0, core_1.ListNode)(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, Model_1.initModelSchemas)(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nexports.DefaultNoiseSettings = {\r\n name: 'minecraft:overworld',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise_caves_enabled: true,\r\n aquifers_enabled: true,\r\n deepslate_enabled: true,\r\n noise: {\r\n min_y: 0,\r\n height: 256,\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => (0, core_1.Opt)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer })),\r\n max: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)(Reference('number_provider')),\r\n max: (0, core_1.Opt)(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: (0, 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] = (0, 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 = (0, core_1.ObjectNode)({\r\n type: (0, core_1.Mod)((0, 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 (0, 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: (0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, 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: (0, core_1.NumberNode)(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_exclusive: (0, core_1.NumberNode)(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n plateau: (0, core_1.NumberNode)()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', (0, 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: (0, core_1.NumberNode)({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n }\r\n });\r\n schemas.register('int_provider', (0, exports.IntProvider)());\r\n schemas.register('vertical_anchor', (0, 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: (0, core_1.ObjectNode)({\r\n [t]: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)(StringNode({ enum: 'map_feature' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_contents': {\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, 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) => (0, 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) => (0, 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', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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]: (0, 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) => (0, core_1.Mod)(node, {\r\n enabled: path => path.push('preset').get() === undefined\r\n });\r\n schemas.register('dimension', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, Common_1.DimensionTypePresets)(Reference('dimension_type')),\r\n generator: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n settings: (0, Common_1.NoiseSettingsPresets)(Reference('noise_settings')),\r\n biome_source: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n preset: (0, 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((0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 62 })),\r\n biomes: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:vanilla_layered': {\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n large_biomes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n legacy_biome_init_layer: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: (0, core_1.ObjectNode)({\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n features: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n layers: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: (0, core_1.ObjectNode)({\r\n altitude: (0, core_1.NumberNode)(),\r\n temperature: (0, core_1.NumberNode)(),\r\n humidity: (0, core_1.NumberNode)(),\r\n weirdness: (0, core_1.NumberNode)(),\r\n offset: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n firstOctave: (0, core_1.NumberNode)({ integer: true }),\r\n amplitudes: (0, core_1.ListNode)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.BooleanNode)(),\r\n natural: (0, core_1.BooleanNode)(),\r\n piglin_safe: (0, core_1.BooleanNode)(),\r\n respawn_anchor_works: (0, core_1.BooleanNode)(),\r\n bed_works: (0, core_1.BooleanNode)(),\r\n has_raids: (0, core_1.BooleanNode)(),\r\n has_skylight: (0, core_1.BooleanNode)(),\r\n has_ceiling: (0, core_1.BooleanNode)(),\r\n coordinate_scale: (0, core_1.NumberNode)({ min: 0.00001, max: 30000000 }),\r\n ambient_light: (0, core_1.NumberNode)(),\r\n fixed_time: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n logical_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n effects: (0, 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: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, 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', (0, core_1.ObjectOrList)(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: (0, core_1.Opt)((0, core_1.ListNode)(Reference('condition')))\r\n };\r\n schemas.register('function', (0, core_1.Mod)((0, 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]: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: (0, core_1.Opt)(Reference('number_provider')),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, 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: (0, 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 = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, 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', (0, core_1.ObjectNode)({\r\n blocks: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)({\r\n position: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: (0, core_1.Opt)(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n { type: 'boolean', node: (0, core_1.BooleanNode)(), change: _ => true },\r\n {\r\n type: 'object', node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate'))),\r\n looking_at: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n stepping_on: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: (0, core_1.Opt)(Reference('entity_predicate')),\r\n passenger: (0, core_1.Opt)(Reference('entity_predicate')),\r\n targeted_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n player: (0, core_1.Opt)(Reference('player_predicate')),\r\n lightning_bolt: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n blocks_set_on_fire: (0, core_1.Opt)(Reference('int_bounds')),\r\n entity_struck: (0, core_1.Opt)(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n in_open_water: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n catType: (0, core_1.Opt)(StringNode({ enum: 'cat_texture' })),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, core_1.Opt)(StringNode()) /* TODO */,\r\n font: (0, core_1.Opt)(StringNode()),\r\n bold: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component')),\r\n contents: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tag: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n })),\r\n contents: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n separator: (0, 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', (0, core_1.Mod)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n surface_builder: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_surface_builder' } }),\r\n depth: (0, core_1.NumberNode)(),\r\n scale: (0, core_1.NumberNode)(),\r\n temperature: (0, core_1.NumberNode)(),\r\n downfall: (0, core_1.NumberNode)(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n player_spawn_friendly: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n creature_spawn_probability: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n effects: (0, core_1.ObjectNode)({\r\n sky_color: (0, core_1.NumberNode)({ color: true }),\r\n fog_color: (0, core_1.NumberNode)({ color: true }),\r\n water_color: (0, core_1.NumberNode)({ color: true }),\r\n water_fog_color: (0, core_1.NumberNode)({ color: true }),\r\n grass_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n foliage_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n grass_color_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: (0, core_1.Opt)(StringNode()),\r\n mood_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_delay: (0, core_1.NumberNode)({ integer: true }),\r\n block_search_extent: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)()\r\n })),\r\n additions_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n music: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n min_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n max_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n replace_current_music: (0, core_1.BooleanNode)()\r\n })),\r\n particle: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n options: (0, core_1.ObjectNode)({\r\n type: StringNode()\r\n }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }))\r\n }),\r\n starts: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n spawners: (0, 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 ] }), (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n minCount: (0, core_1.NumberNode)({ integer: true }),\r\n maxCount: (0, 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: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n energy_budget: (0, core_1.NumberNode)(),\r\n charge: (0, 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: (0, core_1.MapNode)(StringNode({ enum: ['air', 'liquid'] }), (0, core_1.Mod)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: (0, core_1.ListNode)((0, core_1.Mod)((0, 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: (0, Common_1.FloatProvider)(),\r\n shape: (0, core_1.ObjectNode)({\r\n distance_factor: (0, Common_1.FloatProvider)(),\r\n thickness: (0, Common_1.FloatProvider)(),\r\n width_smoothness: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n horizontal_radius_factor: (0, Common_1.FloatProvider)(),\r\n vertical_radius_default_factor: (0, core_1.NumberNode)(),\r\n vertical_radius_center_factor: (0, core_1.NumberNode)()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n vertical_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n floor_level: (0, Common_1.FloatProvider)({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: (0, core_1.ObjectNode)({\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: (0, Common_1.FloatProvider)(),\r\n lava_level: Reference('vertical_anchor'),\r\n aquifers_enabled: (0, core_1.BooleanNode)(),\r\n debug_settings: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n debug_mode: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n air_state: (0, core_1.Opt)(Reference('block_state')),\r\n water_state: (0, core_1.Opt)(Reference('block_state')),\r\n lava_state: (0, core_1.Opt)(Reference('block_state')),\r\n barrier_state: (0, 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: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n };\r\n schemas.register('configured_decorator', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/decorator' } }),\r\n config: (0, 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: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:chance': {\r\n chance: (0, core_1.NumberNode)({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': CountConfig,\r\n 'minecraft:count_extra': {\r\n count: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n extra_count: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n extra_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:count_multilayer': CountConfig,\r\n 'minecraft:count_noise': {\r\n noise_level: (0, core_1.NumberNode)(),\r\n below_noise: (0, core_1.NumberNode)({ integer: true }),\r\n above_noise: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:count_noise_biased': {\r\n noise_to_count_ratio: (0, core_1.NumberNode)({ integer: true }),\r\n noise_factor: (0, core_1.NumberNode)(),\r\n noise_offset: (0, core_1.Opt)((0, 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: (0, 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: (0, 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 = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n processors: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n position_predicate: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n max_dist: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n min_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n max_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', (0, 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', (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n project: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n need_water: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n xspread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n yspread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n zspread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n tries: (0, core_1.Opt)((0, 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: (0, core_1.ListNode)(Reference('block_state')),\r\n blacklist: (0, core_1.ListNode)(Reference('block_state'))\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 8 }),\r\n half_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4 }),\r\n targets: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n };\r\n const TargetBlockState = (0, core_1.ObjectNode)({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n };\r\n const Feature = (0, 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: (0, Common_1.IntProvider)({ min: 1, max: 128 }),\r\n vertical_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n extra_edge_column_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n vegetation_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n xz_radius: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: (0, core_1.ObjectNode)({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: (0, Common_1.IntProvider)({ min: 0, max: 3 }),\r\n height: (0, 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: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n rim_size: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 1, max: 512 }),\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n height_deviation: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n density: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n wetness: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: (0, core_1.BooleanNode)(),\r\n exit: (0, core_1.Opt)(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n crystal_beam_target: (0, core_1.Opt)(Reference('block_pos')),\r\n spikes: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n centerX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n centerZ: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n guarded: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: (0, 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: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n filling: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n inner_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n middle_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n outer_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n }),\r\n crack: (0, core_1.ObjectNode)({\r\n generate_crack_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n base_crack_size: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 5 })),\r\n crack_point_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 10 })),\r\n }),\r\n noise_multiplier: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_potential_placements_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n outer_wall_distance: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n distribution_points: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n point_offset: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 0, max: 10 })),\r\n min_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n invalid_blocks_threshold: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n can_place_on_floor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_ceiling: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_wall: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_be_placed_on: (0, 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: (0, core_1.BooleanNode)(),\r\n height_distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1, max: 512 })),\r\n column_radius: (0, Common_1.IntProvider)({ min: 0, max: 60 }),\r\n height_scale: (0, Common_1.FloatProvider)({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n stalactite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n wind_speed: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n min_radius_for_wind: (0, core_1.NumberNode)({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: (0, 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: (0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n chance: (0, 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: (0, core_1.ListNode)(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: (0, 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: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('block_state'))),\r\n place_in: (0, core_1.Opt)((0, core_1.ListNode)(Reference('block_state'))),\r\n place_under: (0, core_1.Opt)((0, core_1.ListNode)(Reference('block_state')))\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: (0, core_1.ListNode)(Feature)\r\n },\r\n 'minecraft:small_dripstone': {\r\n max_placements: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 100 })),\r\n empty_space_search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 20 })),\r\n max_offset_from_origin: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 20 })),\r\n chance_of_taller_dripstone: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: (0, core_1.NumberNode)({ integer: true }),\r\n hole_count: (0, core_1.NumberNode)({ integer: true }),\r\n requires_block_below: (0, core_1.BooleanNode)(),\r\n valid_blocks: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n force_dirt: (0, core_1.Opt)((0, 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: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: (0, 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: (0, Common_1.IntProvider)({ min: 1, max: 64 }),\r\n min_height_for_leaves: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n offset: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: (0, Common_1.IntProvider)({ min: 1, max: 512 }),\r\n leaf_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: (0, core_1.ListNode)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 81 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n upper_limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n middle_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n bedrock_floor_position: (0, core_1.NumberNode)({ integer: true }),\r\n sea_level: (0, core_1.NumberNode)({ integer: true }),\r\n min_surface_level: (0, core_1.NumberNode)({ integer: true }),\r\n disable_mob_generation: (0, core_1.BooleanNode)(),\r\n noise_caves_enabled: (0, core_1.BooleanNode)(),\r\n noodle_caves_enabled: (0, core_1.BooleanNode)(),\r\n aquifers_enabled: (0, core_1.BooleanNode)(),\r\n deepslate_enabled: (0, core_1.BooleanNode)(),\r\n ore_veins_enabled: (0, core_1.BooleanNode)(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: (0, core_1.ObjectNode)({\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n density_factor: (0, core_1.NumberNode)(),\r\n density_offset: (0, core_1.NumberNode)(),\r\n size_horizontal: (0, core_1.NumberNode)({ integer: true }),\r\n size_vertical: (0, core_1.NumberNode)({ integer: true }),\r\n simplex_surface_noise: (0, core_1.BooleanNode)(),\r\n random_density_offset: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n island_noise_override: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n amplified: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n sampling: (0, core_1.ObjectNode)({\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n xz_factor: (0, core_1.NumberNode)(),\r\n y_factor: (0, core_1.NumberNode)()\r\n }),\r\n bottom_slide: (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)({ integer: true }),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n }),\r\n top_slide: (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)({ integer: true }),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n offset: (0, 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', (0, core_1.ObjectNode)({\r\n stronghold: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n distance: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n spread: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n spacing: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n separation: (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n cluster_probability: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/surface_builder' } }),\r\n config: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, 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: (0, 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 (0, ProcessorList_1.initProcessorListSchemas)(schemas, collections);\r\n (0, Biome_1.initBiomeSchemas)(schemas, collections);\r\n (0, Carver_1.initCarverSchemas)(schemas, collections);\r\n (0, Decorator_1.initDecoratorSchemas)(schemas, collections);\r\n (0, Feature_1.initFeatureSchemas)(schemas, collections);\r\n (0, NoiseSettings_1.initNoiseSettingsSchemas)(schemas, collections);\r\n (0, StructureFeature_1.initStructureFeatureSchemas)(schemas, collections);\r\n (0, SurfaceBuilder_1.initSurfaceBuilderSchemas)(schemas, collections);\r\n (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n generate_features: (0, core_1.BooleanNode)(),\r\n bonus_chest: (0, core_1.BooleanNode)(),\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n dimensions: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:vanilla_layered',\r\n seed\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n seed,\r\n humidity_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n altitude_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n weirdness_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n temperature_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n biomes: [\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: 0.0 },\r\n biome: 'minecraft:nether_wastes'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: -0.5 },\r\n biome: 'minecraft:soul_sand_valley'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.4, humidity: 0.0 },\r\n biome: 'minecraft:crimson_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.375, temperature: 0.0, humidity: 0.5 },\r\n biome: 'minecraft:warped_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.175, temperature: -0.5, humidity: 0.0 },\r\n biome: 'minecraft:basalt_deltas'\r\n }\r\n ]\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, DimensionType_1.initDimensionTypeSchemas)(schemas, collections);\r\n (0, Dimension_1.initDimensionSchemas)(schemas, collections);\r\n (0, ItemModifier_1.initItemModifierSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, TextComponent_1.initTextComponentSchemas)(schemas, collections);\r\n (0, worldgen_1.initWorldgenSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, schemas_1.initSchemas)(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n"],"names":["core_1","require$$0","require$$1","Common_1","require$$2","ProcessorList_1","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","this"],"mappings":"+1BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EACrC,GAAA,gBAAG,OAC1B,YAAyB,EAAa,CAClC,EAAY,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,2BACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,sBACA,uBACA,mBACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,sBACA,uBACA,mBACR,CAAK,EACD,EAAY,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,SACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,MACR,CAAK,EACD,EAAY,SAAS,WAAY,CAC7B,WACA,WACA,YACA,WACR,CAAK,EACD,EAAY,SAAS,0BAA2B,CAC5C,sBACA,mBACA,gBACA,sBACA,kBACA,4BACR,CAAK,EACD,EAAY,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,eACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,eACA,OACA,SACA,eACR,CAAK,EACD,EAAY,SAAS,iCAAkC,CACnD,gCACA,sCACA,qBACR,CAAK,EACD,EAAY,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,cACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,SACR,CAAK,EACD,EAAY,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,iBACR,CAAK,EACD,EAAY,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,yBACR,CAAK,EACD,EAAY,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,yBACR,CAAK,EACD,EAAY,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,2BACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,aACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,kBACR,CAAK,EACD,EAAY,SAAS,kBAAmB,CACpC,MACA,QACR,CAAK,EACD,EAAY,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,iBACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,OACA,qBACA,sBACA,kBACA,mBACA,gBACA,aACA,cACA,eACA,gBACA,gBACA,mBACA,kBACA,gBACA,QACA,iBACA,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"} \ No newline at end of file +{"version":3,"file":"index.ec1836d3.js","sources":["../../node_modules/@mcschema/java-1.17/lib/Collections.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.17/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.17/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.17/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.17/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.17/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.17/lib/LootContext.js","../../node_modules/@mcschema/java-1.17/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.17/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.17/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/SurfaceBuilder.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.17/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.17/lib/schemas/index.js","../../node_modules/@mcschema/java-1.17/lib/index.js"],"sourcesContent":["\"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 collections.register('cat_texture', [\r\n 'textures/entity/cat/tabby.png',\r\n 'textures/entity/cat/black.png',\r\n 'textures/entity/cat/red.png',\r\n 'textures/entity/cat/siamese.png',\r\n 'textures/entity/cat/british_shorthair.png',\r\n 'textures/entity/cat/calico.png',\r\n 'textures/entity/cat/persian.png',\r\n 'textures/entity/cat/ragdoll.png',\r\n 'textures/entity/cat/white.png',\r\n 'textures/entity/cat/jellie.png',\r\n 'textures/entity/cat/all_black.png'\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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n player: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, 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: (0, 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: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: (0, core_1.Opt)(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n distance: Reference('distance_predicate'),\r\n entered: (0, core_1.Opt)(Reference('location_predicate')),\r\n exited: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: (0, 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: (0, 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: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, 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: EntityPredicate,\r\n item: (0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: Reference('location_predicate')\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, core_1.ObjectNode)({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, core_1.NumberNode)()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, core_1.MapNode)(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, core_1.Opt)(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, core_1.MapNode)(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n OR: (0, core_1.ListNode)(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, Model_1.initModelSchemas)(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nexports.DefaultNoiseSettings = {\r\n name: 'minecraft:overworld',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise_caves_enabled: true,\r\n aquifers_enabled: true,\r\n deepslate_enabled: true,\r\n noise: {\r\n min_y: 0,\r\n height: 256,\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => (0, core_1.Opt)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer })),\r\n max: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)(Reference('number_provider')),\r\n max: (0, core_1.Opt)(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: (0, 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] = (0, 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 = (0, core_1.ObjectNode)({\r\n type: (0, core_1.Mod)((0, 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 (0, 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: (0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, 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: (0, core_1.NumberNode)(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_exclusive: (0, core_1.NumberNode)(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n plateau: (0, core_1.NumberNode)()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', (0, 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: (0, core_1.NumberNode)({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n }\r\n });\r\n schemas.register('int_provider', (0, exports.IntProvider)());\r\n schemas.register('vertical_anchor', (0, 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: (0, core_1.ObjectNode)({\r\n [t]: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)(StringNode({ enum: 'map_feature' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_contents': {\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, 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) => (0, 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) => (0, 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', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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]: (0, 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) => (0, core_1.Mod)(node, {\r\n enabled: path => path.push('preset').get() === undefined\r\n });\r\n schemas.register('dimension', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, Common_1.DimensionTypePresets)(Reference('dimension_type')),\r\n generator: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n settings: (0, Common_1.NoiseSettingsPresets)(Reference('noise_settings')),\r\n biome_source: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n preset: (0, 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((0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 62 })),\r\n biomes: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:vanilla_layered': {\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n large_biomes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n legacy_biome_init_layer: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: (0, core_1.ObjectNode)({\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n features: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n layers: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: (0, core_1.ObjectNode)({\r\n altitude: (0, core_1.NumberNode)(),\r\n temperature: (0, core_1.NumberNode)(),\r\n humidity: (0, core_1.NumberNode)(),\r\n weirdness: (0, core_1.NumberNode)(),\r\n offset: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n firstOctave: (0, core_1.NumberNode)({ integer: true }),\r\n amplitudes: (0, core_1.ListNode)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.BooleanNode)(),\r\n natural: (0, core_1.BooleanNode)(),\r\n piglin_safe: (0, core_1.BooleanNode)(),\r\n respawn_anchor_works: (0, core_1.BooleanNode)(),\r\n bed_works: (0, core_1.BooleanNode)(),\r\n has_raids: (0, core_1.BooleanNode)(),\r\n has_skylight: (0, core_1.BooleanNode)(),\r\n has_ceiling: (0, core_1.BooleanNode)(),\r\n coordinate_scale: (0, core_1.NumberNode)({ min: 0.00001, max: 30000000 }),\r\n ambient_light: (0, core_1.NumberNode)(),\r\n fixed_time: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n logical_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n effects: (0, 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: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, 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', (0, core_1.ObjectOrList)(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: (0, core_1.Opt)((0, core_1.ListNode)(Reference('condition')))\r\n };\r\n schemas.register('function', (0, core_1.Mod)((0, 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]: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: (0, core_1.Opt)(Reference('number_provider')),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, 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: (0, 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 = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, 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', (0, core_1.ObjectNode)({\r\n blocks: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)({\r\n position: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: (0, core_1.Opt)(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n { type: 'boolean', node: (0, core_1.BooleanNode)(), change: _ => true },\r\n {\r\n type: 'object', node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate'))),\r\n looking_at: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n stepping_on: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: (0, core_1.Opt)(Reference('entity_predicate')),\r\n passenger: (0, core_1.Opt)(Reference('entity_predicate')),\r\n targeted_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n player: (0, core_1.Opt)(Reference('player_predicate')),\r\n lightning_bolt: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n blocks_set_on_fire: (0, core_1.Opt)(Reference('int_bounds')),\r\n entity_struck: (0, core_1.Opt)(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n in_open_water: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n catType: (0, core_1.Opt)(StringNode({ enum: 'cat_texture' })),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, core_1.Opt)(StringNode()) /* TODO */,\r\n font: (0, core_1.Opt)(StringNode()),\r\n bold: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component')),\r\n contents: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tag: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n })),\r\n contents: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n separator: (0, 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', (0, core_1.Mod)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n surface_builder: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_surface_builder' } }),\r\n depth: (0, core_1.NumberNode)(),\r\n scale: (0, core_1.NumberNode)(),\r\n temperature: (0, core_1.NumberNode)(),\r\n downfall: (0, core_1.NumberNode)(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n player_spawn_friendly: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n creature_spawn_probability: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n effects: (0, core_1.ObjectNode)({\r\n sky_color: (0, core_1.NumberNode)({ color: true }),\r\n fog_color: (0, core_1.NumberNode)({ color: true }),\r\n water_color: (0, core_1.NumberNode)({ color: true }),\r\n water_fog_color: (0, core_1.NumberNode)({ color: true }),\r\n grass_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n foliage_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n grass_color_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: (0, core_1.Opt)(StringNode()),\r\n mood_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_delay: (0, core_1.NumberNode)({ integer: true }),\r\n block_search_extent: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)()\r\n })),\r\n additions_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n music: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n min_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n max_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n replace_current_music: (0, core_1.BooleanNode)()\r\n })),\r\n particle: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n options: (0, core_1.ObjectNode)({\r\n type: StringNode()\r\n }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }))\r\n }),\r\n starts: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n spawners: (0, 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 ] }), (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n minCount: (0, core_1.NumberNode)({ integer: true }),\r\n maxCount: (0, 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: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n energy_budget: (0, core_1.NumberNode)(),\r\n charge: (0, 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: (0, core_1.MapNode)(StringNode({ enum: ['air', 'liquid'] }), (0, core_1.Mod)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: (0, core_1.ListNode)((0, core_1.Mod)((0, 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: (0, Common_1.FloatProvider)(),\r\n shape: (0, core_1.ObjectNode)({\r\n distance_factor: (0, Common_1.FloatProvider)(),\r\n thickness: (0, Common_1.FloatProvider)(),\r\n width_smoothness: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n horizontal_radius_factor: (0, Common_1.FloatProvider)(),\r\n vertical_radius_default_factor: (0, core_1.NumberNode)(),\r\n vertical_radius_center_factor: (0, core_1.NumberNode)()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n vertical_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n floor_level: (0, Common_1.FloatProvider)({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: (0, core_1.ObjectNode)({\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: (0, Common_1.FloatProvider)(),\r\n lava_level: Reference('vertical_anchor'),\r\n aquifers_enabled: (0, core_1.BooleanNode)(),\r\n debug_settings: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n debug_mode: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n air_state: (0, core_1.Opt)(Reference('block_state')),\r\n water_state: (0, core_1.Opt)(Reference('block_state')),\r\n lava_state: (0, core_1.Opt)(Reference('block_state')),\r\n barrier_state: (0, 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: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n };\r\n schemas.register('configured_decorator', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/decorator' } }),\r\n config: (0, 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: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:chance': {\r\n chance: (0, core_1.NumberNode)({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': CountConfig,\r\n 'minecraft:count_extra': {\r\n count: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n extra_count: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n extra_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:count_multilayer': CountConfig,\r\n 'minecraft:count_noise': {\r\n noise_level: (0, core_1.NumberNode)(),\r\n below_noise: (0, core_1.NumberNode)({ integer: true }),\r\n above_noise: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:count_noise_biased': {\r\n noise_to_count_ratio: (0, core_1.NumberNode)({ integer: true }),\r\n noise_factor: (0, core_1.NumberNode)(),\r\n noise_offset: (0, core_1.Opt)((0, 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: (0, 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: (0, 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 = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n processors: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n position_predicate: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n max_dist: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n min_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n max_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', (0, 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', (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n project: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n need_water: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n xspread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n yspread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n zspread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n tries: (0, core_1.Opt)((0, 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: (0, core_1.ListNode)(Reference('block_state')),\r\n blacklist: (0, core_1.ListNode)(Reference('block_state'))\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 8 }),\r\n half_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4 }),\r\n targets: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n };\r\n const TargetBlockState = (0, core_1.ObjectNode)({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n };\r\n const Feature = (0, 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: (0, Common_1.IntProvider)({ min: 1, max: 128 }),\r\n vertical_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n extra_edge_column_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n vegetation_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n xz_radius: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: (0, core_1.ObjectNode)({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: (0, Common_1.IntProvider)({ min: 0, max: 3 }),\r\n height: (0, 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: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n rim_size: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 1, max: 512 }),\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n height_deviation: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n density: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n wetness: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: (0, core_1.BooleanNode)(),\r\n exit: (0, core_1.Opt)(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n crystal_beam_target: (0, core_1.Opt)(Reference('block_pos')),\r\n spikes: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n centerX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n centerZ: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n guarded: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: (0, 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: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n filling: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n inner_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n middle_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n outer_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n }),\r\n crack: (0, core_1.ObjectNode)({\r\n generate_crack_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n base_crack_size: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 5 })),\r\n crack_point_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 10 })),\r\n }),\r\n noise_multiplier: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_potential_placements_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n outer_wall_distance: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n distribution_points: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n point_offset: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 0, max: 10 })),\r\n min_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n invalid_blocks_threshold: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n can_place_on_floor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_ceiling: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_wall: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_be_placed_on: (0, 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: (0, core_1.BooleanNode)(),\r\n height_distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1, max: 512 })),\r\n column_radius: (0, Common_1.IntProvider)({ min: 0, max: 60 }),\r\n height_scale: (0, Common_1.FloatProvider)({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n stalactite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n wind_speed: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n min_radius_for_wind: (0, core_1.NumberNode)({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: (0, 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: (0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n chance: (0, 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: (0, core_1.ListNode)(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: (0, 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: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('block_state'))),\r\n place_in: (0, core_1.Opt)((0, core_1.ListNode)(Reference('block_state'))),\r\n place_under: (0, core_1.Opt)((0, core_1.ListNode)(Reference('block_state')))\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: (0, core_1.ListNode)(Feature)\r\n },\r\n 'minecraft:small_dripstone': {\r\n max_placements: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 100 })),\r\n empty_space_search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 20 })),\r\n max_offset_from_origin: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 20 })),\r\n chance_of_taller_dripstone: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: (0, core_1.NumberNode)({ integer: true }),\r\n hole_count: (0, core_1.NumberNode)({ integer: true }),\r\n requires_block_below: (0, core_1.BooleanNode)(),\r\n valid_blocks: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n force_dirt: (0, core_1.Opt)((0, 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: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: (0, 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: (0, Common_1.IntProvider)({ min: 1, max: 64 }),\r\n min_height_for_leaves: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n offset: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: (0, Common_1.IntProvider)({ min: 1, max: 512 }),\r\n leaf_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: (0, core_1.ListNode)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 81 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n upper_limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n middle_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n bedrock_floor_position: (0, core_1.NumberNode)({ integer: true }),\r\n sea_level: (0, core_1.NumberNode)({ integer: true }),\r\n min_surface_level: (0, core_1.NumberNode)({ integer: true }),\r\n disable_mob_generation: (0, core_1.BooleanNode)(),\r\n noise_caves_enabled: (0, core_1.BooleanNode)(),\r\n noodle_caves_enabled: (0, core_1.BooleanNode)(),\r\n aquifers_enabled: (0, core_1.BooleanNode)(),\r\n deepslate_enabled: (0, core_1.BooleanNode)(),\r\n ore_veins_enabled: (0, core_1.BooleanNode)(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: (0, core_1.ObjectNode)({\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n density_factor: (0, core_1.NumberNode)(),\r\n density_offset: (0, core_1.NumberNode)(),\r\n size_horizontal: (0, core_1.NumberNode)({ integer: true }),\r\n size_vertical: (0, core_1.NumberNode)({ integer: true }),\r\n simplex_surface_noise: (0, core_1.BooleanNode)(),\r\n random_density_offset: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n island_noise_override: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n amplified: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n sampling: (0, core_1.ObjectNode)({\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n xz_factor: (0, core_1.NumberNode)(),\r\n y_factor: (0, core_1.NumberNode)()\r\n }),\r\n bottom_slide: (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)({ integer: true }),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n }),\r\n top_slide: (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)({ integer: true }),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n offset: (0, 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', (0, core_1.ObjectNode)({\r\n stronghold: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n distance: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n spread: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n spacing: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n separation: (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n cluster_probability: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/surface_builder' } }),\r\n config: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, 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: (0, 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 (0, ProcessorList_1.initProcessorListSchemas)(schemas, collections);\r\n (0, Biome_1.initBiomeSchemas)(schemas, collections);\r\n (0, Carver_1.initCarverSchemas)(schemas, collections);\r\n (0, Decorator_1.initDecoratorSchemas)(schemas, collections);\r\n (0, Feature_1.initFeatureSchemas)(schemas, collections);\r\n (0, NoiseSettings_1.initNoiseSettingsSchemas)(schemas, collections);\r\n (0, StructureFeature_1.initStructureFeatureSchemas)(schemas, collections);\r\n (0, SurfaceBuilder_1.initSurfaceBuilderSchemas)(schemas, collections);\r\n (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n generate_features: (0, core_1.BooleanNode)(),\r\n bonus_chest: (0, core_1.BooleanNode)(),\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n dimensions: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:vanilla_layered',\r\n seed\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n seed,\r\n humidity_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n altitude_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n weirdness_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n temperature_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n biomes: [\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: 0.0 },\r\n biome: 'minecraft:nether_wastes'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: -0.5 },\r\n biome: 'minecraft:soul_sand_valley'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.4, humidity: 0.0 },\r\n biome: 'minecraft:crimson_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.375, temperature: 0.0, humidity: 0.5 },\r\n biome: 'minecraft:warped_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.175, temperature: -0.5, humidity: 0.0 },\r\n biome: 'minecraft:basalt_deltas'\r\n }\r\n ]\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, DimensionType_1.initDimensionTypeSchemas)(schemas, collections);\r\n (0, Dimension_1.initDimensionSchemas)(schemas, collections);\r\n (0, ItemModifier_1.initItemModifierSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, TextComponent_1.initTextComponentSchemas)(schemas, collections);\r\n (0, worldgen_1.initWorldgenSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, schemas_1.initSchemas)(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n"],"names":["core_1","require$$0","require$$1","Common_1","require$$2","ProcessorList_1","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","this"],"mappings":"+1BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EACrC,GAAA,gBAAG,OAC1B,YAAyB,EAAa,CAClC,EAAY,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,2BACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,sBACA,uBACA,mBACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,sBACA,uBACA,mBACR,CAAK,EACD,EAAY,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,SACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,MACR,CAAK,EACD,EAAY,SAAS,WAAY,CAC7B,WACA,WACA,YACA,WACR,CAAK,EACD,EAAY,SAAS,0BAA2B,CAC5C,sBACA,mBACA,gBACA,sBACA,kBACA,4BACR,CAAK,EACD,EAAY,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,eACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,eACA,OACA,SACA,eACR,CAAK,EACD,EAAY,SAAS,iCAAkC,CACnD,gCACA,sCACA,qBACR,CAAK,EACD,EAAY,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,cACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,SACR,CAAK,EACD,EAAY,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,iBACR,CAAK,EACD,EAAY,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,yBACR,CAAK,EACD,EAAY,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,yBACR,CAAK,EACD,EAAY,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,2BACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,aACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,kBACR,CAAK,EACD,EAAY,SAAS,kBAAmB,CACpC,MACA,QACR,CAAK,EACD,EAAY,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,iBACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,OACA,qBACA,sBACA,kBACA,mBACA,gBACA,aACA,cACA,eACA,gBACA,gBACA,mBACA,kBACA,gBACA,QACA,iBACA,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"} \ No newline at end of file diff --git a/assets/index.d40edef2.js b/assets/index.f8251f36.js similarity index 99% rename from assets/index.d40edef2.js rename to assets/index.f8251f36.js index 97eeda6c..cf1fa888 100644 --- a/assets/index.d40edef2.js +++ b/assets/index.f8251f36.js @@ -1,2 +1,2 @@ -var Ee=Object.defineProperty,We=Object.defineProperties;var Ue=Object.getOwnPropertyDescriptors;var Be=Object.getOwnPropertySymbols;var Ve=Object.prototype.hasOwnProperty,Ge=Object.prototype.propertyIsEnumerable;var $e=(o,t,e)=>t in o?Ee(o,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[t]=e,g=(o,t)=>{for(var e in t||(t={}))Ve.call(t,e)&&$e(o,e,t[e]);if(Be)for(var e of Be(t))Ge.call(t,e)&&$e(o,e,t[e]);return o},D=(o,t)=>We(o,Ue(t));import{l as S,c as re}from"./index.36354f76.js";function He(o,t){return t.forEach(function(e){e&&typeof e!="string"&&!Array.isArray(e)&&Object.keys(e).forEach(function(r){if(r!=="default"&&!(r in o)){var d=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(o,r,d.get?d:{enumerable:!0,get:function(){return e[r]}})}})}),Object.freeze(Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}))}var G={},ne={};Object.defineProperty(ne,"__esModule",{value:!0});ne.initCollections=void 0;function Ke(o){o.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"]),o.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"]),o.register("slot",["mainhand","offhand","head","chest","legs","feet"]),o.register("gamemode",["survival","creative","adventure","spectator"]),o.register("entity_source",["this","killer","direct_killer","killer_player"]),o.register("copy_source",["block_entity","this","killer","killer_player"]),o.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),o.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"]),o.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"]),o.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"]),o.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mountain","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),o.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),o.register("generation_step",["air","liquid"]),o.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"]),o.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"]),o.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"]),o.register("cave_surface",["floor","ceiling"]),o.register("direction",["down","up","north","east","south","west"]),o.register("axis",["x","y","z"]),o.register("display_position",["firstperson_righthand","firstperson_lefthand","thirdperson_righthand","thirdperson_lefthand","gui","head","ground","fixed"]),o.register("gui_light",["front","side"]),o.register("item_model_predicates",["angle","blocking","broken","cast","charged","cooldown","custom_model_data","damage","damaged","firework","lefthanded","pull","pulling","throwing","time"]),o.register("cat_texture",["textures/entity/cat/tabby.png","textures/entity/cat/black.png","textures/entity/cat/red.png","textures/entity/cat/siamese.png","textures/entity/cat/british_shorthair.png","textures/entity/cat/calico.png","textures/entity/cat/persian.png","textures/entity/cat/ragdoll.png","textures/entity/cat/white.png","textures/entity/cat/jellie.png","textures/entity/cat/all_black.png"])}ne.initCollections=Ke;var ae={},ce={};Object.defineProperty(ce,"__esModule",{value:!0});ce.initAdvancementSchemas=void 0;const s=S;function Xe(o,t){const e=s.Reference.bind(void 0,o),r=s.StringNode.bind(void 0,t),d=(0,s.ChoiceNode)([{type:"object",node:(0,s.Opt)(e("entity_predicate")),change:n=>{var a,l;return(l=(a=n[0])===null||a===void 0?void 0:a.predicate)!==null&&l!==void 0?l:{}}},{type:"list",node:(0,s.ListNode)(e("condition")),change:n=>[{condition:"minecraft:entity_properties",predicate:n}]}],{context:"conditions"});o.register("advancement",(0,s.Mod)((0,s.ObjectNode)({display:(0,s.Opt)((0,s.Mod)((0,s.ObjectNode)({icon:(0,s.ObjectNode)({item:r({validator:"resource",params:{pool:"item"}}),nbt:(0,s.Opt)(r({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:e("text_component"),description:e("text_component"),background:(0,s.Opt)(r()),frame:(0,s.Opt)(r({enum:["task","challenge","goal"]})),show_toast:(0,s.Opt)((0,s.BooleanNode)()),announce_to_chat:(0,s.Opt)((0,s.BooleanNode)()),hidden:(0,s.Opt)((0,s.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,s.Opt)(r({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,s.MapNode)(r(),e("advancement_criteria")),requirements:(0,s.Opt)((0,s.ListNode)((0,s.ListNode)(r()))),rewards:(0,s.Opt)((0,s.ObjectNode)({function:(0,s.Opt)(r({validator:"resource",params:{pool:"$function"}})),loot:(0,s.Opt)((0,s.ListNode)(r({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,s.Opt)((0,s.ListNode)(r({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,s.Opt)((0,s.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),o.register("advancement_criteria",(0,s.ObjectNode)({trigger:r({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:(0,s.Opt)((0,s.ObjectNode)({player:(0,s.Mod)(d,{enabled:n=>n.pop().push("trigger").get()!=="minecraft:impossible"}),[s.Switch]:["pop",{push:"trigger"}],[s.Case]:{"minecraft:bee_nest_destroyed":{block:(0,s.Opt)(r({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,s.Opt)((0,s.NumberNode)({integer:!0})),item:(0,s.Opt)(e("item_predicate"))},"minecraft:bred_animals":{parent:d,partner:d,child:d},"minecraft:brewed_potion":{potion:(0,s.Opt)(r({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,s.Opt)(r({validator:"resource",params:{pool:"$dimension"}})),to:(0,s.Opt)(r({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:construct_beacon":{level:e("int_bounds")},"minecraft:consume_item":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:cured_zombie_villager":{villager:d,zombie:d},"minecraft:effects_changed":{effects:(0,s.Opt)((0,s.MapNode)(r({validator:"resource",params:{pool:"mob_effect"}}),(0,s.ObjectNode)({amplifier:e("int_bounds"),duration:e("int_bounds")}))),source:(0,s.Opt)(d)},"minecraft:enter_block":{block:(0,s.Opt)(r({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:e("int_bounds"),item:(0,s.Opt)(e("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,s.Opt)(e("damage_predicate"))},"minecraft:entity_killed_player":{entity:d,killing_blow:(0,s.Opt)(e("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:(0,s.Opt)(e("location_predicate")),distance:(0,s.Opt)(e("distance_predicate"))},"minecraft:filled_bucket":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:d,item:(0,s.Opt)(e("item_predicate"))},"minecraft:hero_of_the_village":{location:(0,s.Opt)(e("location_predicate"))},"minecraft:inventory_changed":{slots:(0,s.Opt)((0,s.ObjectNode)({empty:e("int_bounds"),occupied:e("int_bounds"),full:e("int_bounds")})),items:(0,s.Opt)((0,s.ListNode)(e("item_predicate")))},"minecraft:item_durability_changed":{delta:e("int_bounds"),durability:e("int_bounds"),item:(0,s.Opt)(e("item_predicate"))},"minecraft:item_used_on_block":{item:(0,s.Opt)(e("item_predicate")),location:(0,s.Opt)(e("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:e("int_bounds"),victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:levitation":{distance:(0,s.Opt)(e("distance_predicate")),duration:e("int_bounds")},"minecraft:lightning_strike":{lightning:d,bystander:d},"minecraft:location":{location:(0,s.Opt)(e("location_predicate"))},"minecraft:nether_travel":{start_position:(0,s.Opt)(e("location_predicate")),distance:(0,s.Opt)(e("distance_predicate"))},"minecraft:placed_block":{block:(0,s.Opt)(r({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,s.Opt)(e("item_predicate")),location:(0,s.Opt)(e("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:r({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:(0,s.Opt)(e("damage_predicate")),entity:d},"minecraft:player_interacted_with_entity":{item:(0,s.Opt)(e("item_predicate")),entity:d},"minecraft:player_killed_entity":{entity:d,killing_blow:(0,s.Opt)(e("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:r({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:(0,s.Opt)(e("location_predicate")),distance:(0,s.Opt)(e("distance_predicate"))},"minecraft:slept_in_bed":{location:(0,s.Opt)(e("location_predicate"))},"minecraft:slide_down_block":{block:(0,s.Opt)(r({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:summoned_entity":{entity:d},"minecraft:tame_animal":{entity:d},"minecraft:target_hit":{projectile:d,shooter:d,signal_strength:e("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:d,item:(0,s.Opt)(e("item_predicate"))},"minecraft:used_ender_eye":{distance:(0,s.Opt)(e("float_bounds"))},"minecraft:used_totem":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:using_item":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:villager_trade":{villager:d,item:(0,s.Opt)(e("item_predicate"))},"minecraft:voluntary_exile":{location:(0,s.Opt)(e("location_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))}ce.initAdvancementSchemas=Xe;var de={},se={};Object.defineProperty(se,"__esModule",{value:!0});se.initModelSchemas=void 0;const N=S;function Ze(o,t){N.Reference.bind(void 0,o);const e=N.StringNode.bind(void 0,t),r=(n,a,l)=>(0,N.ListNode)((0,N.NumberNode)({min:a,max:l}),{minLength:n,maxLength:n}),d=(0,N.ChoiceNode)([{type:"alias",match:n=>typeof n=="string"&&n.startsWith("#"),node:e(),change:n=>typeof n=="string"?`#${n}`:"#0"},{type:"reference",match:n=>typeof n=="string",node:e({validator:"resource",params:{pool:"$texture"}}),change:n=>typeof n=="string"?n.replace(/^#/,""):""}],{choiceContext:"texture"});o.register("model",(0,N.Mod)((0,N.ObjectNode)({parent:(0,N.Opt)(e({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,N.Opt)((0,N.BooleanNode)()),gui_light:(0,N.Opt)(e({enum:"gui_light"})),textures:(0,N.Opt)((0,N.MapNode)(e(),d)),elements:(0,N.Opt)((0,N.ListNode)((0,N.ObjectNode)({from:r(3,-16,32),to:r(3,-16,32),rotation:(0,N.Opt)((0,N.ObjectNode)({origin:r(3),axis:e({enum:"axis"}),angle:(0,N.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,N.Opt)((0,N.BooleanNode)())})),shade:(0,N.Opt)((0,N.BooleanNode)()),faces:(0,N.MapNode)(e({enum:"direction"}),(0,N.ObjectNode)({texture:d,uv:(0,N.Opt)(r(4)),cullface:(0,N.Opt)(e({enum:"direction"})),rotation:(0,N.Opt)((0,N.NumberNode)({integer:!0})),tintindex:(0,N.Opt)((0,N.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,N.Opt)((0,N.MapNode)(e({enum:"display_position"}),(0,N.ObjectNode)({rotation:r(3),translation:r(3,-80,80),scale:r(3,-4,4)},{context:"item_transform"}))),overrides:(0,N.Opt)((0,N.ListNode)((0,N.ObjectNode)({predicate:(0,N.MapNode)(e({enum:"item_model_predicates"}),(0,N.NumberNode)()),model:e({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))}se.initModelSchemas=Ze;var le={};Object.defineProperty(le,"__esModule",{value:!0});le.initBlockDefinitionSchemas=void 0;const x=S;function Ye(o,t){const e=x.Reference.bind(void 0,o),r=x.StringNode.bind(void 0,t);o.register("block_definition",(0,x.Mod)((0,x.ChoiceNode)([{type:"variants",match:n=>n.variants!==void 0,node:(0,x.ObjectNode)({variants:(0,x.MapNode)(r(),e("model_variant"))}),change:n=>({variants:{"":{}}})},{type:"multipart",match:n=>n.multipart!==void 0,node:(0,x.ObjectNode)({multipart:(0,x.ListNode)((0,x.ObjectNode)({when:(0,x.Opt)(e("multipart_condition")),apply:e("model_variant")}))}),change:n=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const d={model:r({validator:"resource",params:{pool:"$model"}}),x:(0,x.Opt)((0,x.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,x.Opt)((0,x.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,x.Opt)((0,x.BooleanNode)())};o.register("model_variant",(0,x.ChoiceNode)([{type:"object",node:(0,x.ObjectNode)(d),change:n=>Array.isArray(n)&&n.length>0?n[0]:{}},{type:"list",node:(0,x.ListNode)((0,x.ObjectNode)(D(g({},d),{weight:(0,x.Opt)((0,x.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:n=>[g({weight:1},n)]}],{context:"model_variant"})),o.register("multipart_condition",(0,x.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,x.MapNode)(r(),r()),change:n=>typeof n=="object"&&Array.isArray(n==null?void 0:n.OR)&&n.OR.length>0?n.OR[0]:{}},{type:"or",match:n=>typeof n=="object"&&(n==null?void 0:n.OR)!==void 0,node:(0,x.ObjectNode)({OR:(0,x.ListNode)(e("multipart_condition"))}),change:n=>({OR:[n!=null?n:{}]})}],{context:"multipart_condition"}))}le.initBlockDefinitionSchemas=Ye;Object.defineProperty(de,"__esModule",{value:!0});de.initAssetsSchemas=void 0;const Je=se,Qe=le;function et(o,t){(0,Qe.initBlockDefinitionSchemas)(o,t),(0,Je.initModelSchemas)(o,t)}de.initAssetsSchemas=et;var F={};(function(o){Object.defineProperty(o,"__esModule",{value:!0}),o.initCommonSchemas=o.InclusiveRange=o.IntProvider=o.FloatProvider=o.NoiseSettingsPresets=o.DefaultNoiseSettings=o.DimensionTypePresets=o.DefaultDimensionType=o.FunctionCases=o.ConditionCases=void 0;const t=S;o.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 e={"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}};o.DefaultNoiseSettings={bedrock_roof_position:-2147483648,bedrock_floor_position:0,sea_level:63,noise_caves_enabled:!0,deepslate_enabled:!0,ore_veins_enabled:!0,noodle_caves_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,density_factor:1,density_offset:-.51875,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:e}};function r(d,n){const a=t.StringNode.bind(void 0,n),l=t.Reference.bind(void 0,d);d.register("block_state",(0,t.Mod)((0,t.ObjectNode)({Name:a({validator:"resource",params:{pool:"block"}}),Properties:(0,t.Opt)((0,t.MapNode)(a(),a(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),d.register("fluid_state",(0,t.Mod)((0,t.ObjectNode)({Name:a({validator:"resource",params:{pool:"fluid"}}),Properties:(0,t.Opt)((0,t.MapNode)(a(),a()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),d.register("block_pos",(0,t.Mod)((0,t.ListNode)((0,t.NumberNode)({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const I=f=>(0,t.Opt)((0,t.ChoiceNode)([{type:"number",node:(0,t.NumberNode)({integer:f}),change:O=>{var h,w;return O===void 0?0:(w=(h=O.min)!==null&&h!==void 0?h:O.max)!==null&&w!==void 0?w:0}},{type:"object",node:(0,t.ObjectNode)({min:(0,t.Opt)((0,t.NumberNode)({integer:f})),max:(0,t.Opt)((0,t.NumberNode)({integer:f}))},{context:"range"}),change:O=>({min:O!=null?O:0,max:O!=null?O:0})}]));d.register("int_bounds",I(!0)),d.register("float_bounds",I()),d.register("int_range",(0,t.ChoiceNode)([{type:"object",node:(0,t.ObjectNode)({min:(0,t.Opt)(l("number_provider")),max:(0,t.Opt)(l("number_provider"))})},{type:"number",node:(0,t.NumberNode)({integer:!0})}],{context:"range"}));const B=(f,O,h,w,$,L,Y)=>{let J={};$&&Object.keys(Y[$]).forEach(E=>{J[E]=(0,t.Mod)(Y[$][E],{enabled:R=>R.push("type").get()===void 0})});const te=(0,t.ObjectNode)(g({type:(0,t.Mod)((0,t.Opt)(a({validator:"resource",params:{pool:f}})),{hidden:()=>!0}),[t.Switch]:[{push:"type"}],[t.Case]:Y},J),{context:L,disableSwitchContext:!0}),A=[{type:O,node:Y[w][h]}];return $&&A.push({type:"object",priority:-1,node:te}),Object.keys(Y).forEach(E=>{A.push({type:E,match:R=>{var Le;if("minecraft:"+((Le=R==null?void 0:R.type)===null||Le===void 0?void 0:Le.replace(/^minecraft:/,""))===E)return!0;const W=R?Object.keys(R):[];return typeof R=="object"&&((W==null?void 0:W.length)===0||(W==null?void 0:W.length)===1&&(W==null?void 0:W[0])==="type")},node:te,change:R=>({type:E})})}),(0,t.ChoiceNode)(A,{context:L,choiceContext:`${L}.type`})};d.register("number_provider",B("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:(0,t.NumberNode)()},"minecraft:uniform":{min:l("number_provider"),max:l("number_provider")},"minecraft:binomial":{n:l("number_provider"),p:l("number_provider")},"minecraft:score":{target:l("scoreboard_name_provider"),score:a({validator:"objective"}),scale:(0,t.Opt)((0,t.NumberNode)())}})),d.register("scoreboard_name_provider",B("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:(0,t.Mod)(a({enum:"entity_source"}),{default:()=>"this"})}})),d.register("nbt_provider",B("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:a({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:(0,t.Mod)(a({enum:"copy_source"}),{default:()=>"this"})}})),o.FloatProvider=f=>B("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:(0,t.NumberNode)(f)},"minecraft:uniform":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(f),max_exclusive:(0,t.NumberNode)(f)})},"minecraft:clamped_normal":{value:(0,t.ObjectNode)({min:(0,t.NumberNode)(),max:(0,t.NumberNode)(),mean:(0,t.NumberNode)(),deviation:(0,t.NumberNode)()})},"minecraft:trapezoid":{value:(0,t.ObjectNode)({min:(0,t.NumberNode)(),max:(0,t.NumberNode)(),plateau:(0,t.NumberNode)()})}}),d.register("float_provider",(0,o.FloatProvider)()),o.IntProvider=f=>B("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:(0,t.NumberNode)(g({integer:!0},f))},"minecraft:uniform":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(g({integer:!0},f)),max_inclusive:(0,t.NumberNode)(g({integer:!0},f))})},"minecraft:biased_to_bottom":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(g({integer:!0},f)),max_inclusive:(0,t.NumberNode)(g({integer:!0},f))})},"minecraft:clamped":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(g({integer:!0},f)),max_inclusive:(0,t.NumberNode)(g({integer:!0},f)),source:l("int_provider")})},"minecraft:clamped_normal":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(g({integer:!0},f)),max_inclusive:(0,t.NumberNode)(g({integer:!0},f)),mean:(0,t.NumberNode)(),deviation:(0,t.NumberNode)()})},"minecraft:weighted_list":{distribution:(0,t.ListNode)((0,t.ObjectNode)({weight:(0,t.NumberNode)({integer:!0}),data:l("int_provider")}))}}),d.register("int_provider",(0,o.IntProvider)()),d.register("vertical_anchor",(0,t.ChoiceNode)(["absolute","above_bottom","below_top"].map(f=>({type:f,match:O=>(O==null?void 0:O[f])!==void 0,change:O=>{var h,w,$;return{[f]:($=(w=(h=O.absolute)!==null&&h!==void 0?h:O.above_bottom)!==null&&w!==void 0?w:O.below_top)!==null&&$!==void 0?$:0}},node:(0,t.ObjectNode)({[f]:(0,t.NumberNode)({integer:!0,min:-2048,max:2047})})})),{context:"vertical_anchor"})),d.register("height_provider",B("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:l("vertical_anchor")},"minecraft:uniform":{min_inclusive:l("vertical_anchor"),max_inclusive:l("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:l("vertical_anchor"),max_inclusive:l("vertical_anchor"),inner:(0,t.Opt)((0,t.NumberNode)({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:l("vertical_anchor"),max_inclusive:l("vertical_anchor"),inner:(0,t.Opt)((0,t.NumberNode)({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:l("vertical_anchor"),max_inclusive:l("vertical_anchor"),plateau:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:weighted_list":{distribution:(0,t.ListNode)((0,t.ObjectNode)({weight:(0,t.NumberNode)({integer:!0}),data:l("height_provider")}))}})),o.InclusiveRange=f=>(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(f),max_inclusive:(0,t.NumberNode)(f)},{context:"range"}),d.register("noise_parameters",(0,t.Mod)((0,t.ObjectNode)({firstOctave:(0,t.NumberNode)({integer:!0}),amplitudes:(0,t.ListNode)((0,t.NumberNode)())},{context:"noise_parameters"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})})),o.ConditionCases=(f=a({enum:"entity_source"}))=>({"minecraft:alternative":{terms:(0,t.ListNode)(l("condition"))},"minecraft:block_state_property":{block:a({validator:"resource",params:{pool:"block"}}),properties:(0,t.MapNode)(a(),a(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:l("damage_source_predicate")},"minecraft:entity_properties":{entity:f,predicate:l("entity_predicate")},"minecraft:entity_scores":{entity:f,scores:(0,t.MapNode)(a({validator:"objective"}),l("int_range"))},"minecraft:inverted":{term:l("condition")},"minecraft:killed_by_player":{inverse:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:location_check":{offsetX:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetY:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetZ:(0,t.Opt)((0,t.NumberNode)({integer:!0})),predicate:l("location_predicate")},"minecraft:match_tool":{predicate:l("item_predicate")},"minecraft:random_chance":{chance:(0,t.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,t.NumberNode)({min:0,max:1}),looting_multiplier:(0,t.NumberNode)()},"minecraft:reference":{name:a({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:a({validator:"resource",params:{pool:"enchantment"}}),chances:(0,t.ListNode)((0,t.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:l("int_range"),period:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:value_check":{value:l("number_provider"),range:l("int_range")},"minecraft:weather_check":{raining:(0,t.Opt)((0,t.BooleanNode)()),thundering:(0,t.Opt)((0,t.BooleanNode)())}}),o.FunctionCases=(f,O=a({enum:"copy_source"}),h=a({enum:"entity_source"}))=>{const w={"minecraft:apply_bonus":{enchantment:a({validator:"resource",params:{pool:"enchantment"}}),formula:a({validator:"resource",params:{pool:n.get("loot_table_apply_bonus_formula")}}),parameters:(0,t.Mod)((0,t.ObjectNode)({bonusMultiplier:(0,t.Mod)((0,t.NumberNode)(),{enabled:L=>L.pop().push("formula").get()==="minecraft:uniform_bonus_count"}),extra:(0,t.Mod)((0,t.NumberNode)(),{enabled:L=>L.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"}),probability:(0,t.Mod)((0,t.NumberNode)(),{enabled:L=>L.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"})}),{enabled:L=>L.push("formula").get()!=="minecraft:ore_drops"})},"minecraft:copy_name":{source:O},"minecraft:copy_nbt":{source:l("nbt_provider"),ops:(0,t.ListNode)((0,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:(0,t.ListNode)(a({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,t.Opt)((0,t.ListNode)(a({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:l("number_provider"),treasure:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:exploration_map":{destination:(0,t.Opt)(a({enum:"map_feature"})),decoration:(0,t.Opt)(a({enum:"map_decoration"})),zoom:(0,t.Opt)((0,t.NumberNode)({integer:!0})),search_radius:(0,t.Opt)((0,t.NumberNode)({integer:!0})),skip_existing_chunks:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:fill_player_head":{entity:h},"minecraft:limit_count":{limit:l("int_range")},"minecraft:looting_enchant":{count:l("number_provider"),limit:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,t.ListNode)(l("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:(0,t.ListNode)((0,t.ObjectNode)({pattern:a({enum:"banner_pattern"}),color:a({enum:"dye_color"})})),append:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_contents":{type:a({validator:"resource",params:{pool:"block_entity_type"}}),entries:(0,t.ListNode)(l("loot_entry"))},"minecraft:set_count":{count:l("number_provider"),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_damage":{damage:l("number_provider"),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_enchantments":{enchantments:(0,t.MapNode)(a({validator:"resource",params:{pool:"enchantment"}}),l("number_provider")),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_loot_table":{type:a({validator:"resource",params:{pool:"block_entity_type"}}),name:a({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,t.Opt)(h),lore:(0,t.ListNode)(l("text_component")),replace:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_name":{entity:(0,t.Opt)(h),name:(0,t.Opt)(l("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:(0,t.Opt)((0,t.ListNode)((0,t.ObjectNode)({type:a({validator:"resource",params:{pool:"mob_effect"}}),duration:l("number_provider")})))}},$={};return n.get("loot_function_type").forEach(L=>{$[L]=g(g({},w[L]),f)}),$},o.DimensionTypePresets=f=>(0,t.ObjectOrPreset)(a({validator:"resource",params:{pool:"$dimension_type"}}),f,{"minecraft:overworld":o.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}}),o.NoiseSettingsPresets=f=>(0,t.ObjectOrPreset)(a({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),f,{"minecraft:overworld":o.DefaultNoiseSettings,"minecraft:nether":{bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:netherrack"},default_fluid:{Properties:{level:"0"},Name:"minecraft:lava"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,density_factor:0,density_offset:-.030078125,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{structures:e}},"minecraft:end":{bedrock_roof_position:-2147483648,bedrock_floor_position:-2147483648,sea_level:0,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,density_factor:0,density_offset:0,island_noise_override:!0,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{structures:e}},"minecraft:amplified":{bedrock_roof_position:-2147483648,bedrock_floor_position:0,sea_level:63,noise_caves_enabled:!0,deepslate_enabled:!0,ore_veins_enabled:!0,noodle_caves_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,density_factor:1,density_offset:-.51875,amplified:!0,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:e}},"minecraft:caves":{bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,density_factor:0,density_offset:-.030078125,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:e}},"minecraft:floating_islands":{bedrock_roof_position:-2147483648,bedrock_floor_position:-2147483648,sea_level:0,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,density_factor:0,density_offset:0,island_noise_override:!0,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:e}}})}o.initCommonSchemas=r})(F);var me={};Object.defineProperty(me,"__esModule",{value:!0});me.initConditionSchemas=void 0;const Q=S,tt=F;function rt(o,t){const e=Q.Reference.bind(void 0,o),r=Q.StringNode.bind(void 0,t);o.register("predicate",(0,Q.ObjectOrList)(e("condition"),{choiceContext:"condition"})),o.register("condition",(0,Q.Mod)((0,Q.ObjectNode)({condition:r({validator:"resource",params:{pool:"loot_condition_type"}}),[Q.Switch]:[{push:"condition"}],[Q.Case]:(0,tt.ConditionCases)()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))}me.initConditionSchemas=rt;var _e={};Object.defineProperty(_e,"__esModule",{value:!0});_e.initDimensionSchemas=void 0;const v=S,ze=F;function ot(o,t){const e=v.Reference.bind(void 0,o),r=v.StringNode.bind(void 0,t);o.register("dimension",(0,v.Mod)((0,v.ObjectNode)({type:(0,ze.DimensionTypePresets)(e("dimension_type")),generator:(0,v.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[v.Switch]:[{push:"type"}],[v.Case]:{"minecraft:noise":{seed:(0,v.NumberNode)({integer:!0}),settings:(0,ze.NoiseSettingsPresets)(e("noise_settings")),biome_source:(0,v.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/biome_source"}}),[v.Switch]:[{push:"type"}],[v.Case]:{"minecraft:fixed":{biome:r({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:(0,v.Opt)(r({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:(0,v.Mod)((0,v.ListNode)(e("generator_biome")),{enabled:n=>n.push("preset").get()===void 0,default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:(0,v.Opt)((0,v.NumberNode)({integer:!0,min:0,max:62})),biomes:(0,v.ListNode)(r({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:(0,v.NumberNode)({integer:!0})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:(0,v.ObjectNode)({biome:(0,v.Opt)(r({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:(0,v.Opt)((0,v.BooleanNode)()),features:(0,v.Opt)((0,v.BooleanNode)()),layers:(0,v.ListNode)(e("generator_layer")),structures:e("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const n=Math.floor(Math.random()*4294967296)-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:n,biome_source:{type:"minecraft:fixed",seed:n,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}}));const d=(0,v.ChoiceNode)([{type:"number",node:(0,v.NumberNode)({min:-2,max:2}),change:n=>{var a;return(a=n[0])!==null&&a!==void 0?a:0}},{type:"list",node:(0,v.ListNode)((0,v.NumberNode)({min:-2,max:2}),{minLength:2,maxLength:2}),change:n=>[n!=null?n:0,n!=null?n:0]}]);o.register("generator_biome",(0,v.Mod)((0,v.ObjectNode)({biome:r({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:(0,v.ObjectNode)({temperature:d,humidity:d,continentalness:d,erosion:d,weirdness:d,depth:d,offset:(0,v.NumberNode)({min:0,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})}))}_e.initDimensionSchemas=ot;var pe={};Object.defineProperty(pe,"__esModule",{value:!0});pe.initDimensionTypeSchemas=void 0;const P=S,it=F;function nt(o,t){const e=P.StringNode.bind(void 0,t);o.register("dimension_type",(0,P.Mod)((0,P.ObjectNode)({ultrawarm:(0,P.BooleanNode)(),natural:(0,P.BooleanNode)(),piglin_safe:(0,P.BooleanNode)(),respawn_anchor_works:(0,P.BooleanNode)(),bed_works:(0,P.BooleanNode)(),has_raids:(0,P.BooleanNode)(),has_skylight:(0,P.BooleanNode)(),has_ceiling:(0,P.BooleanNode)(),coordinate_scale:(0,P.NumberNode)({min:1e-5,max:3e7}),ambient_light:(0,P.NumberNode)(),fixed_time:(0,P.Opt)((0,P.NumberNode)({integer:!0})),logical_height:(0,P.NumberNode)({integer:!0,min:0,max:4096}),effects:(0,P.Opt)(e({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:e({validator:"resource",params:{pool:"$tag/block"}}),min_y:(0,P.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,P.NumberNode)({integer:!0,min:0,max:4096})},{context:"dimension_type"}),r=>({default:()=>it.DefaultDimensionType,validate:(d,n,a,l)=>(n=r.validate(d,n,a,l),(n==null?void 0:n.min_y)+(n==null?void 0:n.height)>2047&&a.add(d.push("height"),"error.min_y_plus_height",2047),(n==null?void 0:n.logical_height)>(n==null?void 0:n.height)&&a.add(d.push("logical_height"),"error.logical_height"),(n==null?void 0:n.height)%16!==0&&a.add(d.push("height"),"error.height_multiple",16),(n==null?void 0:n.min_y)%16!==0&&a.add(d.push("min_y"),"error.min_y_multiple",16),n)})))}pe.initDimensionTypeSchemas=nt;var ue={};Object.defineProperty(ue,"__esModule",{value:!0});ue.initItemModifierSchemas=void 0;const U=S,at=F;function ct(o,t){const e=U.Reference.bind(void 0,o),r=U.StringNode.bind(void 0,t);o.register("item_modifier",(0,U.ObjectOrList)(e("function"),{choiceContext:"function"}));const d={conditions:(0,U.Opt)((0,U.ListNode)(e("condition")))};o.register("function",(0,U.Mod)((0,U.ObjectNode)({function:r({validator:"resource",params:{pool:"loot_function_type"}}),[U.Switch]:[{push:"function"}],[U.Case]:(0,at.FunctionCases)(d)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))}ue.initItemModifierSchemas=ct;var fe={},q={};Object.defineProperty(q,"__esModule",{value:!0});q.LootFunctions=q.LootConditions=q.LootCopySources=q.LootEntitySources=q.LootTableTypes=void 0;q.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]}]]);q.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]);q.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]);q.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",[]]]);q.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(fe,"__esModule",{value:!0});fe.initLootTableSchemas=void 0;const b=S,oe=q,Re=F;function dt(o,t){const e=b.Reference.bind(void 0,o),r=b.StringNode.bind(void 0,t),d={conditions:(0,b.Opt)((0,b.ListNode)(e("loot_condition")))},n=g({functions:(0,b.Opt)((0,b.ListNode)(e("loot_function")))},d);function a(h,w,$){const L=[],Y=J=>t.get(w).filter(te=>{var A;return((A=h.get(te))!==null&&A!==void 0?A:[]).every(R=>J.includes(R))});for(const[J,{allows:te,requires:A}]of oe.LootTableTypes){const E=[...te,...A];L.push({match:R=>R.getModel().get(new b.Path(["type"]))===J,node:$(Y(E))})}return L.push({match:J=>!0,node:$(w)}),(0,b.SwitchNode)(L)}const l=a(oe.LootConditions,"loot_condition_type",h=>r({validator:"resource",params:{pool:h instanceof Array?h:"loot_condition_type"}})),I=a(oe.LootFunctions,"loot_function_type",h=>r({validator:"resource",params:{pool:h instanceof Array?h:"loot_function_type"}})),B=a(oe.LootEntitySources,"entity_source",h=>r({enum:h})),f=a(oe.LootCopySources,"copy_source",h=>r({enum:h}));o.register("loot_table",(0,b.Mod)((0,b.ObjectNode)({type:(0,b.Opt)(r({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:(0,b.Opt)((0,b.ListNode)((0,b.Mod)((0,b.ObjectNode)(g({rolls:e("number_provider"),bonus_rolls:(0,b.Opt)(e("number_provider")),entries:(0,b.ListNode)(e("loot_entry"))},n),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,b.Opt)((0,b.ListNode)(e("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const O={enabled:h=>{var w;return((w=h.pop().get())===null||w===void 0?void 0:w.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(h.push("type").get())}};o.register("loot_entry",(0,b.Mod)((0,b.ObjectNode)({type:r({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,b.Opt)((0,b.Mod)((0,b.NumberNode)({integer:!0,min:1}),O)),quality:(0,b.Opt)((0,b.Mod)((0,b.NumberNode)({integer:!0}),O)),[b.Switch]:[{push:"type"}],[b.Case]:{"minecraft:alternatives":g({children:(0,b.ListNode)(e("loot_entry"))},n),"minecraft:dynamic":g({name:r()},n),"minecraft:group":g({children:(0,b.ListNode)(e("loot_entry"))},n),"minecraft:item":g({name:r({validator:"resource",params:{pool:"item"}})},n),"minecraft:loot_table":g({name:r({validator:"resource",params:{pool:"$loot_table"}})},n),"minecraft:sequence":g({children:(0,b.ListNode)(e("loot_entry"))},n),"minecraft:tag":g({name:r({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,b.Opt)((0,b.BooleanNode)())},n)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),o.register("loot_function",(0,b.Mod)((0,b.ObjectNode)({function:I,[b.Switch]:[{push:"function"}],[b.Case]:(0,Re.FunctionCases)(d,f,B)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),o.register("loot_condition",(0,b.Mod)((0,b.ObjectNode)({condition:l,[b.Switch]:[{push:"condition"}],[b.Case]:(0,Re.ConditionCases)(B)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),o.register("attribute_modifier",(0,b.Mod)((0,b.ObjectNode)({attribute:r({validator:"resource",params:{pool:"attribute"}}),name:r(),amount:e("number_provider"),operation:r({enum:["addition","multiply_base","multiply_total"]}),slot:(0,b.StringOrList)(r({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))}fe.initLootTableSchemas=dt;var be={};Object.defineProperty(be,"__esModule",{value:!0});be.initPackMcmetaSchemas=void 0;const ee=S,H=8;function st(o,t){o.register("pack_mcmeta",(0,ee.Mod)((0,ee.ObjectNode)({pack:(0,ee.Mod)((0,ee.ObjectNode)({pack_format:(0,ee.Mod)((0,ee.NumberNode)({integer:!0,min:H,max:H}),{default:()=>H,canUpdate:(e,r)=>r!==H,update:()=>[{name:"pack_format",params:[H],newValue:H}]}),description:(0,ee.Reference)(o,"text_component")}),{default:()=>({pack_format:H,description:""})})}),{default:()=>({pack:{pack_format:H,description:""}})}))}be.initPackMcmetaSchemas=st;var ge={};Object.defineProperty(ge,"__esModule",{value:!0});ge.initPredicatesSchemas=void 0;const c=S;function lt(o,t){const e=c.Reference.bind(void 0,o),r=c.StringNode.bind(void 0,t),d=(0,c.ChoiceNode)([{type:"string",node:r(),change:n=>typeof n=="boolean"||typeof n=="number"?n.toString():""},{type:"number",node:(0,c.NumberNode)(),change:n=>typeof n=="string"?parseInt(n):0},{type:"object",node:(0,c.ObjectNode)({min:(0,c.Opt)((0,c.NumberNode)({integer:!0})),max:(0,c.Opt)((0,c.NumberNode)({integer:!0}))}),change:n=>typeof n=="number"?{min:n,max:n}:{}},{type:"boolean",node:(0,c.BooleanNode)(),change:n=>n==="true"||n===1}]);o.register("item_predicate",(0,c.ObjectNode)({items:(0,c.Opt)((0,c.ListNode)(r({validator:"resource",params:{pool:"item"}}))),tag:(0,c.Opt)(r({validator:"resource",params:{pool:"$tag/item"}})),count:e("int_bounds"),durability:e("int_bounds"),potion:(0,c.Opt)(r({validator:"resource",params:{pool:"potion"}})),nbt:(0,c.Opt)(r({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,c.Opt)((0,c.ListNode)(e("enchantment_predicate")))},{context:"item"})),o.register("enchantment_predicate",(0,c.ObjectNode)({enchantment:(0,c.Opt)(r({validator:"resource",params:{pool:"enchantment"}})),levels:e("int_bounds")},{context:"enchantment"})),o.register("block_predicate",(0,c.ObjectNode)({blocks:(0,c.Opt)((0,c.ListNode)(r({validator:"resource",params:{pool:"block"}}))),tag:(0,c.Opt)(r({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,c.Opt)(r({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,c.Opt)((0,c.MapNode)(r(),d,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),o.register("fluid_predicate",(0,c.ObjectNode)({fluid:(0,c.Opt)(r({validator:"resource",params:{pool:"fluid"}})),tag:(0,c.Opt)(r({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,c.Opt)((0,c.MapNode)(r(),d))},{context:"fluid"})),o.register("location_predicate",(0,c.ObjectNode)({position:(0,c.Opt)((0,c.ObjectNode)({x:e("float_bounds"),y:e("float_bounds"),z:e("float_bounds")})),biome:(0,c.Opt)(r({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:(0,c.Opt)(r({enum:t.get("worldgen/structure_feature").map(n=>n.slice(10))})),dimension:(0,c.Opt)(r({validator:"resource",params:{pool:"$dimension"}})),light:(0,c.Opt)((0,c.ObjectNode)({light:e("int_bounds")})),smokey:(0,c.Opt)((0,c.BooleanNode)()),block:(0,c.Opt)(e("block_predicate")),fluid:(0,c.Opt)(e("fluid_predicate"))},{context:"location"})),o.register("statistic_predicate",(0,c.ObjectNode)({type:r({validator:"resource",params:{pool:"stat_type"}}),stat:r(),value:e("int_bounds"),[c.Switch]:[{push:"type"}],[c.Case]:{"minecraft:mined":{stat:r({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:r({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:r({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:r({validator:"resource",params:{pool:"custom_stat"}})}}})),o.register("player_predicate",(0,c.ObjectNode)({gamemode:(0,c.Opt)(r({enum:"gamemode"})),level:e("int_bounds"),advancements:(0,c.Opt)((0,c.MapNode)(r({validator:"resource",params:{pool:"$advancement"}}),(0,c.ChoiceNode)([{type:"boolean",node:(0,c.BooleanNode)(),change:n=>!0},{type:"object",node:(0,c.MapNode)(r(),(0,c.BooleanNode)())}]))),recipes:(0,c.Opt)((0,c.MapNode)(r({validator:"resource",params:{pool:"$recipe"}}),(0,c.BooleanNode)())),stats:(0,c.Opt)((0,c.ListNode)(e("statistic_predicate"))),looking_at:(0,c.Opt)(e("entity_predicate"))},{context:"player"})),o.register("status_effect_predicate",(0,c.ObjectNode)({amplifier:e("int_bounds"),duration:e("int_bounds"),ambient:(0,c.Opt)((0,c.BooleanNode)()),visible:(0,c.Opt)((0,c.BooleanNode)())},{context:"status_effect"})),o.register("distance_predicate",(0,c.ObjectNode)({x:e("float_bounds"),y:e("float_bounds"),z:e("float_bounds"),absolute:e("float_bounds"),horizontal:e("float_bounds")},{context:"distance"})),o.register("entity_predicate",(0,c.ObjectNode)({type:(0,c.Opt)(r({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:(0,c.Opt)(r({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,c.Opt)(r({validator:"team"})),location:(0,c.Opt)(e("location_predicate")),stepping_on:(0,c.Opt)(e("location_predicate")),distance:(0,c.Opt)(e("distance_predicate")),flags:(0,c.Opt)((0,c.ObjectNode)({is_on_fire:(0,c.Opt)((0,c.BooleanNode)()),is_sneaking:(0,c.Opt)((0,c.BooleanNode)()),is_sprinting:(0,c.Opt)((0,c.BooleanNode)()),is_swimming:(0,c.Opt)((0,c.BooleanNode)()),is_baby:(0,c.Opt)((0,c.BooleanNode)())})),equipment:(0,c.Opt)((0,c.MapNode)(r({enum:"slot"}),e("item_predicate"))),vehicle:(0,c.Opt)(e("entity_predicate")),passenger:(0,c.Opt)(e("entity_predicate")),targeted_entity:(0,c.Opt)(e("entity_predicate")),player:(0,c.Opt)(e("player_predicate")),lightning_bolt:(0,c.Opt)((0,c.ObjectNode)({blocks_set_on_fire:(0,c.Opt)(e("int_bounds")),entity_struck:(0,c.Opt)(e("entity_predicate"))})),fishing_hook:(0,c.Opt)((0,c.ObjectNode)({in_open_water:(0,c.Opt)((0,c.BooleanNode)())})),catType:(0,c.Opt)(r({enum:"cat_texture"})),effects:(0,c.Opt)((0,c.MapNode)(r({validator:"resource",params:{pool:"mob_effect"}}),e("status_effect_predicate")))},{context:"entity"})),o.register("damage_source_predicate",(0,c.ObjectNode)({is_explosion:(0,c.Opt)((0,c.BooleanNode)()),is_fire:(0,c.Opt)((0,c.BooleanNode)()),is_magic:(0,c.Opt)((0,c.BooleanNode)()),is_projectile:(0,c.Opt)((0,c.BooleanNode)()),is_lightning:(0,c.Opt)((0,c.BooleanNode)()),bypasses_armor:(0,c.Opt)((0,c.BooleanNode)()),bypasses_invulnerability:(0,c.Opt)((0,c.BooleanNode)()),bypasses_magic:(0,c.Opt)((0,c.BooleanNode)()),source_entity:(0,c.Opt)(e("entity_predicate")),direct_entity:(0,c.Opt)(e("entity_predicate"))},{context:"damage_source"})),o.register("damage_predicate",(0,c.ObjectNode)({dealt:e("float_bounds"),taken:e("float_bounds"),blocked:(0,c.Opt)((0,c.BooleanNode)()),source_entity:(0,c.Opt)(e("entity_predicate")),type:(0,c.Opt)(e("damage_source_predicate"))},{context:"damage"}))}ge.initPredicatesSchemas=lt;var Ne={};Object.defineProperty(Ne,"__esModule",{value:!0});Ne.initRecipeSchemas=void 0;const u=S;function mt(o,t){const e=u.Reference.bind(void 0,o),r=u.StringNode.bind(void 0,t);o.register("recipe",(0,u.Mod)((0,u.ObjectNode)({type:r({validator:"resource",params:{pool:"recipe_serializer"}}),[u.Switch]:[{push:"type"}],[u.Case]:{"minecraft:crafting_shaped":{group:(0,u.Opt)(r({enum:"recipe_group",additional:!0})),pattern:(0,u.ListNode)(r()),key:(0,u.MapNode)(r(),e("recipe_ingredient")),result:e("recipe_result")},"minecraft:crafting_shapeless":{group:(0,u.Opt)(r()),ingredients:(0,u.ListNode)(e("recipe_ingredient")),result:e("recipe_result")},"minecraft:smelting":{group:(0,u.Opt)(r()),ingredient:e("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,u.Opt)(r()),ingredient:e("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,u.Opt)(r()),ingredient:e("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,u.Opt)(r()),ingredient:e("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,u.Opt)(r()),ingredient:e("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),count:(0,u.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,u.Opt)(r()),base:e("recipe_ingredient_object"),addition:e("recipe_ingredient_object"),result:e("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),o.register("recipe_ingredient",(0,u.Mod)((0,u.ChoiceNode)([{type:"object",node:e("recipe_ingredient_object"),change:d=>d[0]},{type:"list",node:(0,u.ListNode)(e("recipe_ingredient_object")),change:d=>[d]}]),{default:()=>({item:"minecraft:stone"})})),o.register("recipe_ingredient_object",(0,u.Mod)((0,u.ObjectNode)({item:(0,u.Opt)(r({validator:"resource",params:{pool:"item"}})),tag:(0,u.Opt)(r({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),o.register("recipe_result",(0,u.Mod)((0,u.ObjectNode)({item:r({validator:"resource",params:{pool:"item"}}),count:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))}Ne.initRecipeSchemas=mt;var he={};Object.defineProperty(he,"__esModule",{value:!0});he.initTagsSchemas=void 0;const V=S;function _t(o,t){const e=V.StringNode.bind(void 0,t),r=d=>(0,V.Mod)((0,V.ObjectNode)({replace:(0,V.Opt)((0,V.BooleanNode)()),values:(0,V.ListNode)((0,V.ChoiceNode)([{type:"string",node:e({validator:"resource",params:{pool:d,allowTag:!0}}),change:n=>n.id},{type:"object",node:(0,V.ObjectNode)({id:e({validator:"resource",params:{pool:d,allowTag:!0,allowUnknown:!0}}),required:(0,V.BooleanNode)()}),change:n=>({id:n})}]))},{context:"tag"}),{default:()=>({values:[]})});o.register("block_tag",r("block")),o.register("entity_type_tag",r("entity_type")),o.register("fluid_tag",r("fluid")),o.register("function_tag",r("$function")),o.register("game_event_tag",r("game_event")),o.register("item_tag",r("item"))}he.initTagsSchemas=_t;var ye={};Object.defineProperty(ye,"__esModule",{value:!0});ye.initTextComponentSchemas=void 0;const m=S;function pt(o,t){const e=m.Reference.bind(void 0,o),r=m.StringNode.bind(void 0,t),d=a=>{var l;return a instanceof Array?d(a[0]):(l=a==null?void 0:a.text)!==null&&l!==void 0?l:typeof a=="object"?"":a==null?void 0:a.toString()};o.register("text_component",(0,m.Mod)((0,m.ChoiceNode)([{type:"object",node:e("text_component_object"),change:a=>a instanceof Array?typeof a[0]=="object"?a[0]:{text:d(a[0])}:typeof a=="object"?a:{text:d(a)}},{type:"list",node:e("text_component_list"),change:a=>[a]},{type:"string",priority:1,node:r(),change:d},{type:"number",node:(0,m.NumberNode)(),change:a=>{const l=parseFloat(d(a));return isFinite(l)?l:a?1:0}},{type:"boolean",node:(0,m.BooleanNode)(),change:a=>{const l=d(a);return l==="true"||l==="false"?l==="true":!!l}}],{context:"text_component"}),{default:()=>({text:""})}));const n={color:(0,m.Opt)(r()),font:(0,m.Opt)(r()),bold:(0,m.Opt)((0,m.BooleanNode)()),italic:(0,m.Opt)((0,m.BooleanNode)()),underlined:(0,m.Opt)((0,m.BooleanNode)()),strikethrough:(0,m.Opt)((0,m.BooleanNode)()),obfuscated:(0,m.Opt)((0,m.BooleanNode)()),insertion:(0,m.Opt)(r()),clickEvent:(0,m.Opt)((0,m.ObjectNode)({action:r({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[m.Switch]:[{push:"action"}],[m.Case]:{change_page:{value:r()},copy_to_clipboard:{value:r()},open_file:{value:r()},open_url:{value:r()},run_command:{value:r({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:r({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:(0,m.Opt)((0,m.ObjectNode)({action:r({enum:["show_text","show_item","show_entity"]}),[m.Switch]:[{push:"action"}],[m.Case]:{show_text:{value:(0,m.Opt)(e("text_component")),contents:(0,m.Opt)(e("text_component"))},show_item:{value:(0,m.Opt)(r({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:(0,m.Opt)((0,m.ObjectNode)({id:r({validator:"resource",params:{pool:"item"}}),count:(0,m.Opt)((0,m.NumberNode)({integer:!0})),tag:(0,m.Opt)(r({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:(0,m.Opt)((0,m.ObjectNode)({name:(0,m.Opt)(r()),type:(0,m.Opt)(r()),id:(0,m.Opt)(r())})),contents:(0,m.Opt)((0,m.Mod)((0,m.ObjectNode)({name:(0,m.Opt)(e("text_component")),type:r({validator:"resource",params:{pool:"entity_type"}}),id:r({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:(0,m.Opt)(e("text_component_list"))};o.register("text_component_object",(0,m.Mod)((0,m.ChoiceNode)([{type:"text",match:a=>typeof a=="object",change:a=>({text:""}),priority:-1,node:(0,m.ObjectNode)(g({text:r()},n))},{type:"translation",match:a=>(a==null?void 0:a.translate)!==void 0,change:a=>({translate:""}),node:(0,m.ObjectNode)(g({translate:r(),with:(0,m.Opt)(e("text_component_list"))},n))},{type:"score",match:a=>(a==null?void 0:a.score)!==void 0,change:a=>({score:{}}),node:(0,m.ObjectNode)(g({score:(0,m.ObjectNode)({name:r({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:r({validator:"objective"}),value:(0,m.Opt)(r())})},n))},{type:"selector",match:a=>(a==null?void 0:a.selector)!==void 0,change:a=>({selector:""}),node:(0,m.ObjectNode)(g({selector:r({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:(0,m.Opt)(e("text_component"))},n))},{type:"keybind",match:a=>(a==null?void 0:a.keybind)!==void 0,change:a=>({keybind:""}),node:(0,m.ObjectNode)(g({keybind:r({enum:"keybind",additional:!0})},n))},{type:"nbt",match:a=>(a==null?void 0:a.nbt)!==void 0,change:a=>({nbt:""}),node:(0,m.ObjectNode)(g({nbt:r({validator:"nbt_path"}),block:(0,m.Opt)(r({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,m.Opt)(r({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,m.Opt)(r({validator:"resource",params:{pool:"$storage"}})),interpret:(0,m.Opt)((0,m.BooleanNode)()),separator:(0,m.Opt)(e("text_component"))},n))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),o.register("text_component_list",(0,m.Mod)((0,m.ListNode)(e("text_component")),{default:()=>[{text:""}]}))}ye.initTextComponentSchemas=pt;var ve={},Oe={};Object.defineProperty(Oe,"__esModule",{value:!0});Oe.initBiomeSchemas=void 0;const p=S;function ut(o,t){const e=p.StringNode.bind(void 0,t);o.register("biome",(0,p.Mod)((0,p.ObjectNode)({temperature:(0,p.NumberNode)(),downfall:(0,p.NumberNode)(),precipitation:e({enum:["none","rain","snow"]}),temperature_modifier:(0,p.Opt)(e({enum:["none","frozen"]})),category:e({enum:"biome_category"}),creature_spawn_probability:(0,p.Opt)((0,p.NumberNode)({min:0,max:1})),effects:(0,p.ObjectNode)({sky_color:(0,p.NumberNode)({color:!0}),fog_color:(0,p.NumberNode)({color:!0}),water_color:(0,p.NumberNode)({color:!0}),water_fog_color:(0,p.NumberNode)({color:!0}),grass_color:(0,p.Opt)((0,p.NumberNode)({color:!0})),foliage_color:(0,p.Opt)((0,p.NumberNode)({color:!0})),grass_color_modifier:(0,p.Opt)(e({enum:["none","dark_forest","swamp"]})),ambient_sound:(0,p.Opt)(e()),mood_sound:(0,p.Opt)((0,p.ObjectNode)({sound:e(),tick_delay:(0,p.NumberNode)({integer:!0}),block_search_extent:(0,p.NumberNode)({integer:!0}),offset:(0,p.NumberNode)()})),additions_sound:(0,p.Opt)((0,p.ObjectNode)({sound:e(),tick_chance:(0,p.NumberNode)({min:0,max:1})})),music:(0,p.Opt)((0,p.ObjectNode)({sound:e(),min_delay:(0,p.NumberNode)({integer:!0,min:0}),max_delay:(0,p.NumberNode)({integer:!0,min:0}),replace_current_music:(0,p.BooleanNode)()})),particle:(0,p.Opt)((0,p.ObjectNode)({options:(0,p.ObjectNode)({type:e()}),probability:(0,p.NumberNode)({min:0,max:1})}))}),spawners:(0,p.MapNode)(e({enum:["monster","creature","ambient","axolotls","underground_water_creature","water_creature","water_ambient","misc"]}),(0,p.Mod)((0,p.ListNode)((0,p.ObjectNode)({type:e({validator:"resource",params:{pool:"entity_type"}}),weight:(0,p.NumberNode)({integer:!0}),minCount:(0,p.NumberNode)({integer:!0}),maxCount:(0,p.NumberNode)({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:(0,p.MapNode)(e({validator:"resource",params:{pool:"entity_type"}}),(0,p.Mod)((0,p.ObjectNode)({energy_budget:(0,p.NumberNode)(),charge:(0,p.NumberNode)()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:(0,p.MapNode)(e({enum:["air","liquid"]}),(0,p.Mod)((0,p.ListNode)(e({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:(0,p.ListNode)((0,p.Mod)((0,p.ListNode)(e({validator:"resource",params:{pool:"$worldgen/placed_feature"}})),{category:()=>"predicate"}),{maxLength:11})},{context:"biome"}),{default:()=>({temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))}Oe.initBiomeSchemas=ut;var ke={};Object.defineProperty(ke,"__esModule",{value:!0});ke.initCarverSchemas=void 0;const M=S,K=F;function ft(o,t){const e=M.Reference.bind(void 0,o),r=M.StringNode.bind(void 0,t),d={vertical_rotation:(0,K.FloatProvider)(),shape:(0,M.ObjectNode)({distance_factor:(0,K.FloatProvider)(),thickness:(0,K.FloatProvider)(),width_smoothness:(0,M.NumberNode)({integer:!0,min:0}),horizontal_radius_factor:(0,K.FloatProvider)(),vertical_radius_default_factor:(0,M.NumberNode)(),vertical_radius_center_factor:(0,M.NumberNode)()})},n={horizontal_radius_multiplier:(0,K.FloatProvider)(),vertical_radius_multiplier:(0,K.FloatProvider)(),floor_level:(0,K.FloatProvider)({min:-1,max:1})};o.register("configured_carver",(0,M.Mod)((0,M.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/carver"}}),config:(0,M.ObjectNode)({probability:(0,M.NumberNode)({min:0,max:1}),y:e("height_provider"),yScale:(0,K.FloatProvider)(),lava_level:e("vertical_anchor"),debug_settings:(0,M.Opt)((0,M.ObjectNode)({debug_mode:(0,M.Opt)((0,M.BooleanNode)()),air_state:(0,M.Opt)(e("block_state")),water_state:(0,M.Opt)(e("block_state")),lava_state:(0,M.Opt)(e("block_state")),barrier_state:(0,M.Opt)(e("block_state"))})),[M.Switch]:["pop",{push:"type"}],[M.Case]:{"minecraft:canyon":d,"minecraft:cave":n,"minecraft:nether_cave":n}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))}ke.initCarverSchemas=ft;var xe={};Object.defineProperty(xe,"__esModule",{value:!0});xe.initDecoratorSchemas=void 0;const C=S,ie=F;function bt(o,t){const e=C.Reference.bind(void 0,o),r=C.StringNode.bind(void 0,t);o.register("decorator",(0,C.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/placement_modifier_type"}}),[C.Switch]:[{push:"type"}],[C.Case]:{"minecraft:block_predicate_filter":{predicate:e("block_predicate_worldgen")},"minecraft:carving_mask":{step:r({enum:"generation_step"})},"minecraft:rarity_filter":{chance:(0,C.NumberNode)({integer:!0,min:0})},"minecraft:count":{count:(0,ie.IntProvider)({min:0,max:256})},"minecraft:count_on_every_layer":{count:(0,ie.IntProvider)({min:0,max:256})},"minecraft:noise_threshold_count":{noise_level:(0,C.NumberNode)(),below_noise:(0,C.NumberNode)({integer:!0}),above_noise:(0,C.NumberNode)({integer:!0})},"minecraft:noise_based_count":{noise_to_count_ratio:(0,C.NumberNode)({integer:!0}),noise_factor:(0,C.NumberNode)(),noise_offset:(0,C.Opt)((0,C.NumberNode)())},"minecraft:environment_scan":{direction_of_search:r({enum:["up","down"]}),max_steps:(0,C.NumberNode)({integer:!0,min:1,max:32}),target_condition:e("block_predicate_worldgen"),allowed_search_condition:(0,C.Opt)(e("block_predicate_worldgen"))},"minecraft:heightmap":{heightmap:r({enum:"heightmap_type"})},"minecraft:height_range":{height:e("height_provider")},"minecraft:random_offset":{xz_spread:(0,ie.IntProvider)({min:-16,max:16}),y_spread:(0,ie.IntProvider)({min:-16,max:16})},"minecraft:surface_relative_threshold_filter":{heightmap:r({enum:"heightmap_type"}),min_inclusive:(0,C.Opt)((0,C.NumberNode)({integer:!0})),max_inclusive:(0,C.Opt)((0,C.NumberNode)({integer:!0}))},"minecraft:surface_water_depth_filter":{max_water_depth:(0,C.NumberNode)({integer:!0})}}},{context:"decorator",category:"predicate"}))}xe.initDecoratorSchemas=bt;var we={},Z={};Object.defineProperty(Z,"__esModule",{value:!0});Z.initProcessorListSchemas=Z.Processors=void 0;const y=S;function gt(o,t){const e=y.Reference.bind(void 0,o),r=y.StringNode.bind(void 0,t);Z.Processors=(0,y.ChoiceNode)([{type:"string",node:r({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:n=>{}},{type:"object",node:e("processor_list"),change:n=>({processors:[{processor_type:"minecraft:nop"}]})}]),o.register("processor_list",(0,y.Mod)((0,y.ObjectNode)({processors:(0,y.ListNode)(e("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"}}]}]})})),o.register("processor",(0,y.Mod)((0,y.ObjectNode)({processor_type:r({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[y.Switch]:[{push:"processor_type"}],[y.Case]:{"minecraft:block_age":{mossiness:(0,y.NumberNode)()},"minecraft:block_ignore":{blocks:(0,y.ListNode)(e("block_state"))},"minecraft:block_rot":{integrity:(0,y.NumberNode)({min:0,max:1})},"minecraft:gravity":{heightmap:r({enum:"heightmap_type"}),offset:(0,y.NumberNode)({integer:!0})},"minecraft:protected_blocks":{value:r({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:(0,y.ListNode)(e("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"}}]})})),o.register("processor_rule",(0,y.Mod)((0,y.ObjectNode)({position_predicate:(0,y.Opt)(e("pos_rule_test")),location_predicate:e("rule_test"),input_predicate:e("rule_test"),output_state:e("block_state"),output_nbt:(0,y.Opt)(r({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 d={min_dist:(0,y.Opt)((0,y.NumberNode)({min:0,max:255,integer:!0})),max_dist:(0,y.Opt)((0,y.NumberNode)({min:0,max:255,integer:!0})),min_chance:(0,y.Opt)((0,y.NumberNode)({min:0,max:1})),max_chance:(0,y.Opt)((0,y.NumberNode)({min:0,max:1}))};o.register("pos_rule_test",(0,y.ObjectNode)({predicate_type:r({validator:"resource",params:{pool:"pos_rule_test"}}),[y.Switch]:[{push:"predicate_type"}],[y.Case]:{"minecraft:axis_aligned_linear_pos":g({axis:r({enum:["x","y","z"]})},d),"minecraft:linear_pos":d}},{context:"pos_rule_test",disableSwitchContext:!0})),o.register("rule_test",(0,y.ObjectNode)({predicate_type:r({validator:"resource",params:{pool:"rule_test"}}),[y.Switch]:[{push:"predicate_type"}],[y.Case]:{"minecraft:block_match":{block:r({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:e("block_state")},"minecraft:random_block_match":{block:r({validator:"resource",params:{pool:"block"}}),probability:(0,y.NumberNode)({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:e("block_state"),probability:(0,y.NumberNode)({min:0,max:1})},"minecraft:tag_match":{tag:r({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))}Z.initProcessorListSchemas=gt;Object.defineProperty(we,"__esModule",{value:!0});we.initFeatureSchemas=void 0;const i=S,k=F,Te=Z;function Nt(o,t){const e=i.Reference.bind(void 0,o),r=i.StringNode.bind(void 0,t),d=(0,i.ChoiceNode)([{type:"string",node:r({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:e("configured_feature")}],{choiceContext:"feature"}),n=(0,i.ChoiceNode)([{type:"string",node:r({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},{type:"object",node:e("placed_feature")}],{choiceContext:"placed_feature"}),a={tries:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1})),xz_spread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),y_spread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),feature:n},l={state:e("block_state"),radius:(0,k.IntProvider)({min:0,max:8}),half_height:(0,i.NumberNode)({integer:!0,min:0,max:4}),targets:(0,i.ListNode)(e("block_state"))},I={cap_provider:e("block_state_provider"),stem_provider:e("block_state_provider"),foliage_radius:(0,i.Opt)((0,i.NumberNode)({integer:!0}))},B=(0,i.ObjectNode)({target:e("rule_test"),state:e("block_state")}),f={size:(0,i.NumberNode)({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:(0,i.NumberNode)({min:0,max:1}),targets:(0,i.ListNode)(B)},O={surface:r({enum:"cave_surface"}),depth:(0,k.IntProvider)({min:1,max:128}),vertical_range:(0,i.NumberNode)({integer:!0,min:1,max:256}),extra_bottom_block_chance:(0,i.NumberNode)({min:0,max:1}),extra_edge_column_chance:(0,i.NumberNode)({min:0,max:1}),vegetation_chance:(0,i.NumberNode)({min:0,max:1}),xz_radius:(0,k.IntProvider)(),replaceable:r({validator:"resource",params:{pool:"$tag/block"}}),ground_state:e("block_state_provider"),vegetation_feature:n};o.register("configured_feature",(0,i.Mod)((0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/feature"}}),config:(0,i.ObjectNode)({[i.Switch]:["pop",{push:"type"}],[i.Case]:{"minecraft:bamboo":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:basalt_columns":{reach:(0,k.IntProvider)({min:0,max:3}),height:(0,k.IntProvider)({min:1,max:10})},"minecraft:block_column":{direction:r({enum:["up","down","north","east","south","west"]}),allowed_placement:e("block_predicate_worldgen"),prioritize_tip:(0,i.BooleanNode)(),layers:(0,i.ListNode)((0,i.ObjectNode)({height:(0,k.IntProvider)({min:0}),provider:e("block_state_provider")}))},"minecraft:block_pile":{state_provider:e("block_state_provider")},"minecraft:delta_feature":{contents:e("block_state"),rim:e("block_state"),size:(0,k.IntProvider)({min:0,max:16}),rim_size:(0,k.IntProvider)({min:0,max:16})},"minecraft:disk":l,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:(0,i.NumberNode)({integer:!0,min:1,max:512}),height:(0,k.IntProvider)({min:0,max:128}),radius:(0,k.IntProvider)({min:0,max:128}),max_stalagmite_stalactite_height_diff:(0,i.NumberNode)({integer:!0,min:0,max:64}),height_deviation:(0,i.NumberNode)({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:(0,k.IntProvider)({min:0,max:128}),density:(0,k.FloatProvider)({min:0,max:2}),wetness:(0,k.FloatProvider)({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:(0,i.NumberNode)({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:(0,i.NumberNode)({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:(0,i.NumberNode)({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:(0,i.BooleanNode)(),exit:(0,i.Opt)(e("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:(0,i.Opt)((0,i.BooleanNode)()),crystal_beam_target:(0,i.Opt)(e("block_pos")),spikes:(0,i.ListNode)((0,i.ObjectNode)({centerX:(0,i.Opt)((0,i.NumberNode)({integer:!0})),centerZ:(0,i.Opt)((0,i.NumberNode)({integer:!0})),radius:(0,i.Opt)((0,i.NumberNode)({integer:!0})),height:(0,i.Opt)((0,i.NumberNode)({integer:!0})),guarded:(0,i.Opt)((0,i.BooleanNode)())}))},"minecraft:fill_layer":{state:e("block_state"),height:(0,i.NumberNode)({integer:!0,min:0,max:255})},"minecraft:flower":a,"minecraft:forest_rock":{state:e("block_state")},"minecraft:fossil":{max_empty_corners_allowed:(0,i.NumberNode)({integer:!0,min:0,max:7}),fossil_structures:(0,i.ListNode)(r({validator:"resource",params:{pool:"$structure"}})),overlay_structures:(0,i.ListNode)(r({validator:"resource",params:{pool:"$structure"}})),fossil_processors:Te.Processors,overlay_processors:Te.Processors},"minecraft:geode":{blocks:(0,i.ObjectNode)({filling_provider:e("block_state_provider"),inner_layer_provider:e("block_state_provider"),alternate_inner_layer_provider:e("block_state_provider"),middle_layer_provider:e("block_state_provider"),outer_layer_provider:e("block_state_provider"),inner_placements:(0,i.ListNode)(e("block_state")),cannot_replace:r({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:r({validator:"resource",params:{pool:"$tag/block"}})}),layers:(0,i.ObjectNode)({filling:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),inner_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),middle_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),outer_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50}))}),crack:(0,i.ObjectNode)({generate_crack_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),base_crack_size:(0,i.Opt)((0,i.NumberNode)({min:0,max:5})),crack_point_offset:(0,i.Opt)((0,i.NumberNode)({min:0,max:10}))}),noise_multiplier:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),use_potential_placements_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),use_alternate_layer0_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),placements_require_layer0_alternate:(0,i.Opt)((0,i.BooleanNode)()),outer_wall_distance:(0,i.Opt)((0,k.IntProvider)({min:1,max:20})),distribution_points:(0,i.Opt)((0,k.IntProvider)({min:1,max:20})),point_offset:(0,i.Opt)((0,k.IntProvider)({min:0,max:10})),min_gen_offset:(0,i.Opt)((0,i.NumberNode)({integer:!0})),max_gen_offset:(0,i.Opt)((0,i.NumberNode)({integer:!0})),invalid_blocks_threshold:(0,i.NumberNode)({integer:!0})},"minecraft:glow_lichen":{search_range:(0,i.Opt)((0,i.NumberNode)({min:1,max:64,integer:!0})),chance_of_spreading:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),can_place_on_floor:(0,i.Opt)((0,i.BooleanNode)()),can_place_on_ceiling:(0,i.Opt)((0,i.BooleanNode)()),can_place_on_wall:(0,i.Opt)((0,i.BooleanNode)()),can_be_placed_on:(0,i.ListNode)(r({validator:"resource",params:{pool:"block"}}))},"minecraft:huge_brown_mushroom":I,"minecraft:huge_fungus":{hat_state:e("block_state"),decor_state:e("block_state"),stem_state:e("block_state"),valid_base_block:e("block_state"),planted:(0,i.Opt)((0,i.BooleanNode)())},"minecraft:huge_red_mushroom":I,"minecraft:ice_patch":l,"minecraft:iceberg":{state:e("block_state")},"minecraft:lake":{fluid:e("block_state_provider"),barrier:e("block_state_provider")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1,max:512})),column_radius:(0,k.IntProvider)({min:0,max:60}),height_scale:(0,k.FloatProvider)({min:0,max:20}),max_column_radius_to_cave_height_ratio:(0,i.NumberNode)({min:0,max:1}),stalactite_bluntness:(0,k.FloatProvider)({min:.1,max:10}),stalagmite_bluntness:(0,k.FloatProvider)({min:.1,max:10}),wind_speed:(0,k.FloatProvider)({min:0,max:2}),min_radius_for_wind:(0,i.NumberNode)({integer:!0,min:0,max:100}),min_bluntness_for_wind:(0,i.NumberNode)({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:e("block_state_provider"),spread_width:(0,i.NumberNode)({integer:!0,min:1}),spread_height:(0,i.NumberNode)({integer:!0,min:1})},"minecraft:netherrack_replace_blobs":{state:e("block_state"),target:e("block_state"),radius:(0,k.IntProvider)({min:0,max:12})},"minecraft:no_bonemeal_flower":a,"minecraft:ore":f,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_directional_spread:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_spread_radius2:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_spread_radius3:(0,i.Opt)((0,i.NumberNode)({min:0,max:1}))},"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:n,feature_true:n},"minecraft:random_selector":{features:(0,i.ListNode)((0,i.ObjectNode)({chance:(0,i.NumberNode)({min:0,max:1}),feature:n})),default:n},"minecraft:replace_single_block":{targets:(0,i.ListNode)(B)},"minecraft:root_system":{required_vertical_space_for_tree:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_radius:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_placement_attempts:(0,i.NumberNode)({integer:!0,min:1,max:256}),root_column_max_height:(0,i.NumberNode)({integer:!0,min:1,max:4096}),hanging_root_radius:(0,i.NumberNode)({integer:!0,min:1,max:64}),hanging_roots_vertical_span:(0,i.NumberNode)({integer:!0,min:0,max:16}),hanging_root_placement_attempts:(0,i.NumberNode)({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_replaceable:r({validator:"resource",params:{pool:"$tag/block"}}),root_state_provider:e("block_state_provider"),hanging_root_state_provider:e("block_state_provider"),allowed_tree_position:e("block_predicate_worldgen"),feature:n},"minecraft:scattered_ore":f,"minecraft:sea_pickle":{count:(0,k.IntProvider)({min:0,max:256})},"minecraft:seagrass":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:simple_block":{to_place:e("block_state_provider")},"minecraft:simple_random_selector":{features:(0,i.ListNode)(n)},"minecraft:spring_feature":{state:e("fluid_state"),rock_count:(0,i.NumberNode)({integer:!0}),hole_count:(0,i.NumberNode)({integer:!0}),requires_block_below:(0,i.BooleanNode)(),valid_blocks:(0,i.ListNode)(r({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:(0,i.Opt)((0,i.BooleanNode)()),force_dirt:(0,i.Opt)((0,i.BooleanNode)()),minimum_size:e("feature_size"),dirt_provider:e("block_state_provider"),trunk_provider:e("block_state_provider"),foliage_provider:e("block_state_provider"),trunk_placer:(0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:(0,i.NumberNode)({integer:!0,min:0,max:32}),height_rand_a:(0,i.NumberNode)({integer:!0,min:0,max:24}),height_rand_b:(0,i.NumberNode)({integer:!0,min:0,max:24}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:bending_trunk_placer":{bend_length:(0,k.IntProvider)({min:1,max:64}),min_height_for_leaves:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:(0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:(0,k.IntProvider)({min:0,max:16}),offset:(0,k.IntProvider)({min:0,max:16}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:blob_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:(0,k.IntProvider)({min:0,max:24})},"minecraft:pine_foliage_placer":{height:(0,k.IntProvider)({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:(0,k.IntProvider)({min:1,max:512}),leaf_placement_attempts:(0,i.NumberNode)({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:(0,k.IntProvider)({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:(0,i.ListNode)((0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:alter_ground":{provider:e("block_state_provider")},"minecraft:beehive":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:cocoa":{probability:(0,i.NumberNode)({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:twisting_vines":{spread_width:(0,i.NumberNode)({integer:!0,min:1}),spread_height:(0,i.NumberNode)({integer:!0,min:1}),max_height:(0,i.NumberNode)({integer:!0,min:1})},"minecraft:underwater_magma":{floor_search_range:(0,i.NumberNode)({integer:!0,min:0,max:512}),placement_radius_around_floor:(0,i.NumberNode)({integer:!0,min:0,max:64}),placement_probability_per_valid_position:(0,i.NumberNode)({min:0,max:1})},"minecraft:vegetation_patch":O,"minecraft:waterlogged_vegetation_patch":O}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:tree",config:{minimum_size:{type:"minecraft:two_layers_feature_size"},trunk_placer:{type:"minecraft:straight_trunk_placer",base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{type:"minecraft:blob_foliage_placer",radius:2,offset:0,height:3}}})})),o.register("placed_feature",(0,i.Mod)((0,i.ObjectNode)({feature:d,placement:(0,i.ListNode)(e("decorator"))},{context:"placed_feature"}),{default:()=>({feature:"minecraft:oak",placement:[{type:"minecraft:count",count:4},{type:"minecraft:in_square"},{type:"minecraft:heightmap",heightmap:"OCEAN_FLOOR"}]})})),o.register("feature_size",(0,i.Mod)((0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:(0,i.Opt)((0,i.NumberNode)({min:0,max:80})),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:two_layers_feature_size":{limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:81})),lower_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:80})),upper_limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:80})),lower_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),middle_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const h={seed:(0,i.NumberNode)({integer:!0}),noise:e("noise_parameters"),scale:(0,i.Mod)((0,i.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1})};o.register("block_state_provider",(0,i.Mod)((0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:dual_noise_provider":D(g({},h),{variety:(0,k.InclusiveRange)({integer:!0,min:1,max:64}),slow_noise:e("noise_parameters"),slow_scale:(0,i.Mod)((0,i.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1}),states:(0,i.ListNode)(e("block_state"))}),"minecraft:noise_threshold_provider":D(g({},h),{threshold:(0,i.NumberNode)({min:-1,max:1}),high_chance:(0,i.NumberNode)({min:0,max:1}),default_state:e("block_state"),low_states:(0,i.ListNode)(e("block_state")),high_states:(0,i.ListNode)(e("block_state"))}),"minecraft:noise_provider":D(g({},h),{states:(0,i.ListNode)(e("block_state"))}),"minecraft:randomized_int_state_provider":{property:r(),values:(0,k.IntProvider)(),source:e("block_state_provider")},"minecraft:rotated_block_provider":{state:e("block_state")},"minecraft:simple_state_provider":{state:e("block_state")},"minecraft:weighted_state_provider":{entries:(0,i.ListNode)((0,i.Mod)((0,i.ObjectNode)({weight:(0,i.NumberNode)({integer:!0,min:1}),data:e("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})}));const w={offset:(0,i.Opt)((0,i.ListNode)((0,i.NumberNode)({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))};o.register("block_predicate_worldgen",(0,i.Mod)((0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"block_predicate_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:all_of":{predicates:(0,i.ListNode)(e("block_predicate_worldgen"))},"minecraft:any_of":{predicates:(0,i.ListNode)(e("block_predicate_worldgen"))},"minecraft:has_sturdy_face":D(g({},w),{direction:r({enum:"direction"})}),"minecraft:inside_world_bounds":g({},w),"minecraft:matching_block_tag":D(g({},w),{tag:r({validator:"resource",params:{pool:"$tag/block"}})}),"minecraft:matching_blocks":D(g({},w),{blocks:(0,i.ListNode)(r({validator:"resource",params:{pool:"block"}}))}),"minecraft:matching_fluids":D(g({},w),{fluids:(0,i.ListNode)(r({validator:"resource",params:{pool:"fluid"}}))}),"minecraft:not":{predicate:e("block_predicate_worldgen")},"minecraft:would_survive":D(g({},w),{state:e("block_state")})}},{context:"block_predicate"}),{default:()=>({type:"minecraft:true"})}))}we.initFeatureSchemas=Nt;var Se={};Object.defineProperty(Se,"__esModule",{value:!0});Se.initNoiseSettingsSchemas=void 0;const _=S,ht=F;function yt(o,t){const e=_.Reference.bind(void 0,o),r=_.StringNode.bind(void 0,t);o.register("noise_settings",(0,_.Mod)((0,_.ObjectNode)({sea_level:(0,_.NumberNode)({integer:!0}),disable_mob_generation:(0,_.BooleanNode)(),noise_caves_enabled:(0,_.BooleanNode)(),noodle_caves_enabled:(0,_.BooleanNode)(),aquifers_enabled:(0,_.BooleanNode)(),ore_veins_enabled:(0,_.BooleanNode)(),legacy_random_source:(0,_.BooleanNode)(),default_block:e("block_state"),default_fluid:e("block_state"),noise:(0,_.ObjectNode)({min_y:(0,_.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,_.NumberNode)({integer:!0,min:0,max:4096}),size_horizontal:(0,_.NumberNode)({integer:!0}),size_vertical:(0,_.NumberNode)({integer:!0}),island_noise_override:(0,_.Opt)((0,_.BooleanNode)()),amplified:(0,_.Opt)((0,_.BooleanNode)()),large_biomes:(0,_.Opt)((0,_.BooleanNode)()),sampling:(0,_.ObjectNode)({xz_scale:(0,_.NumberNode)(),y_scale:(0,_.NumberNode)(),xz_factor:(0,_.NumberNode)(),y_factor:(0,_.NumberNode)()}),bottom_slide:e("noise_slider"),top_slide:e("noise_slider"),terrain_shaper:e("terrain_shaper")}),surface_rule:e("material_rule"),structures:e("generator_structures")},{context:"noise_settings"}),d=>({default:()=>ht.DefaultNoiseSettings,validate:(n,a,l,I)=>{var B,f,O,h;return a=d.validate(n,a,l,I),((B=a==null?void 0:a.noise)===null||B===void 0?void 0:B.min_y)+((f=a==null?void 0:a.noise)===null||f===void 0?void 0:f.height)>2047&&l.add(n.push("noise").push("height"),"error.min_y_plus_height",2047),((O=a==null?void 0:a.noise)===null||O===void 0?void 0:O.height)%16!==0&&l.add(n.push("noise").push("height"),"error.height_multiple",16),((h=a==null?void 0:a.noise)===null||h===void 0?void 0:h.min_y)%16!==0&&l.add(n.push("noise").push("min_y"),"error.min_y_multiple",16),a}}))),o.register("noise_slider",(0,_.ObjectNode)({target:(0,_.NumberNode)(),size:(0,_.NumberNode)({integer:!0,min:0}),offset:(0,_.NumberNode)({integer:!0})})),o.register("generator_structures",(0,_.ObjectNode)({stronghold:(0,_.Opt)((0,_.ObjectNode)({distance:(0,_.NumberNode)({integer:!0,min:0,max:1023}),spread:(0,_.NumberNode)({integer:!0,min:0,max:1023}),count:(0,_.NumberNode)({integer:!0,min:1,max:4095})})),structures:(0,_.MapNode)(r({validator:"resource",params:{pool:"worldgen/structure_feature"}}),(0,_.Mod)((0,_.ObjectNode)({spacing:(0,_.NumberNode)({integer:!0,min:0,max:4096}),separation:(0,_.Mod)((0,_.NumberNode)({integer:!0,min:0,max:4096}),d=>({validate:(n,a,l,I)=>(n.pop().push("spacing").get()<=a&&l.add(n,"error.separation_smaller_spacing"),d.validate(n,a,l,I))})),salt:(0,_.NumberNode)({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),o.register("generator_layer",(0,_.Mod)((0,_.ObjectNode)({block:r({validator:"resource",params:{pool:"block"}}),height:(0,_.NumberNode)({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})})),o.register("terrain_shaper",(0,_.Mod)((0,_.ObjectNode)({offset:e("terrain_spline"),factor:e("terrain_spline"),jaggedness:e("terrain_spline")},{context:"terrain_shaper"}),{default:()=>({offset:0,factor:0,jaggedness:0})})),o.register("terrain_spline",(0,_.Mod)((0,_.ChoiceNode)([{type:"number",node:(0,_.NumberNode)()},{type:"object",node:(0,_.ObjectNode)({coordinate:(0,_.Mod)(r({enum:["continents","erosion","weirdness","ridges"]}),{default:()=>"continents"}),points:(0,_.ListNode)((0,_.ObjectNode)({location:(0,_.NumberNode)(),derivative:(0,_.NumberNode)(),value:e("terrain_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))}Se.initNoiseSettingsSchemas=yt;var je={};Object.defineProperty(je,"__esModule",{value:!0});je.initStructureFeatureSchemas=void 0;const z=S;function vt(o,t){const e=z.StringNode.bind(void 0,t),r=z.Reference.bind(void 0,o),d={start_pool:e({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:(0,z.NumberNode)({integer:!0})};o.register("configured_structure_feature",(0,z.Mod)((0,z.ObjectNode)({type:e({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:(0,z.ObjectNode)({[z.Switch]:["pop",{push:"type"}],[z.Case]:{"minecraft:bastion_remnant":d,"minecraft:buried_treasure":{probability:(0,z.NumberNode)({min:0,max:1})},"minecraft:mineshaft":{type:e({enum:["normal","mesa"]}),probability:(0,z.NumberNode)({min:0,max:1})},"minecraft:nether_fossil":{height:r("height_provider")},"minecraft:ocean_ruin":{biome_temp:e({enum:["cold","warm"]}),large_probability:(0,z.NumberNode)({min:0,max:1}),cluster_probability:(0,z.NumberNode)({min:0,max:1})},"minecraft:pillager_outpost":d,"minecraft:ruined_portal":{portal_type:e({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:(0,z.Opt)((0,z.BooleanNode)())},"minecraft:village":d}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))}je.initStructureFeatureSchemas=vt;var Me={};Object.defineProperty(Me,"__esModule",{value:!0});Me.initSurfaceRuleSchemas=void 0;const j=S;function Ot(o,t){const e=j.StringNode.bind(void 0,t),r=j.Reference.bind(void 0,o);o.register("material_rule",(0,j.Mod)((0,j.ObjectNode)({type:e({validator:"resource",params:{pool:"worldgen/material_rule"}}),[j.Switch]:[{push:"type"}],[j.Case]:{"minecraft:block":{result_state:r("block_state")},"minecraft:condition":{if_true:r("material_condition"),then_run:r("material_rule")},"minecraft:sequence":{sequence:(0,j.ListNode)(r("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),o.register("material_condition",(0,j.Mod)((0,j.ObjectNode)({type:e({validator:"resource",params:{pool:"worldgen/material_condition"}}),[j.Switch]:[{push:"type"}],[j.Case]:{"minecraft:biome":{biome_is:(0,j.ListNode)(e({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:e({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:(0,j.NumberNode)(),max_threshold:(0,j.NumberNode)()},"minecraft:not":{invert:r("material_condition")},"minecraft:stone_depth":{offset:(0,j.NumberNode)({integer:!0}),surface_type:e({enum:"cave_surface"}),add_surface_depth:(0,j.BooleanNode)(),add_surface_secondary_depth:(0,j.BooleanNode)()},"minecraft:vertical_gradient":{random_name:e(),true_at_and_below:r("vertical_anchor"),false_at_and_above:r("vertical_anchor")},"minecraft:water":{offset:(0,j.NumberNode)({integer:!0}),surface_depth_multiplier:(0,j.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,j.BooleanNode)()},"minecraft:y_above":{anchor:r("vertical_anchor"),surface_depth_multiplier:(0,j.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,j.BooleanNode)()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))}Me.initSurfaceRuleSchemas=Ot;var Ce={};Object.defineProperty(Ce,"__esModule",{value:!0});Ce.initTemplatePoolSchemas=void 0;const T=S,qe=Z;function kt(o,t){const e=T.Reference.bind(void 0,o),r=T.StringNode.bind(void 0,t);o.register("template_pool",(0,T.Mod)((0,T.ObjectNode)({name:r(),fallback:r(),elements:(0,T.ListNode)(e("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"}}]})})),o.register("template_weighted_element",(0,T.Mod)((0,T.ObjectNode)({weight:(0,T.NumberNode)({integer:!0,min:1}),element:e("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),o.register("template_element",(0,T.Mod)((0,T.ObjectNode)({element_type:r({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:r({enum:["rigid","terrain_matching"]}),[T.Switch]:[{push:"element_type"}],[T.Case]:{"minecraft:feature_pool_element":{feature:r({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},"minecraft:legacy_single_pool_element":{location:r({validator:"resource",params:{pool:"$structure"}}),processors:qe.Processors},"minecraft:list_pool_element":{elements:(0,T.ListNode)(e("template_element"))},"minecraft:single_pool_element":{location:r({validator:"resource",params:{pool:"$structure"}}),processors:qe.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))}Ce.initTemplatePoolSchemas=kt;Object.defineProperty(ve,"__esModule",{value:!0});ve.initWorldgenSchemas=void 0;const xt=Oe,wt=ke,St=xe,jt=we,Mt=Se,Ct=Z,Pt=je,Lt=Me,Bt=Ce;function $t(o,t){(0,Ct.initProcessorListSchemas)(o,t),(0,xt.initBiomeSchemas)(o,t),(0,wt.initCarverSchemas)(o,t),(0,St.initDecoratorSchemas)(o,t),(0,jt.initFeatureSchemas)(o,t),(0,Mt.initNoiseSettingsSchemas)(o,t),(0,Pt.initStructureFeatureSchemas)(o,t),(0,Lt.initSurfaceRuleSchemas)(o,t),(0,Bt.initTemplatePoolSchemas)(o,t)}ve.initWorldgenSchemas=$t;var Pe={};Object.defineProperty(Pe,"__esModule",{value:!0});Pe.initWorldSettingsSchemas=void 0;const X=S;function zt(o,t){const e=X.Reference.bind(void 0,o),r=X.StringNode.bind(void 0,t);o.register("world_settings",(0,X.Mod)((0,X.ObjectNode)({generate_features:(0,X.BooleanNode)(),bonus_chest:(0,X.BooleanNode)(),seed:(0,X.NumberNode)({integer:!0}),dimensions:(0,X.MapNode)(r({validator:"resource",params:{pool:"$dimension"}}),e("dimension"))},{context:"world_settings"}),{default:()=>{const d=Math.floor(Math.random()*4294967296)-2147483648;return{generate_features:!0,bonus_chest:!1,seed:d,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:overworld"},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:nether"},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:the_end",seed:d},settings:"minecraft:end"}}}}}}))}Pe.initWorldSettingsSchemas=zt;Object.defineProperty(ae,"__esModule",{value:!0});ae.initSchemas=void 0;const Rt=ce,Tt=de,qt=F,It=me,Ft=_e,Dt=pe,At=ue,Et=fe,Wt=be,Ut=ge,Vt=Ne,Gt=he,Ht=ye,Kt=ve,Xt=Pe;function Zt(o,t){(0,qt.initCommonSchemas)(o,t),(0,Rt.initAdvancementSchemas)(o,t),(0,Tt.initAssetsSchemas)(o,t),(0,It.initConditionSchemas)(o,t),(0,Dt.initDimensionTypeSchemas)(o,t),(0,Ft.initDimensionSchemas)(o,t),(0,At.initItemModifierSchemas)(o,t),(0,Et.initLootTableSchemas)(o,t),(0,Wt.initPackMcmetaSchemas)(o,t),(0,Ut.initPredicatesSchemas)(o,t),(0,Vt.initRecipeSchemas)(o,t),(0,Gt.initTagsSchemas)(o,t),(0,Ht.initTextComponentSchemas)(o,t),(0,Kt.initWorldgenSchemas)(o,t),(0,Xt.initWorldSettingsSchemas)(o,t)}ae.initSchemas=Zt;var Yt=re&&re.__createBinding||(Object.create?function(o,t,e,r){r===void 0&&(r=e);var d=Object.getOwnPropertyDescriptor(t,e);(!d||("get"in d?!t.__esModule:d.writable||d.configurable))&&(d={enumerable:!0,get:function(){return t[e]}}),Object.defineProperty(o,r,d)}:function(o,t,e,r){r===void 0&&(r=e),o[r]=t[e]}),Jt=re&&re.__setModuleDefault||(Object.create?function(o,t){Object.defineProperty(o,"default",{enumerable:!0,value:t})}:function(o,t){o.default=t}),Qt=re&&re.__importStar||function(o){if(o&&o.__esModule)return o;var t={};if(o!=null)for(var e in o)e!=="default"&&Object.prototype.hasOwnProperty.call(o,e)&&Yt(t,o,e);return Jt(t,o),t};Object.defineProperty(G,"__esModule",{value:!0});var Ie=G.getSchemas=Ae=G.getCollections=De=G.lootContext=void 0;const Fe=S,er=ne,tr=ae;var De=G.lootContext=Qt(q);function rr(){const o=new Fe.CollectionRegistry;return(0,er.initCollections)(o),o}var Ae=G.getCollections=rr;function or(o){const t=new Fe.SchemaRegistry;return(0,tr.initSchemas)(t,o),t}Ie=G.getSchemas=or;var cr=He({__proto__:null,get getSchemas(){return Ie},get getCollections(){return Ae},get lootContext(){return De},default:G},[G]);export{cr as i}; -//# sourceMappingURL=index.d40edef2.js.map +var Ee=Object.defineProperty,We=Object.defineProperties;var Ue=Object.getOwnPropertyDescriptors;var Be=Object.getOwnPropertySymbols;var Ve=Object.prototype.hasOwnProperty,Ge=Object.prototype.propertyIsEnumerable;var $e=(o,t,e)=>t in o?Ee(o,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[t]=e,g=(o,t)=>{for(var e in t||(t={}))Ve.call(t,e)&&$e(o,e,t[e]);if(Be)for(var e of Be(t))Ge.call(t,e)&&$e(o,e,t[e]);return o},D=(o,t)=>We(o,Ue(t));import{l as S,c as re}from"./index.18869b2a.js";function He(o,t){return t.forEach(function(e){e&&typeof e!="string"&&!Array.isArray(e)&&Object.keys(e).forEach(function(r){if(r!=="default"&&!(r in o)){var d=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(o,r,d.get?d:{enumerable:!0,get:function(){return e[r]}})}})}),Object.freeze(Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}))}var G={},ne={};Object.defineProperty(ne,"__esModule",{value:!0});ne.initCollections=void 0;function Ke(o){o.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"]),o.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"]),o.register("slot",["mainhand","offhand","head","chest","legs","feet"]),o.register("gamemode",["survival","creative","adventure","spectator"]),o.register("entity_source",["this","killer","direct_killer","killer_player"]),o.register("copy_source",["block_entity","this","killer","killer_player"]),o.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),o.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"]),o.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"]),o.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"]),o.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mountain","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),o.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),o.register("generation_step",["air","liquid"]),o.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"]),o.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"]),o.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"]),o.register("cave_surface",["floor","ceiling"]),o.register("direction",["down","up","north","east","south","west"]),o.register("axis",["x","y","z"]),o.register("display_position",["firstperson_righthand","firstperson_lefthand","thirdperson_righthand","thirdperson_lefthand","gui","head","ground","fixed"]),o.register("gui_light",["front","side"]),o.register("item_model_predicates",["angle","blocking","broken","cast","charged","cooldown","custom_model_data","damage","damaged","firework","lefthanded","pull","pulling","throwing","time"]),o.register("cat_texture",["textures/entity/cat/tabby.png","textures/entity/cat/black.png","textures/entity/cat/red.png","textures/entity/cat/siamese.png","textures/entity/cat/british_shorthair.png","textures/entity/cat/calico.png","textures/entity/cat/persian.png","textures/entity/cat/ragdoll.png","textures/entity/cat/white.png","textures/entity/cat/jellie.png","textures/entity/cat/all_black.png"])}ne.initCollections=Ke;var ae={},ce={};Object.defineProperty(ce,"__esModule",{value:!0});ce.initAdvancementSchemas=void 0;const s=S;function Xe(o,t){const e=s.Reference.bind(void 0,o),r=s.StringNode.bind(void 0,t),d=(0,s.ChoiceNode)([{type:"object",node:(0,s.Opt)(e("entity_predicate")),change:n=>{var a,l;return(l=(a=n[0])===null||a===void 0?void 0:a.predicate)!==null&&l!==void 0?l:{}}},{type:"list",node:(0,s.ListNode)(e("condition")),change:n=>[{condition:"minecraft:entity_properties",predicate:n}]}],{context:"conditions"});o.register("advancement",(0,s.Mod)((0,s.ObjectNode)({display:(0,s.Opt)((0,s.Mod)((0,s.ObjectNode)({icon:(0,s.ObjectNode)({item:r({validator:"resource",params:{pool:"item"}}),nbt:(0,s.Opt)(r({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:e("text_component"),description:e("text_component"),background:(0,s.Opt)(r()),frame:(0,s.Opt)(r({enum:["task","challenge","goal"]})),show_toast:(0,s.Opt)((0,s.BooleanNode)()),announce_to_chat:(0,s.Opt)((0,s.BooleanNode)()),hidden:(0,s.Opt)((0,s.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,s.Opt)(r({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,s.MapNode)(r(),e("advancement_criteria")),requirements:(0,s.Opt)((0,s.ListNode)((0,s.ListNode)(r()))),rewards:(0,s.Opt)((0,s.ObjectNode)({function:(0,s.Opt)(r({validator:"resource",params:{pool:"$function"}})),loot:(0,s.Opt)((0,s.ListNode)(r({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,s.Opt)((0,s.ListNode)(r({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,s.Opt)((0,s.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),o.register("advancement_criteria",(0,s.ObjectNode)({trigger:r({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:(0,s.Opt)((0,s.ObjectNode)({player:(0,s.Mod)(d,{enabled:n=>n.pop().push("trigger").get()!=="minecraft:impossible"}),[s.Switch]:["pop",{push:"trigger"}],[s.Case]:{"minecraft:bee_nest_destroyed":{block:(0,s.Opt)(r({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,s.Opt)((0,s.NumberNode)({integer:!0})),item:(0,s.Opt)(e("item_predicate"))},"minecraft:bred_animals":{parent:d,partner:d,child:d},"minecraft:brewed_potion":{potion:(0,s.Opt)(r({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,s.Opt)(r({validator:"resource",params:{pool:"$dimension"}})),to:(0,s.Opt)(r({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:construct_beacon":{level:e("int_bounds")},"minecraft:consume_item":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:cured_zombie_villager":{villager:d,zombie:d},"minecraft:effects_changed":{effects:(0,s.Opt)((0,s.MapNode)(r({validator:"resource",params:{pool:"mob_effect"}}),(0,s.ObjectNode)({amplifier:e("int_bounds"),duration:e("int_bounds")}))),source:(0,s.Opt)(d)},"minecraft:enter_block":{block:(0,s.Opt)(r({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:e("int_bounds"),item:(0,s.Opt)(e("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,s.Opt)(e("damage_predicate"))},"minecraft:entity_killed_player":{entity:d,killing_blow:(0,s.Opt)(e("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:(0,s.Opt)(e("location_predicate")),distance:(0,s.Opt)(e("distance_predicate"))},"minecraft:filled_bucket":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:d,item:(0,s.Opt)(e("item_predicate"))},"minecraft:hero_of_the_village":{location:(0,s.Opt)(e("location_predicate"))},"minecraft:inventory_changed":{slots:(0,s.Opt)((0,s.ObjectNode)({empty:e("int_bounds"),occupied:e("int_bounds"),full:e("int_bounds")})),items:(0,s.Opt)((0,s.ListNode)(e("item_predicate")))},"minecraft:item_durability_changed":{delta:e("int_bounds"),durability:e("int_bounds"),item:(0,s.Opt)(e("item_predicate"))},"minecraft:item_used_on_block":{item:(0,s.Opt)(e("item_predicate")),location:(0,s.Opt)(e("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:e("int_bounds"),victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:levitation":{distance:(0,s.Opt)(e("distance_predicate")),duration:e("int_bounds")},"minecraft:lightning_strike":{lightning:d,bystander:d},"minecraft:location":{location:(0,s.Opt)(e("location_predicate"))},"minecraft:nether_travel":{start_position:(0,s.Opt)(e("location_predicate")),distance:(0,s.Opt)(e("distance_predicate"))},"minecraft:placed_block":{block:(0,s.Opt)(r({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,s.Opt)(e("item_predicate")),location:(0,s.Opt)(e("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:r({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:(0,s.Opt)(e("damage_predicate")),entity:d},"minecraft:player_interacted_with_entity":{item:(0,s.Opt)(e("item_predicate")),entity:d},"minecraft:player_killed_entity":{entity:d,killing_blow:(0,s.Opt)(e("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:r({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:(0,s.Opt)(e("location_predicate")),distance:(0,s.Opt)(e("distance_predicate"))},"minecraft:slept_in_bed":{location:(0,s.Opt)(e("location_predicate"))},"minecraft:slide_down_block":{block:(0,s.Opt)(r({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:summoned_entity":{entity:d},"minecraft:tame_animal":{entity:d},"minecraft:target_hit":{projectile:d,shooter:d,signal_strength:e("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:d,item:(0,s.Opt)(e("item_predicate"))},"minecraft:used_ender_eye":{distance:(0,s.Opt)(e("float_bounds"))},"minecraft:used_totem":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:using_item":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:villager_trade":{villager:d,item:(0,s.Opt)(e("item_predicate"))},"minecraft:voluntary_exile":{location:(0,s.Opt)(e("location_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))}ce.initAdvancementSchemas=Xe;var de={},se={};Object.defineProperty(se,"__esModule",{value:!0});se.initModelSchemas=void 0;const N=S;function Ze(o,t){N.Reference.bind(void 0,o);const e=N.StringNode.bind(void 0,t),r=(n,a,l)=>(0,N.ListNode)((0,N.NumberNode)({min:a,max:l}),{minLength:n,maxLength:n}),d=(0,N.ChoiceNode)([{type:"alias",match:n=>typeof n=="string"&&n.startsWith("#"),node:e(),change:n=>typeof n=="string"?`#${n}`:"#0"},{type:"reference",match:n=>typeof n=="string",node:e({validator:"resource",params:{pool:"$texture"}}),change:n=>typeof n=="string"?n.replace(/^#/,""):""}],{choiceContext:"texture"});o.register("model",(0,N.Mod)((0,N.ObjectNode)({parent:(0,N.Opt)(e({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,N.Opt)((0,N.BooleanNode)()),gui_light:(0,N.Opt)(e({enum:"gui_light"})),textures:(0,N.Opt)((0,N.MapNode)(e(),d)),elements:(0,N.Opt)((0,N.ListNode)((0,N.ObjectNode)({from:r(3,-16,32),to:r(3,-16,32),rotation:(0,N.Opt)((0,N.ObjectNode)({origin:r(3),axis:e({enum:"axis"}),angle:(0,N.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,N.Opt)((0,N.BooleanNode)())})),shade:(0,N.Opt)((0,N.BooleanNode)()),faces:(0,N.MapNode)(e({enum:"direction"}),(0,N.ObjectNode)({texture:d,uv:(0,N.Opt)(r(4)),cullface:(0,N.Opt)(e({enum:"direction"})),rotation:(0,N.Opt)((0,N.NumberNode)({integer:!0})),tintindex:(0,N.Opt)((0,N.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,N.Opt)((0,N.MapNode)(e({enum:"display_position"}),(0,N.ObjectNode)({rotation:r(3),translation:r(3,-80,80),scale:r(3,-4,4)},{context:"item_transform"}))),overrides:(0,N.Opt)((0,N.ListNode)((0,N.ObjectNode)({predicate:(0,N.MapNode)(e({enum:"item_model_predicates"}),(0,N.NumberNode)()),model:e({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))}se.initModelSchemas=Ze;var le={};Object.defineProperty(le,"__esModule",{value:!0});le.initBlockDefinitionSchemas=void 0;const x=S;function Ye(o,t){const e=x.Reference.bind(void 0,o),r=x.StringNode.bind(void 0,t);o.register("block_definition",(0,x.Mod)((0,x.ChoiceNode)([{type:"variants",match:n=>n.variants!==void 0,node:(0,x.ObjectNode)({variants:(0,x.MapNode)(r(),e("model_variant"))}),change:n=>({variants:{"":{}}})},{type:"multipart",match:n=>n.multipart!==void 0,node:(0,x.ObjectNode)({multipart:(0,x.ListNode)((0,x.ObjectNode)({when:(0,x.Opt)(e("multipart_condition")),apply:e("model_variant")}))}),change:n=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const d={model:r({validator:"resource",params:{pool:"$model"}}),x:(0,x.Opt)((0,x.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,x.Opt)((0,x.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,x.Opt)((0,x.BooleanNode)())};o.register("model_variant",(0,x.ChoiceNode)([{type:"object",node:(0,x.ObjectNode)(d),change:n=>Array.isArray(n)&&n.length>0?n[0]:{}},{type:"list",node:(0,x.ListNode)((0,x.ObjectNode)(D(g({},d),{weight:(0,x.Opt)((0,x.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:n=>[g({weight:1},n)]}],{context:"model_variant"})),o.register("multipart_condition",(0,x.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,x.MapNode)(r(),r()),change:n=>typeof n=="object"&&Array.isArray(n==null?void 0:n.OR)&&n.OR.length>0?n.OR[0]:{}},{type:"or",match:n=>typeof n=="object"&&(n==null?void 0:n.OR)!==void 0,node:(0,x.ObjectNode)({OR:(0,x.ListNode)(e("multipart_condition"))}),change:n=>({OR:[n!=null?n:{}]})}],{context:"multipart_condition"}))}le.initBlockDefinitionSchemas=Ye;Object.defineProperty(de,"__esModule",{value:!0});de.initAssetsSchemas=void 0;const Je=se,Qe=le;function et(o,t){(0,Qe.initBlockDefinitionSchemas)(o,t),(0,Je.initModelSchemas)(o,t)}de.initAssetsSchemas=et;var F={};(function(o){Object.defineProperty(o,"__esModule",{value:!0}),o.initCommonSchemas=o.InclusiveRange=o.IntProvider=o.FloatProvider=o.NoiseSettingsPresets=o.DefaultNoiseSettings=o.DimensionTypePresets=o.DefaultDimensionType=o.FunctionCases=o.ConditionCases=void 0;const t=S;o.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 e={"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}};o.DefaultNoiseSettings={bedrock_roof_position:-2147483648,bedrock_floor_position:0,sea_level:63,noise_caves_enabled:!0,deepslate_enabled:!0,ore_veins_enabled:!0,noodle_caves_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,density_factor:1,density_offset:-.51875,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:e}};function r(d,n){const a=t.StringNode.bind(void 0,n),l=t.Reference.bind(void 0,d);d.register("block_state",(0,t.Mod)((0,t.ObjectNode)({Name:a({validator:"resource",params:{pool:"block"}}),Properties:(0,t.Opt)((0,t.MapNode)(a(),a(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),d.register("fluid_state",(0,t.Mod)((0,t.ObjectNode)({Name:a({validator:"resource",params:{pool:"fluid"}}),Properties:(0,t.Opt)((0,t.MapNode)(a(),a()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),d.register("block_pos",(0,t.Mod)((0,t.ListNode)((0,t.NumberNode)({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const I=f=>(0,t.Opt)((0,t.ChoiceNode)([{type:"number",node:(0,t.NumberNode)({integer:f}),change:O=>{var h,w;return O===void 0?0:(w=(h=O.min)!==null&&h!==void 0?h:O.max)!==null&&w!==void 0?w:0}},{type:"object",node:(0,t.ObjectNode)({min:(0,t.Opt)((0,t.NumberNode)({integer:f})),max:(0,t.Opt)((0,t.NumberNode)({integer:f}))},{context:"range"}),change:O=>({min:O!=null?O:0,max:O!=null?O:0})}]));d.register("int_bounds",I(!0)),d.register("float_bounds",I()),d.register("int_range",(0,t.ChoiceNode)([{type:"object",node:(0,t.ObjectNode)({min:(0,t.Opt)(l("number_provider")),max:(0,t.Opt)(l("number_provider"))})},{type:"number",node:(0,t.NumberNode)({integer:!0})}],{context:"range"}));const B=(f,O,h,w,$,L,Y)=>{let J={};$&&Object.keys(Y[$]).forEach(E=>{J[E]=(0,t.Mod)(Y[$][E],{enabled:R=>R.push("type").get()===void 0})});const te=(0,t.ObjectNode)(g({type:(0,t.Mod)((0,t.Opt)(a({validator:"resource",params:{pool:f}})),{hidden:()=>!0}),[t.Switch]:[{push:"type"}],[t.Case]:Y},J),{context:L,disableSwitchContext:!0}),A=[{type:O,node:Y[w][h]}];return $&&A.push({type:"object",priority:-1,node:te}),Object.keys(Y).forEach(E=>{A.push({type:E,match:R=>{var Le;if("minecraft:"+((Le=R==null?void 0:R.type)===null||Le===void 0?void 0:Le.replace(/^minecraft:/,""))===E)return!0;const W=R?Object.keys(R):[];return typeof R=="object"&&((W==null?void 0:W.length)===0||(W==null?void 0:W.length)===1&&(W==null?void 0:W[0])==="type")},node:te,change:R=>({type:E})})}),(0,t.ChoiceNode)(A,{context:L,choiceContext:`${L}.type`})};d.register("number_provider",B("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:(0,t.NumberNode)()},"minecraft:uniform":{min:l("number_provider"),max:l("number_provider")},"minecraft:binomial":{n:l("number_provider"),p:l("number_provider")},"minecraft:score":{target:l("scoreboard_name_provider"),score:a({validator:"objective"}),scale:(0,t.Opt)((0,t.NumberNode)())}})),d.register("scoreboard_name_provider",B("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:(0,t.Mod)(a({enum:"entity_source"}),{default:()=>"this"})}})),d.register("nbt_provider",B("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:a({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:(0,t.Mod)(a({enum:"copy_source"}),{default:()=>"this"})}})),o.FloatProvider=f=>B("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:(0,t.NumberNode)(f)},"minecraft:uniform":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(f),max_exclusive:(0,t.NumberNode)(f)})},"minecraft:clamped_normal":{value:(0,t.ObjectNode)({min:(0,t.NumberNode)(),max:(0,t.NumberNode)(),mean:(0,t.NumberNode)(),deviation:(0,t.NumberNode)()})},"minecraft:trapezoid":{value:(0,t.ObjectNode)({min:(0,t.NumberNode)(),max:(0,t.NumberNode)(),plateau:(0,t.NumberNode)()})}}),d.register("float_provider",(0,o.FloatProvider)()),o.IntProvider=f=>B("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:(0,t.NumberNode)(g({integer:!0},f))},"minecraft:uniform":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(g({integer:!0},f)),max_inclusive:(0,t.NumberNode)(g({integer:!0},f))})},"minecraft:biased_to_bottom":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(g({integer:!0},f)),max_inclusive:(0,t.NumberNode)(g({integer:!0},f))})},"minecraft:clamped":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(g({integer:!0},f)),max_inclusive:(0,t.NumberNode)(g({integer:!0},f)),source:l("int_provider")})},"minecraft:clamped_normal":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(g({integer:!0},f)),max_inclusive:(0,t.NumberNode)(g({integer:!0},f)),mean:(0,t.NumberNode)(),deviation:(0,t.NumberNode)()})},"minecraft:weighted_list":{distribution:(0,t.ListNode)((0,t.ObjectNode)({weight:(0,t.NumberNode)({integer:!0}),data:l("int_provider")}))}}),d.register("int_provider",(0,o.IntProvider)()),d.register("vertical_anchor",(0,t.ChoiceNode)(["absolute","above_bottom","below_top"].map(f=>({type:f,match:O=>(O==null?void 0:O[f])!==void 0,change:O=>{var h,w,$;return{[f]:($=(w=(h=O.absolute)!==null&&h!==void 0?h:O.above_bottom)!==null&&w!==void 0?w:O.below_top)!==null&&$!==void 0?$:0}},node:(0,t.ObjectNode)({[f]:(0,t.NumberNode)({integer:!0,min:-2048,max:2047})})})),{context:"vertical_anchor"})),d.register("height_provider",B("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:l("vertical_anchor")},"minecraft:uniform":{min_inclusive:l("vertical_anchor"),max_inclusive:l("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:l("vertical_anchor"),max_inclusive:l("vertical_anchor"),inner:(0,t.Opt)((0,t.NumberNode)({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:l("vertical_anchor"),max_inclusive:l("vertical_anchor"),inner:(0,t.Opt)((0,t.NumberNode)({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:l("vertical_anchor"),max_inclusive:l("vertical_anchor"),plateau:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:weighted_list":{distribution:(0,t.ListNode)((0,t.ObjectNode)({weight:(0,t.NumberNode)({integer:!0}),data:l("height_provider")}))}})),o.InclusiveRange=f=>(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(f),max_inclusive:(0,t.NumberNode)(f)},{context:"range"}),d.register("noise_parameters",(0,t.Mod)((0,t.ObjectNode)({firstOctave:(0,t.NumberNode)({integer:!0}),amplitudes:(0,t.ListNode)((0,t.NumberNode)())},{context:"noise_parameters"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})})),o.ConditionCases=(f=a({enum:"entity_source"}))=>({"minecraft:alternative":{terms:(0,t.ListNode)(l("condition"))},"minecraft:block_state_property":{block:a({validator:"resource",params:{pool:"block"}}),properties:(0,t.MapNode)(a(),a(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:l("damage_source_predicate")},"minecraft:entity_properties":{entity:f,predicate:l("entity_predicate")},"minecraft:entity_scores":{entity:f,scores:(0,t.MapNode)(a({validator:"objective"}),l("int_range"))},"minecraft:inverted":{term:l("condition")},"minecraft:killed_by_player":{inverse:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:location_check":{offsetX:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetY:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetZ:(0,t.Opt)((0,t.NumberNode)({integer:!0})),predicate:l("location_predicate")},"minecraft:match_tool":{predicate:l("item_predicate")},"minecraft:random_chance":{chance:(0,t.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,t.NumberNode)({min:0,max:1}),looting_multiplier:(0,t.NumberNode)()},"minecraft:reference":{name:a({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:a({validator:"resource",params:{pool:"enchantment"}}),chances:(0,t.ListNode)((0,t.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:l("int_range"),period:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:value_check":{value:l("number_provider"),range:l("int_range")},"minecraft:weather_check":{raining:(0,t.Opt)((0,t.BooleanNode)()),thundering:(0,t.Opt)((0,t.BooleanNode)())}}),o.FunctionCases=(f,O=a({enum:"copy_source"}),h=a({enum:"entity_source"}))=>{const w={"minecraft:apply_bonus":{enchantment:a({validator:"resource",params:{pool:"enchantment"}}),formula:a({validator:"resource",params:{pool:n.get("loot_table_apply_bonus_formula")}}),parameters:(0,t.Mod)((0,t.ObjectNode)({bonusMultiplier:(0,t.Mod)((0,t.NumberNode)(),{enabled:L=>L.pop().push("formula").get()==="minecraft:uniform_bonus_count"}),extra:(0,t.Mod)((0,t.NumberNode)(),{enabled:L=>L.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"}),probability:(0,t.Mod)((0,t.NumberNode)(),{enabled:L=>L.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"})}),{enabled:L=>L.push("formula").get()!=="minecraft:ore_drops"})},"minecraft:copy_name":{source:O},"minecraft:copy_nbt":{source:l("nbt_provider"),ops:(0,t.ListNode)((0,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:(0,t.ListNode)(a({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,t.Opt)((0,t.ListNode)(a({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:l("number_provider"),treasure:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:exploration_map":{destination:(0,t.Opt)(a({enum:"map_feature"})),decoration:(0,t.Opt)(a({enum:"map_decoration"})),zoom:(0,t.Opt)((0,t.NumberNode)({integer:!0})),search_radius:(0,t.Opt)((0,t.NumberNode)({integer:!0})),skip_existing_chunks:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:fill_player_head":{entity:h},"minecraft:limit_count":{limit:l("int_range")},"minecraft:looting_enchant":{count:l("number_provider"),limit:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,t.ListNode)(l("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:(0,t.ListNode)((0,t.ObjectNode)({pattern:a({enum:"banner_pattern"}),color:a({enum:"dye_color"})})),append:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_contents":{type:a({validator:"resource",params:{pool:"block_entity_type"}}),entries:(0,t.ListNode)(l("loot_entry"))},"minecraft:set_count":{count:l("number_provider"),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_damage":{damage:l("number_provider"),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_enchantments":{enchantments:(0,t.MapNode)(a({validator:"resource",params:{pool:"enchantment"}}),l("number_provider")),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_loot_table":{type:a({validator:"resource",params:{pool:"block_entity_type"}}),name:a({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,t.Opt)(h),lore:(0,t.ListNode)(l("text_component")),replace:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_name":{entity:(0,t.Opt)(h),name:(0,t.Opt)(l("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:(0,t.Opt)((0,t.ListNode)((0,t.ObjectNode)({type:a({validator:"resource",params:{pool:"mob_effect"}}),duration:l("number_provider")})))}},$={};return n.get("loot_function_type").forEach(L=>{$[L]=g(g({},w[L]),f)}),$},o.DimensionTypePresets=f=>(0,t.ObjectOrPreset)(a({validator:"resource",params:{pool:"$dimension_type"}}),f,{"minecraft:overworld":o.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}}),o.NoiseSettingsPresets=f=>(0,t.ObjectOrPreset)(a({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),f,{"minecraft:overworld":o.DefaultNoiseSettings,"minecraft:nether":{bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:netherrack"},default_fluid:{Properties:{level:"0"},Name:"minecraft:lava"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,density_factor:0,density_offset:-.030078125,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{structures:e}},"minecraft:end":{bedrock_roof_position:-2147483648,bedrock_floor_position:-2147483648,sea_level:0,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,density_factor:0,density_offset:0,island_noise_override:!0,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{structures:e}},"minecraft:amplified":{bedrock_roof_position:-2147483648,bedrock_floor_position:0,sea_level:63,noise_caves_enabled:!0,deepslate_enabled:!0,ore_veins_enabled:!0,noodle_caves_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,density_factor:1,density_offset:-.51875,amplified:!0,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:e}},"minecraft:caves":{bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,density_factor:0,density_offset:-.030078125,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:e}},"minecraft:floating_islands":{bedrock_roof_position:-2147483648,bedrock_floor_position:-2147483648,sea_level:0,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,density_factor:0,density_offset:0,island_noise_override:!0,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:e}}})}o.initCommonSchemas=r})(F);var me={};Object.defineProperty(me,"__esModule",{value:!0});me.initConditionSchemas=void 0;const Q=S,tt=F;function rt(o,t){const e=Q.Reference.bind(void 0,o),r=Q.StringNode.bind(void 0,t);o.register("predicate",(0,Q.ObjectOrList)(e("condition"),{choiceContext:"condition"})),o.register("condition",(0,Q.Mod)((0,Q.ObjectNode)({condition:r({validator:"resource",params:{pool:"loot_condition_type"}}),[Q.Switch]:[{push:"condition"}],[Q.Case]:(0,tt.ConditionCases)()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))}me.initConditionSchemas=rt;var _e={};Object.defineProperty(_e,"__esModule",{value:!0});_e.initDimensionSchemas=void 0;const v=S,ze=F;function ot(o,t){const e=v.Reference.bind(void 0,o),r=v.StringNode.bind(void 0,t);o.register("dimension",(0,v.Mod)((0,v.ObjectNode)({type:(0,ze.DimensionTypePresets)(e("dimension_type")),generator:(0,v.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[v.Switch]:[{push:"type"}],[v.Case]:{"minecraft:noise":{seed:(0,v.NumberNode)({integer:!0}),settings:(0,ze.NoiseSettingsPresets)(e("noise_settings")),biome_source:(0,v.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/biome_source"}}),[v.Switch]:[{push:"type"}],[v.Case]:{"minecraft:fixed":{biome:r({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:(0,v.Opt)(r({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:(0,v.Mod)((0,v.ListNode)(e("generator_biome")),{enabled:n=>n.push("preset").get()===void 0,default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:(0,v.Opt)((0,v.NumberNode)({integer:!0,min:0,max:62})),biomes:(0,v.ListNode)(r({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:(0,v.NumberNode)({integer:!0})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:(0,v.ObjectNode)({biome:(0,v.Opt)(r({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:(0,v.Opt)((0,v.BooleanNode)()),features:(0,v.Opt)((0,v.BooleanNode)()),layers:(0,v.ListNode)(e("generator_layer")),structures:e("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const n=Math.floor(Math.random()*4294967296)-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:n,biome_source:{type:"minecraft:fixed",seed:n,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}}));const d=(0,v.ChoiceNode)([{type:"number",node:(0,v.NumberNode)({min:-2,max:2}),change:n=>{var a;return(a=n[0])!==null&&a!==void 0?a:0}},{type:"list",node:(0,v.ListNode)((0,v.NumberNode)({min:-2,max:2}),{minLength:2,maxLength:2}),change:n=>[n!=null?n:0,n!=null?n:0]}]);o.register("generator_biome",(0,v.Mod)((0,v.ObjectNode)({biome:r({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:(0,v.ObjectNode)({temperature:d,humidity:d,continentalness:d,erosion:d,weirdness:d,depth:d,offset:(0,v.NumberNode)({min:0,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})}))}_e.initDimensionSchemas=ot;var pe={};Object.defineProperty(pe,"__esModule",{value:!0});pe.initDimensionTypeSchemas=void 0;const P=S,it=F;function nt(o,t){const e=P.StringNode.bind(void 0,t);o.register("dimension_type",(0,P.Mod)((0,P.ObjectNode)({ultrawarm:(0,P.BooleanNode)(),natural:(0,P.BooleanNode)(),piglin_safe:(0,P.BooleanNode)(),respawn_anchor_works:(0,P.BooleanNode)(),bed_works:(0,P.BooleanNode)(),has_raids:(0,P.BooleanNode)(),has_skylight:(0,P.BooleanNode)(),has_ceiling:(0,P.BooleanNode)(),coordinate_scale:(0,P.NumberNode)({min:1e-5,max:3e7}),ambient_light:(0,P.NumberNode)(),fixed_time:(0,P.Opt)((0,P.NumberNode)({integer:!0})),logical_height:(0,P.NumberNode)({integer:!0,min:0,max:4096}),effects:(0,P.Opt)(e({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:e({validator:"resource",params:{pool:"$tag/block"}}),min_y:(0,P.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,P.NumberNode)({integer:!0,min:0,max:4096})},{context:"dimension_type"}),r=>({default:()=>it.DefaultDimensionType,validate:(d,n,a,l)=>(n=r.validate(d,n,a,l),(n==null?void 0:n.min_y)+(n==null?void 0:n.height)>2047&&a.add(d.push("height"),"error.min_y_plus_height",2047),(n==null?void 0:n.logical_height)>(n==null?void 0:n.height)&&a.add(d.push("logical_height"),"error.logical_height"),(n==null?void 0:n.height)%16!==0&&a.add(d.push("height"),"error.height_multiple",16),(n==null?void 0:n.min_y)%16!==0&&a.add(d.push("min_y"),"error.min_y_multiple",16),n)})))}pe.initDimensionTypeSchemas=nt;var ue={};Object.defineProperty(ue,"__esModule",{value:!0});ue.initItemModifierSchemas=void 0;const U=S,at=F;function ct(o,t){const e=U.Reference.bind(void 0,o),r=U.StringNode.bind(void 0,t);o.register("item_modifier",(0,U.ObjectOrList)(e("function"),{choiceContext:"function"}));const d={conditions:(0,U.Opt)((0,U.ListNode)(e("condition")))};o.register("function",(0,U.Mod)((0,U.ObjectNode)({function:r({validator:"resource",params:{pool:"loot_function_type"}}),[U.Switch]:[{push:"function"}],[U.Case]:(0,at.FunctionCases)(d)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))}ue.initItemModifierSchemas=ct;var fe={},q={};Object.defineProperty(q,"__esModule",{value:!0});q.LootFunctions=q.LootConditions=q.LootCopySources=q.LootEntitySources=q.LootTableTypes=void 0;q.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]}]]);q.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]);q.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]);q.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",[]]]);q.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(fe,"__esModule",{value:!0});fe.initLootTableSchemas=void 0;const b=S,oe=q,Re=F;function dt(o,t){const e=b.Reference.bind(void 0,o),r=b.StringNode.bind(void 0,t),d={conditions:(0,b.Opt)((0,b.ListNode)(e("loot_condition")))},n=g({functions:(0,b.Opt)((0,b.ListNode)(e("loot_function")))},d);function a(h,w,$){const L=[],Y=J=>t.get(w).filter(te=>{var A;return((A=h.get(te))!==null&&A!==void 0?A:[]).every(R=>J.includes(R))});for(const[J,{allows:te,requires:A}]of oe.LootTableTypes){const E=[...te,...A];L.push({match:R=>R.getModel().get(new b.Path(["type"]))===J,node:$(Y(E))})}return L.push({match:J=>!0,node:$(w)}),(0,b.SwitchNode)(L)}const l=a(oe.LootConditions,"loot_condition_type",h=>r({validator:"resource",params:{pool:h instanceof Array?h:"loot_condition_type"}})),I=a(oe.LootFunctions,"loot_function_type",h=>r({validator:"resource",params:{pool:h instanceof Array?h:"loot_function_type"}})),B=a(oe.LootEntitySources,"entity_source",h=>r({enum:h})),f=a(oe.LootCopySources,"copy_source",h=>r({enum:h}));o.register("loot_table",(0,b.Mod)((0,b.ObjectNode)({type:(0,b.Opt)(r({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:(0,b.Opt)((0,b.ListNode)((0,b.Mod)((0,b.ObjectNode)(g({rolls:e("number_provider"),bonus_rolls:(0,b.Opt)(e("number_provider")),entries:(0,b.ListNode)(e("loot_entry"))},n),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,b.Opt)((0,b.ListNode)(e("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const O={enabled:h=>{var w;return((w=h.pop().get())===null||w===void 0?void 0:w.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(h.push("type").get())}};o.register("loot_entry",(0,b.Mod)((0,b.ObjectNode)({type:r({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,b.Opt)((0,b.Mod)((0,b.NumberNode)({integer:!0,min:1}),O)),quality:(0,b.Opt)((0,b.Mod)((0,b.NumberNode)({integer:!0}),O)),[b.Switch]:[{push:"type"}],[b.Case]:{"minecraft:alternatives":g({children:(0,b.ListNode)(e("loot_entry"))},n),"minecraft:dynamic":g({name:r()},n),"minecraft:group":g({children:(0,b.ListNode)(e("loot_entry"))},n),"minecraft:item":g({name:r({validator:"resource",params:{pool:"item"}})},n),"minecraft:loot_table":g({name:r({validator:"resource",params:{pool:"$loot_table"}})},n),"minecraft:sequence":g({children:(0,b.ListNode)(e("loot_entry"))},n),"minecraft:tag":g({name:r({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,b.Opt)((0,b.BooleanNode)())},n)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),o.register("loot_function",(0,b.Mod)((0,b.ObjectNode)({function:I,[b.Switch]:[{push:"function"}],[b.Case]:(0,Re.FunctionCases)(d,f,B)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),o.register("loot_condition",(0,b.Mod)((0,b.ObjectNode)({condition:l,[b.Switch]:[{push:"condition"}],[b.Case]:(0,Re.ConditionCases)(B)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),o.register("attribute_modifier",(0,b.Mod)((0,b.ObjectNode)({attribute:r({validator:"resource",params:{pool:"attribute"}}),name:r(),amount:e("number_provider"),operation:r({enum:["addition","multiply_base","multiply_total"]}),slot:(0,b.StringOrList)(r({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))}fe.initLootTableSchemas=dt;var be={};Object.defineProperty(be,"__esModule",{value:!0});be.initPackMcmetaSchemas=void 0;const ee=S,H=8;function st(o,t){o.register("pack_mcmeta",(0,ee.Mod)((0,ee.ObjectNode)({pack:(0,ee.Mod)((0,ee.ObjectNode)({pack_format:(0,ee.Mod)((0,ee.NumberNode)({integer:!0,min:H,max:H}),{default:()=>H,canUpdate:(e,r)=>r!==H,update:()=>[{name:"pack_format",params:[H],newValue:H}]}),description:(0,ee.Reference)(o,"text_component")}),{default:()=>({pack_format:H,description:""})})}),{default:()=>({pack:{pack_format:H,description:""}})}))}be.initPackMcmetaSchemas=st;var ge={};Object.defineProperty(ge,"__esModule",{value:!0});ge.initPredicatesSchemas=void 0;const c=S;function lt(o,t){const e=c.Reference.bind(void 0,o),r=c.StringNode.bind(void 0,t),d=(0,c.ChoiceNode)([{type:"string",node:r(),change:n=>typeof n=="boolean"||typeof n=="number"?n.toString():""},{type:"number",node:(0,c.NumberNode)(),change:n=>typeof n=="string"?parseInt(n):0},{type:"object",node:(0,c.ObjectNode)({min:(0,c.Opt)((0,c.NumberNode)({integer:!0})),max:(0,c.Opt)((0,c.NumberNode)({integer:!0}))}),change:n=>typeof n=="number"?{min:n,max:n}:{}},{type:"boolean",node:(0,c.BooleanNode)(),change:n=>n==="true"||n===1}]);o.register("item_predicate",(0,c.ObjectNode)({items:(0,c.Opt)((0,c.ListNode)(r({validator:"resource",params:{pool:"item"}}))),tag:(0,c.Opt)(r({validator:"resource",params:{pool:"$tag/item"}})),count:e("int_bounds"),durability:e("int_bounds"),potion:(0,c.Opt)(r({validator:"resource",params:{pool:"potion"}})),nbt:(0,c.Opt)(r({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,c.Opt)((0,c.ListNode)(e("enchantment_predicate")))},{context:"item"})),o.register("enchantment_predicate",(0,c.ObjectNode)({enchantment:(0,c.Opt)(r({validator:"resource",params:{pool:"enchantment"}})),levels:e("int_bounds")},{context:"enchantment"})),o.register("block_predicate",(0,c.ObjectNode)({blocks:(0,c.Opt)((0,c.ListNode)(r({validator:"resource",params:{pool:"block"}}))),tag:(0,c.Opt)(r({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,c.Opt)(r({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,c.Opt)((0,c.MapNode)(r(),d,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),o.register("fluid_predicate",(0,c.ObjectNode)({fluid:(0,c.Opt)(r({validator:"resource",params:{pool:"fluid"}})),tag:(0,c.Opt)(r({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,c.Opt)((0,c.MapNode)(r(),d))},{context:"fluid"})),o.register("location_predicate",(0,c.ObjectNode)({position:(0,c.Opt)((0,c.ObjectNode)({x:e("float_bounds"),y:e("float_bounds"),z:e("float_bounds")})),biome:(0,c.Opt)(r({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:(0,c.Opt)(r({enum:t.get("worldgen/structure_feature").map(n=>n.slice(10))})),dimension:(0,c.Opt)(r({validator:"resource",params:{pool:"$dimension"}})),light:(0,c.Opt)((0,c.ObjectNode)({light:e("int_bounds")})),smokey:(0,c.Opt)((0,c.BooleanNode)()),block:(0,c.Opt)(e("block_predicate")),fluid:(0,c.Opt)(e("fluid_predicate"))},{context:"location"})),o.register("statistic_predicate",(0,c.ObjectNode)({type:r({validator:"resource",params:{pool:"stat_type"}}),stat:r(),value:e("int_bounds"),[c.Switch]:[{push:"type"}],[c.Case]:{"minecraft:mined":{stat:r({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:r({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:r({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:r({validator:"resource",params:{pool:"custom_stat"}})}}})),o.register("player_predicate",(0,c.ObjectNode)({gamemode:(0,c.Opt)(r({enum:"gamemode"})),level:e("int_bounds"),advancements:(0,c.Opt)((0,c.MapNode)(r({validator:"resource",params:{pool:"$advancement"}}),(0,c.ChoiceNode)([{type:"boolean",node:(0,c.BooleanNode)(),change:n=>!0},{type:"object",node:(0,c.MapNode)(r(),(0,c.BooleanNode)())}]))),recipes:(0,c.Opt)((0,c.MapNode)(r({validator:"resource",params:{pool:"$recipe"}}),(0,c.BooleanNode)())),stats:(0,c.Opt)((0,c.ListNode)(e("statistic_predicate"))),looking_at:(0,c.Opt)(e("entity_predicate"))},{context:"player"})),o.register("status_effect_predicate",(0,c.ObjectNode)({amplifier:e("int_bounds"),duration:e("int_bounds"),ambient:(0,c.Opt)((0,c.BooleanNode)()),visible:(0,c.Opt)((0,c.BooleanNode)())},{context:"status_effect"})),o.register("distance_predicate",(0,c.ObjectNode)({x:e("float_bounds"),y:e("float_bounds"),z:e("float_bounds"),absolute:e("float_bounds"),horizontal:e("float_bounds")},{context:"distance"})),o.register("entity_predicate",(0,c.ObjectNode)({type:(0,c.Opt)(r({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:(0,c.Opt)(r({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,c.Opt)(r({validator:"team"})),location:(0,c.Opt)(e("location_predicate")),stepping_on:(0,c.Opt)(e("location_predicate")),distance:(0,c.Opt)(e("distance_predicate")),flags:(0,c.Opt)((0,c.ObjectNode)({is_on_fire:(0,c.Opt)((0,c.BooleanNode)()),is_sneaking:(0,c.Opt)((0,c.BooleanNode)()),is_sprinting:(0,c.Opt)((0,c.BooleanNode)()),is_swimming:(0,c.Opt)((0,c.BooleanNode)()),is_baby:(0,c.Opt)((0,c.BooleanNode)())})),equipment:(0,c.Opt)((0,c.MapNode)(r({enum:"slot"}),e("item_predicate"))),vehicle:(0,c.Opt)(e("entity_predicate")),passenger:(0,c.Opt)(e("entity_predicate")),targeted_entity:(0,c.Opt)(e("entity_predicate")),player:(0,c.Opt)(e("player_predicate")),lightning_bolt:(0,c.Opt)((0,c.ObjectNode)({blocks_set_on_fire:(0,c.Opt)(e("int_bounds")),entity_struck:(0,c.Opt)(e("entity_predicate"))})),fishing_hook:(0,c.Opt)((0,c.ObjectNode)({in_open_water:(0,c.Opt)((0,c.BooleanNode)())})),catType:(0,c.Opt)(r({enum:"cat_texture"})),effects:(0,c.Opt)((0,c.MapNode)(r({validator:"resource",params:{pool:"mob_effect"}}),e("status_effect_predicate")))},{context:"entity"})),o.register("damage_source_predicate",(0,c.ObjectNode)({is_explosion:(0,c.Opt)((0,c.BooleanNode)()),is_fire:(0,c.Opt)((0,c.BooleanNode)()),is_magic:(0,c.Opt)((0,c.BooleanNode)()),is_projectile:(0,c.Opt)((0,c.BooleanNode)()),is_lightning:(0,c.Opt)((0,c.BooleanNode)()),bypasses_armor:(0,c.Opt)((0,c.BooleanNode)()),bypasses_invulnerability:(0,c.Opt)((0,c.BooleanNode)()),bypasses_magic:(0,c.Opt)((0,c.BooleanNode)()),source_entity:(0,c.Opt)(e("entity_predicate")),direct_entity:(0,c.Opt)(e("entity_predicate"))},{context:"damage_source"})),o.register("damage_predicate",(0,c.ObjectNode)({dealt:e("float_bounds"),taken:e("float_bounds"),blocked:(0,c.Opt)((0,c.BooleanNode)()),source_entity:(0,c.Opt)(e("entity_predicate")),type:(0,c.Opt)(e("damage_source_predicate"))},{context:"damage"}))}ge.initPredicatesSchemas=lt;var Ne={};Object.defineProperty(Ne,"__esModule",{value:!0});Ne.initRecipeSchemas=void 0;const u=S;function mt(o,t){const e=u.Reference.bind(void 0,o),r=u.StringNode.bind(void 0,t);o.register("recipe",(0,u.Mod)((0,u.ObjectNode)({type:r({validator:"resource",params:{pool:"recipe_serializer"}}),[u.Switch]:[{push:"type"}],[u.Case]:{"minecraft:crafting_shaped":{group:(0,u.Opt)(r({enum:"recipe_group",additional:!0})),pattern:(0,u.ListNode)(r()),key:(0,u.MapNode)(r(),e("recipe_ingredient")),result:e("recipe_result")},"minecraft:crafting_shapeless":{group:(0,u.Opt)(r()),ingredients:(0,u.ListNode)(e("recipe_ingredient")),result:e("recipe_result")},"minecraft:smelting":{group:(0,u.Opt)(r()),ingredient:e("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,u.Opt)(r()),ingredient:e("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,u.Opt)(r()),ingredient:e("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,u.Opt)(r()),ingredient:e("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,u.Opt)(r()),ingredient:e("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),count:(0,u.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,u.Opt)(r()),base:e("recipe_ingredient_object"),addition:e("recipe_ingredient_object"),result:e("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),o.register("recipe_ingredient",(0,u.Mod)((0,u.ChoiceNode)([{type:"object",node:e("recipe_ingredient_object"),change:d=>d[0]},{type:"list",node:(0,u.ListNode)(e("recipe_ingredient_object")),change:d=>[d]}]),{default:()=>({item:"minecraft:stone"})})),o.register("recipe_ingredient_object",(0,u.Mod)((0,u.ObjectNode)({item:(0,u.Opt)(r({validator:"resource",params:{pool:"item"}})),tag:(0,u.Opt)(r({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),o.register("recipe_result",(0,u.Mod)((0,u.ObjectNode)({item:r({validator:"resource",params:{pool:"item"}}),count:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))}Ne.initRecipeSchemas=mt;var he={};Object.defineProperty(he,"__esModule",{value:!0});he.initTagsSchemas=void 0;const V=S;function _t(o,t){const e=V.StringNode.bind(void 0,t),r=d=>(0,V.Mod)((0,V.ObjectNode)({replace:(0,V.Opt)((0,V.BooleanNode)()),values:(0,V.ListNode)((0,V.ChoiceNode)([{type:"string",node:e({validator:"resource",params:{pool:d,allowTag:!0}}),change:n=>n.id},{type:"object",node:(0,V.ObjectNode)({id:e({validator:"resource",params:{pool:d,allowTag:!0,allowUnknown:!0}}),required:(0,V.BooleanNode)()}),change:n=>({id:n})}]))},{context:"tag"}),{default:()=>({values:[]})});o.register("block_tag",r("block")),o.register("entity_type_tag",r("entity_type")),o.register("fluid_tag",r("fluid")),o.register("function_tag",r("$function")),o.register("game_event_tag",r("game_event")),o.register("item_tag",r("item"))}he.initTagsSchemas=_t;var ye={};Object.defineProperty(ye,"__esModule",{value:!0});ye.initTextComponentSchemas=void 0;const m=S;function pt(o,t){const e=m.Reference.bind(void 0,o),r=m.StringNode.bind(void 0,t),d=a=>{var l;return a instanceof Array?d(a[0]):(l=a==null?void 0:a.text)!==null&&l!==void 0?l:typeof a=="object"?"":a==null?void 0:a.toString()};o.register("text_component",(0,m.Mod)((0,m.ChoiceNode)([{type:"object",node:e("text_component_object"),change:a=>a instanceof Array?typeof a[0]=="object"?a[0]:{text:d(a[0])}:typeof a=="object"?a:{text:d(a)}},{type:"list",node:e("text_component_list"),change:a=>[a]},{type:"string",priority:1,node:r(),change:d},{type:"number",node:(0,m.NumberNode)(),change:a=>{const l=parseFloat(d(a));return isFinite(l)?l:a?1:0}},{type:"boolean",node:(0,m.BooleanNode)(),change:a=>{const l=d(a);return l==="true"||l==="false"?l==="true":!!l}}],{context:"text_component"}),{default:()=>({text:""})}));const n={color:(0,m.Opt)(r()),font:(0,m.Opt)(r()),bold:(0,m.Opt)((0,m.BooleanNode)()),italic:(0,m.Opt)((0,m.BooleanNode)()),underlined:(0,m.Opt)((0,m.BooleanNode)()),strikethrough:(0,m.Opt)((0,m.BooleanNode)()),obfuscated:(0,m.Opt)((0,m.BooleanNode)()),insertion:(0,m.Opt)(r()),clickEvent:(0,m.Opt)((0,m.ObjectNode)({action:r({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[m.Switch]:[{push:"action"}],[m.Case]:{change_page:{value:r()},copy_to_clipboard:{value:r()},open_file:{value:r()},open_url:{value:r()},run_command:{value:r({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:r({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:(0,m.Opt)((0,m.ObjectNode)({action:r({enum:["show_text","show_item","show_entity"]}),[m.Switch]:[{push:"action"}],[m.Case]:{show_text:{value:(0,m.Opt)(e("text_component")),contents:(0,m.Opt)(e("text_component"))},show_item:{value:(0,m.Opt)(r({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:(0,m.Opt)((0,m.ObjectNode)({id:r({validator:"resource",params:{pool:"item"}}),count:(0,m.Opt)((0,m.NumberNode)({integer:!0})),tag:(0,m.Opt)(r({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:(0,m.Opt)((0,m.ObjectNode)({name:(0,m.Opt)(r()),type:(0,m.Opt)(r()),id:(0,m.Opt)(r())})),contents:(0,m.Opt)((0,m.Mod)((0,m.ObjectNode)({name:(0,m.Opt)(e("text_component")),type:r({validator:"resource",params:{pool:"entity_type"}}),id:r({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:(0,m.Opt)(e("text_component_list"))};o.register("text_component_object",(0,m.Mod)((0,m.ChoiceNode)([{type:"text",match:a=>typeof a=="object",change:a=>({text:""}),priority:-1,node:(0,m.ObjectNode)(g({text:r()},n))},{type:"translation",match:a=>(a==null?void 0:a.translate)!==void 0,change:a=>({translate:""}),node:(0,m.ObjectNode)(g({translate:r(),with:(0,m.Opt)(e("text_component_list"))},n))},{type:"score",match:a=>(a==null?void 0:a.score)!==void 0,change:a=>({score:{}}),node:(0,m.ObjectNode)(g({score:(0,m.ObjectNode)({name:r({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:r({validator:"objective"}),value:(0,m.Opt)(r())})},n))},{type:"selector",match:a=>(a==null?void 0:a.selector)!==void 0,change:a=>({selector:""}),node:(0,m.ObjectNode)(g({selector:r({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:(0,m.Opt)(e("text_component"))},n))},{type:"keybind",match:a=>(a==null?void 0:a.keybind)!==void 0,change:a=>({keybind:""}),node:(0,m.ObjectNode)(g({keybind:r({enum:"keybind",additional:!0})},n))},{type:"nbt",match:a=>(a==null?void 0:a.nbt)!==void 0,change:a=>({nbt:""}),node:(0,m.ObjectNode)(g({nbt:r({validator:"nbt_path"}),block:(0,m.Opt)(r({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,m.Opt)(r({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,m.Opt)(r({validator:"resource",params:{pool:"$storage"}})),interpret:(0,m.Opt)((0,m.BooleanNode)()),separator:(0,m.Opt)(e("text_component"))},n))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),o.register("text_component_list",(0,m.Mod)((0,m.ListNode)(e("text_component")),{default:()=>[{text:""}]}))}ye.initTextComponentSchemas=pt;var ve={},Oe={};Object.defineProperty(Oe,"__esModule",{value:!0});Oe.initBiomeSchemas=void 0;const p=S;function ut(o,t){const e=p.StringNode.bind(void 0,t);o.register("biome",(0,p.Mod)((0,p.ObjectNode)({temperature:(0,p.NumberNode)(),downfall:(0,p.NumberNode)(),precipitation:e({enum:["none","rain","snow"]}),temperature_modifier:(0,p.Opt)(e({enum:["none","frozen"]})),category:e({enum:"biome_category"}),creature_spawn_probability:(0,p.Opt)((0,p.NumberNode)({min:0,max:1})),effects:(0,p.ObjectNode)({sky_color:(0,p.NumberNode)({color:!0}),fog_color:(0,p.NumberNode)({color:!0}),water_color:(0,p.NumberNode)({color:!0}),water_fog_color:(0,p.NumberNode)({color:!0}),grass_color:(0,p.Opt)((0,p.NumberNode)({color:!0})),foliage_color:(0,p.Opt)((0,p.NumberNode)({color:!0})),grass_color_modifier:(0,p.Opt)(e({enum:["none","dark_forest","swamp"]})),ambient_sound:(0,p.Opt)(e()),mood_sound:(0,p.Opt)((0,p.ObjectNode)({sound:e(),tick_delay:(0,p.NumberNode)({integer:!0}),block_search_extent:(0,p.NumberNode)({integer:!0}),offset:(0,p.NumberNode)()})),additions_sound:(0,p.Opt)((0,p.ObjectNode)({sound:e(),tick_chance:(0,p.NumberNode)({min:0,max:1})})),music:(0,p.Opt)((0,p.ObjectNode)({sound:e(),min_delay:(0,p.NumberNode)({integer:!0,min:0}),max_delay:(0,p.NumberNode)({integer:!0,min:0}),replace_current_music:(0,p.BooleanNode)()})),particle:(0,p.Opt)((0,p.ObjectNode)({options:(0,p.ObjectNode)({type:e()}),probability:(0,p.NumberNode)({min:0,max:1})}))}),spawners:(0,p.MapNode)(e({enum:["monster","creature","ambient","axolotls","underground_water_creature","water_creature","water_ambient","misc"]}),(0,p.Mod)((0,p.ListNode)((0,p.ObjectNode)({type:e({validator:"resource",params:{pool:"entity_type"}}),weight:(0,p.NumberNode)({integer:!0}),minCount:(0,p.NumberNode)({integer:!0}),maxCount:(0,p.NumberNode)({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:(0,p.MapNode)(e({validator:"resource",params:{pool:"entity_type"}}),(0,p.Mod)((0,p.ObjectNode)({energy_budget:(0,p.NumberNode)(),charge:(0,p.NumberNode)()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:(0,p.MapNode)(e({enum:["air","liquid"]}),(0,p.Mod)((0,p.ListNode)(e({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:(0,p.ListNode)((0,p.Mod)((0,p.ListNode)(e({validator:"resource",params:{pool:"$worldgen/placed_feature"}})),{category:()=>"predicate"}),{maxLength:11})},{context:"biome"}),{default:()=>({temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))}Oe.initBiomeSchemas=ut;var ke={};Object.defineProperty(ke,"__esModule",{value:!0});ke.initCarverSchemas=void 0;const M=S,K=F;function ft(o,t){const e=M.Reference.bind(void 0,o),r=M.StringNode.bind(void 0,t),d={vertical_rotation:(0,K.FloatProvider)(),shape:(0,M.ObjectNode)({distance_factor:(0,K.FloatProvider)(),thickness:(0,K.FloatProvider)(),width_smoothness:(0,M.NumberNode)({integer:!0,min:0}),horizontal_radius_factor:(0,K.FloatProvider)(),vertical_radius_default_factor:(0,M.NumberNode)(),vertical_radius_center_factor:(0,M.NumberNode)()})},n={horizontal_radius_multiplier:(0,K.FloatProvider)(),vertical_radius_multiplier:(0,K.FloatProvider)(),floor_level:(0,K.FloatProvider)({min:-1,max:1})};o.register("configured_carver",(0,M.Mod)((0,M.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/carver"}}),config:(0,M.ObjectNode)({probability:(0,M.NumberNode)({min:0,max:1}),y:e("height_provider"),yScale:(0,K.FloatProvider)(),lava_level:e("vertical_anchor"),debug_settings:(0,M.Opt)((0,M.ObjectNode)({debug_mode:(0,M.Opt)((0,M.BooleanNode)()),air_state:(0,M.Opt)(e("block_state")),water_state:(0,M.Opt)(e("block_state")),lava_state:(0,M.Opt)(e("block_state")),barrier_state:(0,M.Opt)(e("block_state"))})),[M.Switch]:["pop",{push:"type"}],[M.Case]:{"minecraft:canyon":d,"minecraft:cave":n,"minecraft:nether_cave":n}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))}ke.initCarverSchemas=ft;var xe={};Object.defineProperty(xe,"__esModule",{value:!0});xe.initDecoratorSchemas=void 0;const C=S,ie=F;function bt(o,t){const e=C.Reference.bind(void 0,o),r=C.StringNode.bind(void 0,t);o.register("decorator",(0,C.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/placement_modifier_type"}}),[C.Switch]:[{push:"type"}],[C.Case]:{"minecraft:block_predicate_filter":{predicate:e("block_predicate_worldgen")},"minecraft:carving_mask":{step:r({enum:"generation_step"})},"minecraft:rarity_filter":{chance:(0,C.NumberNode)({integer:!0,min:0})},"minecraft:count":{count:(0,ie.IntProvider)({min:0,max:256})},"minecraft:count_on_every_layer":{count:(0,ie.IntProvider)({min:0,max:256})},"minecraft:noise_threshold_count":{noise_level:(0,C.NumberNode)(),below_noise:(0,C.NumberNode)({integer:!0}),above_noise:(0,C.NumberNode)({integer:!0})},"minecraft:noise_based_count":{noise_to_count_ratio:(0,C.NumberNode)({integer:!0}),noise_factor:(0,C.NumberNode)(),noise_offset:(0,C.Opt)((0,C.NumberNode)())},"minecraft:environment_scan":{direction_of_search:r({enum:["up","down"]}),max_steps:(0,C.NumberNode)({integer:!0,min:1,max:32}),target_condition:e("block_predicate_worldgen"),allowed_search_condition:(0,C.Opt)(e("block_predicate_worldgen"))},"minecraft:heightmap":{heightmap:r({enum:"heightmap_type"})},"minecraft:height_range":{height:e("height_provider")},"minecraft:random_offset":{xz_spread:(0,ie.IntProvider)({min:-16,max:16}),y_spread:(0,ie.IntProvider)({min:-16,max:16})},"minecraft:surface_relative_threshold_filter":{heightmap:r({enum:"heightmap_type"}),min_inclusive:(0,C.Opt)((0,C.NumberNode)({integer:!0})),max_inclusive:(0,C.Opt)((0,C.NumberNode)({integer:!0}))},"minecraft:surface_water_depth_filter":{max_water_depth:(0,C.NumberNode)({integer:!0})}}},{context:"decorator",category:"predicate"}))}xe.initDecoratorSchemas=bt;var we={},Z={};Object.defineProperty(Z,"__esModule",{value:!0});Z.initProcessorListSchemas=Z.Processors=void 0;const y=S;function gt(o,t){const e=y.Reference.bind(void 0,o),r=y.StringNode.bind(void 0,t);Z.Processors=(0,y.ChoiceNode)([{type:"string",node:r({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:n=>{}},{type:"object",node:e("processor_list"),change:n=>({processors:[{processor_type:"minecraft:nop"}]})}]),o.register("processor_list",(0,y.Mod)((0,y.ObjectNode)({processors:(0,y.ListNode)(e("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"}}]}]})})),o.register("processor",(0,y.Mod)((0,y.ObjectNode)({processor_type:r({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[y.Switch]:[{push:"processor_type"}],[y.Case]:{"minecraft:block_age":{mossiness:(0,y.NumberNode)()},"minecraft:block_ignore":{blocks:(0,y.ListNode)(e("block_state"))},"minecraft:block_rot":{integrity:(0,y.NumberNode)({min:0,max:1})},"minecraft:gravity":{heightmap:r({enum:"heightmap_type"}),offset:(0,y.NumberNode)({integer:!0})},"minecraft:protected_blocks":{value:r({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:(0,y.ListNode)(e("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"}}]})})),o.register("processor_rule",(0,y.Mod)((0,y.ObjectNode)({position_predicate:(0,y.Opt)(e("pos_rule_test")),location_predicate:e("rule_test"),input_predicate:e("rule_test"),output_state:e("block_state"),output_nbt:(0,y.Opt)(r({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 d={min_dist:(0,y.Opt)((0,y.NumberNode)({min:0,max:255,integer:!0})),max_dist:(0,y.Opt)((0,y.NumberNode)({min:0,max:255,integer:!0})),min_chance:(0,y.Opt)((0,y.NumberNode)({min:0,max:1})),max_chance:(0,y.Opt)((0,y.NumberNode)({min:0,max:1}))};o.register("pos_rule_test",(0,y.ObjectNode)({predicate_type:r({validator:"resource",params:{pool:"pos_rule_test"}}),[y.Switch]:[{push:"predicate_type"}],[y.Case]:{"minecraft:axis_aligned_linear_pos":g({axis:r({enum:["x","y","z"]})},d),"minecraft:linear_pos":d}},{context:"pos_rule_test",disableSwitchContext:!0})),o.register("rule_test",(0,y.ObjectNode)({predicate_type:r({validator:"resource",params:{pool:"rule_test"}}),[y.Switch]:[{push:"predicate_type"}],[y.Case]:{"minecraft:block_match":{block:r({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:e("block_state")},"minecraft:random_block_match":{block:r({validator:"resource",params:{pool:"block"}}),probability:(0,y.NumberNode)({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:e("block_state"),probability:(0,y.NumberNode)({min:0,max:1})},"minecraft:tag_match":{tag:r({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))}Z.initProcessorListSchemas=gt;Object.defineProperty(we,"__esModule",{value:!0});we.initFeatureSchemas=void 0;const i=S,k=F,Te=Z;function Nt(o,t){const e=i.Reference.bind(void 0,o),r=i.StringNode.bind(void 0,t),d=(0,i.ChoiceNode)([{type:"string",node:r({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:e("configured_feature")}],{choiceContext:"feature"}),n=(0,i.ChoiceNode)([{type:"string",node:r({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},{type:"object",node:e("placed_feature")}],{choiceContext:"placed_feature"}),a={tries:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1})),xz_spread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),y_spread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),feature:n},l={state:e("block_state"),radius:(0,k.IntProvider)({min:0,max:8}),half_height:(0,i.NumberNode)({integer:!0,min:0,max:4}),targets:(0,i.ListNode)(e("block_state"))},I={cap_provider:e("block_state_provider"),stem_provider:e("block_state_provider"),foliage_radius:(0,i.Opt)((0,i.NumberNode)({integer:!0}))},B=(0,i.ObjectNode)({target:e("rule_test"),state:e("block_state")}),f={size:(0,i.NumberNode)({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:(0,i.NumberNode)({min:0,max:1}),targets:(0,i.ListNode)(B)},O={surface:r({enum:"cave_surface"}),depth:(0,k.IntProvider)({min:1,max:128}),vertical_range:(0,i.NumberNode)({integer:!0,min:1,max:256}),extra_bottom_block_chance:(0,i.NumberNode)({min:0,max:1}),extra_edge_column_chance:(0,i.NumberNode)({min:0,max:1}),vegetation_chance:(0,i.NumberNode)({min:0,max:1}),xz_radius:(0,k.IntProvider)(),replaceable:r({validator:"resource",params:{pool:"$tag/block"}}),ground_state:e("block_state_provider"),vegetation_feature:n};o.register("configured_feature",(0,i.Mod)((0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/feature"}}),config:(0,i.ObjectNode)({[i.Switch]:["pop",{push:"type"}],[i.Case]:{"minecraft:bamboo":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:basalt_columns":{reach:(0,k.IntProvider)({min:0,max:3}),height:(0,k.IntProvider)({min:1,max:10})},"minecraft:block_column":{direction:r({enum:["up","down","north","east","south","west"]}),allowed_placement:e("block_predicate_worldgen"),prioritize_tip:(0,i.BooleanNode)(),layers:(0,i.ListNode)((0,i.ObjectNode)({height:(0,k.IntProvider)({min:0}),provider:e("block_state_provider")}))},"minecraft:block_pile":{state_provider:e("block_state_provider")},"minecraft:delta_feature":{contents:e("block_state"),rim:e("block_state"),size:(0,k.IntProvider)({min:0,max:16}),rim_size:(0,k.IntProvider)({min:0,max:16})},"minecraft:disk":l,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:(0,i.NumberNode)({integer:!0,min:1,max:512}),height:(0,k.IntProvider)({min:0,max:128}),radius:(0,k.IntProvider)({min:0,max:128}),max_stalagmite_stalactite_height_diff:(0,i.NumberNode)({integer:!0,min:0,max:64}),height_deviation:(0,i.NumberNode)({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:(0,k.IntProvider)({min:0,max:128}),density:(0,k.FloatProvider)({min:0,max:2}),wetness:(0,k.FloatProvider)({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:(0,i.NumberNode)({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:(0,i.NumberNode)({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:(0,i.NumberNode)({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:(0,i.BooleanNode)(),exit:(0,i.Opt)(e("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:(0,i.Opt)((0,i.BooleanNode)()),crystal_beam_target:(0,i.Opt)(e("block_pos")),spikes:(0,i.ListNode)((0,i.ObjectNode)({centerX:(0,i.Opt)((0,i.NumberNode)({integer:!0})),centerZ:(0,i.Opt)((0,i.NumberNode)({integer:!0})),radius:(0,i.Opt)((0,i.NumberNode)({integer:!0})),height:(0,i.Opt)((0,i.NumberNode)({integer:!0})),guarded:(0,i.Opt)((0,i.BooleanNode)())}))},"minecraft:fill_layer":{state:e("block_state"),height:(0,i.NumberNode)({integer:!0,min:0,max:255})},"minecraft:flower":a,"minecraft:forest_rock":{state:e("block_state")},"minecraft:fossil":{max_empty_corners_allowed:(0,i.NumberNode)({integer:!0,min:0,max:7}),fossil_structures:(0,i.ListNode)(r({validator:"resource",params:{pool:"$structure"}})),overlay_structures:(0,i.ListNode)(r({validator:"resource",params:{pool:"$structure"}})),fossil_processors:Te.Processors,overlay_processors:Te.Processors},"minecraft:geode":{blocks:(0,i.ObjectNode)({filling_provider:e("block_state_provider"),inner_layer_provider:e("block_state_provider"),alternate_inner_layer_provider:e("block_state_provider"),middle_layer_provider:e("block_state_provider"),outer_layer_provider:e("block_state_provider"),inner_placements:(0,i.ListNode)(e("block_state")),cannot_replace:r({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:r({validator:"resource",params:{pool:"$tag/block"}})}),layers:(0,i.ObjectNode)({filling:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),inner_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),middle_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),outer_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50}))}),crack:(0,i.ObjectNode)({generate_crack_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),base_crack_size:(0,i.Opt)((0,i.NumberNode)({min:0,max:5})),crack_point_offset:(0,i.Opt)((0,i.NumberNode)({min:0,max:10}))}),noise_multiplier:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),use_potential_placements_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),use_alternate_layer0_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),placements_require_layer0_alternate:(0,i.Opt)((0,i.BooleanNode)()),outer_wall_distance:(0,i.Opt)((0,k.IntProvider)({min:1,max:20})),distribution_points:(0,i.Opt)((0,k.IntProvider)({min:1,max:20})),point_offset:(0,i.Opt)((0,k.IntProvider)({min:0,max:10})),min_gen_offset:(0,i.Opt)((0,i.NumberNode)({integer:!0})),max_gen_offset:(0,i.Opt)((0,i.NumberNode)({integer:!0})),invalid_blocks_threshold:(0,i.NumberNode)({integer:!0})},"minecraft:glow_lichen":{search_range:(0,i.Opt)((0,i.NumberNode)({min:1,max:64,integer:!0})),chance_of_spreading:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),can_place_on_floor:(0,i.Opt)((0,i.BooleanNode)()),can_place_on_ceiling:(0,i.Opt)((0,i.BooleanNode)()),can_place_on_wall:(0,i.Opt)((0,i.BooleanNode)()),can_be_placed_on:(0,i.ListNode)(r({validator:"resource",params:{pool:"block"}}))},"minecraft:huge_brown_mushroom":I,"minecraft:huge_fungus":{hat_state:e("block_state"),decor_state:e("block_state"),stem_state:e("block_state"),valid_base_block:e("block_state"),planted:(0,i.Opt)((0,i.BooleanNode)())},"minecraft:huge_red_mushroom":I,"minecraft:ice_patch":l,"minecraft:iceberg":{state:e("block_state")},"minecraft:lake":{fluid:e("block_state_provider"),barrier:e("block_state_provider")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1,max:512})),column_radius:(0,k.IntProvider)({min:0,max:60}),height_scale:(0,k.FloatProvider)({min:0,max:20}),max_column_radius_to_cave_height_ratio:(0,i.NumberNode)({min:0,max:1}),stalactite_bluntness:(0,k.FloatProvider)({min:.1,max:10}),stalagmite_bluntness:(0,k.FloatProvider)({min:.1,max:10}),wind_speed:(0,k.FloatProvider)({min:0,max:2}),min_radius_for_wind:(0,i.NumberNode)({integer:!0,min:0,max:100}),min_bluntness_for_wind:(0,i.NumberNode)({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:e("block_state_provider"),spread_width:(0,i.NumberNode)({integer:!0,min:1}),spread_height:(0,i.NumberNode)({integer:!0,min:1})},"minecraft:netherrack_replace_blobs":{state:e("block_state"),target:e("block_state"),radius:(0,k.IntProvider)({min:0,max:12})},"minecraft:no_bonemeal_flower":a,"minecraft:ore":f,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_directional_spread:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_spread_radius2:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_spread_radius3:(0,i.Opt)((0,i.NumberNode)({min:0,max:1}))},"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:n,feature_true:n},"minecraft:random_selector":{features:(0,i.ListNode)((0,i.ObjectNode)({chance:(0,i.NumberNode)({min:0,max:1}),feature:n})),default:n},"minecraft:replace_single_block":{targets:(0,i.ListNode)(B)},"minecraft:root_system":{required_vertical_space_for_tree:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_radius:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_placement_attempts:(0,i.NumberNode)({integer:!0,min:1,max:256}),root_column_max_height:(0,i.NumberNode)({integer:!0,min:1,max:4096}),hanging_root_radius:(0,i.NumberNode)({integer:!0,min:1,max:64}),hanging_roots_vertical_span:(0,i.NumberNode)({integer:!0,min:0,max:16}),hanging_root_placement_attempts:(0,i.NumberNode)({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_replaceable:r({validator:"resource",params:{pool:"$tag/block"}}),root_state_provider:e("block_state_provider"),hanging_root_state_provider:e("block_state_provider"),allowed_tree_position:e("block_predicate_worldgen"),feature:n},"minecraft:scattered_ore":f,"minecraft:sea_pickle":{count:(0,k.IntProvider)({min:0,max:256})},"minecraft:seagrass":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:simple_block":{to_place:e("block_state_provider")},"minecraft:simple_random_selector":{features:(0,i.ListNode)(n)},"minecraft:spring_feature":{state:e("fluid_state"),rock_count:(0,i.NumberNode)({integer:!0}),hole_count:(0,i.NumberNode)({integer:!0}),requires_block_below:(0,i.BooleanNode)(),valid_blocks:(0,i.ListNode)(r({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:(0,i.Opt)((0,i.BooleanNode)()),force_dirt:(0,i.Opt)((0,i.BooleanNode)()),minimum_size:e("feature_size"),dirt_provider:e("block_state_provider"),trunk_provider:e("block_state_provider"),foliage_provider:e("block_state_provider"),trunk_placer:(0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:(0,i.NumberNode)({integer:!0,min:0,max:32}),height_rand_a:(0,i.NumberNode)({integer:!0,min:0,max:24}),height_rand_b:(0,i.NumberNode)({integer:!0,min:0,max:24}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:bending_trunk_placer":{bend_length:(0,k.IntProvider)({min:1,max:64}),min_height_for_leaves:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:(0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:(0,k.IntProvider)({min:0,max:16}),offset:(0,k.IntProvider)({min:0,max:16}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:blob_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:(0,k.IntProvider)({min:0,max:24})},"minecraft:pine_foliage_placer":{height:(0,k.IntProvider)({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:(0,k.IntProvider)({min:1,max:512}),leaf_placement_attempts:(0,i.NumberNode)({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:(0,k.IntProvider)({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:(0,i.ListNode)((0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:alter_ground":{provider:e("block_state_provider")},"minecraft:beehive":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:cocoa":{probability:(0,i.NumberNode)({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:twisting_vines":{spread_width:(0,i.NumberNode)({integer:!0,min:1}),spread_height:(0,i.NumberNode)({integer:!0,min:1}),max_height:(0,i.NumberNode)({integer:!0,min:1})},"minecraft:underwater_magma":{floor_search_range:(0,i.NumberNode)({integer:!0,min:0,max:512}),placement_radius_around_floor:(0,i.NumberNode)({integer:!0,min:0,max:64}),placement_probability_per_valid_position:(0,i.NumberNode)({min:0,max:1})},"minecraft:vegetation_patch":O,"minecraft:waterlogged_vegetation_patch":O}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:tree",config:{minimum_size:{type:"minecraft:two_layers_feature_size"},trunk_placer:{type:"minecraft:straight_trunk_placer",base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{type:"minecraft:blob_foliage_placer",radius:2,offset:0,height:3}}})})),o.register("placed_feature",(0,i.Mod)((0,i.ObjectNode)({feature:d,placement:(0,i.ListNode)(e("decorator"))},{context:"placed_feature"}),{default:()=>({feature:"minecraft:oak",placement:[{type:"minecraft:count",count:4},{type:"minecraft:in_square"},{type:"minecraft:heightmap",heightmap:"OCEAN_FLOOR"}]})})),o.register("feature_size",(0,i.Mod)((0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:(0,i.Opt)((0,i.NumberNode)({min:0,max:80})),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:two_layers_feature_size":{limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:81})),lower_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:80})),upper_limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:80})),lower_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),middle_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const h={seed:(0,i.NumberNode)({integer:!0}),noise:e("noise_parameters"),scale:(0,i.Mod)((0,i.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1})};o.register("block_state_provider",(0,i.Mod)((0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:dual_noise_provider":D(g({},h),{variety:(0,k.InclusiveRange)({integer:!0,min:1,max:64}),slow_noise:e("noise_parameters"),slow_scale:(0,i.Mod)((0,i.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1}),states:(0,i.ListNode)(e("block_state"))}),"minecraft:noise_threshold_provider":D(g({},h),{threshold:(0,i.NumberNode)({min:-1,max:1}),high_chance:(0,i.NumberNode)({min:0,max:1}),default_state:e("block_state"),low_states:(0,i.ListNode)(e("block_state")),high_states:(0,i.ListNode)(e("block_state"))}),"minecraft:noise_provider":D(g({},h),{states:(0,i.ListNode)(e("block_state"))}),"minecraft:randomized_int_state_provider":{property:r(),values:(0,k.IntProvider)(),source:e("block_state_provider")},"minecraft:rotated_block_provider":{state:e("block_state")},"minecraft:simple_state_provider":{state:e("block_state")},"minecraft:weighted_state_provider":{entries:(0,i.ListNode)((0,i.Mod)((0,i.ObjectNode)({weight:(0,i.NumberNode)({integer:!0,min:1}),data:e("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})}));const w={offset:(0,i.Opt)((0,i.ListNode)((0,i.NumberNode)({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))};o.register("block_predicate_worldgen",(0,i.Mod)((0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"block_predicate_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:all_of":{predicates:(0,i.ListNode)(e("block_predicate_worldgen"))},"minecraft:any_of":{predicates:(0,i.ListNode)(e("block_predicate_worldgen"))},"minecraft:has_sturdy_face":D(g({},w),{direction:r({enum:"direction"})}),"minecraft:inside_world_bounds":g({},w),"minecraft:matching_block_tag":D(g({},w),{tag:r({validator:"resource",params:{pool:"$tag/block"}})}),"minecraft:matching_blocks":D(g({},w),{blocks:(0,i.ListNode)(r({validator:"resource",params:{pool:"block"}}))}),"minecraft:matching_fluids":D(g({},w),{fluids:(0,i.ListNode)(r({validator:"resource",params:{pool:"fluid"}}))}),"minecraft:not":{predicate:e("block_predicate_worldgen")},"minecraft:would_survive":D(g({},w),{state:e("block_state")})}},{context:"block_predicate"}),{default:()=>({type:"minecraft:true"})}))}we.initFeatureSchemas=Nt;var Se={};Object.defineProperty(Se,"__esModule",{value:!0});Se.initNoiseSettingsSchemas=void 0;const _=S,ht=F;function yt(o,t){const e=_.Reference.bind(void 0,o),r=_.StringNode.bind(void 0,t);o.register("noise_settings",(0,_.Mod)((0,_.ObjectNode)({sea_level:(0,_.NumberNode)({integer:!0}),disable_mob_generation:(0,_.BooleanNode)(),noise_caves_enabled:(0,_.BooleanNode)(),noodle_caves_enabled:(0,_.BooleanNode)(),aquifers_enabled:(0,_.BooleanNode)(),ore_veins_enabled:(0,_.BooleanNode)(),legacy_random_source:(0,_.BooleanNode)(),default_block:e("block_state"),default_fluid:e("block_state"),noise:(0,_.ObjectNode)({min_y:(0,_.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,_.NumberNode)({integer:!0,min:0,max:4096}),size_horizontal:(0,_.NumberNode)({integer:!0}),size_vertical:(0,_.NumberNode)({integer:!0}),island_noise_override:(0,_.Opt)((0,_.BooleanNode)()),amplified:(0,_.Opt)((0,_.BooleanNode)()),large_biomes:(0,_.Opt)((0,_.BooleanNode)()),sampling:(0,_.ObjectNode)({xz_scale:(0,_.NumberNode)(),y_scale:(0,_.NumberNode)(),xz_factor:(0,_.NumberNode)(),y_factor:(0,_.NumberNode)()}),bottom_slide:e("noise_slider"),top_slide:e("noise_slider"),terrain_shaper:e("terrain_shaper")}),surface_rule:e("material_rule"),structures:e("generator_structures")},{context:"noise_settings"}),d=>({default:()=>ht.DefaultNoiseSettings,validate:(n,a,l,I)=>{var B,f,O,h;return a=d.validate(n,a,l,I),((B=a==null?void 0:a.noise)===null||B===void 0?void 0:B.min_y)+((f=a==null?void 0:a.noise)===null||f===void 0?void 0:f.height)>2047&&l.add(n.push("noise").push("height"),"error.min_y_plus_height",2047),((O=a==null?void 0:a.noise)===null||O===void 0?void 0:O.height)%16!==0&&l.add(n.push("noise").push("height"),"error.height_multiple",16),((h=a==null?void 0:a.noise)===null||h===void 0?void 0:h.min_y)%16!==0&&l.add(n.push("noise").push("min_y"),"error.min_y_multiple",16),a}}))),o.register("noise_slider",(0,_.ObjectNode)({target:(0,_.NumberNode)(),size:(0,_.NumberNode)({integer:!0,min:0}),offset:(0,_.NumberNode)({integer:!0})})),o.register("generator_structures",(0,_.ObjectNode)({stronghold:(0,_.Opt)((0,_.ObjectNode)({distance:(0,_.NumberNode)({integer:!0,min:0,max:1023}),spread:(0,_.NumberNode)({integer:!0,min:0,max:1023}),count:(0,_.NumberNode)({integer:!0,min:1,max:4095})})),structures:(0,_.MapNode)(r({validator:"resource",params:{pool:"worldgen/structure_feature"}}),(0,_.Mod)((0,_.ObjectNode)({spacing:(0,_.NumberNode)({integer:!0,min:0,max:4096}),separation:(0,_.Mod)((0,_.NumberNode)({integer:!0,min:0,max:4096}),d=>({validate:(n,a,l,I)=>(n.pop().push("spacing").get()<=a&&l.add(n,"error.separation_smaller_spacing"),d.validate(n,a,l,I))})),salt:(0,_.NumberNode)({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),o.register("generator_layer",(0,_.Mod)((0,_.ObjectNode)({block:r({validator:"resource",params:{pool:"block"}}),height:(0,_.NumberNode)({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})})),o.register("terrain_shaper",(0,_.Mod)((0,_.ObjectNode)({offset:e("terrain_spline"),factor:e("terrain_spline"),jaggedness:e("terrain_spline")},{context:"terrain_shaper"}),{default:()=>({offset:0,factor:0,jaggedness:0})})),o.register("terrain_spline",(0,_.Mod)((0,_.ChoiceNode)([{type:"number",node:(0,_.NumberNode)()},{type:"object",node:(0,_.ObjectNode)({coordinate:(0,_.Mod)(r({enum:["continents","erosion","weirdness","ridges"]}),{default:()=>"continents"}),points:(0,_.ListNode)((0,_.ObjectNode)({location:(0,_.NumberNode)(),derivative:(0,_.NumberNode)(),value:e("terrain_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))}Se.initNoiseSettingsSchemas=yt;var je={};Object.defineProperty(je,"__esModule",{value:!0});je.initStructureFeatureSchemas=void 0;const z=S;function vt(o,t){const e=z.StringNode.bind(void 0,t),r=z.Reference.bind(void 0,o),d={start_pool:e({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:(0,z.NumberNode)({integer:!0})};o.register("configured_structure_feature",(0,z.Mod)((0,z.ObjectNode)({type:e({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:(0,z.ObjectNode)({[z.Switch]:["pop",{push:"type"}],[z.Case]:{"minecraft:bastion_remnant":d,"minecraft:buried_treasure":{probability:(0,z.NumberNode)({min:0,max:1})},"minecraft:mineshaft":{type:e({enum:["normal","mesa"]}),probability:(0,z.NumberNode)({min:0,max:1})},"minecraft:nether_fossil":{height:r("height_provider")},"minecraft:ocean_ruin":{biome_temp:e({enum:["cold","warm"]}),large_probability:(0,z.NumberNode)({min:0,max:1}),cluster_probability:(0,z.NumberNode)({min:0,max:1})},"minecraft:pillager_outpost":d,"minecraft:ruined_portal":{portal_type:e({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:(0,z.Opt)((0,z.BooleanNode)())},"minecraft:village":d}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))}je.initStructureFeatureSchemas=vt;var Me={};Object.defineProperty(Me,"__esModule",{value:!0});Me.initSurfaceRuleSchemas=void 0;const j=S;function Ot(o,t){const e=j.StringNode.bind(void 0,t),r=j.Reference.bind(void 0,o);o.register("material_rule",(0,j.Mod)((0,j.ObjectNode)({type:e({validator:"resource",params:{pool:"worldgen/material_rule"}}),[j.Switch]:[{push:"type"}],[j.Case]:{"minecraft:block":{result_state:r("block_state")},"minecraft:condition":{if_true:r("material_condition"),then_run:r("material_rule")},"minecraft:sequence":{sequence:(0,j.ListNode)(r("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),o.register("material_condition",(0,j.Mod)((0,j.ObjectNode)({type:e({validator:"resource",params:{pool:"worldgen/material_condition"}}),[j.Switch]:[{push:"type"}],[j.Case]:{"minecraft:biome":{biome_is:(0,j.ListNode)(e({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:e({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:(0,j.NumberNode)(),max_threshold:(0,j.NumberNode)()},"minecraft:not":{invert:r("material_condition")},"minecraft:stone_depth":{offset:(0,j.NumberNode)({integer:!0}),surface_type:e({enum:"cave_surface"}),add_surface_depth:(0,j.BooleanNode)(),add_surface_secondary_depth:(0,j.BooleanNode)()},"minecraft:vertical_gradient":{random_name:e(),true_at_and_below:r("vertical_anchor"),false_at_and_above:r("vertical_anchor")},"minecraft:water":{offset:(0,j.NumberNode)({integer:!0}),surface_depth_multiplier:(0,j.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,j.BooleanNode)()},"minecraft:y_above":{anchor:r("vertical_anchor"),surface_depth_multiplier:(0,j.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,j.BooleanNode)()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))}Me.initSurfaceRuleSchemas=Ot;var Ce={};Object.defineProperty(Ce,"__esModule",{value:!0});Ce.initTemplatePoolSchemas=void 0;const T=S,qe=Z;function kt(o,t){const e=T.Reference.bind(void 0,o),r=T.StringNode.bind(void 0,t);o.register("template_pool",(0,T.Mod)((0,T.ObjectNode)({name:r(),fallback:r(),elements:(0,T.ListNode)(e("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"}}]})})),o.register("template_weighted_element",(0,T.Mod)((0,T.ObjectNode)({weight:(0,T.NumberNode)({integer:!0,min:1}),element:e("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),o.register("template_element",(0,T.Mod)((0,T.ObjectNode)({element_type:r({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:r({enum:["rigid","terrain_matching"]}),[T.Switch]:[{push:"element_type"}],[T.Case]:{"minecraft:feature_pool_element":{feature:r({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},"minecraft:legacy_single_pool_element":{location:r({validator:"resource",params:{pool:"$structure"}}),processors:qe.Processors},"minecraft:list_pool_element":{elements:(0,T.ListNode)(e("template_element"))},"minecraft:single_pool_element":{location:r({validator:"resource",params:{pool:"$structure"}}),processors:qe.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))}Ce.initTemplatePoolSchemas=kt;Object.defineProperty(ve,"__esModule",{value:!0});ve.initWorldgenSchemas=void 0;const xt=Oe,wt=ke,St=xe,jt=we,Mt=Se,Ct=Z,Pt=je,Lt=Me,Bt=Ce;function $t(o,t){(0,Ct.initProcessorListSchemas)(o,t),(0,xt.initBiomeSchemas)(o,t),(0,wt.initCarverSchemas)(o,t),(0,St.initDecoratorSchemas)(o,t),(0,jt.initFeatureSchemas)(o,t),(0,Mt.initNoiseSettingsSchemas)(o,t),(0,Pt.initStructureFeatureSchemas)(o,t),(0,Lt.initSurfaceRuleSchemas)(o,t),(0,Bt.initTemplatePoolSchemas)(o,t)}ve.initWorldgenSchemas=$t;var Pe={};Object.defineProperty(Pe,"__esModule",{value:!0});Pe.initWorldSettingsSchemas=void 0;const X=S;function zt(o,t){const e=X.Reference.bind(void 0,o),r=X.StringNode.bind(void 0,t);o.register("world_settings",(0,X.Mod)((0,X.ObjectNode)({generate_features:(0,X.BooleanNode)(),bonus_chest:(0,X.BooleanNode)(),seed:(0,X.NumberNode)({integer:!0}),dimensions:(0,X.MapNode)(r({validator:"resource",params:{pool:"$dimension"}}),e("dimension"))},{context:"world_settings"}),{default:()=>{const d=Math.floor(Math.random()*4294967296)-2147483648;return{generate_features:!0,bonus_chest:!1,seed:d,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:overworld"},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:nether"},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:the_end",seed:d},settings:"minecraft:end"}}}}}}))}Pe.initWorldSettingsSchemas=zt;Object.defineProperty(ae,"__esModule",{value:!0});ae.initSchemas=void 0;const Rt=ce,Tt=de,qt=F,It=me,Ft=_e,Dt=pe,At=ue,Et=fe,Wt=be,Ut=ge,Vt=Ne,Gt=he,Ht=ye,Kt=ve,Xt=Pe;function Zt(o,t){(0,qt.initCommonSchemas)(o,t),(0,Rt.initAdvancementSchemas)(o,t),(0,Tt.initAssetsSchemas)(o,t),(0,It.initConditionSchemas)(o,t),(0,Dt.initDimensionTypeSchemas)(o,t),(0,Ft.initDimensionSchemas)(o,t),(0,At.initItemModifierSchemas)(o,t),(0,Et.initLootTableSchemas)(o,t),(0,Wt.initPackMcmetaSchemas)(o,t),(0,Ut.initPredicatesSchemas)(o,t),(0,Vt.initRecipeSchemas)(o,t),(0,Gt.initTagsSchemas)(o,t),(0,Ht.initTextComponentSchemas)(o,t),(0,Kt.initWorldgenSchemas)(o,t),(0,Xt.initWorldSettingsSchemas)(o,t)}ae.initSchemas=Zt;var Yt=re&&re.__createBinding||(Object.create?function(o,t,e,r){r===void 0&&(r=e);var d=Object.getOwnPropertyDescriptor(t,e);(!d||("get"in d?!t.__esModule:d.writable||d.configurable))&&(d={enumerable:!0,get:function(){return t[e]}}),Object.defineProperty(o,r,d)}:function(o,t,e,r){r===void 0&&(r=e),o[r]=t[e]}),Jt=re&&re.__setModuleDefault||(Object.create?function(o,t){Object.defineProperty(o,"default",{enumerable:!0,value:t})}:function(o,t){o.default=t}),Qt=re&&re.__importStar||function(o){if(o&&o.__esModule)return o;var t={};if(o!=null)for(var e in o)e!=="default"&&Object.prototype.hasOwnProperty.call(o,e)&&Yt(t,o,e);return Jt(t,o),t};Object.defineProperty(G,"__esModule",{value:!0});var Ie=G.getSchemas=Ae=G.getCollections=De=G.lootContext=void 0;const Fe=S,er=ne,tr=ae;var De=G.lootContext=Qt(q);function rr(){const o=new Fe.CollectionRegistry;return(0,er.initCollections)(o),o}var Ae=G.getCollections=rr;function or(o){const t=new Fe.SchemaRegistry;return(0,tr.initSchemas)(t,o),t}Ie=G.getSchemas=or;var cr=He({__proto__:null,get getSchemas(){return Ie},get getCollections(){return Ae},get lootContext(){return De},default:G},[G]);export{cr as i}; +//# sourceMappingURL=index.f8251f36.js.map diff --git a/assets/index.d40edef2.js.map b/assets/index.f8251f36.js.map similarity index 99% rename from assets/index.d40edef2.js.map rename to assets/index.f8251f36.js.map index 3f5ded89..cbb8876c 100644 --- a/assets/index.d40edef2.js.map +++ b/assets/index.f8251f36.js.map @@ -1 +1 @@ -{"version":3,"file":"index.d40edef2.js","sources":["../../node_modules/@mcschema/java-1.18/lib/Collections.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.18/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.18/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.18/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.18/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.18/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.18/lib/LootContext.js","../../node_modules/@mcschema/java-1.18/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.18/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.18/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/SurfaceRule.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.18/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.18/lib/schemas/index.js","../../node_modules/@mcschema/java-1.18/lib/index.js"],"sourcesContent":["\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:fall_from_height',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:lightning_strike',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:ride_entity_in_lava',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:started_riding',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:using_item',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'killer',\r\n 'direct_killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mountain',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end',\r\n 'underground'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n collections.register('banner_pattern', [\r\n 'base',\r\n 'square_bottom_left',\r\n 'square_bottom_right',\r\n 'square_top_left',\r\n 'square_top_right',\r\n 'stripe_bottom',\r\n 'stripe_top',\r\n 'stripe_left',\r\n 'stripe_right',\r\n 'stripe_center',\r\n 'stripe_middle',\r\n 'stripe_downright',\r\n 'stripe_downleft',\r\n 'small_stripes',\r\n 'cross',\r\n 'straight_cross',\r\n 'triangle_bottom',\r\n 'triangle_top',\r\n 'triangles_bottom',\r\n 'triangles_top',\r\n 'diagonal_left',\r\n 'diagonal_up_right',\r\n 'diagonal_up_left',\r\n 'diagonal_right',\r\n 'circle',\r\n 'rhombus',\r\n 'half_vertical',\r\n 'half_horizontal',\r\n 'half_vertical_right',\r\n 'half_horizontal_bottom',\r\n 'border',\r\n 'curly_border',\r\n 'gradient',\r\n 'gradient_up',\r\n 'bricks',\r\n 'globe',\r\n 'creeper',\r\n 'skull',\r\n 'flower',\r\n 'mojang',\r\n 'piglin'\r\n ]);\r\n collections.register('dye_color', [\r\n 'white',\r\n 'orange',\r\n 'magenta',\r\n 'light_blue',\r\n 'yellow',\r\n 'lime',\r\n 'pink',\r\n 'gray',\r\n 'light_gray',\r\n 'cyan',\r\n 'purple',\r\n 'blue',\r\n 'brown',\r\n 'green',\r\n 'red',\r\n 'black'\r\n ]);\r\n collections.register('cave_surface', [\r\n 'floor',\r\n 'ceiling'\r\n ]);\r\n collections.register('direction', [\r\n 'down',\r\n 'up',\r\n 'north',\r\n 'east',\r\n 'south',\r\n 'west'\r\n ]);\r\n collections.register('axis', [\r\n 'x',\r\n 'y',\r\n 'z'\r\n ]);\r\n collections.register('display_position', [\r\n 'firstperson_righthand',\r\n 'firstperson_lefthand',\r\n 'thirdperson_righthand',\r\n 'thirdperson_lefthand',\r\n 'gui',\r\n 'head',\r\n 'ground',\r\n 'fixed'\r\n ]);\r\n collections.register('gui_light', [\r\n 'front',\r\n 'side'\r\n ]);\r\n collections.register('item_model_predicates', [\r\n 'angle',\r\n 'blocking',\r\n 'broken',\r\n 'cast',\r\n 'charged',\r\n 'cooldown',\r\n 'custom_model_data',\r\n 'damage',\r\n 'damaged',\r\n 'firework',\r\n 'lefthanded',\r\n 'pull',\r\n 'pulling',\r\n 'throwing',\r\n 'time'\r\n ]);\r\n collections.register('cat_texture', [\r\n 'textures/entity/cat/tabby.png',\r\n 'textures/entity/cat/black.png',\r\n 'textures/entity/cat/red.png',\r\n 'textures/entity/cat/siamese.png',\r\n 'textures/entity/cat/british_shorthair.png',\r\n 'textures/entity/cat/calico.png',\r\n 'textures/entity/cat/persian.png',\r\n 'textures/entity/cat/ragdoll.png',\r\n 'textures/entity/cat/white.png',\r\n 'textures/entity/cat/jellie.png',\r\n 'textures/entity/cat/all_black.png'\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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n player: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, 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: (0, 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: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: (0, core_1.Opt)(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:fall_from_height': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: (0, 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: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: (0, 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: (0, 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: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, 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: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: (0, core_1.Opt)(Reference('float_bounds'))\r\n },\r\n 'minecraft:used_totem': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, core_1.ObjectNode)({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, core_1.NumberNode)()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, core_1.MapNode)(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, core_1.Opt)(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, core_1.MapNode)(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n OR: (0, core_1.ListNode)(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, Model_1.initModelSchemas)(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.InclusiveRange = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nconst DefaultStructureSettings = {\r\n 'minecraft:igloo': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357618\r\n },\r\n 'minecraft:mansion': {\r\n spacing: 80,\r\n separation: 20,\r\n salt: 10387319\r\n },\r\n 'minecraft:jungle_pyramid': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357619\r\n },\r\n 'minecraft:nether_fossil': {\r\n spacing: 2,\r\n separation: 1,\r\n salt: 14357921\r\n },\r\n 'minecraft:stronghold': {\r\n spacing: 1,\r\n separation: 0,\r\n salt: 0\r\n },\r\n 'minecraft:shipwreck': {\r\n spacing: 24,\r\n separation: 4,\r\n salt: 165745295\r\n },\r\n 'minecraft:mineshaft': {\r\n spacing: 1,\r\n separation: 0,\r\n salt: 0\r\n },\r\n 'minecraft:desert_pyramid': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357617\r\n },\r\n 'minecraft:ruined_portal': {\r\n spacing: 40,\r\n separation: 15,\r\n salt: 34222645\r\n },\r\n 'minecraft:fortress': {\r\n spacing: 27,\r\n separation: 4,\r\n salt: 30084232\r\n },\r\n 'minecraft:pillager_outpost': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 165745296\r\n },\r\n 'minecraft:village': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 10387312\r\n },\r\n 'minecraft:endcity': {\r\n spacing: 20,\r\n separation: 11,\r\n salt: 10387313\r\n },\r\n 'minecraft:buried_treasure': {\r\n spacing: 1,\r\n separation: 0,\r\n salt: 0\r\n },\r\n 'minecraft:ocean_ruin': {\r\n spacing: 20,\r\n separation: 8,\r\n salt: 14357621\r\n },\r\n 'minecraft:bastion_remnant': {\r\n spacing: 27,\r\n separation: 4,\r\n salt: 30084232\r\n },\r\n 'minecraft:swamp_hut': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357620\r\n },\r\n 'minecraft:monument': {\r\n spacing: 32,\r\n separation: 5,\r\n salt: 10387313\r\n }\r\n};\r\nexports.DefaultNoiseSettings = {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n noise_caves_enabled: true,\r\n deepslate_enabled: true,\r\n ore_veins_enabled: true,\r\n noodle_caves_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 1,\r\n density_offset: -0.51875,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => (0, core_1.Opt)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer })),\r\n max: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)(Reference('number_provider')),\r\n max: (0, core_1.Opt)(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: (0, 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] = (0, 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 = (0, core_1.ObjectNode)({\r\n type: (0, core_1.Mod)((0, 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 (0, 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: (0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, 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: (0, core_1.NumberNode)(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_exclusive: (0, core_1.NumberNode)(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n plateau: (0, core_1.NumberNode)()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', (0, 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: (0, core_1.NumberNode)({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n });\r\n schemas.register('int_provider', (0, exports.IntProvider)());\r\n schemas.register('vertical_anchor', (0, 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: (0, core_1.ObjectNode)({\r\n [t]: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('height_provider'),\r\n }))\r\n }\r\n }));\r\n exports.InclusiveRange = (config) => (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_inclusive: (0, core_1.NumberNode)(config)\r\n }, { context: 'range' });\r\n schemas.register('noise_parameters', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n firstOctave: (0, core_1.NumberNode)({ integer: true }),\r\n amplitudes: (0, core_1.ListNode)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)(StringNode({ enum: 'map_feature' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_contents': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_loot_table': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, 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) => (0, 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) => (0, core_1.ObjectOrPreset)(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:netherrack'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:lava'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 0,\r\n density_offset: -0.030078125,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n structures: DefaultStructureSettings,\r\n }\r\n },\r\n 'minecraft:end': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: -2147483648,\r\n sea_level: 0,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:end_stone'\r\n },\r\n default_fluid: {\r\n Name: 'minecraft:air'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n density_factor: 0,\r\n density_offset: 0,\r\n island_noise_override: true,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n structures: DefaultStructureSettings\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n noise_caves_enabled: true,\r\n deepslate_enabled: true,\r\n ore_veins_enabled: true,\r\n noodle_caves_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 1,\r\n density_offset: -0.51875,\r\n amplified: true,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n },\r\n },\r\n 'minecraft:caves': {\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 0,\r\n density_offset: -0.030078125,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: -2147483648,\r\n sea_level: 0,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n density_factor: 0,\r\n density_offset: 0,\r\n island_noise_override: true,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, Common_1.DimensionTypePresets)(Reference('dimension_type')),\r\n generator: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n settings: (0, Common_1.NoiseSettingsPresets)(Reference('noise_settings')),\r\n biome_source: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:nether'] } })),\r\n biomes: (0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 62 })),\r\n biomes: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: (0, core_1.NumberNode)({ integer: true })\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: (0, core_1.ObjectNode)({\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n features: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n layers: (0, 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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ListNode)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n ultrawarm: (0, core_1.BooleanNode)(),\r\n natural: (0, core_1.BooleanNode)(),\r\n piglin_safe: (0, core_1.BooleanNode)(),\r\n respawn_anchor_works: (0, core_1.BooleanNode)(),\r\n bed_works: (0, core_1.BooleanNode)(),\r\n has_raids: (0, core_1.BooleanNode)(),\r\n has_skylight: (0, core_1.BooleanNode)(),\r\n has_ceiling: (0, core_1.BooleanNode)(),\r\n coordinate_scale: (0, core_1.NumberNode)({ min: 0.00001, max: 30000000 }),\r\n ambient_light: (0, core_1.NumberNode)(),\r\n fixed_time: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n logical_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n effects: (0, 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: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, 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', (0, core_1.ObjectOrList)(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: (0, core_1.Opt)((0, core_1.ListNode)(Reference('condition')))\r\n };\r\n schemas.register('function', (0, core_1.Mod)((0, 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]: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: (0, core_1.Opt)(Reference('number_provider')),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.StringOrList)(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst CURRENT_PACK_FORMAT = 8;\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, 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: (0, 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 = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, 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', (0, core_1.ObjectNode)({\r\n blocks: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)({\r\n position: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: (0, core_1.Opt)(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n { type: 'boolean', node: (0, core_1.BooleanNode)(), change: _ => true },\r\n {\r\n type: 'object', node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate'))),\r\n looking_at: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n stepping_on: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: (0, core_1.Opt)(Reference('entity_predicate')),\r\n passenger: (0, core_1.Opt)(Reference('entity_predicate')),\r\n targeted_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n player: (0, core_1.Opt)(Reference('player_predicate')),\r\n lightning_bolt: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n blocks_set_on_fire: (0, core_1.Opt)(Reference('int_bounds')),\r\n entity_struck: (0, core_1.Opt)(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n in_open_water: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n catType: (0, core_1.Opt)(StringNode({ enum: 'cat_texture' })),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, core_1.Opt)(StringNode()) /* TODO */,\r\n font: (0, core_1.Opt)(StringNode()),\r\n bold: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component')),\r\n contents: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tag: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n })),\r\n contents: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n separator: (0, 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', (0, core_1.Mod)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n temperature: (0, core_1.NumberNode)(),\r\n downfall: (0, core_1.NumberNode)(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n creature_spawn_probability: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n effects: (0, core_1.ObjectNode)({\r\n sky_color: (0, core_1.NumberNode)({ color: true }),\r\n fog_color: (0, core_1.NumberNode)({ color: true }),\r\n water_color: (0, core_1.NumberNode)({ color: true }),\r\n water_fog_color: (0, core_1.NumberNode)({ color: true }),\r\n grass_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n foliage_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n grass_color_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: (0, core_1.Opt)(StringNode()),\r\n mood_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_delay: (0, core_1.NumberNode)({ integer: true }),\r\n block_search_extent: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)()\r\n })),\r\n additions_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n music: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n min_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n max_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n replace_current_music: (0, core_1.BooleanNode)()\r\n })),\r\n particle: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n options: (0, core_1.ObjectNode)({\r\n type: StringNode()\r\n }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }))\r\n }),\r\n spawners: (0, 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 ] }), (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n minCount: (0, core_1.NumberNode)({ integer: true }),\r\n maxCount: (0, 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: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n energy_budget: (0, core_1.NumberNode)(),\r\n charge: (0, 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: (0, core_1.MapNode)(StringNode({ enum: ['air', 'liquid'] }), (0, core_1.Mod)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })), { category: () => 'predicate' }), { maxLength: 11 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: (0, Common_1.FloatProvider)(),\r\n shape: (0, core_1.ObjectNode)({\r\n distance_factor: (0, Common_1.FloatProvider)(),\r\n thickness: (0, Common_1.FloatProvider)(),\r\n width_smoothness: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n horizontal_radius_factor: (0, Common_1.FloatProvider)(),\r\n vertical_radius_default_factor: (0, core_1.NumberNode)(),\r\n vertical_radius_center_factor: (0, core_1.NumberNode)()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n vertical_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n floor_level: (0, Common_1.FloatProvider)({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: (0, core_1.ObjectNode)({\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: (0, Common_1.FloatProvider)(),\r\n lava_level: Reference('vertical_anchor'),\r\n debug_settings: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n debug_mode: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n air_state: (0, core_1.Opt)(Reference('block_state')),\r\n water_state: (0, core_1.Opt)(Reference('block_state')),\r\n lava_state: (0, core_1.Opt)(Reference('block_state')),\r\n barrier_state: (0, core_1.Opt)(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('decorator', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/placement_modifier_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_predicate_filter': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:rarity_filter': {\r\n chance: (0, core_1.NumberNode)({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:count_on_every_layer': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:noise_threshold_count': {\r\n noise_level: (0, core_1.NumberNode)(),\r\n below_noise: (0, core_1.NumberNode)({ integer: true }),\r\n above_noise: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:noise_based_count': {\r\n noise_to_count_ratio: (0, core_1.NumberNode)({ integer: true }),\r\n noise_factor: (0, core_1.NumberNode)(),\r\n noise_offset: (0, core_1.Opt)((0, core_1.NumberNode)())\r\n },\r\n 'minecraft:environment_scan': {\r\n direction_of_search: StringNode({ enum: ['up', 'down'] }),\r\n max_steps: (0, core_1.NumberNode)({ integer: true, min: 1, max: 32 }),\r\n target_condition: Reference('block_predicate_worldgen'),\r\n allowed_search_condition: (0, core_1.Opt)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:height_range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:random_offset': {\r\n xz_spread: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n y_spread: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n },\r\n 'minecraft:surface_relative_threshold_filter': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n min_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:surface_water_depth_filter': {\r\n max_water_depth: (0, core_1.NumberNode)({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.Processors = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n processors: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n position_predicate: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n max_dist: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n min_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n max_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', (0, 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', (0, 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: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const ConfiguredFeature = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const PlacedFeature = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('placed_feature')\r\n }\r\n ], { choiceContext: 'placed_feature' });\r\n const RandomPatchConfig = {\r\n tries: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 })),\r\n xz_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n y_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n feature: PlacedFeature,\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 8 }),\r\n half_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4 }),\r\n targets: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n };\r\n const TargetBlockState = (0, core_1.ObjectNode)({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n };\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: 'cave_surface' }),\r\n depth: (0, Common_1.IntProvider)({ min: 1, max: 128 }),\r\n vertical_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n extra_edge_column_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n vegetation_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n xz_radius: (0, Common_1.IntProvider)(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: PlacedFeature\r\n };\r\n schemas.register('configured_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: (0, core_1.ObjectNode)({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: (0, Common_1.IntProvider)({ min: 0, max: 3 }),\r\n height: (0, Common_1.IntProvider)({ min: 1, max: 10 })\r\n },\r\n 'minecraft:block_column': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allowed_placement: Reference('block_predicate_worldgen'),\r\n prioritize_tip: (0, core_1.BooleanNode)(),\r\n layers: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n height: (0, Common_1.IntProvider)({ min: 0 }),\r\n provider: Reference('block_state_provider')\r\n }))\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n rim_size: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 1, max: 512 }),\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n height_deviation: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n density: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n wetness: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: (0, core_1.BooleanNode)(),\r\n exit: (0, core_1.Opt)(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n crystal_beam_target: (0, core_1.Opt)(Reference('block_pos')),\r\n spikes: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n centerX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n centerZ: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n guarded: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: (0, 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: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n filling: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n inner_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n middle_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n outer_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n }),\r\n crack: (0, core_1.ObjectNode)({\r\n generate_crack_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n base_crack_size: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 5 })),\r\n crack_point_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 10 })),\r\n }),\r\n noise_multiplier: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_potential_placements_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n outer_wall_distance: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n distribution_points: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n point_offset: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 0, max: 10 })),\r\n min_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n invalid_blocks_threshold: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n can_place_on_floor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_ceiling: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_wall: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_be_placed_on: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n fluid: Reference('block_state_provider'),\r\n barrier: Reference('block_state_provider')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1, max: 512 })),\r\n column_radius: (0, Common_1.IntProvider)({ min: 0, max: 60 }),\r\n height_scale: (0, Common_1.FloatProvider)({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n stalactite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n wind_speed: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n min_radius_for_wind: (0, core_1.NumberNode)({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: (0, core_1.NumberNode)({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider'),\r\n spread_width: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 })\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 12 })\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:pointed_dripstone': {\r\n chance_of_taller_dripstone: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_directional_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius2: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius3: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n },\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: PlacedFeature,\r\n feature_true: PlacedFeature\r\n },\r\n 'minecraft:random_selector': {\r\n features: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n feature: PlacedFeature\r\n })),\r\n default: PlacedFeature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n allowed_tree_position: Reference('block_predicate_worldgen'),\r\n feature: PlacedFeature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: (0, 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: (0, core_1.ListNode)(PlacedFeature)\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: (0, core_1.NumberNode)({ integer: true }),\r\n hole_count: (0, core_1.NumberNode)({ integer: true }),\r\n requires_block_below: (0, core_1.BooleanNode)(),\r\n valid_blocks: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n force_dirt: (0, core_1.Opt)((0, 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: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: (0, 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: (0, Common_1.IntProvider)({ min: 1, max: 64 }),\r\n min_height_for_leaves: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n offset: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: (0, Common_1.IntProvider)({ min: 1, max: 512 }),\r\n leaf_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: (0, core_1.ListNode)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:twisting_vines': {\r\n spread_width: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n max_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: (0, core_1.NumberNode)({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:tree',\r\n config: {\r\n minimum_size: {\r\n type: 'minecraft:two_layers_feature_size'\r\n },\r\n trunk_placer: {\r\n type: 'minecraft:straight_trunk_placer',\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n type: 'minecraft:blob_foliage_placer',\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('placed_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n feature: ConfiguredFeature,\r\n placement: (0, core_1.ListNode)(Reference('decorator'))\r\n }, { context: 'placed_feature' }), {\r\n default: () => ({\r\n feature: 'minecraft:oak',\r\n placement: [\r\n {\r\n type: 'minecraft:count',\r\n count: 4\r\n },\r\n {\r\n type: 'minecraft:in_square'\r\n },\r\n {\r\n type: 'minecraft:heightmap',\r\n heightmap: 'OCEAN_FLOOR'\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('feature_size', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 81 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n upper_limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n middle_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n noise: Reference('noise_parameters'),\r\n scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 })\r\n };\r\n schemas.register('block_state_provider', (0, core_1.Mod)((0, 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: (0, Common_1.InclusiveRange)({ integer: true, min: 1, max: 64 }),\r\n slow_noise: Reference('noise_parameters'),\r\n slow_scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 }),\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_threshold_provider': {\r\n ...NoiseProvider,\r\n threshold: (0, core_1.NumberNode)({ min: -1, max: 1 }),\r\n high_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n default_state: Reference('block_state'),\r\n low_states: (0, core_1.ListNode)(Reference('block_state')),\r\n high_states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_provider': {\r\n ...NoiseProvider,\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: (0, 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: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n const Offset = {\r\n offset: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n };\r\n schemas.register('block_predicate_worldgen', (0, core_1.Mod)((0, 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: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:any_of': {\r\n predicates: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:has_sturdy_face': {\r\n ...Offset,\r\n direction: StringNode({ enum: 'direction' })\r\n },\r\n 'minecraft:inside_world_bounds': {\r\n ...Offset,\r\n },\r\n 'minecraft:matching_block_tag': {\r\n ...Offset,\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:matching_blocks': {\r\n ...Offset,\r\n blocks: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:matching_fluids': {\r\n ...Offset,\r\n fluids: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'fluid' } }))\r\n },\r\n 'minecraft:not': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:would_survive': {\r\n ...Offset,\r\n state: Reference('block_state')\r\n }\r\n }\r\n }, { context: 'block_predicate' }), {\r\n default: () => ({\r\n type: 'minecraft:true'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n sea_level: (0, core_1.NumberNode)({ integer: true }),\r\n disable_mob_generation: (0, core_1.BooleanNode)(),\r\n noise_caves_enabled: (0, core_1.BooleanNode)(),\r\n noodle_caves_enabled: (0, core_1.BooleanNode)(),\r\n aquifers_enabled: (0, core_1.BooleanNode)(),\r\n ore_veins_enabled: (0, core_1.BooleanNode)(),\r\n legacy_random_source: (0, core_1.BooleanNode)(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: (0, core_1.ObjectNode)({\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n size_horizontal: (0, core_1.NumberNode)({ integer: true }),\r\n size_vertical: (0, core_1.NumberNode)({ integer: true }),\r\n island_noise_override: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n amplified: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n large_biomes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n sampling: (0, core_1.ObjectNode)({\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n xz_factor: (0, core_1.NumberNode)(),\r\n y_factor: (0, core_1.NumberNode)()\r\n }),\r\n bottom_slide: Reference('noise_slider'),\r\n top_slide: Reference('noise_slider'),\r\n terrain_shaper: Reference('terrain_shaper')\r\n }),\r\n surface_rule: Reference('material_rule'),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), node => ({\r\n default: () => Common_1.DefaultNoiseSettings,\r\n validate: (path, value, errors, options) => {\r\n var _a, _b, _c, _d;\r\n value = node.validate(path, value, errors, options);\r\n if (((_a = value === null || value === void 0 ? void 0 : value.noise) === null || _a === void 0 ? void 0 : _a.min_y) + ((_b = value === null || value === void 0 ? void 0 : value.noise) === null || _b === void 0 ? void 0 : _b.height) > 2047) {\r\n errors.add(path.push('noise').push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if (((_c = value === null || value === void 0 ? void 0 : value.noise) === null || _c === void 0 ? void 0 : _c.height) % 16 !== 0) {\r\n errors.add(path.push('noise').push('height'), 'error.height_multiple', 16);\r\n }\r\n if (((_d = value === null || value === void 0 ? void 0 : value.noise) === null || _d === void 0 ? void 0 : _d.min_y) % 16 !== 0) {\r\n errors.add(path.push('noise').push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n schemas.register('noise_slider', (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)(),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n }));\r\n schemas.register('generator_structures', (0, core_1.ObjectNode)({\r\n stronghold: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n distance: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n spread: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n spacing: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n separation: (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n schemas.register('terrain_shaper', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n offset: Reference('terrain_spline'),\r\n factor: Reference('terrain_spline'),\r\n jaggedness: Reference('terrain_spline'),\r\n }, { context: 'terrain_shaper' }), {\r\n default: () => ({\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0,\r\n })\r\n }));\r\n schemas.register('terrain_spline', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)()\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n coordinate: (0, core_1.Mod)(StringNode({ enum: ['continents', 'erosion', 'weirdness', 'ridges'] }), { default: () => 'continents' }),\r\n points: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n location: (0, core_1.NumberNode)(),\r\n derivative: (0, core_1.NumberNode)(),\r\n value: Reference('terrain_spline')\r\n }))\r\n }, { category: 'function' })\r\n }\r\n ], { context: 'terrain_spline', choiceContext: 'terrain_spline' }), {\r\n default: () => 0\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: (0, core_1.NumberNode)({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n cluster_probability: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceRuleSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceRuleSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('material_rule', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_rule' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block': {\r\n result_state: Reference('block_state'),\r\n },\r\n 'minecraft:condition': {\r\n if_true: Reference('material_condition'),\r\n then_run: Reference('material_rule')\r\n },\r\n 'minecraft:sequence': {\r\n sequence: (0, core_1.ListNode)(Reference('material_rule'))\r\n }\r\n }\r\n }, { context: 'material_rule', category: 'pool' }), {\r\n default: () => ({\r\n type: 'minecraft:block',\r\n result_state: {\r\n Name: 'minecraft:stone'\r\n }\r\n })\r\n }));\r\n schemas.register('material_condition', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_condition' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:biome': {\r\n biome_is: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:noise_threshold': {\r\n noise: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n min_threshold: (0, core_1.NumberNode)(),\r\n max_threshold: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:not': {\r\n invert: Reference('material_condition')\r\n },\r\n 'minecraft:stone_depth': {\r\n offset: (0, core_1.NumberNode)({ integer: true }),\r\n surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_surface_depth: (0, core_1.BooleanNode)(),\r\n add_surface_secondary_depth: (0, core_1.BooleanNode)(),\r\n },\r\n 'minecraft:vertical_gradient': {\r\n random_name: StringNode(),\r\n true_at_and_below: Reference('vertical_anchor'),\r\n false_at_and_above: Reference('vertical_anchor'),\r\n },\r\n 'minecraft:water': {\r\n offset: (0, core_1.NumberNode)({ integer: true }),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, core_1.BooleanNode)()\r\n },\r\n 'minecraft:y_above': {\r\n anchor: Reference('vertical_anchor'),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, core_1.BooleanNode)()\r\n }\r\n }\r\n }, { context: 'material_condition' }), {\r\n default: () => ({\r\n type: 'minecraft:biome',\r\n is_biome: 'minecraft:plains'\r\n })\r\n }));\r\n}\r\nexports.initSurfaceRuleSchemas = initSurfaceRuleSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('template_pool', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: (0, core_1.ListNode)(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceRule_1 = require(\"./SurfaceRule\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts` has exports. It should be initialized first. \r\n (0, ProcessorList_1.initProcessorListSchemas)(schemas, collections);\r\n (0, Biome_1.initBiomeSchemas)(schemas, collections);\r\n (0, Carver_1.initCarverSchemas)(schemas, collections);\r\n (0, Decorator_1.initDecoratorSchemas)(schemas, collections);\r\n (0, Feature_1.initFeatureSchemas)(schemas, collections);\r\n (0, NoiseSettings_1.initNoiseSettingsSchemas)(schemas, collections);\r\n (0, StructureFeature_1.initStructureFeatureSchemas)(schemas, collections);\r\n (0, SurfaceRule_1.initSurfaceRuleSchemas)(schemas, collections);\r\n (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n generate_features: (0, core_1.BooleanNode)(),\r\n bonus_chest: (0, core_1.BooleanNode)(),\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n dimensions: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:overworld\"\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:nether\"\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, DimensionType_1.initDimensionTypeSchemas)(schemas, collections);\r\n (0, Dimension_1.initDimensionSchemas)(schemas, collections);\r\n (0, ItemModifier_1.initItemModifierSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, TextComponent_1.initTextComponentSchemas)(schemas, collections);\r\n (0, worldgen_1.initWorldgenSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, schemas_1.initSchemas)(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n"],"names":["core_1","require$$0","require$$1","Common_1","require$$2","ProcessorList_1","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","this"],"mappings":"+1BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EACrC,GAAA,gBAAG,OAC1B,YAAyB,EAAa,CAClC,EAAY,SAAS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,6BACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,+BACA,uBACA,6BACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,gCACA,0BACA,yBACA,6BACA,2BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,uBACA,2BACA,2BACR,CAAK,EACD,EAAY,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,SACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,MACR,CAAK,EACD,EAAY,SAAS,WAAY,CAC7B,WACA,WACA,YACA,WACR,CAAK,EACD,EAAY,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,eACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,eACA,OACA,SACA,eACR,CAAK,EACD,EAAY,SAAS,iCAAkC,CACnD,gCACA,sCACA,qBACR,CAAK,EACD,EAAY,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,cACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,SACR,CAAK,EACD,EAAY,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,iBACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,aACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,kBACR,CAAK,EACD,EAAY,SAAS,kBAAmB,CACpC,MACA,QACR,CAAK,EACD,EAAY,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,iBACR,CAAK,EACD,EAAY,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,QACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,QACA,SACA,UACA,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,OACR,CAAK,EACD,EAAY,SAAS,eAAgB,CACjC,QACA,SACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,OACA,KACA,QACA,OACA,QACA,MACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,IACA,IACA,GACR,CAAK,EACD,EAAY,SAAS,mBAAoB,CACrC,wBACA,uBACA,wBACA,uBACA,MACA,OACA,SACA,OACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,QACA,MACR,CAAK,EA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"} \ No newline at end of file +{"version":3,"file":"index.f8251f36.js","sources":["../../node_modules/@mcschema/java-1.18/lib/Collections.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.18/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.18/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.18/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.18/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.18/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.18/lib/LootContext.js","../../node_modules/@mcschema/java-1.18/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.18/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.18/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/SurfaceRule.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.18/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.18/lib/schemas/index.js","../../node_modules/@mcschema/java-1.18/lib/index.js"],"sourcesContent":["\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:fall_from_height',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:lightning_strike',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:ride_entity_in_lava',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:started_riding',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:using_item',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'killer',\r\n 'direct_killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mountain',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end',\r\n 'underground'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n collections.register('banner_pattern', [\r\n 'base',\r\n 'square_bottom_left',\r\n 'square_bottom_right',\r\n 'square_top_left',\r\n 'square_top_right',\r\n 'stripe_bottom',\r\n 'stripe_top',\r\n 'stripe_left',\r\n 'stripe_right',\r\n 'stripe_center',\r\n 'stripe_middle',\r\n 'stripe_downright',\r\n 'stripe_downleft',\r\n 'small_stripes',\r\n 'cross',\r\n 'straight_cross',\r\n 'triangle_bottom',\r\n 'triangle_top',\r\n 'triangles_bottom',\r\n 'triangles_top',\r\n 'diagonal_left',\r\n 'diagonal_up_right',\r\n 'diagonal_up_left',\r\n 'diagonal_right',\r\n 'circle',\r\n 'rhombus',\r\n 'half_vertical',\r\n 'half_horizontal',\r\n 'half_vertical_right',\r\n 'half_horizontal_bottom',\r\n 'border',\r\n 'curly_border',\r\n 'gradient',\r\n 'gradient_up',\r\n 'bricks',\r\n 'globe',\r\n 'creeper',\r\n 'skull',\r\n 'flower',\r\n 'mojang',\r\n 'piglin'\r\n ]);\r\n collections.register('dye_color', [\r\n 'white',\r\n 'orange',\r\n 'magenta',\r\n 'light_blue',\r\n 'yellow',\r\n 'lime',\r\n 'pink',\r\n 'gray',\r\n 'light_gray',\r\n 'cyan',\r\n 'purple',\r\n 'blue',\r\n 'brown',\r\n 'green',\r\n 'red',\r\n 'black'\r\n ]);\r\n collections.register('cave_surface', [\r\n 'floor',\r\n 'ceiling'\r\n ]);\r\n collections.register('direction', [\r\n 'down',\r\n 'up',\r\n 'north',\r\n 'east',\r\n 'south',\r\n 'west'\r\n ]);\r\n collections.register('axis', [\r\n 'x',\r\n 'y',\r\n 'z'\r\n ]);\r\n collections.register('display_position', [\r\n 'firstperson_righthand',\r\n 'firstperson_lefthand',\r\n 'thirdperson_righthand',\r\n 'thirdperson_lefthand',\r\n 'gui',\r\n 'head',\r\n 'ground',\r\n 'fixed'\r\n ]);\r\n collections.register('gui_light', [\r\n 'front',\r\n 'side'\r\n ]);\r\n collections.register('item_model_predicates', [\r\n 'angle',\r\n 'blocking',\r\n 'broken',\r\n 'cast',\r\n 'charged',\r\n 'cooldown',\r\n 'custom_model_data',\r\n 'damage',\r\n 'damaged',\r\n 'firework',\r\n 'lefthanded',\r\n 'pull',\r\n 'pulling',\r\n 'throwing',\r\n 'time'\r\n ]);\r\n collections.register('cat_texture', [\r\n 'textures/entity/cat/tabby.png',\r\n 'textures/entity/cat/black.png',\r\n 'textures/entity/cat/red.png',\r\n 'textures/entity/cat/siamese.png',\r\n 'textures/entity/cat/british_shorthair.png',\r\n 'textures/entity/cat/calico.png',\r\n 'textures/entity/cat/persian.png',\r\n 'textures/entity/cat/ragdoll.png',\r\n 'textures/entity/cat/white.png',\r\n 'textures/entity/cat/jellie.png',\r\n 'textures/entity/cat/all_black.png'\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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n player: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, 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: (0, 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: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: (0, core_1.Opt)(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:fall_from_height': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: (0, 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: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: (0, 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: (0, 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: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, 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: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: (0, core_1.Opt)(Reference('float_bounds'))\r\n },\r\n 'minecraft:used_totem': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, core_1.ObjectNode)({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, core_1.NumberNode)()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, core_1.MapNode)(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, core_1.Opt)(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, core_1.MapNode)(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n OR: (0, core_1.ListNode)(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, Model_1.initModelSchemas)(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.InclusiveRange = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nconst DefaultStructureSettings = {\r\n 'minecraft:igloo': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357618\r\n },\r\n 'minecraft:mansion': {\r\n spacing: 80,\r\n separation: 20,\r\n salt: 10387319\r\n },\r\n 'minecraft:jungle_pyramid': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357619\r\n },\r\n 'minecraft:nether_fossil': {\r\n spacing: 2,\r\n separation: 1,\r\n salt: 14357921\r\n },\r\n 'minecraft:stronghold': {\r\n spacing: 1,\r\n separation: 0,\r\n salt: 0\r\n },\r\n 'minecraft:shipwreck': {\r\n spacing: 24,\r\n separation: 4,\r\n salt: 165745295\r\n },\r\n 'minecraft:mineshaft': {\r\n spacing: 1,\r\n separation: 0,\r\n salt: 0\r\n },\r\n 'minecraft:desert_pyramid': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357617\r\n },\r\n 'minecraft:ruined_portal': {\r\n spacing: 40,\r\n separation: 15,\r\n salt: 34222645\r\n },\r\n 'minecraft:fortress': {\r\n spacing: 27,\r\n separation: 4,\r\n salt: 30084232\r\n },\r\n 'minecraft:pillager_outpost': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 165745296\r\n },\r\n 'minecraft:village': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 10387312\r\n },\r\n 'minecraft:endcity': {\r\n spacing: 20,\r\n separation: 11,\r\n salt: 10387313\r\n },\r\n 'minecraft:buried_treasure': {\r\n spacing: 1,\r\n separation: 0,\r\n salt: 0\r\n },\r\n 'minecraft:ocean_ruin': {\r\n spacing: 20,\r\n separation: 8,\r\n salt: 14357621\r\n },\r\n 'minecraft:bastion_remnant': {\r\n spacing: 27,\r\n separation: 4,\r\n salt: 30084232\r\n },\r\n 'minecraft:swamp_hut': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357620\r\n },\r\n 'minecraft:monument': {\r\n spacing: 32,\r\n separation: 5,\r\n salt: 10387313\r\n }\r\n};\r\nexports.DefaultNoiseSettings = {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n noise_caves_enabled: true,\r\n deepslate_enabled: true,\r\n ore_veins_enabled: true,\r\n noodle_caves_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 1,\r\n density_offset: -0.51875,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => (0, core_1.Opt)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer })),\r\n max: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)(Reference('number_provider')),\r\n max: (0, core_1.Opt)(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: (0, 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] = (0, 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 = (0, core_1.ObjectNode)({\r\n type: (0, core_1.Mod)((0, 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 (0, 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: (0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, 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: (0, core_1.NumberNode)(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_exclusive: (0, core_1.NumberNode)(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n plateau: (0, core_1.NumberNode)()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', (0, 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: (0, core_1.NumberNode)({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n });\r\n schemas.register('int_provider', (0, exports.IntProvider)());\r\n schemas.register('vertical_anchor', (0, 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: (0, core_1.ObjectNode)({\r\n [t]: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('height_provider'),\r\n }))\r\n }\r\n }));\r\n exports.InclusiveRange = (config) => (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_inclusive: (0, core_1.NumberNode)(config)\r\n }, { context: 'range' });\r\n schemas.register('noise_parameters', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n firstOctave: (0, core_1.NumberNode)({ integer: true }),\r\n amplitudes: (0, core_1.ListNode)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)(StringNode({ enum: 'map_feature' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_contents': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_loot_table': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, 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) => (0, 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) => (0, core_1.ObjectOrPreset)(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:netherrack'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:lava'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 0,\r\n density_offset: -0.030078125,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n structures: DefaultStructureSettings,\r\n }\r\n },\r\n 'minecraft:end': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: -2147483648,\r\n sea_level: 0,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:end_stone'\r\n },\r\n default_fluid: {\r\n Name: 'minecraft:air'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n density_factor: 0,\r\n density_offset: 0,\r\n island_noise_override: true,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n structures: DefaultStructureSettings\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n noise_caves_enabled: true,\r\n deepslate_enabled: true,\r\n ore_veins_enabled: true,\r\n noodle_caves_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 1,\r\n density_offset: -0.51875,\r\n amplified: true,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n },\r\n },\r\n 'minecraft:caves': {\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 0,\r\n density_offset: -0.030078125,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: -2147483648,\r\n sea_level: 0,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n density_factor: 0,\r\n density_offset: 0,\r\n island_noise_override: true,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, Common_1.DimensionTypePresets)(Reference('dimension_type')),\r\n generator: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n settings: (0, Common_1.NoiseSettingsPresets)(Reference('noise_settings')),\r\n biome_source: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:nether'] } })),\r\n biomes: (0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 62 })),\r\n biomes: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: (0, core_1.NumberNode)({ integer: true })\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: (0, core_1.ObjectNode)({\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n features: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n layers: (0, 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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ListNode)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n ultrawarm: (0, core_1.BooleanNode)(),\r\n natural: (0, core_1.BooleanNode)(),\r\n piglin_safe: (0, core_1.BooleanNode)(),\r\n respawn_anchor_works: (0, core_1.BooleanNode)(),\r\n bed_works: (0, core_1.BooleanNode)(),\r\n has_raids: (0, core_1.BooleanNode)(),\r\n has_skylight: (0, core_1.BooleanNode)(),\r\n has_ceiling: (0, core_1.BooleanNode)(),\r\n coordinate_scale: (0, core_1.NumberNode)({ min: 0.00001, max: 30000000 }),\r\n ambient_light: (0, core_1.NumberNode)(),\r\n fixed_time: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n logical_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n effects: (0, 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: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, 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', (0, core_1.ObjectOrList)(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: (0, core_1.Opt)((0, core_1.ListNode)(Reference('condition')))\r\n };\r\n schemas.register('function', (0, core_1.Mod)((0, 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]: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: (0, core_1.Opt)(Reference('number_provider')),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.StringOrList)(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst CURRENT_PACK_FORMAT = 8;\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, 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: (0, 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 = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, 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', (0, core_1.ObjectNode)({\r\n blocks: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)({\r\n position: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: (0, core_1.Opt)(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n { type: 'boolean', node: (0, core_1.BooleanNode)(), change: _ => true },\r\n {\r\n type: 'object', node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate'))),\r\n looking_at: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n stepping_on: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: (0, core_1.Opt)(Reference('entity_predicate')),\r\n passenger: (0, core_1.Opt)(Reference('entity_predicate')),\r\n targeted_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n player: (0, core_1.Opt)(Reference('player_predicate')),\r\n lightning_bolt: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n blocks_set_on_fire: (0, core_1.Opt)(Reference('int_bounds')),\r\n entity_struck: (0, core_1.Opt)(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n in_open_water: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n catType: (0, core_1.Opt)(StringNode({ enum: 'cat_texture' })),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, core_1.Opt)(StringNode()) /* TODO */,\r\n font: (0, core_1.Opt)(StringNode()),\r\n bold: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component')),\r\n contents: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tag: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n })),\r\n contents: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n separator: (0, 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', (0, core_1.Mod)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n temperature: (0, core_1.NumberNode)(),\r\n downfall: (0, core_1.NumberNode)(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n creature_spawn_probability: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n effects: (0, core_1.ObjectNode)({\r\n sky_color: (0, core_1.NumberNode)({ color: true }),\r\n fog_color: (0, core_1.NumberNode)({ color: true }),\r\n water_color: (0, core_1.NumberNode)({ color: true }),\r\n water_fog_color: (0, core_1.NumberNode)({ color: true }),\r\n grass_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n foliage_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n grass_color_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: (0, core_1.Opt)(StringNode()),\r\n mood_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_delay: (0, core_1.NumberNode)({ integer: true }),\r\n block_search_extent: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)()\r\n })),\r\n additions_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n music: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n min_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n max_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n replace_current_music: (0, core_1.BooleanNode)()\r\n })),\r\n particle: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n options: (0, core_1.ObjectNode)({\r\n type: StringNode()\r\n }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }))\r\n }),\r\n spawners: (0, 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 ] }), (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n minCount: (0, core_1.NumberNode)({ integer: true }),\r\n maxCount: (0, 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: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n energy_budget: (0, core_1.NumberNode)(),\r\n charge: (0, 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: (0, core_1.MapNode)(StringNode({ enum: ['air', 'liquid'] }), (0, core_1.Mod)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })), { category: () => 'predicate' }), { maxLength: 11 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: (0, Common_1.FloatProvider)(),\r\n shape: (0, core_1.ObjectNode)({\r\n distance_factor: (0, Common_1.FloatProvider)(),\r\n thickness: (0, Common_1.FloatProvider)(),\r\n width_smoothness: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n horizontal_radius_factor: (0, Common_1.FloatProvider)(),\r\n vertical_radius_default_factor: (0, core_1.NumberNode)(),\r\n vertical_radius_center_factor: (0, core_1.NumberNode)()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n vertical_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n floor_level: (0, Common_1.FloatProvider)({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: (0, core_1.ObjectNode)({\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: (0, Common_1.FloatProvider)(),\r\n lava_level: Reference('vertical_anchor'),\r\n debug_settings: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n debug_mode: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n air_state: (0, core_1.Opt)(Reference('block_state')),\r\n water_state: (0, core_1.Opt)(Reference('block_state')),\r\n lava_state: (0, core_1.Opt)(Reference('block_state')),\r\n barrier_state: (0, core_1.Opt)(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('decorator', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/placement_modifier_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_predicate_filter': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:rarity_filter': {\r\n chance: (0, core_1.NumberNode)({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:count_on_every_layer': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:noise_threshold_count': {\r\n noise_level: (0, core_1.NumberNode)(),\r\n below_noise: (0, core_1.NumberNode)({ integer: true }),\r\n above_noise: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:noise_based_count': {\r\n noise_to_count_ratio: (0, core_1.NumberNode)({ integer: true }),\r\n noise_factor: (0, core_1.NumberNode)(),\r\n noise_offset: (0, core_1.Opt)((0, core_1.NumberNode)())\r\n },\r\n 'minecraft:environment_scan': {\r\n direction_of_search: StringNode({ enum: ['up', 'down'] }),\r\n max_steps: (0, core_1.NumberNode)({ integer: true, min: 1, max: 32 }),\r\n target_condition: Reference('block_predicate_worldgen'),\r\n allowed_search_condition: (0, core_1.Opt)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:height_range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:random_offset': {\r\n xz_spread: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n y_spread: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n },\r\n 'minecraft:surface_relative_threshold_filter': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n min_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:surface_water_depth_filter': {\r\n max_water_depth: (0, core_1.NumberNode)({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.Processors = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n processors: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n position_predicate: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n max_dist: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n min_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n max_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', (0, 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', (0, 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: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const ConfiguredFeature = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const PlacedFeature = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('placed_feature')\r\n }\r\n ], { choiceContext: 'placed_feature' });\r\n const RandomPatchConfig = {\r\n tries: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 })),\r\n xz_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n y_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n feature: PlacedFeature,\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 8 }),\r\n half_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4 }),\r\n targets: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n };\r\n const TargetBlockState = (0, core_1.ObjectNode)({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n };\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: 'cave_surface' }),\r\n depth: (0, Common_1.IntProvider)({ min: 1, max: 128 }),\r\n vertical_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n extra_edge_column_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n vegetation_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n xz_radius: (0, Common_1.IntProvider)(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: PlacedFeature\r\n };\r\n schemas.register('configured_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: (0, core_1.ObjectNode)({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: (0, Common_1.IntProvider)({ min: 0, max: 3 }),\r\n height: (0, Common_1.IntProvider)({ min: 1, max: 10 })\r\n },\r\n 'minecraft:block_column': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allowed_placement: Reference('block_predicate_worldgen'),\r\n prioritize_tip: (0, core_1.BooleanNode)(),\r\n layers: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n height: (0, Common_1.IntProvider)({ min: 0 }),\r\n provider: Reference('block_state_provider')\r\n }))\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n rim_size: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 1, max: 512 }),\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n height_deviation: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n density: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n wetness: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: (0, core_1.BooleanNode)(),\r\n exit: (0, core_1.Opt)(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n crystal_beam_target: (0, core_1.Opt)(Reference('block_pos')),\r\n spikes: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n centerX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n centerZ: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n guarded: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: (0, 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: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n filling: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n inner_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n middle_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n outer_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n }),\r\n crack: (0, core_1.ObjectNode)({\r\n generate_crack_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n base_crack_size: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 5 })),\r\n crack_point_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 10 })),\r\n }),\r\n noise_multiplier: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_potential_placements_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n outer_wall_distance: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n distribution_points: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n point_offset: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 0, max: 10 })),\r\n min_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n invalid_blocks_threshold: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n can_place_on_floor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_ceiling: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_wall: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_be_placed_on: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n fluid: Reference('block_state_provider'),\r\n barrier: Reference('block_state_provider')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1, max: 512 })),\r\n column_radius: (0, Common_1.IntProvider)({ min: 0, max: 60 }),\r\n height_scale: (0, Common_1.FloatProvider)({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n stalactite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n wind_speed: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n min_radius_for_wind: (0, core_1.NumberNode)({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: (0, core_1.NumberNode)({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider'),\r\n spread_width: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 })\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 12 })\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:pointed_dripstone': {\r\n chance_of_taller_dripstone: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_directional_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius2: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius3: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n },\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: PlacedFeature,\r\n feature_true: PlacedFeature\r\n },\r\n 'minecraft:random_selector': {\r\n features: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n feature: PlacedFeature\r\n })),\r\n default: PlacedFeature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n allowed_tree_position: Reference('block_predicate_worldgen'),\r\n feature: PlacedFeature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: (0, 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: (0, core_1.ListNode)(PlacedFeature)\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: (0, core_1.NumberNode)({ integer: true }),\r\n hole_count: (0, core_1.NumberNode)({ integer: true }),\r\n requires_block_below: (0, core_1.BooleanNode)(),\r\n valid_blocks: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n force_dirt: (0, core_1.Opt)((0, 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: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: (0, 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: (0, Common_1.IntProvider)({ min: 1, max: 64 }),\r\n min_height_for_leaves: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n offset: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: (0, Common_1.IntProvider)({ min: 1, max: 512 }),\r\n leaf_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: (0, core_1.ListNode)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:twisting_vines': {\r\n spread_width: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n max_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: (0, core_1.NumberNode)({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:tree',\r\n config: {\r\n minimum_size: {\r\n type: 'minecraft:two_layers_feature_size'\r\n },\r\n trunk_placer: {\r\n type: 'minecraft:straight_trunk_placer',\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n type: 'minecraft:blob_foliage_placer',\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('placed_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n feature: ConfiguredFeature,\r\n placement: (0, core_1.ListNode)(Reference('decorator'))\r\n }, { context: 'placed_feature' }), {\r\n default: () => ({\r\n feature: 'minecraft:oak',\r\n placement: [\r\n {\r\n type: 'minecraft:count',\r\n count: 4\r\n },\r\n {\r\n type: 'minecraft:in_square'\r\n },\r\n {\r\n type: 'minecraft:heightmap',\r\n heightmap: 'OCEAN_FLOOR'\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('feature_size', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 81 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n upper_limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n middle_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n noise: Reference('noise_parameters'),\r\n scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 })\r\n };\r\n schemas.register('block_state_provider', (0, core_1.Mod)((0, 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: (0, Common_1.InclusiveRange)({ integer: true, min: 1, max: 64 }),\r\n slow_noise: Reference('noise_parameters'),\r\n slow_scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 }),\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_threshold_provider': {\r\n ...NoiseProvider,\r\n threshold: (0, core_1.NumberNode)({ min: -1, max: 1 }),\r\n high_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n default_state: Reference('block_state'),\r\n low_states: (0, core_1.ListNode)(Reference('block_state')),\r\n high_states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_provider': {\r\n ...NoiseProvider,\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: (0, 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: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n const Offset = {\r\n offset: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n };\r\n schemas.register('block_predicate_worldgen', (0, core_1.Mod)((0, 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: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:any_of': {\r\n predicates: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:has_sturdy_face': {\r\n ...Offset,\r\n direction: StringNode({ enum: 'direction' })\r\n },\r\n 'minecraft:inside_world_bounds': {\r\n ...Offset,\r\n },\r\n 'minecraft:matching_block_tag': {\r\n ...Offset,\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:matching_blocks': {\r\n ...Offset,\r\n blocks: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:matching_fluids': {\r\n ...Offset,\r\n fluids: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'fluid' } }))\r\n },\r\n 'minecraft:not': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:would_survive': {\r\n ...Offset,\r\n state: Reference('block_state')\r\n }\r\n }\r\n }, { context: 'block_predicate' }), {\r\n default: () => ({\r\n type: 'minecraft:true'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n sea_level: (0, core_1.NumberNode)({ integer: true }),\r\n disable_mob_generation: (0, core_1.BooleanNode)(),\r\n noise_caves_enabled: (0, core_1.BooleanNode)(),\r\n noodle_caves_enabled: (0, core_1.BooleanNode)(),\r\n aquifers_enabled: (0, core_1.BooleanNode)(),\r\n ore_veins_enabled: (0, core_1.BooleanNode)(),\r\n legacy_random_source: (0, core_1.BooleanNode)(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: (0, core_1.ObjectNode)({\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n size_horizontal: (0, core_1.NumberNode)({ integer: true }),\r\n size_vertical: (0, core_1.NumberNode)({ integer: true }),\r\n island_noise_override: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n amplified: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n large_biomes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n sampling: (0, core_1.ObjectNode)({\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n xz_factor: (0, core_1.NumberNode)(),\r\n y_factor: (0, core_1.NumberNode)()\r\n }),\r\n bottom_slide: Reference('noise_slider'),\r\n top_slide: Reference('noise_slider'),\r\n terrain_shaper: Reference('terrain_shaper')\r\n }),\r\n surface_rule: Reference('material_rule'),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), node => ({\r\n default: () => Common_1.DefaultNoiseSettings,\r\n validate: (path, value, errors, options) => {\r\n var _a, _b, _c, _d;\r\n value = node.validate(path, value, errors, options);\r\n if (((_a = value === null || value === void 0 ? void 0 : value.noise) === null || _a === void 0 ? void 0 : _a.min_y) + ((_b = value === null || value === void 0 ? void 0 : value.noise) === null || _b === void 0 ? void 0 : _b.height) > 2047) {\r\n errors.add(path.push('noise').push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if (((_c = value === null || value === void 0 ? void 0 : value.noise) === null || _c === void 0 ? void 0 : _c.height) % 16 !== 0) {\r\n errors.add(path.push('noise').push('height'), 'error.height_multiple', 16);\r\n }\r\n if (((_d = value === null || value === void 0 ? void 0 : value.noise) === null || _d === void 0 ? void 0 : _d.min_y) % 16 !== 0) {\r\n errors.add(path.push('noise').push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n schemas.register('noise_slider', (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)(),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n }));\r\n schemas.register('generator_structures', (0, core_1.ObjectNode)({\r\n stronghold: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n distance: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n spread: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n spacing: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n separation: (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n schemas.register('terrain_shaper', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n offset: Reference('terrain_spline'),\r\n factor: Reference('terrain_spline'),\r\n jaggedness: Reference('terrain_spline'),\r\n }, { context: 'terrain_shaper' }), {\r\n default: () => ({\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0,\r\n })\r\n }));\r\n schemas.register('terrain_spline', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)()\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n coordinate: (0, core_1.Mod)(StringNode({ enum: ['continents', 'erosion', 'weirdness', 'ridges'] }), { default: () => 'continents' }),\r\n points: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n location: (0, core_1.NumberNode)(),\r\n derivative: (0, core_1.NumberNode)(),\r\n value: Reference('terrain_spline')\r\n }))\r\n }, { category: 'function' })\r\n }\r\n ], { context: 'terrain_spline', choiceContext: 'terrain_spline' }), {\r\n default: () => 0\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: (0, core_1.NumberNode)({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n cluster_probability: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceRuleSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceRuleSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('material_rule', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_rule' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block': {\r\n result_state: Reference('block_state'),\r\n },\r\n 'minecraft:condition': {\r\n if_true: Reference('material_condition'),\r\n then_run: Reference('material_rule')\r\n },\r\n 'minecraft:sequence': {\r\n sequence: (0, core_1.ListNode)(Reference('material_rule'))\r\n }\r\n }\r\n }, { context: 'material_rule', category: 'pool' }), {\r\n default: () => ({\r\n type: 'minecraft:block',\r\n result_state: {\r\n Name: 'minecraft:stone'\r\n }\r\n })\r\n }));\r\n schemas.register('material_condition', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_condition' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:biome': {\r\n biome_is: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:noise_threshold': {\r\n noise: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n min_threshold: (0, core_1.NumberNode)(),\r\n max_threshold: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:not': {\r\n invert: Reference('material_condition')\r\n },\r\n 'minecraft:stone_depth': {\r\n offset: (0, core_1.NumberNode)({ integer: true }),\r\n surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_surface_depth: (0, core_1.BooleanNode)(),\r\n add_surface_secondary_depth: (0, core_1.BooleanNode)(),\r\n },\r\n 'minecraft:vertical_gradient': {\r\n random_name: StringNode(),\r\n true_at_and_below: Reference('vertical_anchor'),\r\n false_at_and_above: Reference('vertical_anchor'),\r\n },\r\n 'minecraft:water': {\r\n offset: (0, core_1.NumberNode)({ integer: true }),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, core_1.BooleanNode)()\r\n },\r\n 'minecraft:y_above': {\r\n anchor: Reference('vertical_anchor'),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, core_1.BooleanNode)()\r\n }\r\n }\r\n }, { context: 'material_condition' }), {\r\n default: () => ({\r\n type: 'minecraft:biome',\r\n is_biome: 'minecraft:plains'\r\n })\r\n }));\r\n}\r\nexports.initSurfaceRuleSchemas = initSurfaceRuleSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('template_pool', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: (0, core_1.ListNode)(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceRule_1 = require(\"./SurfaceRule\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts` has exports. It should be initialized first. \r\n (0, ProcessorList_1.initProcessorListSchemas)(schemas, collections);\r\n (0, Biome_1.initBiomeSchemas)(schemas, collections);\r\n (0, Carver_1.initCarverSchemas)(schemas, collections);\r\n (0, Decorator_1.initDecoratorSchemas)(schemas, collections);\r\n (0, Feature_1.initFeatureSchemas)(schemas, collections);\r\n (0, NoiseSettings_1.initNoiseSettingsSchemas)(schemas, collections);\r\n (0, StructureFeature_1.initStructureFeatureSchemas)(schemas, collections);\r\n (0, SurfaceRule_1.initSurfaceRuleSchemas)(schemas, collections);\r\n (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n generate_features: (0, core_1.BooleanNode)(),\r\n bonus_chest: (0, core_1.BooleanNode)(),\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n dimensions: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:overworld\"\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:nether\"\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, DimensionType_1.initDimensionTypeSchemas)(schemas, collections);\r\n (0, Dimension_1.initDimensionSchemas)(schemas, collections);\r\n (0, ItemModifier_1.initItemModifierSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, TextComponent_1.initTextComponentSchemas)(schemas, collections);\r\n (0, worldgen_1.initWorldgenSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, schemas_1.initSchemas)(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n"],"names":["core_1","require$$0","require$$1","Common_1","require$$2","ProcessorList_1","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","this"],"mappings":"+1BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EACrC,GAAA,gBAAG,OAC1B,YAAyB,EAAa,CAClC,EAAY,SAAS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,6BACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,+BACA,uBACA,6BACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,gCACA,0BACA,yBACA,6BACA,2BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,uBACA,2BACA,2BACR,CAAK,EACD,EAAY,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,SACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,MACR,CAAK,EACD,EAAY,SAAS,WAAY,CAC7B,WACA,WACA,YACA,WACR,CAAK,EACD,EAAY,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,eACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,eACA,OACA,SACA,eACR,CAAK,EACD,EAAY,SAAS,iCAAkC,CACnD,gCACA,sCACA,qBACR,CAAK,EACD,EAAY,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,cACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,SACR,CAAK,EACD,EAAY,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,iBACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,aACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,kBACR,CAAK,EACD,EAAY,SAAS,kBAAmB,CACpC,MACA,QACR,CAAK,EACD,EAAY,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,iBACR,CAAK,EACD,EAAY,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,QACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,QACA,SACA,UACA,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,OACR,CAAK,EACD,EAAY,SAAS,eAAgB,CACjC,QACA,SACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,OACA,KACA,QACA,OACA,QACA,MACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,IACA,IACA,GACR,CAAK,EACD,EAAY,SAAS,mBAAoB,CACrC,wBACA,uBACA,wBACA,uBACA,MACA,OACA,SACA,OACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,QACA,MACR,CAAK,EA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"} \ No newline at end of file diff --git a/assets/index.html b/assets/index.html index 053ba9d0..8df9603e 100644 --- a/assets/index.html +++ b/assets/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.36354f76.js"></script> + <script type="module" crossorigin src="/assets/index.18869b2a.js"></script> <link rel="stylesheet" href="/assets/index.9501af8b.css"> </head> <body> diff --git a/assets/json.c327d69b.js b/assets/json.c327d69b.js new file mode 100644 index 00000000..5a742894 --- /dev/null +++ b/assets/json.c327d69b.js @@ -0,0 +1,3 @@ +function y(i,f){return f.forEach(function(h){h&&typeof h!="string"&&!Array.isArray(h)&&Object.keys(h).forEach(function(u){if(u!=="default"&&!(u in i)){var d=Object.getOwnPropertyDescriptor(h,u);Object.defineProperty(i,u,d.get?d:{enumerable:!0,get:function(){return h[u]}})}})}),Object.freeze(Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}))}var v={},w={};w.id="ace/mode/json_worker";w.src=`"no use strict";!function(window){function resolveModuleId(id,paths){for(var testPath=id,tail="";testPath;){var alias=paths[testPath];if("string"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,"/")+(tail||alias.main||alias.name);if(alias===!1)return"";var i=testPath.lastIndexOf("/");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:"error",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf("!")){var chunks=moduleName.split("!");return window.normalizeModule(parentId,chunks[0])+"!"+window.normalizeModule(parentId,chunks[1])}if("."==moduleName.charAt(0)){var base=parentId.split("/").slice(0,-1).join("/");for(moduleName=(base?base+"/":"")+moduleName;-1!==moduleName.indexOf(".")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,"").replace(/\\/\\.\\//,"/").replace(/[^\\/]+\\/\\.\\.\\//,"")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error("worker.js acequire() accepts only (parentId, id) as arguments");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log("unable to load "+id);var path=resolveModuleId(id,window.acequire.tlns);return".js"!=path.slice(-3)&&(path+=".js"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,"string"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),"function"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=["require","exports","module"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case"require":return req;case"exports":return module.exports;case"module":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire("ace/lib/event_emitter").EventEmitter,oop=window.acequire("ace/lib/oop"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:"call",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:"event",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error("Unknown command:"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire("ace/lib/es5-shim"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}}(this),ace.define("ace/lib/oop",["require","exports","module"],function(acequire,exports){"use strict";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define("ace/range",["require","exports","module"],function(acequire,exports){"use strict";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){"object"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){"object"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define("ace/apply_delta",["require","exports","module"],function(acequire,exports){"use strict";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||"";switch(delta.action){case"insert":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case"remove":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(acequire,exports){"use strict";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){"object"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?"unshift":"push"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),EventEmitter=acequire("./lib/event_emitter").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.column<point2.column;return point1.row<point2.row||point1.row==point2.row&&bColIsAfter}function $getTransformedPoint(delta,point,moveIfEqual){var deltaIsInsert="insert"==delta.action,deltaRowShift=(deltaIsInsert?1:-1)*(delta.end.row-delta.start.row),deltaColShift=(deltaIsInsert?1:-1)*(delta.end.column-delta.start.column),deltaStart=delta.start,deltaEnd=deltaIsInsert?deltaStart:delta.end;return $pointsInOrder(point,deltaStart,moveIfEqual)?{row:point.row,column:point.column}:$pointsInOrder(deltaEnd,point,!moveIfEqual)?{row:point.row+deltaRowShift,column:point.column+(point.row==deltaEnd.row?deltaColShift:0)}:{row:deltaStart.row,column:deltaStart.column}}oop.implement(this,EventEmitter),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(delta){if(!(delta.start.row==delta.end.row&&delta.start.row!=this.row||delta.start.row>this.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal("change",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),applyDelta=acequire("./apply_delta").applyDelta,EventEmitter=acequire("./lib/event_emitter").EventEmitter,Range=acequire("./range").Range,Anchor=acequire("./anchor").Anchor,Document=function(textOrLines){this.$lines=[""],0===textOrLines.length?this.$lines=[""]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==="aaa".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,"\\n").split("\\n")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:"\\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\\r\\n";case"unix":return"\\n";default:return this.$autoNewLine||"\\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return"\\r\\n"==text||"\\r"==text||"\\n"==text},this.getLine=function(row){return this.$lines[row]||""},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||"").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(position,["",""])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:"insert",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([""]),column=0):(lines=[""].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:"insert",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:"remove",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:"remove",lines:["",""]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert="insert"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal("change",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(""),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:"insert"==delta.action?"remove":"insert",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define("ace/lib/lang",["require","exports","module"],function(acequire,exports){"use strict";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split("").reverse().join("")},exports.stringRepeat=function(string,count){for(var result="";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,"")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,"")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&"object"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if("object"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if("[object Object]"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^\${}()|[\\]\\/\\\\])/g,"\\\\$1")},exports.escapeHTML=function(str){return str.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<")},exports.getMatchOffsets=function(string,regExp){var matches=[];return string.replace(regExp,function(str){matches.push({offset:arguments[arguments.length-2],length:str.length})}),matches},exports.deferredCall=function(fcn){var timer=null,callback=function(){timer=null,fcn()},deferred=function(timeout){return deferred.cancel(),timer=setTimeout(callback,timeout||0),deferred};return deferred.schedule=deferred,deferred.call=function(){return this.cancel(),fcn(),deferred},deferred.cancel=function(){return clearTimeout(timer),timer=null,deferred},deferred.isPending=function(){return timer},deferred},exports.delayedCall=function(fcn,defaultTimeout){var timer=null,callback=function(){timer=null,fcn()},_self=function(timeout){null==timer&&(timer=setTimeout(callback,timeout||defaultTimeout))};return _self.delay=function(timeout){timer&&clearTimeout(timer),timer=setTimeout(callback,timeout||defaultTimeout)},_self.schedule=_self,_self.call=function(){this.cancel(),fcn()},_self.cancel=function(){timer&&clearTimeout(timer),timer=null},_self.isPending=function(){return timer},_self}}),ace.define("ace/worker/mirror",["require","exports","module","ace/range","ace/document","ace/lib/lang"],function(acequire,exports){"use strict";acequire("../range").Range;var Document=acequire("../document").Document,lang=acequire("../lib/lang"),Mirror=exports.Mirror=function(sender){this.sender=sender;var doc=this.doc=new Document(""),deferredUpdate=this.deferredUpdate=lang.delayedCall(this.onUpdate.bind(this)),_self=this;sender.on("change",function(e){var data=e.data;if(data[0].start)doc.applyDeltas(data);else for(var i=0;data.length>i;i+=2){if(Array.isArray(data[i+1]))var d={action:"insert",start:data[i],lines:data[i+1]};else var d={action:"remove",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define("ace/mode/json/json_parse",["require","exports","module"],function(){"use strict";var at,ch,text,value,escapee={'"':'"',"\\\\":"\\\\","/":"/",b:"\\b",f:"\\f",n:"\\n",r:"\\r",t:" "},error=function(m){throw{name:"SyntaxError",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error("Expected '"+c+"' instead of '"+ch+"'"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string="";for("-"===ch&&(string="-",next("-"));ch>="0"&&"9">=ch;)string+=ch,next();if("."===ch)for(string+=".";next()&&ch>="0"&&"9">=ch;)string+=ch;if("e"===ch||"E"===ch)for(string+=ch,next(),("-"===ch||"+"===ch)&&(string+=ch,next());ch>="0"&&"9">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error("Bad number"),void 0):number},string=function(){var hex,i,uffff,string="";if('"'===ch)for(;next();){if('"'===ch)return next(),string;if("\\\\"===ch)if(next(),"u"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if("string"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error("Bad string")},white=function(){for(;ch&&" ">=ch;)next()},word=function(){switch(ch){case"t":return next("t"),next("r"),next("u"),next("e"),!0;case"f":return next("f"),next("a"),next("l"),next("s"),next("e"),!1;case"n":return next("n"),next("u"),next("l"),next("l"),null}error("Unexpected '"+ch+"'")},array=function(){var array=[];if("["===ch){if(next("["),white(),"]"===ch)return next("]"),array;for(;ch;){if(array.push(value()),white(),"]"===ch)return next("]"),array;next(","),white()}}error("Bad array")},object=function(){var key,object={};if("{"===ch){if(next("{"),white(),"}"===ch)return next("}"),object;for(;ch;){if(key=string(),white(),next(":"),Object.hasOwnProperty.call(object,key)&&error('Duplicate key "'+key+'"'),object[key]=value(),white(),"}"===ch)return next("}"),object;next(","),white()}}error("Bad object")};return value=function(){switch(white(),ch){case"{":return object();case"[":return array();case'"':return string();case"-":return number();default:return ch>="0"&&"9">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=" ",result=value(),white(),ch&&error("Syntax error"),"function"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&"object"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({"":result},""):result}}),ace.define("ace/mode/json_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/json/json_parse"],function(acequire,exports){"use strict";var oop=acequire("../lib/oop"),Mirror=acequire("../worker/mirror").Mirror,parse=acequire("./json/json_parse"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:"error"})}this.sender.emit("annotate",errors)}}.call(JsonWorker.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,"sentinel",{}),"sentinel"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError("Function.prototype.bind called on incompatible "+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,"__defineGetter__"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,"XXX"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0 +}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return"[object Array]"==_toString(obj)});var boxedString=Object("a"),splitString="a"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,thisp=arguments[1],i=-1,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=[],thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError("reduce of empty array with no initial value")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError("reduceRight of empty array with no initial value")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(object,property){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if("object"!=typeof prototype)throw new TypeError("typeof prototype["+typeof prototype+"] != 'object'");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom="undefined"==typeof document||doesDefinePropertyWork(document.createElement("div"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR="Property description must be an object: ",ERR_NON_OBJECT_TARGET="Object.defineProperty called on non-object: ",ERR_ACCESSORS_NOT_SUPPORTED="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(object,property,descriptor){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if("object"!=typeof descriptor&&"function"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,"value"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,"get")&&defineGetter(object,property,descriptor.get),owns(descriptor,"set")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return"function"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name="";owns(object,name);)name+="?";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError("Object.keys called on a non-object");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=" \\n\v\\f\\r \xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\\u2028\\u2029\uFEFF";if(!String.prototype.trim||ws.trim()){ws="["+ws+"]";var trimBeginRegexp=RegExp("^"+ws+ws+"*"),trimEndRegexp=RegExp(ws+ws+"*$");String.prototype.trim=function(){return(this+"").replace(trimBeginRegexp,"").replace(trimEndRegexp,"")}}var toObject=function(o){if(null==o)throw new TypeError("can't convert "+o+" to object");return Object(o)}});`;ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(i,f,h){var u=i("../lib/oop"),d=i("./text_highlight_rules").TextHighlightRules,c=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};u.inherits(c,d),f.JsonHighlightRules=c});ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(i,f,h){var u=i("../range").Range,d=function(){};(function(){this.checkOutdent=function(c,p){return/^\s+$/.test(c)?/^\s*\}/.test(p):!1},this.autoOutdent=function(c,p){var e=c.getLine(p),t=e.match(/^(\s*\})/);if(!t)return 0;var n=t[1].length,a=c.findMatchingBracket({row:p,column:n});if(!a||a.row==p)return 0;var r=this.$getIndent(c.getLine(a.row));c.replace(new u(p,0,p,n-1),r)},this.$getIndent=function(c){return c.match(/^\s*/)[0]}}).call(d.prototype),f.MatchingBraceOutdent=d});ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(i,f,h){var u=i("../../lib/oop"),d=i("../../range").Range,c=i("./fold_mode").FoldMode,p=f.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};u.inherits(p,c),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var a=e.getLine(n);if(this.singleLineBlockCommentRe.test(a)&&!this.startRegionRe.test(a)&&!this.tripleStarBlockCommentRe.test(a))return"";var r=this._getFoldWidgetBase(e,t,n);return!r&&this.startRegionRe.test(a)?"start":r},this.getFoldWidgetRange=function(e,t,n,a){var r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);var s=r.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var l=e.getCommentFoldRange(n,o+s[0].length,1);return l&&!l.isMultiLine()&&(a?l=this.getSectionRange(e,n):t!="all"&&(l=null)),l}if(t!=="markbegin"){var s=r.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}}},this.getSectionRange=function(e,t){var n=e.getLine(t),a=n.search(/\S/),r=t,o=n.length;t=t+1;for(var l=t,s=e.getLength();++t<s;){n=e.getLine(t);var m=n.search(/\S/);if(m!==-1){if(a>m)break;var g=this.getFoldWidgetRange(e,"all",t);if(g){if(g.start.row<=r)break;if(g.isMultiLine())t=g.end.row;else if(a==m)break}l=t}}return new d(r,o,l,e.getLine(l).length)},this.getCommentRegionBlock=function(e,t,n){for(var a=t.search(/\s*$/),r=e.getLength(),o=n,l=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,s=1;++n<r;){t=e.getLine(n);var m=l.exec(t);if(!!m&&(m[1]?s--:s++,!s))break}var g=n;if(g>o)return new d(o,a,g,t.length)}}.call(p.prototype)});ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(i,f,h){var u=i("../lib/oop"),d=i("./text").Mode,c=i("./json_highlight_rules").JsonHighlightRules,p=i("./matching_brace_outdent").MatchingBraceOutdent,e=i("./behaviour/cstyle").CstyleBehaviour,t=i("./folding/cstyle").FoldMode,n=i("../worker/worker_client").WorkerClient,a=function(){this.HighlightRules=c,this.$outdent=new p,this.$behaviour=new e,this.foldingRules=new t};u.inherits(a,d),function(){this.getNextLineIndent=function(r,o,l){var s=this.$getIndent(o);if(r=="start"){var m=o.match(/^.*[\{\(\[]\s*$/);m&&(s+=l)}return s},this.checkOutdent=function(r,o,l){return this.$outdent.checkOutdent(o,l)},this.autoOutdent=function(r,o,l){this.$outdent.autoOutdent(o,l)},this.createWorker=function(r){var o=new n(["ace"],w,"JsonWorker");return o.attachToDocument(r.getDocument()),o.on("annotate",function(l){r.setAnnotations(l.data)}),o.on("terminate",function(){r.clearAnnotations()}),o},this.$id="ace/mode/json"}.call(a.prototype),f.Mode=a});var b=y({__proto__:null,default:v},[v]);export{b as j}; +//# sourceMappingURL=json.c327d69b.js.map diff --git a/assets/json.c327d69b.js.map b/assets/json.c327d69b.js.map new file mode 100644 index 00000000..3961bc64 --- /dev/null +++ b/assets/json.c327d69b.js.map @@ -0,0 +1 @@ +{"version":3,"file":"json.c327d69b.js","sources":["../../node_modules/brace/worker/json.js","../../node_modules/brace/mode/json.js"],"sourcesContent":["module.exports.id = 'ace/mode/json_worker';\nmodule.exports.src = \"\\\"no use strict\\\";!function(window){function resolveModuleId(id,paths){for(var testPath=id,tail=\\\"\\\";testPath;){var alias=paths[testPath];if(\\\"string\\\"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\\\/*$/,\\\"/\\\")+(tail||alias.main||alias.name);if(alias===!1)return\\\"\\\";var i=testPath.lastIndexOf(\\\"/\\\");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:\\\"log\\\",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:\\\"error\\\",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf(\\\"!\\\")){var chunks=moduleName.split(\\\"!\\\");return window.normalizeModule(parentId,chunks[0])+\\\"!\\\"+window.normalizeModule(parentId,chunks[1])}if(\\\".\\\"==moduleName.charAt(0)){var base=parentId.split(\\\"/\\\").slice(0,-1).join(\\\"/\\\");for(moduleName=(base?base+\\\"/\\\":\\\"\\\")+moduleName;-1!==moduleName.indexOf(\\\".\\\")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\\\.\\\\//,\\\"\\\").replace(/\\\\/\\\\.\\\\//,\\\"/\\\").replace(/[^\\\\/]+\\\\/\\\\.\\\\.\\\\//,\\\"\\\")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error(\\\"worker.js acequire() accepts only (parentId, id) as arguments\\\");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log(\\\"unable to load \\\"+id);var path=resolveModuleId(id,window.acequire.tlns);return\\\".js\\\"!=path.slice(-3)&&(path+=\\\".js\\\"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,\\\"string\\\"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),\\\"function\\\"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=[\\\"require\\\",\\\"exports\\\",\\\"module\\\"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case\\\"require\\\":return req;case\\\"exports\\\":return module.exports;case\\\"module\\\":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire(\\\"ace/lib/event_emitter\\\").EventEmitter,oop=window.acequire(\\\"ace/lib/oop\\\"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:\\\"call\\\",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:\\\"event\\\",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error(\\\"Unknown command:\\\"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire(\\\"ace/lib/es5-shim\\\"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}}(this),ace.define(\\\"ace/lib/oop\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define(\\\"ace/range\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return\\\"Range: [\\\"+this.start.row+\\\"/\\\"+this.start.column+\\\"] -> [\\\"+this.end.row+\\\"/\\\"+this.end.column+\\\"]\\\"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){\\\"object\\\"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){\\\"object\\\"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define(\\\"ace/apply_delta\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||\\\"\\\";switch(delta.action){case\\\"insert\\\":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case\\\"remove\\\":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define(\\\"ace/lib/event_emitter\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){\\\"object\\\"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?\\\"unshift\\\":\\\"push\\\"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define(\\\"ace/anchor\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/lib/event_emitter\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"./lib/oop\\\"),EventEmitter=acequire(\\\"./lib/event_emitter\\\").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.column<point2.column;return point1.row<point2.row||point1.row==point2.row&&bColIsAfter}function $getTransformedPoint(delta,point,moveIfEqual){var deltaIsInsert=\\\"insert\\\"==delta.action,deltaRowShift=(deltaIsInsert?1:-1)*(delta.end.row-delta.start.row),deltaColShift=(deltaIsInsert?1:-1)*(delta.end.column-delta.start.column),deltaStart=delta.start,deltaEnd=deltaIsInsert?deltaStart:delta.end;return $pointsInOrder(point,deltaStart,moveIfEqual)?{row:point.row,column:point.column}:$pointsInOrder(deltaEnd,point,!moveIfEqual)?{row:point.row+deltaRowShift,column:point.column+(point.row==deltaEnd.row?deltaColShift:0)}:{row:deltaStart.row,column:deltaStart.column}}oop.implement(this,EventEmitter),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(delta){if(!(delta.start.row==delta.end.row&&delta.start.row!=this.row||delta.start.row>this.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal(\\\"change\\\",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener(\\\"change\\\",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on(\\\"change\\\",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define(\\\"ace/document\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/apply_delta\\\",\\\"ace/lib/event_emitter\\\",\\\"ace/range\\\",\\\"ace/anchor\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"./lib/oop\\\"),applyDelta=acequire(\\\"./apply_delta\\\").applyDelta,EventEmitter=acequire(\\\"./lib/event_emitter\\\").EventEmitter,Range=acequire(\\\"./range\\\").Range,Anchor=acequire(\\\"./anchor\\\").Anchor,Document=function(textOrLines){this.$lines=[\\\"\\\"],0===textOrLines.length?this.$lines=[\\\"\\\"]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0===\\\"aaa\\\".split(/a/).length?function(text){return text.replace(/\\\\r\\\\n|\\\\r/g,\\\"\\\\n\\\").split(\\\"\\\\n\\\")}:function(text){return text.split(/\\\\r\\\\n|\\\\r|\\\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\\\r\\\\n|\\\\r|\\\\n)/m);this.$autoNewLine=match?match[1]:\\\"\\\\n\\\",this._signal(\\\"changeNewLineMode\\\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\\\"windows\\\":return\\\"\\\\r\\\\n\\\";case\\\"unix\\\":return\\\"\\\\n\\\";default:return this.$autoNewLine||\\\"\\\\n\\\"}},this.$autoNewLine=\\\"\\\",this.$newLineMode=\\\"auto\\\",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal(\\\"changeNewLineMode\\\"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return\\\"\\\\r\\\\n\\\"==text||\\\"\\\\r\\\"==text||\\\"\\\\n\\\"==text},this.getLine=function(row){return this.$lines[row]||\\\"\\\"},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||\\\"\\\").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn(\\\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\\\"),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn(\\\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\\\"),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn(\\\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\\\"),this.insertMergedLines(position,[\\\"\\\",\\\"\\\"])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:\\\"insert\\\",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([\\\"\\\"]),column=0):(lines=[\\\"\\\"].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:\\\"insert\\\",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:\\\"remove\\\",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:\\\"remove\\\",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:\\\"remove\\\",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:\\\"remove\\\",lines:[\\\"\\\",\\\"\\\"]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert=\\\"insert\\\"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal(\\\"change\\\",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(\\\"\\\"),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:\\\"insert\\\"==delta.action?\\\"remove\\\":\\\"insert\\\",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define(\\\"ace/lib/lang\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split(\\\"\\\").reverse().join(\\\"\\\")},exports.stringRepeat=function(string,count){for(var result=\\\"\\\";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\\\s\\\\s*/,trimEndRegexp=/\\\\s\\\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,\\\"\\\")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,\\\"\\\")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&\\\"object\\\"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if(\\\"object\\\"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if(\\\"[object Object]\\\"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\\\]\\\\/\\\\\\\\])/g,\\\"\\\\\\\\$1\\\")},exports.escapeHTML=function(str){return str.replace(/&/g,\\\"&\\\").replace(/\\\"/g,\\\""\\\").replace(/'/g,\\\"'\\\").replace(/</g,\\\"<\\\")},exports.getMatchOffsets=function(string,regExp){var matches=[];return string.replace(regExp,function(str){matches.push({offset:arguments[arguments.length-2],length:str.length})}),matches},exports.deferredCall=function(fcn){var timer=null,callback=function(){timer=null,fcn()},deferred=function(timeout){return deferred.cancel(),timer=setTimeout(callback,timeout||0),deferred};return deferred.schedule=deferred,deferred.call=function(){return this.cancel(),fcn(),deferred},deferred.cancel=function(){return clearTimeout(timer),timer=null,deferred},deferred.isPending=function(){return timer},deferred},exports.delayedCall=function(fcn,defaultTimeout){var timer=null,callback=function(){timer=null,fcn()},_self=function(timeout){null==timer&&(timer=setTimeout(callback,timeout||defaultTimeout))};return _self.delay=function(timeout){timer&&clearTimeout(timer),timer=setTimeout(callback,timeout||defaultTimeout)},_self.schedule=_self,_self.call=function(){this.cancel(),fcn()},_self.cancel=function(){timer&&clearTimeout(timer),timer=null},_self.isPending=function(){return timer},_self}}),ace.define(\\\"ace/worker/mirror\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/range\\\",\\\"ace/document\\\",\\\"ace/lib/lang\\\"],function(acequire,exports){\\\"use strict\\\";acequire(\\\"../range\\\").Range;var Document=acequire(\\\"../document\\\").Document,lang=acequire(\\\"../lib/lang\\\"),Mirror=exports.Mirror=function(sender){this.sender=sender;var doc=this.doc=new Document(\\\"\\\"),deferredUpdate=this.deferredUpdate=lang.delayedCall(this.onUpdate.bind(this)),_self=this;sender.on(\\\"change\\\",function(e){var data=e.data;if(data[0].start)doc.applyDeltas(data);else for(var i=0;data.length>i;i+=2){if(Array.isArray(data[i+1]))var d={action:\\\"insert\\\",start:data[i],lines:data[i+1]};else var d={action:\\\"remove\\\",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define(\\\"ace/mode/json/json_parse\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(){\\\"use strict\\\";var at,ch,text,value,escapee={'\\\"':'\\\"',\\\"\\\\\\\\\\\":\\\"\\\\\\\\\\\",\\\"/\\\":\\\"/\\\",b:\\\"\\\\b\\\",f:\\\"\\\\f\\\",n:\\\"\\\\n\\\",r:\\\"\\\\r\\\",t:\\\"\\t\\\"},error=function(m){throw{name:\\\"SyntaxError\\\",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error(\\\"Expected '\\\"+c+\\\"' instead of '\\\"+ch+\\\"'\\\"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string=\\\"\\\";for(\\\"-\\\"===ch&&(string=\\\"-\\\",next(\\\"-\\\"));ch>=\\\"0\\\"&&\\\"9\\\">=ch;)string+=ch,next();if(\\\".\\\"===ch)for(string+=\\\".\\\";next()&&ch>=\\\"0\\\"&&\\\"9\\\">=ch;)string+=ch;if(\\\"e\\\"===ch||\\\"E\\\"===ch)for(string+=ch,next(),(\\\"-\\\"===ch||\\\"+\\\"===ch)&&(string+=ch,next());ch>=\\\"0\\\"&&\\\"9\\\">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error(\\\"Bad number\\\"),void 0):number},string=function(){var hex,i,uffff,string=\\\"\\\";if('\\\"'===ch)for(;next();){if('\\\"'===ch)return next(),string;if(\\\"\\\\\\\\\\\"===ch)if(next(),\\\"u\\\"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if(\\\"string\\\"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error(\\\"Bad string\\\")},white=function(){for(;ch&&\\\" \\\">=ch;)next()},word=function(){switch(ch){case\\\"t\\\":return next(\\\"t\\\"),next(\\\"r\\\"),next(\\\"u\\\"),next(\\\"e\\\"),!0;case\\\"f\\\":return next(\\\"f\\\"),next(\\\"a\\\"),next(\\\"l\\\"),next(\\\"s\\\"),next(\\\"e\\\"),!1;case\\\"n\\\":return next(\\\"n\\\"),next(\\\"u\\\"),next(\\\"l\\\"),next(\\\"l\\\"),null}error(\\\"Unexpected '\\\"+ch+\\\"'\\\")},array=function(){var array=[];if(\\\"[\\\"===ch){if(next(\\\"[\\\"),white(),\\\"]\\\"===ch)return next(\\\"]\\\"),array;for(;ch;){if(array.push(value()),white(),\\\"]\\\"===ch)return next(\\\"]\\\"),array;next(\\\",\\\"),white()}}error(\\\"Bad array\\\")},object=function(){var key,object={};if(\\\"{\\\"===ch){if(next(\\\"{\\\"),white(),\\\"}\\\"===ch)return next(\\\"}\\\"),object;for(;ch;){if(key=string(),white(),next(\\\":\\\"),Object.hasOwnProperty.call(object,key)&&error('Duplicate key \\\"'+key+'\\\"'),object[key]=value(),white(),\\\"}\\\"===ch)return next(\\\"}\\\"),object;next(\\\",\\\"),white()}}error(\\\"Bad object\\\")};return value=function(){switch(white(),ch){case\\\"{\\\":return object();case\\\"[\\\":return array();case'\\\"':return string();case\\\"-\\\":return number();default:return ch>=\\\"0\\\"&&\\\"9\\\">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=\\\" \\\",result=value(),white(),ch&&error(\\\"Syntax error\\\"),\\\"function\\\"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&\\\"object\\\"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({\\\"\\\":result},\\\"\\\"):result}}),ace.define(\\\"ace/mode/json_worker\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/worker/mirror\\\",\\\"ace/mode/json/json_parse\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"../lib/oop\\\"),Mirror=acequire(\\\"../worker/mirror\\\").Mirror,parse=acequire(\\\"./json/json_parse\\\"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:\\\"error\\\"})}this.sender.emit(\\\"annotate\\\",errors)}}.call(JsonWorker.prototype)}),ace.define(\\\"ace/lib/es5-shim\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,\\\"sentinel\\\",{}),\\\"sentinel\\\"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if(\\\"function\\\"!=typeof target)throw new TypeError(\\\"Function.prototype.bind called on incompatible \\\"+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,\\\"__defineGetter__\\\"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,\\\"XXX\\\"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return\\\"[object Array]\\\"==_toString(obj)});var boxedString=Object(\\\"a\\\"),splitString=\\\"a\\\"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,thisp=arguments[1],i=-1,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,result=[],thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");if(!length&&1==arguments.length)throw new TypeError(\\\"reduce of empty array with no initial value\\\");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError(\\\"reduce of empty array with no initial value\\\")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");if(!length&&1==arguments.length)throw new TypeError(\\\"reduceRight of empty array with no initial value\\\");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError(\\\"reduceRight of empty array with no initial value\\\")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT=\\\"Object.getOwnPropertyDescriptor called on a non-object: \\\";Object.getOwnPropertyDescriptor=function(object,property){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if(\\\"object\\\"!=typeof prototype)throw new TypeError(\\\"typeof prototype[\\\"+typeof prototype+\\\"] != 'object'\\\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom=\\\"undefined\\\"==typeof document||doesDefinePropertyWork(document.createElement(\\\"div\\\"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR=\\\"Property description must be an object: \\\",ERR_NON_OBJECT_TARGET=\\\"Object.defineProperty called on non-object: \\\",ERR_ACCESSORS_NOT_SUPPORTED=\\\"getters & setters can not be defined on this javascript engine\\\";Object.defineProperty=function(object,property,descriptor){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if(\\\"object\\\"!=typeof descriptor&&\\\"function\\\"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,\\\"value\\\"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,\\\"get\\\")&&defineGetter(object,property,descriptor.get),owns(descriptor,\\\"set\\\")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return\\\"function\\\"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name=\\\"\\\";owns(object,name);)name+=\\\"?\\\";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=[\\\"toString\\\",\\\"toLocaleString\\\",\\\"valueOf\\\",\\\"hasOwnProperty\\\",\\\"isPrototypeOf\\\",\\\"propertyIsEnumerable\\\",\\\"constructor\\\"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(\\\"Object.keys called on a non-object\\\");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=\\\"\\t\\\\n\\u000b\\\\f\\\\r   ᠎              \\\\u2028\\\\u2029\\\";if(!String.prototype.trim||ws.trim()){ws=\\\"[\\\"+ws+\\\"]\\\";var trimBeginRegexp=RegExp(\\\"^\\\"+ws+ws+\\\"*\\\"),trimEndRegexp=RegExp(ws+ws+\\\"*$\\\");String.prototype.trim=function(){return(this+\\\"\\\").replace(trimBeginRegexp,\\\"\\\").replace(trimEndRegexp,\\\"\\\")}}var toObject=function(o){if(null==o)throw new TypeError(\\\"can't convert \\\"+o+\\\" to object\\\");return Object(o)}});\";","ace.define(\"ace/mode/json_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\nvar JsonHighlightRules = function() {\n this.$rules = {\n \"start\" : [\n {\n token : \"variable\", // single line\n regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]\\\\s*(?=:)'\n }, {\n token : \"string\", // single line\n regex : '\"',\n next : \"string\"\n }, {\n token : \"constant.numeric\", // hex\n regex : \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token : \"constant.numeric\", // float\n regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token : \"constant.language.boolean\",\n regex : \"(?:true|false)\\\\b\"\n }, {\n token : \"text\", // single quoted strings are not allowed\n regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token : \"comment\", // comments are not allowed, but who cares?\n regex : \"\\\\/\\\\/.*$\"\n }, {\n token : \"comment.start\", // comments are not allowed, but who cares?\n regex : \"\\\\/\\\\*\",\n next : \"comment\"\n }, {\n token : \"paren.lparen\",\n regex : \"[[({]\"\n }, {\n token : \"paren.rparen\",\n regex : \"[\\\\])}]\"\n }, {\n token : \"text\",\n regex : \"\\\\s+\"\n }\n ],\n \"string\" : [\n {\n token : \"constant.language.escape\",\n regex : /\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[\"\\\\\\/bfnrt])/\n }, {\n token : \"string\",\n regex : '\"|$',\n next : \"start\"\n }, {\n defaultToken : \"string\"\n }\n ],\n \"comment\" : [\n {\n token : \"comment.end\", // comments are not allowed, but who cares?\n regex : \"\\\\*\\\\/\",\n next : \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ]\n };\n \n};\n\noop.inherits(JsonHighlightRules, TextHighlightRules);\n\nexports.JsonHighlightRules = JsonHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n this.checkOutdent = function(line, input) {\n if (! /^\\s+$/.test(line))\n return false;\n\n return /^\\s*\\}/.test(input);\n };\n\n this.autoOutdent = function(doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n\n if (!match) return 0;\n\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n if (!openBracePos || openBracePos.row == row) return 0;\n\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column-1), indent);\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Range = acequire(\"../../range\").Range;\nvar BaseFoldMode = acequire(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(\n this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n );\n this.foldingStopMarker = new RegExp(\n this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n );\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n \n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n \n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n \n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n \n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n \n return fw;\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n \n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n \n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n \n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n \n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n } else if (foldStyle != \"all\")\n range = null;\n }\n \n return range;\n }\n\n if (foldStyle === \"markbegin\")\n return;\n\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n \n this.getSectionRange = function(session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n \n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n } else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n } else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n \n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function(session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n \n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m) continue;\n if (m[1]) depth--;\n else depth++;\n\n if (!depth) break;\n }\n\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/json\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/json_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/worker/worker_client\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextMode = acequire(\"./text\").Mode;\nvar HighlightRules = acequire(\"./json_highlight_rules\").JsonHighlightRules;\nvar MatchingBraceOutdent = acequire(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CstyleBehaviour = acequire(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = acequire(\"./folding/cstyle\").FoldMode;\nvar WorkerClient = acequire(\"../worker/worker_client\").WorkerClient;\n\nvar Mode = function() {\n this.HighlightRules = HighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CstyleBehaviour();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n this.getNextLineIndent = function(state, line, tab) {\n var indent = this.$getIndent(line);\n\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n\n return indent;\n };\n\n this.checkOutdent = function(state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n\n this.autoOutdent = function(state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n\n this.createWorker = function(session) {\n var worker = new WorkerClient([\"ace\"], require(\"../worker/json\"), \"JsonWorker\");\n worker.attachToDocument(session.getDocument());\n\n worker.on(\"annotate\", function(e) {\n session.setAnnotations(e.data);\n });\n\n worker.on(\"terminate\", function() {\n session.clearAnnotations();\n });\n\n return worker;\n };\n\n\n this.$id = \"ace/mode/json\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"],"names":["json","require$$0"],"mappings":"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"} \ No newline at end of file diff --git a/assets/model/index.html b/assets/model/index.html index affc8c2d..97f1cb72 100644 --- a/assets/model/index.html +++ b/assets/model/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.36354f76.js"></script> + <script type="module" crossorigin src="/assets/index.18869b2a.js"></script> <link rel="stylesheet" href="/assets/index.9501af8b.css"> </head> <body> diff --git a/assets/yaml.e8f3b9ab.js b/assets/yaml.e8f3b9ab.js new file mode 100644 index 00000000..f87da530 --- /dev/null +++ b/assets/yaml.e8f3b9ab.js @@ -0,0 +1,2 @@ +ace.define("ace/mode/yaml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(l,u,v){var c=l("../lib/oop"),d=l("./text_highlight_rules").TextHighlightRules,a=function(){this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"list.markup",regex:/^(?:-{3}|\.{3})\s*(?=#|$)/},{token:"list.markup",regex:/^\s*[\-?](?:$|\s)/},{token:"constant",regex:"!![\\w//]+"},{token:"constant.language",regex:"[&\\*][a-zA-Z0-9-_]+"},{token:["meta.tag","keyword"],regex:/^(\s*\w.*?)(:(?=\s|$))/},{token:["meta.tag","keyword"],regex:/(\w+?)(\s*:(?=\s|$))/},{token:"keyword.operator",regex:"<<\\w*:\\w*"},{token:"keyword.operator",regex:"-\\s*(?=[{])"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:/[|>][-+\d\s]*$/,onMatch:function(o,t,i,e){var n=/^\s*/.exec(e)[0];return i.length<1?i.push(this.next):i[0]="mlString",i.length<2?i.push(n.length):i[1]=n.length,this.token},next:"mlString"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:/(\b|[+\-\.])[\d_]+(?:(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)(?=[^\d-\w]|$)/},{token:"constant.numeric",regex:/[+\-]?\.inf\b|NaN\b|0x[\dA-Fa-f_]+|0b[10_]+/},{token:"constant.language.boolean",regex:"\\b(?:true|false|TRUE|FALSE|True|False|yes|no)\\b"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:/[^\s,:\[\]\{\}]+/}],mlString:[{token:"indent",regex:/^\s*$/},{token:"indent",regex:/^\s*/,onMatch:function(o,t,i){var e=i[1];return e>=o.length?(this.next="start",i.splice(0)):this.next="mlString",this.token},next:"mlString"},{token:"string",regex:".+"}]},this.normalizeRules()};c.inherits(a,d),u.YamlHighlightRules=a});ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(l,u,v){var c=l("../range").Range,d=function(){};(function(){this.checkOutdent=function(a,o){return/^\s+$/.test(a)?/^\s*\}/.test(o):!1},this.autoOutdent=function(a,o){var t=a.getLine(o),i=t.match(/^(\s*\})/);if(!i)return 0;var e=i[1].length,n=a.findMatchingBracket({row:o,column:e});if(!n||n.row==o)return 0;var r=this.$getIndent(a.getLine(n.row));a.replace(new c(o,0,o,e-1),r)},this.$getIndent=function(a){return a.match(/^\s*/)[0]}}).call(d.prototype),u.MatchingBraceOutdent=d});ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(l,u,v){var c=l("../../lib/oop"),d=l("./fold_mode").FoldMode,a=l("../../range").Range,o=u.FoldMode=function(){};c.inherits(o,d),function(){this.getFoldWidgetRange=function(t,i,e){var n=this.indentationBlock(t,e);if(n)return n;var r=/\S/,g=t.getLine(e),s=g.search(r);if(!(s==-1||g[s]!="#")){for(var h=g.length,f=t.getLength(),x=e,m=e;++e<f;){g=t.getLine(e);var p=g.search(r);if(p!=-1){if(g[p]!="#")break;m=e}}if(m>x){var k=t.getLine(m).length;return new a(x,h,m,k)}}},this.getFoldWidget=function(t,i,e){var n=t.getLine(e),r=n.search(/\S/),g=t.getLine(e+1),s=t.getLine(e-1),h=s.search(/\S/),f=g.search(/\S/);if(r==-1)return t.foldWidgets[e-1]=h!=-1&&h<f?"start":"","";if(h==-1){if(r==f&&n[r]=="#"&&g[r]=="#")return t.foldWidgets[e-1]="",t.foldWidgets[e+1]="","start"}else if(h==r&&n[r]=="#"&&s[r]=="#"&&t.getLine(e-2).search(/\S/)==-1)return t.foldWidgets[e-1]="start",t.foldWidgets[e+1]="","";return h!=-1&&h<r?t.foldWidgets[e-1]="start":t.foldWidgets[e-1]="",r<f?"start":""}}.call(o.prototype)});ace.define("ace/mode/yaml",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/yaml_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/coffee"],function(l,u,v){var c=l("../lib/oop"),d=l("./text").Mode,a=l("./yaml_highlight_rules").YamlHighlightRules,o=l("./matching_brace_outdent").MatchingBraceOutdent,t=l("./folding/coffee").FoldMode,i=function(){this.HighlightRules=a,this.$outdent=new o,this.foldingRules=new t,this.$behaviour=this.$defaultBehaviour};c.inherits(i,d),function(){this.lineCommentStart=["#","//"],this.getNextLineIndent=function(e,n,r){var g=this.$getIndent(n);if(e=="start"){var s=n.match(/^.*[\{\(\[]\s*$/);s&&(g+=r)}return g},this.checkOutdent=function(e,n,r){return this.$outdent.checkOutdent(n,r)},this.autoOutdent=function(e,n,r){this.$outdent.autoOutdent(n,r)},this.$id="ace/mode/yaml"}.call(i.prototype),u.Mode=i}); +//# sourceMappingURL=yaml.e8f3b9ab.js.map diff --git a/assets/yaml.e8f3b9ab.js.map b/assets/yaml.e8f3b9ab.js.map new file mode 100644 index 00000000..b0d31df1 --- /dev/null +++ b/assets/yaml.e8f3b9ab.js.map @@ -0,0 +1 @@ +{"version":3,"file":"yaml.e8f3b9ab.js","sources":["../../node_modules/brace/mode/yaml.js"],"sourcesContent":["ace.define(\"ace/mode/yaml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\nvar YamlHighlightRules = function() {\n this.$rules = {\n \"start\" : [\n {\n token : \"comment\",\n regex : \"#.*$\"\n }, {\n token : \"list.markup\",\n regex : /^(?:-{3}|\\.{3})\\s*(?=#|$)/\n }, {\n token : \"list.markup\",\n regex : /^\\s*[\\-?](?:$|\\s)/\n }, {\n token: \"constant\",\n regex: \"!![\\\\w//]+\"\n }, {\n token: \"constant.language\",\n regex: \"[&\\\\*][a-zA-Z0-9-_]+\"\n }, {\n token: [\"meta.tag\", \"keyword\"],\n regex: /^(\\s*\\w.*?)(:(?=\\s|$))/\n },{\n token: [\"meta.tag\", \"keyword\"],\n regex: /(\\w+?)(\\s*:(?=\\s|$))/\n }, {\n token : \"keyword.operator\",\n regex : \"<<\\\\w*:\\\\w*\"\n }, {\n token : \"keyword.operator\",\n regex : \"-\\\\s*(?=[{])\"\n }, {\n token : \"string\", // single line\n regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n }, {\n token : \"string\", // multi line string start\n regex : /[|>][-+\\d\\s]*$/,\n onMatch: function(val, state, stack, line) {\n var indent = /^\\s*/.exec(line)[0];\n if (stack.length < 1) {\n stack.push(this.next);\n } else {\n stack[0] = \"mlString\";\n }\n\n if (stack.length < 2) {\n stack.push(indent.length);\n }\n else {\n stack[1] = indent.length;\n }\n return this.token;\n },\n next : \"mlString\"\n }, {\n token : \"string\", // single quoted string\n regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token : \"constant.numeric\", // float\n regex : /(\\b|[+\\-\\.])[\\d_]+(?:(?:\\.[\\d_]*)?(?:[eE][+\\-]?[\\d_]+)?)(?=[^\\d-\\w]|$)/\n }, {\n token : \"constant.numeric\", // other number\n regex : /[+\\-]?\\.inf\\b|NaN\\b|0x[\\dA-Fa-f_]+|0b[10_]+/\n }, {\n token : \"constant.language.boolean\",\n regex : \"\\\\b(?:true|false|TRUE|FALSE|True|False|yes|no)\\\\b\"\n }, {\n token : \"paren.lparen\",\n regex : \"[[({]\"\n }, {\n token : \"paren.rparen\",\n regex : \"[\\\\])}]\"\n }, {\n token : \"text\",\n regex : /[^\\s,:\\[\\]\\{\\}]+/\n }\n ],\n \"mlString\" : [\n {\n token : \"indent\",\n regex : /^\\s*$/\n }, {\n token : \"indent\",\n regex : /^\\s*/,\n onMatch: function(val, state, stack) {\n var curIndent = stack[1];\n\n if (curIndent >= val.length) {\n this.next = \"start\";\n stack.splice(0);\n }\n else {\n this.next = \"mlString\";\n }\n return this.token;\n },\n next : \"mlString\"\n }, {\n token : \"string\",\n regex : '.+'\n }\n ]};\n this.normalizeRules();\n\n};\n\noop.inherits(YamlHighlightRules, TextHighlightRules);\n\nexports.YamlHighlightRules = YamlHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n this.checkOutdent = function(line, input) {\n if (! /^\\s+$/.test(line))\n return false;\n\n return /^\\s*\\}/.test(input);\n };\n\n this.autoOutdent = function(doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n\n if (!match) return 0;\n\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n if (!openBracePos || openBracePos.row == row) return 0;\n\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column-1), indent);\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar BaseFoldMode = acequire(\"./fold_mode\").FoldMode;\nvar Range = acequire(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n this.getFoldWidgetRange = function(session, foldStyle, row) {\n var range = this.indentationBlock(session, row);\n if (range)\n return range;\n\n var re = /\\S/;\n var line = session.getLine(row);\n var startLevel = line.search(re);\n if (startLevel == -1 || line[startLevel] != \"#\")\n return;\n\n var startColumn = line.length;\n var maxRow = session.getLength();\n var startRow = row;\n var endRow = row;\n\n while (++row < maxRow) {\n line = session.getLine(row);\n var level = line.search(re);\n\n if (level == -1)\n continue;\n\n if (line[level] != \"#\")\n break;\n\n endRow = row;\n }\n\n if (endRow > startRow) {\n var endColumn = session.getLine(endRow).length;\n return new Range(startRow, startColumn, endRow, endColumn);\n }\n };\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n var indent = line.search(/\\S/);\n var next = session.getLine(row + 1);\n var prev = session.getLine(row - 1);\n var prevIndent = prev.search(/\\S/);\n var nextIndent = next.search(/\\S/);\n\n if (indent == -1) {\n session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? \"start\" : \"\";\n return \"\";\n }\n if (prevIndent == -1) {\n if (indent == nextIndent && line[indent] == \"#\" && next[indent] == \"#\") {\n session.foldWidgets[row - 1] = \"\";\n session.foldWidgets[row + 1] = \"\";\n return \"start\";\n }\n } else if (prevIndent == indent && line[indent] == \"#\" && prev[indent] == \"#\") {\n if (session.getLine(row - 2).search(/\\S/) == -1) {\n session.foldWidgets[row - 1] = \"start\";\n session.foldWidgets[row + 1] = \"\";\n return \"\";\n }\n }\n\n if (prevIndent!= -1 && prevIndent < indent)\n session.foldWidgets[row - 1] = \"start\";\n else\n session.foldWidgets[row - 1] = \"\";\n\n if (indent < nextIndent)\n return \"start\";\n else\n return \"\";\n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/yaml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/yaml_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/coffee\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextMode = acequire(\"./text\").Mode;\nvar YamlHighlightRules = acequire(\"./yaml_highlight_rules\").YamlHighlightRules;\nvar MatchingBraceOutdent = acequire(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar FoldMode = acequire(\"./folding/coffee\").FoldMode;\n\nvar Mode = function() {\n this.HighlightRules = YamlHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.foldingRules = new FoldMode();\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n this.lineCommentStart = [\"#\", \"//\"];\n \n this.getNextLineIndent = function(state, line, tab) {\n var indent = this.$getIndent(line);\n\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n\n return indent;\n };\n\n this.checkOutdent = function(state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n\n this.autoOutdent = function(state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n\n\n this.$id = \"ace/mode/yaml\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/changelog/index.html b/changelog/index.html index 0f58d8bd..7507d874 100644 --- a/changelog/index.html +++ b/changelog/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.36354f76.js"></script> + <script type="module" crossorigin src="/assets/index.18869b2a.js"></script> <link rel="stylesheet" href="/assets/index.9501af8b.css"> </head> <body> diff --git a/chat-type/index.html b/chat-type/index.html index 12571f71..421bf096 100644 --- a/chat-type/index.html +++ b/chat-type/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.36354f76.js"></script> + <script type="module" crossorigin src="/assets/index.18869b2a.js"></script> <link rel="stylesheet" href="/assets/index.9501af8b.css"> </head> <body> diff --git a/dimension-type/index.html b/dimension-type/index.html index a2cb4e59..924837e5 100644 --- a/dimension-type/index.html +++ b/dimension-type/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.36354f76.js"></script> + <script type="module" crossorigin src="/assets/index.18869b2a.js"></script> <link rel="stylesheet" href="/assets/index.9501af8b.css"> </head> <body> diff --git a/dimension/index.html b/dimension/index.html index 086c5c70..365c1eb1 100644 --- a/dimension/index.html +++ b/dimension/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.36354f76.js"></script> + <script type="module" crossorigin src="/assets/index.18869b2a.js"></script> <link rel="stylesheet" href="/assets/index.9501af8b.css"> </head> <body> diff --git a/guides/adding-custom-structures/index.html b/guides/adding-custom-structures/index.html index 446fbb53..1b63be9b 100644 --- a/guides/adding-custom-structures/index.html +++ b/guides/adding-custom-structures/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.36354f76.js"></script> + <script type="module" crossorigin src="/assets/index.18869b2a.js"></script> <link rel="stylesheet" href="/assets/index.9501af8b.css"> </head> <body> diff --git a/guides/index.html b/guides/index.html index 8517df4b..5f1c045c 100644 --- a/guides/index.html +++ b/guides/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.36354f76.js"></script> + <script type="module" crossorigin src="/assets/index.18869b2a.js"></script> <link rel="stylesheet" href="/assets/index.9501af8b.css"> </head> <body> diff --git a/index.html b/index.html index d9600488..5c82d8cf 100644 --- a/index.html +++ b/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.36354f76.js"></script> + <script type="module" crossorigin src="/assets/index.18869b2a.js"></script> <link rel="stylesheet" href="/assets/index.9501af8b.css"> </head> <body> diff --git a/item-modifier/index.html b/item-modifier/index.html index 3ab19fbd..d7fc9b6a 100644 --- a/item-modifier/index.html +++ b/item-modifier/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.36354f76.js"></script> + <script type="module" crossorigin src="/assets/index.18869b2a.js"></script> <link rel="stylesheet" href="/assets/index.9501af8b.css"> </head> <body> diff --git a/loot-table/index.html b/loot-table/index.html index b6a44684..a56022c4 100644 --- a/loot-table/index.html +++ b/loot-table/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.36354f76.js"></script> + <script type="module" crossorigin src="/assets/index.18869b2a.js"></script> <link rel="stylesheet" href="/assets/index.9501af8b.css"> </head> <body> diff --git a/predicate/index.html b/predicate/index.html index 3cc4af62..664e22b2 100644 --- a/predicate/index.html +++ b/predicate/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.36354f76.js"></script> + <script type="module" crossorigin src="/assets/index.18869b2a.js"></script> <link rel="stylesheet" href="/assets/index.9501af8b.css"> </head> <body> diff --git a/recipe/index.html b/recipe/index.html index 221d006e..b32a3d93 100644 --- a/recipe/index.html +++ b/recipe/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.36354f76.js"></script> + <script type="module" crossorigin src="/assets/index.18869b2a.js"></script> <link rel="stylesheet" href="/assets/index.9501af8b.css"> </head> <body> diff --git a/sounds/index.html b/sounds/index.html index b69d9a73..39f44167 100644 --- a/sounds/index.html +++ b/sounds/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.36354f76.js"></script> + <script type="module" crossorigin src="/assets/index.18869b2a.js"></script> <link rel="stylesheet" href="/assets/index.9501af8b.css"> </head> <body> diff --git a/text-component/index.html b/text-component/index.html index 1c97c3e5..60dc69e1 100644 --- a/text-component/index.html +++ b/text-component/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.36354f76.js"></script> + <script type="module" crossorigin src="/assets/index.18869b2a.js"></script> <link rel="stylesheet" href="/assets/index.9501af8b.css"> </head> <body> diff --git a/versions/index.html b/versions/index.html index 9f894863..59712a0a 100644 --- a/versions/index.html +++ b/versions/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.36354f76.js"></script> + <script type="module" crossorigin src="/assets/index.18869b2a.js"></script> <link rel="stylesheet" href="/assets/index.9501af8b.css"> </head> <body> diff --git a/world/index.html b/world/index.html index a46d2304..3959cecc 100644 --- a/world/index.html +++ b/world/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.36354f76.js"></script> + <script type="module" crossorigin src="/assets/index.18869b2a.js"></script> <link rel="stylesheet" href="/assets/index.9501af8b.css"> </head> <body> diff --git a/worldgen/biome/index.html b/worldgen/biome/index.html index e1f84b00..a1f31725 100644 --- a/worldgen/biome/index.html +++ b/worldgen/biome/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.36354f76.js"></script> + <script type="module" crossorigin src="/assets/index.18869b2a.js"></script> <link rel="stylesheet" href="/assets/index.9501af8b.css"> </head> <body> diff --git a/worldgen/carver/index.html b/worldgen/carver/index.html index bff1910c..33e2ed98 100644 --- a/worldgen/carver/index.html +++ b/worldgen/carver/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.36354f76.js"></script> + <script type="module" crossorigin src="/assets/index.18869b2a.js"></script> <link rel="stylesheet" href="/assets/index.9501af8b.css"> </head> <body> diff --git a/worldgen/density-function/index.html b/worldgen/density-function/index.html index 30bff231..fdb84acf 100644 --- a/worldgen/density-function/index.html +++ b/worldgen/density-function/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.36354f76.js"></script> + <script type="module" crossorigin src="/assets/index.18869b2a.js"></script> <link rel="stylesheet" href="/assets/index.9501af8b.css"> </head> <body> diff --git a/worldgen/feature/index.html b/worldgen/feature/index.html index 059af5c8..f183fcca 100644 --- a/worldgen/feature/index.html +++ b/worldgen/feature/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.36354f76.js"></script> + <script type="module" crossorigin src="/assets/index.18869b2a.js"></script> <link rel="stylesheet" href="/assets/index.9501af8b.css"> </head> <body> diff --git a/worldgen/flat-world-preset/index.html b/worldgen/flat-world-preset/index.html index d67048ce..ff61adb9 100644 --- a/worldgen/flat-world-preset/index.html +++ b/worldgen/flat-world-preset/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.36354f76.js"></script> + <script type="module" crossorigin src="/assets/index.18869b2a.js"></script> <link rel="stylesheet" href="/assets/index.9501af8b.css"> </head> <body> diff --git a/worldgen/index.html b/worldgen/index.html index b131bcc7..5e9ef8b7 100644 --- a/worldgen/index.html +++ b/worldgen/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.36354f76.js"></script> + <script type="module" crossorigin src="/assets/index.18869b2a.js"></script> <link rel="stylesheet" href="/assets/index.9501af8b.css"> </head> <body> diff --git a/worldgen/noise-settings/index.html b/worldgen/noise-settings/index.html index 4db84937..7adde0f6 100644 --- a/worldgen/noise-settings/index.html +++ b/worldgen/noise-settings/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.36354f76.js"></script> + <script type="module" crossorigin src="/assets/index.18869b2a.js"></script> <link rel="stylesheet" href="/assets/index.9501af8b.css"> </head> <body> diff --git a/worldgen/noise/index.html b/worldgen/noise/index.html index 7b3b0133..2a324cf5 100644 --- a/worldgen/noise/index.html +++ b/worldgen/noise/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.36354f76.js"></script> + <script type="module" crossorigin src="/assets/index.18869b2a.js"></script> <link rel="stylesheet" href="/assets/index.9501af8b.css"> </head> <body> diff --git a/worldgen/placed-feature/index.html b/worldgen/placed-feature/index.html index b246f450..8c15acd3 100644 --- a/worldgen/placed-feature/index.html +++ b/worldgen/placed-feature/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.36354f76.js"></script> + <script type="module" crossorigin src="/assets/index.18869b2a.js"></script> <link rel="stylesheet" href="/assets/index.9501af8b.css"> </head> <body> diff --git a/worldgen/processor-list/index.html b/worldgen/processor-list/index.html index 7f73d3d3..db6bf99e 100644 --- a/worldgen/processor-list/index.html +++ b/worldgen/processor-list/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.36354f76.js"></script> + <script type="module" crossorigin src="/assets/index.18869b2a.js"></script> <link rel="stylesheet" href="/assets/index.9501af8b.css"> </head> <body> diff --git a/worldgen/structure-feature/index.html b/worldgen/structure-feature/index.html index 941f0c99..ab16fe12 100644 --- a/worldgen/structure-feature/index.html +++ b/worldgen/structure-feature/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.36354f76.js"></script> + <script type="module" crossorigin src="/assets/index.18869b2a.js"></script> <link rel="stylesheet" href="/assets/index.9501af8b.css"> </head> <body> diff --git a/worldgen/structure-set/index.html b/worldgen/structure-set/index.html index 998d0898..c9fb2af5 100644 --- a/worldgen/structure-set/index.html +++ b/worldgen/structure-set/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.36354f76.js"></script> + <script type="module" crossorigin src="/assets/index.18869b2a.js"></script> <link rel="stylesheet" href="/assets/index.9501af8b.css"> </head> <body> diff --git a/worldgen/structure/index.html b/worldgen/structure/index.html index 73f0be89..c6fe7586 100644 --- a/worldgen/structure/index.html +++ b/worldgen/structure/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.36354f76.js"></script> + <script type="module" crossorigin src="/assets/index.18869b2a.js"></script> <link rel="stylesheet" href="/assets/index.9501af8b.css"> </head> <body> diff --git a/worldgen/surface-builder/index.html b/worldgen/surface-builder/index.html index a67e080a..df403dcf 100644 --- a/worldgen/surface-builder/index.html +++ b/worldgen/surface-builder/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.36354f76.js"></script> + <script type="module" crossorigin src="/assets/index.18869b2a.js"></script> <link rel="stylesheet" href="/assets/index.9501af8b.css"> </head> <body> diff --git a/worldgen/template-pool/index.html b/worldgen/template-pool/index.html index c703c127..76c7e205 100644 --- a/worldgen/template-pool/index.html +++ b/worldgen/template-pool/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.36354f76.js"></script> + <script type="module" crossorigin src="/assets/index.18869b2a.js"></script> <link rel="stylesheet" href="/assets/index.9501af8b.css"> </head> <body> diff --git a/worldgen/world-preset/index.html b/worldgen/world-preset/index.html index 855806ee..5f4f5970 100644 --- a/worldgen/world-preset/index.html +++ b/worldgen/world-preset/index.html @@ -29,7 +29,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.36354f76.js"></script> + <script type="module" crossorigin src="/assets/index.18869b2a.js"></script> <link rel="stylesheet" href="/assets/index.9501af8b.css"> </head> <body>